From a8774b177ce4dfa9be4585a9ca1a027da832f278 Mon Sep 17 00:00:00 2001 From: Takuya ASADA Date: Mon, 16 Aug 2010 16:03:00 +0900 Subject: [PATCH] initial commit --- src/regress/CVS/Entries | 13 + src/regress/CVS/Repository | 1 + src/regress/CVS/Root | 1 + src/regress/Makefile | 61 + src/regress/bin/CVS/Entries | 5 + src/regress/bin/CVS/Repository | 1 + src/regress/bin/CVS/Root | 1 + src/regress/bin/Makefile | 7 + src/regress/bin/ksh/CVS/Entries | 6 + src/regress/bin/ksh/CVS/Repository | 1 + src/regress/bin/ksh/CVS/Root | 1 + src/regress/bin/ksh/Makefile | 19 + src/regress/bin/ksh/eval.sh | 15 + src/regress/bin/ksh/obj | 1 + src/regress/bin/ksh/seterror.sh | 20 + src/regress/bin/ksh/shcrash.sh | 19 + src/regress/bin/ksh/varfunction.sh | 76 + src/regress/bin/md5/CVS/Entries | 6 + src/regress/bin/md5/CVS/Repository | 1 + src/regress/bin/md5/CVS/Root | 1 + src/regress/bin/md5/Makefile | 38 + src/regress/bin/md5/obj | 1 + src/regress/bin/md5/pipe_test.md5 | 2 + src/regress/bin/md5/testsuite.md5 | 10 + src/regress/bin/md5/testsuite.rmd160 | 10 + src/regress/bin/md5/testsuite.sha1 | 10 + src/regress/bin/pax/CVS/Entries | 12 + src/regress/bin/pax/CVS/Repository | 1 + src/regress/bin/pax/CVS/Root | 1 + src/regress/bin/pax/Makefile | 15 + src/regress/bin/pax/obj | 1 + src/regress/bin/pax/t1.out | 1 + src/regress/bin/pax/t1.sh | 36 + src/regress/bin/pax/t2.out | 2 + src/regress/bin/pax/t2.sh | 14 + src/regress/bin/pax/t3.out | 33 + src/regress/bin/pax/t3.sh | 24 + src/regress/bin/pax/t4.out | 7 + src/regress/bin/pax/t4.sh | 19 + src/regress/bin/pax/t5.sh | 26 + src/regress/bin/pax/t6.sh | 6 + src/regress/bin/systrace/CVS/Entries | 3 + src/regress/bin/systrace/CVS/Repository | 1 + src/regress/bin/systrace/CVS/Root | 1 + src/regress/bin/systrace/Makefile | 6 + src/regress/bin/systrace/id/CVS/Entries | 4 + src/regress/bin/systrace/id/CVS/Repository | 1 + src/regress/bin/systrace/id/CVS/Root | 1 + src/regress/bin/systrace/id/Makefile | 10 + src/regress/bin/systrace/id/id.policy | 31 + src/regress/bin/systrace/id/id.sh | 19 + src/regress/bin/systrace/id/obj | 1 + src/regress/bin/systrace/symlink/CVS/Entries | 3 + src/regress/bin/systrace/symlink/CVS/Repository | 1 + src/regress/bin/systrace/symlink/CVS/Root | 1 + src/regress/bin/systrace/symlink/Makefile | 19 + src/regress/bin/systrace/symlink/ln.policy | 15 + src/regress/bin/systrace/symlink/obj | 1 + src/regress/etc/CVS/Entries | 2 + src/regress/etc/CVS/Repository | 1 + src/regress/etc/CVS/Root | 1 + src/regress/etc/MAKEDEV/CVS/Entries | 2 + src/regress/etc/MAKEDEV/CVS/Repository | 1 + src/regress/etc/MAKEDEV/CVS/Root | 1 + src/regress/etc/MAKEDEV/Makefile | 49 + src/regress/etc/MAKEDEV/obj | 1 + src/regress/etc/Makefile | 7 + src/regress/gnu/CVS/Entries | 2 + src/regress/gnu/CVS/Repository | 1 + src/regress/gnu/CVS/Root | 1 + src/regress/gnu/Makefile | 7 + src/regress/gnu/egcs/CVS/Entries | 6 + src/regress/gnu/egcs/CVS/Repository | 1 + src/regress/gnu/egcs/CVS/Root | 1 + src/regress/gnu/egcs/Makefile | 7 + src/regress/gnu/egcs/Makefile.inc | 3 + src/regress/gnu/egcs/gcc-bounds/CVS/Entries | 194 + src/regress/gnu/egcs/gcc-bounds/CVS/Repository | 1 + src/regress/gnu/egcs/gcc-bounds/CVS/Root | 1 + src/regress/gnu/egcs/gcc-bounds/Makefile | 62 + src/regress/gnu/egcs/gcc-bounds/builtins-1.c | 23 + src/regress/gnu/egcs/gcc-bounds/builtins-1.c.exp | 11 + .../gnu/egcs/gcc-bounds/builtins-1.c.exp.gcc3 | 11 + src/regress/gnu/egcs/gcc-bounds/declare-1.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-1.c.exp | 0 .../gnu/egcs/gcc-bounds/declare-1.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/declare-10.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-10.c.exp | 1 + .../gnu/egcs/gcc-bounds/declare-10.c.exp.gcc3 | 1 + src/regress/gnu/egcs/gcc-bounds/declare-11.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-11.c.exp | 0 .../gnu/egcs/gcc-bounds/declare-11.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/declare-12.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-12.c.exp | 1 + .../gnu/egcs/gcc-bounds/declare-12.c.exp.gcc3 | 1 + src/regress/gnu/egcs/gcc-bounds/declare-13.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-13.c.exp | 1 + .../gnu/egcs/gcc-bounds/declare-13.c.exp.gcc3 | 1 + src/regress/gnu/egcs/gcc-bounds/declare-14.c | 8 + src/regress/gnu/egcs/gcc-bounds/declare-14.c.exp | 0 .../gnu/egcs/gcc-bounds/declare-14.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/declare-15.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-15.c.exp | 2 + .../gnu/egcs/gcc-bounds/declare-15.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/declare-2.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-2.c.exp | 1 + .../gnu/egcs/gcc-bounds/declare-2.c.exp.gcc3 | 1 + src/regress/gnu/egcs/gcc-bounds/declare-3.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-3.c.exp | 1 + .../gnu/egcs/gcc-bounds/declare-3.c.exp.gcc3 | 1 + src/regress/gnu/egcs/gcc-bounds/declare-4.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-4.c.exp | 1 + .../gnu/egcs/gcc-bounds/declare-4.c.exp.gcc3 | 1 + src/regress/gnu/egcs/gcc-bounds/declare-5.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-5.c.exp | 0 .../gnu/egcs/gcc-bounds/declare-5.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/declare-6.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-6.c.exp | 1 + .../gnu/egcs/gcc-bounds/declare-6.c.exp.gcc3 | 1 + src/regress/gnu/egcs/gcc-bounds/declare-7.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-7.c.exp | 1 + .../gnu/egcs/gcc-bounds/declare-7.c.exp.gcc3 | 1 + src/regress/gnu/egcs/gcc-bounds/declare-8.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-8.c.exp | 1 + .../gnu/egcs/gcc-bounds/declare-8.c.exp.gcc3 | 1 + src/regress/gnu/egcs/gcc-bounds/declare-9.c | 6 + src/regress/gnu/egcs/gcc-bounds/declare-9.c.exp | 1 + .../gnu/egcs/gcc-bounds/declare-9.c.exp.gcc3 | 1 + src/regress/gnu/egcs/gcc-bounds/fread-1.c | 8 + src/regress/gnu/egcs/gcc-bounds/fread-1.c.exp | 0 src/regress/gnu/egcs/gcc-bounds/fread-1.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/fread-2.c | 8 + src/regress/gnu/egcs/gcc-bounds/fread-2.c.exp | 2 + src/regress/gnu/egcs/gcc-bounds/fread-2.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/fread-3.c | 8 + src/regress/gnu/egcs/gcc-bounds/fread-3.c.exp | 0 src/regress/gnu/egcs/gcc-bounds/fread-3.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/fread-4.c | 8 + src/regress/gnu/egcs/gcc-bounds/fread-4.c.exp | 2 + src/regress/gnu/egcs/gcc-bounds/fread-4.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/getcwd-1.c | 7 + src/regress/gnu/egcs/gcc-bounds/getcwd-1.c.exp | 2 + .../gnu/egcs/gcc-bounds/getcwd-1.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/getcwd-2.c | 7 + src/regress/gnu/egcs/gcc-bounds/getcwd-2.c.exp | 3 + .../gnu/egcs/gcc-bounds/getcwd-2.c.exp.gcc3 | 3 + src/regress/gnu/egcs/gcc-bounds/getcwd-3.c | 7 + src/regress/gnu/egcs/gcc-bounds/getcwd-3.c.exp | 3 + .../gnu/egcs/gcc-bounds/getcwd-3.c.exp.gcc3 | 3 + src/regress/gnu/egcs/gcc-bounds/getcwd-4.c | 8 + src/regress/gnu/egcs/gcc-bounds/getcwd-4.c.exp | 0 .../gnu/egcs/gcc-bounds/getcwd-4.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/md-1.c | 18 + src/regress/gnu/egcs/gcc-bounds/md-1.c.exp | 0 src/regress/gnu/egcs/gcc-bounds/md-1.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/md-2.c | 17 + src/regress/gnu/egcs/gcc-bounds/md-2.c.exp | 0 src/regress/gnu/egcs/gcc-bounds/md-2.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/md-3.c | 18 + src/regress/gnu/egcs/gcc-bounds/md-3.c.exp | 2 + src/regress/gnu/egcs/gcc-bounds/md-3.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/md-4.c | 17 + src/regress/gnu/egcs/gcc-bounds/md-4.c.exp | 2 + src/regress/gnu/egcs/gcc-bounds/md-4.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/md-5.c | 18 + src/regress/gnu/egcs/gcc-bounds/md-5.c.exp | 3 + src/regress/gnu/egcs/gcc-bounds/md-5.c.exp.gcc3 | 3 + src/regress/gnu/egcs/gcc-bounds/md-6.c | 17 + src/regress/gnu/egcs/gcc-bounds/md-6.c.exp | 2 + src/regress/gnu/egcs/gcc-bounds/md-6.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/memcpy-1.c | 8 + src/regress/gnu/egcs/gcc-bounds/memcpy-1.c.exp | 0 .../gnu/egcs/gcc-bounds/memcpy-1.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/memcpy-2.c | 8 + src/regress/gnu/egcs/gcc-bounds/memcpy-2.c.exp | 2 + .../gnu/egcs/gcc-bounds/memcpy-2.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/memcpy-3.c | 8 + src/regress/gnu/egcs/gcc-bounds/memcpy-3.c.exp | 2 + .../gnu/egcs/gcc-bounds/memcpy-3.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/memcpy-4.c | 8 + src/regress/gnu/egcs/gcc-bounds/memcpy-4.c.exp | 3 + .../gnu/egcs/gcc-bounds/memcpy-4.c.exp.gcc3 | 3 + src/regress/gnu/egcs/gcc-bounds/memcpy-5.c | 8 + src/regress/gnu/egcs/gcc-bounds/memcpy-5.c.exp | 0 .../gnu/egcs/gcc-bounds/memcpy-5.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/memcpy-6.c | 8 + src/regress/gnu/egcs/gcc-bounds/memcpy-6.c.exp | 2 + .../gnu/egcs/gcc-bounds/memcpy-6.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/memcpy-7.c | 9 + src/regress/gnu/egcs/gcc-bounds/memcpy-8.c | 8 + src/regress/gnu/egcs/gcc-bounds/memcpy-8.c.exp | 3 + .../gnu/egcs/gcc-bounds/memcpy-8.c.exp.gcc3 | 3 + src/regress/gnu/egcs/gcc-bounds/snprintf-1.cpp | 7 + src/regress/gnu/egcs/gcc-bounds/snprintf-1.cpp.exp | 0 .../gnu/egcs/gcc-bounds/snprintf-1.cpp.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp | 7 + src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp.exp | 2 + .../gnu/egcs/gcc-bounds/snprintf-2.cpp.exp.gcc3 | 3 + src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp | 7 + src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp.exp | 2 + .../gnu/egcs/gcc-bounds/snprintf-3.cpp.exp.gcc3 | 3 + src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp | 14 + src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp.exp | 3 + .../gnu/egcs/gcc-bounds/snprintf-4.cpp.exp.gcc3 | 5 + src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp | 7 + src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp.exp | 2 + .../gnu/egcs/gcc-bounds/snprintf-5.cpp.exp.gcc3 | 3 + src/regress/gnu/egcs/gcc-bounds/sscanf-1.c | 8 + src/regress/gnu/egcs/gcc-bounds/sscanf-1.c.exp | 0 .../gnu/egcs/gcc-bounds/sscanf-1.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp | 8 + src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp.exp | 3 + .../gnu/egcs/gcc-bounds/sscanf-1.cpp.exp.gcc3 | 5 + src/regress/gnu/egcs/gcc-bounds/sscanf-2.c | 8 + src/regress/gnu/egcs/gcc-bounds/sscanf-2.c.exp | 3 + .../gnu/egcs/gcc-bounds/sscanf-2.c.exp.gcc3 | 3 + src/regress/gnu/egcs/gcc-bounds/sscanf-3.c | 9 + src/regress/gnu/egcs/gcc-bounds/sscanf-3.c.exp | 0 .../gnu/egcs/gcc-bounds/sscanf-3.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/sscanf-4.c | 8 + src/regress/gnu/egcs/gcc-bounds/sscanf-4.c.exp | 0 .../gnu/egcs/gcc-bounds/sscanf-4.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/sscanf-5.c | 8 + src/regress/gnu/egcs/gcc-bounds/sscanf-5.c.exp | 0 .../gnu/egcs/gcc-bounds/sscanf-5.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/sscanf-6.c | 8 + .../gnu/egcs/gcc-bounds/sscanf-6.c.exp.gcc3 | 4 + src/regress/gnu/egcs/gcc-bounds/strlcat-1.c | 8 + src/regress/gnu/egcs/gcc-bounds/strlcat-1.c.exp | 0 .../gnu/egcs/gcc-bounds/strlcat-1.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/strlcat-2.c | 8 + src/regress/gnu/egcs/gcc-bounds/strlcat-2.c.exp | 2 + .../gnu/egcs/gcc-bounds/strlcat-2.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/strlcat-3.c | 8 + src/regress/gnu/egcs/gcc-bounds/strlcat-3.c.exp | 0 .../gnu/egcs/gcc-bounds/strlcat-3.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/strlcat-4.c | 8 + src/regress/gnu/egcs/gcc-bounds/strlcat-4.c.exp | 2 + .../gnu/egcs/gcc-bounds/strlcat-4.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/strlcat-5.c | 8 + src/regress/gnu/egcs/gcc-bounds/strlcat-5.c.exp | 2 + .../gnu/egcs/gcc-bounds/strlcat-5.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/strlcat-6.c | 8 + src/regress/gnu/egcs/gcc-bounds/strlcat-6.c.exp | 2 + .../gnu/egcs/gcc-bounds/strlcat-6.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/strlcpy-1.c | 8 + src/regress/gnu/egcs/gcc-bounds/strlcpy-1.c.exp | 0 .../gnu/egcs/gcc-bounds/strlcpy-1.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/strlcpy-2.c | 8 + src/regress/gnu/egcs/gcc-bounds/strlcpy-2.c.exp | 0 .../gnu/egcs/gcc-bounds/strlcpy-2.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c | 8 + src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c.exp | 2 + .../gnu/egcs/gcc-bounds/strlcpy-3.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c | 8 + src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c.exp | 2 + .../gnu/egcs/gcc-bounds/strlcpy-4.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c | 9 + src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c.exp | 2 + .../gnu/egcs/gcc-bounds/strlcpy-5.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/strlcpy-6.c | 9 + src/regress/gnu/egcs/gcc-bounds/strlcpy-6.c.exp | 0 .../gnu/egcs/gcc-bounds/strlcpy-6.c.exp.gcc3 | 0 src/regress/gnu/egcs/gcc-bounds/vararray-1.c | 11 + src/regress/gnu/egcs/gcc-bounds/vararray-1.c.exp | 2 + .../gnu/egcs/gcc-bounds/vararray-1.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/vararray-2.c | 8 + src/regress/gnu/egcs/gcc-bounds/vararray-2.c.exp | 2 + .../gnu/egcs/gcc-bounds/vararray-2.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc-bounds/vararray-3.c | 10 + src/regress/gnu/egcs/gcc-bounds/vararray-3.c.exp | 2 + .../gnu/egcs/gcc-bounds/vararray-3.c.exp.gcc3 | 2 + src/regress/gnu/egcs/gcc/CVS/Entries | 2 + src/regress/gnu/egcs/gcc/CVS/Repository | 1 + src/regress/gnu/egcs/gcc/CVS/Root | 1 + src/regress/gnu/egcs/gcc/Makefile | 34 + src/regress/gnu/egcs/gcc/obj | 1 + src/regress/gnu/egcs/libf2c/CVS/Entries | 2 + src/regress/gnu/egcs/libf2c/CVS/Repository | 1 + src/regress/gnu/egcs/libf2c/CVS/Root | 1 + src/regress/gnu/egcs/libf2c/Makefile | 39 + src/regress/gnu/egcs/libf2c/obj | 1 + src/regress/gnu/egcs/libiberty/CVS/Entries | 2 + src/regress/gnu/egcs/libiberty/CVS/Repository | 1 + src/regress/gnu/egcs/libiberty/CVS/Root | 1 + src/regress/gnu/egcs/libiberty/Makefile | 26 + src/regress/gnu/egcs/libiberty/obj | 1 + src/regress/include/CVS/Entries | 2 + src/regress/include/CVS/Repository | 1 + src/regress/include/CVS/Root | 1 + src/regress/include/Makefile | 8 + src/regress/include/bitstring/CVS/Entries | 3 + src/regress/include/bitstring/CVS/Repository | 1 + src/regress/include/bitstring/CVS/Root | 1 + src/regress/include/bitstring/Makefile | 27 + src/regress/include/bitstring/bitstring_test.c | 215 + src/regress/include/bitstring/good/27 | 263 ++ src/regress/include/bitstring/good/32 | 303 ++ src/regress/include/bitstring/good/49 | 439 ++ src/regress/include/bitstring/good/64 | 559 +++ src/regress/include/bitstring/good/67 | 583 +++ src/regress/include/bitstring/good/8 | 111 + src/regress/include/bitstring/good/CVS/Entries | 7 + src/regress/include/bitstring/good/CVS/Repository | 1 + src/regress/include/bitstring/good/CVS/Root | 1 + src/regress/include/bitstring/obj | 1 + src/regress/lib/CVS/Entries | 10 + src/regress/lib/CVS/Repository | 1 + src/regress/lib/CVS/Root | 1 + src/regress/lib/Makefile | 7 + src/regress/lib/csu/CVS/Entries | 3 + src/regress/lib/csu/CVS/Repository | 1 + src/regress/lib/csu/CVS/Root | 1 + src/regress/lib/csu/Makefile | 7 + src/regress/lib/csu/ctors/CVS/Entries | 3 + src/regress/lib/csu/ctors/CVS/Repository | 1 + src/regress/lib/csu/ctors/CVS/Root | 1 + src/regress/lib/csu/ctors/Makefile | 4 + src/regress/lib/csu/ctors/ctors.c | 19 + src/regress/lib/csu/ctors/obj | 1 + src/regress/lib/csu/dtors/CVS/Entries | 3 + src/regress/lib/csu/dtors/CVS/Repository | 1 + src/regress/lib/csu/dtors/CVS/Root | 1 + src/regress/lib/csu/dtors/Makefile | 13 + src/regress/lib/csu/dtors/dtors.c | 78 + src/regress/lib/csu/dtors/obj | 1 + src/regress/lib/libc/CVS/Entries | 40 + src/regress/lib/libc/CVS/Repository | 1 + src/regress/lib/libc/CVS/Root | 1 + src/regress/lib/libc/Makefile | 19 + src/regress/lib/libc/_setjmp/CVS/Entries | 2 + src/regress/lib/libc/_setjmp/CVS/Repository | 1 + src/regress/lib/libc/_setjmp/CVS/Root | 1 + src/regress/lib/libc/_setjmp/Makefile | 11 + src/regress/lib/libc/_setjmp/obj | 1 + src/regress/lib/libc/alloca/CVS/Entries | 3 + src/regress/lib/libc/alloca/CVS/Repository | 1 + src/regress/lib/libc/alloca/CVS/Root | 1 + src/regress/lib/libc/alloca/Makefile | 5 + src/regress/lib/libc/alloca/alloca.c | 21 + src/regress/lib/libc/alloca/obj | 1 + src/regress/lib/libc/arch/CVS/Entries | 1 + src/regress/lib/libc/arch/CVS/Repository | 1 + src/regress/lib/libc/arch/CVS/Root | 1 + src/regress/lib/libc/arch/alpha/CVS/Entries | 2 + src/regress/lib/libc/arch/alpha/CVS/Repository | 1 + src/regress/lib/libc/arch/alpha/CVS/Root | 1 + src/regress/lib/libc/arch/alpha/Makefile | 9 + .../lib/libc/arch/alpha/divremtest/CVS/Entries | 5 + .../lib/libc/arch/alpha/divremtest/CVS/Repository | 1 + .../lib/libc/arch/alpha/divremtest/CVS/Root | 1 + .../lib/libc/arch/alpha/divremtest/Makefile | 30 + .../lib/libc/arch/alpha/divremtest/divremtest.c | 184 + .../lib/libc/arch/alpha/divremtest/mkcases.c | 64 + .../lib/libc/arch/alpha/divremtest/mktestcases.c | 68 + src/regress/lib/libc/atexit/CVS/Entries | 5 + src/regress/lib/libc/atexit/CVS/Repository | 1 + src/regress/lib/libc/atexit/CVS/Root | 1 + src/regress/lib/libc/atexit/Makefile | 16 + src/regress/lib/libc/atexit/atexit_test.c | 140 + src/regress/lib/libc/atexit/invalid.ok | 4 + src/regress/lib/libc/atexit/obj | 1 + src/regress/lib/libc/atexit/valid.ok | 5 + src/regress/lib/libc/basename/CVS/Entries | 3 + src/regress/lib/libc/basename/CVS/Repository | 1 + src/regress/lib/libc/basename/CVS/Root | 1 + src/regress/lib/libc/basename/Makefile | 3 + src/regress/lib/libc/basename/basename_test.c | 79 + src/regress/lib/libc/basename/obj | 1 + src/regress/lib/libc/cxa-atexit/CVS/Entries | 4 + src/regress/lib/libc/cxa-atexit/CVS/Repository | 1 + src/regress/lib/libc/cxa-atexit/CVS/Root | 1 + src/regress/lib/libc/cxa-atexit/Makefile | 12 + src/regress/lib/libc/cxa-atexit/libgd1/CVS/Entries | 4 + .../lib/libc/cxa-atexit/libgd1/CVS/Repository | 1 + src/regress/lib/libc/cxa-atexit/libgd1/CVS/Root | 1 + src/regress/lib/libc/cxa-atexit/libgd1/Makefile | 9 + src/regress/lib/libc/cxa-atexit/libgd1/gd1.C | 32 + src/regress/lib/libc/cxa-atexit/libgd1/obj | 1 + .../lib/libc/cxa-atexit/libgd1/shlib_version | 2 + src/regress/lib/libc/cxa-atexit/libgd2/CVS/Entries | 4 + .../lib/libc/cxa-atexit/libgd2/CVS/Repository | 1 + src/regress/lib/libc/cxa-atexit/libgd2/CVS/Root | 1 + src/regress/lib/libc/cxa-atexit/libgd2/Makefile | 9 + src/regress/lib/libc/cxa-atexit/libgd2/gd2.C | 32 + src/regress/lib/libc/cxa-atexit/libgd2/obj | 1 + .../lib/libc/cxa-atexit/libgd2/shlib_version | 2 + src/regress/lib/libc/cxa-atexit/test1/CVS/Entries | 3 + .../lib/libc/cxa-atexit/test1/CVS/Repository | 1 + src/regress/lib/libc/cxa-atexit/test1/CVS/Root | 1 + src/regress/lib/libc/cxa-atexit/test1/Makefile | 29 + src/regress/lib/libc/cxa-atexit/test1/obj | 1 + src/regress/lib/libc/cxa-atexit/test1/test1.C | 63 + src/regress/lib/libc/db/CVS/Entries | 5 + src/regress/lib/libc/db/CVS/Repository | 1 + src/regress/lib/libc/db/CVS/Root | 1 + src/regress/lib/libc/db/Makefile | 22 + src/regress/lib/libc/db/README | 69 + src/regress/lib/libc/db/dbtest.c | 733 ++++ src/regress/lib/libc/db/obj | 1 + src/regress/lib/libc/db/run.test | 707 +++ src/regress/lib/libc/dirname/CVS/Entries | 3 + src/regress/lib/libc/dirname/CVS/Repository | 1 + src/regress/lib/libc/dirname/CVS/Root | 1 + src/regress/lib/libc/dirname/Makefile | 3 + src/regress/lib/libc/dirname/dirname_test.c | 82 + src/regress/lib/libc/dirname/obj | 1 + src/regress/lib/libc/fnmatch/CVS/Entries | 4 + src/regress/lib/libc/fnmatch/CVS/Repository | 1 + src/regress/lib/libc/fnmatch/CVS/Root | 1 + src/regress/lib/libc/fnmatch/Makefile | 8 + src/regress/lib/libc/fnmatch/fnm_test.c | 45 + src/regress/lib/libc/fnmatch/fnm_test.in | 5 + src/regress/lib/libc/fnmatch/obj | 1 + src/regress/lib/libc/fpclassify/CVS/Entries | 3 + src/regress/lib/libc/fpclassify/CVS/Repository | 1 + src/regress/lib/libc/fpclassify/CVS/Root | 1 + src/regress/lib/libc/fpclassify/Makefile | 5 + src/regress/lib/libc/fpclassify/fpclassify.c | 76 + src/regress/lib/libc/fpclassify/obj | 1 + src/regress/lib/libc/getaddrinfo/CVS/Entries | 5 + src/regress/lib/libc/getaddrinfo/CVS/Repository | 1 + src/regress/lib/libc/getaddrinfo/CVS/Root | 1 + src/regress/lib/libc/getaddrinfo/Makefile | 19 + src/regress/lib/libc/getaddrinfo/answer | 110 + src/regress/lib/libc/getaddrinfo/gaitest.c | 195 + src/regress/lib/libc/getaddrinfo/obj | 1 + src/regress/lib/libc/getaddrinfo/testsuite.sh | 89 + src/regress/lib/libc/getcap/CVS/Entries | 4 + src/regress/lib/libc/getcap/CVS/Repository | 1 + src/regress/lib/libc/getcap/CVS/Root | 1 + src/regress/lib/libc/getcap/Makefile | 10 + src/regress/lib/libc/getcap/getcaptest.c | 26 + src/regress/lib/libc/getcap/obj | 1 + src/regress/lib/libc/getcap/shortcap.in | 1 + src/regress/lib/libc/getopt_long/CVS/Entries | 4 + src/regress/lib/libc/getopt_long/CVS/Repository | 1 + src/regress/lib/libc/getopt_long/CVS/Root | 1 + src/regress/lib/libc/getopt_long/Makefile | 32 + .../lib/libc/getopt_long/getopt_long_test.c | 114 + src/regress/lib/libc/getopt_long/obj | 1 + src/regress/lib/libc/getopt_long/test.ok | 84 + src/regress/lib/libc/glob/CVS/Entries | 5 + src/regress/lib/libc/glob/CVS/Repository | 1 + src/regress/lib/libc/glob/CVS/Root | 1 + src/regress/lib/libc/glob/Makefile | 13 + src/regress/lib/libc/glob/files | 47 + src/regress/lib/libc/glob/globtest.c | 123 + src/regress/lib/libc/glob/globtest.in | 64 + src/regress/lib/libc/glob/obj | 1 + src/regress/lib/libc/hsearch/CVS/Entries | 3 + src/regress/lib/libc/hsearch/CVS/Repository | 1 + src/regress/lib/libc/hsearch/CVS/Root | 1 + src/regress/lib/libc/hsearch/Makefile | 5 + src/regress/lib/libc/hsearch/hsearchtest.c | 122 + src/regress/lib/libc/hsearch/obj | 1 + src/regress/lib/libc/ieeefp/CVS/Entries | 5 + src/regress/lib/libc/ieeefp/CVS/Repository | 1 + src/regress/lib/libc/ieeefp/CVS/Root | 1 + src/regress/lib/libc/ieeefp/Makefile | 8 + src/regress/lib/libc/ieeefp/except/CVS/Entries | 3 + src/regress/lib/libc/ieeefp/except/CVS/Repository | 1 + src/regress/lib/libc/ieeefp/except/CVS/Root | 1 + src/regress/lib/libc/ieeefp/except/Makefile | 19 + src/regress/lib/libc/ieeefp/except/except.c | 110 + src/regress/lib/libc/ieeefp/except/obj | 1 + src/regress/lib/libc/ieeefp/inf/CVS/Entries | 3 + src/regress/lib/libc/ieeefp/inf/CVS/Repository | 1 + src/regress/lib/libc/ieeefp/inf/CVS/Root | 1 + src/regress/lib/libc/ieeefp/inf/Makefile | 9 + src/regress/lib/libc/ieeefp/inf/inf.c | 16 + src/regress/lib/libc/ieeefp/inf/obj | 1 + src/regress/lib/libc/ieeefp/infinity/CVS/Entries | 3 + .../lib/libc/ieeefp/infinity/CVS/Repository | 1 + src/regress/lib/libc/ieeefp/infinity/CVS/Root | 1 + src/regress/lib/libc/ieeefp/infinity/Makefile | 22 + src/regress/lib/libc/ieeefp/infinity/infinity.c | 77 + src/regress/lib/libc/ieeefp/infinity/obj | 1 + src/regress/lib/libc/ieeefp/round/CVS/Entries | 3 + src/regress/lib/libc/ieeefp/round/CVS/Repository | 1 + src/regress/lib/libc/ieeefp/round/CVS/Root | 1 + src/regress/lib/libc/ieeefp/round/Makefile | 5 + src/regress/lib/libc/ieeefp/round/obj | 1 + src/regress/lib/libc/ieeefp/round/round.c | 45 + src/regress/lib/libc/locale/CVS/Entries | 2 + src/regress/lib/libc/locale/CVS/Repository | 1 + src/regress/lib/libc/locale/CVS/Root | 1 + src/regress/lib/libc/locale/Makefile | 7 + src/regress/lib/libc/locale/check_isw/CVS/Entries | 3 + .../lib/libc/locale/check_isw/CVS/Repository | 1 + src/regress/lib/libc/locale/check_isw/CVS/Root | 1 + src/regress/lib/libc/locale/check_isw/Makefile | 9 + src/regress/lib/libc/locale/check_isw/check_isw.c | 147 + src/regress/lib/libc/locale/check_isw/obj | 1 + src/regress/lib/libc/longjmp/CVS/Entries | 3 + src/regress/lib/libc/longjmp/CVS/Repository | 1 + src/regress/lib/libc/longjmp/CVS/Root | 1 + src/regress/lib/libc/longjmp/Makefile | 13 + src/regress/lib/libc/longjmp/longjmp.c | 71 + src/regress/lib/libc/longjmp/obj | 1 + src/regress/lib/libc/malloc/CVS/Entries | 5 + src/regress/lib/libc/malloc/CVS/Repository | 1 + src/regress/lib/libc/malloc/CVS/Root | 1 + src/regress/lib/libc/malloc/Makefile | 7 + .../lib/libc/malloc/malloc0test/CVS/Entries | 3 + .../lib/libc/malloc/malloc0test/CVS/Repository | 1 + src/regress/lib/libc/malloc/malloc0test/CVS/Root | 1 + src/regress/lib/libc/malloc/malloc0test/Makefile | 5 + .../lib/libc/malloc/malloc0test/malloc0test.c | 120 + src/regress/lib/libc/malloc/malloc0test/obj | 1 + .../lib/libc/malloc/malloc_errno/CVS/Entries | 3 + .../lib/libc/malloc/malloc_errno/CVS/Repository | 1 + src/regress/lib/libc/malloc/malloc_errno/CVS/Root | 1 + src/regress/lib/libc/malloc/malloc_errno/Makefile | 5 + .../lib/libc/malloc/malloc_errno/malloc_errno.c | 46 + src/regress/lib/libc/malloc/malloc_errno/obj | 1 + .../lib/libc/malloc/malloc_ulimit1/CVS/Entries | 3 + .../lib/libc/malloc/malloc_ulimit1/CVS/Repository | 1 + .../lib/libc/malloc/malloc_ulimit1/CVS/Root | 1 + .../lib/libc/malloc/malloc_ulimit1/Makefile | 5 + .../libc/malloc/malloc_ulimit1/malloc_ulimit1.c | 44 + src/regress/lib/libc/malloc/malloc_ulimit1/obj | 1 + .../lib/libc/malloc/malloc_ulimit2/CVS/Entries | 3 + .../lib/libc/malloc/malloc_ulimit2/CVS/Repository | 1 + .../lib/libc/malloc/malloc_ulimit2/CVS/Root | 1 + .../lib/libc/malloc/malloc_ulimit2/Makefile | 5 + .../libc/malloc/malloc_ulimit2/malloc_ulimit2.c | 42 + src/regress/lib/libc/malloc/malloc_ulimit2/obj | 1 + src/regress/lib/libc/mkstemp/CVS/Entries | 3 + src/regress/lib/libc/mkstemp/CVS/Repository | 1 + src/regress/lib/libc/mkstemp/CVS/Root | 1 + src/regress/lib/libc/mkstemp/Makefile | 19 + src/regress/lib/libc/mkstemp/mkstemp_test.c | 156 + src/regress/lib/libc/netdb/CVS/Entries | 3 + src/regress/lib/libc/netdb/CVS/Repository | 1 + src/regress/lib/libc/netdb/CVS/Root | 1 + src/regress/lib/libc/netdb/Makefile | 5 + src/regress/lib/libc/netdb/netdb.c | 182 + src/regress/lib/libc/netdb/obj | 1 + src/regress/lib/libc/orientation/CVS/Entries | 3 + src/regress/lib/libc/orientation/CVS/Repository | 1 + src/regress/lib/libc/orientation/CVS/Root | 1 + src/regress/lib/libc/orientation/Makefile | 10 + src/regress/lib/libc/orientation/obj | 1 + .../lib/libc/orientation/orientation_test.c | 252 ++ src/regress/lib/libc/popen/CVS/Entries | 3 + src/regress/lib/libc/popen/CVS/Repository | 1 + src/regress/lib/libc/popen/CVS/Root | 1 + src/regress/lib/libc/popen/Makefile | 5 + src/regress/lib/libc/popen/obj | 1 + src/regress/lib/libc/popen/popen.c | 98 + src/regress/lib/libc/printf/CVS/Entries | 3 + src/regress/lib/libc/printf/CVS/Repository | 1 + src/regress/lib/libc/printf/CVS/Root | 1 + src/regress/lib/libc/printf/Makefile | 5 + src/regress/lib/libc/printf/fp.c | 217 + src/regress/lib/libc/printf/obj | 1 + src/regress/lib/libc/regex/CVS/Entries | 8 + src/regress/lib/libc/regex/CVS/Repository | 1 + src/regress/lib/libc/regex/CVS/Root | 1 + src/regress/lib/libc/regex/Makefile | 21 + src/regress/lib/libc/regex/debug.c | 245 ++ src/regress/lib/libc/regex/debug.ih | 17 + src/regress/lib/libc/regex/main.c | 516 +++ src/regress/lib/libc/regex/main.ih | 22 + src/regress/lib/libc/regex/obj | 1 + src/regress/lib/libc/regex/split.c | 317 ++ src/regress/lib/libc/regex/tests | 503 +++ src/regress/lib/libc/setjmp-signal/CVS/Entries | 3 + src/regress/lib/libc/setjmp-signal/CVS/Repository | 1 + src/regress/lib/libc/setjmp-signal/CVS/Root | 1 + src/regress/lib/libc/setjmp-signal/Makefile | 5 + src/regress/lib/libc/setjmp-signal/obj | 1 + src/regress/lib/libc/setjmp-signal/setjmp-signal.c | 26 + src/regress/lib/libc/setjmp/CVS/Entries | 3 + src/regress/lib/libc/setjmp/CVS/Repository | 1 + src/regress/lib/libc/setjmp/CVS/Root | 1 + src/regress/lib/libc/setjmp/Makefile | 9 + src/regress/lib/libc/setjmp/jmptest.c | 136 + src/regress/lib/libc/setjmp/obj | 1 + src/regress/lib/libc/sigreturn/CVS/Entries | 3 + src/regress/lib/libc/sigreturn/CVS/Repository | 1 + src/regress/lib/libc/sigreturn/CVS/Root | 1 + src/regress/lib/libc/sigreturn/Makefile | 18 + src/regress/lib/libc/sigreturn/obj | 1 + src/regress/lib/libc/sigreturn/sigret.c | 181 + src/regress/lib/libc/sigsetjmp/CVS/Entries | 2 + src/regress/lib/libc/sigsetjmp/CVS/Repository | 1 + src/regress/lib/libc/sigsetjmp/CVS/Root | 1 + src/regress/lib/libc/sigsetjmp/Makefile | 19 + src/regress/lib/libc/sigsetjmp/obj | 1 + src/regress/lib/libc/sleep/CVS/Entries | 3 + src/regress/lib/libc/sleep/CVS/Repository | 1 + src/regress/lib/libc/sleep/CVS/Root | 1 + src/regress/lib/libc/sleep/Makefile | 13 + src/regress/lib/libc/sleep/sleep_test.c | 84 + src/regress/lib/libc/sprintf/CVS/Entries | 3 + src/regress/lib/libc/sprintf/CVS/Repository | 1 + src/regress/lib/libc/sprintf/CVS/Root | 1 + src/regress/lib/libc/sprintf/Makefile | 10 + src/regress/lib/libc/sprintf/obj | 1 + src/regress/lib/libc/sprintf/sprintf_test.c | 102 + src/regress/lib/libc/stdio_threading/CVS/Entries | 8 + .../lib/libc/stdio_threading/CVS/Repository | 1 + src/regress/lib/libc/stdio_threading/CVS/Root | 1 + src/regress/lib/libc/stdio_threading/Makefile | 3 + .../lib/libc/stdio_threading/fgetln/CVS/Entries | 3 + .../lib/libc/stdio_threading/fgetln/CVS/Repository | 1 + .../lib/libc/stdio_threading/fgetln/CVS/Root | 1 + .../lib/libc/stdio_threading/fgetln/Makefile | 6 + .../lib/libc/stdio_threading/fgetln/fgetln_test.c | 70 + src/regress/lib/libc/stdio_threading/fgetln/obj | 1 + .../lib/libc/stdio_threading/fgets/CVS/Entries | 3 + .../lib/libc/stdio_threading/fgets/CVS/Repository | 1 + .../lib/libc/stdio_threading/fgets/CVS/Root | 1 + .../lib/libc/stdio_threading/fgets/Makefile | 6 + .../lib/libc/stdio_threading/fgets/fgets_test.c | 69 + src/regress/lib/libc/stdio_threading/fgets/obj | 1 + .../lib/libc/stdio_threading/fopen/CVS/Entries | 3 + .../lib/libc/stdio_threading/fopen/CVS/Repository | 1 + .../lib/libc/stdio_threading/fopen/CVS/Root | 1 + .../lib/libc/stdio_threading/fopen/Makefile | 6 + .../lib/libc/stdio_threading/fopen/fopen_test.c | 48 + src/regress/lib/libc/stdio_threading/fopen/obj | 1 + .../lib/libc/stdio_threading/fputs/CVS/Entries | 3 + .../lib/libc/stdio_threading/fputs/CVS/Repository | 1 + .../lib/libc/stdio_threading/fputs/CVS/Root | 1 + .../lib/libc/stdio_threading/fputs/Makefile | 6 + .../lib/libc/stdio_threading/fputs/fputs_test.c | 66 + src/regress/lib/libc/stdio_threading/fputs/obj | 1 + .../lib/libc/stdio_threading/fread/CVS/Entries | 3 + .../lib/libc/stdio_threading/fread/CVS/Repository | 1 + .../lib/libc/stdio_threading/fread/CVS/Root | 1 + .../lib/libc/stdio_threading/fread/Makefile | 6 + .../lib/libc/stdio_threading/fread/fread_test.c | 71 + src/regress/lib/libc/stdio_threading/fread/obj | 1 + .../lib/libc/stdio_threading/fwrite/CVS/Entries | 3 + .../lib/libc/stdio_threading/fwrite/CVS/Repository | 1 + .../lib/libc/stdio_threading/fwrite/CVS/Root | 1 + .../lib/libc/stdio_threading/fwrite/Makefile | 6 + .../lib/libc/stdio_threading/fwrite/fwrite_test.c | 66 + src/regress/lib/libc/stdio_threading/fwrite/obj | 1 + .../lib/libc/stdio_threading/include/CVS/Entries | 2 + .../libc/stdio_threading/include/CVS/Repository | 1 + .../lib/libc/stdio_threading/include/CVS/Root | 1 + .../lib/libc/stdio_threading/include/local.h | 81 + src/regress/lib/libc/strerror/CVS/Entries | 4 + src/regress/lib/libc/strerror/CVS/Repository | 1 + src/regress/lib/libc/strerror/CVS/Root | 1 + src/regress/lib/libc/strerror/Makefile | 12 + src/regress/lib/libc/strerror/obj | 1 + src/regress/lib/libc/strerror/strerror_test.c | 71 + src/regress/lib/libc/strerror/valid.ok | 65 + src/regress/lib/libc/strnlen/CVS/Entries | 3 + src/regress/lib/libc/strnlen/CVS/Repository | 1 + src/regress/lib/libc/strnlen/CVS/Root | 1 + src/regress/lib/libc/strnlen/Makefile | 5 + src/regress/lib/libc/strnlen/strnlentest.c | 69 + src/regress/lib/libc/strtod/CVS/Entries | 3 + src/regress/lib/libc/strtod/CVS/Repository | 1 + src/regress/lib/libc/strtod/CVS/Root | 1 + src/regress/lib/libc/strtod/Makefile | 5 + src/regress/lib/libc/strtod/obj | 1 + src/regress/lib/libc/strtod/strtodtest.c | 22 + src/regress/lib/libc/strtonum/CVS/Entries | 3 + src/regress/lib/libc/strtonum/CVS/Repository | 1 + src/regress/lib/libc/strtonum/CVS/Root | 1 + src/regress/lib/libc/strtonum/Makefile | 5 + src/regress/lib/libc/strtonum/obj | 1 + src/regress/lib/libc/strtonum/strtonumtest.c | 64 + src/regress/lib/libc/telldir/CVS/Entries | 3 + src/regress/lib/libc/telldir/CVS/Repository | 1 + src/regress/lib/libc/telldir/CVS/Root | 1 + src/regress/lib/libc/telldir/Makefile | 5 + src/regress/lib/libc/telldir/obj | 1 + src/regress/lib/libc/telldir/telldir.c | 106 + src/regress/lib/libc/time/CVS/Entries | 2 + src/regress/lib/libc/time/CVS/Repository | 1 + src/regress/lib/libc/time/CVS/Root | 1 + src/regress/lib/libc/time/Makefile | 5 + src/regress/lib/libc/time/strptime/CVS/Entries | 5 + src/regress/lib/libc/time/strptime/CVS/Repository | 1 + src/regress/lib/libc/time/strptime/CVS/Root | 1 + src/regress/lib/libc/time/strptime/Makefile | 12 + src/regress/lib/libc/time/strptime/expected | 346 ++ src/regress/lib/libc/time/strptime/main.c | 110 + src/regress/lib/libc/time/strptime/obj | 1 + src/regress/lib/libc/time/strptime/tests | 267 ++ src/regress/lib/libc/vis/CVS/Entries | 4 + src/regress/lib/libc/vis/CVS/Repository | 1 + src/regress/lib/libc/vis/CVS/Root | 1 + src/regress/lib/libc/vis/Makefile | 10 + src/regress/lib/libc/vis/obj | 1 + src/regress/lib/libc/vis/valid.ok | 2 + src/regress/lib/libc/vis/vis_test.c | 23 + src/regress/lib/libevent/CVS/Entries | 7 + src/regress/lib/libevent/CVS/Repository | 1 + src/regress/lib/libevent/CVS/Root | 1 + src/regress/lib/libevent/Makefile | 42 + src/regress/lib/libevent/event_regress.c | 1914 +++++++++ src/regress/lib/libevent/obj | 1 + src/regress/lib/libevent/test-eof.c | 86 + src/regress/lib/libevent/test-init.c | 40 + src/regress/lib/libevent/test-time.c | 89 + src/regress/lib/libevent/test-weof.c | 84 + src/regress/lib/libm/CVS/Entries | 8 + src/regress/lib/libm/CVS/Repository | 1 + src/regress/lib/libm/CVS/Root | 1 + src/regress/lib/libm/Makefile | 7 + src/regress/lib/libm/exp/CVS/Entries | 3 + src/regress/lib/libm/exp/CVS/Repository | 1 + src/regress/lib/libm/exp/CVS/Root | 1 + src/regress/lib/libm/exp/Makefile | 8 + src/regress/lib/libm/exp/exp.c | 28 + src/regress/lib/libm/exp/obj | 1 + src/regress/lib/libm/floor/CVS/Entries | 3 + src/regress/lib/libm/floor/CVS/Repository | 1 + src/regress/lib/libm/floor/CVS/Root | 1 + src/regress/lib/libm/floor/Makefile | 7 + src/regress/lib/libm/floor/floor.c | 39 + src/regress/lib/libm/floor/obj | 1 + src/regress/lib/libm/fpaccuracy/CVS/Entries | 34 + src/regress/lib/libm/fpaccuracy/CVS/Repository | 1 + src/regress/lib/libm/fpaccuracy/CVS/Root | 1 + src/regress/lib/libm/fpaccuracy/Gamma.c | 1611 +++++++ src/regress/lib/libm/fpaccuracy/INV.c | 686 +++ src/regress/lib/libm/fpaccuracy/Makefile | 12 + src/regress/lib/libm/fpaccuracy/Pix.c | 753 ++++ src/regress/lib/libm/fpaccuracy/acos.c | 1340 ++++++ src/regress/lib/libm/fpaccuracy/acosh.c | 1065 +++++ src/regress/lib/libm/fpaccuracy/asin.c | 1376 ++++++ src/regress/lib/libm/fpaccuracy/asinh.c | 1073 +++++ src/regress/lib/libm/fpaccuracy/atan.c | 902 ++++ src/regress/lib/libm/fpaccuracy/atanh.c | 1025 +++++ src/regress/lib/libm/fpaccuracy/cos.c | 1450 +++++++ src/regress/lib/libm/fpaccuracy/cosh.c | 1362 ++++++ src/regress/lib/libm/fpaccuracy/erf.c | 1308 ++++++ src/regress/lib/libm/fpaccuracy/erfc.c | 1349 ++++++ src/regress/lib/libm/fpaccuracy/exp.c | 1364 ++++++ src/regress/lib/libm/fpaccuracy/fpaccuracy.c | 56 + src/regress/lib/libm/fpaccuracy/fpaccuracy.h | 35 + src/regress/lib/libm/fpaccuracy/header.h | 68 + src/regress/lib/libm/fpaccuracy/j0.c | 1085 +++++ src/regress/lib/libm/fpaccuracy/j1.c | 1056 +++++ src/regress/lib/libm/fpaccuracy/lgamma.c | 1440 +++++++ src/regress/lib/libm/fpaccuracy/log.c | 1167 +++++ src/regress/lib/libm/fpaccuracy/log10.c | 1317 ++++++ src/regress/lib/libm/fpaccuracy/obj | 1 + src/regress/lib/libm/fpaccuracy/pow2_x.c | 1499 +++++++ src/regress/lib/libm/fpaccuracy/powx_275.c | 1096 +++++ src/regress/lib/libm/fpaccuracy/sin.c | 1288 ++++++ src/regress/lib/libm/fpaccuracy/sinh.c | 927 ++++ src/regress/lib/libm/fpaccuracy/sqrt.c | 1087 +++++ src/regress/lib/libm/fpaccuracy/tan.c | 1628 +++++++ src/regress/lib/libm/fpaccuracy/tanh.c | 823 ++++ src/regress/lib/libm/fpaccuracy/trailer.h | 119 + src/regress/lib/libm/fpaccuracy/y0.c | 1008 +++++ src/regress/lib/libm/fpaccuracy/y1.c | 1019 +++++ src/regress/lib/libm/rint/CVS/Entries | 3 + src/regress/lib/libm/rint/CVS/Repository | 1 + src/regress/lib/libm/rint/CVS/Root | 1 + src/regress/lib/libm/rint/Makefile | 7 + src/regress/lib/libm/rint/obj | 1 + src/regress/lib/libm/rint/rint.c | 52 + src/regress/lib/libm/tgamma/CVS/Entries | 3 + src/regress/lib/libm/tgamma/CVS/Repository | 1 + src/regress/lib/libm/tgamma/CVS/Root | 1 + src/regress/lib/libm/tgamma/Makefile | 8 + src/regress/lib/libm/tgamma/obj | 1 + src/regress/lib/libm/tgamma/tgamma.c | 109 + src/regress/lib/libm/toint/CVS/Entries | 3 + src/regress/lib/libm/toint/CVS/Repository | 1 + src/regress/lib/libm/toint/CVS/Root | 1 + src/regress/lib/libm/toint/Makefile | 5 + src/regress/lib/libm/toint/obj | 1 + src/regress/lib/libm/toint/toint.c | 55 + src/regress/lib/libm/trivial1/CVS/Entries | 4 + src/regress/lib/libm/trivial1/CVS/Repository | 1 + src/regress/lib/libm/trivial1/CVS/Root | 1 + src/regress/lib/libm/trivial1/Makefile | 8 + src/regress/lib/libm/trivial1/obj | 1 + src/regress/lib/libm/trivial1/test-fp.out | 2 + src/regress/lib/libm/trivial1/test-fp.pl | 10 + src/regress/lib/libpthread/CVS/Entries | 51 + src/regress/lib/libpthread/CVS/Repository | 1 + src/regress/lib/libpthread/CVS/Root | 1 + src/regress/lib/libpthread/Makefile | 45 + src/regress/lib/libpthread/Makefile.inc | 14 + .../lib/libpthread/blocked_close/CVS/Entries | 3 + .../lib/libpthread/blocked_close/CVS/Repository | 1 + src/regress/lib/libpthread/blocked_close/CVS/Root | 1 + src/regress/lib/libpthread/blocked_close/Makefile | 5 + .../lib/libpthread/blocked_close/blocked_close.c | 114 + src/regress/lib/libpthread/blocked_close/obj | 1 + .../lib/libpthread/blocked_dup2/CVS/Entries | 3 + .../lib/libpthread/blocked_dup2/CVS/Repository | 1 + src/regress/lib/libpthread/blocked_dup2/CVS/Root | 1 + src/regress/lib/libpthread/blocked_dup2/Makefile | 5 + .../lib/libpthread/blocked_dup2/blocked_dup2.c | 118 + src/regress/lib/libpthread/blocked_dup2/obj | 1 + .../lib/libpthread/blocked_shutdown/CVS/Entries | 3 + .../lib/libpthread/blocked_shutdown/CVS/Repository | 1 + .../lib/libpthread/blocked_shutdown/CVS/Root | 1 + .../lib/libpthread/blocked_shutdown/Makefile | 5 + .../libpthread/blocked_shutdown/blocked_shutdown.c | 115 + src/regress/lib/libpthread/blocked_shutdown/obj | 1 + src/regress/lib/libpthread/cancel/CVS/Entries | 3 + src/regress/lib/libpthread/cancel/CVS/Repository | 1 + src/regress/lib/libpthread/cancel/CVS/Root | 1 + src/regress/lib/libpthread/cancel/Makefile | 5 + src/regress/lib/libpthread/cancel/cancel.c | 181 + src/regress/lib/libpthread/cancel/obj | 1 + src/regress/lib/libpthread/cancel2/CVS/Entries | 3 + src/regress/lib/libpthread/cancel2/CVS/Repository | 1 + src/regress/lib/libpthread/cancel2/CVS/Root | 1 + src/regress/lib/libpthread/cancel2/Makefile | 5 + src/regress/lib/libpthread/cancel2/cancel2.c | 43 + src/regress/lib/libpthread/cancel2/obj | 1 + src/regress/lib/libpthread/close/CVS/Entries | 3 + src/regress/lib/libpthread/close/CVS/Repository | 1 + src/regress/lib/libpthread/close/CVS/Root | 1 + src/regress/lib/libpthread/close/Makefile | 5 + src/regress/lib/libpthread/close/close.c | 160 + src/regress/lib/libpthread/close/obj | 1 + src/regress/lib/libpthread/close_race/CVS/Entries | 3 + .../lib/libpthread/close_race/CVS/Repository | 1 + src/regress/lib/libpthread/close_race/CVS/Root | 1 + src/regress/lib/libpthread/close_race/Makefile | 5 + src/regress/lib/libpthread/close_race/close_race.c | 78 + src/regress/lib/libpthread/close_race/obj | 1 + src/regress/lib/libpthread/closefrom/CVS/Entries | 3 + .../lib/libpthread/closefrom/CVS/Repository | 1 + src/regress/lib/libpthread/closefrom/CVS/Root | 1 + src/regress/lib/libpthread/closefrom/Makefile | 5 + src/regress/lib/libpthread/closefrom/closefrom.c | 47 + src/regress/lib/libpthread/closefrom/obj | 1 + src/regress/lib/libpthread/cwd/CVS/Entries | 3 + src/regress/lib/libpthread/cwd/CVS/Repository | 1 + src/regress/lib/libpthread/cwd/CVS/Root | 1 + src/regress/lib/libpthread/cwd/Makefile | 5 + src/regress/lib/libpthread/cwd/cwd.c | 56 + src/regress/lib/libpthread/cwd/obj | 1 + src/regress/lib/libpthread/dup2_race/CVS/Entries | 3 + .../lib/libpthread/dup2_race/CVS/Repository | 1 + src/regress/lib/libpthread/dup2_race/CVS/Root | 1 + src/regress/lib/libpthread/dup2_race/Makefile | 5 + src/regress/lib/libpthread/dup2_race/dup2_race.c | 81 + src/regress/lib/libpthread/dup2_race/obj | 1 + src/regress/lib/libpthread/execve/CVS/Entries | 3 + src/regress/lib/libpthread/execve/CVS/Repository | 1 + src/regress/lib/libpthread/execve/CVS/Root | 1 + src/regress/lib/libpthread/execve/Makefile | 5 + src/regress/lib/libpthread/execve/execve.c | 82 + src/regress/lib/libpthread/execve/obj | 1 + src/regress/lib/libpthread/fcntl/CVS/Entries | 3 + src/regress/lib/libpthread/fcntl/CVS/Repository | 1 + src/regress/lib/libpthread/fcntl/CVS/Root | 1 + src/regress/lib/libpthread/fcntl/Makefile | 5 + src/regress/lib/libpthread/fcntl/fcntl.c | 70 + src/regress/lib/libpthread/fork/CVS/Entries | 3 + src/regress/lib/libpthread/fork/CVS/Repository | 1 + src/regress/lib/libpthread/fork/CVS/Root | 1 + src/regress/lib/libpthread/fork/Makefile | 5 + src/regress/lib/libpthread/fork/fork.c | 137 + src/regress/lib/libpthread/fork/obj | 1 + src/regress/lib/libpthread/getaddrinfo/CVS/Entries | 3 + .../lib/libpthread/getaddrinfo/CVS/Repository | 1 + src/regress/lib/libpthread/getaddrinfo/CVS/Root | 1 + src/regress/lib/libpthread/getaddrinfo/Makefile | 5 + .../lib/libpthread/getaddrinfo/getaddrinfo.c | 91 + src/regress/lib/libpthread/group/CVS/Entries | 3 + src/regress/lib/libpthread/group/CVS/Repository | 1 + src/regress/lib/libpthread/group/CVS/Root | 1 + src/regress/lib/libpthread/group/Makefile | 5 + src/regress/lib/libpthread/group/group.c | 192 + src/regress/lib/libpthread/group/obj | 1 + src/regress/lib/libpthread/include/CVS/Entries | 2 + src/regress/lib/libpthread/include/CVS/Repository | 1 + src/regress/lib/libpthread/include/CVS/Root | 1 + src/regress/lib/libpthread/include/test.h | 124 + src/regress/lib/libpthread/malloc_duel/CVS/Entries | 3 + .../lib/libpthread/malloc_duel/CVS/Repository | 1 + src/regress/lib/libpthread/malloc_duel/CVS/Root | 1 + src/regress/lib/libpthread/malloc_duel/Makefile | 5 + .../lib/libpthread/malloc_duel/malloc_duel.c | 70 + src/regress/lib/libpthread/malloc_duel/obj | 1 + src/regress/lib/libpthread/netdb/CVS/Entries | 3 + src/regress/lib/libpthread/netdb/CVS/Repository | 1 + src/regress/lib/libpthread/netdb/CVS/Root | 1 + src/regress/lib/libpthread/netdb/Makefile | 5 + src/regress/lib/libpthread/netdb/netdb.c | 88 + src/regress/lib/libpthread/netdb/obj | 1 + src/regress/lib/libpthread/pause/CVS/Entries | 3 + src/regress/lib/libpthread/pause/CVS/Repository | 1 + src/regress/lib/libpthread/pause/CVS/Root | 1 + src/regress/lib/libpthread/pause/Makefile | 5 + src/regress/lib/libpthread/pause/pause.c | 73 + src/regress/lib/libpthread/pcap/CVS/Entries | 3 + src/regress/lib/libpthread/pcap/CVS/Repository | 1 + src/regress/lib/libpthread/pcap/CVS/Root | 1 + src/regress/lib/libpthread/pcap/Makefile | 13 + src/regress/lib/libpthread/pcap/obj | 1 + src/regress/lib/libpthread/pcap/pcap.c | 72 + src/regress/lib/libpthread/poll/CVS/Entries | 3 + src/regress/lib/libpthread/poll/CVS/Repository | 1 + src/regress/lib/libpthread/poll/CVS/Root | 1 + src/regress/lib/libpthread/poll/Makefile | 5 + src/regress/lib/libpthread/poll/obj | 1 + src/regress/lib/libpthread/poll/poll.c | 132 + src/regress/lib/libpthread/preemption/CVS/Entries | 3 + .../lib/libpthread/preemption/CVS/Repository | 1 + src/regress/lib/libpthread/preemption/CVS/Root | 1 + src/regress/lib/libpthread/preemption/Makefile | 5 + src/regress/lib/libpthread/preemption/obj | 1 + src/regress/lib/libpthread/preemption/preemption.c | 65 + .../lib/libpthread/preemption_float/CVS/Entries | 3 + .../lib/libpthread/preemption_float/CVS/Repository | 1 + .../lib/libpthread/preemption_float/CVS/Root | 1 + .../lib/libpthread/preemption_float/Makefile | 7 + src/regress/lib/libpthread/preemption_float/obj | 1 + .../libpthread/preemption_float/preemption_float.c | 140 + .../lib/libpthread/pthread_atfork/CVS/Entries | 3 + .../lib/libpthread/pthread_atfork/CVS/Repository | 1 + src/regress/lib/libpthread/pthread_atfork/CVS/Root | 1 + src/regress/lib/libpthread/pthread_atfork/Makefile | 5 + src/regress/lib/libpthread/pthread_atfork/obj | 1 + .../lib/libpthread/pthread_atfork/pthread_atfork.c | 119 + .../libpthread/pthread_cond_timedwait/CVS/Entries | 3 + .../pthread_cond_timedwait/CVS/Repository | 1 + .../lib/libpthread/pthread_cond_timedwait/CVS/Root | 1 + .../lib/libpthread/pthread_cond_timedwait/Makefile | 5 + .../lib/libpthread/pthread_cond_timedwait/obj | 1 + .../pthread_cond_timedwait.c | 124 + .../lib/libpthread/pthread_create/CVS/Entries | 3 + .../lib/libpthread/pthread_create/CVS/Repository | 1 + src/regress/lib/libpthread/pthread_create/CVS/Root | 1 + src/regress/lib/libpthread/pthread_create/Makefile | 5 + src/regress/lib/libpthread/pthread_create/obj | 1 + .../lib/libpthread/pthread_create/pthread_create.c | 68 + .../lib/libpthread/pthread_join/CVS/Entries | 3 + .../lib/libpthread/pthread_join/CVS/Repository | 1 + src/regress/lib/libpthread/pthread_join/CVS/Root | 1 + src/regress/lib/libpthread/pthread_join/Makefile | 5 + src/regress/lib/libpthread/pthread_join/obj | 1 + .../lib/libpthread/pthread_join/pthread_join.c | 101 + .../lib/libpthread/pthread_kill/CVS/Entries | 3 + .../lib/libpthread/pthread_kill/CVS/Repository | 1 + src/regress/lib/libpthread/pthread_kill/CVS/Root | 1 + src/regress/lib/libpthread/pthread_kill/Makefile | 5 + src/regress/lib/libpthread/pthread_kill/obj | 1 + .../lib/libpthread/pthread_kill/pthread_kill.c | 84 + .../lib/libpthread/pthread_mutex/CVS/Entries | 3 + .../lib/libpthread/pthread_mutex/CVS/Repository | 1 + src/regress/lib/libpthread/pthread_mutex/CVS/Root | 1 + src/regress/lib/libpthread/pthread_mutex/Makefile | 5 + src/regress/lib/libpthread/pthread_mutex/obj | 1 + .../lib/libpthread/pthread_mutex/pthread_mutex.c | 195 + .../lib/libpthread/pthread_specific/CVS/Entries | 3 + .../lib/libpthread/pthread_specific/CVS/Repository | 1 + .../lib/libpthread/pthread_specific/CVS/Root | 1 + .../lib/libpthread/pthread_specific/Makefile | 5 + src/regress/lib/libpthread/pthread_specific/obj | 1 + .../libpthread/pthread_specific/pthread_specific.c | 87 + src/regress/lib/libpthread/pw/CVS/Entries | 3 + src/regress/lib/libpthread/pw/CVS/Repository | 1 + src/regress/lib/libpthread/pw/CVS/Root | 1 + src/regress/lib/libpthread/pw/Makefile | 5 + src/regress/lib/libpthread/pw/pw.c | 61 + src/regress/lib/libpthread/readdir/CVS/Entries | 3 + src/regress/lib/libpthread/readdir/CVS/Repository | 1 + src/regress/lib/libpthread/readdir/CVS/Root | 1 + src/regress/lib/libpthread/readdir/Makefile | 5 + src/regress/lib/libpthread/readdir/obj | 1 + src/regress/lib/libpthread/readdir/readdir.c | 66 + src/regress/lib/libpthread/select/CVS/Entries | 3 + src/regress/lib/libpthread/select/CVS/Repository | 1 + src/regress/lib/libpthread/select/CVS/Root | 1 + src/regress/lib/libpthread/select/Makefile | 5 + src/regress/lib/libpthread/select/obj | 1 + src/regress/lib/libpthread/select/select.c | 149 + src/regress/lib/libpthread/setjmp/CVS/Entries | 3 + src/regress/lib/libpthread/setjmp/CVS/Repository | 1 + src/regress/lib/libpthread/setjmp/CVS/Root | 1 + src/regress/lib/libpthread/setjmp/Makefile | 5 + src/regress/lib/libpthread/setjmp/obj | 1 + src/regress/lib/libpthread/setjmp/setjmp.c | 91 + .../lib/libpthread/setsockopt/1/CVS/Entries | 3 + .../lib/libpthread/setsockopt/1/CVS/Repository | 1 + src/regress/lib/libpthread/setsockopt/1/CVS/Root | 1 + src/regress/lib/libpthread/setsockopt/1/Makefile | 6 + src/regress/lib/libpthread/setsockopt/1/obj | 1 + .../lib/libpthread/setsockopt/1/setsockopt1.c | 101 + .../lib/libpthread/setsockopt/2/CVS/Entries | 3 + .../lib/libpthread/setsockopt/2/CVS/Repository | 1 + src/regress/lib/libpthread/setsockopt/2/CVS/Root | 1 + src/regress/lib/libpthread/setsockopt/2/Makefile | 6 + src/regress/lib/libpthread/setsockopt/2/obj | 1 + .../lib/libpthread/setsockopt/2/setsockopt2.c | 119 + .../lib/libpthread/setsockopt/3/CVS/Entries | 3 + .../lib/libpthread/setsockopt/3/CVS/Repository | 1 + src/regress/lib/libpthread/setsockopt/3/CVS/Root | 1 + src/regress/lib/libpthread/setsockopt/3/Makefile | 7 + src/regress/lib/libpthread/setsockopt/3/obj | 1 + .../lib/libpthread/setsockopt/3/setsockopt3.c | 75 + .../lib/libpthread/setsockopt/3a/CVS/Entries | 3 + .../lib/libpthread/setsockopt/3a/CVS/Repository | 1 + src/regress/lib/libpthread/setsockopt/3a/CVS/Root | 1 + src/regress/lib/libpthread/setsockopt/3a/Makefile | 18 + src/regress/lib/libpthread/setsockopt/3a/obj | 1 + .../lib/libpthread/setsockopt/3a/setsockopt3a.c | 75 + src/regress/lib/libpthread/setsockopt/CVS/Entries | 6 + .../lib/libpthread/setsockopt/CVS/Repository | 1 + src/regress/lib/libpthread/setsockopt/CVS/Root | 1 + src/regress/lib/libpthread/setsockopt/Makefile | 5 + src/regress/lib/libpthread/setsockopt/Makefile.inc | 3 + src/regress/lib/libpthread/sigdeliver/CVS/Entries | 3 + .../lib/libpthread/sigdeliver/CVS/Repository | 1 + src/regress/lib/libpthread/sigdeliver/CVS/Root | 1 + src/regress/lib/libpthread/sigdeliver/Makefile | 5 + src/regress/lib/libpthread/sigdeliver/obj | 1 + src/regress/lib/libpthread/sigdeliver/sigdeliver.c | 66 + src/regress/lib/libpthread/siginfo/CVS/Entries | 3 + src/regress/lib/libpthread/siginfo/CVS/Repository | 1 + src/regress/lib/libpthread/siginfo/CVS/Root | 1 + src/regress/lib/libpthread/siginfo/Makefile | 5 + src/regress/lib/libpthread/siginfo/obj | 1 + src/regress/lib/libpthread/siginfo/siginfo.c | 49 + src/regress/lib/libpthread/sigmask/CVS/Entries | 3 + src/regress/lib/libpthread/sigmask/CVS/Repository | 1 + src/regress/lib/libpthread/sigmask/CVS/Root | 1 + src/regress/lib/libpthread/sigmask/Makefile | 5 + src/regress/lib/libpthread/sigmask/sigmask.c | 64 + src/regress/lib/libpthread/signal/CVS/Entries | 3 + src/regress/lib/libpthread/signal/CVS/Repository | 1 + src/regress/lib/libpthread/signal/CVS/Root | 1 + src/regress/lib/libpthread/signal/Makefile | 5 + src/regress/lib/libpthread/signal/obj | 1 + src/regress/lib/libpthread/signal/signal.c | 56 + src/regress/lib/libpthread/signodefer/CVS/Entries | 3 + .../lib/libpthread/signodefer/CVS/Repository | 1 + src/regress/lib/libpthread/signodefer/CVS/Root | 1 + src/regress/lib/libpthread/signodefer/Makefile | 5 + src/regress/lib/libpthread/signodefer/obj | 1 + src/regress/lib/libpthread/signodefer/signodefer.c | 67 + src/regress/lib/libpthread/sigsuspend/CVS/Entries | 3 + .../lib/libpthread/sigsuspend/CVS/Repository | 1 + src/regress/lib/libpthread/sigsuspend/CVS/Root | 1 + src/regress/lib/libpthread/sigsuspend/Makefile | 5 + src/regress/lib/libpthread/sigsuspend/obj | 1 + src/regress/lib/libpthread/sigsuspend/sigsuspend.c | 253 ++ src/regress/lib/libpthread/sigwait/CVS/Entries | 3 + src/regress/lib/libpthread/sigwait/CVS/Repository | 1 + src/regress/lib/libpthread/sigwait/CVS/Root | 1 + src/regress/lib/libpthread/sigwait/Makefile | 5 + src/regress/lib/libpthread/sigwait/obj | 1 + src/regress/lib/libpthread/sigwait/sigwait.c | 270 ++ src/regress/lib/libpthread/sleep/CVS/Entries | 3 + src/regress/lib/libpthread/sleep/CVS/Repository | 1 + src/regress/lib/libpthread/sleep/CVS/Root | 1 + src/regress/lib/libpthread/sleep/Makefile | 5 + src/regress/lib/libpthread/sleep/obj | 1 + src/regress/lib/libpthread/sleep/sleep.c | 85 + src/regress/lib/libpthread/socket/1/CVS/Entries | 3 + src/regress/lib/libpthread/socket/1/CVS/Repository | 1 + src/regress/lib/libpthread/socket/1/CVS/Root | 1 + src/regress/lib/libpthread/socket/1/Makefile | 6 + src/regress/lib/libpthread/socket/1/obj | 1 + src/regress/lib/libpthread/socket/1/socket1.c | 193 + src/regress/lib/libpthread/socket/2/CVS/Entries | 3 + src/regress/lib/libpthread/socket/2/CVS/Repository | 1 + src/regress/lib/libpthread/socket/2/CVS/Root | 1 + src/regress/lib/libpthread/socket/2/Makefile | 7 + src/regress/lib/libpthread/socket/2/obj | 1 + src/regress/lib/libpthread/socket/2/socket2.c | 189 + src/regress/lib/libpthread/socket/2a/CVS/Entries | 3 + .../lib/libpthread/socket/2a/CVS/Repository | 1 + src/regress/lib/libpthread/socket/2a/CVS/Root | 1 + src/regress/lib/libpthread/socket/2a/Makefile | 19 + src/regress/lib/libpthread/socket/2a/obj | 1 + src/regress/lib/libpthread/socket/2a/socket2a.c | 116 + src/regress/lib/libpthread/socket/3/CVS/Entries | 3 + src/regress/lib/libpthread/socket/3/CVS/Repository | 1 + src/regress/lib/libpthread/socket/3/CVS/Root | 1 + src/regress/lib/libpthread/socket/3/Makefile | 6 + src/regress/lib/libpthread/socket/3/obj | 1 + src/regress/lib/libpthread/socket/3/socket3.c | 121 + src/regress/lib/libpthread/socket/CVS/Entries | 6 + src/regress/lib/libpthread/socket/CVS/Repository | 1 + src/regress/lib/libpthread/socket/CVS/Root | 1 + src/regress/lib/libpthread/socket/Makefile | 5 + src/regress/lib/libpthread/socket/Makefile.inc | 3 + src/regress/lib/libpthread/stdarg/CVS/Entries | 3 + src/regress/lib/libpthread/stdarg/CVS/Repository | 1 + src/regress/lib/libpthread/stdarg/CVS/Root | 1 + src/regress/lib/libpthread/stdarg/Makefile | 9 + src/regress/lib/libpthread/stdarg/obj | 1 + src/regress/lib/libpthread/stdarg/stdarg.c | 88 + src/regress/lib/libpthread/stdfiles/CVS/Entries | 3 + src/regress/lib/libpthread/stdfiles/CVS/Repository | 1 + src/regress/lib/libpthread/stdfiles/CVS/Root | 1 + src/regress/lib/libpthread/stdfiles/Makefile | 35 + src/regress/lib/libpthread/stdfiles/stdfiles.c | 128 + src/regress/lib/libpthread/stdio/CVS/Entries | 3 + src/regress/lib/libpthread/stdio/CVS/Repository | 1 + src/regress/lib/libpthread/stdio/CVS/Root | 1 + src/regress/lib/libpthread/stdio/Makefile | 5 + src/regress/lib/libpthread/stdio/obj | 1 + src/regress/lib/libpthread/stdio/stdio.c | 113 + src/regress/lib/libpthread/switch/CVS/Entries | 3 + src/regress/lib/libpthread/switch/CVS/Repository | 1 + src/regress/lib/libpthread/switch/CVS/Root | 1 + src/regress/lib/libpthread/switch/Makefile | 5 + src/regress/lib/libpthread/switch/obj | 1 + src/regress/lib/libpthread/switch/switch.c | 127 + src/regress/lib/libpthread/system/CVS/Entries | 3 + src/regress/lib/libpthread/system/CVS/Repository | 1 + src/regress/lib/libpthread/system/CVS/Root | 1 + src/regress/lib/libpthread/system/Makefile | 5 + src/regress/lib/libpthread/system/obj | 1 + src/regress/lib/libpthread/system/system.c | 19 + src/regress/lib/libskey/CVS/Entries | 3 + src/regress/lib/libskey/CVS/Repository | 1 + src/regress/lib/libskey/CVS/Root | 1 + src/regress/lib/libskey/Makefile | 15 + src/regress/lib/libskey/obj | 1 + src/regress/lib/libskey/skeytest.c | 111 + src/regress/lib/libsndio/CVS/Entries | 6 + src/regress/lib/libsndio/CVS/Repository | 1 + src/regress/lib/libsndio/CVS/Root | 1 + src/regress/lib/libsndio/Makefile | 5 + src/regress/lib/libsndio/cap/CVS/Entries | 3 + src/regress/lib/libsndio/cap/CVS/Repository | 1 + src/regress/lib/libsndio/cap/CVS/Root | 1 + src/regress/lib/libsndio/cap/Makefile | 6 + src/regress/lib/libsndio/cap/cap.c | 97 + src/regress/lib/libsndio/fd/CVS/Entries | 3 + src/regress/lib/libsndio/fd/CVS/Repository | 1 + src/regress/lib/libsndio/fd/CVS/Root | 1 + src/regress/lib/libsndio/fd/Makefile | 6 + src/regress/lib/libsndio/fd/fd.c | 363 ++ src/regress/lib/libsndio/play/CVS/Entries | 3 + src/regress/lib/libsndio/play/CVS/Repository | 1 + src/regress/lib/libsndio/play/CVS/Root | 1 + src/regress/lib/libsndio/play/Makefile | 6 + src/regress/lib/libsndio/play/play.c | 133 + src/regress/lib/libsndio/rec/CVS/Entries | 3 + src/regress/lib/libsndio/rec/CVS/Repository | 1 + src/regress/lib/libsndio/rec/CVS/Root | 1 + src/regress/lib/libsndio/rec/Makefile | 6 + src/regress/lib/libsndio/rec/rec.c | 118 + src/regress/lib/libsndio/vol/CVS/Entries | 3 + src/regress/lib/libsndio/vol/CVS/Repository | 1 + src/regress/lib/libsndio/vol/CVS/Root | 1 + src/regress/lib/libsndio/vol/Makefile | 6 + src/regress/lib/libsndio/vol/vol.c | 157 + src/regress/lib/libssl/CVS/Entries | 9 + src/regress/lib/libssl/CVS/Repository | 1 + src/regress/lib/libssl/CVS/Root | 1 + src/regress/lib/libssl/Makefile | 277 ++ src/regress/lib/libssl/README | 6 + src/regress/lib/libssl/obj | 1 + src/regress/lib/libssl/openssl.cnf | 29 + src/regress/lib/libssl/test_client.sh | 13 + src/regress/lib/libssl/test_server.sh | 11 + src/regress/lib/libssl/testdsa.sh | 29 + src/regress/lib/libssl/testenc.sh | 70 + src/regress/lib/libssl/testrsa.sh | 29 + src/regress/lib/libutil/CVS/Entries | 2 + src/regress/lib/libutil/CVS/Repository | 1 + src/regress/lib/libutil/CVS/Root | 1 + src/regress/lib/libutil/Makefile | 9 + src/regress/lib/libutil/fmt_scaled/CVS/Entries | 3 + src/regress/lib/libutil/fmt_scaled/CVS/Repository | 1 + src/regress/lib/libutil/fmt_scaled/CVS/Root | 1 + src/regress/lib/libutil/fmt_scaled/Makefile | 9 + src/regress/lib/libutil/fmt_scaled/fmt_test.c | 288 ++ src/regress/lib/libutil/fmt_scaled/obj | 1 + src/regress/libexec/CVS/Entries | 2 + src/regress/libexec/CVS/Repository | 1 + src/regress/libexec/CVS/Root | 1 + src/regress/libexec/Makefile | 11 + src/regress/libexec/ld.so/CVS/Entries | 11 + src/regress/libexec/ld.so/CVS/Repository | 1 + src/regress/libexec/ld.so/CVS/Root | 1 + src/regress/libexec/ld.so/Makefile | 9 + src/regress/libexec/ld.so/constructor/CVS/Entries | 5 + .../libexec/ld.so/constructor/CVS/Repository | 1 + src/regress/libexec/ld.so/constructor/CVS/Root | 1 + src/regress/libexec/ld.so/constructor/Makefile | 3 + .../libexec/ld.so/constructor/libaa/CVS/Entries | 5 + .../libexec/ld.so/constructor/libaa/CVS/Repository | 1 + .../libexec/ld.so/constructor/libaa/CVS/Root | 1 + .../libexec/ld.so/constructor/libaa/Makefile | 3 + src/regress/libexec/ld.so/constructor/libaa/aa.C | 17 + src/regress/libexec/ld.so/constructor/libaa/aa.h | 6 + .../libexec/ld.so/constructor/libaa/shlib_version | 2 + .../libexec/ld.so/constructor/libab/CVS/Entries | 5 + .../libexec/ld.so/constructor/libab/CVS/Repository | 1 + .../libexec/ld.so/constructor/libab/CVS/Root | 1 + .../libexec/ld.so/constructor/libab/Makefile | 6 + src/regress/libexec/ld.so/constructor/libab/ab.C | 22 + src/regress/libexec/ld.so/constructor/libab/ab.h | 11 + .../libexec/ld.so/constructor/libab/shlib_version | 2 + .../libexec/ld.so/constructor/prog1/CVS/Entries | 3 + .../libexec/ld.so/constructor/prog1/CVS/Repository | 1 + .../libexec/ld.so/constructor/prog1/CVS/Root | 1 + .../libexec/ld.so/constructor/prog1/Makefile | 34 + .../libexec/ld.so/constructor/prog1/prog1.C | 16 + .../libexec/ld.so/constructor/prog2/CVS/Entries | 3 + .../libexec/ld.so/constructor/prog2/CVS/Repository | 1 + .../libexec/ld.so/constructor/prog2/CVS/Root | 1 + .../libexec/ld.so/constructor/prog2/Makefile | 34 + .../libexec/ld.so/constructor/prog2/prog2.C | 16 + src/regress/libexec/ld.so/dlclose/CVS/Entries | 3 + src/regress/libexec/ld.so/dlclose/CVS/Repository | 1 + src/regress/libexec/ld.so/dlclose/CVS/Root | 1 + src/regress/libexec/ld.so/dlclose/Makefile | 5 + .../libexec/ld.so/dlclose/test1/CVS/Entries | 7 + .../libexec/ld.so/dlclose/test1/CVS/Repository | 1 + src/regress/libexec/ld.so/dlclose/test1/CVS/Root | 1 + src/regress/libexec/ld.so/dlclose/test1/Makefile | 5 + .../libexec/ld.so/dlclose/test1/Makefile.inc | 19 + .../libexec/ld.so/dlclose/test1/libaa/CVS/Entries | 4 + .../ld.so/dlclose/test1/libaa/CVS/Repository | 1 + .../libexec/ld.so/dlclose/test1/libaa/CVS/Root | 1 + .../libexec/ld.so/dlclose/test1/libaa/Makefile | 11 + src/regress/libexec/ld.so/dlclose/test1/libaa/aa.c | 27 + src/regress/libexec/ld.so/dlclose/test1/libaa/obj | 1 + .../ld.so/dlclose/test1/libaa/shlib_version | 2 + .../libexec/ld.so/dlclose/test1/libbb/CVS/Entries | 4 + .../ld.so/dlclose/test1/libbb/CVS/Repository | 1 + .../libexec/ld.so/dlclose/test1/libbb/CVS/Root | 1 + .../libexec/ld.so/dlclose/test1/libbb/Makefile | 8 + src/regress/libexec/ld.so/dlclose/test1/libbb/bb.c | 57 + src/regress/libexec/ld.so/dlclose/test1/libbb/obj | 1 + .../ld.so/dlclose/test1/libbb/shlib_version | 2 + .../libexec/ld.so/dlclose/test1/prog1/CVS/Entries | 3 + .../ld.so/dlclose/test1/prog1/CVS/Repository | 1 + .../libexec/ld.so/dlclose/test1/prog1/CVS/Root | 1 + .../libexec/ld.so/dlclose/test1/prog1/Makefile | 8 + .../libexec/ld.so/dlclose/test1/prog1/main.c | 48 + src/regress/libexec/ld.so/dlclose/test1/prog1/obj | 1 + .../libexec/ld.so/dlclose/test1/prog2/CVS/Entries | 3 + .../ld.so/dlclose/test1/prog2/CVS/Repository | 1 + .../libexec/ld.so/dlclose/test1/prog2/CVS/Root | 1 + .../libexec/ld.so/dlclose/test1/prog2/Makefile | 9 + .../libexec/ld.so/dlclose/test1/prog2/main.c | 49 + src/regress/libexec/ld.so/dlclose/test1/prog2/obj | 1 + .../libexec/ld.so/dlclose/test1/prog3/CVS/Entries | 3 + .../ld.so/dlclose/test1/prog3/CVS/Repository | 1 + .../libexec/ld.so/dlclose/test1/prog3/CVS/Root | 1 + .../libexec/ld.so/dlclose/test1/prog3/Makefile | 9 + .../libexec/ld.so/dlclose/test1/prog3/main.c | 56 + src/regress/libexec/ld.so/dlclose/test1/prog3/obj | 1 + .../libexec/ld.so/dlclose/test2/CVS/Entries | 7 + .../libexec/ld.so/dlclose/test2/CVS/Repository | 1 + src/regress/libexec/ld.so/dlclose/test2/CVS/Root | 1 + src/regress/libexec/ld.so/dlclose/test2/Makefile | 5 + .../libexec/ld.so/dlclose/test2/Makefile.inc | 35 + .../libexec/ld.so/dlclose/test2/libaa/CVS/Entries | 4 + .../ld.so/dlclose/test2/libaa/CVS/Repository | 1 + .../libexec/ld.so/dlclose/test2/libaa/CVS/Root | 1 + .../libexec/ld.so/dlclose/test2/libaa/Makefile | 13 + src/regress/libexec/ld.so/dlclose/test2/libaa/aa.c | 20 + src/regress/libexec/ld.so/dlclose/test2/libaa/obj | 1 + .../ld.so/dlclose/test2/libaa/shlib_version | 2 + .../libexec/ld.so/dlclose/test2/libbb/CVS/Entries | 4 + .../ld.so/dlclose/test2/libbb/CVS/Repository | 1 + .../libexec/ld.so/dlclose/test2/libbb/CVS/Root | 1 + .../libexec/ld.so/dlclose/test2/libbb/Makefile | 11 + src/regress/libexec/ld.so/dlclose/test2/libbb/bb.c | 20 + src/regress/libexec/ld.so/dlclose/test2/libbb/obj | 1 + .../ld.so/dlclose/test2/libbb/shlib_version | 2 + .../libexec/ld.so/dlclose/test2/libcc/CVS/Entries | 4 + .../ld.so/dlclose/test2/libcc/CVS/Repository | 1 + .../libexec/ld.so/dlclose/test2/libcc/CVS/Root | 1 + .../libexec/ld.so/dlclose/test2/libcc/Makefile | 11 + src/regress/libexec/ld.so/dlclose/test2/libcc/cc.c | 20 + src/regress/libexec/ld.so/dlclose/test2/libcc/obj | 1 + .../ld.so/dlclose/test2/libcc/shlib_version | 2 + .../libexec/ld.so/dlclose/test2/libzz/CVS/Entries | 4 + .../ld.so/dlclose/test2/libzz/CVS/Repository | 1 + .../libexec/ld.so/dlclose/test2/libzz/CVS/Root | 1 + .../libexec/ld.so/dlclose/test2/libzz/Makefile | 8 + src/regress/libexec/ld.so/dlclose/test2/libzz/obj | 1 + .../ld.so/dlclose/test2/libzz/shlib_version | 2 + src/regress/libexec/ld.so/dlclose/test2/libzz/zz.c | 20 + .../libexec/ld.so/dlclose/test2/prog1/CVS/Entries | 3 + .../ld.so/dlclose/test2/prog1/CVS/Repository | 1 + .../libexec/ld.so/dlclose/test2/prog1/CVS/Root | 1 + .../libexec/ld.so/dlclose/test2/prog1/Makefile | 8 + .../libexec/ld.so/dlclose/test2/prog1/main.c | 53 + src/regress/libexec/ld.so/dlclose/test2/prog1/obj | 1 + src/regress/libexec/ld.so/dlopen/CVS/Entries | 8 + src/regress/libexec/ld.so/dlopen/CVS/Repository | 1 + src/regress/libexec/ld.so/dlopen/CVS/Root | 1 + src/regress/libexec/ld.so/dlopen/Makefile | 3 + src/regress/libexec/ld.so/dlopen/libaa/CVS/Entries | 5 + .../libexec/ld.so/dlopen/libaa/CVS/Repository | 1 + src/regress/libexec/ld.so/dlopen/libaa/CVS/Root | 1 + src/regress/libexec/ld.so/dlopen/libaa/Makefile | 6 + src/regress/libexec/ld.so/dlopen/libaa/aa.C | 34 + src/regress/libexec/ld.so/dlopen/libaa/aa.h | 9 + src/regress/libexec/ld.so/dlopen/libaa/obj | 1 + .../libexec/ld.so/dlopen/libaa/shlib_version | 2 + src/regress/libexec/ld.so/dlopen/libab/CVS/Entries | 5 + .../libexec/ld.so/dlopen/libab/CVS/Repository | 1 + src/regress/libexec/ld.so/dlopen/libab/CVS/Root | 1 + src/regress/libexec/ld.so/dlopen/libab/Makefile | 7 + src/regress/libexec/ld.so/dlopen/libab/ab.C | 36 + src/regress/libexec/ld.so/dlopen/libab/ab.h | 14 + src/regress/libexec/ld.so/dlopen/libab/obj | 1 + .../libexec/ld.so/dlopen/libab/shlib_version | 2 + src/regress/libexec/ld.so/dlopen/libac/CVS/Entries | 5 + .../libexec/ld.so/dlopen/libac/CVS/Repository | 1 + src/regress/libexec/ld.so/dlopen/libac/CVS/Root | 1 + src/regress/libexec/ld.so/dlopen/libac/Makefile | 7 + src/regress/libexec/ld.so/dlopen/libac/ac.C | 31 + src/regress/libexec/ld.so/dlopen/libac/ac.h | 14 + src/regress/libexec/ld.so/dlopen/libac/obj | 1 + .../libexec/ld.so/dlopen/libac/shlib_version | 2 + src/regress/libexec/ld.so/dlopen/prog1/CVS/Entries | 3 + .../libexec/ld.so/dlopen/prog1/CVS/Repository | 1 + src/regress/libexec/ld.so/dlopen/prog1/CVS/Root | 1 + src/regress/libexec/ld.so/dlopen/prog1/Makefile | 36 + src/regress/libexec/ld.so/dlopen/prog1/obj | 1 + src/regress/libexec/ld.so/dlopen/prog1/prog1.C | 64 + src/regress/libexec/ld.so/dlopen/prog2/CVS/Entries | 3 + .../libexec/ld.so/dlopen/prog2/CVS/Repository | 1 + src/regress/libexec/ld.so/dlopen/prog2/CVS/Root | 1 + src/regress/libexec/ld.so/dlopen/prog2/Makefile | 34 + src/regress/libexec/ld.so/dlopen/prog2/obj | 1 + src/regress/libexec/ld.so/dlopen/prog2/prog2.C | 16 + src/regress/libexec/ld.so/dlopen/prog3/CVS/Entries | 3 + .../libexec/ld.so/dlopen/prog3/CVS/Repository | 1 + src/regress/libexec/ld.so/dlopen/prog3/CVS/Root | 1 + src/regress/libexec/ld.so/dlopen/prog3/Makefile | 34 + src/regress/libexec/ld.so/dlopen/prog3/main.c | 21 + src/regress/libexec/ld.so/dlopen/prog3/obj | 1 + src/regress/libexec/ld.so/dlopen/prog4/CVS/Entries | 3 + .../libexec/ld.so/dlopen/prog4/CVS/Repository | 1 + src/regress/libexec/ld.so/dlopen/prog4/CVS/Root | 1 + src/regress/libexec/ld.so/dlopen/prog4/Makefile | 36 + src/regress/libexec/ld.so/dlopen/prog4/main.c | 22 + src/regress/libexec/ld.so/dlopen/prog4/obj | 1 + src/regress/libexec/ld.so/dlsym/CVS/Entries | 4 + src/regress/libexec/ld.so/dlsym/CVS/Repository | 1 + src/regress/libexec/ld.so/dlsym/CVS/Root | 1 + src/regress/libexec/ld.so/dlsym/Makefile | 5 + src/regress/libexec/ld.so/dlsym/test1/CVS/Entries | 4 + .../libexec/ld.so/dlsym/test1/CVS/Repository | 1 + src/regress/libexec/ld.so/dlsym/test1/CVS/Root | 1 + src/regress/libexec/ld.so/dlsym/test1/Makefile | 5 + .../libexec/ld.so/dlsym/test1/libaa/CVS/Entries | 5 + .../libexec/ld.so/dlsym/test1/libaa/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test1/libaa/CVS/Root | 1 + .../libexec/ld.so/dlsym/test1/libaa/Makefile | 8 + src/regress/libexec/ld.so/dlsym/test1/libaa/aa.c | 90 + src/regress/libexec/ld.so/dlsym/test1/libaa/aa.h | 19 + src/regress/libexec/ld.so/dlsym/test1/libaa/obj | 1 + .../libexec/ld.so/dlsym/test1/libaa/shlib_version | 2 + .../libexec/ld.so/dlsym/test1/prog1/CVS/Entries | 3 + .../libexec/ld.so/dlsym/test1/prog1/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test1/prog1/CVS/Root | 1 + .../libexec/ld.so/dlsym/test1/prog1/Makefile | 21 + src/regress/libexec/ld.so/dlsym/test1/prog1/main.c | 29 + src/regress/libexec/ld.so/dlsym/test1/prog1/obj | 1 + .../libexec/ld.so/dlsym/test1/prog2/CVS/Entries | 3 + .../libexec/ld.so/dlsym/test1/prog2/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test1/prog2/CVS/Root | 1 + .../libexec/ld.so/dlsym/test1/prog2/Makefile | 21 + src/regress/libexec/ld.so/dlsym/test1/prog2/main.c | 61 + src/regress/libexec/ld.so/dlsym/test1/prog2/obj | 1 + src/regress/libexec/ld.so/dlsym/test2/CVS/Entries | 10 + .../libexec/ld.so/dlsym/test2/CVS/Repository | 1 + src/regress/libexec/ld.so/dlsym/test2/CVS/Root | 1 + src/regress/libexec/ld.so/dlsym/test2/Makefile | 5 + src/regress/libexec/ld.so/dlsym/test2/Makefile.inc | 27 + .../libexec/ld.so/dlsym/test2/libaa/CVS/Entries | 4 + .../libexec/ld.so/dlsym/test2/libaa/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test2/libaa/CVS/Root | 1 + .../libexec/ld.so/dlsym/test2/libaa/Makefile | 8 + src/regress/libexec/ld.so/dlsym/test2/libaa/aa.c | 19 + src/regress/libexec/ld.so/dlsym/test2/libaa/obj | 1 + .../libexec/ld.so/dlsym/test2/libaa/shlib_version | 2 + .../libexec/ld.so/dlsym/test2/libbb/CVS/Entries | 4 + .../libexec/ld.so/dlsym/test2/libbb/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test2/libbb/CVS/Root | 1 + .../libexec/ld.so/dlsym/test2/libbb/Makefile | 11 + src/regress/libexec/ld.so/dlsym/test2/libbb/bb.c | 103 + src/regress/libexec/ld.so/dlsym/test2/libbb/obj | 1 + .../libexec/ld.so/dlsym/test2/libbb/shlib_version | 2 + .../libexec/ld.so/dlsym/test2/libcc/CVS/Entries | 4 + .../libexec/ld.so/dlsym/test2/libcc/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test2/libcc/CVS/Root | 1 + .../libexec/ld.so/dlsym/test2/libcc/Makefile | 8 + src/regress/libexec/ld.so/dlsym/test2/libcc/cc.c | 19 + src/regress/libexec/ld.so/dlsym/test2/libcc/obj | 1 + .../libexec/ld.so/dlsym/test2/libcc/shlib_version | 2 + .../libexec/ld.so/dlsym/test2/prog1/CVS/Entries | 3 + .../libexec/ld.so/dlsym/test2/prog1/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test2/prog1/CVS/Root | 1 + .../libexec/ld.so/dlsym/test2/prog1/Makefile | 11 + src/regress/libexec/ld.so/dlsym/test2/prog1/main.c | 74 + src/regress/libexec/ld.so/dlsym/test2/prog1/obj | 1 + .../libexec/ld.so/dlsym/test2/prog2/CVS/Entries | 3 + .../libexec/ld.so/dlsym/test2/prog2/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test2/prog2/CVS/Root | 1 + .../libexec/ld.so/dlsym/test2/prog2/Makefile | 11 + src/regress/libexec/ld.so/dlsym/test2/prog2/main.c | 43 + src/regress/libexec/ld.so/dlsym/test2/prog2/obj | 1 + .../libexec/ld.so/dlsym/test2/prog3/CVS/Entries | 3 + .../libexec/ld.so/dlsym/test2/prog3/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test2/prog3/CVS/Root | 1 + .../libexec/ld.so/dlsym/test2/prog3/Makefile | 11 + src/regress/libexec/ld.so/dlsym/test2/prog3/main.c | 75 + src/regress/libexec/ld.so/dlsym/test2/prog3/obj | 1 + .../libexec/ld.so/dlsym/test2/prog4/CVS/Entries | 3 + .../libexec/ld.so/dlsym/test2/prog4/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test2/prog4/CVS/Root | 1 + .../libexec/ld.so/dlsym/test2/prog4/Makefile | 12 + src/regress/libexec/ld.so/dlsym/test2/prog4/main.c | 54 + src/regress/libexec/ld.so/dlsym/test2/prog4/obj | 1 + .../libexec/ld.so/dlsym/test2/prog5/CVS/Entries | 3 + .../libexec/ld.so/dlsym/test2/prog5/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test2/prog5/CVS/Root | 1 + .../libexec/ld.so/dlsym/test2/prog5/Makefile | 12 + src/regress/libexec/ld.so/dlsym/test2/prog5/main.c | 55 + src/regress/libexec/ld.so/dlsym/test2/prog5/obj | 1 + src/regress/libexec/ld.so/dlsym/test3/CVS/Entries | 11 + .../libexec/ld.so/dlsym/test3/CVS/Repository | 1 + src/regress/libexec/ld.so/dlsym/test3/CVS/Root | 1 + src/regress/libexec/ld.so/dlsym/test3/Makefile | 5 + src/regress/libexec/ld.so/dlsym/test3/Makefile.inc | 43 + .../libexec/ld.so/dlsym/test3/libaa/CVS/Entries | 4 + .../libexec/ld.so/dlsym/test3/libaa/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test3/libaa/CVS/Root | 1 + .../libexec/ld.so/dlsym/test3/libaa/Makefile | 8 + src/regress/libexec/ld.so/dlsym/test3/libaa/aa.c | 20 + src/regress/libexec/ld.so/dlsym/test3/libaa/obj | 1 + .../libexec/ld.so/dlsym/test3/libaa/shlib_version | 2 + .../libexec/ld.so/dlsym/test3/libbb/CVS/Entries | 4 + .../libexec/ld.so/dlsym/test3/libbb/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test3/libbb/CVS/Root | 1 + .../libexec/ld.so/dlsym/test3/libbb/Makefile | 11 + src/regress/libexec/ld.so/dlsym/test3/libbb/bb.c | 115 + src/regress/libexec/ld.so/dlsym/test3/libbb/obj | 1 + .../libexec/ld.so/dlsym/test3/libbb/shlib_version | 2 + .../libexec/ld.so/dlsym/test3/libcc/CVS/Entries | 4 + .../libexec/ld.so/dlsym/test3/libcc/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test3/libcc/CVS/Root | 1 + .../libexec/ld.so/dlsym/test3/libcc/Makefile | 8 + src/regress/libexec/ld.so/dlsym/test3/libcc/cc.c | 20 + src/regress/libexec/ld.so/dlsym/test3/libcc/obj | 1 + .../libexec/ld.so/dlsym/test3/libcc/shlib_version | 2 + .../libexec/ld.so/dlsym/test3/libdd/CVS/Entries | 4 + .../libexec/ld.so/dlsym/test3/libdd/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test3/libdd/CVS/Root | 1 + .../libexec/ld.so/dlsym/test3/libdd/Makefile | 11 + src/regress/libexec/ld.so/dlsym/test3/libdd/dd.c | 19 + src/regress/libexec/ld.so/dlsym/test3/libdd/obj | 1 + .../libexec/ld.so/dlsym/test3/libdd/shlib_version | 2 + .../libexec/ld.so/dlsym/test3/libee/CVS/Entries | 4 + .../libexec/ld.so/dlsym/test3/libee/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test3/libee/CVS/Root | 1 + .../libexec/ld.so/dlsym/test3/libee/Makefile | 8 + src/regress/libexec/ld.so/dlsym/test3/libee/ee.c | 19 + src/regress/libexec/ld.so/dlsym/test3/libee/obj | 1 + .../libexec/ld.so/dlsym/test3/libee/shlib_version | 2 + .../libexec/ld.so/dlsym/test3/prog1/CVS/Entries | 3 + .../libexec/ld.so/dlsym/test3/prog1/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test3/prog1/CVS/Root | 1 + .../libexec/ld.so/dlsym/test3/prog1/Makefile | 12 + src/regress/libexec/ld.so/dlsym/test3/prog1/main.c | 52 + src/regress/libexec/ld.so/dlsym/test3/prog1/obj | 1 + .../libexec/ld.so/dlsym/test3/prog2/CVS/Entries | 3 + .../libexec/ld.so/dlsym/test3/prog2/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test3/prog2/CVS/Root | 1 + .../libexec/ld.so/dlsym/test3/prog2/Makefile | 13 + src/regress/libexec/ld.so/dlsym/test3/prog2/main.c | 52 + src/regress/libexec/ld.so/dlsym/test3/prog2/obj | 1 + .../libexec/ld.so/dlsym/test3/prog3/CVS/Entries | 3 + .../libexec/ld.so/dlsym/test3/prog3/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test3/prog3/CVS/Root | 1 + .../libexec/ld.so/dlsym/test3/prog3/Makefile | 13 + src/regress/libexec/ld.so/dlsym/test3/prog3/main.c | 76 + src/regress/libexec/ld.so/dlsym/test3/prog3/obj | 1 + .../libexec/ld.so/dlsym/test3/prog4/CVS/Entries | 3 + .../libexec/ld.so/dlsym/test3/prog4/CVS/Repository | 1 + .../libexec/ld.so/dlsym/test3/prog4/CVS/Root | 1 + .../libexec/ld.so/dlsym/test3/prog4/Makefile | 9 + src/regress/libexec/ld.so/dlsym/test3/prog4/main.c | 63 + src/regress/libexec/ld.so/dlsym/test3/prog4/obj | 1 + src/regress/libexec/ld.so/edgecases/CVS/Entries | 4 + src/regress/libexec/ld.so/edgecases/CVS/Repository | 1 + src/regress/libexec/ld.so/edgecases/CVS/Root | 1 + src/regress/libexec/ld.so/edgecases/Makefile | 5 + .../libexec/ld.so/edgecases/test1/CVS/Entries | 4 + .../libexec/ld.so/edgecases/test1/CVS/Repository | 1 + src/regress/libexec/ld.so/edgecases/test1/CVS/Root | 1 + src/regress/libexec/ld.so/edgecases/test1/Makefile | 3 + .../ld.so/edgecases/test1/libaa_b/CVS/Entries | 4 + .../ld.so/edgecases/test1/libaa_b/CVS/Repository | 1 + .../libexec/ld.so/edgecases/test1/libaa_b/CVS/Root | 1 + .../libexec/ld.so/edgecases/test1/libaa_b/Makefile | 4 + .../libexec/ld.so/edgecases/test1/libaa_b/aa.c | 8 + .../libexec/ld.so/edgecases/test1/libaa_b/obj | 1 + .../ld.so/edgecases/test1/libaa_b/shlib_version | 2 + .../ld.so/edgecases/test1/libaa_g/CVS/Entries | 4 + .../ld.so/edgecases/test1/libaa_g/CVS/Repository | 1 + .../libexec/ld.so/edgecases/test1/libaa_g/CVS/Root | 1 + .../libexec/ld.so/edgecases/test1/libaa_g/Makefile | 4 + .../libexec/ld.so/edgecases/test1/libaa_g/aa.c | 4 + .../libexec/ld.so/edgecases/test1/libaa_g/obj | 1 + .../ld.so/edgecases/test1/libaa_g/shlib_version | 2 + .../ld.so/edgecases/test1/prog1/CVS/Entries | 3 + .../ld.so/edgecases/test1/prog1/CVS/Repository | 1 + .../libexec/ld.so/edgecases/test1/prog1/CVS/Root | 1 + .../libexec/ld.so/edgecases/test1/prog1/Makefile | 36 + .../libexec/ld.so/edgecases/test1/prog1/main.c | 22 + .../libexec/ld.so/edgecases/test1/prog1/obj | 1 + .../libexec/ld.so/edgecases/test2/CVS/Entries | 3 + .../libexec/ld.so/edgecases/test2/CVS/Repository | 1 + src/regress/libexec/ld.so/edgecases/test2/CVS/Root | 1 + src/regress/libexec/ld.so/edgecases/test2/Makefile | 5 + .../ld.so/edgecases/test2/libaa/CVS/Entries | 4 + .../ld.so/edgecases/test2/libaa/CVS/Repository | 1 + .../libexec/ld.so/edgecases/test2/libaa/CVS/Root | 1 + .../libexec/ld.so/edgecases/test2/libaa/Makefile | 8 + .../libexec/ld.so/edgecases/test2/libaa/aa.c | 30 + .../libexec/ld.so/edgecases/test2/libaa/obj | 1 + .../ld.so/edgecases/test2/libaa/shlib_version | 2 + .../ld.so/edgecases/test2/prog1/CVS/Entries | 3 + .../ld.so/edgecases/test2/prog1/CVS/Repository | 1 + .../libexec/ld.so/edgecases/test2/prog1/CVS/Root | 1 + .../libexec/ld.so/edgecases/test2/prog1/Makefile | 22 + .../libexec/ld.so/edgecases/test2/prog1/main.c | 39 + .../libexec/ld.so/edgecases/test2/prog1/obj | 1 + .../libexec/ld.so/edgecases/test3/CVS/Entries | 5 + .../libexec/ld.so/edgecases/test3/CVS/Repository | 1 + src/regress/libexec/ld.so/edgecases/test3/CVS/Root | 1 + src/regress/libexec/ld.so/edgecases/test3/Makefile | 5 + .../libexec/ld.so/edgecases/test3/Makefile.inc | 19 + .../ld.so/edgecases/test3/libaa/CVS/Entries | 4 + .../ld.so/edgecases/test3/libaa/CVS/Repository | 1 + .../libexec/ld.so/edgecases/test3/libaa/CVS/Root | 1 + .../libexec/ld.so/edgecases/test3/libaa/Makefile | 8 + .../libexec/ld.so/edgecases/test3/libaa/aa.c | 32 + .../libexec/ld.so/edgecases/test3/libaa/obj | 1 + .../ld.so/edgecases/test3/libaa/shlib_version | 2 + .../ld.so/edgecases/test3/libbb/CVS/Entries | 4 + .../ld.so/edgecases/test3/libbb/CVS/Repository | 1 + .../libexec/ld.so/edgecases/test3/libbb/CVS/Root | 1 + .../libexec/ld.so/edgecases/test3/libbb/Makefile | 8 + .../libexec/ld.so/edgecases/test3/libbb/bb.c | 65 + .../libexec/ld.so/edgecases/test3/libbb/obj | 1 + .../ld.so/edgecases/test3/libbb/shlib_version | 2 + .../ld.so/edgecases/test3/prog1/CVS/Entries | 3 + .../ld.so/edgecases/test3/prog1/CVS/Repository | 1 + .../libexec/ld.so/edgecases/test3/prog1/CVS/Root | 1 + .../libexec/ld.so/edgecases/test3/prog1/Makefile | 9 + .../libexec/ld.so/edgecases/test3/prog1/main.c | 50 + .../libexec/ld.so/edgecases/test3/prog1/obj | 1 + src/regress/libexec/ld.so/elf/CVS/Entries | 4 + src/regress/libexec/ld.so/elf/CVS/Repository | 1 + src/regress/libexec/ld.so/elf/CVS/Root | 1 + src/regress/libexec/ld.so/elf/Makefile | 7 + src/regress/libexec/ld.so/elf/elfbug.h | 9 + src/regress/libexec/ld.so/elf/foo/CVS/Entries | 3 + src/regress/libexec/ld.so/elf/foo/CVS/Repository | 1 + src/regress/libexec/ld.so/elf/foo/CVS/Root | 1 + src/regress/libexec/ld.so/elf/foo/Makefile | 18 + src/regress/libexec/ld.so/elf/foo/main.c | 17 + src/regress/libexec/ld.so/elf/foo/obj | 1 + src/regress/libexec/ld.so/elf/libbar/CVS/Entries | 4 + .../libexec/ld.so/elf/libbar/CVS/Repository | 1 + src/regress/libexec/ld.so/elf/libbar/CVS/Root | 1 + src/regress/libexec/ld.so/elf/libbar/Makefile | 9 + src/regress/libexec/ld.so/elf/libbar/bar.c | 30 + src/regress/libexec/ld.so/elf/libbar/obj | 1 + src/regress/libexec/ld.so/elf/libbar/shlib_version | 2 + src/regress/libexec/ld.so/hidden/CVS/Entries | 5 + src/regress/libexec/ld.so/hidden/CVS/Repository | 1 + src/regress/libexec/ld.so/hidden/CVS/Root | 1 + src/regress/libexec/ld.so/hidden/Makefile | 11 + src/regress/libexec/ld.so/hidden/libaa/CVS/Entries | 4 + .../libexec/ld.so/hidden/libaa/CVS/Repository | 1 + src/regress/libexec/ld.so/hidden/libaa/CVS/Root | 1 + src/regress/libexec/ld.so/hidden/libaa/Makefile | 11 + src/regress/libexec/ld.so/hidden/libaa/aa.c | 31 + src/regress/libexec/ld.so/hidden/libaa/obj | 1 + .../libexec/ld.so/hidden/libaa/shlib_version | 2 + src/regress/libexec/ld.so/hidden/libab/CVS/Entries | 4 + .../libexec/ld.so/hidden/libab/CVS/Repository | 1 + src/regress/libexec/ld.so/hidden/libab/CVS/Root | 1 + src/regress/libexec/ld.so/hidden/libab/Makefile | 11 + src/regress/libexec/ld.so/hidden/libab/ab.c | 31 + src/regress/libexec/ld.so/hidden/libab/obj | 1 + .../libexec/ld.so/hidden/libab/shlib_version | 2 + src/regress/libexec/ld.so/hidden/test1/CVS/Entries | 3 + .../libexec/ld.so/hidden/test1/CVS/Repository | 1 + src/regress/libexec/ld.so/hidden/test1/CVS/Root | 1 + src/regress/libexec/ld.so/hidden/test1/Makefile | 31 + src/regress/libexec/ld.so/hidden/test1/obj | 1 + src/regress/libexec/ld.so/hidden/test1/test1.c | 66 + src/regress/libexec/ld.so/hidden/test2/CVS/Entries | 3 + .../libexec/ld.so/hidden/test2/CVS/Repository | 1 + src/regress/libexec/ld.so/hidden/test2/CVS/Root | 1 + src/regress/libexec/ld.so/hidden/test2/Makefile | 35 + src/regress/libexec/ld.so/hidden/test2/obj | 1 + src/regress/libexec/ld.so/hidden/test2/test2.c | 46 + src/regress/libexec/ld.so/lazy/CVS/Entries | 4 + src/regress/libexec/ld.so/lazy/CVS/Repository | 1 + src/regress/libexec/ld.so/lazy/CVS/Root | 1 + src/regress/libexec/ld.so/lazy/Makefile | 7 + src/regress/libexec/ld.so/lazy/libbar/CVS/Entries | 4 + .../libexec/ld.so/lazy/libbar/CVS/Repository | 1 + src/regress/libexec/ld.so/lazy/libbar/CVS/Root | 1 + src/regress/libexec/ld.so/lazy/libbar/Makefile | 8 + src/regress/libexec/ld.so/lazy/libbar/bar.c | 11 + src/regress/libexec/ld.so/lazy/libbar/obj | 1 + .../libexec/ld.so/lazy/libbar/shlib_version | 2 + src/regress/libexec/ld.so/lazy/libfoo/CVS/Entries | 4 + .../libexec/ld.so/lazy/libfoo/CVS/Repository | 1 + src/regress/libexec/ld.so/lazy/libfoo/CVS/Root | 1 + src/regress/libexec/ld.so/lazy/libfoo/Makefile | 18 + src/regress/libexec/ld.so/lazy/libfoo/foo.c | 26 + src/regress/libexec/ld.so/lazy/libfoo/obj | 1 + .../libexec/ld.so/lazy/libfoo/shlib_version | 2 + src/regress/libexec/ld.so/lazy/prog/CVS/Entries | 3 + src/regress/libexec/ld.so/lazy/prog/CVS/Repository | 1 + src/regress/libexec/ld.so/lazy/prog/CVS/Root | 1 + src/regress/libexec/ld.so/lazy/prog/Makefile | 15 + src/regress/libexec/ld.so/lazy/prog/obj | 1 + src/regress/libexec/ld.so/lazy/prog/prog.c | 29 + src/regress/libexec/ld.so/link-order/CVS/Entries | 7 + .../libexec/ld.so/link-order/CVS/Repository | 1 + src/regress/libexec/ld.so/link-order/CVS/Root | 1 + src/regress/libexec/ld.so/link-order/Makefile | 12 + src/regress/libexec/ld.so/link-order/lib10/10.c | 13 + .../libexec/ld.so/link-order/lib10/CVS/Entries | 4 + .../libexec/ld.so/link-order/lib10/CVS/Repository | 1 + .../libexec/ld.so/link-order/lib10/CVS/Root | 1 + .../libexec/ld.so/link-order/lib10/Makefile | 8 + src/regress/libexec/ld.so/link-order/lib10/obj | 1 + .../libexec/ld.so/link-order/lib10/shlib_version | 2 + src/regress/libexec/ld.so/link-order/lib11/11.c | 13 + .../libexec/ld.so/link-order/lib11/CVS/Entries | 4 + .../libexec/ld.so/link-order/lib11/CVS/Repository | 1 + .../libexec/ld.so/link-order/lib11/CVS/Root | 1 + .../libexec/ld.so/link-order/lib11/Makefile | 8 + src/regress/libexec/ld.so/link-order/lib11/obj | 1 + .../libexec/ld.so/link-order/lib11/shlib_version | 2 + src/regress/libexec/ld.so/link-order/lib20/20.c | 13 + .../libexec/ld.so/link-order/lib20/CVS/Entries | 4 + .../libexec/ld.so/link-order/lib20/CVS/Repository | 1 + .../libexec/ld.so/link-order/lib20/CVS/Root | 1 + .../libexec/ld.so/link-order/lib20/Makefile | 8 + src/regress/libexec/ld.so/link-order/lib20/obj | 1 + .../libexec/ld.so/link-order/lib20/shlib_version | 2 + .../libexec/ld.so/link-order/libnover/CVS/Entries | 3 + .../ld.so/link-order/libnover/CVS/Repository | 1 + .../libexec/ld.so/link-order/libnover/CVS/Root | 1 + .../libexec/ld.so/link-order/libnover/Makefile | 16 + .../libexec/ld.so/link-order/libnover/nover.c | 13 + src/regress/libexec/ld.so/link-order/libnover/obj | 1 + .../libexec/ld.so/link-order/prog/CVS/Entries | 3 + .../libexec/ld.so/link-order/prog/CVS/Repository | 1 + src/regress/libexec/ld.so/link-order/prog/CVS/Root | 1 + src/regress/libexec/ld.so/link-order/prog/Makefile | 7 + src/regress/libexec/ld.so/link-order/prog/obj | 1 + src/regress/libexec/ld.so/link-order/prog/prog.c | 25 + .../libexec/ld.so/link-order/test/CVS/Entries | 3 + .../libexec/ld.so/link-order/test/CVS/Repository | 1 + src/regress/libexec/ld.so/link-order/test/CVS/Root | 1 + src/regress/libexec/ld.so/link-order/test/Makefile | 105 + src/regress/libexec/ld.so/link-order/test/obj | 1 + src/regress/libexec/ld.so/link-order/test/test.sh | 10 + src/regress/libexec/ld.so/weak/CVS/Entries | 6 + src/regress/libexec/ld.so/weak/CVS/Repository | 1 + src/regress/libexec/ld.so/weak/CVS/Root | 1 + src/regress/libexec/ld.so/weak/Makefile | 7 + src/regress/libexec/ld.so/weak/Makefile.inc | 3 + .../libexec/ld.so/weak/libstrong/CVS/Entries | 4 + .../libexec/ld.so/weak/libstrong/CVS/Repository | 1 + src/regress/libexec/ld.so/weak/libstrong/CVS/Root | 1 + src/regress/libexec/ld.so/weak/libstrong/Makefile | 8 + src/regress/libexec/ld.so/weak/libstrong/obj | 1 + .../libexec/ld.so/weak/libstrong/shlib_version | 2 + src/regress/libexec/ld.so/weak/libstrong/strong.c | 13 + src/regress/libexec/ld.so/weak/libweak/CVS/Entries | 4 + .../libexec/ld.so/weak/libweak/CVS/Repository | 1 + src/regress/libexec/ld.so/weak/libweak/CVS/Root | 1 + src/regress/libexec/ld.so/weak/libweak/Makefile | 8 + src/regress/libexec/ld.so/weak/libweak/obj | 1 + .../libexec/ld.so/weak/libweak/shlib_version | 2 + src/regress/libexec/ld.so/weak/libweak/weak.c | 16 + src/regress/libexec/ld.so/weak/prog/CVS/Entries | 4 + src/regress/libexec/ld.so/weak/prog/CVS/Repository | 1 + src/regress/libexec/ld.so/weak/prog/CVS/Root | 1 + src/regress/libexec/ld.so/weak/prog/Makefile | 23 + src/regress/libexec/ld.so/weak/prog/defs.h | 11 + src/regress/libexec/ld.so/weak/prog/main.c | 20 + src/regress/libexec/ld.so/weak/prog/obj | 1 + src/regress/libexec/ld.so/weak/prog2/CVS/Entries | 3 + .../libexec/ld.so/weak/prog2/CVS/Repository | 1 + src/regress/libexec/ld.so/weak/prog2/CVS/Root | 1 + src/regress/libexec/ld.so/weak/prog2/Makefile | 16 + src/regress/libexec/ld.so/weak/prog2/main.c | 20 + src/regress/libexec/ld.so/weak/prog2/obj | 1 + src/regress/misc/CVS/Entries | 4 + src/regress/misc/CVS/Repository | 1 + src/regress/misc/CVS/Root | 1 + src/regress/misc/Makefile | 7 + src/regress/misc/X11/CVS/Entries | 3 + src/regress/misc/X11/CVS/Repository | 1 + src/regress/misc/X11/CVS/Root | 1 + src/regress/misc/X11/Makefile | 7 + src/regress/misc/X11/blt/CVS/Entries | 3 + src/regress/misc/X11/blt/CVS/Repository | 1 + src/regress/misc/X11/blt/CVS/Root | 1 + src/regress/misc/X11/blt/Makefile | 7 + src/regress/misc/X11/blt/blt.c | 58 + src/regress/misc/X11/blt/obj | 1 + src/regress/misc/X11/bltone/CVS/Entries | 3 + src/regress/misc/X11/bltone/CVS/Repository | 1 + src/regress/misc/X11/bltone/CVS/Root | 1 + src/regress/misc/X11/bltone/Makefile | 7 + src/regress/misc/X11/bltone/bltone.c | 57 + src/regress/misc/X11/bltone/obj | 1 + src/regress/misc/exceptions/CVS/Entries | 4 + src/regress/misc/exceptions/CVS/Repository | 1 + src/regress/misc/exceptions/CVS/Root | 1 + src/regress/misc/exceptions/Makefile | 3 + src/regress/misc/exceptions/foo/CVS/Entries | 3 + src/regress/misc/exceptions/foo/CVS/Repository | 1 + src/regress/misc/exceptions/foo/CVS/Root | 1 + src/regress/misc/exceptions/foo/Makefile | 15 + src/regress/misc/exceptions/foo/foo.cc | 18 + src/regress/misc/exceptions/foo/obj | 1 + src/regress/misc/exceptions/libbar/CVS/Entries | 4 + src/regress/misc/exceptions/libbar/CVS/Repository | 1 + src/regress/misc/exceptions/libbar/CVS/Root | 1 + src/regress/misc/exceptions/libbar/Makefile | 6 + src/regress/misc/exceptions/libbar/bar.cc | 3 + src/regress/misc/exceptions/libbar/obj | 1 + src/regress/misc/exceptions/libbar/shlib_version | 2 + src/regress/misc/exceptions/simple/CVS/Entries | 3 + src/regress/misc/exceptions/simple/CVS/Repository | 1 + src/regress/misc/exceptions/simple/CVS/Root | 1 + src/regress/misc/exceptions/simple/Makefile | 6 + src/regress/misc/exceptions/simple/exceptions.cc | 19 + src/regress/misc/exceptions/simple/obj | 1 + src/regress/misc/objc/CVS/Entries | 3 + src/regress/misc/objc/CVS/Repository | 1 + src/regress/misc/objc/CVS/Root | 1 + src/regress/misc/objc/Makefile | 17 + src/regress/misc/objc/main.m | 18 + src/regress/misc/objc/obj | 1 + src/regress/sbin/CVS/Entries | 7 + src/regress/sbin/CVS/Repository | 1 + src/regress/sbin/CVS/Root | 1 + src/regress/sbin/Makefile | 7 + src/regress/sbin/disklabel/CVS/Entries | 2 + src/regress/sbin/disklabel/CVS/Repository | 1 + src/regress/sbin/disklabel/CVS/Root | 1 + src/regress/sbin/disklabel/disklabel-A | 59 + src/regress/sbin/ipsecctl/CVS/Entries | 412 ++ src/regress/sbin/ipsecctl/CVS/Repository | 1 + src/regress/sbin/ipsecctl/CVS/Root | 1 + src/regress/sbin/ipsecctl/Makefile | 126 + src/regress/sbin/ipsecctl/ak128 | 1 + src/regress/sbin/ipsecctl/ak160 | 1 + src/regress/sbin/ipsecctl/ak256 | 1 + src/regress/sbin/ipsecctl/ak384 | 1 + src/regress/sbin/ipsecctl/ak512 | 1 + src/regress/sbin/ipsecctl/ek128 | 1 + src/regress/sbin/ipsecctl/ek160 | 1 + src/regress/sbin/ipsecctl/ek192 | 1 + src/regress/sbin/ipsecctl/ek64 | 1 + src/regress/sbin/ipsecctl/ek80 | 1 + src/regress/sbin/ipsecctl/ike1.in | 1 + src/regress/sbin/ipsecctl/ike1.ok | 18 + src/regress/sbin/ipsecctl/ike10.in | 1 + src/regress/sbin/ipsecctl/ike10.ok | 20 + src/regress/sbin/ipsecctl/ike11.in | 2 + src/regress/sbin/ipsecctl/ike11.ok | 40 + src/regress/sbin/ipsecctl/ike12.in | 2 + src/regress/sbin/ipsecctl/ike12.ok | 58 + src/regress/sbin/ipsecctl/ike13.in | 2 + src/regress/sbin/ipsecctl/ike13.ok | 58 + src/regress/sbin/ipsecctl/ike14.in | 3 + src/regress/sbin/ipsecctl/ike14.ok | 182 + src/regress/sbin/ipsecctl/ike15.in | 2 + src/regress/sbin/ipsecctl/ike15.ok | 26 + src/regress/sbin/ipsecctl/ike16.in | 8 + src/regress/sbin/ipsecctl/ike16.ok | 50 + src/regress/sbin/ipsecctl/ike17.in | 2 + src/regress/sbin/ipsecctl/ike17.ok | 38 + src/regress/sbin/ipsecctl/ike18.in | 2 + src/regress/sbin/ipsecctl/ike18.ok | 38 + src/regress/sbin/ipsecctl/ike19.in | 1 + src/regress/sbin/ipsecctl/ike19.ok | 19 + src/regress/sbin/ipsecctl/ike2.in | 1 + src/regress/sbin/ipsecctl/ike2.ok | 20 + src/regress/sbin/ipsecctl/ike20.in | 2 + src/regress/sbin/ipsecctl/ike20.ok | 40 + src/regress/sbin/ipsecctl/ike21.in | 1 + src/regress/sbin/ipsecctl/ike21.ok | 18 + src/regress/sbin/ipsecctl/ike22.in | 1 + src/regress/sbin/ipsecctl/ike22.ok | 20 + src/regress/sbin/ipsecctl/ike23.in | 2 + src/regress/sbin/ipsecctl/ike23.ok | 24 + src/regress/sbin/ipsecctl/ike29.in | 1 + src/regress/sbin/ipsecctl/ike29.ok | 25 + src/regress/sbin/ipsecctl/ike3.in | 2 + src/regress/sbin/ipsecctl/ike3.ok | 24 + src/regress/sbin/ipsecctl/ike30.in | 1 + src/regress/sbin/ipsecctl/ike30.ok | 20 + src/regress/sbin/ipsecctl/ike31.in | 1 + src/regress/sbin/ipsecctl/ike31.ok | 19 + src/regress/sbin/ipsecctl/ike32.in | 1 + src/regress/sbin/ipsecctl/ike32.ok | 19 + src/regress/sbin/ipsecctl/ike33.in | 1 + src/regress/sbin/ipsecctl/ike33.ok | 19 + src/regress/sbin/ipsecctl/ike34.in | 1 + src/regress/sbin/ipsecctl/ike34.ok | 20 + src/regress/sbin/ipsecctl/ike35.in | 1 + src/regress/sbin/ipsecctl/ike35.ok | 20 + src/regress/sbin/ipsecctl/ike36.in | 1 + src/regress/sbin/ipsecctl/ike36.ok | 18 + src/regress/sbin/ipsecctl/ike37.in | 2 + src/regress/sbin/ipsecctl/ike37.ok | 26 + src/regress/sbin/ipsecctl/ike38.in | 9 + src/regress/sbin/ipsecctl/ike38.ok | 50 + src/regress/sbin/ipsecctl/ike39.in | 2 + src/regress/sbin/ipsecctl/ike39.ok | 38 + src/regress/sbin/ipsecctl/ike4.in | 2 + src/regress/sbin/ipsecctl/ike4.ok | 26 + src/regress/sbin/ipsecctl/ike40.in | 2 + src/regress/sbin/ipsecctl/ike40.ok | 38 + src/regress/sbin/ipsecctl/ike41.in | 1 + src/regress/sbin/ipsecctl/ike41.ok | 20 + src/regress/sbin/ipsecctl/ike42.in | 1 + src/regress/sbin/ipsecctl/ike42.ok | 21 + src/regress/sbin/ipsecctl/ike43.in | 1 + src/regress/sbin/ipsecctl/ike43.ok | 22 + src/regress/sbin/ipsecctl/ike46.in | 2 + src/regress/sbin/ipsecctl/ike46.ok | 36 + src/regress/sbin/ipsecctl/ike47.in | 1 + src/regress/sbin/ipsecctl/ike47.ok | 38 + src/regress/sbin/ipsecctl/ike48.in | 1 + src/regress/sbin/ipsecctl/ike48.ok | 40 + src/regress/sbin/ipsecctl/ike49.in | 1 + src/regress/sbin/ipsecctl/ike49.ok | 20 + src/regress/sbin/ipsecctl/ike5.in | 8 + src/regress/sbin/ipsecctl/ike5.ok | 50 + src/regress/sbin/ipsecctl/ike50.in | 1 + src/regress/sbin/ipsecctl/ike50.ok | 20 + src/regress/sbin/ipsecctl/ike51.in | 1 + src/regress/sbin/ipsecctl/ike51.ok | 20 + src/regress/sbin/ipsecctl/ike52.in | 1 + src/regress/sbin/ipsecctl/ike52.ok | 20 + src/regress/sbin/ipsecctl/ike53.in | 1 + src/regress/sbin/ipsecctl/ike53.ok | 18 + src/regress/sbin/ipsecctl/ike54.in | 1 + src/regress/sbin/ipsecctl/ike54.ok | 21 + src/regress/sbin/ipsecctl/ike55.in | 1 + src/regress/sbin/ipsecctl/ike55.ok | 18 + src/regress/sbin/ipsecctl/ike56.in | 1 + src/regress/sbin/ipsecctl/ike56.ok | 18 + src/regress/sbin/ipsecctl/ike57.in | 3 + src/regress/sbin/ipsecctl/ike57.ok | 78 + src/regress/sbin/ipsecctl/ike58.in | 1 + src/regress/sbin/ipsecctl/ike58.ok | 57 + src/regress/sbin/ipsecctl/ike59.in | 1 + src/regress/sbin/ipsecctl/ike59.ok | 20 + src/regress/sbin/ipsecctl/ike6.in | 2 + src/regress/sbin/ipsecctl/ike6.ok | 38 + src/regress/sbin/ipsecctl/ike60.in | 3 + src/regress/sbin/ipsecctl/ike60.ok | 54 + src/regress/sbin/ipsecctl/ike61.in | 4 + src/regress/sbin/ipsecctl/ike61.ok | 230 + src/regress/sbin/ipsecctl/ike62.in | 3 + src/regress/sbin/ipsecctl/ike62.ok | 53 + src/regress/sbin/ipsecctl/ike63.in | 2 + src/regress/sbin/ipsecctl/ike63.ok | 23 + src/regress/sbin/ipsecctl/ike64.in | 2 + src/regress/sbin/ipsecctl/ike64.ok | 23 + src/regress/sbin/ipsecctl/ike65.in | 2 + src/regress/sbin/ipsecctl/ike65.ok | 26 + src/regress/sbin/ipsecctl/ike66.in | 2 + src/regress/sbin/ipsecctl/ike66.ok | 23 + src/regress/sbin/ipsecctl/ike67.in | 2 + src/regress/sbin/ipsecctl/ike67.ok | 23 + src/regress/sbin/ipsecctl/ike68.in | 2 + src/regress/sbin/ipsecctl/ike68.ok | 26 + src/regress/sbin/ipsecctl/ike7.in | 2 + src/regress/sbin/ipsecctl/ike7.ok | 38 + src/regress/sbin/ipsecctl/ike8.in | 1 + src/regress/sbin/ipsecctl/ike8.ok | 19 + src/regress/sbin/ipsecctl/ike9.in | 1 + src/regress/sbin/ipsecctl/ike9.ok | 25 + src/regress/sbin/ipsecctl/ikedel1.in | 1 + src/regress/sbin/ipsecctl/ikedel1.ok | 4 + src/regress/sbin/ipsecctl/ikedel10.in | 1 + src/regress/sbin/ipsecctl/ikedel10.ok | 4 + src/regress/sbin/ipsecctl/ikedel11.in | 2 + src/regress/sbin/ipsecctl/ikedel11.ok | 8 + src/regress/sbin/ipsecctl/ikedel12.in | 2 + src/regress/sbin/ipsecctl/ikedel12.ok | 13 + src/regress/sbin/ipsecctl/ikedel13.in | 2 + src/regress/sbin/ipsecctl/ikedel13.ok | 13 + src/regress/sbin/ipsecctl/ikedel14.in | 3 + src/regress/sbin/ipsecctl/ikedel14.ok | 38 + src/regress/sbin/ipsecctl/ikedel15.in | 2 + src/regress/sbin/ipsecctl/ikedel15.ok | 4 + src/regress/sbin/ipsecctl/ikedel16.in | 8 + src/regress/sbin/ipsecctl/ikedel16.ok | 8 + src/regress/sbin/ipsecctl/ikedel17.in | 2 + src/regress/sbin/ipsecctl/ikedel17.ok | 8 + src/regress/sbin/ipsecctl/ikedel18.in | 2 + src/regress/sbin/ipsecctl/ikedel18.ok | 8 + src/regress/sbin/ipsecctl/ikedel19.in | 1 + src/regress/sbin/ipsecctl/ikedel19.ok | 4 + src/regress/sbin/ipsecctl/ikedel2.in | 1 + src/regress/sbin/ipsecctl/ikedel2.ok | 4 + src/regress/sbin/ipsecctl/ikedel20.in | 2 + src/regress/sbin/ipsecctl/ikedel20.ok | 8 + src/regress/sbin/ipsecctl/ikedel21.in | 1 + src/regress/sbin/ipsecctl/ikedel21.ok | 4 + src/regress/sbin/ipsecctl/ikedel22.in | 1 + src/regress/sbin/ipsecctl/ikedel22.ok | 4 + src/regress/sbin/ipsecctl/ikedel23.in | 2 + src/regress/sbin/ipsecctl/ikedel23.ok | 4 + src/regress/sbin/ipsecctl/ikedel29.in | 1 + src/regress/sbin/ipsecctl/ikedel29.ok | 4 + src/regress/sbin/ipsecctl/ikedel3.in | 2 + src/regress/sbin/ipsecctl/ikedel3.ok | 4 + src/regress/sbin/ipsecctl/ikedel30.in | 1 + src/regress/sbin/ipsecctl/ikedel30.ok | 4 + src/regress/sbin/ipsecctl/ikedel31.in | 1 + src/regress/sbin/ipsecctl/ikedel31.ok | 4 + src/regress/sbin/ipsecctl/ikedel32.in | 1 + src/regress/sbin/ipsecctl/ikedel32.ok | 4 + src/regress/sbin/ipsecctl/ikedel33.in | 1 + src/regress/sbin/ipsecctl/ikedel33.ok | 4 + src/regress/sbin/ipsecctl/ikedel34.in | 1 + src/regress/sbin/ipsecctl/ikedel34.ok | 4 + src/regress/sbin/ipsecctl/ikedel35.in | 1 + src/regress/sbin/ipsecctl/ikedel35.ok | 4 + src/regress/sbin/ipsecctl/ikedel36.in | 1 + src/regress/sbin/ipsecctl/ikedel36.ok | 4 + src/regress/sbin/ipsecctl/ikedel37.in | 2 + src/regress/sbin/ipsecctl/ikedel37.ok | 4 + src/regress/sbin/ipsecctl/ikedel38.in | 9 + src/regress/sbin/ipsecctl/ikedel38.ok | 8 + src/regress/sbin/ipsecctl/ikedel39.in | 2 + src/regress/sbin/ipsecctl/ikedel39.ok | 8 + src/regress/sbin/ipsecctl/ikedel4.in | 2 + src/regress/sbin/ipsecctl/ikedel4.ok | 4 + src/regress/sbin/ipsecctl/ikedel40.in | 2 + src/regress/sbin/ipsecctl/ikedel40.ok | 8 + src/regress/sbin/ipsecctl/ikedel41.in | 1 + src/regress/sbin/ipsecctl/ikedel41.ok | 4 + src/regress/sbin/ipsecctl/ikedel42.in | 1 + src/regress/sbin/ipsecctl/ikedel42.ok | 4 + src/regress/sbin/ipsecctl/ikedel43.in | 1 + src/regress/sbin/ipsecctl/ikedel43.ok | 4 + src/regress/sbin/ipsecctl/ikedel46.in | 2 + src/regress/sbin/ipsecctl/ikedel46.ok | 8 + src/regress/sbin/ipsecctl/ikedel47.in | 1 + src/regress/sbin/ipsecctl/ikedel47.ok | 8 + src/regress/sbin/ipsecctl/ikedel5.in | 8 + src/regress/sbin/ipsecctl/ikedel5.ok | 8 + src/regress/sbin/ipsecctl/ikedel6.in | 2 + src/regress/sbin/ipsecctl/ikedel6.ok | 8 + src/regress/sbin/ipsecctl/ikedel7.in | 2 + src/regress/sbin/ipsecctl/ikedel7.ok | 8 + src/regress/sbin/ipsecctl/ikedel8.in | 1 + src/regress/sbin/ipsecctl/ikedel8.ok | 4 + src/regress/sbin/ipsecctl/ikedel9.in | 1 + src/regress/sbin/ipsecctl/ikedel9.ok | 4 + src/regress/sbin/ipsecctl/ikedeldel1.in | 1 + src/regress/sbin/ipsecctl/ikedeldel1.ok | 7 + src/regress/sbin/ipsecctl/ikedeldel47.in | 1 + src/regress/sbin/ipsecctl/ikedeldel47.ok | 10 + src/regress/sbin/ipsecctl/ikefail1.in | 1 + src/regress/sbin/ipsecctl/ikefail1.ok | 2 + src/regress/sbin/ipsecctl/ikefail11.in | 6 + src/regress/sbin/ipsecctl/ikefail11.ok | 6 + src/regress/sbin/ipsecctl/ikefail12.in | 6 + src/regress/sbin/ipsecctl/ikefail12.ok | 5 + src/regress/sbin/ipsecctl/ikefail13.in | 2 + src/regress/sbin/ipsecctl/ikefail13.ok | 2 + src/regress/sbin/ipsecctl/ikefail14.in | 11 + src/regress/sbin/ipsecctl/ikefail14.ok | 109 + src/regress/sbin/ipsecctl/ikefail2.in | 2 + src/regress/sbin/ipsecctl/ikefail2.ok | 3 + src/regress/sbin/ipsecctl/ikefail3.in | 1 + src/regress/sbin/ipsecctl/ikefail3.ok | 2 + src/regress/sbin/ipsecctl/ikefail4.in | 1 + src/regress/sbin/ipsecctl/ikefail4.ok | 2 + src/regress/sbin/ipsecctl/ikefail5.in | 1 + src/regress/sbin/ipsecctl/ikefail5.ok | 2 + src/regress/sbin/ipsecctl/ikefail6.in | 1 + src/regress/sbin/ipsecctl/ikefail6.ok | 14 + src/regress/sbin/ipsecctl/ikefail8.in | 6 + src/regress/sbin/ipsecctl/ikefail8.ok | 2 + src/regress/sbin/ipsecctl/ikefail9.in | 6 + src/regress/sbin/ipsecctl/ikefail9.ok | 3 + src/regress/sbin/ipsecctl/ipsec1.in | 1 + src/regress/sbin/ipsecctl/ipsec1.ok | 2 + src/regress/sbin/ipsecctl/ipsec10.in | 3 + src/regress/sbin/ipsecctl/ipsec10.ok | 2 + src/regress/sbin/ipsecctl/ipsec11.in | 3 + src/regress/sbin/ipsecctl/ipsec11.ok | 2 + src/regress/sbin/ipsecctl/ipsec12.in | 6 + src/regress/sbin/ipsecctl/ipsec12.ok | 2 + src/regress/sbin/ipsecctl/ipsec13.in | 1 + src/regress/sbin/ipsecctl/ipsec13.ok | 2 + src/regress/sbin/ipsecctl/ipsec14.in | 1 + src/regress/sbin/ipsecctl/ipsec14.ok | 1 + src/regress/sbin/ipsecctl/ipsec15.in | 2 + src/regress/sbin/ipsecctl/ipsec15.ok | 4 + src/regress/sbin/ipsecctl/ipsec16.in | 5 + src/regress/sbin/ipsecctl/ipsec16.ok | 6 + src/regress/sbin/ipsecctl/ipsec17.in | 1 + src/regress/sbin/ipsecctl/ipsec17.ok | 1 + src/regress/sbin/ipsecctl/ipsec18.in | 1 + src/regress/sbin/ipsecctl/ipsec18.ok | 1 + src/regress/sbin/ipsecctl/ipsec19.in | 4 + src/regress/sbin/ipsecctl/ipsec19.ok | 8 + src/regress/sbin/ipsecctl/ipsec2.in | 1 + src/regress/sbin/ipsecctl/ipsec2.ok | 2 + src/regress/sbin/ipsecctl/ipsec20.in | 7 + src/regress/sbin/ipsecctl/ipsec20.ok | 14 + src/regress/sbin/ipsecctl/ipsec21.in | 14 + src/regress/sbin/ipsecctl/ipsec21.ok | 14 + src/regress/sbin/ipsecctl/ipsec22.in | 2 + src/regress/sbin/ipsecctl/ipsec22.ok | 7 + src/regress/sbin/ipsecctl/ipsec23.in | 2 + src/regress/sbin/ipsecctl/ipsec23.ok | 7 + src/regress/sbin/ipsecctl/ipsec24.in | 3 + src/regress/sbin/ipsecctl/ipsec24.ok | 20 + src/regress/sbin/ipsecctl/ipsec25.in | 1 + src/regress/sbin/ipsecctl/ipsec25.ok | 2 + src/regress/sbin/ipsecctl/ipsec26.in | 3 + src/regress/sbin/ipsecctl/ipsec26.ok | 2 + src/regress/sbin/ipsecctl/ipsec27.in | 1 + src/regress/sbin/ipsecctl/ipsec27.ok | 2 + src/regress/sbin/ipsecctl/ipsec28.in | 1 + src/regress/sbin/ipsecctl/ipsec28.ok | 2 + src/regress/sbin/ipsecctl/ipsec29.in | 6 + src/regress/sbin/ipsecctl/ipsec29.ok | 2 + src/regress/sbin/ipsecctl/ipsec3.in | 1 + src/regress/sbin/ipsecctl/ipsec3.ok | 2 + src/regress/sbin/ipsecctl/ipsec30.in | 3 + src/regress/sbin/ipsecctl/ipsec30.ok | 2 + src/regress/sbin/ipsecctl/ipsec31.in | 3 + src/regress/sbin/ipsecctl/ipsec31.ok | 2 + src/regress/sbin/ipsecctl/ipsec32.in | 3 + src/regress/sbin/ipsecctl/ipsec32.ok | 2 + src/regress/sbin/ipsecctl/ipsec33.in | 6 + src/regress/sbin/ipsecctl/ipsec33.ok | 2 + src/regress/sbin/ipsecctl/ipsec34.in | 14 + src/regress/sbin/ipsecctl/ipsec34.ok | 14 + src/regress/sbin/ipsecctl/ipsec35.in | 1 + src/regress/sbin/ipsecctl/ipsec35.ok | 1 + src/regress/sbin/ipsecctl/ipsec36.in | 2 + src/regress/sbin/ipsecctl/ipsec36.ok | 4 + src/regress/sbin/ipsecctl/ipsec37.in | 5 + src/regress/sbin/ipsecctl/ipsec37.ok | 6 + src/regress/sbin/ipsecctl/ipsec38.in | 1 + src/regress/sbin/ipsecctl/ipsec38.ok | 1 + src/regress/sbin/ipsecctl/ipsec39.in | 1 + src/regress/sbin/ipsecctl/ipsec39.ok | 1 + src/regress/sbin/ipsecctl/ipsec4.in | 3 + src/regress/sbin/ipsecctl/ipsec4.ok | 2 + src/regress/sbin/ipsecctl/ipsec40.in | 2 + src/regress/sbin/ipsecctl/ipsec40.ok | 4 + src/regress/sbin/ipsecctl/ipsec41.in | 7 + src/regress/sbin/ipsecctl/ipsec41.ok | 14 + src/regress/sbin/ipsecctl/ipsec42.in | 1 + src/regress/sbin/ipsecctl/ipsec42.ok | 2 + src/regress/sbin/ipsecctl/ipsec43.in | 1 + src/regress/sbin/ipsecctl/ipsec43.ok | 2 + src/regress/sbin/ipsecctl/ipsec44.in | 1 + src/regress/sbin/ipsecctl/ipsec44.ok | 2 + src/regress/sbin/ipsecctl/ipsec5.in | 3 + src/regress/sbin/ipsecctl/ipsec5.ok | 2 + src/regress/sbin/ipsecctl/ipsec50.in | 1 + src/regress/sbin/ipsecctl/ipsec50.ok | 2 + src/regress/sbin/ipsecctl/ipsec51.in | 2 + src/regress/sbin/ipsecctl/ipsec51.ok | 4 + src/regress/sbin/ipsecctl/ipsec52.in | 1 + src/regress/sbin/ipsecctl/ipsec52.ok | 2 + src/regress/sbin/ipsecctl/ipsec53.in | 2 + src/regress/sbin/ipsecctl/ipsec53.ok | 4 + src/regress/sbin/ipsecctl/ipsec54.in | 1 + src/regress/sbin/ipsecctl/ipsec54.ok | 4 + src/regress/sbin/ipsecctl/ipsec55.in | 1 + src/regress/sbin/ipsecctl/ipsec55.ok | 2 + src/regress/sbin/ipsecctl/ipsec56.in | 1 + src/regress/sbin/ipsecctl/ipsec56.ok | 2 + src/regress/sbin/ipsecctl/ipsec57.in | 1 + src/regress/sbin/ipsecctl/ipsec57.ok | 6 + src/regress/sbin/ipsecctl/ipsec58.in | 3 + src/regress/sbin/ipsecctl/ipsec58.ok | 6 + src/regress/sbin/ipsecctl/ipsec6.in | 6 + src/regress/sbin/ipsecctl/ipsec6.ok | 2 + src/regress/sbin/ipsecctl/ipsec7.in | 1 + src/regress/sbin/ipsecctl/ipsec7.ok | 2 + src/regress/sbin/ipsecctl/ipsec8.in | 1 + src/regress/sbin/ipsecctl/ipsec8.ok | 2 + src/regress/sbin/ipsecctl/ipsec9.in | 1 + src/regress/sbin/ipsecctl/ipsec9.ok | 2 + src/regress/sbin/ipsecctl/ipsecfail1.in | 1 + src/regress/sbin/ipsecctl/ipsecfail1.ok | 2 + src/regress/sbin/ipsecctl/ipsecfail2.in | 1 + src/regress/sbin/ipsecctl/ipsecfail2.ok | 2 + src/regress/sbin/ipsecctl/ipsecfail3.in | 2 + src/regress/sbin/ipsecctl/ipsecfail3.ok | 4 + src/regress/sbin/ipsecctl/obj | 1 + src/regress/sbin/ipsecctl/sa1.in | 3 + src/regress/sbin/ipsecctl/sa1.ok | 6 + src/regress/sbin/ipsecctl/sa10.in | 1 + src/regress/sbin/ipsecctl/sa10.ok | 1 + src/regress/sbin/ipsecctl/sa11.in | 42 + src/regress/sbin/ipsecctl/sa11.ok | 52 + src/regress/sbin/ipsecctl/sa12.in | 14 + src/regress/sbin/ipsecctl/sa12.ok | 28 + src/regress/sbin/ipsecctl/sa13.in | 3 + src/regress/sbin/ipsecctl/sa13.ok | 6 + src/regress/sbin/ipsecctl/sa14.in | 3 + src/regress/sbin/ipsecctl/sa14.ok | 6 + src/regress/sbin/ipsecctl/sa15.in | 6 + src/regress/sbin/ipsecctl/sa15.ok | 6 + src/regress/sbin/ipsecctl/sa16.in | 7 + src/regress/sbin/ipsecctl/sa16.ok | 6 + src/regress/sbin/ipsecctl/sa17.in | 14 + src/regress/sbin/ipsecctl/sa17.ok | 28 + src/regress/sbin/ipsecctl/sa18.in | 34 + src/regress/sbin/ipsecctl/sa18.ok | 52 + src/regress/sbin/ipsecctl/sa19.in | 3 + src/regress/sbin/ipsecctl/sa19.ok | 6 + src/regress/sbin/ipsecctl/sa2.in | 3 + src/regress/sbin/ipsecctl/sa2.ok | 6 + src/regress/sbin/ipsecctl/sa20.in | 3 + src/regress/sbin/ipsecctl/sa20.ok | 6 + src/regress/sbin/ipsecctl/sa21.in | 42 + src/regress/sbin/ipsecctl/sa21.ok | 52 + src/regress/sbin/ipsecctl/sa22.in | 1 + src/regress/sbin/ipsecctl/sa22.ok | 1 + src/regress/sbin/ipsecctl/sa23.in | 42 + src/regress/sbin/ipsecctl/sa23.ok | 52 + src/regress/sbin/ipsecctl/sa24.in | 14 + src/regress/sbin/ipsecctl/sa24.ok | 28 + src/regress/sbin/ipsecctl/sa3.in | 6 + src/regress/sbin/ipsecctl/sa3.ok | 6 + src/regress/sbin/ipsecctl/sa4.in | 7 + src/regress/sbin/ipsecctl/sa4.ok | 6 + src/regress/sbin/ipsecctl/sa5.in | 14 + src/regress/sbin/ipsecctl/sa5.ok | 28 + src/regress/sbin/ipsecctl/sa6.in | 34 + src/regress/sbin/ipsecctl/sa6.ok | 52 + src/regress/sbin/ipsecctl/sa7.in | 3 + src/regress/sbin/ipsecctl/sa7.ok | 6 + src/regress/sbin/ipsecctl/sa8.in | 3 + src/regress/sbin/ipsecctl/sa8.ok | 6 + src/regress/sbin/ipsecctl/sa9.in | 46 + src/regress/sbin/ipsecctl/sa9.ok | 56 + src/regress/sbin/ipsecctl/safail1.in | 6 + src/regress/sbin/ipsecctl/safail1.ok | 3 + src/regress/sbin/ipsecctl/safail2.in | 6 + src/regress/sbin/ipsecctl/safail2.ok | 3 + src/regress/sbin/ipsecctl/tcpmd51.in | 1 + src/regress/sbin/ipsecctl/tcpmd51.ok | 2 + src/regress/sbin/ipsecctl/tcpmd52.in | 2 + src/regress/sbin/ipsecctl/tcpmd52.ok | 2 + src/regress/sbin/ipsecctl/tcpmd53.in | 1 + src/regress/sbin/ipsecctl/tcpmd53.ok | 2 + src/regress/sbin/isakmpd/CVS/Entries | 13 + src/regress/sbin/isakmpd/CVS/Repository | 1 + src/regress/sbin/isakmpd/CVS/Root | 1 + src/regress/sbin/isakmpd/Makefile | 36 + src/regress/sbin/isakmpd/b2n/CVS/Entries | 3 + src/regress/sbin/isakmpd/b2n/CVS/Repository | 1 + src/regress/sbin/isakmpd/b2n/CVS/Root | 1 + src/regress/sbin/isakmpd/b2n/Makefile | 16 + src/regress/sbin/isakmpd/b2n/b2ntest.c | 368 ++ src/regress/sbin/isakmpd/crypto/CVS/Entries | 3 + src/regress/sbin/isakmpd/crypto/CVS/Repository | 1 + src/regress/sbin/isakmpd/crypto/CVS/Root | 1 + src/regress/sbin/isakmpd/crypto/Makefile | 20 + src/regress/sbin/isakmpd/crypto/cryptotest.c | 178 + src/regress/sbin/isakmpd/dh/CVS/Entries | 3 + src/regress/sbin/isakmpd/dh/CVS/Repository | 1 + src/regress/sbin/isakmpd/dh/CVS/Root | 1 + src/regress/sbin/isakmpd/dh/Makefile | 29 + src/regress/sbin/isakmpd/dh/dhtest.c | 102 + src/regress/sbin/isakmpd/ec2n/CVS/Entries | 3 + src/regress/sbin/isakmpd/ec2n/CVS/Repository | 1 + src/regress/sbin/isakmpd/ec2n/CVS/Root | 1 + src/regress/sbin/isakmpd/ec2n/Makefile | 16 + src/regress/sbin/isakmpd/ec2n/ec2ntest.c | 144 + src/regress/sbin/isakmpd/exchange/CVS/Entries | 10 + src/regress/sbin/isakmpd/exchange/CVS/Repository | 1 + src/regress/sbin/isakmpd/exchange/CVS/Root | 1 + src/regress/sbin/isakmpd/exchange/Makefile | 52 + src/regress/sbin/isakmpd/exchange/README | 78 + src/regress/sbin/isakmpd/exchange/def-i.1 | Bin 0 -> 72 bytes src/regress/sbin/isakmpd/exchange/def-r.1 | Bin 0 -> 72 bytes src/regress/sbin/isakmpd/exchange/mm-1-setup.sh | 12 + src/regress/sbin/isakmpd/exchange/mm-i-1.t | 43 + src/regress/sbin/isakmpd/exchange/mm-r-1.t | 42 + src/regress/sbin/isakmpd/exchange/run.pl | 105 + src/regress/sbin/isakmpd/exchange/run.sh | 139 + src/regress/sbin/isakmpd/group/CVS/Entries | 3 + src/regress/sbin/isakmpd/group/CVS/Repository | 1 + src/regress/sbin/isakmpd/group/CVS/Root | 1 + src/regress/sbin/isakmpd/group/Makefile | 29 + src/regress/sbin/isakmpd/group/grouptest.c | 121 + src/regress/sbin/isakmpd/hmac/CVS/Entries | 3 + src/regress/sbin/isakmpd/hmac/CVS/Repository | 1 + src/regress/sbin/isakmpd/hmac/CVS/Root | 1 + src/regress/sbin/isakmpd/hmac/Makefile | 16 + src/regress/sbin/isakmpd/hmac/hmactest.c | 93 + src/regress/sbin/isakmpd/msg/CVS/Entries | 2 + src/regress/sbin/isakmpd/msg/CVS/Repository | 1 + src/regress/sbin/isakmpd/msg/CVS/Root | 1 + src/regress/sbin/isakmpd/msg/check.sh | 88 + src/regress/sbin/isakmpd/prf/CVS/Entries | 3 + src/regress/sbin/isakmpd/prf/CVS/Repository | 1 + src/regress/sbin/isakmpd/prf/CVS/Root | 1 + src/regress/sbin/isakmpd/prf/Makefile | 16 + src/regress/sbin/isakmpd/prf/prftest.c | 116 + src/regress/sbin/isakmpd/rsakeygen/.cvsignore | 2 + src/regress/sbin/isakmpd/rsakeygen/CVS/Entries | 4 + src/regress/sbin/isakmpd/rsakeygen/CVS/Repository | 1 + src/regress/sbin/isakmpd/rsakeygen/CVS/Root | 1 + src/regress/sbin/isakmpd/rsakeygen/Makefile | 69 + src/regress/sbin/isakmpd/rsakeygen/rsakeygen.c | 128 + src/regress/sbin/isakmpd/util/CVS/Entries | 3 + src/regress/sbin/isakmpd/util/CVS/Repository | 1 + src/regress/sbin/isakmpd/util/CVS/Root | 1 + src/regress/sbin/isakmpd/util/Makefile | 15 + src/regress/sbin/isakmpd/util/utiltest.c | 85 + src/regress/sbin/isakmpd/x509/CVS/Entries | 3 + src/regress/sbin/isakmpd/x509/CVS/Repository | 1 + src/regress/sbin/isakmpd/x509/CVS/Root | 1 + src/regress/sbin/isakmpd/x509/Makefile | 78 + src/regress/sbin/isakmpd/x509/x509test.c | 291 ++ src/regress/sbin/newfs/CVS/Entries | 3 + src/regress/sbin/newfs/CVS/Repository | 1 + src/regress/sbin/newfs/CVS/Root | 1 + src/regress/sbin/newfs/Makefile | 6 + src/regress/sbin/newfs/checknewfs | 55 + src/regress/sbin/pfctl/CVS/Entries | 529 +++ src/regress/sbin/pfctl/CVS/Repository | 1 + src/regress/sbin/pfctl/CVS/Root | 1 + src/regress/sbin/pfctl/Makefile | 314 ++ src/regress/sbin/pfctl/if2ip | 55 + src/regress/sbin/pfctl/obj | 1 + src/regress/sbin/pfctl/pf1.in | 8 + src/regress/sbin/pfctl/pf1.loaded | 32 + src/regress/sbin/pfctl/pf1.ok | 8 + src/regress/sbin/pfctl/pf1.optimized | 32 + src/regress/sbin/pfctl/pf10.in | 31 + src/regress/sbin/pfctl/pf10.loaded | 120 + src/regress/sbin/pfctl/pf10.ok | 30 + src/regress/sbin/pfctl/pf10.optimized | 76 + src/regress/sbin/pfctl/pf11.in | 18 + src/regress/sbin/pfctl/pf11.loaded | 72 + src/regress/sbin/pfctl/pf11.ok | 18 + src/regress/sbin/pfctl/pf11.optimized | 72 + src/regress/sbin/pfctl/pf12.in | 5 + src/regress/sbin/pfctl/pf12.loaded | 20 + src/regress/sbin/pfctl/pf12.ok | 5 + src/regress/sbin/pfctl/pf12.optimized | 20 + src/regress/sbin/pfctl/pf13.in | 22 + src/regress/sbin/pfctl/pf13.loaded | 64 + src/regress/sbin/pfctl/pf13.ok | 16 + src/regress/sbin/pfctl/pf13.optimized | 52 + src/regress/sbin/pfctl/pf14.in | 6 + src/regress/sbin/pfctl/pf14.loaded | 24 + src/regress/sbin/pfctl/pf14.ok | 6 + src/regress/sbin/pfctl/pf14.optimized | 8 + src/regress/sbin/pfctl/pf15.in | 11 + src/regress/sbin/pfctl/pf15.loaded | 36 + src/regress/sbin/pfctl/pf15.ok | 11 + src/regress/sbin/pfctl/pf15.optimized | 20 + src/regress/sbin/pfctl/pf16.in | 5 + src/regress/sbin/pfctl/pf16.loaded | 20 + src/regress/sbin/pfctl/pf16.ok | 5 + src/regress/sbin/pfctl/pf16.optimized | 20 + src/regress/sbin/pfctl/pf17.in | 52 + src/regress/sbin/pfctl/pf17.loaded | 344 ++ src/regress/sbin/pfctl/pf17.ok | 86 + src/regress/sbin/pfctl/pf17.optimized | 344 ++ src/regress/sbin/pfctl/pf18.in | 19 + src/regress/sbin/pfctl/pf18.loaded | 76 + src/regress/sbin/pfctl/pf18.ok | 21 + src/regress/sbin/pfctl/pf18.optimized | 76 + src/regress/sbin/pfctl/pf19.in | 9 + src/regress/sbin/pfctl/pf19.loaded | 36 + src/regress/sbin/pfctl/pf19.ok | 13 + src/regress/sbin/pfctl/pf19.optimized | 36 + src/regress/sbin/pfctl/pf2.in | 34 + src/regress/sbin/pfctl/pf2.loaded | 88 + src/regress/sbin/pfctl/pf2.ok | 22 + src/regress/sbin/pfctl/pf2.optimized | 88 + src/regress/sbin/pfctl/pf20.in | 9 + src/regress/sbin/pfctl/pf20.loaded | 48 + src/regress/sbin/pfctl/pf20.ok | 16 + src/regress/sbin/pfctl/pf20.optimized | 48 + src/regress/sbin/pfctl/pf21.in | 3 + src/regress/sbin/pfctl/pf21.ok | 3 + src/regress/sbin/pfctl/pf21.optimized | 0 src/regress/sbin/pfctl/pf22.in | 10 + src/regress/sbin/pfctl/pf22.ok | 12 + src/regress/sbin/pfctl/pf23.in | 2 + src/regress/sbin/pfctl/pf23.loaded | 4 + src/regress/sbin/pfctl/pf23.ok | 1 + src/regress/sbin/pfctl/pf23.optimized | 4 + src/regress/sbin/pfctl/pf24.in | 8 + src/regress/sbin/pfctl/pf24.loaded | 8 + src/regress/sbin/pfctl/pf24.ok | 7 + src/regress/sbin/pfctl/pf24.optimized | 8 + src/regress/sbin/pfctl/pf25.in | 4 + src/regress/sbin/pfctl/pf25.loaded | 20 + src/regress/sbin/pfctl/pf25.ok | 5 + src/regress/sbin/pfctl/pf25.optimized | 20 + src/regress/sbin/pfctl/pf26.in | 2 + src/regress/sbin/pfctl/pf26.loaded | 8 + src/regress/sbin/pfctl/pf26.ok | 2 + src/regress/sbin/pfctl/pf26.optimized | 8 + src/regress/sbin/pfctl/pf27.in | 17 + src/regress/sbin/pfctl/pf27.loaded | 48 + src/regress/sbin/pfctl/pf27.ok | 12 + src/regress/sbin/pfctl/pf27.optimized | 40 + src/regress/sbin/pfctl/pf28.in | 7 + src/regress/sbin/pfctl/pf28.loaded | 24 + src/regress/sbin/pfctl/pf28.ok | 6 + src/regress/sbin/pfctl/pf28.optimized | 24 + src/regress/sbin/pfctl/pf29.in | 3 + src/regress/sbin/pfctl/pf29.loaded | 12 + src/regress/sbin/pfctl/pf29.ok | 3 + src/regress/sbin/pfctl/pf29.optimized | 12 + src/regress/sbin/pfctl/pf3.in | 13 + src/regress/sbin/pfctl/pf3.loaded | 52 + src/regress/sbin/pfctl/pf3.ok | 13 + src/regress/sbin/pfctl/pf3.optimized | 36 + src/regress/sbin/pfctl/pf30.in | 7 + src/regress/sbin/pfctl/pf30.loaded | 4 + src/regress/sbin/pfctl/pf30.ok | 1 + src/regress/sbin/pfctl/pf30.optimized | 4 + src/regress/sbin/pfctl/pf31.in | 22 + src/regress/sbin/pfctl/pf31.loaded | 72 + src/regress/sbin/pfctl/pf31.ok | 21 + src/regress/sbin/pfctl/pf31.optimized | 20 + src/regress/sbin/pfctl/pf32.in | 7 + src/regress/sbin/pfctl/pf32.loaded | 24 + src/regress/sbin/pfctl/pf32.ok | 6 + src/regress/sbin/pfctl/pf32.optimized | 8 + src/regress/sbin/pfctl/pf33.in | 18 + src/regress/sbin/pfctl/pf33.loaded | 24 + src/regress/sbin/pfctl/pf33.ok | 15 + src/regress/sbin/pfctl/pf34.in | 5 + src/regress/sbin/pfctl/pf34.loaded | 20 + src/regress/sbin/pfctl/pf34.ok | 5 + src/regress/sbin/pfctl/pf34.optimized | 20 + src/regress/sbin/pfctl/pf35.in | 31 + src/regress/sbin/pfctl/pf35.loaded | 24 + src/regress/sbin/pfctl/pf35.ok | 18 + src/regress/sbin/pfctl/pf36.in | 17 + src/regress/sbin/pfctl/pf36.loaded | 56 + src/regress/sbin/pfctl/pf36.ok | 22 + src/regress/sbin/pfctl/pf36.optimized | 56 + src/regress/sbin/pfctl/pf37.in | 5 + src/regress/sbin/pfctl/pf37.ok | 3 + src/regress/sbin/pfctl/pf38.in | 5 + src/regress/sbin/pfctl/pf38.loaded | 16 + src/regress/sbin/pfctl/pf38.ok | 4 + src/regress/sbin/pfctl/pf38.optimized | 16 + src/regress/sbin/pfctl/pf39.in | 24 + src/regress/sbin/pfctl/pf39.loaded | 36 + src/regress/sbin/pfctl/pf39.ok | 23 + src/regress/sbin/pfctl/pf39.optimized | 36 + src/regress/sbin/pfctl/pf4.in | 16 + src/regress/sbin/pfctl/pf4.loaded | 248 ++ src/regress/sbin/pfctl/pf4.ok | 62 + src/regress/sbin/pfctl/pf4.optimized | 8 + src/regress/sbin/pfctl/pf40.in | 20 + src/regress/sbin/pfctl/pf40.loaded | 80 + src/regress/sbin/pfctl/pf40.ok | 20 + src/regress/sbin/pfctl/pf40.optimized | 52 + src/regress/sbin/pfctl/pf41.in | 12 + src/regress/sbin/pfctl/pf41.ok | 12 + src/regress/sbin/pfctl/pf42.in | 9 + src/regress/sbin/pfctl/pf42.ok | 5 + src/regress/sbin/pfctl/pf43.in | 11 + src/regress/sbin/pfctl/pf43.loaded | 20 + src/regress/sbin/pfctl/pf43.ok | 8 + src/regress/sbin/pfctl/pf44.in | 8 + src/regress/sbin/pfctl/pf44.loaded | 24 + src/regress/sbin/pfctl/pf44.ok | 6 + src/regress/sbin/pfctl/pf44.optimized | 8 + src/regress/sbin/pfctl/pf45.in | 4 + src/regress/sbin/pfctl/pf45.ok | 4 + src/regress/sbin/pfctl/pf46.in | 7 + src/regress/sbin/pfctl/pf46.loaded | 28 + src/regress/sbin/pfctl/pf46.ok | 9 + src/regress/sbin/pfctl/pf46.optimized | 28 + src/regress/sbin/pfctl/pf47.in | 67 + src/regress/sbin/pfctl/pf47.loaded | 244 ++ src/regress/sbin/pfctl/pf47.ok | 61 + src/regress/sbin/pfctl/pf47.optimized | 244 ++ src/regress/sbin/pfctl/pf48.in | 13 + src/regress/sbin/pfctl/pf48.loaded | 56 + src/regress/sbin/pfctl/pf48.ok | 17 + src/regress/sbin/pfctl/pf48.optimized | 56 + src/regress/sbin/pfctl/pf49.in | 5 + src/regress/sbin/pfctl/pf49.loaded | 8 + src/regress/sbin/pfctl/pf49.ok | 2 + src/regress/sbin/pfctl/pf49.optimized | 8 + src/regress/sbin/pfctl/pf5.in | 6 + src/regress/sbin/pfctl/pf5.loaded | 32 + src/regress/sbin/pfctl/pf5.ok | 11 + src/regress/sbin/pfctl/pf5.optimized | 32 + src/regress/sbin/pfctl/pf50.in | 4 + src/regress/sbin/pfctl/pf50.ok | 3 + src/regress/sbin/pfctl/pf51.in | 9 + src/regress/sbin/pfctl/pf51.ok | 6 + src/regress/sbin/pfctl/pf52.in | 7 + src/regress/sbin/pfctl/pf52.ok | 5 + src/regress/sbin/pfctl/pf53.in | 4 + src/regress/sbin/pfctl/pf53.ok | 4 + src/regress/sbin/pfctl/pf54.in | 3 + src/regress/sbin/pfctl/pf54.loaded | 4 + src/regress/sbin/pfctl/pf54.ok | 1 + src/regress/sbin/pfctl/pf54.optimized | 4 + src/regress/sbin/pfctl/pf55.in | 19 + src/regress/sbin/pfctl/pf55.ok | 29 + src/regress/sbin/pfctl/pf56.in | 2 + src/regress/sbin/pfctl/pf56.loaded | 8 + src/regress/sbin/pfctl/pf56.ok | 2 + src/regress/sbin/pfctl/pf56.optimized | 8 + src/regress/sbin/pfctl/pf57.in | 4 + src/regress/sbin/pfctl/pf57.ok | 4 + src/regress/sbin/pfctl/pf58.in | 8 + src/regress/sbin/pfctl/pf58.ok | 6 + src/regress/sbin/pfctl/pf59.in | 4 + src/regress/sbin/pfctl/pf59.ok | 3 + src/regress/sbin/pfctl/pf6.in | 3 + src/regress/sbin/pfctl/pf6.ok | 3 + src/regress/sbin/pfctl/pf60.in | 11 + src/regress/sbin/pfctl/pf60.loaded | 28 + src/regress/sbin/pfctl/pf60.ok | 7 + src/regress/sbin/pfctl/pf60.optimized | 4 + src/regress/sbin/pfctl/pf61.in | 4 + src/regress/sbin/pfctl/pf61.loaded | 4 + src/regress/sbin/pfctl/pf61.ok | 1 + src/regress/sbin/pfctl/pf61.optimized | 4 + src/regress/sbin/pfctl/pf62.in | 12 + src/regress/sbin/pfctl/pf62.ok | 6 + src/regress/sbin/pfctl/pf63.in | 9 + src/regress/sbin/pfctl/pf63.ok | 4 + src/regress/sbin/pfctl/pf64.in | 11 + src/regress/sbin/pfctl/pf64.ok | 5 + src/regress/sbin/pfctl/pf65.in | 2 + src/regress/sbin/pfctl/pf65.loaded | 12 + src/regress/sbin/pfctl/pf65.ok | 3 + src/regress/sbin/pfctl/pf65.optimized | 12 + src/regress/sbin/pfctl/pf66.in | 10 + src/regress/sbin/pfctl/pf66.loaded | 24 + src/regress/sbin/pfctl/pf66.ok | 6 + src/regress/sbin/pfctl/pf66.optimized | 24 + src/regress/sbin/pfctl/pf67.in | 3 + src/regress/sbin/pfctl/pf67.loaded | 8 + src/regress/sbin/pfctl/pf67.ok | 2 + src/regress/sbin/pfctl/pf67.optimized | 8 + src/regress/sbin/pfctl/pf68.in | 43 + src/regress/sbin/pfctl/pf68.loaded | 248 ++ src/regress/sbin/pfctl/pf68.ok | 62 + src/regress/sbin/pfctl/pf68.optimized | 148 + src/regress/sbin/pfctl/pf69.in | 3 + src/regress/sbin/pfctl/pf69.loaded | 8 + src/regress/sbin/pfctl/pf69.ok | 2 + src/regress/sbin/pfctl/pf69.optimized | 8 + src/regress/sbin/pfctl/pf7.in | 34 + src/regress/sbin/pfctl/pf7.loaded | 108 + src/regress/sbin/pfctl/pf7.ok | 27 + src/regress/sbin/pfctl/pf7.optimized | 104 + src/regress/sbin/pfctl/pf70.in | 3 + src/regress/sbin/pfctl/pf70.loaded | 8 + src/regress/sbin/pfctl/pf70.ok | 2 + src/regress/sbin/pfctl/pf70.optimized | 8 + src/regress/sbin/pfctl/pf71.in | 3 + src/regress/sbin/pfctl/pf71.loaded | 8 + src/regress/sbin/pfctl/pf71.ok | 2 + src/regress/sbin/pfctl/pf71.optimized | 8 + src/regress/sbin/pfctl/pf72.in | 4 + src/regress/sbin/pfctl/pf72.loaded | 12 + src/regress/sbin/pfctl/pf72.ok | 3 + src/regress/sbin/pfctl/pf72.optimized | 12 + src/regress/sbin/pfctl/pf73.in | 1 + src/regress/sbin/pfctl/pf73.loaded | 4 + src/regress/sbin/pfctl/pf73.ok | 1 + src/regress/sbin/pfctl/pf73.optimized | 4 + src/regress/sbin/pfctl/pf74.in | 1 + src/regress/sbin/pfctl/pf74.loaded | 4 + src/regress/sbin/pfctl/pf74.ok | 1 + src/regress/sbin/pfctl/pf74.optimized | 4 + src/regress/sbin/pfctl/pf75.in | 3 + src/regress/sbin/pfctl/pf75.loaded | 8 + src/regress/sbin/pfctl/pf75.ok | 2 + src/regress/sbin/pfctl/pf75.optimized | 8 + src/regress/sbin/pfctl/pf76.in | 2 + src/regress/sbin/pfctl/pf76.loaded | 8 + src/regress/sbin/pfctl/pf76.ok | 2 + src/regress/sbin/pfctl/pf76.optimized | 8 + src/regress/sbin/pfctl/pf77.in | 5 + src/regress/sbin/pfctl/pf77.loaded | 4 + src/regress/sbin/pfctl/pf77.ok | 1 + src/regress/sbin/pfctl/pf77.optimized | 4 + src/regress/sbin/pfctl/pf78.in | 2 + src/regress/sbin/pfctl/pf78.loaded | 4 + src/regress/sbin/pfctl/pf78.ok | 1 + src/regress/sbin/pfctl/pf78.optimized | 4 + src/regress/sbin/pfctl/pf79.in | 2 + src/regress/sbin/pfctl/pf79.loaded | 4 + src/regress/sbin/pfctl/pf79.ok | 1 + src/regress/sbin/pfctl/pf79.optimized | 4 + src/regress/sbin/pfctl/pf8.in | 2 + src/regress/sbin/pfctl/pf8.loaded | 8 + src/regress/sbin/pfctl/pf8.ok | 3 + src/regress/sbin/pfctl/pf8.optimized | 8 + src/regress/sbin/pfctl/pf80.in | 15 + src/regress/sbin/pfctl/pf80.loaded | 64 + src/regress/sbin/pfctl/pf80.ok | 16 + src/regress/sbin/pfctl/pf80.optimized | 64 + src/regress/sbin/pfctl/pf81.in | 12 + src/regress/sbin/pfctl/pf81.loaded | 120 + src/regress/sbin/pfctl/pf81.ok | 32 + src/regress/sbin/pfctl/pf81.optimized | 96 + src/regress/sbin/pfctl/pf82.in | 15 + src/regress/sbin/pfctl/pf82.loaded | 52 + src/regress/sbin/pfctl/pf82.ok | 13 + src/regress/sbin/pfctl/pf82.optimized | 28 + src/regress/sbin/pfctl/pf83.in | 3 + src/regress/sbin/pfctl/pf83.ok | 0 src/regress/sbin/pfctl/pf84.in | 17 + src/regress/sbin/pfctl/pf84.loaded | 32 + src/regress/sbin/pfctl/pf84.ok | 10 + src/regress/sbin/pfctl/pf84.optimized | 32 + src/regress/sbin/pfctl/pf85.in | 3 + src/regress/sbin/pfctl/pf85.ok | 6 + src/regress/sbin/pfctl/pf86.in | 4 + src/regress/sbin/pfctl/pf86.ok | 0 src/regress/sbin/pfctl/pf87.in | 24 + src/regress/sbin/pfctl/pf87.loaded | 88 + src/regress/sbin/pfctl/pf87.ok | 22 + src/regress/sbin/pfctl/pf87.optimized | 88 + src/regress/sbin/pfctl/pf88.in | 32 + src/regress/sbin/pfctl/pf88.loaded | 88 + src/regress/sbin/pfctl/pf88.ok | 22 + src/regress/sbin/pfctl/pf88.optimized | 52 + src/regress/sbin/pfctl/pf89.in | 25 + src/regress/sbin/pfctl/pf89.loaded | 40 + src/regress/sbin/pfctl/pf89.ok | 11 + src/regress/sbin/pfctl/pf89.optimized | 40 + src/regress/sbin/pfctl/pf9.in | 3 + src/regress/sbin/pfctl/pf9.loaded | 8 + src/regress/sbin/pfctl/pf9.ok | 3 + src/regress/sbin/pfctl/pf9.optimized | 8 + src/regress/sbin/pfctl/pf90.in | 5 + src/regress/sbin/pfctl/pf90.loaded | 20 + src/regress/sbin/pfctl/pf90.ok | 5 + src/regress/sbin/pfctl/pf90.optimized | 20 + src/regress/sbin/pfctl/pf91.in | 11 + src/regress/sbin/pfctl/pf91.loaded | 31 + src/regress/sbin/pfctl/pf91.ok | 10 + src/regress/sbin/pfctl/pf91.optimized | 31 + src/regress/sbin/pfctl/pf92.in | 30 + src/regress/sbin/pfctl/pf92.loaded | 71 + src/regress/sbin/pfctl/pf92.ok | 26 + src/regress/sbin/pfctl/pf92.optimized | 71 + src/regress/sbin/pfctl/pf93.in | 2 + src/regress/sbin/pfctl/pf93.ok | 1 + src/regress/sbin/pfctl/pf94.in | 4 + src/regress/sbin/pfctl/pf94.ok | 4 + src/regress/sbin/pfctl/pf95.in | 4 + src/regress/sbin/pfctl/pf95.include | 1 + src/regress/sbin/pfctl/pf95.ok | 2 + src/regress/sbin/pfctl/pf96.in | 5 + src/regress/sbin/pfctl/pf96.ok | 5 + src/regress/sbin/pfctl/pf97.in | 4 + src/regress/sbin/pfctl/pf97.ok | 4 + src/regress/sbin/pfctl/pf98.in | 4 + src/regress/sbin/pfctl/pf98.ok | 2 + src/regress/sbin/pfctl/pfail1.in | 5 + src/regress/sbin/pfctl/pfail1.ok | 9 + src/regress/sbin/pfctl/pfail11.in | 6 + src/regress/sbin/pfctl/pfail11.ok | 6 + src/regress/sbin/pfctl/pfail12.in | 2 + src/regress/sbin/pfctl/pfail12.ok | 3 + src/regress/sbin/pfctl/pfail13.in | 2 + src/regress/sbin/pfctl/pfail13.ok | 2 + src/regress/sbin/pfctl/pfail14.in | 1 + src/regress/sbin/pfctl/pfail14.ok | 1 + src/regress/sbin/pfctl/pfail15.in | 3 + src/regress/sbin/pfctl/pfail15.ok | 2 + src/regress/sbin/pfctl/pfail16.in | 7 + src/regress/sbin/pfctl/pfail16.ok | 10 + src/regress/sbin/pfctl/pfail17.in | 5 + src/regress/sbin/pfctl/pfail17.ok | 2 + src/regress/sbin/pfctl/pfail18.in | 6 + src/regress/sbin/pfctl/pfail18.ok | 5 + src/regress/sbin/pfctl/pfail19.in | 8 + src/regress/sbin/pfctl/pfail19.ok | 8 + src/regress/sbin/pfctl/pfail2.in | 4 + src/regress/sbin/pfctl/pfail2.ok | 6 + src/regress/sbin/pfctl/pfail20.in | 6 + src/regress/sbin/pfctl/pfail20.ok | 1 + src/regress/sbin/pfctl/pfail23.in | 11 + src/regress/sbin/pfctl/pfail23.ok | 6 + src/regress/sbin/pfctl/pfail25.in | 6 + src/regress/sbin/pfctl/pfail25.ok | 6 + src/regress/sbin/pfctl/pfail27.in | 6 + src/regress/sbin/pfctl/pfail27.ok | 12 + src/regress/sbin/pfctl/pfail29.in | 3 + src/regress/sbin/pfctl/pfail29.ok | 1 + src/regress/sbin/pfctl/pfail3.in | 1 + src/regress/sbin/pfctl/pfail3.ok | 3 + src/regress/sbin/pfctl/pfail30.in | 18 + src/regress/sbin/pfctl/pfail30.ok | 37 + src/regress/sbin/pfctl/pfail31.in | 12 + src/regress/sbin/pfctl/pfail31.ok | 10 + src/regress/sbin/pfctl/pfail32.in | 4 + src/regress/sbin/pfctl/pfail32.ok | 1 + src/regress/sbin/pfctl/pfail33.in | 3 + src/regress/sbin/pfctl/pfail33.ok | 1 + src/regress/sbin/pfctl/pfail34.in | 3 + src/regress/sbin/pfctl/pfail34.ok | 1 + src/regress/sbin/pfctl/pfail35.in | 6 + src/regress/sbin/pfctl/pfail35.ok | 2 + src/regress/sbin/pfctl/pfail36.in | 6 + src/regress/sbin/pfctl/pfail36.ok | 2 + src/regress/sbin/pfctl/pfail37.in | 1 + src/regress/sbin/pfctl/pfail37.ok | 1 + src/regress/sbin/pfctl/pfail38.in | 2 + src/regress/sbin/pfctl/pfail38.ok | 2 + src/regress/sbin/pfctl/pfail39.in | 3 + src/regress/sbin/pfctl/pfail39.ok | 1 + src/regress/sbin/pfctl/pfail4.in | 3 + src/regress/sbin/pfctl/pfail4.ok | 1 + src/regress/sbin/pfctl/pfail40.in | 4 + src/regress/sbin/pfctl/pfail40.ok | 4 + src/regress/sbin/pfctl/pfail41.in | 3 + src/regress/sbin/pfctl/pfail41.ok | 2 + src/regress/sbin/pfctl/pfail42.in | 3 + src/regress/sbin/pfctl/pfail42.ok | 3 + src/regress/sbin/pfctl/pfail43.in | 7 + src/regress/sbin/pfctl/pfail43.ok | 8 + src/regress/sbin/pfctl/pfail44.in | 8 + src/regress/sbin/pfctl/pfail44.ok | 5 + src/regress/sbin/pfctl/pfail45.in | 6 + src/regress/sbin/pfctl/pfail45.ok | 5 + src/regress/sbin/pfctl/pfail46.in | 5 + src/regress/sbin/pfctl/pfail46.ok | 4 + src/regress/sbin/pfctl/pfail47.in | 2 + src/regress/sbin/pfctl/pfail47.ok | 1 + src/regress/sbin/pfctl/pfail48.in | 2 + src/regress/sbin/pfctl/pfail48.ok | 1 + src/regress/sbin/pfctl/pfail49.in | 10 + src/regress/sbin/pfctl/pfail49.ok | 2 + src/regress/sbin/pfctl/pfail5.in | 1 + src/regress/sbin/pfctl/pfail5.ok | 3 + src/regress/sbin/pfctl/pfail50.in | 22 + src/regress/sbin/pfctl/pfail50.ok | 5 + src/regress/sbin/pfctl/pfail52.in | 2 + src/regress/sbin/pfctl/pfail52.ok | 2 + src/regress/sbin/pfctl/pfail53.in | 20 + src/regress/sbin/pfctl/pfail53.ok | 6 + src/regress/sbin/pfctl/pfail6.in | 1 + src/regress/sbin/pfctl/pfail6.ok | 3 + src/regress/sbin/pfctl/pfail7.in | 1 + src/regress/sbin/pfctl/pfail7.ok | 3 + src/regress/sbin/pfctl/pfail8.in | 3 + src/regress/sbin/pfctl/pfail8.ok | 6 + src/regress/sbin/pfctl/pfaltq1.in | 5 + src/regress/sbin/pfctl/pfaltq1.ok | 8 + src/regress/sbin/pfctl/pfaltq10.in | 9 + src/regress/sbin/pfctl/pfaltq10.ok | 20 + src/regress/sbin/pfctl/pfaltq11.in | 15 + src/regress/sbin/pfctl/pfaltq11.ok | 28 + src/regress/sbin/pfctl/pfaltq12.in | 9 + src/regress/sbin/pfctl/pfaltq12.ok | 8 + src/regress/sbin/pfctl/pfaltq13.in | 9 + src/regress/sbin/pfctl/pfaltq13.ok | 8 + src/regress/sbin/pfctl/pfaltq14.in | 7 + src/regress/sbin/pfctl/pfaltq14.ok | 4 + src/regress/sbin/pfctl/pfaltq2.in | 9 + src/regress/sbin/pfctl/pfaltq2.ok | 20 + src/regress/sbin/pfctl/pfaltq3.in | 15 + src/regress/sbin/pfctl/pfaltq3.ok | 28 + src/regress/sbin/pfctl/pfaltq4.in | 7 + src/regress/sbin/pfctl/pfaltq4.ok | 12 + src/regress/sbin/pfctl/pfaltq5.in | 10 + src/regress/sbin/pfctl/pfaltq5.ok | 18 + src/regress/sbin/pfctl/pfaltq6.in | 12 + src/regress/sbin/pfctl/pfaltq6.ok | 24 + src/regress/sbin/pfctl/pfaltq7.in | 12 + src/regress/sbin/pfctl/pfaltq7.ok | 4 + src/regress/sbin/pfctl/pfaltq8.in | 7 + src/regress/sbin/pfctl/pfaltq8.ok | 8 + src/regress/sbin/pfctl/pfaltq9.in | 8 + src/regress/sbin/pfctl/pfaltq9.ok | 8 + src/regress/sbin/pfctl/pfchksum1.in | 34 + src/regress/sbin/pfctl/pfchksum1.ok | 1 + src/regress/sbin/pfctl/pfchksum2.in | 34 + src/regress/sbin/pfctl/pfchksum2.ok | 1 + src/regress/sbin/pfctl/pfchksum3.in | 8 + src/regress/sbin/pfctl/pfchksum3.ok | 1 + src/regress/sbin/pfctl/pfi1.in | 10 + src/regress/sbin/pfctl/pfi1.ok | 20 + src/regress/sbin/pfctl/pfi2.in | 12 + src/regress/sbin/pfctl/pfi2.ok | 10 + src/regress/sbin/pfctl/pfi3.in | 11 + src/regress/sbin/pfctl/pfi3.ok | 20 + src/regress/sbin/pfctl/pfopt1.in | 2 + src/regress/sbin/pfctl/pfopt1.ok | 2 + src/regress/sbin/pfctl/pfopt1.opts | 1 + src/regress/sbin/pfctl/pfopt2.in | 8 + src/regress/sbin/pfctl/pfopt2.ok | 7 + src/regress/sbin/pfctl/pfopt2.opts | 0 src/regress/sbin/pfctl/pfopt3.in | 7 + src/regress/sbin/pfctl/pfopt3.ok | 5 + src/regress/sbin/pfctl/pfopt3.opts | 0 src/regress/sbin/pfctl/pfopt6.in | 28 + src/regress/sbin/pfctl/pfopt6.ok | 26 + src/regress/sbin/pfctl/pfopt6.opts | 1 + src/regress/sbin/pfctl/pfr.addrs1 | 16 + src/regress/sbin/pfctl/pfr.addrs2 | 32 + src/regress/sbin/pfctl/pfr.exec | 89 + src/regress/sbin/pfctl/pfr1.in | 11 + src/regress/sbin/pfctl/pfr1.ok | 64 + src/regress/sbin/pfctl/pfr10.in | 16 + src/regress/sbin/pfctl/pfr10.ok | 45 + src/regress/sbin/pfctl/pfr11.in | 10 + src/regress/sbin/pfctl/pfr11.ok | 35 + src/regress/sbin/pfctl/pfr12.in | 17 + src/regress/sbin/pfctl/pfr12.ok | 43 + src/regress/sbin/pfctl/pfr13.in | 11 + src/regress/sbin/pfctl/pfr13.ok | 394 ++ src/regress/sbin/pfctl/pfr2.in | 11 + src/regress/sbin/pfctl/pfr2.ok | 64 + src/regress/sbin/pfctl/pfr3.in | 7 + src/regress/sbin/pfctl/pfr3.ok | 59 + src/regress/sbin/pfctl/pfr4.in | 9 + src/regress/sbin/pfctl/pfr4.ok | 196 + src/regress/sbin/pfctl/pfr5.in | 33 + src/regress/sbin/pfctl/pfr5.ok | 820 ++++ src/regress/sbin/pfctl/pfr6.in | 13 + src/regress/sbin/pfctl/pfr6.ok | 151 + src/regress/sbin/pfctl/pfr7.in | 3 + src/regress/sbin/pfctl/pfr7.ok | 11 + src/regress/sbin/pfctl/pfr8.in | 3 + src/regress/sbin/pfctl/pfr8.ok | 21 + src/regress/sbin/pfctl/pfr9.in | 8 + src/regress/sbin/pfctl/pfr9.ok | 96 + src/regress/sbin/pfctl/pfsetup1.clean | 2 + src/regress/sbin/pfctl/pfsetup1.in | 1 + src/regress/sbin/pfctl/pfsetup1.ok | 1 + src/regress/sbin/pfctl/pfsetup1.setup | 2 + src/regress/sbin/pfctl/pfsetup2.clean | 2 + src/regress/sbin/pfctl/pfsetup2.in | 4 + src/regress/sbin/pfctl/pfsetup2.ok | 2 + src/regress/sbin/pfctl/pfsetup2.setup | 2 + src/regress/sbin/pfctl/pfsetup3.clean | 1 + src/regress/sbin/pfctl/pfsetup3.in | 4 + src/regress/sbin/pfctl/pfsetup3.ok | 2 + src/regress/sbin/pfctl/pfsetup3.setup | 2 + src/regress/sbin/pfctl/pfsetup4.clean | 1 + src/regress/sbin/pfctl/pfsetup4.in | 2 + src/regress/sbin/pfctl/pfsetup4.ok | 2 + src/regress/sbin/pfctl/pfsetup4.setup | 1 + src/regress/sbin/pfctl/pfsimple1.in | 1 + src/regress/sbin/pfctl/pfsimple2.in | 7 + src/regress/sbin/route/CVS/Entries | 2 + src/regress/sbin/route/CVS/Repository | 1 + src/regress/sbin/route/CVS/Root | 1 + src/regress/sbin/route/Makefile | 19 + src/regress/sbin/route/obj | 1 + src/regress/share/CVS/Entries | 2 + src/regress/share/CVS/Repository | 1 + src/regress/share/CVS/Root | 1 + src/regress/share/Makefile | 8 + src/regress/share/man/CVS/Entries | 5 + src/regress/share/man/CVS/Repository | 1 + src/regress/share/man/CVS/Root | 1 + src/regress/share/man/Makefile | 14 + src/regress/share/man/cfman | 871 ++++ src/regress/share/man/no3man | 42 + src/regress/share/man/obj | 1 + src/regress/share/man/scatman | 263 ++ src/regress/sys/CVS/Entries | 13 + src/regress/sys/CVS/Repository | 1 + src/regress/sys/CVS/Root | 1 + src/regress/sys/Makefile | 14 + src/regress/sys/arch/CVS/Entries | 5 + src/regress/sys/arch/CVS/Repository | 1 + src/regress/sys/arch/CVS/Root | 1 + src/regress/sys/arch/hppa/CVS/Entries | 3 + src/regress/sys/arch/hppa/CVS/Repository | 1 + src/regress/sys/arch/hppa/CVS/Root | 1 + src/regress/sys/arch/hppa/Makefile | 7 + src/regress/sys/arch/hppa/probe/CVS/Entries | 3 + src/regress/sys/arch/hppa/probe/CVS/Repository | 1 + src/regress/sys/arch/hppa/probe/CVS/Root | 1 + src/regress/sys/arch/hppa/probe/Makefile | 6 + src/regress/sys/arch/hppa/probe/probe.c | 68 + src/regress/sys/arch/hppa/sfuid/CVS/Entries | 3 + src/regress/sys/arch/hppa/sfuid/CVS/Repository | 1 + src/regress/sys/arch/hppa/sfuid/CVS/Root | 1 + src/regress/sys/arch/hppa/sfuid/Makefile | 6 + src/regress/sys/arch/hppa/sfuid/sfuid.c | 55 + src/regress/sys/arch/i386/CVS/Entries | 2 + src/regress/sys/arch/i386/CVS/Repository | 1 + src/regress/sys/arch/i386/CVS/Root | 1 + src/regress/sys/arch/i386/Makefile | 8 + src/regress/sys/arch/i386/ldt/CVS/Entries | 3 + src/regress/sys/arch/i386/ldt/CVS/Repository | 1 + src/regress/sys/arch/i386/ldt/CVS/Root | 1 + src/regress/sys/arch/i386/ldt/Makefile | 34 + src/regress/sys/arch/i386/ldt/testldt.c | 273 ++ src/regress/sys/arch/m68k/060sp/CVS/Entries | 5 + src/regress/sys/arch/m68k/060sp/CVS/Repository | 1 + src/regress/sys/arch/m68k/060sp/CVS/Root | 1 + src/regress/sys/arch/m68k/060sp/Makefile | 25 + src/regress/sys/arch/m68k/060sp/dotest.c | 43 + src/regress/sys/arch/m68k/060sp/dotestsubs.S | 27 + src/regress/sys/arch/m68k/060sp/goodoutput | 15 + src/regress/sys/arch/m68k/CVS/Entries | 3 + src/regress/sys/arch/m68k/CVS/Repository | 1 + src/regress/sys/arch/m68k/CVS/Root | 1 + src/regress/sys/arch/m68k/Makefile | 6 + src/regress/sys/arch/m68k/emuspeed/CVS/Entries | 8 + src/regress/sys/arch/m68k/emuspeed/CVS/Repository | 1 + src/regress/sys/arch/m68k/emuspeed/CVS/Root | 1 + src/regress/sys/arch/m68k/emuspeed/Makefile | 15 + src/regress/sys/arch/m68k/emuspeed/compare | 15 + src/regress/sys/arch/m68k/emuspeed/div64.s | 52 + src/regress/sys/arch/m68k/emuspeed/emuspeed.c | 83 + src/regress/sys/arch/m68k/emuspeed/mul64.s | 52 + src/regress/sys/arch/m68k/emuspeed/speed.h | 18 + src/regress/sys/arch/m68k/emuspeed/test.s | 26 + src/regress/sys/arch/m88k/CVS/Entries | 2 + src/regress/sys/arch/m88k/CVS/Repository | 1 + src/regress/sys/arch/m88k/CVS/Root | 1 + src/regress/sys/arch/m88k/Makefile | 7 + src/regress/sys/arch/m88k/usertrap/CVS/Entries | 5 + src/regress/sys/arch/m88k/usertrap/CVS/Repository | 1 + src/regress/sys/arch/m88k/usertrap/CVS/Root | 1 + src/regress/sys/arch/m88k/usertrap/Makefile | 20 + src/regress/sys/arch/m88k/usertrap/answer | 512 +++ src/regress/sys/arch/m88k/usertrap/testsuite.sh | 526 +++ src/regress/sys/arch/m88k/usertrap/trap.c | 542 +++ src/regress/sys/arch/sparc64/CVS/Entries | 3 + src/regress/sys/arch/sparc64/CVS/Repository | 1 + src/regress/sys/arch/sparc64/CVS/Root | 1 + src/regress/sys/arch/sparc64/Makefile | 7 + .../sys/arch/sparc64/emul-ldqstq/CVS/Entries | 5 + .../sys/arch/sparc64/emul-ldqstq/CVS/Repository | 1 + src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Root | 1 + src/regress/sys/arch/sparc64/emul-ldqstq/Makefile | 5 + .../sys/arch/sparc64/emul-ldqstq/asi/CVS/Entries | 4 + .../arch/sparc64/emul-ldqstq/asi/CVS/Repository | 1 + .../sys/arch/sparc64/emul-ldqstq/asi/CVS/Root | 1 + .../sys/arch/sparc64/emul-ldqstq/asi/Makefile | 10 + src/regress/sys/arch/sparc64/emul-ldqstq/asi/asi.c | 309 ++ .../sys/arch/sparc64/emul-ldqstq/asi/asi_asm.S | 111 + .../arch/sparc64/emul-ldqstq/badfreg/CVS/Entries | 4 + .../sparc64/emul-ldqstq/badfreg/CVS/Repository | 1 + .../sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Root | 1 + .../sys/arch/sparc64/emul-ldqstq/badfreg/Makefile | 218 + .../sys/arch/sparc64/emul-ldqstq/badfreg/main.c | 221 + .../sys/arch/sparc64/emul-ldqstq/badfreg/test.S | 351 ++ .../arch/sparc64/emul-ldqstq/goodfreg/CVS/Entries | 6 + .../sparc64/emul-ldqstq/goodfreg/CVS/Repository | 1 + .../sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Root | 1 + .../sys/arch/sparc64/emul-ldqstq/goodfreg/Makefile | 7 + .../sys/arch/sparc64/emul-ldqstq/goodfreg/fpregs.S | 137 + .../sys/arch/sparc64/emul-ldqstq/goodfreg/fpregs.h | 35 + .../arch/sparc64/emul-ldqstq/goodfreg/goodfreg.c | 344 ++ .../arch/sparc64/emul-ldqstq/goodfreg/test_asm.S | 159 + .../arch/sparc64/emul-ldqstq/simm13/CVS/Entries | 4 + .../arch/sparc64/emul-ldqstq/simm13/CVS/Repository | 1 + .../sys/arch/sparc64/emul-ldqstq/simm13/CVS/Root | 1 + .../sys/arch/sparc64/emul-ldqstq/simm13/Makefile | 17 + .../sys/arch/sparc64/emul-ldqstq/simm13/genasm.pl | 48 + .../sys/arch/sparc64/emul-ldqstq/simm13/genc.pl | 170 + src/regress/sys/arch/sparc64/emul-popc/CVS/Entries | 3 + .../sys/arch/sparc64/emul-popc/CVS/Repository | 1 + src/regress/sys/arch/sparc64/emul-popc/CVS/Root | 1 + src/regress/sys/arch/sparc64/emul-popc/Makefile | 4 + .../sys/arch/sparc64/emul-popc/reg/CVS/Entries | 3 + .../sys/arch/sparc64/emul-popc/reg/CVS/Repository | 1 + .../sys/arch/sparc64/emul-popc/reg/CVS/Root | 1 + .../sys/arch/sparc64/emul-popc/reg/Makefile | 5 + src/regress/sys/arch/sparc64/emul-popc/reg/reg.c | 95 + .../sys/arch/sparc64/emul-popc/simm/CVS/Entries | 3 + .../sys/arch/sparc64/emul-popc/simm/CVS/Repository | 1 + .../sys/arch/sparc64/emul-popc/simm/CVS/Root | 1 + .../sys/arch/sparc64/emul-popc/simm/Makefile | 6 + .../sys/arch/sparc64/emul-popc/simm/simm13.c | 113 + src/regress/sys/copy/CVS/Entries | 3 + src/regress/sys/copy/CVS/Repository | 1 + src/regress/sys/copy/CVS/Root | 1 + src/regress/sys/copy/Makefile | 15 + src/regress/sys/copy/copy.c | 110 + src/regress/sys/copy/obj | 1 + src/regress/sys/crypto/CVS/Entries | 9 + src/regress/sys/crypto/CVS/Repository | 1 + src/regress/sys/crypto/CVS/Root | 1 + src/regress/sys/crypto/Makefile | 13 + src/regress/sys/crypto/aes/CVS/Entries | 3 + src/regress/sys/crypto/aes/CVS/Repository | 1 + src/regress/sys/crypto/aes/CVS/Root | 1 + src/regress/sys/crypto/aes/Makefile | 21 + src/regress/sys/crypto/aes/aestest.c | 371 ++ src/regress/sys/crypto/aes/obj | 1 + src/regress/sys/crypto/aes/vectors/CVS/Entries | 9 + src/regress/sys/crypto/aes/vectors/CVS/Repository | 1 + src/regress/sys/crypto/aes/vectors/CVS/Root | 1 + src/regress/sys/crypto/aes/vectors/ecbnk44.txt | 779 ++++ src/regress/sys/crypto/aes/vectors/ecbnk48.txt | 1547 +++++++ src/regress/sys/crypto/aes/vectors/ecbnt44.txt | 779 ++++ src/regress/sys/crypto/aes/vectors/ecbnt48.txt | 779 ++++ src/regress/sys/crypto/aes/vectors/ecbvk44.txt | 398 ++ src/regress/sys/crypto/aes/vectors/ecbvk48.txt | 782 ++++ src/regress/sys/crypto/aes/vectors/ecbvt44.txt | 398 ++ src/regress/sys/crypto/aes/vectors/ecbvt48.txt | 398 ++ src/regress/sys/crypto/aesctr/CVS/Entries | 3 + src/regress/sys/crypto/aesctr/CVS/Repository | 1 + src/regress/sys/crypto/aesctr/CVS/Root | 1 + src/regress/sys/crypto/aesctr/Makefile | 10 + src/regress/sys/crypto/aesctr/aesctr.c | 300 ++ src/regress/sys/crypto/aesctr/obj | 1 + src/regress/sys/crypto/aesxts/CVS/Entries | 3 + src/regress/sys/crypto/aesxts/CVS/Repository | 1 + src/regress/sys/crypto/aesxts/CVS/Root | 1 + src/regress/sys/crypto/aesxts/Makefile | 21 + src/regress/sys/crypto/aesxts/aes_xts.c | 1853 ++++++++ src/regress/sys/crypto/aesxts/obj | 1 + src/regress/sys/crypto/auth/CVS/Entries | 3 + src/regress/sys/crypto/auth/CVS/Repository | 1 + src/regress/sys/crypto/auth/CVS/Root | 1 + src/regress/sys/crypto/auth/Makefile | 5 + src/regress/sys/crypto/auth/md5.c | 174 + src/regress/sys/crypto/cmac/CVS/Entries | 4 + src/regress/sys/crypto/cmac/CVS/Repository | 1 + src/regress/sys/crypto/cmac/CVS/Root | 1 + src/regress/sys/crypto/cmac/Makefile | 27 + src/regress/sys/crypto/cmac/cmac_test.c | 128 + src/regress/sys/crypto/cmac/cmac_test.txt | 38 + src/regress/sys/crypto/cmac/obj | 1 + src/regress/sys/crypto/enc/CVS/Entries | 3 + src/regress/sys/crypto/enc/CVS/Repository | 1 + src/regress/sys/crypto/enc/CVS/Root | 1 + src/regress/sys/crypto/enc/Makefile | 12 + src/regress/sys/crypto/enc/des3.c | 213 + src/regress/sys/crypto/enc/obj | 1 + src/regress/sys/crypto/hmac/CVS/Entries | 4 + src/regress/sys/crypto/hmac/CVS/Repository | 1 + src/regress/sys/crypto/hmac/CVS/Root | 1 + src/regress/sys/crypto/hmac/Makefile | 27 + src/regress/sys/crypto/hmac/hmac_test.c | 92 + src/regress/sys/crypto/hmac/hmac_test.txt | 9 + src/regress/sys/crypto/hmac/obj | 1 + src/regress/sys/crypto/key_wrap/CVS/Entries | 4 + src/regress/sys/crypto/key_wrap/CVS/Repository | 1 + src/regress/sys/crypto/key_wrap/CVS/Root | 1 + src/regress/sys/crypto/key_wrap/Makefile | 27 + src/regress/sys/crypto/key_wrap/key_wrap_test.c | 83 + src/regress/sys/crypto/key_wrap/key_wrap_test.txt | 66 + src/regress/sys/crypto/key_wrap/obj | 1 + src/regress/sys/ddb/CVS/Entries | 2 + src/regress/sys/ddb/CVS/Repository | 1 + src/regress/sys/ddb/CVS/Root | 1 + src/regress/sys/ddb/Makefile | 25 + src/regress/sys/ddb/obj | 1 + src/regress/sys/dev/CVS/Entries | 5 + src/regress/sys/dev/CVS/Repository | 1 + src/regress/sys/dev/CVS/Root | 1 + src/regress/sys/dev/Makefile | 6 + src/regress/sys/dev/audio/CVS/Entries | 8 + src/regress/sys/dev/audio/CVS/Repository | 1 + src/regress/sys/dev/audio/CVS/Root | 1 + src/regress/sys/dev/audio/Makefile | 13 + src/regress/sys/dev/audio/adpcm.c | 259 ++ src/regress/sys/dev/audio/adpcm.h | 21 + src/regress/sys/dev/audio/autest.1 | 143 + src/regress/sys/dev/audio/autest.c | 812 ++++ src/regress/sys/dev/audio/law.c | 286 ++ src/regress/sys/dev/audio/law.h | 33 + src/regress/sys/dev/audio/obj | 1 + src/regress/sys/dev/audio_info/CVS/Entries | 4 + src/regress/sys/dev/audio_info/CVS/Repository | 1 + src/regress/sys/dev/audio_info/CVS/Root | 1 + src/regress/sys/dev/audio_info/Makefile | 11 + src/regress/sys/dev/audio_info/audiotest_gsinfo.1 | 119 + src/regress/sys/dev/audio_info/audiotest_gsinfo.c | 215 + src/regress/sys/dev/audio_rw/CVS/Entries | 4 + src/regress/sys/dev/audio_rw/CVS/Repository | 1 + src/regress/sys/dev/audio_rw/CVS/Root | 1 + src/regress/sys/dev/audio_rw/Makefile | 122 + src/regress/sys/dev/audio_rw/audiotest_rw.1 | 256 ++ src/regress/sys/dev/audio_rw/audiotest_rw.c | 666 +++ src/regress/sys/dev/fdesc/CVS/Entries | 3 + src/regress/sys/dev/fdesc/CVS/Repository | 1 + src/regress/sys/dev/fdesc/CVS/Root | 1 + src/regress/sys/dev/fdesc/Makefile | 5 + src/regress/sys/dev/fdesc/confuse.c | 43 + src/regress/sys/dev/fdesc/obj | 1 + src/regress/sys/ffs/CVS/Entries | 6 + src/regress/sys/ffs/CVS/Repository | 1 + src/regress/sys/ffs/CVS/Root | 1 + src/regress/sys/ffs/LICENSE | 28 + src/regress/sys/ffs/Makefile | 71 + src/regress/sys/ffs/README | 4 + src/regress/sys/ffs/fstest.c | 728 ++++ src/regress/sys/ffs/run | 60 + src/regress/sys/ffs/tests/CVS/Entries | 12 + src/regress/sys/ffs/tests/CVS/Repository | 1 + src/regress/sys/ffs/tests/CVS/Root | 1 + src/regress/sys/ffs/tests/chflags/00.t | 171 + src/regress/sys/ffs/tests/chflags/01.t | 13 + src/regress/sys/ffs/tests/chflags/02.t | 11 + src/regress/sys/ffs/tests/chflags/03.t | 18 + src/regress/sys/ffs/tests/chflags/04.t | 7 + src/regress/sys/ffs/tests/chflags/05.t | 28 + src/regress/sys/ffs/tests/chflags/06.t | 14 + src/regress/sys/ffs/tests/chflags/07.t | 47 + src/regress/sys/ffs/tests/chflags/08.t | 63 + src/regress/sys/ffs/tests/chflags/09.t | 51 + src/regress/sys/ffs/tests/chflags/10.t | 55 + src/regress/sys/ffs/tests/chflags/11.t | 63 + src/regress/sys/ffs/tests/chflags/12.t | 31 + src/regress/sys/ffs/tests/chflags/13.t | 7 + src/regress/sys/ffs/tests/chflags/CVS/Entries | 15 + src/regress/sys/ffs/tests/chflags/CVS/Repository | 1 + src/regress/sys/ffs/tests/chflags/CVS/Root | 1 + src/regress/sys/ffs/tests/chmod/00.t | 119 + src/regress/sys/ffs/tests/chmod/01.t | 13 + src/regress/sys/ffs/tests/chmod/02.t | 10 + src/regress/sys/ffs/tests/chmod/03.t | 17 + src/regress/sys/ffs/tests/chmod/04.t | 12 + src/regress/sys/ffs/tests/chmod/05.t | 26 + src/regress/sys/ffs/tests/chmod/06.t | 14 + src/regress/sys/ffs/tests/chmod/07.t | 26 + src/regress/sys/ffs/tests/chmod/08.t | 38 + src/regress/sys/ffs/tests/chmod/09.t | 27 + src/regress/sys/ffs/tests/chmod/10.t | 7 + src/regress/sys/ffs/tests/chmod/11.t | 36 + src/regress/sys/ffs/tests/chmod/CVS/Entries | 13 + src/regress/sys/ffs/tests/chmod/CVS/Repository | 1 + src/regress/sys/ffs/tests/chmod/CVS/Root | 1 + src/regress/sys/ffs/tests/chown/00.t | 277 ++ src/regress/sys/ffs/tests/chown/01.t | 13 + src/regress/sys/ffs/tests/chown/02.t | 9 + src/regress/sys/ffs/tests/chown/03.t | 17 + src/regress/sys/ffs/tests/chown/04.t | 12 + src/regress/sys/ffs/tests/chown/05.t | 27 + src/regress/sys/ffs/tests/chown/06.t | 14 + src/regress/sys/ffs/tests/chown/07.t | 23 + src/regress/sys/ffs/tests/chown/08.t | 34 + src/regress/sys/ffs/tests/chown/09.t | 27 + src/regress/sys/ffs/tests/chown/10.t | 7 + src/regress/sys/ffs/tests/chown/CVS/Entries | 12 + src/regress/sys/ffs/tests/chown/CVS/Repository | 1 + src/regress/sys/ffs/tests/chown/CVS/Root | 1 + src/regress/sys/ffs/tests/link/00.t | 146 + src/regress/sys/ffs/tests/link/01.t | 17 + src/regress/sys/ffs/tests/link/02.t | 18 + src/regress/sys/ffs/tests/link/03.t | 23 + src/regress/sys/ffs/tests/link/04.t | 15 + src/regress/sys/ffs/tests/link/05.t | 31 + src/regress/sys/ffs/tests/link/06.t | 38 + src/regress/sys/ffs/tests/link/07.t | 36 + src/regress/sys/ffs/tests/link/08.t | 19 + src/regress/sys/ffs/tests/link/09.t | 13 + src/regress/sys/ffs/tests/link/10.t | 27 + src/regress/sys/ffs/tests/link/11.t | 24 + src/regress/sys/ffs/tests/link/12.t | 38 + src/regress/sys/ffs/tests/link/13.t | 39 + src/regress/sys/ffs/tests/link/14.t | 24 + src/regress/sys/ffs/tests/link/15.t | 28 + src/regress/sys/ffs/tests/link/16.t | 29 + src/regress/sys/ffs/tests/link/17.t | 15 + src/regress/sys/ffs/tests/link/CVS/Entries | 19 + src/regress/sys/ffs/tests/link/CVS/Repository | 1 + src/regress/sys/ffs/tests/link/CVS/Root | 1 + src/regress/sys/ffs/tests/mkdir/00.t | 68 + src/regress/sys/ffs/tests/mkdir/01.t | 13 + src/regress/sys/ffs/tests/mkdir/02.t | 8 + src/regress/sys/ffs/tests/mkdir/03.t | 16 + src/regress/sys/ffs/tests/mkdir/04.t | 11 + src/regress/sys/ffs/tests/mkdir/05.t | 24 + src/regress/sys/ffs/tests/mkdir/06.t | 24 + src/regress/sys/ffs/tests/mkdir/07.t | 14 + src/regress/sys/ffs/tests/mkdir/08.t | 36 + src/regress/sys/ffs/tests/mkdir/09.t | 24 + src/regress/sys/ffs/tests/mkdir/10.t | 22 + src/regress/sys/ffs/tests/mkdir/11.t | 26 + src/regress/sys/ffs/tests/mkdir/12.t | 7 + src/regress/sys/ffs/tests/mkdir/CVS/Entries | 14 + src/regress/sys/ffs/tests/mkdir/CVS/Repository | 1 + src/regress/sys/ffs/tests/mkdir/CVS/Root | 1 + src/regress/sys/ffs/tests/mkfifo/00.t | 68 + src/regress/sys/ffs/tests/mkfifo/01.t | 13 + src/regress/sys/ffs/tests/mkfifo/02.t | 8 + src/regress/sys/ffs/tests/mkfifo/03.t | 16 + src/regress/sys/ffs/tests/mkfifo/04.t | 11 + src/regress/sys/ffs/tests/mkfifo/05.t | 24 + src/regress/sys/ffs/tests/mkfifo/06.t | 24 + src/regress/sys/ffs/tests/mkfifo/07.t | 14 + src/regress/sys/ffs/tests/mkfifo/08.t | 24 + src/regress/sys/ffs/tests/mkfifo/09.t | 22 + src/regress/sys/ffs/tests/mkfifo/10.t | 36 + src/regress/sys/ffs/tests/mkfifo/11.t | 26 + src/regress/sys/ffs/tests/mkfifo/12.t | 7 + src/regress/sys/ffs/tests/mkfifo/CVS/Entries | 14 + src/regress/sys/ffs/tests/mkfifo/CVS/Repository | 1 + src/regress/sys/ffs/tests/mkfifo/CVS/Root | 1 + src/regress/sys/ffs/tests/open/00.t | 94 + src/regress/sys/ffs/tests/open/01.t | 13 + src/regress/sys/ffs/tests/open/02.t | 9 + src/regress/sys/ffs/tests/open/03.t | 17 + src/regress/sys/ffs/tests/open/04.t | 12 + src/regress/sys/ffs/tests/open/05.t | 24 + src/regress/sys/ffs/tests/open/06.t | 84 + src/regress/sys/ffs/tests/open/07.t | 40 + src/regress/sys/ffs/tests/open/08.t | 14 + src/regress/sys/ffs/tests/open/09.t | 36 + src/regress/sys/ffs/tests/open/10.t | 22 + src/regress/sys/ffs/tests/open/11.t | 32 + src/regress/sys/ffs/tests/open/12.t | 14 + src/regress/sys/ffs/tests/open/13.t | 17 + src/regress/sys/ffs/tests/open/14.t | 27 + src/regress/sys/ffs/tests/open/15.t | 22 + src/regress/sys/ffs/tests/open/16.t | 14 + src/regress/sys/ffs/tests/open/17.t | 10 + src/regress/sys/ffs/tests/open/18.t | 13 + src/regress/sys/ffs/tests/open/19.t | 26 + src/regress/sys/ffs/tests/open/20.t | 13 + src/regress/sys/ffs/tests/open/21.t | 7 + src/regress/sys/ffs/tests/open/22.t | 22 + src/regress/sys/ffs/tests/open/23.t | 11 + src/regress/sys/ffs/tests/open/CVS/Entries | 25 + src/regress/sys/ffs/tests/open/CVS/Repository | 1 + src/regress/sys/ffs/tests/open/CVS/Root | 1 + src/regress/sys/ffs/tests/rename/00.t | 136 + src/regress/sys/ffs/tests/rename/01.t | 16 + src/regress/sys/ffs/tests/rename/02.t | 21 + src/regress/sys/ffs/tests/rename/03.t | 15 + src/regress/sys/ffs/tests/rename/04.t | 38 + src/regress/sys/ffs/tests/rename/05.t | 36 + src/regress/sys/ffs/tests/rename/06.t | 43 + src/regress/sys/ffs/tests/rename/07.t | 48 + src/regress/sys/ffs/tests/rename/08.t | 88 + src/regress/sys/ffs/tests/rename/09.t | 89 + src/regress/sys/ffs/tests/rename/10.t | 238 ++ src/regress/sys/ffs/tests/rename/11.t | 19 + src/regress/sys/ffs/tests/rename/12.t | 17 + src/regress/sys/ffs/tests/rename/13.t | 29 + src/regress/sys/ffs/tests/rename/14.t | 29 + src/regress/sys/ffs/tests/rename/15.t | 35 + src/regress/sys/ffs/tests/rename/16.t | 27 + src/regress/sys/ffs/tests/rename/17.t | 15 + src/regress/sys/ffs/tests/rename/18.t | 17 + src/regress/sys/ffs/tests/rename/19.t | 17 + src/regress/sys/ffs/tests/rename/20.t | 30 + src/regress/sys/ffs/tests/rename/CVS/Entries | 22 + src/regress/sys/ffs/tests/rename/CVS/Repository | 1 + src/regress/sys/ffs/tests/rename/CVS/Root | 1 + src/regress/sys/ffs/tests/rmdir/00.t | 23 + src/regress/sys/ffs/tests/rmdir/01.t | 25 + src/regress/sys/ffs/tests/rmdir/02.t | 9 + src/regress/sys/ffs/tests/rmdir/03.t | 17 + src/regress/sys/ffs/tests/rmdir/04.t | 12 + src/regress/sys/ffs/tests/rmdir/05.t | 14 + src/regress/sys/ffs/tests/rmdir/06.t | 31 + src/regress/sys/ffs/tests/rmdir/07.t | 22 + src/regress/sys/ffs/tests/rmdir/08.t | 22 + src/regress/sys/ffs/tests/rmdir/09.t | 30 + src/regress/sys/ffs/tests/rmdir/10.t | 35 + src/regress/sys/ffs/tests/rmdir/11.t | 35 + src/regress/sys/ffs/tests/rmdir/12.t | 14 + src/regress/sys/ffs/tests/rmdir/13.t | 17 + src/regress/sys/ffs/tests/rmdir/14.t | 22 + src/regress/sys/ffs/tests/rmdir/15.t | 7 + src/regress/sys/ffs/tests/rmdir/CVS/Entries | 17 + src/regress/sys/ffs/tests/rmdir/CVS/Repository | 1 + src/regress/sys/ffs/tests/rmdir/CVS/Root | 1 + src/regress/sys/ffs/tests/symlink/00.t | 27 + src/regress/sys/ffs/tests/symlink/01.t | 13 + src/regress/sys/ffs/tests/symlink/02.t | 15 + src/regress/sys/ffs/tests/symlink/03.t | 21 + src/regress/sys/ffs/tests/symlink/04.t | 11 + src/regress/sys/ffs/tests/symlink/05.t | 29 + src/regress/sys/ffs/tests/symlink/06.t | 29 + src/regress/sys/ffs/tests/symlink/07.t | 14 + src/regress/sys/ffs/tests/symlink/08.t | 18 + src/regress/sys/ffs/tests/symlink/09.t | 36 + src/regress/sys/ffs/tests/symlink/10.t | 27 + src/regress/sys/ffs/tests/symlink/11.t | 27 + src/regress/sys/ffs/tests/symlink/12.t | 13 + src/regress/sys/ffs/tests/symlink/CVS/Entries | 14 + src/regress/sys/ffs/tests/symlink/CVS/Repository | 1 + src/regress/sys/ffs/tests/symlink/CVS/Root | 1 + src/regress/sys/ffs/tests/truncate/00.t | 46 + src/regress/sys/ffs/tests/truncate/01.t | 13 + src/regress/sys/ffs/tests/truncate/02.t | 10 + src/regress/sys/ffs/tests/truncate/03.t | 17 + src/regress/sys/ffs/tests/truncate/04.t | 12 + src/regress/sys/ffs/tests/truncate/05.t | 27 + src/regress/sys/ffs/tests/truncate/06.t | 19 + src/regress/sys/ffs/tests/truncate/07.t | 14 + src/regress/sys/ffs/tests/truncate/08.t | 38 + src/regress/sys/ffs/tests/truncate/09.t | 10 + src/regress/sys/ffs/tests/truncate/10.t | 27 + src/regress/sys/ffs/tests/truncate/11.t | 11 + src/regress/sys/ffs/tests/truncate/12.t | 22 + src/regress/sys/ffs/tests/truncate/13.t | 11 + src/regress/sys/ffs/tests/truncate/14.t | 7 + src/regress/sys/ffs/tests/truncate/CVS/Entries | 16 + src/regress/sys/ffs/tests/truncate/CVS/Repository | 1 + src/regress/sys/ffs/tests/truncate/CVS/Root | 1 + src/regress/sys/ffs/tests/unlink/00.t | 110 + src/regress/sys/ffs/tests/unlink/01.t | 13 + src/regress/sys/ffs/tests/unlink/02.t | 9 + src/regress/sys/ffs/tests/unlink/03.t | 17 + src/regress/sys/ffs/tests/unlink/04.t | 12 + src/regress/sys/ffs/tests/unlink/05.t | 22 + src/regress/sys/ffs/tests/unlink/06.t | 22 + src/regress/sys/ffs/tests/unlink/07.t | 14 + src/regress/sys/ffs/tests/unlink/08.t | 10 + src/regress/sys/ffs/tests/unlink/09.t | 30 + src/regress/sys/ffs/tests/unlink/10.t | 35 + src/regress/sys/ffs/tests/unlink/11.t | 63 + src/regress/sys/ffs/tests/unlink/12.t | 22 + src/regress/sys/ffs/tests/unlink/13.t | 7 + src/regress/sys/ffs/tests/unlink/CVS/Entries | 15 + src/regress/sys/ffs/tests/unlink/CVS/Repository | 1 + src/regress/sys/ffs/tests/unlink/CVS/Root | 1 + src/regress/sys/fifofs/CVS/Entries | 4 + src/regress/sys/fifofs/CVS/Repository | 1 + src/regress/sys/fifofs/CVS/Root | 1 + src/regress/sys/fifofs/Makefile | 13 + src/regress/sys/fifofs/fifotest.c | 222 + src/regress/sys/fifofs/fifotest.out | 124 + src/regress/sys/fifofs/obj | 1 + src/regress/sys/kern/CVS/Entries | 45 + src/regress/sys/kern/CVS/Repository | 1 + src/regress/sys/kern/CVS/Root | 1 + src/regress/sys/kern/Makefile | 19 + src/regress/sys/kern/__syscall/CVS/Entries | 3 + src/regress/sys/kern/__syscall/CVS/Repository | 1 + src/regress/sys/kern/__syscall/CVS/Root | 1 + src/regress/sys/kern/__syscall/Makefile | 5 + src/regress/sys/kern/__syscall/__syscall.c | 33 + src/regress/sys/kern/__syscall/obj | 1 + src/regress/sys/kern/accept/CVS/Entries | 3 + src/regress/sys/kern/accept/CVS/Repository | 1 + src/regress/sys/kern/accept/CVS/Root | 1 + src/regress/sys/kern/accept/Makefile | 7 + src/regress/sys/kern/accept/accept.c | 105 + src/regress/sys/kern/accept/obj | 1 + src/regress/sys/kern/dup2/CVS/Entries | 3 + src/regress/sys/kern/dup2/CVS/Repository | 1 + src/regress/sys/kern/dup2/CVS/Root | 1 + src/regress/sys/kern/dup2/Makefile | 5 + src/regress/sys/kern/dup2/dup2test.c | 43 + src/regress/sys/kern/dup2/obj | 1 + src/regress/sys/kern/dup2_self/CVS/Entries | 3 + src/regress/sys/kern/dup2_self/CVS/Repository | 1 + src/regress/sys/kern/dup2_self/CVS/Root | 1 + src/regress/sys/kern/dup2_self/Makefile | 5 + src/regress/sys/kern/dup2_self/dup2_self.c | 63 + src/regress/sys/kern/dup2_self/obj | 1 + src/regress/sys/kern/exec_self/CVS/Entries | 3 + src/regress/sys/kern/exec_self/CVS/Repository | 1 + src/regress/sys/kern/exec_self/CVS/Root | 1 + src/regress/sys/kern/exec_self/Makefile | 5 + src/regress/sys/kern/exec_self/exec_self.c | 44 + src/regress/sys/kern/exec_self/obj | 1 + src/regress/sys/kern/execve/CVS/Entries | 4 + src/regress/sys/kern/execve/CVS/Repository | 1 + src/regress/sys/kern/execve/CVS/Root | 1 + src/regress/sys/kern/execve/Makefile | 84 + src/regress/sys/kern/execve/doexec.c | 54 + src/regress/sys/kern/execve/good/CVS/Entries | 11 + src/regress/sys/kern/execve/good/CVS/Repository | 1 + src/regress/sys/kern/execve/good/CVS/Root | 1 + src/regress/sys/kern/execve/good/badinterplen | 1 + src/regress/sys/kern/execve/good/devnullscript | 1 + src/regress/sys/kern/execve/good/empty | 1 + src/regress/sys/kern/execve/good/goodaout | 1 + src/regress/sys/kern/execve/good/goodscript | 1 + src/regress/sys/kern/execve/good/nonexistent | 1 + src/regress/sys/kern/execve/good/nonexistshell | 1 + src/regress/sys/kern/execve/good/scriptarg | 2 + src/regress/sys/kern/execve/good/scriptarg-nospace | 2 + src/regress/sys/kern/execve/good/truncaout | 1 + src/regress/sys/kern/execve/obj | 1 + src/regress/sys/kern/execve/tests/CVS/Entries | 9 + src/regress/sys/kern/execve/tests/CVS/Repository | 1 + src/regress/sys/kern/execve/tests/CVS/Root | 1 + src/regress/sys/kern/execve/tests/badinterplen.in | 5 + src/regress/sys/kern/execve/tests/devnullscript.in | 5 + src/regress/sys/kern/execve/tests/empty.in | 0 src/regress/sys/kern/execve/tests/goodaout.c | 43 + src/regress/sys/kern/execve/tests/goodscript.in | 5 + src/regress/sys/kern/execve/tests/nonexistshell.in | 5 + .../sys/kern/execve/tests/scriptarg-nospace.in | 5 + src/regress/sys/kern/execve/tests/scriptarg.in | 5 + src/regress/sys/kern/exit/CVS/Entries | 3 + src/regress/sys/kern/exit/CVS/Repository | 1 + src/regress/sys/kern/exit/CVS/Root | 1 + src/regress/sys/kern/exit/Makefile | 5 + src/regress/sys/kern/exit/exit.c | 13 + src/regress/sys/kern/exit/obj | 1 + src/regress/sys/kern/extent/CVS/Entries | 5 + src/regress/sys/kern/extent/CVS/Repository | 1 + src/regress/sys/kern/extent/CVS/Root | 1 + src/regress/sys/kern/extent/Makefile | 20 + src/regress/sys/kern/extent/extest.awk | 76 + src/regress/sys/kern/extent/extest.exp | 94 + src/regress/sys/kern/extent/obj | 1 + src/regress/sys/kern/extent/tests | 138 + src/regress/sys/kern/fcntl_dup/CVS/Entries | 3 + src/regress/sys/kern/fcntl_dup/CVS/Repository | 1 + src/regress/sys/kern/fcntl_dup/CVS/Root | 1 + src/regress/sys/kern/fcntl_dup/Makefile | 5 + src/regress/sys/kern/fcntl_dup/fcntl_dup.c | 39 + src/regress/sys/kern/fcntl_dup/obj | 1 + src/regress/sys/kern/flock/CVS/Entries | 3 + src/regress/sys/kern/flock/CVS/Repository | 1 + src/regress/sys/kern/flock/CVS/Root | 1 + src/regress/sys/kern/flock/Makefile | 13 + src/regress/sys/kern/flock/flock.c | 1497 +++++++ src/regress/sys/kern/flock/obj | 1 + src/regress/sys/kern/getpeereid/CVS/Entries | 3 + src/regress/sys/kern/getpeereid/CVS/Repository | 1 + src/regress/sys/kern/getpeereid/CVS/Root | 1 + src/regress/sys/kern/getpeereid/Makefile | 5 + src/regress/sys/kern/getpeereid/getpeereid_test.c | 147 + src/regress/sys/kern/getpeereid/obj | 1 + src/regress/sys/kern/getrusage/CVS/Entries | 3 + src/regress/sys/kern/getrusage/CVS/Repository | 1 + src/regress/sys/kern/getrusage/CVS/Root | 1 + src/regress/sys/kern/getrusage/Makefile | 5 + src/regress/sys/kern/getrusage/getrusage.c | 39 + src/regress/sys/kern/getrusage/obj | 1 + src/regress/sys/kern/gettimeofday/CVS/Entries | 3 + src/regress/sys/kern/gettimeofday/CVS/Repository | 1 + src/regress/sys/kern/gettimeofday/CVS/Root | 1 + src/regress/sys/kern/gettimeofday/Makefile | 5 + src/regress/sys/kern/gettimeofday/gettimeofday.c | 31 + src/regress/sys/kern/gettimeofday/obj | 1 + src/regress/sys/kern/itimer/CVS/Entries | 3 + src/regress/sys/kern/itimer/CVS/Repository | 1 + src/regress/sys/kern/itimer/CVS/Root | 1 + src/regress/sys/kern/itimer/Makefile | 17 + src/regress/sys/kern/itimer/itimer.c | 95 + src/regress/sys/kern/itimer/obj | 1 + src/regress/sys/kern/kqueue/CVS/Entries | 9 + src/regress/sys/kern/kqueue/CVS/Repository | 1 + src/regress/sys/kern/kqueue/CVS/Root | 1 + src/regress/sys/kern/kqueue/Makefile | 33 + src/regress/sys/kern/kqueue/kqueue-fork.c | 48 + src/regress/sys/kern/kqueue/kqueue-pipe.c | 83 + src/regress/sys/kern/kqueue/kqueue-process.c | 139 + src/regress/sys/kern/kqueue/kqueue-pty.c | 104 + src/regress/sys/kern/kqueue/kqueue-random.c | 68 + src/regress/sys/kern/kqueue/kqueue-tun.c | 171 + src/regress/sys/kern/kqueue/main.c | 51 + src/regress/sys/kern/kqueue/obj | 1 + src/regress/sys/kern/mbuf/CVS/Entries | 3 + src/regress/sys/kern/mbuf/CVS/Repository | 1 + src/regress/sys/kern/mbuf/CVS/Root | 1 + src/regress/sys/kern/mbuf/Makefile | 3 + src/regress/sys/kern/mbuf/mbuftest.c | 51 + src/regress/sys/kern/mbuf/obj | 1 + src/regress/sys/kern/minherit/CVS/Entries | 3 + src/regress/sys/kern/minherit/CVS/Repository | 1 + src/regress/sys/kern/minherit/CVS/Root | 1 + src/regress/sys/kern/minherit/Makefile | 4 + src/regress/sys/kern/minherit/minherit.c | 64 + src/regress/sys/kern/minherit/obj | 1 + src/regress/sys/kern/mmap-fail/CVS/Entries | 3 + src/regress/sys/kern/mmap-fail/CVS/Repository | 1 + src/regress/sys/kern/mmap-fail/CVS/Root | 1 + src/regress/sys/kern/mmap-fail/Makefile | 5 + src/regress/sys/kern/mmap-fail/mmap-fail.c | 20 + src/regress/sys/kern/mmap-fail/obj | 1 + src/regress/sys/kern/mmap/CVS/Entries | 3 + src/regress/sys/kern/mmap/CVS/Repository | 1 + src/regress/sys/kern/mmap/CVS/Root | 1 + src/regress/sys/kern/mmap/Makefile | 5 + src/regress/sys/kern/mmap/mmaptest.c | 81 + src/regress/sys/kern/mmap/obj | 1 + src/regress/sys/kern/mmap2/CVS/Entries | 3 + src/regress/sys/kern/mmap2/CVS/Repository | 1 + src/regress/sys/kern/mmap2/CVS/Root | 1 + src/regress/sys/kern/mmap2/Makefile | 4 + src/regress/sys/kern/mmap2/mmaptest.c | 71 + src/regress/sys/kern/mmap2/obj | 1 + src/regress/sys/kern/mmap3/CVS/Entries | 3 + src/regress/sys/kern/mmap3/CVS/Repository | 1 + src/regress/sys/kern/mmap3/CVS/Root | 1 + src/regress/sys/kern/mmap3/Makefile | 5 + src/regress/sys/kern/mmap3/mmaptest.c | 84 + src/regress/sys/kern/mmap3/obj | 1 + src/regress/sys/kern/mquery/CVS/Entries | 3 + src/regress/sys/kern/mquery/CVS/Repository | 1 + src/regress/sys/kern/mquery/CVS/Root | 1 + src/regress/sys/kern/mquery/Makefile | 5 + src/regress/sys/kern/mquery/mquery.c | 119 + src/regress/sys/kern/nanosleep/CVS/Entries | 3 + src/regress/sys/kern/nanosleep/CVS/Repository | 1 + src/regress/sys/kern/nanosleep/CVS/Root | 1 + src/regress/sys/kern/nanosleep/Makefile | 24 + src/regress/sys/kern/nanosleep/nanosleep.c | 261 ++ src/regress/sys/kern/nanosleep/obj | 1 + src/regress/sys/kern/noexec/CVS/Entries | 3 + src/regress/sys/kern/noexec/CVS/Repository | 1 + src/regress/sys/kern/noexec/CVS/Root | 1 + src/regress/sys/kern/noexec/Makefile | 72 + src/regress/sys/kern/noexec/noexec.c | 283 ++ src/regress/sys/kern/noexec/obj | 1 + src/regress/sys/kern/pread/CVS/Entries | 3 + src/regress/sys/kern/pread/CVS/Repository | 1 + src/regress/sys/kern/pread/CVS/Root | 1 + src/regress/sys/kern/pread/Makefile | 5 + src/regress/sys/kern/pread/obj | 1 + src/regress/sys/kern/pread/pread.c | 48 + src/regress/sys/kern/preadv/CVS/Entries | 3 + src/regress/sys/kern/preadv/CVS/Repository | 1 + src/regress/sys/kern/preadv/CVS/Root | 1 + src/regress/sys/kern/preadv/Makefile | 5 + src/regress/sys/kern/preadv/obj | 1 + src/regress/sys/kern/preadv/preadv.c | 59 + src/regress/sys/kern/ptmget/CVS/Entries | 3 + src/regress/sys/kern/ptmget/CVS/Repository | 1 + src/regress/sys/kern/ptmget/CVS/Root | 1 + src/regress/sys/kern/ptmget/Makefile | 5 + src/regress/sys/kern/ptmget/obj | 1 + src/regress/sys/kern/ptmget/ptmget.c | 59 + src/regress/sys/kern/ptrace/CVS/Entries | 3 + src/regress/sys/kern/ptrace/CVS/Repository | 1 + src/regress/sys/kern/ptrace/CVS/Root | 1 + src/regress/sys/kern/ptrace/Makefile | 26 + src/regress/sys/kern/ptrace/ptrace.c | 178 + src/regress/sys/kern/pwrite/CVS/Entries | 3 + src/regress/sys/kern/pwrite/CVS/Repository | 1 + src/regress/sys/kern/pwrite/CVS/Root | 1 + src/regress/sys/kern/pwrite/Makefile | 5 + src/regress/sys/kern/pwrite/obj | 1 + src/regress/sys/kern/pwrite/pwrite.c | 52 + src/regress/sys/kern/pwritev/CVS/Entries | 3 + src/regress/sys/kern/pwritev/CVS/Repository | 1 + src/regress/sys/kern/pwritev/CVS/Root | 1 + src/regress/sys/kern/pwritev/Makefile | 5 + src/regress/sys/kern/pwritev/obj | 1 + src/regress/sys/kern/pwritev/pwritev.c | 60 + src/regress/sys/kern/rcvtimeo/CVS/Entries | 3 + src/regress/sys/kern/rcvtimeo/CVS/Repository | 1 + src/regress/sys/kern/rcvtimeo/CVS/Root | 1 + src/regress/sys/kern/rcvtimeo/Makefile | 6 + src/regress/sys/kern/rcvtimeo/obj | 1 + src/regress/sys/kern/rcvtimeo/rcvtimeo.c | 75 + src/regress/sys/kern/rfork/CVS/Entries | 7 + src/regress/sys/kern/rfork/CVS/Repository | 1 + src/regress/sys/kern/rfork/CVS/Root | 1 + src/regress/sys/kern/rfork/Makefile | 7 + src/regress/sys/kern/rfork/madness/CVS/Entries | 3 + src/regress/sys/kern/rfork/madness/CVS/Repository | 1 + src/regress/sys/kern/rfork/madness/CVS/Root | 1 + src/regress/sys/kern/rfork/madness/Makefile | 5 + src/regress/sys/kern/rfork/madness/madness.c | 55 + src/regress/sys/kern/rfork/rfcfdg/CVS/Entries | 3 + src/regress/sys/kern/rfork/rfcfdg/CVS/Repository | 1 + src/regress/sys/kern/rfork/rfcfdg/CVS/Root | 1 + src/regress/sys/kern/rfork/rfcfdg/Makefile | 5 + src/regress/sys/kern/rfork/rfcfdg/rfcfdg.c | 38 + src/regress/sys/kern/rfork/rfmem-stack/CVS/Entries | 3 + .../sys/kern/rfork/rfmem-stack/CVS/Repository | 1 + src/regress/sys/kern/rfork/rfmem-stack/CVS/Root | 1 + src/regress/sys/kern/rfork/rfmem-stack/Makefile | 5 + .../sys/kern/rfork/rfmem-stack/rfmem-stack.c | 54 + src/regress/sys/kern/rfork/rfmem/CVS/Entries | 3 + src/regress/sys/kern/rfork/rfmem/CVS/Repository | 1 + src/regress/sys/kern/rfork/rfmem/CVS/Root | 1 + src/regress/sys/kern/rfork/rfmem/Makefile | 5 + src/regress/sys/kern/rfork/rfmem/rfmem.c | 50 + src/regress/sys/kern/rfork/rfnowait/CVS/Entries | 3 + src/regress/sys/kern/rfork/rfnowait/CVS/Repository | 1 + src/regress/sys/kern/rfork/rfnowait/CVS/Root | 1 + src/regress/sys/kern/rfork/rfnowait/Makefile | 5 + src/regress/sys/kern/rfork/rfnowait/rfnowait.c | 32 + src/regress/sys/kern/rfork/rfsharefd/CVS/Entries | 3 + .../sys/kern/rfork/rfsharefd/CVS/Repository | 1 + src/regress/sys/kern/rfork/rfsharefd/CVS/Root | 1 + src/regress/sys/kern/rfork/rfsharefd/Makefile | 5 + src/regress/sys/kern/rfork/rfsharefd/rfsharefd.c | 42 + src/regress/sys/kern/rlimit-file/CVS/Entries | 3 + src/regress/sys/kern/rlimit-file/CVS/Repository | 1 + src/regress/sys/kern/rlimit-file/CVS/Root | 1 + src/regress/sys/kern/rlimit-file/Makefile | 5 + src/regress/sys/kern/rlimit-file/obj | 1 + src/regress/sys/kern/rlimit-file/rlim-file.c | 41 + src/regress/sys/kern/sig-stop/CVS/Entries | 3 + src/regress/sys/kern/sig-stop/CVS/Repository | 1 + src/regress/sys/kern/sig-stop/CVS/Root | 1 + src/regress/sys/kern/sig-stop/Makefile | 5 + src/regress/sys/kern/sig-stop/obj | 1 + src/regress/sys/kern/sig-stop/sig-stop.c | 57 + src/regress/sys/kern/signal-stress/CVS/Entries | 3 + src/regress/sys/kern/signal-stress/CVS/Repository | 1 + src/regress/sys/kern/signal-stress/CVS/Root | 1 + src/regress/sys/kern/signal-stress/Makefile | 5 + src/regress/sys/kern/signal-stress/obj | 1 + src/regress/sys/kern/signal-stress/signal-stress.c | 176 + src/regress/sys/kern/signal/CVS/Entries | 6 + src/regress/sys/kern/signal/CVS/Repository | 1 + src/regress/sys/kern/signal/CVS/Root | 1 + src/regress/sys/kern/signal/Makefile | 7 + src/regress/sys/kern/signal/cansig/CVS/Entries | 3 + src/regress/sys/kern/signal/cansig/CVS/Repository | 1 + src/regress/sys/kern/signal/cansig/CVS/Root | 1 + src/regress/sys/kern/signal/cansig/Makefile | 12 + src/regress/sys/kern/signal/cansig/cansig.c | 49 + src/regress/sys/kern/signal/cansig/obj | 1 + src/regress/sys/kern/signal/earlysig/CVS/Entries | 3 + .../sys/kern/signal/earlysig/CVS/Repository | 1 + src/regress/sys/kern/signal/earlysig/CVS/Root | 1 + src/regress/sys/kern/signal/earlysig/Makefile | 5 + src/regress/sys/kern/signal/earlysig/earlysig.c | 49 + src/regress/sys/kern/signal/earlysig/obj | 1 + src/regress/sys/kern/signal/fpsig/CVS/Entries | 3 + src/regress/sys/kern/signal/fpsig/CVS/Repository | 1 + src/regress/sys/kern/signal/fpsig/CVS/Root | 1 + src/regress/sys/kern/signal/fpsig/Makefile | 5 + src/regress/sys/kern/signal/fpsig/fpsig.c | 54 + src/regress/sys/kern/signal/fpsig/obj | 1 + src/regress/sys/kern/signal/sigfpe/CVS/Entries | 3 + src/regress/sys/kern/signal/sigfpe/CVS/Repository | 1 + src/regress/sys/kern/signal/sigfpe/CVS/Root | 1 + src/regress/sys/kern/signal/sigfpe/Makefile | 16 + src/regress/sys/kern/signal/sigfpe/obj | 1 + src/regress/sys/kern/signal/sigfpe/sigfpe.c | 92 + .../sys/kern/signal/siginfo_addr/CVS/Entries | 3 + .../sys/kern/signal/siginfo_addr/CVS/Repository | 1 + src/regress/sys/kern/signal/siginfo_addr/CVS/Root | 1 + src/regress/sys/kern/signal/siginfo_addr/Makefile | 5 + src/regress/sys/kern/signal/siginfo_addr/obj | 1 + .../sys/kern/signal/siginfo_addr/siginfo_addr.c | 40 + src/regress/sys/kern/sigsuspend/CVS/Entries | 3 + src/regress/sys/kern/sigsuspend/CVS/Repository | 1 + src/regress/sys/kern/sigsuspend/CVS/Root | 1 + src/regress/sys/kern/sigsuspend/Makefile | 5 + src/regress/sys/kern/sigsuspend/obj | 1 + src/regress/sys/kern/sigsuspend/sigsuspend.c | 129 + src/regress/sys/kern/syscall/CVS/Entries | 3 + src/regress/sys/kern/syscall/CVS/Repository | 1 + src/regress/sys/kern/syscall/CVS/Root | 1 + src/regress/sys/kern/syscall/Makefile | 5 + src/regress/sys/kern/syscall/obj | 1 + src/regress/sys/kern/syscall/syscall.c | 35 + src/regress/sys/kern/sysvmsg/CVS/Entries | 3 + src/regress/sys/kern/sysvmsg/CVS/Repository | 1 + src/regress/sys/kern/sysvmsg/CVS/Root | 1 + src/regress/sys/kern/sysvmsg/Makefile | 5 + src/regress/sys/kern/sysvmsg/msgtest.c | 356 ++ src/regress/sys/kern/sysvmsg/obj | 1 + src/regress/sys/kern/sysvsem/CVS/Entries | 3 + src/regress/sys/kern/sysvsem/CVS/Repository | 1 + src/regress/sys/kern/sysvsem/CVS/Root | 1 + src/regress/sys/kern/sysvsem/Makefile | 5 + src/regress/sys/kern/sysvsem/obj | 1 + src/regress/sys/kern/sysvsem/semtest.c | 355 ++ src/regress/sys/kern/sysvshm/CVS/Entries | 3 + src/regress/sys/kern/sysvshm/CVS/Repository | 1 + src/regress/sys/kern/sysvshm/CVS/Root | 1 + src/regress/sys/kern/sysvshm/Makefile | 5 + src/regress/sys/kern/sysvshm/obj | 1 + src/regress/sys/kern/sysvshm/shmtest.c | 304 ++ src/regress/sys/kern/unalign/CVS/Entries | 3 + src/regress/sys/kern/unalign/CVS/Repository | 1 + src/regress/sys/kern/unalign/CVS/Root | 1 + src/regress/sys/kern/unalign/Makefile | 5 + src/regress/sys/kern/unalign/obj | 1 + src/regress/sys/kern/unalign/unalign.c | 73 + src/regress/sys/kern/unfdpass/CVS/Entries | 4 + src/regress/sys/kern/unfdpass/CVS/Repository | 1 + src/regress/sys/kern/unfdpass/CVS/Root | 1 + src/regress/sys/kern/unfdpass/Makefile | 17 + src/regress/sys/kern/unfdpass/expected | 3 + src/regress/sys/kern/unfdpass/obj | 1 + src/regress/sys/kern/unfdpass/unfdpass.c | 291 ++ src/regress/sys/kern/wait/CVS/Entries | 3 + src/regress/sys/kern/wait/CVS/Repository | 1 + src/regress/sys/kern/wait/CVS/Root | 1 + src/regress/sys/kern/wait/Makefile | 5 + src/regress/sys/kern/wait/obj | 1 + src/regress/sys/kern/wait/wait.c | 35 + src/regress/sys/net/CVS/Entries | 3 + src/regress/sys/net/CVS/Repository | 1 + src/regress/sys/net/CVS/Root | 1 + src/regress/sys/net/Makefile | 13 + src/regress/sys/net/obj | 1 + src/regress/sys/net/pf_print_test.c | 113 + src/regress/sys/ptrace/CVS/Entries | 3 + src/regress/sys/ptrace/CVS/Repository | 1 + src/regress/sys/ptrace/CVS/Root | 1 + src/regress/sys/ptrace/Makefile | 5 + src/regress/sys/ptrace/obj | 1 + src/regress/sys/ptrace/ptrace.c | 106 + src/regress/sys/sys/CVS/Entries | 2 + src/regress/sys/sys/CVS/Repository | 1 + src/regress/sys/sys/CVS/Root | 1 + src/regress/sys/sys/Makefile | 7 + src/regress/sys/sys/tree/CVS/Entries | 3 + src/regress/sys/sys/tree/CVS/Repository | 1 + src/regress/sys/sys/tree/CVS/Root | 1 + src/regress/sys/sys/tree/Makefile | 7 + src/regress/sys/sys/tree/rb/CVS/Entries | 3 + src/regress/sys/sys/tree/rb/CVS/Repository | 1 + src/regress/sys/sys/tree/rb/CVS/Root | 1 + src/regress/sys/sys/tree/rb/Makefile | 5 + src/regress/sys/sys/tree/rb/obj | 1 + src/regress/sys/sys/tree/rb/rb-test.c | 106 + src/regress/sys/sys/tree/splay/CVS/Entries | 3 + src/regress/sys/sys/tree/splay/CVS/Repository | 1 + src/regress/sys/sys/tree/splay/CVS/Root | 1 + src/regress/sys/sys/tree/splay/Makefile | 5 + src/regress/sys/sys/tree/splay/obj | 1 + src/regress/sys/sys/tree/splay/splay-test.c | 106 + src/regress/sys/uvm/CVS/Entries | 6 + src/regress/sys/uvm/CVS/Repository | 1 + src/regress/sys/uvm/CVS/Root | 1 + src/regress/sys/uvm/Makefile | 7 + src/regress/sys/uvm/misc/CVS/Entries | 3 + src/regress/sys/uvm/misc/CVS/Repository | 1 + src/regress/sys/uvm/misc/CVS/Root | 1 + src/regress/sys/uvm/misc/Makefile | 11 + src/regress/sys/uvm/misc/misc.c | 430 ++ src/regress/sys/uvm/misc/obj | 1 + src/regress/sys/uvm/mmap_4g/CVS/Entries | 3 + src/regress/sys/uvm/mmap_4g/CVS/Repository | 1 + src/regress/sys/uvm/mmap_4g/CVS/Root | 1 + src/regress/sys/uvm/mmap_4g/Makefile | 4 + src/regress/sys/uvm/mmap_4g/mmap_4g.c | 78 + src/regress/sys/uvm/mmap_4g/obj | 1 + src/regress/sys/uvm/mmap_fixed/CVS/Entries | 3 + src/regress/sys/uvm/mmap_fixed/CVS/Repository | 1 + src/regress/sys/uvm/mmap_fixed/CVS/Root | 1 + src/regress/sys/uvm/mmap_fixed/Makefile | 4 + src/regress/sys/uvm/mmap_fixed/mmap_fixed.c | 33 + src/regress/sys/uvm/mmap_fixed/obj | 1 + src/regress/sys/uvm/mmap_mod/CVS/Entries | 3 + src/regress/sys/uvm/mmap_mod/CVS/Repository | 1 + src/regress/sys/uvm/mmap_mod/CVS/Root | 1 + src/regress/sys/uvm/mmap_mod/Makefile | 5 + src/regress/sys/uvm/mmap_mod/mmap_mod.c | 75 + src/regress/sys/uvm/mmap_mod/obj | 1 + src/regress/sys/uvm/mmap_size/CVS/Entries | 3 + src/regress/sys/uvm/mmap_size/CVS/Repository | 1 + src/regress/sys/uvm/mmap_size/CVS/Root | 1 + src/regress/sys/uvm/mmap_size/Makefile | 4 + src/regress/sys/uvm/mmap_size/mmap_size.c | 43 + src/regress/sys/uvm/mmap_size/obj | 1 + src/regress/usr.bin/CVS/CVS/Entries | 5 + src/regress/usr.bin/CVS/CVS/Repository | 1 + src/regress/usr.bin/CVS/CVS/Root | 1 + src/regress/usr.bin/CVS/Entries | 27 + src/regress/usr.bin/CVS/Makefile | 311 ++ src/regress/usr.bin/CVS/Repository | 1 + src/regress/usr.bin/CVS/Root | 1 + src/regress/usr.bin/CVS/import_seed/CVS/Entries | 2 + src/regress/usr.bin/CVS/import_seed/CVS/Repository | 1 + src/regress/usr.bin/CVS/import_seed/CVS/Root | 1 + src/regress/usr.bin/CVS/import_seed/seed1.txt | 2 + src/regress/usr.bin/CVS/setdate.pl | 34 + .../usr.bin/CVS/test_cvs_import_01_seed1.txt,v | 40 + .../usr.bin/CVS/test_opencvs_import_01_seed1.txt,v | 42 + src/regress/usr.bin/Makefile | 7 + src/regress/usr.bin/basename/CVS/Entries | 3 + src/regress/usr.bin/basename/CVS/Repository | 1 + src/regress/usr.bin/basename/CVS/Root | 1 + src/regress/usr.bin/basename/Makefile | 7 + src/regress/usr.bin/basename/basename.sh | 42 + src/regress/usr.bin/basename/obj | 1 + src/regress/usr.bin/bc/CVS/Entries | 38 + src/regress/usr.bin/bc/CVS/Repository | 1 + src/regress/usr.bin/bc/CVS/Root | 1 + src/regress/usr.bin/bc/Makefile | 43 + src/regress/usr.bin/bc/obj | 1 + src/regress/usr.bin/bc/t1.in | 234 + src/regress/usr.bin/bc/t1.out | 63 + src/regress/usr.bin/bc/t10.in | 4 + src/regress/usr.bin/bc/t10.out | 7 + src/regress/usr.bin/bc/t11.in | 12 + src/regress/usr.bin/bc/t11.out | 11 + src/regress/usr.bin/bc/t12.in | 5 + src/regress/usr.bin/bc/t12.out | 7 + src/regress/usr.bin/bc/t13.in | 11 + src/regress/usr.bin/bc/t13.out | 9 + src/regress/usr.bin/bc/t14.in | 28 + src/regress/usr.bin/bc/t14.out | 78 + src/regress/usr.bin/bc/t15.in | 24 + src/regress/usr.bin/bc/t15.out | 55 + src/regress/usr.bin/bc/t16.in | 24 + src/regress/usr.bin/bc/t16.out | 48 + src/regress/usr.bin/bc/t17.in | 566 +++ src/regress/usr.bin/bc/t17.out | 569 +++ src/regress/usr.bin/bc/t18.in | 45 + src/regress/usr.bin/bc/t18.out | 22 + src/regress/usr.bin/bc/t2.in | 5 + src/regress/usr.bin/bc/t2.out | 7 + src/regress/usr.bin/bc/t3.in | 4 + src/regress/usr.bin/bc/t3.out | 4 + src/regress/usr.bin/bc/t4.in | 6 + src/regress/usr.bin/bc/t4.out | 18 + src/regress/usr.bin/bc/t5.in | 7 + src/regress/usr.bin/bc/t5.out | 6 + src/regress/usr.bin/bc/t6.in | 3 + src/regress/usr.bin/bc/t6.out | 7 + src/regress/usr.bin/bc/t7.in | 6 + src/regress/usr.bin/bc/t7.out | 7 + src/regress/usr.bin/bc/t8.in | 6 + src/regress/usr.bin/bc/t8.out | 7 + src/regress/usr.bin/bc/t9.in | 19 + src/regress/usr.bin/bc/t9.out | 11 + src/regress/usr.bin/cap_mkdb/CVS/Entries | 3 + src/regress/usr.bin/cap_mkdb/CVS/Repository | 1 + src/regress/usr.bin/cap_mkdb/CVS/Root | 1 + src/regress/usr.bin/cap_mkdb/Makefile | 11 + src/regress/usr.bin/cap_mkdb/obj | 1 + src/regress/usr.bin/cap_mkdb/shortname.in | 1 + src/regress/usr.bin/dc/CVS/Entries | 54 + src/regress/usr.bin/dc/CVS/Repository | 1 + src/regress/usr.bin/dc/CVS/Root | 1 + src/regress/usr.bin/dc/Makefile | 52 + src/regress/usr.bin/dc/obj | 1 + src/regress/usr.bin/dc/t1.in | 48 + src/regress/usr.bin/dc/t1.out | 138 + src/regress/usr.bin/dc/t10.in | 11 + src/regress/usr.bin/dc/t10.out | 2 + src/regress/usr.bin/dc/t11.in | 8 + src/regress/usr.bin/dc/t11.out | 6 + src/regress/usr.bin/dc/t12.in | 9 + src/regress/usr.bin/dc/t12.out | 14 + src/regress/usr.bin/dc/t13.in | 15 + src/regress/usr.bin/dc/t13.out | 1 + src/regress/usr.bin/dc/t14.in | 78 + src/regress/usr.bin/dc/t14.out | 7 + src/regress/usr.bin/dc/t15.in | 55 + src/regress/usr.bin/dc/t15.out | 3 + src/regress/usr.bin/dc/t16.in | 48 + src/regress/usr.bin/dc/t16.out | 2 + src/regress/usr.bin/dc/t17.in | 3 + src/regress/usr.bin/dc/t17.out | 2 + src/regress/usr.bin/dc/t18.in | 7 + src/regress/usr.bin/dc/t18.out | 3 + src/regress/usr.bin/dc/t19.in | 569 +++ src/regress/usr.bin/dc/t19.out | 283 ++ src/regress/usr.bin/dc/t2.in | 3 + src/regress/usr.bin/dc/t2.out | 4 + src/regress/usr.bin/dc/t20.in | 100 + src/regress/usr.bin/dc/t20.out | 31 + src/regress/usr.bin/dc/t21.in | 64 + src/regress/usr.bin/dc/t21.out | 8 + src/regress/usr.bin/dc/t22.in | 4006 +++++++++++++++++ src/regress/usr.bin/dc/t22.out | 4007 +++++++++++++++++ src/regress/usr.bin/dc/t23.in | 7 + src/regress/usr.bin/dc/t23.out | 38 + src/regress/usr.bin/dc/t24.in | 8 + src/regress/usr.bin/dc/t24.out | 15 + src/regress/usr.bin/dc/t25.in | 17 + src/regress/usr.bin/dc/t25.out | 16 + src/regress/usr.bin/dc/t26.in | 26 + src/regress/usr.bin/dc/t26.out | 22 + src/regress/usr.bin/dc/t3.in | 28 + src/regress/usr.bin/dc/t3.out | 297 ++ src/regress/usr.bin/dc/t4.in | 2 + src/regress/usr.bin/dc/t4.out | 1 + src/regress/usr.bin/dc/t5.in | 11 + src/regress/usr.bin/dc/t5.out | 2 + src/regress/usr.bin/dc/t6.in | 3 + src/regress/usr.bin/dc/t6.out | 2 + src/regress/usr.bin/dc/t7.in | 5 + src/regress/usr.bin/dc/t7.out | 36 + src/regress/usr.bin/dc/t8.in | 17 + src/regress/usr.bin/dc/t8.out | 10 + src/regress/usr.bin/dc/t9.in | 24 + src/regress/usr.bin/dc/t9.out | 706 +++ src/regress/usr.bin/diff/CVS/Entries | 28 + src/regress/usr.bin/diff/CVS/Repository | 1 + src/regress/usr.bin/diff/CVS/Root | 1 + src/regress/usr.bin/diff/Makefile | 59 + src/regress/usr.bin/diff/obj | 1 + src/regress/usr.bin/diff/t1.1 | 0 src/regress/usr.bin/diff/t1.2 | 0 src/regress/usr.bin/diff/t10.1 | 1 + src/regress/usr.bin/diff/t10.2 | 1 + src/regress/usr.bin/diff/t11.1 | 1003 +++++ src/regress/usr.bin/diff/t11.2 | 908 ++++ src/regress/usr.bin/diff/t12.1 | 10 + src/regress/usr.bin/diff/t12.2 | 12 + src/regress/usr.bin/diff/t13.1 | 11 + src/regress/usr.bin/diff/t13.2 | 9 + src/regress/usr.bin/diff/t2.1 | 25 + src/regress/usr.bin/diff/t2.2 | 25 + src/regress/usr.bin/diff/t3.1 | 0 src/regress/usr.bin/diff/t3.2 | 25 + src/regress/usr.bin/diff/t4.1 | 25 + src/regress/usr.bin/diff/t4.2 | 0 src/regress/usr.bin/diff/t5.1 | 10 + src/regress/usr.bin/diff/t5.2 | 10 + src/regress/usr.bin/diff/t6.1 | 9 + src/regress/usr.bin/diff/t6.2 | 9 + src/regress/usr.bin/diff/t7.1 | 9 + src/regress/usr.bin/diff/t7.2 | 9 + src/regress/usr.bin/diff/t8.1 | 392 ++ src/regress/usr.bin/diff/t8.2 | 616 +++ src/regress/usr.bin/diff/t9.1 | 2045 +++++++++ src/regress/usr.bin/diff/t9.2 | 3225 ++++++++++++++ src/regress/usr.bin/diff/torture/CVS/Entries | 2 + src/regress/usr.bin/diff/torture/CVS/Repository | 1 + src/regress/usr.bin/diff/torture/CVS/Root | 1 + src/regress/usr.bin/diff/torture/torture | 130 + src/regress/usr.bin/diff3/CVS/Entries | 2 + src/regress/usr.bin/diff3/CVS/Repository | 1 + src/regress/usr.bin/diff3/CVS/Root | 1 + src/regress/usr.bin/diff3/Makefile | 9 + src/regress/usr.bin/diff3/obj | 1 + src/regress/usr.bin/dirname/CVS/Entries | 3 + src/regress/usr.bin/dirname/CVS/Repository | 1 + src/regress/usr.bin/dirname/CVS/Root | 1 + src/regress/usr.bin/dirname/Makefile | 7 + src/regress/usr.bin/dirname/dirname.sh | 27 + src/regress/usr.bin/dirname/obj | 1 + src/regress/usr.bin/file/CVS/Entries | 40 + src/regress/usr.bin/file/CVS/Repository | 1 + src/regress/usr.bin/file/CVS/Root | 1 + src/regress/usr.bin/file/Makefile | 43 + src/regress/usr.bin/file/t0.in | 0 src/regress/usr.bin/file/t0.out | 1 + src/regress/usr.bin/file/t1.in | 1 + src/regress/usr.bin/file/t1.out | 1 + src/regress/usr.bin/file/t10.in | Bin 0 -> 44 bytes src/regress/usr.bin/file/t10.out | 1 + src/regress/usr.bin/file/t15.in | Bin 0 -> 10240 bytes src/regress/usr.bin/file/t15.out | 1 + src/regress/usr.bin/file/t17.in | 5 + src/regress/usr.bin/file/t17.out | 1 + src/regress/usr.bin/file/t18.in | Bin 0 -> 6540 bytes src/regress/usr.bin/file/t18.out | 1 + src/regress/usr.bin/file/t2.in | 1 + src/regress/usr.bin/file/t2.out | 1 + src/regress/usr.bin/file/t20.in | 1 + src/regress/usr.bin/file/t20.out | 1 + src/regress/usr.bin/file/t21.in | 1 + src/regress/usr.bin/file/t21.out | 1 + src/regress/usr.bin/file/t22.in | 1 + src/regress/usr.bin/file/t22.out | 1 + src/regress/usr.bin/file/t23.in | 1 + src/regress/usr.bin/file/t23.out | 1 + src/regress/usr.bin/file/t3.in | 1 + src/regress/usr.bin/file/t3.out | 1 + src/regress/usr.bin/file/t30.in | Bin 0 -> 4 bytes src/regress/usr.bin/file/t30.out | 1 + src/regress/usr.bin/file/t4.in | 1 + src/regress/usr.bin/file/t4.out | 1 + src/regress/usr.bin/file/t5.in | 1 + src/regress/usr.bin/file/t5.out | 1 + src/regress/usr.bin/file/t6.in | 1 + src/regress/usr.bin/file/t6.out | 1 + src/regress/usr.bin/file/t7.in | 1 + src/regress/usr.bin/file/t7.out | 1 + src/regress/usr.bin/file/t8.in | 1 + src/regress/usr.bin/file/t8.out | 1 + src/regress/usr.bin/file/t9.in | Bin 0 -> 552 bytes src/regress/usr.bin/file/t9.out | 1 + src/regress/usr.bin/grep/CVS/Entries | 23 + src/regress/usr.bin/grep/CVS/Repository | 1 + src/regress/usr.bin/grep/CVS/Root | 1 + src/regress/usr.bin/grep/Makefile | 103 + src/regress/usr.bin/grep/in | 5 + src/regress/usr.bin/grep/obj | 1 + src/regress/usr.bin/grep/t1.out | 1 + src/regress/usr.bin/grep/t11.out | 3 + src/regress/usr.bin/grep/t13.in | 24 + src/regress/usr.bin/grep/t13.out | 24 + src/regress/usr.bin/grep/t14.in | 51 + src/regress/usr.bin/grep/t15.in | 4 + src/regress/usr.bin/grep/t15.out | 2 + src/regress/usr.bin/grep/t17.in | 1 + src/regress/usr.bin/grep/t17.out | 1 + src/regress/usr.bin/grep/t19.in | 6 + src/regress/usr.bin/grep/t19.out | 2 + src/regress/usr.bin/grep/t21.out | 0 src/regress/usr.bin/grep/t22.in | 512 +++ src/regress/usr.bin/grep/t23.in | 7 + src/regress/usr.bin/grep/t23.out | 5 + src/regress/usr.bin/grep/t3.out | 1 + src/regress/usr.bin/grep/t4.out | 1 + src/regress/usr.bin/grep/t5.out | 1 + src/regress/usr.bin/grep/t6.out | 1 + src/regress/usr.bin/grep/t7.out | 1 + src/regress/usr.bin/gzip/CVS/Entries | 4 + src/regress/usr.bin/gzip/CVS/Repository | 1 + src/regress/usr.bin/gzip/CVS/Root | 1 + src/regress/usr.bin/gzip/Makefile | 17 + src/regress/usr.bin/gzip/obj | 1 + src/regress/usr.bin/gzip/t1.sh | 70 + src/regress/usr.bin/gzip/t2.sh | 39 + src/regress/usr.bin/gzsig/CVS/Entries | 28 + src/regress/usr.bin/gzsig/CVS/Repository | 1 + src/regress/usr.bin/gzsig/CVS/Root | 1 + src/regress/usr.bin/gzsig/Makefile | 8 + src/regress/usr.bin/gzsig/file1 | 4 + src/regress/usr.bin/gzsig/file2 | 10 + src/regress/usr.bin/gzsig/file3 | 6 + src/regress/usr.bin/gzsig/gzsig.sh | 58 + src/regress/usr.bin/gzsig/obj | 1 + src/regress/usr.bin/gzsig/pass.ssh | 1 + src/regress/usr.bin/gzsig/pass.ssh2 | 1 + src/regress/usr.bin/gzsig/ssh-rsa | Bin 0 -> 528 bytes src/regress/usr.bin/gzsig/ssh-rsa-pass | Bin 0 -> 554 bytes src/regress/usr.bin/gzsig/ssh-rsa-pass.pub | 1 + src/regress/usr.bin/gzsig/ssh-rsa.pub | 1 + src/regress/usr.bin/gzsig/ssh2-dsa | 12 + src/regress/usr.bin/gzsig/ssh2-dsa-pass | 15 + src/regress/usr.bin/gzsig/ssh2-dsa-pass.pub | 1 + src/regress/usr.bin/gzsig/ssh2-dsa.pub | 1 + src/regress/usr.bin/gzsig/ssh2-rsa | 15 + src/regress/usr.bin/gzsig/ssh2-rsa-pass | 18 + src/regress/usr.bin/gzsig/ssh2-rsa-pass.pub | 1 + src/regress/usr.bin/gzsig/ssh2-rsa.pub | 1 + src/regress/usr.bin/gzsig/x509-dsa | 12 + src/regress/usr.bin/gzsig/x509-dsa-pass | 15 + src/regress/usr.bin/gzsig/x509-dsa-pass.pub | 17 + src/regress/usr.bin/gzsig/x509-dsa.pub | 19 + src/regress/usr.bin/gzsig/x509-rsa | 15 + src/regress/usr.bin/gzsig/x509-rsa-pass | 30 + src/regress/usr.bin/gzsig/x509-rsa-pass.pub | 19 + src/regress/usr.bin/gzsig/x509-rsa.pub | 14 + src/regress/usr.bin/m4/CVS/Entries | 50 + src/regress/usr.bin/m4/CVS/Repository | 1 + src/regress/usr.bin/m4/CVS/Root | 1 + src/regress/usr.bin/m4/Makefile | 108 + src/regress/usr.bin/m4/args.m4 | 8 + src/regress/usr.bin/m4/args.out | 3 + src/regress/usr.bin/m4/args2.m4 | 4 + src/regress/usr.bin/m4/args2.out | 1 + src/regress/usr.bin/m4/comments.m4 | 58 + src/regress/usr.bin/m4/comments.out | 47 + src/regress/usr.bin/m4/dumpdef.m4 | 2 + src/regress/usr.bin/m4/esyscmd.m4 | 42 + src/regress/usr.bin/m4/esyscmd.out | 578 +++ src/regress/usr.bin/m4/eval.m4 | 5 + src/regress/usr.bin/m4/eval.out | 3 + src/regress/usr.bin/m4/ff_after_dnl.m4.uu | 10 + src/regress/usr.bin/m4/ff_after_dnl.out | 2 + src/regress/usr.bin/m4/fibo.m4 | 7 + src/regress/usr.bin/m4/fibo.pl | 13 + src/regress/usr.bin/m4/gm4wrap3.out | 4 + src/regress/usr.bin/m4/gnuformat.m4 | 1 + src/regress/usr.bin/m4/gnuformat.out | 1 + src/regress/usr.bin/m4/gnupatterns.m4 | 3 + src/regress/usr.bin/m4/gnupatterns.out | 3 + src/regress/usr.bin/m4/gnupatterns2.m4 | 5 + src/regress/usr.bin/m4/gnupatterns2.out | 1 + src/regress/usr.bin/m4/gnuprefix.m4 | 2 + src/regress/usr.bin/m4/gnuprefix.out | 46 + src/regress/usr.bin/m4/includes.aux | 2 + src/regress/usr.bin/m4/includes.m4 | 4 + src/regress/usr.bin/m4/includes.out | 1 + src/regress/usr.bin/m4/m4wrap.m4 | 6 + src/regress/usr.bin/m4/m4wrap.out | 2 + src/regress/usr.bin/m4/m4wrap2.m4 | 4 + src/regress/usr.bin/m4/m4wrap3.m4 | 11 + src/regress/usr.bin/m4/m4wrap3.out | 4 + src/regress/usr.bin/m4/obj | 1 + src/regress/usr.bin/m4/patterns.m4 | 11 + src/regress/usr.bin/m4/patterns.out | 6 + src/regress/usr.bin/m4/quotes.gnu.out | 9 + src/regress/usr.bin/m4/quotes.m4 | 57 + src/regress/usr.bin/m4/quotes.out | 49 + src/regress/usr.bin/m4/reconstitute | 24 + src/regress/usr.bin/m4/redef.m4 | 16 + src/regress/usr.bin/m4/redef.out | 2 + src/regress/usr.bin/m4/strangequotes.m4.uu | 7 + src/regress/usr.bin/m4/strangequotes.out | 1 + src/regress/usr.bin/m4/synch1.m4 | 13 + src/regress/usr.bin/m4/synch1.out | 7 + src/regress/usr.bin/m4/synch1bis.out | 7 + src/regress/usr.bin/m4/translit.m4 | 3 + src/regress/usr.bin/m4/translit.out | 1 + src/regress/usr.bin/m4/weird,name.m4 | 4 + src/regress/usr.bin/make/CVS/Entries | 58 + src/regress/usr.bin/make/CVS/Repository | 1 + src/regress/usr.bin/make/CVS/Root | 1 + src/regress/usr.bin/make/Makefile | 156 + src/regress/usr.bin/make/mk1 | 11 + src/regress/usr.bin/make/mk10 | 20 + src/regress/usr.bin/make/mk11 | 25 + src/regress/usr.bin/make/mk12 | 21 + src/regress/usr.bin/make/mk13 | 6 + src/regress/usr.bin/make/mk14 | 12 + src/regress/usr.bin/make/mk15 | 7 + src/regress/usr.bin/make/mk16 | 214 + src/regress/usr.bin/make/mk17 | 9 + src/regress/usr.bin/make/mk18 | 14 + src/regress/usr.bin/make/mk19 | 5 + src/regress/usr.bin/make/mk2 | 5 + src/regress/usr.bin/make/mk20 | 7 + src/regress/usr.bin/make/mk21 | 14 + src/regress/usr.bin/make/mk22 | 10 + src/regress/usr.bin/make/mk23 | 4 + src/regress/usr.bin/make/mk24 | 20 + src/regress/usr.bin/make/mk25 | 9 + src/regress/usr.bin/make/mk26 | 23 + src/regress/usr.bin/make/mk27 | 29 + src/regress/usr.bin/make/mk28 | 15 + src/regress/usr.bin/make/mk2a | 2 + src/regress/usr.bin/make/mk2b | 3 + src/regress/usr.bin/make/mk3 | 4 + src/regress/usr.bin/make/mk32 | 13 + src/regress/usr.bin/make/mk3a | 2 + src/regress/usr.bin/make/mk4 | 3 + src/regress/usr.bin/make/mk4a | 4 + src/regress/usr.bin/make/mk6 | 11 + src/regress/usr.bin/make/mk7 | 9 + src/regress/usr.bin/make/mk8 | 12 + src/regress/usr.bin/make/mk9 | 7 + src/regress/usr.bin/make/mkfail | 2 + src/regress/usr.bin/make/obj | 1 + src/regress/usr.bin/make/t10.out | 4 + src/regress/usr.bin/make/t11.out | 13 + src/regress/usr.bin/make/t11.out2 | 13 + src/regress/usr.bin/make/t12.out | 3 + src/regress/usr.bin/make/t13.out | 1 + src/regress/usr.bin/make/t19.out | 1 + src/regress/usr.bin/make/t2.out | 1 + src/regress/usr.bin/make/t20.out | 1 + src/regress/usr.bin/make/t21.out | 3 + src/regress/usr.bin/make/t22.out | 2 + src/regress/usr.bin/make/t23.out | 2 + src/regress/usr.bin/make/t29.out | 4 + src/regress/usr.bin/make/t29.out2 | 3 + src/regress/usr.bin/make/t3.out | 1 + src/regress/usr.bin/make/t30.out | 4 + src/regress/usr.bin/make/t32.out | 1 + src/regress/usr.bin/make/t33.out | 1 + src/regress/usr.bin/make/t34.out | 1 + src/regress/usr.bin/make/t35.out | 1 + src/regress/usr.bin/make/t4.out | 1 + src/regress/usr.bin/make/t6.out | 4 + src/regress/usr.bin/make/t8.out | 2 + src/regress/usr.bin/make/t9.out | 3 + src/regress/usr.bin/mandoc/CVS/Entries | 5 + src/regress/usr.bin/mandoc/CVS/Repository | 1 + src/regress/usr.bin/mandoc/CVS/Root | 1 + src/regress/usr.bin/mandoc/Makefile | 7 + src/regress/usr.bin/mandoc/Makefile.inc | 39 + src/regress/usr.bin/mandoc/char/CVS/Entries | 3 + src/regress/usr.bin/mandoc/char/CVS/Repository | 1 + src/regress/usr.bin/mandoc/char/CVS/Root | 1 + src/regress/usr.bin/mandoc/char/Makefile | 7 + src/regress/usr.bin/mandoc/char/Makefile.inc | 3 + src/regress/usr.bin/mandoc/char/space/CVS/Entries | 4 + .../usr.bin/mandoc/char/space/CVS/Repository | 1 + src/regress/usr.bin/mandoc/char/space/CVS/Root | 1 + src/regress/usr.bin/mandoc/char/space/Makefile | 6 + src/regress/usr.bin/mandoc/char/space/nobreak.in | 18 + src/regress/usr.bin/mandoc/char/space/tab.in | 104 + src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Entries | 3 + src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Repository | 1 + src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Root | 1 + src/regress/usr.bin/mandoc/mdoc/Bd/Makefile | 6 + src/regress/usr.bin/mandoc/mdoc/Bd/blank.in | 17 + src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Entries | 11 + src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Repository | 1 + src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Root | 1 + src/regress/usr.bin/mandoc/mdoc/Bl/EMULTILIST.sh | 40 + src/regress/usr.bin/mandoc/mdoc/Bl/ENOTYPE.sh | 33 + src/regress/usr.bin/mandoc/mdoc/Bl/Makefile | 20 + src/regress/usr.bin/mandoc/mdoc/Bl/column.in | 55 + src/regress/usr.bin/mandoc/mdoc/Bl/diag.in | 39 + src/regress/usr.bin/mandoc/mdoc/Bl/hang.in | 47 + src/regress/usr.bin/mandoc/mdoc/Bl/inset.in | 39 + src/regress/usr.bin/mandoc/mdoc/Bl/multitag.in | 47 + src/regress/usr.bin/mandoc/mdoc/Bl/nested.in | 44 + src/regress/usr.bin/mandoc/mdoc/Bl/tag.in | 39 + src/regress/usr.bin/mandoc/mdoc/CVS/Entries | 11 + src/regress/usr.bin/mandoc/mdoc/CVS/Repository | 1 + src/regress/usr.bin/mandoc/mdoc/CVS/Root | 1 + src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Entries | 4 + src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Repository | 1 + src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Root | 1 + src/regress/usr.bin/mandoc/mdoc/Fl/Makefile | 6 + src/regress/usr.bin/mandoc/mdoc/Fl/multiarg.in | 14 + src/regress/usr.bin/mandoc/mdoc/Fl/noarg.in | 17 + src/regress/usr.bin/mandoc/mdoc/In/CVS/Entries | 3 + src/regress/usr.bin/mandoc/mdoc/In/CVS/Repository | 1 + src/regress/usr.bin/mandoc/mdoc/In/CVS/Root | 1 + src/regress/usr.bin/mandoc/mdoc/In/Makefile | 6 + src/regress/usr.bin/mandoc/mdoc/In/break.in | 16 + src/regress/usr.bin/mandoc/mdoc/Li/CVS/Entries | 3 + src/regress/usr.bin/mandoc/mdoc/Li/CVS/Repository | 1 + src/regress/usr.bin/mandoc/mdoc/Li/CVS/Root | 1 + src/regress/usr.bin/mandoc/mdoc/Li/Makefile | 6 + src/regress/usr.bin/mandoc/mdoc/Li/punct.in | 18 + src/regress/usr.bin/mandoc/mdoc/Makefile | 7 + src/regress/usr.bin/mandoc/mdoc/Makefile.inc | 3 + src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Entries | 3 + src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Repository | 1 + src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Root | 1 + src/regress/usr.bin/mandoc/mdoc/Pa/FILES.in | 92 + src/regress/usr.bin/mandoc/mdoc/Pa/Makefile | 6 + src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Entries | 3 + src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Repository | 1 + src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Root | 1 + src/regress/usr.bin/mandoc/mdoc/Rs/Makefile | 6 + src/regress/usr.bin/mandoc/mdoc/Rs/break.in | 20 + src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Entries | 3 + src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Repository | 1 + src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Root | 1 + src/regress/usr.bin/mandoc/mdoc/Sm/Makefile | 6 + src/regress/usr.bin/mandoc/mdoc/Sm/scope.in | 30 + src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Entries | 3 + src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Repository | 1 + src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Root | 1 + src/regress/usr.bin/mandoc/mdoc/Xr/Makefile | 6 + src/regress/usr.bin/mandoc/mdoc/Xr/args.in | 25 + src/regress/usr.bin/mandoc/roff/CVS/Entries | 3 + src/regress/usr.bin/mandoc/roff/CVS/Repository | 1 + src/regress/usr.bin/mandoc/roff/CVS/Root | 1 + src/regress/usr.bin/mandoc/roff/Makefile | 7 + src/regress/usr.bin/mandoc/roff/Makefile.inc | 3 + src/regress/usr.bin/mandoc/roff/cond/CVS/Entries | 6 + .../usr.bin/mandoc/roff/cond/CVS/Repository | 1 + src/regress/usr.bin/mandoc/roff/cond/CVS/Root | 1 + src/regress/usr.bin/mandoc/roff/cond/Makefile | 5 + src/regress/usr.bin/mandoc/roff/cond/ie.in | 18 + src/regress/usr.bin/mandoc/roff/cond/ie.out_ascii | 11 + src/regress/usr.bin/mandoc/roff/cond/if.in | 44 + src/regress/usr.bin/mandoc/roff/cond/if.out_ascii | 15 + src/regress/usr.bin/mdoclint/CVS/Entries | 4 + src/regress/usr.bin/mdoclint/CVS/Repository | 1 + src/regress/usr.bin/mdoclint/CVS/Root | 1 + src/regress/usr.bin/mdoclint/Makefile | 9 + src/regress/usr.bin/mdoclint/mdoclint | 597 +++ src/regress/usr.bin/mdoclint/mdoclint.1 | 170 + src/regress/usr.bin/patch/CVS/Entries | 40 + src/regress/usr.bin/patch/CVS/Repository | 1 + src/regress/usr.bin/patch/CVS/Root | 1 + src/regress/usr.bin/patch/Makefile | 67 + src/regress/usr.bin/patch/obj | 1 + src/regress/usr.bin/patch/t1.diff | 4 + src/regress/usr.bin/patch/t1.in | 0 src/regress/usr.bin/patch/t1.out | 1 + src/regress/usr.bin/patch/t10.diff | 7 + src/regress/usr.bin/patch/t10.in | 3 + src/regress/usr.bin/patch/t10.out | 2 + src/regress/usr.bin/patch/t11.diff | 6 + src/regress/usr.bin/patch/t11.in | 3 + src/regress/usr.bin/patch/t11.out | 2 + src/regress/usr.bin/patch/t12.diff | 6 + src/regress/usr.bin/patch/t12.in | 2 + src/regress/usr.bin/patch/t12.out | 1 + src/regress/usr.bin/patch/t13.diff | 9 + src/regress/usr.bin/patch/t13.in | 4 + src/regress/usr.bin/patch/t13.out | 4 + src/regress/usr.bin/patch/t2.diff | 12 + src/regress/usr.bin/patch/t2.in | 494 +++ src/regress/usr.bin/patch/t2.out | 494 +++ src/regress/usr.bin/patch/t3.diff | 4 + src/regress/usr.bin/patch/t3.in | 1 + src/regress/usr.bin/patch/t3.out | 1 + src/regress/usr.bin/patch/t4.diff | 6 + src/regress/usr.bin/patch/t4.in | 1 + src/regress/usr.bin/patch/t4.out | 1 + src/regress/usr.bin/patch/t5.diff | 5 + src/regress/usr.bin/patch/t5.out | 2 + src/regress/usr.bin/patch/t6.diff | 6 + src/regress/usr.bin/patch/t6.in | 1 + src/regress/usr.bin/patch/t6.out | 1 + src/regress/usr.bin/patch/t7.diff | 7 + src/regress/usr.bin/patch/t7.in | 1 + src/regress/usr.bin/patch/t7.out | 1 + src/regress/usr.bin/patch/t8.diff | 9 + src/regress/usr.bin/patch/t8.in | 4 + src/regress/usr.bin/patch/t8.out | 4 + src/regress/usr.bin/patch/t9.diff | 8 + src/regress/usr.bin/patch/t9.in | 2 + src/regress/usr.bin/patch/t9.out | 3 + src/regress/usr.bin/pcc/CVS/Entries | 3 + src/regress/usr.bin/pcc/CVS/Repository | 1 + src/regress/usr.bin/pcc/CVS/Root | 1 + src/regress/usr.bin/pcc/Makefile | 5 + src/regress/usr.bin/pcc/ccom/CVS/Entries | 17 + src/regress/usr.bin/pcc/ccom/CVS/Repository | 1 + src/regress/usr.bin/pcc/ccom/CVS/Root | 1 + src/regress/usr.bin/pcc/ccom/Makefile | 31 + src/regress/usr.bin/pcc/ccom/arith001.c | 14 + src/regress/usr.bin/pcc/ccom/const001.c | 23 + src/regress/usr.bin/pcc/ccom/darray001.c | 9 + src/regress/usr.bin/pcc/ccom/enum001.c | 26 + src/regress/usr.bin/pcc/ccom/init001.c | 16 + src/regress/usr.bin/pcc/ccom/init002.c | 6 + src/regress/usr.bin/pcc/ccom/init003.c | 4 + src/regress/usr.bin/pcc/ccom/init004.c | 17 + src/regress/usr.bin/pcc/ccom/mustfail0000.c | 6 + src/regress/usr.bin/pcc/ccom/mustpass0000.c | 10 + src/regress/usr.bin/pcc/ccom/mustpass0001.c | 9 + src/regress/usr.bin/pcc/ccom/switch001.c | 11 + src/regress/usr.bin/pcc/ccom/switch002.c | 11 + src/regress/usr.bin/pcc/ccom/switch003.c | 16 + src/regress/usr.bin/pcc/ccom/tmpalloc001.c | 19 + src/regress/usr.bin/pcc/cpp/CVS/Entries | 22 + src/regress/usr.bin/pcc/cpp/CVS/Repository | 1 + src/regress/usr.bin/pcc/cpp/CVS/Root | 1 + src/regress/usr.bin/pcc/cpp/Makefile | 9 + src/regress/usr.bin/pcc/cpp/res1 | 7 + src/regress/usr.bin/pcc/cpp/res2 | 26 + src/regress/usr.bin/pcc/cpp/res3 | 16 + src/regress/usr.bin/pcc/cpp/res4 | 5 + src/regress/usr.bin/pcc/cpp/res5 | 4 + src/regress/usr.bin/pcc/cpp/res6 | 6 + src/regress/usr.bin/pcc/cpp/res7 | 5 + src/regress/usr.bin/pcc/cpp/res8 | 8 + src/regress/usr.bin/pcc/cpp/res9 | 5 + src/regress/usr.bin/pcc/cpp/skip001.c | 3 + src/regress/usr.bin/pcc/cpp/skip001.out | 16 + src/regress/usr.bin/pcc/cpp/subdir/CVS/Entries | 2 + src/regress/usr.bin/pcc/cpp/subdir/CVS/Repository | 1 + src/regress/usr.bin/pcc/cpp/subdir/CVS/Root | 1 + src/regress/usr.bin/pcc/cpp/subdir/include.h | 1 + src/regress/usr.bin/pcc/cpp/test1 | 6 + src/regress/usr.bin/pcc/cpp/test2 | 25 + src/regress/usr.bin/pcc/cpp/test3 | 15 + src/regress/usr.bin/pcc/cpp/test4 | 4 + src/regress/usr.bin/pcc/cpp/test5 | 3 + src/regress/usr.bin/pcc/cpp/test6 | 5 + src/regress/usr.bin/pcc/cpp/test7 | 4 + src/regress/usr.bin/pcc/cpp/test8 | 7 + src/regress/usr.bin/pcc/cpp/test9 | 4 + src/regress/usr.bin/rcs/CVS/Entries | 25 + src/regress/usr.bin/rcs/CVS/Repository | 1 + src/regress/usr.bin/rcs/CVS/Root | 1 + src/regress/usr.bin/rcs/Makefile | 611 +++ src/regress/usr.bin/rcs/keywords.in | 9 + src/regress/usr.bin/rcs/keywords.out | 9 + src/regress/usr.bin/rcs/merge-eflag.out | 4 + src/regress/usr.bin/rcs/obj | 1 + src/regress/usr.bin/rcs/rcs-aflag.out | 15 + src/regress/usr.bin/rcs/rcs-eflag.out | 12 + src/regress/usr.bin/rcs/rcsdiff-rflag.out | 10 + src/regress/usr.bin/rcs/rcsdiff-uflag.out | 5 + src/regress/usr.bin/rcs/rcsdiff.out | 16 + src/regress/usr.bin/rcs/rcsmerge.out | 14 + src/regress/usr.bin/rcs/rev1 | 1 + src/regress/usr.bin/rcs/rev2 | 5 + src/regress/usr.bin/rcs/rev3 | 14 + src/regress/usr.bin/rcs/rlog-rflag1.out | 17 + src/regress/usr.bin/rcs/rlog-rflag2.out | 25 + src/regress/usr.bin/rcs/rlog-rflag3.out | 21 + src/regress/usr.bin/rcs/rlog-rflag4.out | 17 + src/regress/usr.bin/rcs/rlog-zflag1.out | 17 + src/regress/usr.bin/rcs/rlog-zflag2.out | 17 + src/regress/usr.bin/rcs/rlog-zflag3.out | 17 + src/regress/usr.bin/rcs/rlog-zflag4.out | 17 + src/regress/usr.bin/rcs/rlog-zflag5.out | 17 + src/regress/usr.bin/rcs/test-truncated,v | 23 + src/regress/usr.bin/sdiff/CVS/Entries | 26 + src/regress/usr.bin/sdiff/CVS/Repository | 1 + src/regress/usr.bin/sdiff/CVS/Root | 1 + src/regress/usr.bin/sdiff/Iflag12.out | 100 + src/regress/usr.bin/sdiff/Iflag21.out | 96 + src/regress/usr.bin/sdiff/Ilflag12.out | 99 + src/regress/usr.bin/sdiff/Ilflag21.out | 94 + src/regress/usr.bin/sdiff/Ilsflag12.out | 69 + src/regress/usr.bin/sdiff/Ilsflag21.out | 65 + src/regress/usr.bin/sdiff/Isflag12.out | 69 + src/regress/usr.bin/sdiff/Isflag21.out | 65 + src/regress/usr.bin/sdiff/Makefile | 145 + src/regress/usr.bin/sdiff/dot.in | 1 + src/regress/usr.bin/sdiff/file1 | 72 + src/regress/usr.bin/sdiff/file2 | 69 + src/regress/usr.bin/sdiff/lflag.out | 102 + src/regress/usr.bin/sdiff/obj | 1 + src/regress/usr.bin/sdiff/oneline.in | 1 + src/regress/usr.bin/sdiff/same.out | 72 + src/regress/usr.bin/sdiff/sflag.out | 79 + src/regress/usr.bin/sdiff/short.out | 15 + src/regress/usr.bin/sdiff/tabends | 17 + src/regress/usr.bin/sdiff/tabends.out | 17 + src/regress/usr.bin/sdiff/tabends2.out | 17 + src/regress/usr.bin/sdiff/tabends3.out | 17 + src/regress/usr.bin/sdiff/tabs.out | 102 + src/regress/usr.bin/sdiff/tabs1 | 72 + src/regress/usr.bin/sdiff/tabs2 | 69 + src/regress/usr.bin/sdiff/wflag.out | 102 + src/regress/usr.bin/sed/CVS/Entries | 16 + src/regress/usr.bin/sed/CVS/Repository | 1 + src/regress/usr.bin/sed/CVS/Root | 1 + src/regress/usr.bin/sed/Makefile | 26 + src/regress/usr.bin/sed/dc.expected | 3 + src/regress/usr.bin/sed/dc.in | 7 + src/regress/usr.bin/sed/dc.sed | 327 ++ src/regress/usr.bin/sed/hanoi.expected | 17 + src/regress/usr.bin/sed/hanoi.in | 2 + src/regress/usr.bin/sed/hanoi.sed | 103 + src/regress/usr.bin/sed/math.expected | 2 + src/regress/usr.bin/sed/math.in | 2 + src/regress/usr.bin/sed/math.sed | 164 + src/regress/usr.bin/sed/obj | 1 + src/regress/usr.bin/sed/sedtest.expected | 4508 ++++++++++++++++++++ src/regress/usr.bin/sed/sedtest.sh | 448 ++ src/regress/usr.bin/sed/sierpinski.expected | 25 + src/regress/usr.bin/sed/sierpinski.in | 1 + src/regress/usr.bin/sed/sierpinski.sed | 35 + src/regress/usr.bin/sort/CVS/Entries | 3 + src/regress/usr.bin/sort/CVS/Repository | 1 + src/regress/usr.bin/sort/CVS/Root | 1 + src/regress/usr.bin/sort/Makefile | 12 + src/regress/usr.bin/sort/obj | 1 + src/regress/usr.bin/sort/stests | 969 +++++ src/regress/usr.bin/ssh/CVS/Entries | 66 + src/regress/usr.bin/ssh/CVS/Repository | 1 + src/regress/usr.bin/ssh/CVS/Root | 1 + src/regress/usr.bin/ssh/Makefile | 128 + src/regress/usr.bin/ssh/addrmatch.sh | 44 + src/regress/usr.bin/ssh/agent-getpeereid.sh | 38 + src/regress/usr.bin/ssh/agent-pkcs11.sh | 69 + src/regress/usr.bin/ssh/agent-ptrace.sh | 28 + src/regress/usr.bin/ssh/agent-timeout.sh | 36 + src/regress/usr.bin/ssh/agent.sh | 75 + src/regress/usr.bin/ssh/banner.sh | 44 + src/regress/usr.bin/ssh/broken-pipe.sh | 15 + src/regress/usr.bin/ssh/brokenkeys.sh | 23 + src/regress/usr.bin/ssh/cert-hostkey.sh | 239 ++ src/regress/usr.bin/ssh/cert-userkey.sh | 295 ++ src/regress/usr.bin/ssh/cfgmatch.sh | 124 + src/regress/usr.bin/ssh/cipher-speed.sh | 47 + src/regress/usr.bin/ssh/conch-ciphers.sh | 30 + src/regress/usr.bin/ssh/connect-privsep.sh | 13 + src/regress/usr.bin/ssh/connect.sh | 13 + src/regress/usr.bin/ssh/dsa_ssh2.prv | 14 + src/regress/usr.bin/ssh/dsa_ssh2.pub | 13 + src/regress/usr.bin/ssh/dynamic-forward.sh | 45 + src/regress/usr.bin/ssh/envpass.sh | 60 + src/regress/usr.bin/ssh/exit-status.sh | 24 + src/regress/usr.bin/ssh/forcecommand.sh | 42 + src/regress/usr.bin/ssh/forwarding.sh | 104 + src/regress/usr.bin/ssh/key-options.sh | 71 + src/regress/usr.bin/ssh/keygen-change.sh | 23 + src/regress/usr.bin/ssh/keygen-convert.sh | 33 + src/regress/usr.bin/ssh/keyscan.sh | 19 + src/regress/usr.bin/ssh/localcommand.sh | 15 + src/regress/usr.bin/ssh/login-timeout.sh | 29 + src/regress/usr.bin/ssh/multiplex.sh | 86 + src/regress/usr.bin/ssh/obj | 1 + src/regress/usr.bin/ssh/portnum.sh | 32 + src/regress/usr.bin/ssh/proto-mismatch.sh | 19 + src/regress/usr.bin/ssh/proto-version.sh | 34 + src/regress/usr.bin/ssh/proxy-connect.sh | 18 + src/regress/usr.bin/ssh/putty-ciphers.sh | 28 + src/regress/usr.bin/ssh/putty-kex.sh | 25 + src/regress/usr.bin/ssh/putty-transfer.sh | 43 + src/regress/usr.bin/ssh/reconfigure.sh | 28 + src/regress/usr.bin/ssh/reexec.sh | 72 + src/regress/usr.bin/ssh/rekey.sh | 31 + src/regress/usr.bin/ssh/rsa_openssh.prv | 15 + src/regress/usr.bin/ssh/rsa_openssh.pub | 1 + src/regress/usr.bin/ssh/rsa_ssh2.prv | 16 + src/regress/usr.bin/ssh/scp-ssh-wrapper.sh | 57 + src/regress/usr.bin/ssh/scp.sh | 120 + src/regress/usr.bin/ssh/sftp-badcmds.sh | 67 + src/regress/usr.bin/ssh/sftp-batch.sh | 57 + src/regress/usr.bin/ssh/sftp-cmds.sh | 218 + src/regress/usr.bin/ssh/sftp-glob.sh | 65 + src/regress/usr.bin/ssh/sftp.sh | 29 + src/regress/usr.bin/ssh/ssh-com-client.sh | 134 + src/regress/usr.bin/ssh/ssh-com-keygen.sh | 74 + src/regress/usr.bin/ssh/ssh-com-sftp.sh | 61 + src/regress/usr.bin/ssh/ssh-com.sh | 119 + src/regress/usr.bin/ssh/ssh2putty.sh | 32 + src/regress/usr.bin/ssh/sshd-log-wrapper.sh | 13 + src/regress/usr.bin/ssh/stderr-after-eof.sh | 28 + src/regress/usr.bin/ssh/stderr-data.sh | 33 + src/regress/usr.bin/ssh/t4.ok | 1 + src/regress/usr.bin/ssh/t5.ok | 1 + src/regress/usr.bin/ssh/test-exec.sh | 327 ++ src/regress/usr.bin/ssh/transfer.sh | 29 + src/regress/usr.bin/ssh/try-ciphers.sh | 42 + src/regress/usr.bin/ssh/yes-head.sh | 15 + src/regress/usr.bin/tsort/CVS/Entries | 10 + src/regress/usr.bin/tsort/CVS/Repository | 1 + src/regress/usr.bin/tsort/CVS/Root | 1 + src/regress/usr.bin/tsort/Makefile | 52 + src/regress/usr.bin/tsort/build-tree | 28 + src/regress/usr.bin/tsort/normalize-cycles | 37 + src/regress/usr.bin/tsort/obj | 1 + src/regress/usr.bin/tsort/pairs1 | 2956 +++++++++++++ src/regress/usr.bin/tsort/pairs2 | 19 + src/regress/usr.bin/tsort/pairs5 | 663 +++ src/regress/usr.bin/tsort/pairs6 | 332 ++ src/regress/usr.bin/tsort/t2.canonical | 1 + src/regress/usr.bin/tsort/tsort-check | 54 + src/regress/usr.bin/xargs/CVS/Entries | 4 + src/regress/usr.bin/xargs/CVS/Repository | 1 + src/regress/usr.bin/xargs/CVS/Root | 1 + src/regress/usr.bin/xargs/Makefile | 9 + src/regress/usr.bin/xargs/showargs.c | 19 + src/regress/usr.bin/xargs/xargs-L.sh | 97 + src/regress/usr.bin/xlint/CVS/Entries | 49 + src/regress/usr.bin/xlint/CVS/Repository | 1 + src/regress/usr.bin/xlint/CVS/Root | 1 + src/regress/usr.bin/xlint/Makefile | 25 + src/regress/usr.bin/xlint/test-1.c | 21 + src/regress/usr.bin/xlint/test-1.c.exp | 3 + src/regress/usr.bin/xlint/test-10.c | 23 + src/regress/usr.bin/xlint/test-10.c.exp | 2 + src/regress/usr.bin/xlint/test-11.c | 134 + src/regress/usr.bin/xlint/test-11.c.exp | 16 + src/regress/usr.bin/xlint/test-12.c | 30 + src/regress/usr.bin/xlint/test-12.c.exp | 2 + src/regress/usr.bin/xlint/test-13.c | 29 + src/regress/usr.bin/xlint/test-13.c.exp | 3 + src/regress/usr.bin/xlint/test-14.c | 46 + src/regress/usr.bin/xlint/test-14.c.exp | 4 + src/regress/usr.bin/xlint/test-15.c | 49 + src/regress/usr.bin/xlint/test-15.c.exp | 11 + src/regress/usr.bin/xlint/test-16.c | 22 + src/regress/usr.bin/xlint/test-16.c.exp | 1 + src/regress/usr.bin/xlint/test-17.c | 49 + src/regress/usr.bin/xlint/test-17.c.exp | 4 + src/regress/usr.bin/xlint/test-18.c | 23 + src/regress/usr.bin/xlint/test-18.c.exp | 3 + src/regress/usr.bin/xlint/test-19.c | 498 +++ src/regress/usr.bin/xlint/test-19.c.exp | 117 + src/regress/usr.bin/xlint/test-2.c | 38 + src/regress/usr.bin/xlint/test-2.c.exp | 15 + src/regress/usr.bin/xlint/test-20.c | 61 + src/regress/usr.bin/xlint/test-20.c.exp | 21 + src/regress/usr.bin/xlint/test-21.c | 22 + src/regress/usr.bin/xlint/test-21.c.exp | 3 + src/regress/usr.bin/xlint/test-22.c | 17 + src/regress/usr.bin/xlint/test-22.c.exp | 2 + src/regress/usr.bin/xlint/test-23.c | 65 + src/regress/usr.bin/xlint/test-23.c.exp | 9 + src/regress/usr.bin/xlint/test-3.c | 26 + src/regress/usr.bin/xlint/test-3.c.exp | 1 + src/regress/usr.bin/xlint/test-4.c | 31 + src/regress/usr.bin/xlint/test-4.c.exp | 2 + src/regress/usr.bin/xlint/test-5.c | 39 + src/regress/usr.bin/xlint/test-5.c.exp | 4 + src/regress/usr.bin/xlint/test-6.c | 27 + src/regress/usr.bin/xlint/test-6.c.exp | 3 + src/regress/usr.bin/xlint/test-7.c | 17 + src/regress/usr.bin/xlint/test-7.c.exp | 2 + src/regress/usr.bin/xlint/test-8.c | 18 + src/regress/usr.bin/xlint/test-8.c.exp | 2 + src/regress/usr.bin/xlint/test-8.h | 4 + src/regress/usr.bin/xlint/test-9.c | 19 + src/regress/usr.bin/xlint/test-9.c.exp | 2 + src/regress/usr.sbin/CVS/Entries | 3 + src/regress/usr.sbin/CVS/Repository | 1 + src/regress/usr.sbin/CVS/Root | 1 + src/regress/usr.sbin/Makefile | 5 + src/regress/usr.sbin/mtree/CVS/Entries | 3 + src/regress/usr.sbin/mtree/CVS/Repository | 1 + src/regress/usr.sbin/mtree/CVS/Root | 1 + src/regress/usr.sbin/mtree/Makefile | 9 + src/regress/usr.sbin/mtree/obj | 1 + src/regress/usr.sbin/mtree/spec1 | 6 + src/regress/usr.sbin/pkg_add/CVS/Entries | 18 + src/regress/usr.sbin/pkg_add/CVS/Repository | 1 + src/regress/usr.sbin/pkg_add/CVS/Root | 1 + src/regress/usr.sbin/pkg_add/Makefile | 451 ++ src/regress/usr.sbin/pkg_add/check-name | 123 + src/regress/usr.sbin/pkg_add/check-sig | 63 + src/regress/usr.sbin/pkg_add/empty | 1 + src/regress/usr.sbin/pkg_add/list | 3 + src/regress/usr.sbin/pkg_add/list.out | 3 + src/regress/usr.sbin/pkg_add/list2.out | 3 + src/regress/usr.sbin/pkg_add/list3.out | 2 + src/regress/usr.sbin/pkg_add/list4.out | 1 + src/regress/usr.sbin/pkg_add/list5.out | 2 + src/regress/usr.sbin/pkg_add/list6.out | 8 + src/regress/usr.sbin/pkg_add/list7.out | 8 + src/regress/usr.sbin/pkg_add/list8.out | 8 + src/regress/usr.sbin/pkg_add/minitar | 83 + src/regress/usr.sbin/pkg_add/myadd | 41 + src/regress/usr.sbin/pkg_add/mycreate | 46 + src/regress/usr.sbin/pkg_add/obj | 1 + src/regress/usr.sbin/pkg_add/signatures.ref | 6 + 4515 files changed, 167736 insertions(+) create mode 100644 src/regress/CVS/Entries create mode 100644 src/regress/CVS/Repository create mode 100644 src/regress/CVS/Root create mode 100644 src/regress/Makefile create mode 100644 src/regress/bin/CVS/Entries create mode 100644 src/regress/bin/CVS/Repository create mode 100644 src/regress/bin/CVS/Root create mode 100644 src/regress/bin/Makefile create mode 100644 src/regress/bin/ksh/CVS/Entries create mode 100644 src/regress/bin/ksh/CVS/Repository create mode 100644 src/regress/bin/ksh/CVS/Root create mode 100644 src/regress/bin/ksh/Makefile create mode 100644 src/regress/bin/ksh/eval.sh create mode 120000 src/regress/bin/ksh/obj create mode 100644 src/regress/bin/ksh/seterror.sh create mode 100644 src/regress/bin/ksh/shcrash.sh create mode 100644 src/regress/bin/ksh/varfunction.sh create mode 100644 src/regress/bin/md5/CVS/Entries create mode 100644 src/regress/bin/md5/CVS/Repository create mode 100644 src/regress/bin/md5/CVS/Root create mode 100644 src/regress/bin/md5/Makefile create mode 120000 src/regress/bin/md5/obj create mode 100644 src/regress/bin/md5/pipe_test.md5 create mode 100644 src/regress/bin/md5/testsuite.md5 create mode 100644 src/regress/bin/md5/testsuite.rmd160 create mode 100644 src/regress/bin/md5/testsuite.sha1 create mode 100644 src/regress/bin/pax/CVS/Entries create mode 100644 src/regress/bin/pax/CVS/Repository create mode 100644 src/regress/bin/pax/CVS/Root create mode 100644 src/regress/bin/pax/Makefile create mode 120000 src/regress/bin/pax/obj create mode 100644 src/regress/bin/pax/t1.out create mode 100644 src/regress/bin/pax/t1.sh create mode 100644 src/regress/bin/pax/t2.out create mode 100644 src/regress/bin/pax/t2.sh create mode 100644 src/regress/bin/pax/t3.out create mode 100644 src/regress/bin/pax/t3.sh create mode 100644 src/regress/bin/pax/t4.out create mode 100644 src/regress/bin/pax/t4.sh create mode 100644 src/regress/bin/pax/t5.sh create mode 100644 src/regress/bin/pax/t6.sh create mode 100644 src/regress/bin/systrace/CVS/Entries create mode 100644 src/regress/bin/systrace/CVS/Repository create mode 100644 src/regress/bin/systrace/CVS/Root create mode 100644 src/regress/bin/systrace/Makefile create mode 100644 src/regress/bin/systrace/id/CVS/Entries create mode 100644 src/regress/bin/systrace/id/CVS/Repository create mode 100644 src/regress/bin/systrace/id/CVS/Root create mode 100644 src/regress/bin/systrace/id/Makefile create mode 100644 src/regress/bin/systrace/id/id.policy create mode 100644 src/regress/bin/systrace/id/id.sh create mode 120000 src/regress/bin/systrace/id/obj create mode 100644 src/regress/bin/systrace/symlink/CVS/Entries create mode 100644 src/regress/bin/systrace/symlink/CVS/Repository create mode 100644 src/regress/bin/systrace/symlink/CVS/Root create mode 100644 src/regress/bin/systrace/symlink/Makefile create mode 100644 src/regress/bin/systrace/symlink/ln.policy create mode 120000 src/regress/bin/systrace/symlink/obj create mode 100644 src/regress/etc/CVS/Entries create mode 100644 src/regress/etc/CVS/Repository create mode 100644 src/regress/etc/CVS/Root create mode 100644 src/regress/etc/MAKEDEV/CVS/Entries create mode 100644 src/regress/etc/MAKEDEV/CVS/Repository create mode 100644 src/regress/etc/MAKEDEV/CVS/Root create mode 100644 src/regress/etc/MAKEDEV/Makefile create mode 120000 src/regress/etc/MAKEDEV/obj create mode 100644 src/regress/etc/Makefile create mode 100644 src/regress/gnu/CVS/Entries create mode 100644 src/regress/gnu/CVS/Repository create mode 100644 src/regress/gnu/CVS/Root create mode 100644 src/regress/gnu/Makefile create mode 100644 src/regress/gnu/egcs/CVS/Entries create mode 100644 src/regress/gnu/egcs/CVS/Repository create mode 100644 src/regress/gnu/egcs/CVS/Root create mode 100644 src/regress/gnu/egcs/Makefile create mode 100644 src/regress/gnu/egcs/Makefile.inc create mode 100644 src/regress/gnu/egcs/gcc-bounds/CVS/Entries create mode 100644 src/regress/gnu/egcs/gcc-bounds/CVS/Repository create mode 100644 src/regress/gnu/egcs/gcc-bounds/CVS/Root create mode 100644 src/regress/gnu/egcs/gcc-bounds/Makefile create mode 100644 src/regress/gnu/egcs/gcc-bounds/builtins-1.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/builtins-1.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/builtins-1.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-1.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-1.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-1.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-10.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-10.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-10.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-11.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-11.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-11.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-12.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-12.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-12.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-13.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-13.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-13.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-14.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-14.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-14.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-15.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-15.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-15.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-2.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-2.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-2.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-3.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-3.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-3.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-4.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-4.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-4.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-5.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-5.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-5.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-6.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-6.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-6.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-7.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-7.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-7.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-8.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-8.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-8.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-9.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-9.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/declare-9.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/fread-1.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/fread-1.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/fread-1.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/fread-2.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/fread-2.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/fread-2.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/fread-3.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/fread-3.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/fread-3.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/fread-4.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/fread-4.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/fread-4.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/getcwd-1.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/getcwd-1.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/getcwd-1.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/getcwd-2.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/getcwd-2.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/getcwd-2.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/getcwd-3.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/getcwd-3.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/getcwd-3.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/getcwd-4.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/getcwd-4.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/getcwd-4.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-1.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-1.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-1.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-2.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-2.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-2.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-3.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-3.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-3.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-4.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-4.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-4.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-5.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-5.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-5.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-6.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-6.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/md-6.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-1.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-1.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-1.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-2.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-2.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-2.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-3.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-3.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-3.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-4.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-4.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-4.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-5.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-5.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-5.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-6.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-6.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-6.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-7.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-8.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-8.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/memcpy-8.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-1.cpp create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-1.cpp.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-1.cpp.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-1.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-1.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-1.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-2.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-2.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-2.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-3.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-3.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-3.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-4.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-4.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-4.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-5.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-5.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-5.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-6.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/sscanf-6.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-1.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-1.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-1.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-2.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-2.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-2.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-3.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-3.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-3.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-4.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-4.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-4.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-5.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-5.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-5.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-6.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-6.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcat-6.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-1.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-1.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-1.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-2.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-2.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-2.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-6.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-6.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/strlcpy-6.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/vararray-1.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/vararray-1.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/vararray-1.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/vararray-2.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/vararray-2.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/vararray-2.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc-bounds/vararray-3.c create mode 100644 src/regress/gnu/egcs/gcc-bounds/vararray-3.c.exp create mode 100644 src/regress/gnu/egcs/gcc-bounds/vararray-3.c.exp.gcc3 create mode 100644 src/regress/gnu/egcs/gcc/CVS/Entries create mode 100644 src/regress/gnu/egcs/gcc/CVS/Repository create mode 100644 src/regress/gnu/egcs/gcc/CVS/Root create mode 100644 src/regress/gnu/egcs/gcc/Makefile create mode 120000 src/regress/gnu/egcs/gcc/obj create mode 100644 src/regress/gnu/egcs/libf2c/CVS/Entries create mode 100644 src/regress/gnu/egcs/libf2c/CVS/Repository create mode 100644 src/regress/gnu/egcs/libf2c/CVS/Root create mode 100644 src/regress/gnu/egcs/libf2c/Makefile create mode 120000 src/regress/gnu/egcs/libf2c/obj create mode 100644 src/regress/gnu/egcs/libiberty/CVS/Entries create mode 100644 src/regress/gnu/egcs/libiberty/CVS/Repository create mode 100644 src/regress/gnu/egcs/libiberty/CVS/Root create mode 100644 src/regress/gnu/egcs/libiberty/Makefile create mode 120000 src/regress/gnu/egcs/libiberty/obj create mode 100644 src/regress/include/CVS/Entries create mode 100644 src/regress/include/CVS/Repository create mode 100644 src/regress/include/CVS/Root create mode 100644 src/regress/include/Makefile create mode 100644 src/regress/include/bitstring/CVS/Entries create mode 100644 src/regress/include/bitstring/CVS/Repository create mode 100644 src/regress/include/bitstring/CVS/Root create mode 100644 src/regress/include/bitstring/Makefile create mode 100644 src/regress/include/bitstring/bitstring_test.c create mode 100644 src/regress/include/bitstring/good/27 create mode 100644 src/regress/include/bitstring/good/32 create mode 100644 src/regress/include/bitstring/good/49 create mode 100644 src/regress/include/bitstring/good/64 create mode 100644 src/regress/include/bitstring/good/67 create mode 100644 src/regress/include/bitstring/good/8 create mode 100644 src/regress/include/bitstring/good/CVS/Entries create mode 100644 src/regress/include/bitstring/good/CVS/Repository create mode 100644 src/regress/include/bitstring/good/CVS/Root create mode 120000 src/regress/include/bitstring/obj create mode 100644 src/regress/lib/CVS/Entries create mode 100644 src/regress/lib/CVS/Repository create mode 100644 src/regress/lib/CVS/Root create mode 100644 src/regress/lib/Makefile create mode 100644 src/regress/lib/csu/CVS/Entries create mode 100644 src/regress/lib/csu/CVS/Repository create mode 100644 src/regress/lib/csu/CVS/Root create mode 100644 src/regress/lib/csu/Makefile create mode 100644 src/regress/lib/csu/ctors/CVS/Entries create mode 100644 src/regress/lib/csu/ctors/CVS/Repository create mode 100644 src/regress/lib/csu/ctors/CVS/Root create mode 100644 src/regress/lib/csu/ctors/Makefile create mode 100644 src/regress/lib/csu/ctors/ctors.c create mode 120000 src/regress/lib/csu/ctors/obj create mode 100644 src/regress/lib/csu/dtors/CVS/Entries create mode 100644 src/regress/lib/csu/dtors/CVS/Repository create mode 100644 src/regress/lib/csu/dtors/CVS/Root create mode 100644 src/regress/lib/csu/dtors/Makefile create mode 100644 src/regress/lib/csu/dtors/dtors.c create mode 120000 src/regress/lib/csu/dtors/obj create mode 100644 src/regress/lib/libc/CVS/Entries create mode 100644 src/regress/lib/libc/CVS/Repository create mode 100644 src/regress/lib/libc/CVS/Root create mode 100644 src/regress/lib/libc/Makefile create mode 100644 src/regress/lib/libc/_setjmp/CVS/Entries create mode 100644 src/regress/lib/libc/_setjmp/CVS/Repository create mode 100644 src/regress/lib/libc/_setjmp/CVS/Root create mode 100644 src/regress/lib/libc/_setjmp/Makefile create mode 120000 src/regress/lib/libc/_setjmp/obj create mode 100644 src/regress/lib/libc/alloca/CVS/Entries create mode 100644 src/regress/lib/libc/alloca/CVS/Repository create mode 100644 src/regress/lib/libc/alloca/CVS/Root create mode 100644 src/regress/lib/libc/alloca/Makefile create mode 100644 src/regress/lib/libc/alloca/alloca.c create mode 120000 src/regress/lib/libc/alloca/obj create mode 100644 src/regress/lib/libc/arch/CVS/Entries create mode 100644 src/regress/lib/libc/arch/CVS/Repository create mode 100644 src/regress/lib/libc/arch/CVS/Root create mode 100644 src/regress/lib/libc/arch/alpha/CVS/Entries create mode 100644 src/regress/lib/libc/arch/alpha/CVS/Repository create mode 100644 src/regress/lib/libc/arch/alpha/CVS/Root create mode 100644 src/regress/lib/libc/arch/alpha/Makefile create mode 100644 src/regress/lib/libc/arch/alpha/divremtest/CVS/Entries create mode 100644 src/regress/lib/libc/arch/alpha/divremtest/CVS/Repository create mode 100644 src/regress/lib/libc/arch/alpha/divremtest/CVS/Root create mode 100644 src/regress/lib/libc/arch/alpha/divremtest/Makefile create mode 100644 src/regress/lib/libc/arch/alpha/divremtest/divremtest.c create mode 100644 src/regress/lib/libc/arch/alpha/divremtest/mkcases.c create mode 100644 src/regress/lib/libc/arch/alpha/divremtest/mktestcases.c create mode 100644 src/regress/lib/libc/atexit/CVS/Entries create mode 100644 src/regress/lib/libc/atexit/CVS/Repository create mode 100644 src/regress/lib/libc/atexit/CVS/Root create mode 100644 src/regress/lib/libc/atexit/Makefile create mode 100644 src/regress/lib/libc/atexit/atexit_test.c create mode 100644 src/regress/lib/libc/atexit/invalid.ok create mode 120000 src/regress/lib/libc/atexit/obj create mode 100644 src/regress/lib/libc/atexit/valid.ok create mode 100644 src/regress/lib/libc/basename/CVS/Entries create mode 100644 src/regress/lib/libc/basename/CVS/Repository create mode 100644 src/regress/lib/libc/basename/CVS/Root create mode 100644 src/regress/lib/libc/basename/Makefile create mode 100644 src/regress/lib/libc/basename/basename_test.c create mode 120000 src/regress/lib/libc/basename/obj create mode 100644 src/regress/lib/libc/cxa-atexit/CVS/Entries create mode 100644 src/regress/lib/libc/cxa-atexit/CVS/Repository create mode 100644 src/regress/lib/libc/cxa-atexit/CVS/Root create mode 100644 src/regress/lib/libc/cxa-atexit/Makefile create mode 100644 src/regress/lib/libc/cxa-atexit/libgd1/CVS/Entries create mode 100644 src/regress/lib/libc/cxa-atexit/libgd1/CVS/Repository create mode 100644 src/regress/lib/libc/cxa-atexit/libgd1/CVS/Root create mode 100644 src/regress/lib/libc/cxa-atexit/libgd1/Makefile create mode 100644 src/regress/lib/libc/cxa-atexit/libgd1/gd1.C create mode 120000 src/regress/lib/libc/cxa-atexit/libgd1/obj create mode 100644 src/regress/lib/libc/cxa-atexit/libgd1/shlib_version create mode 100644 src/regress/lib/libc/cxa-atexit/libgd2/CVS/Entries create mode 100644 src/regress/lib/libc/cxa-atexit/libgd2/CVS/Repository create mode 100644 src/regress/lib/libc/cxa-atexit/libgd2/CVS/Root create mode 100644 src/regress/lib/libc/cxa-atexit/libgd2/Makefile create mode 100644 src/regress/lib/libc/cxa-atexit/libgd2/gd2.C create mode 120000 src/regress/lib/libc/cxa-atexit/libgd2/obj create mode 100644 src/regress/lib/libc/cxa-atexit/libgd2/shlib_version create mode 100644 src/regress/lib/libc/cxa-atexit/test1/CVS/Entries create mode 100644 src/regress/lib/libc/cxa-atexit/test1/CVS/Repository create mode 100644 src/regress/lib/libc/cxa-atexit/test1/CVS/Root create mode 100644 src/regress/lib/libc/cxa-atexit/test1/Makefile create mode 120000 src/regress/lib/libc/cxa-atexit/test1/obj create mode 100644 src/regress/lib/libc/cxa-atexit/test1/test1.C create mode 100644 src/regress/lib/libc/db/CVS/Entries create mode 100644 src/regress/lib/libc/db/CVS/Repository create mode 100644 src/regress/lib/libc/db/CVS/Root create mode 100644 src/regress/lib/libc/db/Makefile create mode 100644 src/regress/lib/libc/db/README create mode 100644 src/regress/lib/libc/db/dbtest.c create mode 120000 src/regress/lib/libc/db/obj create mode 100644 src/regress/lib/libc/db/run.test create mode 100644 src/regress/lib/libc/dirname/CVS/Entries create mode 100644 src/regress/lib/libc/dirname/CVS/Repository create mode 100644 src/regress/lib/libc/dirname/CVS/Root create mode 100644 src/regress/lib/libc/dirname/Makefile create mode 100644 src/regress/lib/libc/dirname/dirname_test.c create mode 120000 src/regress/lib/libc/dirname/obj create mode 100644 src/regress/lib/libc/fnmatch/CVS/Entries create mode 100644 src/regress/lib/libc/fnmatch/CVS/Repository create mode 100644 src/regress/lib/libc/fnmatch/CVS/Root create mode 100644 src/regress/lib/libc/fnmatch/Makefile create mode 100644 src/regress/lib/libc/fnmatch/fnm_test.c create mode 100644 src/regress/lib/libc/fnmatch/fnm_test.in create mode 120000 src/regress/lib/libc/fnmatch/obj create mode 100644 src/regress/lib/libc/fpclassify/CVS/Entries create mode 100644 src/regress/lib/libc/fpclassify/CVS/Repository create mode 100644 src/regress/lib/libc/fpclassify/CVS/Root create mode 100644 src/regress/lib/libc/fpclassify/Makefile create mode 100644 src/regress/lib/libc/fpclassify/fpclassify.c create mode 120000 src/regress/lib/libc/fpclassify/obj create mode 100644 src/regress/lib/libc/getaddrinfo/CVS/Entries create mode 100644 src/regress/lib/libc/getaddrinfo/CVS/Repository create mode 100644 src/regress/lib/libc/getaddrinfo/CVS/Root create mode 100644 src/regress/lib/libc/getaddrinfo/Makefile create mode 100644 src/regress/lib/libc/getaddrinfo/answer create mode 100644 src/regress/lib/libc/getaddrinfo/gaitest.c create mode 120000 src/regress/lib/libc/getaddrinfo/obj create mode 100644 src/regress/lib/libc/getaddrinfo/testsuite.sh create mode 100644 src/regress/lib/libc/getcap/CVS/Entries create mode 100644 src/regress/lib/libc/getcap/CVS/Repository create mode 100644 src/regress/lib/libc/getcap/CVS/Root create mode 100644 src/regress/lib/libc/getcap/Makefile create mode 100644 src/regress/lib/libc/getcap/getcaptest.c create mode 120000 src/regress/lib/libc/getcap/obj create mode 100644 src/regress/lib/libc/getcap/shortcap.in create mode 100644 src/regress/lib/libc/getopt_long/CVS/Entries create mode 100644 src/regress/lib/libc/getopt_long/CVS/Repository create mode 100644 src/regress/lib/libc/getopt_long/CVS/Root create mode 100644 src/regress/lib/libc/getopt_long/Makefile create mode 100644 src/regress/lib/libc/getopt_long/getopt_long_test.c create mode 120000 src/regress/lib/libc/getopt_long/obj create mode 100644 src/regress/lib/libc/getopt_long/test.ok create mode 100644 src/regress/lib/libc/glob/CVS/Entries create mode 100644 src/regress/lib/libc/glob/CVS/Repository create mode 100644 src/regress/lib/libc/glob/CVS/Root create mode 100644 src/regress/lib/libc/glob/Makefile create mode 100644 src/regress/lib/libc/glob/files create mode 100644 src/regress/lib/libc/glob/globtest.c create mode 100644 src/regress/lib/libc/glob/globtest.in create mode 120000 src/regress/lib/libc/glob/obj create mode 100644 src/regress/lib/libc/hsearch/CVS/Entries create mode 100644 src/regress/lib/libc/hsearch/CVS/Repository create mode 100644 src/regress/lib/libc/hsearch/CVS/Root create mode 100644 src/regress/lib/libc/hsearch/Makefile create mode 100644 src/regress/lib/libc/hsearch/hsearchtest.c create mode 120000 src/regress/lib/libc/hsearch/obj create mode 100644 src/regress/lib/libc/ieeefp/CVS/Entries create mode 100644 src/regress/lib/libc/ieeefp/CVS/Repository create mode 100644 src/regress/lib/libc/ieeefp/CVS/Root create mode 100644 src/regress/lib/libc/ieeefp/Makefile create mode 100644 src/regress/lib/libc/ieeefp/except/CVS/Entries create mode 100644 src/regress/lib/libc/ieeefp/except/CVS/Repository create mode 100644 src/regress/lib/libc/ieeefp/except/CVS/Root create mode 100644 src/regress/lib/libc/ieeefp/except/Makefile create mode 100644 src/regress/lib/libc/ieeefp/except/except.c create mode 120000 src/regress/lib/libc/ieeefp/except/obj create mode 100644 src/regress/lib/libc/ieeefp/inf/CVS/Entries create mode 100644 src/regress/lib/libc/ieeefp/inf/CVS/Repository create mode 100644 src/regress/lib/libc/ieeefp/inf/CVS/Root create mode 100644 src/regress/lib/libc/ieeefp/inf/Makefile create mode 100644 src/regress/lib/libc/ieeefp/inf/inf.c create mode 120000 src/regress/lib/libc/ieeefp/inf/obj create mode 100644 src/regress/lib/libc/ieeefp/infinity/CVS/Entries create mode 100644 src/regress/lib/libc/ieeefp/infinity/CVS/Repository create mode 100644 src/regress/lib/libc/ieeefp/infinity/CVS/Root create mode 100644 src/regress/lib/libc/ieeefp/infinity/Makefile create mode 100644 src/regress/lib/libc/ieeefp/infinity/infinity.c create mode 120000 src/regress/lib/libc/ieeefp/infinity/obj create mode 100644 src/regress/lib/libc/ieeefp/round/CVS/Entries create mode 100644 src/regress/lib/libc/ieeefp/round/CVS/Repository create mode 100644 src/regress/lib/libc/ieeefp/round/CVS/Root create mode 100644 src/regress/lib/libc/ieeefp/round/Makefile create mode 120000 src/regress/lib/libc/ieeefp/round/obj create mode 100644 src/regress/lib/libc/ieeefp/round/round.c create mode 100644 src/regress/lib/libc/locale/CVS/Entries create mode 100644 src/regress/lib/libc/locale/CVS/Repository create mode 100644 src/regress/lib/libc/locale/CVS/Root create mode 100644 src/regress/lib/libc/locale/Makefile create mode 100644 src/regress/lib/libc/locale/check_isw/CVS/Entries create mode 100644 src/regress/lib/libc/locale/check_isw/CVS/Repository create mode 100644 src/regress/lib/libc/locale/check_isw/CVS/Root create mode 100644 src/regress/lib/libc/locale/check_isw/Makefile create mode 100644 src/regress/lib/libc/locale/check_isw/check_isw.c create mode 120000 src/regress/lib/libc/locale/check_isw/obj create mode 100644 src/regress/lib/libc/longjmp/CVS/Entries create mode 100644 src/regress/lib/libc/longjmp/CVS/Repository create mode 100644 src/regress/lib/libc/longjmp/CVS/Root create mode 100644 src/regress/lib/libc/longjmp/Makefile create mode 100644 src/regress/lib/libc/longjmp/longjmp.c create mode 120000 src/regress/lib/libc/longjmp/obj create mode 100644 src/regress/lib/libc/malloc/CVS/Entries create mode 100644 src/regress/lib/libc/malloc/CVS/Repository create mode 100644 src/regress/lib/libc/malloc/CVS/Root create mode 100644 src/regress/lib/libc/malloc/Makefile create mode 100644 src/regress/lib/libc/malloc/malloc0test/CVS/Entries create mode 100644 src/regress/lib/libc/malloc/malloc0test/CVS/Repository create mode 100644 src/regress/lib/libc/malloc/malloc0test/CVS/Root create mode 100644 src/regress/lib/libc/malloc/malloc0test/Makefile create mode 100644 src/regress/lib/libc/malloc/malloc0test/malloc0test.c create mode 120000 src/regress/lib/libc/malloc/malloc0test/obj create mode 100644 src/regress/lib/libc/malloc/malloc_errno/CVS/Entries create mode 100644 src/regress/lib/libc/malloc/malloc_errno/CVS/Repository create mode 100644 src/regress/lib/libc/malloc/malloc_errno/CVS/Root create mode 100644 src/regress/lib/libc/malloc/malloc_errno/Makefile create mode 100644 src/regress/lib/libc/malloc/malloc_errno/malloc_errno.c create mode 120000 src/regress/lib/libc/malloc/malloc_errno/obj create mode 100644 src/regress/lib/libc/malloc/malloc_ulimit1/CVS/Entries create mode 100644 src/regress/lib/libc/malloc/malloc_ulimit1/CVS/Repository create mode 100644 src/regress/lib/libc/malloc/malloc_ulimit1/CVS/Root create mode 100644 src/regress/lib/libc/malloc/malloc_ulimit1/Makefile create mode 100644 src/regress/lib/libc/malloc/malloc_ulimit1/malloc_ulimit1.c create mode 120000 src/regress/lib/libc/malloc/malloc_ulimit1/obj create mode 100644 src/regress/lib/libc/malloc/malloc_ulimit2/CVS/Entries create mode 100644 src/regress/lib/libc/malloc/malloc_ulimit2/CVS/Repository create mode 100644 src/regress/lib/libc/malloc/malloc_ulimit2/CVS/Root create mode 100644 src/regress/lib/libc/malloc/malloc_ulimit2/Makefile create mode 100644 src/regress/lib/libc/malloc/malloc_ulimit2/malloc_ulimit2.c create mode 120000 src/regress/lib/libc/malloc/malloc_ulimit2/obj create mode 100644 src/regress/lib/libc/mkstemp/CVS/Entries create mode 100644 src/regress/lib/libc/mkstemp/CVS/Repository create mode 100644 src/regress/lib/libc/mkstemp/CVS/Root create mode 100644 src/regress/lib/libc/mkstemp/Makefile create mode 100644 src/regress/lib/libc/mkstemp/mkstemp_test.c create mode 100644 src/regress/lib/libc/netdb/CVS/Entries create mode 100644 src/regress/lib/libc/netdb/CVS/Repository create mode 100644 src/regress/lib/libc/netdb/CVS/Root create mode 100644 src/regress/lib/libc/netdb/Makefile create mode 100644 src/regress/lib/libc/netdb/netdb.c create mode 120000 src/regress/lib/libc/netdb/obj create mode 100644 src/regress/lib/libc/orientation/CVS/Entries create mode 100644 src/regress/lib/libc/orientation/CVS/Repository create mode 100644 src/regress/lib/libc/orientation/CVS/Root create mode 100644 src/regress/lib/libc/orientation/Makefile create mode 120000 src/regress/lib/libc/orientation/obj create mode 100644 src/regress/lib/libc/orientation/orientation_test.c create mode 100644 src/regress/lib/libc/popen/CVS/Entries create mode 100644 src/regress/lib/libc/popen/CVS/Repository create mode 100644 src/regress/lib/libc/popen/CVS/Root create mode 100644 src/regress/lib/libc/popen/Makefile create mode 120000 src/regress/lib/libc/popen/obj create mode 100644 src/regress/lib/libc/popen/popen.c create mode 100644 src/regress/lib/libc/printf/CVS/Entries create mode 100644 src/regress/lib/libc/printf/CVS/Repository create mode 100644 src/regress/lib/libc/printf/CVS/Root create mode 100644 src/regress/lib/libc/printf/Makefile create mode 100644 src/regress/lib/libc/printf/fp.c create mode 120000 src/regress/lib/libc/printf/obj create mode 100644 src/regress/lib/libc/regex/CVS/Entries create mode 100644 src/regress/lib/libc/regex/CVS/Repository create mode 100644 src/regress/lib/libc/regex/CVS/Root create mode 100644 src/regress/lib/libc/regex/Makefile create mode 100644 src/regress/lib/libc/regex/debug.c create mode 100644 src/regress/lib/libc/regex/debug.ih create mode 100644 src/regress/lib/libc/regex/main.c create mode 100644 src/regress/lib/libc/regex/main.ih create mode 120000 src/regress/lib/libc/regex/obj create mode 100644 src/regress/lib/libc/regex/split.c create mode 100644 src/regress/lib/libc/regex/tests create mode 100644 src/regress/lib/libc/setjmp-signal/CVS/Entries create mode 100644 src/regress/lib/libc/setjmp-signal/CVS/Repository create mode 100644 src/regress/lib/libc/setjmp-signal/CVS/Root create mode 100644 src/regress/lib/libc/setjmp-signal/Makefile create mode 120000 src/regress/lib/libc/setjmp-signal/obj create mode 100644 src/regress/lib/libc/setjmp-signal/setjmp-signal.c create mode 100644 src/regress/lib/libc/setjmp/CVS/Entries create mode 100644 src/regress/lib/libc/setjmp/CVS/Repository create mode 100644 src/regress/lib/libc/setjmp/CVS/Root create mode 100644 src/regress/lib/libc/setjmp/Makefile create mode 100644 src/regress/lib/libc/setjmp/jmptest.c create mode 120000 src/regress/lib/libc/setjmp/obj create mode 100644 src/regress/lib/libc/sigreturn/CVS/Entries create mode 100644 src/regress/lib/libc/sigreturn/CVS/Repository create mode 100644 src/regress/lib/libc/sigreturn/CVS/Root create mode 100644 src/regress/lib/libc/sigreturn/Makefile create mode 120000 src/regress/lib/libc/sigreturn/obj create mode 100644 src/regress/lib/libc/sigreturn/sigret.c create mode 100644 src/regress/lib/libc/sigsetjmp/CVS/Entries create mode 100644 src/regress/lib/libc/sigsetjmp/CVS/Repository create mode 100644 src/regress/lib/libc/sigsetjmp/CVS/Root create mode 100644 src/regress/lib/libc/sigsetjmp/Makefile create mode 120000 src/regress/lib/libc/sigsetjmp/obj create mode 100644 src/regress/lib/libc/sleep/CVS/Entries create mode 100644 src/regress/lib/libc/sleep/CVS/Repository create mode 100644 src/regress/lib/libc/sleep/CVS/Root create mode 100644 src/regress/lib/libc/sleep/Makefile create mode 100644 src/regress/lib/libc/sleep/sleep_test.c create mode 100644 src/regress/lib/libc/sprintf/CVS/Entries create mode 100644 src/regress/lib/libc/sprintf/CVS/Repository create mode 100644 src/regress/lib/libc/sprintf/CVS/Root create mode 100644 src/regress/lib/libc/sprintf/Makefile create mode 120000 src/regress/lib/libc/sprintf/obj create mode 100644 src/regress/lib/libc/sprintf/sprintf_test.c create mode 100644 src/regress/lib/libc/stdio_threading/CVS/Entries create mode 100644 src/regress/lib/libc/stdio_threading/CVS/Repository create mode 100644 src/regress/lib/libc/stdio_threading/CVS/Root create mode 100644 src/regress/lib/libc/stdio_threading/Makefile create mode 100644 src/regress/lib/libc/stdio_threading/fgetln/CVS/Entries create mode 100644 src/regress/lib/libc/stdio_threading/fgetln/CVS/Repository create mode 100644 src/regress/lib/libc/stdio_threading/fgetln/CVS/Root create mode 100644 src/regress/lib/libc/stdio_threading/fgetln/Makefile create mode 100755 src/regress/lib/libc/stdio_threading/fgetln/fgetln_test.c create mode 120000 src/regress/lib/libc/stdio_threading/fgetln/obj create mode 100644 src/regress/lib/libc/stdio_threading/fgets/CVS/Entries create mode 100644 src/regress/lib/libc/stdio_threading/fgets/CVS/Repository create mode 100644 src/regress/lib/libc/stdio_threading/fgets/CVS/Root create mode 100644 src/regress/lib/libc/stdio_threading/fgets/Makefile create mode 100755 src/regress/lib/libc/stdio_threading/fgets/fgets_test.c create mode 120000 src/regress/lib/libc/stdio_threading/fgets/obj create mode 100644 src/regress/lib/libc/stdio_threading/fopen/CVS/Entries create mode 100644 src/regress/lib/libc/stdio_threading/fopen/CVS/Repository create mode 100644 src/regress/lib/libc/stdio_threading/fopen/CVS/Root create mode 100644 src/regress/lib/libc/stdio_threading/fopen/Makefile create mode 100755 src/regress/lib/libc/stdio_threading/fopen/fopen_test.c create mode 120000 src/regress/lib/libc/stdio_threading/fopen/obj create mode 100644 src/regress/lib/libc/stdio_threading/fputs/CVS/Entries create mode 100644 src/regress/lib/libc/stdio_threading/fputs/CVS/Repository create mode 100644 src/regress/lib/libc/stdio_threading/fputs/CVS/Root create mode 100644 src/regress/lib/libc/stdio_threading/fputs/Makefile create mode 100755 src/regress/lib/libc/stdio_threading/fputs/fputs_test.c create mode 120000 src/regress/lib/libc/stdio_threading/fputs/obj create mode 100644 src/regress/lib/libc/stdio_threading/fread/CVS/Entries create mode 100644 src/regress/lib/libc/stdio_threading/fread/CVS/Repository create mode 100644 src/regress/lib/libc/stdio_threading/fread/CVS/Root create mode 100644 src/regress/lib/libc/stdio_threading/fread/Makefile create mode 100755 src/regress/lib/libc/stdio_threading/fread/fread_test.c create mode 120000 src/regress/lib/libc/stdio_threading/fread/obj create mode 100644 src/regress/lib/libc/stdio_threading/fwrite/CVS/Entries create mode 100644 src/regress/lib/libc/stdio_threading/fwrite/CVS/Repository create mode 100644 src/regress/lib/libc/stdio_threading/fwrite/CVS/Root create mode 100644 src/regress/lib/libc/stdio_threading/fwrite/Makefile create mode 100755 src/regress/lib/libc/stdio_threading/fwrite/fwrite_test.c create mode 120000 src/regress/lib/libc/stdio_threading/fwrite/obj create mode 100644 src/regress/lib/libc/stdio_threading/include/CVS/Entries create mode 100644 src/regress/lib/libc/stdio_threading/include/CVS/Repository create mode 100644 src/regress/lib/libc/stdio_threading/include/CVS/Root create mode 100644 src/regress/lib/libc/stdio_threading/include/local.h create mode 100644 src/regress/lib/libc/strerror/CVS/Entries create mode 100644 src/regress/lib/libc/strerror/CVS/Repository create mode 100644 src/regress/lib/libc/strerror/CVS/Root create mode 100644 src/regress/lib/libc/strerror/Makefile create mode 120000 src/regress/lib/libc/strerror/obj create mode 100644 src/regress/lib/libc/strerror/strerror_test.c create mode 100644 src/regress/lib/libc/strerror/valid.ok create mode 100644 src/regress/lib/libc/strnlen/CVS/Entries create mode 100644 src/regress/lib/libc/strnlen/CVS/Repository create mode 100644 src/regress/lib/libc/strnlen/CVS/Root create mode 100644 src/regress/lib/libc/strnlen/Makefile create mode 100644 src/regress/lib/libc/strnlen/strnlentest.c create mode 100644 src/regress/lib/libc/strtod/CVS/Entries create mode 100644 src/regress/lib/libc/strtod/CVS/Repository create mode 100644 src/regress/lib/libc/strtod/CVS/Root create mode 100644 src/regress/lib/libc/strtod/Makefile create mode 120000 src/regress/lib/libc/strtod/obj create mode 100644 src/regress/lib/libc/strtod/strtodtest.c create mode 100644 src/regress/lib/libc/strtonum/CVS/Entries create mode 100644 src/regress/lib/libc/strtonum/CVS/Repository create mode 100644 src/regress/lib/libc/strtonum/CVS/Root create mode 100644 src/regress/lib/libc/strtonum/Makefile create mode 120000 src/regress/lib/libc/strtonum/obj create mode 100644 src/regress/lib/libc/strtonum/strtonumtest.c create mode 100644 src/regress/lib/libc/telldir/CVS/Entries create mode 100644 src/regress/lib/libc/telldir/CVS/Repository create mode 100644 src/regress/lib/libc/telldir/CVS/Root create mode 100644 src/regress/lib/libc/telldir/Makefile create mode 120000 src/regress/lib/libc/telldir/obj create mode 100644 src/regress/lib/libc/telldir/telldir.c create mode 100644 src/regress/lib/libc/time/CVS/Entries create mode 100644 src/regress/lib/libc/time/CVS/Repository create mode 100644 src/regress/lib/libc/time/CVS/Root create mode 100644 src/regress/lib/libc/time/Makefile create mode 100644 src/regress/lib/libc/time/strptime/CVS/Entries create mode 100644 src/regress/lib/libc/time/strptime/CVS/Repository create mode 100644 src/regress/lib/libc/time/strptime/CVS/Root create mode 100644 src/regress/lib/libc/time/strptime/Makefile create mode 100644 src/regress/lib/libc/time/strptime/expected create mode 100644 src/regress/lib/libc/time/strptime/main.c create mode 120000 src/regress/lib/libc/time/strptime/obj create mode 100644 src/regress/lib/libc/time/strptime/tests create mode 100644 src/regress/lib/libc/vis/CVS/Entries create mode 100644 src/regress/lib/libc/vis/CVS/Repository create mode 100644 src/regress/lib/libc/vis/CVS/Root create mode 100644 src/regress/lib/libc/vis/Makefile create mode 120000 src/regress/lib/libc/vis/obj create mode 100644 src/regress/lib/libc/vis/valid.ok create mode 100644 src/regress/lib/libc/vis/vis_test.c create mode 100644 src/regress/lib/libevent/CVS/Entries create mode 100644 src/regress/lib/libevent/CVS/Repository create mode 100644 src/regress/lib/libevent/CVS/Root create mode 100644 src/regress/lib/libevent/Makefile create mode 100644 src/regress/lib/libevent/event_regress.c create mode 120000 src/regress/lib/libevent/obj create mode 100644 src/regress/lib/libevent/test-eof.c create mode 100644 src/regress/lib/libevent/test-init.c create mode 100644 src/regress/lib/libevent/test-time.c create mode 100644 src/regress/lib/libevent/test-weof.c create mode 100644 src/regress/lib/libm/CVS/Entries create mode 100644 src/regress/lib/libm/CVS/Repository create mode 100644 src/regress/lib/libm/CVS/Root create mode 100644 src/regress/lib/libm/Makefile create mode 100644 src/regress/lib/libm/exp/CVS/Entries create mode 100644 src/regress/lib/libm/exp/CVS/Repository create mode 100644 src/regress/lib/libm/exp/CVS/Root create mode 100644 src/regress/lib/libm/exp/Makefile create mode 100644 src/regress/lib/libm/exp/exp.c create mode 120000 src/regress/lib/libm/exp/obj create mode 100644 src/regress/lib/libm/floor/CVS/Entries create mode 100644 src/regress/lib/libm/floor/CVS/Repository create mode 100644 src/regress/lib/libm/floor/CVS/Root create mode 100644 src/regress/lib/libm/floor/Makefile create mode 100644 src/regress/lib/libm/floor/floor.c create mode 120000 src/regress/lib/libm/floor/obj create mode 100644 src/regress/lib/libm/fpaccuracy/CVS/Entries create mode 100644 src/regress/lib/libm/fpaccuracy/CVS/Repository create mode 100644 src/regress/lib/libm/fpaccuracy/CVS/Root create mode 100644 src/regress/lib/libm/fpaccuracy/Gamma.c create mode 100644 src/regress/lib/libm/fpaccuracy/INV.c create mode 100644 src/regress/lib/libm/fpaccuracy/Makefile create mode 100644 src/regress/lib/libm/fpaccuracy/Pix.c create mode 100644 src/regress/lib/libm/fpaccuracy/acos.c create mode 100644 src/regress/lib/libm/fpaccuracy/acosh.c create mode 100644 src/regress/lib/libm/fpaccuracy/asin.c create mode 100644 src/regress/lib/libm/fpaccuracy/asinh.c create mode 100644 src/regress/lib/libm/fpaccuracy/atan.c create mode 100644 src/regress/lib/libm/fpaccuracy/atanh.c create mode 100644 src/regress/lib/libm/fpaccuracy/cos.c create mode 100644 src/regress/lib/libm/fpaccuracy/cosh.c create mode 100644 src/regress/lib/libm/fpaccuracy/erf.c create mode 100644 src/regress/lib/libm/fpaccuracy/erfc.c create mode 100644 src/regress/lib/libm/fpaccuracy/exp.c create mode 100644 src/regress/lib/libm/fpaccuracy/fpaccuracy.c create mode 100644 src/regress/lib/libm/fpaccuracy/fpaccuracy.h create mode 100644 src/regress/lib/libm/fpaccuracy/header.h create mode 100644 src/regress/lib/libm/fpaccuracy/j0.c create mode 100644 src/regress/lib/libm/fpaccuracy/j1.c create mode 100644 src/regress/lib/libm/fpaccuracy/lgamma.c create mode 100644 src/regress/lib/libm/fpaccuracy/log.c create mode 100644 src/regress/lib/libm/fpaccuracy/log10.c create mode 120000 src/regress/lib/libm/fpaccuracy/obj create mode 100644 src/regress/lib/libm/fpaccuracy/pow2_x.c create mode 100644 src/regress/lib/libm/fpaccuracy/powx_275.c create mode 100644 src/regress/lib/libm/fpaccuracy/sin.c create mode 100644 src/regress/lib/libm/fpaccuracy/sinh.c create mode 100644 src/regress/lib/libm/fpaccuracy/sqrt.c create mode 100644 src/regress/lib/libm/fpaccuracy/tan.c create mode 100644 src/regress/lib/libm/fpaccuracy/tanh.c create mode 100644 src/regress/lib/libm/fpaccuracy/trailer.h create mode 100644 src/regress/lib/libm/fpaccuracy/y0.c create mode 100644 src/regress/lib/libm/fpaccuracy/y1.c create mode 100644 src/regress/lib/libm/rint/CVS/Entries create mode 100644 src/regress/lib/libm/rint/CVS/Repository create mode 100644 src/regress/lib/libm/rint/CVS/Root create mode 100644 src/regress/lib/libm/rint/Makefile create mode 120000 src/regress/lib/libm/rint/obj create mode 100644 src/regress/lib/libm/rint/rint.c create mode 100644 src/regress/lib/libm/tgamma/CVS/Entries create mode 100644 src/regress/lib/libm/tgamma/CVS/Repository create mode 100644 src/regress/lib/libm/tgamma/CVS/Root create mode 100644 src/regress/lib/libm/tgamma/Makefile create mode 120000 src/regress/lib/libm/tgamma/obj create mode 100644 src/regress/lib/libm/tgamma/tgamma.c create mode 100644 src/regress/lib/libm/toint/CVS/Entries create mode 100644 src/regress/lib/libm/toint/CVS/Repository create mode 100644 src/regress/lib/libm/toint/CVS/Root create mode 100644 src/regress/lib/libm/toint/Makefile create mode 120000 src/regress/lib/libm/toint/obj create mode 100644 src/regress/lib/libm/toint/toint.c create mode 100644 src/regress/lib/libm/trivial1/CVS/Entries create mode 100644 src/regress/lib/libm/trivial1/CVS/Repository create mode 100644 src/regress/lib/libm/trivial1/CVS/Root create mode 100644 src/regress/lib/libm/trivial1/Makefile create mode 120000 src/regress/lib/libm/trivial1/obj create mode 100644 src/regress/lib/libm/trivial1/test-fp.out create mode 100644 src/regress/lib/libm/trivial1/test-fp.pl create mode 100644 src/regress/lib/libpthread/CVS/Entries create mode 100644 src/regress/lib/libpthread/CVS/Repository create mode 100644 src/regress/lib/libpthread/CVS/Root create mode 100644 src/regress/lib/libpthread/Makefile create mode 100644 src/regress/lib/libpthread/Makefile.inc create mode 100644 src/regress/lib/libpthread/blocked_close/CVS/Entries create mode 100644 src/regress/lib/libpthread/blocked_close/CVS/Repository create mode 100644 src/regress/lib/libpthread/blocked_close/CVS/Root create mode 100644 src/regress/lib/libpthread/blocked_close/Makefile create mode 100644 src/regress/lib/libpthread/blocked_close/blocked_close.c create mode 120000 src/regress/lib/libpthread/blocked_close/obj create mode 100644 src/regress/lib/libpthread/blocked_dup2/CVS/Entries create mode 100644 src/regress/lib/libpthread/blocked_dup2/CVS/Repository create mode 100644 src/regress/lib/libpthread/blocked_dup2/CVS/Root create mode 100644 src/regress/lib/libpthread/blocked_dup2/Makefile create mode 100644 src/regress/lib/libpthread/blocked_dup2/blocked_dup2.c create mode 120000 src/regress/lib/libpthread/blocked_dup2/obj create mode 100644 src/regress/lib/libpthread/blocked_shutdown/CVS/Entries create mode 100644 src/regress/lib/libpthread/blocked_shutdown/CVS/Repository create mode 100644 src/regress/lib/libpthread/blocked_shutdown/CVS/Root create mode 100644 src/regress/lib/libpthread/blocked_shutdown/Makefile create mode 100644 src/regress/lib/libpthread/blocked_shutdown/blocked_shutdown.c create mode 120000 src/regress/lib/libpthread/blocked_shutdown/obj create mode 100644 src/regress/lib/libpthread/cancel/CVS/Entries create mode 100644 src/regress/lib/libpthread/cancel/CVS/Repository create mode 100644 src/regress/lib/libpthread/cancel/CVS/Root create mode 100644 src/regress/lib/libpthread/cancel/Makefile create mode 100644 src/regress/lib/libpthread/cancel/cancel.c create mode 120000 src/regress/lib/libpthread/cancel/obj create mode 100644 src/regress/lib/libpthread/cancel2/CVS/Entries create mode 100644 src/regress/lib/libpthread/cancel2/CVS/Repository create mode 100644 src/regress/lib/libpthread/cancel2/CVS/Root create mode 100644 src/regress/lib/libpthread/cancel2/Makefile create mode 100644 src/regress/lib/libpthread/cancel2/cancel2.c create mode 120000 src/regress/lib/libpthread/cancel2/obj create mode 100644 src/regress/lib/libpthread/close/CVS/Entries create mode 100644 src/regress/lib/libpthread/close/CVS/Repository create mode 100644 src/regress/lib/libpthread/close/CVS/Root create mode 100644 src/regress/lib/libpthread/close/Makefile create mode 100644 src/regress/lib/libpthread/close/close.c create mode 120000 src/regress/lib/libpthread/close/obj create mode 100644 src/regress/lib/libpthread/close_race/CVS/Entries create mode 100644 src/regress/lib/libpthread/close_race/CVS/Repository create mode 100644 src/regress/lib/libpthread/close_race/CVS/Root create mode 100644 src/regress/lib/libpthread/close_race/Makefile create mode 100644 src/regress/lib/libpthread/close_race/close_race.c create mode 120000 src/regress/lib/libpthread/close_race/obj create mode 100644 src/regress/lib/libpthread/closefrom/CVS/Entries create mode 100644 src/regress/lib/libpthread/closefrom/CVS/Repository create mode 100644 src/regress/lib/libpthread/closefrom/CVS/Root create mode 100644 src/regress/lib/libpthread/closefrom/Makefile create mode 100644 src/regress/lib/libpthread/closefrom/closefrom.c create mode 120000 src/regress/lib/libpthread/closefrom/obj create mode 100644 src/regress/lib/libpthread/cwd/CVS/Entries create mode 100644 src/regress/lib/libpthread/cwd/CVS/Repository create mode 100644 src/regress/lib/libpthread/cwd/CVS/Root create mode 100644 src/regress/lib/libpthread/cwd/Makefile create mode 100644 src/regress/lib/libpthread/cwd/cwd.c create mode 120000 src/regress/lib/libpthread/cwd/obj create mode 100644 src/regress/lib/libpthread/dup2_race/CVS/Entries create mode 100644 src/regress/lib/libpthread/dup2_race/CVS/Repository create mode 100644 src/regress/lib/libpthread/dup2_race/CVS/Root create mode 100644 src/regress/lib/libpthread/dup2_race/Makefile create mode 100644 src/regress/lib/libpthread/dup2_race/dup2_race.c create mode 120000 src/regress/lib/libpthread/dup2_race/obj create mode 100644 src/regress/lib/libpthread/execve/CVS/Entries create mode 100644 src/regress/lib/libpthread/execve/CVS/Repository create mode 100644 src/regress/lib/libpthread/execve/CVS/Root create mode 100644 src/regress/lib/libpthread/execve/Makefile create mode 100644 src/regress/lib/libpthread/execve/execve.c create mode 120000 src/regress/lib/libpthread/execve/obj create mode 100644 src/regress/lib/libpthread/fcntl/CVS/Entries create mode 100644 src/regress/lib/libpthread/fcntl/CVS/Repository create mode 100644 src/regress/lib/libpthread/fcntl/CVS/Root create mode 100644 src/regress/lib/libpthread/fcntl/Makefile create mode 100644 src/regress/lib/libpthread/fcntl/fcntl.c create mode 100644 src/regress/lib/libpthread/fork/CVS/Entries create mode 100644 src/regress/lib/libpthread/fork/CVS/Repository create mode 100644 src/regress/lib/libpthread/fork/CVS/Root create mode 100644 src/regress/lib/libpthread/fork/Makefile create mode 100644 src/regress/lib/libpthread/fork/fork.c create mode 120000 src/regress/lib/libpthread/fork/obj create mode 100644 src/regress/lib/libpthread/getaddrinfo/CVS/Entries create mode 100644 src/regress/lib/libpthread/getaddrinfo/CVS/Repository create mode 100644 src/regress/lib/libpthread/getaddrinfo/CVS/Root create mode 100644 src/regress/lib/libpthread/getaddrinfo/Makefile create mode 100644 src/regress/lib/libpthread/getaddrinfo/getaddrinfo.c create mode 100644 src/regress/lib/libpthread/group/CVS/Entries create mode 100644 src/regress/lib/libpthread/group/CVS/Repository create mode 100644 src/regress/lib/libpthread/group/CVS/Root create mode 100644 src/regress/lib/libpthread/group/Makefile create mode 100644 src/regress/lib/libpthread/group/group.c create mode 120000 src/regress/lib/libpthread/group/obj create mode 100644 src/regress/lib/libpthread/include/CVS/Entries create mode 100644 src/regress/lib/libpthread/include/CVS/Repository create mode 100644 src/regress/lib/libpthread/include/CVS/Root create mode 100644 src/regress/lib/libpthread/include/test.h create mode 100644 src/regress/lib/libpthread/malloc_duel/CVS/Entries create mode 100644 src/regress/lib/libpthread/malloc_duel/CVS/Repository create mode 100644 src/regress/lib/libpthread/malloc_duel/CVS/Root create mode 100644 src/regress/lib/libpthread/malloc_duel/Makefile create mode 100644 src/regress/lib/libpthread/malloc_duel/malloc_duel.c create mode 120000 src/regress/lib/libpthread/malloc_duel/obj create mode 100644 src/regress/lib/libpthread/netdb/CVS/Entries create mode 100644 src/regress/lib/libpthread/netdb/CVS/Repository create mode 100644 src/regress/lib/libpthread/netdb/CVS/Root create mode 100644 src/regress/lib/libpthread/netdb/Makefile create mode 100644 src/regress/lib/libpthread/netdb/netdb.c create mode 120000 src/regress/lib/libpthread/netdb/obj create mode 100644 src/regress/lib/libpthread/pause/CVS/Entries create mode 100644 src/regress/lib/libpthread/pause/CVS/Repository create mode 100644 src/regress/lib/libpthread/pause/CVS/Root create mode 100644 src/regress/lib/libpthread/pause/Makefile create mode 100644 src/regress/lib/libpthread/pause/pause.c create mode 100644 src/regress/lib/libpthread/pcap/CVS/Entries create mode 100644 src/regress/lib/libpthread/pcap/CVS/Repository create mode 100644 src/regress/lib/libpthread/pcap/CVS/Root create mode 100644 src/regress/lib/libpthread/pcap/Makefile create mode 120000 src/regress/lib/libpthread/pcap/obj create mode 100644 src/regress/lib/libpthread/pcap/pcap.c create mode 100644 src/regress/lib/libpthread/poll/CVS/Entries create mode 100644 src/regress/lib/libpthread/poll/CVS/Repository create mode 100644 src/regress/lib/libpthread/poll/CVS/Root create mode 100644 src/regress/lib/libpthread/poll/Makefile create mode 120000 src/regress/lib/libpthread/poll/obj create mode 100644 src/regress/lib/libpthread/poll/poll.c create mode 100644 src/regress/lib/libpthread/preemption/CVS/Entries create mode 100644 src/regress/lib/libpthread/preemption/CVS/Repository create mode 100644 src/regress/lib/libpthread/preemption/CVS/Root create mode 100644 src/regress/lib/libpthread/preemption/Makefile create mode 120000 src/regress/lib/libpthread/preemption/obj create mode 100644 src/regress/lib/libpthread/preemption/preemption.c create mode 100644 src/regress/lib/libpthread/preemption_float/CVS/Entries create mode 100644 src/regress/lib/libpthread/preemption_float/CVS/Repository create mode 100644 src/regress/lib/libpthread/preemption_float/CVS/Root create mode 100644 src/regress/lib/libpthread/preemption_float/Makefile create mode 120000 src/regress/lib/libpthread/preemption_float/obj create mode 100644 src/regress/lib/libpthread/preemption_float/preemption_float.c create mode 100644 src/regress/lib/libpthread/pthread_atfork/CVS/Entries create mode 100644 src/regress/lib/libpthread/pthread_atfork/CVS/Repository create mode 100644 src/regress/lib/libpthread/pthread_atfork/CVS/Root create mode 100644 src/regress/lib/libpthread/pthread_atfork/Makefile create mode 120000 src/regress/lib/libpthread/pthread_atfork/obj create mode 100644 src/regress/lib/libpthread/pthread_atfork/pthread_atfork.c create mode 100644 src/regress/lib/libpthread/pthread_cond_timedwait/CVS/Entries create mode 100644 src/regress/lib/libpthread/pthread_cond_timedwait/CVS/Repository create mode 100644 src/regress/lib/libpthread/pthread_cond_timedwait/CVS/Root create mode 100644 src/regress/lib/libpthread/pthread_cond_timedwait/Makefile create mode 120000 src/regress/lib/libpthread/pthread_cond_timedwait/obj create mode 100644 src/regress/lib/libpthread/pthread_cond_timedwait/pthread_cond_timedwait.c create mode 100644 src/regress/lib/libpthread/pthread_create/CVS/Entries create mode 100644 src/regress/lib/libpthread/pthread_create/CVS/Repository create mode 100644 src/regress/lib/libpthread/pthread_create/CVS/Root create mode 100644 src/regress/lib/libpthread/pthread_create/Makefile create mode 120000 src/regress/lib/libpthread/pthread_create/obj create mode 100644 src/regress/lib/libpthread/pthread_create/pthread_create.c create mode 100644 src/regress/lib/libpthread/pthread_join/CVS/Entries create mode 100644 src/regress/lib/libpthread/pthread_join/CVS/Repository create mode 100644 src/regress/lib/libpthread/pthread_join/CVS/Root create mode 100644 src/regress/lib/libpthread/pthread_join/Makefile create mode 120000 src/regress/lib/libpthread/pthread_join/obj create mode 100644 src/regress/lib/libpthread/pthread_join/pthread_join.c create mode 100644 src/regress/lib/libpthread/pthread_kill/CVS/Entries create mode 100644 src/regress/lib/libpthread/pthread_kill/CVS/Repository create mode 100644 src/regress/lib/libpthread/pthread_kill/CVS/Root create mode 100644 src/regress/lib/libpthread/pthread_kill/Makefile create mode 120000 src/regress/lib/libpthread/pthread_kill/obj create mode 100644 src/regress/lib/libpthread/pthread_kill/pthread_kill.c create mode 100644 src/regress/lib/libpthread/pthread_mutex/CVS/Entries create mode 100644 src/regress/lib/libpthread/pthread_mutex/CVS/Repository create mode 100644 src/regress/lib/libpthread/pthread_mutex/CVS/Root create mode 100644 src/regress/lib/libpthread/pthread_mutex/Makefile create mode 120000 src/regress/lib/libpthread/pthread_mutex/obj create mode 100644 src/regress/lib/libpthread/pthread_mutex/pthread_mutex.c create mode 100644 src/regress/lib/libpthread/pthread_specific/CVS/Entries create mode 100644 src/regress/lib/libpthread/pthread_specific/CVS/Repository create mode 100644 src/regress/lib/libpthread/pthread_specific/CVS/Root create mode 100644 src/regress/lib/libpthread/pthread_specific/Makefile create mode 120000 src/regress/lib/libpthread/pthread_specific/obj create mode 100644 src/regress/lib/libpthread/pthread_specific/pthread_specific.c create mode 100644 src/regress/lib/libpthread/pw/CVS/Entries create mode 100644 src/regress/lib/libpthread/pw/CVS/Repository create mode 100644 src/regress/lib/libpthread/pw/CVS/Root create mode 100644 src/regress/lib/libpthread/pw/Makefile create mode 100644 src/regress/lib/libpthread/pw/pw.c create mode 100644 src/regress/lib/libpthread/readdir/CVS/Entries create mode 100644 src/regress/lib/libpthread/readdir/CVS/Repository create mode 100644 src/regress/lib/libpthread/readdir/CVS/Root create mode 100644 src/regress/lib/libpthread/readdir/Makefile create mode 120000 src/regress/lib/libpthread/readdir/obj create mode 100644 src/regress/lib/libpthread/readdir/readdir.c create mode 100644 src/regress/lib/libpthread/select/CVS/Entries create mode 100644 src/regress/lib/libpthread/select/CVS/Repository create mode 100644 src/regress/lib/libpthread/select/CVS/Root create mode 100644 src/regress/lib/libpthread/select/Makefile create mode 120000 src/regress/lib/libpthread/select/obj create mode 100644 src/regress/lib/libpthread/select/select.c create mode 100644 src/regress/lib/libpthread/setjmp/CVS/Entries create mode 100644 src/regress/lib/libpthread/setjmp/CVS/Repository create mode 100644 src/regress/lib/libpthread/setjmp/CVS/Root create mode 100644 src/regress/lib/libpthread/setjmp/Makefile create mode 120000 src/regress/lib/libpthread/setjmp/obj create mode 100644 src/regress/lib/libpthread/setjmp/setjmp.c create mode 100644 src/regress/lib/libpthread/setsockopt/1/CVS/Entries create mode 100644 src/regress/lib/libpthread/setsockopt/1/CVS/Repository create mode 100644 src/regress/lib/libpthread/setsockopt/1/CVS/Root create mode 100644 src/regress/lib/libpthread/setsockopt/1/Makefile create mode 120000 src/regress/lib/libpthread/setsockopt/1/obj create mode 100644 src/regress/lib/libpthread/setsockopt/1/setsockopt1.c create mode 100644 src/regress/lib/libpthread/setsockopt/2/CVS/Entries create mode 100644 src/regress/lib/libpthread/setsockopt/2/CVS/Repository create mode 100644 src/regress/lib/libpthread/setsockopt/2/CVS/Root create mode 100644 src/regress/lib/libpthread/setsockopt/2/Makefile create mode 120000 src/regress/lib/libpthread/setsockopt/2/obj create mode 100644 src/regress/lib/libpthread/setsockopt/2/setsockopt2.c create mode 100644 src/regress/lib/libpthread/setsockopt/3/CVS/Entries create mode 100644 src/regress/lib/libpthread/setsockopt/3/CVS/Repository create mode 100644 src/regress/lib/libpthread/setsockopt/3/CVS/Root create mode 100644 src/regress/lib/libpthread/setsockopt/3/Makefile create mode 120000 src/regress/lib/libpthread/setsockopt/3/obj create mode 100644 src/regress/lib/libpthread/setsockopt/3/setsockopt3.c create mode 100644 src/regress/lib/libpthread/setsockopt/3a/CVS/Entries create mode 100644 src/regress/lib/libpthread/setsockopt/3a/CVS/Repository create mode 100644 src/regress/lib/libpthread/setsockopt/3a/CVS/Root create mode 100644 src/regress/lib/libpthread/setsockopt/3a/Makefile create mode 120000 src/regress/lib/libpthread/setsockopt/3a/obj create mode 100644 src/regress/lib/libpthread/setsockopt/3a/setsockopt3a.c create mode 100644 src/regress/lib/libpthread/setsockopt/CVS/Entries create mode 100644 src/regress/lib/libpthread/setsockopt/CVS/Repository create mode 100644 src/regress/lib/libpthread/setsockopt/CVS/Root create mode 100644 src/regress/lib/libpthread/setsockopt/Makefile create mode 100644 src/regress/lib/libpthread/setsockopt/Makefile.inc create mode 100644 src/regress/lib/libpthread/sigdeliver/CVS/Entries create mode 100644 src/regress/lib/libpthread/sigdeliver/CVS/Repository create mode 100644 src/regress/lib/libpthread/sigdeliver/CVS/Root create mode 100644 src/regress/lib/libpthread/sigdeliver/Makefile create mode 120000 src/regress/lib/libpthread/sigdeliver/obj create mode 100644 src/regress/lib/libpthread/sigdeliver/sigdeliver.c create mode 100644 src/regress/lib/libpthread/siginfo/CVS/Entries create mode 100644 src/regress/lib/libpthread/siginfo/CVS/Repository create mode 100644 src/regress/lib/libpthread/siginfo/CVS/Root create mode 100644 src/regress/lib/libpthread/siginfo/Makefile create mode 120000 src/regress/lib/libpthread/siginfo/obj create mode 100644 src/regress/lib/libpthread/siginfo/siginfo.c create mode 100644 src/regress/lib/libpthread/sigmask/CVS/Entries create mode 100644 src/regress/lib/libpthread/sigmask/CVS/Repository create mode 100644 src/regress/lib/libpthread/sigmask/CVS/Root create mode 100644 src/regress/lib/libpthread/sigmask/Makefile create mode 100644 src/regress/lib/libpthread/sigmask/sigmask.c create mode 100644 src/regress/lib/libpthread/signal/CVS/Entries create mode 100644 src/regress/lib/libpthread/signal/CVS/Repository create mode 100644 src/regress/lib/libpthread/signal/CVS/Root create mode 100644 src/regress/lib/libpthread/signal/Makefile create mode 120000 src/regress/lib/libpthread/signal/obj create mode 100644 src/regress/lib/libpthread/signal/signal.c create mode 100644 src/regress/lib/libpthread/signodefer/CVS/Entries create mode 100644 src/regress/lib/libpthread/signodefer/CVS/Repository create mode 100644 src/regress/lib/libpthread/signodefer/CVS/Root create mode 100644 src/regress/lib/libpthread/signodefer/Makefile create mode 120000 src/regress/lib/libpthread/signodefer/obj create mode 100644 src/regress/lib/libpthread/signodefer/signodefer.c create mode 100644 src/regress/lib/libpthread/sigsuspend/CVS/Entries create mode 100644 src/regress/lib/libpthread/sigsuspend/CVS/Repository create mode 100644 src/regress/lib/libpthread/sigsuspend/CVS/Root create mode 100644 src/regress/lib/libpthread/sigsuspend/Makefile create mode 120000 src/regress/lib/libpthread/sigsuspend/obj create mode 100644 src/regress/lib/libpthread/sigsuspend/sigsuspend.c create mode 100644 src/regress/lib/libpthread/sigwait/CVS/Entries create mode 100644 src/regress/lib/libpthread/sigwait/CVS/Repository create mode 100644 src/regress/lib/libpthread/sigwait/CVS/Root create mode 100644 src/regress/lib/libpthread/sigwait/Makefile create mode 120000 src/regress/lib/libpthread/sigwait/obj create mode 100644 src/regress/lib/libpthread/sigwait/sigwait.c create mode 100644 src/regress/lib/libpthread/sleep/CVS/Entries create mode 100644 src/regress/lib/libpthread/sleep/CVS/Repository create mode 100644 src/regress/lib/libpthread/sleep/CVS/Root create mode 100644 src/regress/lib/libpthread/sleep/Makefile create mode 120000 src/regress/lib/libpthread/sleep/obj create mode 100644 src/regress/lib/libpthread/sleep/sleep.c create mode 100644 src/regress/lib/libpthread/socket/1/CVS/Entries create mode 100644 src/regress/lib/libpthread/socket/1/CVS/Repository create mode 100644 src/regress/lib/libpthread/socket/1/CVS/Root create mode 100644 src/regress/lib/libpthread/socket/1/Makefile create mode 120000 src/regress/lib/libpthread/socket/1/obj create mode 100644 src/regress/lib/libpthread/socket/1/socket1.c create mode 100644 src/regress/lib/libpthread/socket/2/CVS/Entries create mode 100644 src/regress/lib/libpthread/socket/2/CVS/Repository create mode 100644 src/regress/lib/libpthread/socket/2/CVS/Root create mode 100644 src/regress/lib/libpthread/socket/2/Makefile create mode 120000 src/regress/lib/libpthread/socket/2/obj create mode 100644 src/regress/lib/libpthread/socket/2/socket2.c create mode 100644 src/regress/lib/libpthread/socket/2a/CVS/Entries create mode 100644 src/regress/lib/libpthread/socket/2a/CVS/Repository create mode 100644 src/regress/lib/libpthread/socket/2a/CVS/Root create mode 100644 src/regress/lib/libpthread/socket/2a/Makefile create mode 120000 src/regress/lib/libpthread/socket/2a/obj create mode 100644 src/regress/lib/libpthread/socket/2a/socket2a.c create mode 100644 src/regress/lib/libpthread/socket/3/CVS/Entries create mode 100644 src/regress/lib/libpthread/socket/3/CVS/Repository create mode 100644 src/regress/lib/libpthread/socket/3/CVS/Root create mode 100644 src/regress/lib/libpthread/socket/3/Makefile create mode 120000 src/regress/lib/libpthread/socket/3/obj create mode 100644 src/regress/lib/libpthread/socket/3/socket3.c create mode 100644 src/regress/lib/libpthread/socket/CVS/Entries create mode 100644 src/regress/lib/libpthread/socket/CVS/Repository create mode 100644 src/regress/lib/libpthread/socket/CVS/Root create mode 100644 src/regress/lib/libpthread/socket/Makefile create mode 100644 src/regress/lib/libpthread/socket/Makefile.inc create mode 100644 src/regress/lib/libpthread/stdarg/CVS/Entries create mode 100644 src/regress/lib/libpthread/stdarg/CVS/Repository create mode 100644 src/regress/lib/libpthread/stdarg/CVS/Root create mode 100644 src/regress/lib/libpthread/stdarg/Makefile create mode 120000 src/regress/lib/libpthread/stdarg/obj create mode 100644 src/regress/lib/libpthread/stdarg/stdarg.c create mode 100644 src/regress/lib/libpthread/stdfiles/CVS/Entries create mode 100644 src/regress/lib/libpthread/stdfiles/CVS/Repository create mode 100644 src/regress/lib/libpthread/stdfiles/CVS/Root create mode 100644 src/regress/lib/libpthread/stdfiles/Makefile create mode 100644 src/regress/lib/libpthread/stdfiles/stdfiles.c create mode 100644 src/regress/lib/libpthread/stdio/CVS/Entries create mode 100644 src/regress/lib/libpthread/stdio/CVS/Repository create mode 100644 src/regress/lib/libpthread/stdio/CVS/Root create mode 100644 src/regress/lib/libpthread/stdio/Makefile create mode 120000 src/regress/lib/libpthread/stdio/obj create mode 100644 src/regress/lib/libpthread/stdio/stdio.c create mode 100644 src/regress/lib/libpthread/switch/CVS/Entries create mode 100644 src/regress/lib/libpthread/switch/CVS/Repository create mode 100644 src/regress/lib/libpthread/switch/CVS/Root create mode 100644 src/regress/lib/libpthread/switch/Makefile create mode 120000 src/regress/lib/libpthread/switch/obj create mode 100644 src/regress/lib/libpthread/switch/switch.c create mode 100644 src/regress/lib/libpthread/system/CVS/Entries create mode 100644 src/regress/lib/libpthread/system/CVS/Repository create mode 100644 src/regress/lib/libpthread/system/CVS/Root create mode 100644 src/regress/lib/libpthread/system/Makefile create mode 120000 src/regress/lib/libpthread/system/obj create mode 100644 src/regress/lib/libpthread/system/system.c create mode 100644 src/regress/lib/libskey/CVS/Entries create mode 100644 src/regress/lib/libskey/CVS/Repository create mode 100644 src/regress/lib/libskey/CVS/Root create mode 100644 src/regress/lib/libskey/Makefile create mode 120000 src/regress/lib/libskey/obj create mode 100644 src/regress/lib/libskey/skeytest.c create mode 100644 src/regress/lib/libsndio/CVS/Entries create mode 100644 src/regress/lib/libsndio/CVS/Repository create mode 100644 src/regress/lib/libsndio/CVS/Root create mode 100644 src/regress/lib/libsndio/Makefile create mode 100644 src/regress/lib/libsndio/cap/CVS/Entries create mode 100644 src/regress/lib/libsndio/cap/CVS/Repository create mode 100644 src/regress/lib/libsndio/cap/CVS/Root create mode 100644 src/regress/lib/libsndio/cap/Makefile create mode 100644 src/regress/lib/libsndio/cap/cap.c create mode 100644 src/regress/lib/libsndio/fd/CVS/Entries create mode 100644 src/regress/lib/libsndio/fd/CVS/Repository create mode 100644 src/regress/lib/libsndio/fd/CVS/Root create mode 100644 src/regress/lib/libsndio/fd/Makefile create mode 100644 src/regress/lib/libsndio/fd/fd.c create mode 100644 src/regress/lib/libsndio/play/CVS/Entries create mode 100644 src/regress/lib/libsndio/play/CVS/Repository create mode 100644 src/regress/lib/libsndio/play/CVS/Root create mode 100644 src/regress/lib/libsndio/play/Makefile create mode 100644 src/regress/lib/libsndio/play/play.c create mode 100644 src/regress/lib/libsndio/rec/CVS/Entries create mode 100644 src/regress/lib/libsndio/rec/CVS/Repository create mode 100644 src/regress/lib/libsndio/rec/CVS/Root create mode 100644 src/regress/lib/libsndio/rec/Makefile create mode 100644 src/regress/lib/libsndio/rec/rec.c create mode 100644 src/regress/lib/libsndio/vol/CVS/Entries create mode 100644 src/regress/lib/libsndio/vol/CVS/Repository create mode 100644 src/regress/lib/libsndio/vol/CVS/Root create mode 100644 src/regress/lib/libsndio/vol/Makefile create mode 100644 src/regress/lib/libsndio/vol/vol.c create mode 100644 src/regress/lib/libssl/CVS/Entries create mode 100644 src/regress/lib/libssl/CVS/Repository create mode 100644 src/regress/lib/libssl/CVS/Root create mode 100644 src/regress/lib/libssl/Makefile create mode 100644 src/regress/lib/libssl/README create mode 120000 src/regress/lib/libssl/obj create mode 100644 src/regress/lib/libssl/openssl.cnf create mode 100644 src/regress/lib/libssl/test_client.sh create mode 100644 src/regress/lib/libssl/test_server.sh create mode 100644 src/regress/lib/libssl/testdsa.sh create mode 100644 src/regress/lib/libssl/testenc.sh create mode 100644 src/regress/lib/libssl/testrsa.sh create mode 100644 src/regress/lib/libutil/CVS/Entries create mode 100644 src/regress/lib/libutil/CVS/Repository create mode 100644 src/regress/lib/libutil/CVS/Root create mode 100644 src/regress/lib/libutil/Makefile create mode 100644 src/regress/lib/libutil/fmt_scaled/CVS/Entries create mode 100644 src/regress/lib/libutil/fmt_scaled/CVS/Repository create mode 100644 src/regress/lib/libutil/fmt_scaled/CVS/Root create mode 100644 src/regress/lib/libutil/fmt_scaled/Makefile create mode 100644 src/regress/lib/libutil/fmt_scaled/fmt_test.c create mode 120000 src/regress/lib/libutil/fmt_scaled/obj create mode 100644 src/regress/libexec/CVS/Entries create mode 100644 src/regress/libexec/CVS/Repository create mode 100644 src/regress/libexec/CVS/Root create mode 100644 src/regress/libexec/Makefile create mode 100644 src/regress/libexec/ld.so/CVS/Entries create mode 100644 src/regress/libexec/ld.so/CVS/Repository create mode 100644 src/regress/libexec/ld.so/CVS/Root create mode 100644 src/regress/libexec/ld.so/Makefile create mode 100644 src/regress/libexec/ld.so/constructor/CVS/Entries create mode 100644 src/regress/libexec/ld.so/constructor/CVS/Repository create mode 100644 src/regress/libexec/ld.so/constructor/CVS/Root create mode 100644 src/regress/libexec/ld.so/constructor/Makefile create mode 100644 src/regress/libexec/ld.so/constructor/libaa/CVS/Entries create mode 100644 src/regress/libexec/ld.so/constructor/libaa/CVS/Repository create mode 100644 src/regress/libexec/ld.so/constructor/libaa/CVS/Root create mode 100644 src/regress/libexec/ld.so/constructor/libaa/Makefile create mode 100644 src/regress/libexec/ld.so/constructor/libaa/aa.C create mode 100644 src/regress/libexec/ld.so/constructor/libaa/aa.h create mode 100644 src/regress/libexec/ld.so/constructor/libaa/shlib_version create mode 100644 src/regress/libexec/ld.so/constructor/libab/CVS/Entries create mode 100644 src/regress/libexec/ld.so/constructor/libab/CVS/Repository create mode 100644 src/regress/libexec/ld.so/constructor/libab/CVS/Root create mode 100644 src/regress/libexec/ld.so/constructor/libab/Makefile create mode 100644 src/regress/libexec/ld.so/constructor/libab/ab.C create mode 100644 src/regress/libexec/ld.so/constructor/libab/ab.h create mode 100644 src/regress/libexec/ld.so/constructor/libab/shlib_version create mode 100644 src/regress/libexec/ld.so/constructor/prog1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/constructor/prog1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/constructor/prog1/CVS/Root create mode 100644 src/regress/libexec/ld.so/constructor/prog1/Makefile create mode 100644 src/regress/libexec/ld.so/constructor/prog1/prog1.C create mode 100644 src/regress/libexec/ld.so/constructor/prog2/CVS/Entries create mode 100644 src/regress/libexec/ld.so/constructor/prog2/CVS/Repository create mode 100644 src/regress/libexec/ld.so/constructor/prog2/CVS/Root create mode 100644 src/regress/libexec/ld.so/constructor/prog2/Makefile create mode 100644 src/regress/libexec/ld.so/constructor/prog2/prog2.C create mode 100644 src/regress/libexec/ld.so/dlclose/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/Makefile create mode 100644 src/regress/libexec/ld.so/dlclose/test1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/test1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/test1/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/test1/Makefile create mode 100644 src/regress/libexec/ld.so/dlclose/test1/Makefile.inc create mode 100644 src/regress/libexec/ld.so/dlclose/test1/libaa/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/test1/libaa/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/test1/libaa/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/test1/libaa/Makefile create mode 100644 src/regress/libexec/ld.so/dlclose/test1/libaa/aa.c create mode 120000 src/regress/libexec/ld.so/dlclose/test1/libaa/obj create mode 100644 src/regress/libexec/ld.so/dlclose/test1/libaa/shlib_version create mode 100644 src/regress/libexec/ld.so/dlclose/test1/libbb/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/test1/libbb/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/test1/libbb/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/test1/libbb/Makefile create mode 100644 src/regress/libexec/ld.so/dlclose/test1/libbb/bb.c create mode 120000 src/regress/libexec/ld.so/dlclose/test1/libbb/obj create mode 100644 src/regress/libexec/ld.so/dlclose/test1/libbb/shlib_version create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog1/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog1/Makefile create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog1/main.c create mode 120000 src/regress/libexec/ld.so/dlclose/test1/prog1/obj create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog2/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog2/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog2/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog2/Makefile create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog2/main.c create mode 120000 src/regress/libexec/ld.so/dlclose/test1/prog2/obj create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog3/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog3/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog3/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog3/Makefile create mode 100644 src/regress/libexec/ld.so/dlclose/test1/prog3/main.c create mode 120000 src/regress/libexec/ld.so/dlclose/test1/prog3/obj create mode 100644 src/regress/libexec/ld.so/dlclose/test2/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/test2/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/test2/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/test2/Makefile create mode 100644 src/regress/libexec/ld.so/dlclose/test2/Makefile.inc create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libaa/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libaa/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libaa/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libaa/Makefile create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libaa/aa.c create mode 120000 src/regress/libexec/ld.so/dlclose/test2/libaa/obj create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libaa/shlib_version create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libbb/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libbb/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libbb/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libbb/Makefile create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libbb/bb.c create mode 120000 src/regress/libexec/ld.so/dlclose/test2/libbb/obj create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libbb/shlib_version create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libcc/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libcc/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libcc/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libcc/Makefile create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libcc/cc.c create mode 120000 src/regress/libexec/ld.so/dlclose/test2/libcc/obj create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libcc/shlib_version create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libzz/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libzz/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libzz/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libzz/Makefile create mode 120000 src/regress/libexec/ld.so/dlclose/test2/libzz/obj create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libzz/shlib_version create mode 100644 src/regress/libexec/ld.so/dlclose/test2/libzz/zz.c create mode 100644 src/regress/libexec/ld.so/dlclose/test2/prog1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlclose/test2/prog1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlclose/test2/prog1/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlclose/test2/prog1/Makefile create mode 100644 src/regress/libexec/ld.so/dlclose/test2/prog1/main.c create mode 120000 src/regress/libexec/ld.so/dlclose/test2/prog1/obj create mode 100644 src/regress/libexec/ld.so/dlopen/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlopen/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlopen/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlopen/Makefile create mode 100644 src/regress/libexec/ld.so/dlopen/libaa/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlopen/libaa/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlopen/libaa/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlopen/libaa/Makefile create mode 100644 src/regress/libexec/ld.so/dlopen/libaa/aa.C create mode 100644 src/regress/libexec/ld.so/dlopen/libaa/aa.h create mode 120000 src/regress/libexec/ld.so/dlopen/libaa/obj create mode 100644 src/regress/libexec/ld.so/dlopen/libaa/shlib_version create mode 100644 src/regress/libexec/ld.so/dlopen/libab/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlopen/libab/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlopen/libab/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlopen/libab/Makefile create mode 100644 src/regress/libexec/ld.so/dlopen/libab/ab.C create mode 100644 src/regress/libexec/ld.so/dlopen/libab/ab.h create mode 120000 src/regress/libexec/ld.so/dlopen/libab/obj create mode 100644 src/regress/libexec/ld.so/dlopen/libab/shlib_version create mode 100644 src/regress/libexec/ld.so/dlopen/libac/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlopen/libac/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlopen/libac/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlopen/libac/Makefile create mode 100644 src/regress/libexec/ld.so/dlopen/libac/ac.C create mode 100644 src/regress/libexec/ld.so/dlopen/libac/ac.h create mode 120000 src/regress/libexec/ld.so/dlopen/libac/obj create mode 100644 src/regress/libexec/ld.so/dlopen/libac/shlib_version create mode 100644 src/regress/libexec/ld.so/dlopen/prog1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlopen/prog1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlopen/prog1/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlopen/prog1/Makefile create mode 120000 src/regress/libexec/ld.so/dlopen/prog1/obj create mode 100644 src/regress/libexec/ld.so/dlopen/prog1/prog1.C create mode 100644 src/regress/libexec/ld.so/dlopen/prog2/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlopen/prog2/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlopen/prog2/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlopen/prog2/Makefile create mode 120000 src/regress/libexec/ld.so/dlopen/prog2/obj create mode 100644 src/regress/libexec/ld.so/dlopen/prog2/prog2.C create mode 100644 src/regress/libexec/ld.so/dlopen/prog3/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlopen/prog3/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlopen/prog3/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlopen/prog3/Makefile create mode 100644 src/regress/libexec/ld.so/dlopen/prog3/main.c create mode 120000 src/regress/libexec/ld.so/dlopen/prog3/obj create mode 100644 src/regress/libexec/ld.so/dlopen/prog4/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlopen/prog4/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlopen/prog4/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlopen/prog4/Makefile create mode 100644 src/regress/libexec/ld.so/dlopen/prog4/main.c create mode 120000 src/regress/libexec/ld.so/dlopen/prog4/obj create mode 100644 src/regress/libexec/ld.so/dlsym/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test1/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test1/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test1/libaa/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test1/libaa/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test1/libaa/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test1/libaa/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test1/libaa/aa.c create mode 100644 src/regress/libexec/ld.so/dlsym/test1/libaa/aa.h create mode 120000 src/regress/libexec/ld.so/dlsym/test1/libaa/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test1/libaa/shlib_version create mode 100644 src/regress/libexec/ld.so/dlsym/test1/prog1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test1/prog1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test1/prog1/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test1/prog1/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test1/prog1/main.c create mode 120000 src/regress/libexec/ld.so/dlsym/test1/prog1/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test1/prog2/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test1/prog2/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test1/prog2/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test1/prog2/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test1/prog2/main.c create mode 120000 src/regress/libexec/ld.so/dlsym/test1/prog2/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test2/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test2/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test2/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test2/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test2/Makefile.inc create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libaa/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libaa/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libaa/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libaa/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libaa/aa.c create mode 120000 src/regress/libexec/ld.so/dlsym/test2/libaa/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libaa/shlib_version create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libbb/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libbb/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libbb/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libbb/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libbb/bb.c create mode 120000 src/regress/libexec/ld.so/dlsym/test2/libbb/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libbb/shlib_version create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libcc/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libcc/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libcc/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libcc/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libcc/cc.c create mode 120000 src/regress/libexec/ld.so/dlsym/test2/libcc/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test2/libcc/shlib_version create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog1/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog1/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog1/main.c create mode 120000 src/regress/libexec/ld.so/dlsym/test2/prog1/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog2/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog2/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog2/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog2/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog2/main.c create mode 120000 src/regress/libexec/ld.so/dlsym/test2/prog2/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog3/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog3/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog3/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog3/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog3/main.c create mode 120000 src/regress/libexec/ld.so/dlsym/test2/prog3/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog4/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog4/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog4/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog4/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog4/main.c create mode 120000 src/regress/libexec/ld.so/dlsym/test2/prog4/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog5/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog5/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog5/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog5/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test2/prog5/main.c create mode 120000 src/regress/libexec/ld.so/dlsym/test2/prog5/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test3/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test3/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test3/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test3/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test3/Makefile.inc create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libaa/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libaa/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libaa/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libaa/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libaa/aa.c create mode 120000 src/regress/libexec/ld.so/dlsym/test3/libaa/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libaa/shlib_version create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libbb/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libbb/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libbb/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libbb/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libbb/bb.c create mode 120000 src/regress/libexec/ld.so/dlsym/test3/libbb/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libbb/shlib_version create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libcc/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libcc/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libcc/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libcc/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libcc/cc.c create mode 120000 src/regress/libexec/ld.so/dlsym/test3/libcc/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libcc/shlib_version create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libdd/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libdd/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libdd/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libdd/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libdd/dd.c create mode 120000 src/regress/libexec/ld.so/dlsym/test3/libdd/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libdd/shlib_version create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libee/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libee/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libee/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libee/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libee/ee.c create mode 120000 src/regress/libexec/ld.so/dlsym/test3/libee/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test3/libee/shlib_version create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog1/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog1/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog1/main.c create mode 120000 src/regress/libexec/ld.so/dlsym/test3/prog1/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog2/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog2/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog2/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog2/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog2/main.c create mode 120000 src/regress/libexec/ld.so/dlsym/test3/prog2/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog3/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog3/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog3/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog3/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog3/main.c create mode 120000 src/regress/libexec/ld.so/dlsym/test3/prog3/obj create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog4/CVS/Entries create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog4/CVS/Repository create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog4/CVS/Root create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog4/Makefile create mode 100644 src/regress/libexec/ld.so/dlsym/test3/prog4/main.c create mode 120000 src/regress/libexec/ld.so/dlsym/test3/prog4/obj create mode 100644 src/regress/libexec/ld.so/edgecases/CVS/Entries create mode 100644 src/regress/libexec/ld.so/edgecases/CVS/Repository create mode 100644 src/regress/libexec/ld.so/edgecases/CVS/Root create mode 100644 src/regress/libexec/ld.so/edgecases/Makefile create mode 100644 src/regress/libexec/ld.so/edgecases/test1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/edgecases/test1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/edgecases/test1/CVS/Root create mode 100644 src/regress/libexec/ld.so/edgecases/test1/Makefile create mode 100644 src/regress/libexec/ld.so/edgecases/test1/libaa_b/CVS/Entries create mode 100644 src/regress/libexec/ld.so/edgecases/test1/libaa_b/CVS/Repository create mode 100644 src/regress/libexec/ld.so/edgecases/test1/libaa_b/CVS/Root create mode 100644 src/regress/libexec/ld.so/edgecases/test1/libaa_b/Makefile create mode 100644 src/regress/libexec/ld.so/edgecases/test1/libaa_b/aa.c create mode 120000 src/regress/libexec/ld.so/edgecases/test1/libaa_b/obj create mode 100644 src/regress/libexec/ld.so/edgecases/test1/libaa_b/shlib_version create mode 100644 src/regress/libexec/ld.so/edgecases/test1/libaa_g/CVS/Entries create mode 100644 src/regress/libexec/ld.so/edgecases/test1/libaa_g/CVS/Repository create mode 100644 src/regress/libexec/ld.so/edgecases/test1/libaa_g/CVS/Root create mode 100644 src/regress/libexec/ld.so/edgecases/test1/libaa_g/Makefile create mode 100644 src/regress/libexec/ld.so/edgecases/test1/libaa_g/aa.c create mode 120000 src/regress/libexec/ld.so/edgecases/test1/libaa_g/obj create mode 100644 src/regress/libexec/ld.so/edgecases/test1/libaa_g/shlib_version create mode 100644 src/regress/libexec/ld.so/edgecases/test1/prog1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/edgecases/test1/prog1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/edgecases/test1/prog1/CVS/Root create mode 100644 src/regress/libexec/ld.so/edgecases/test1/prog1/Makefile create mode 100644 src/regress/libexec/ld.so/edgecases/test1/prog1/main.c create mode 120000 src/regress/libexec/ld.so/edgecases/test1/prog1/obj create mode 100644 src/regress/libexec/ld.so/edgecases/test2/CVS/Entries create mode 100644 src/regress/libexec/ld.so/edgecases/test2/CVS/Repository create mode 100644 src/regress/libexec/ld.so/edgecases/test2/CVS/Root create mode 100644 src/regress/libexec/ld.so/edgecases/test2/Makefile create mode 100644 src/regress/libexec/ld.so/edgecases/test2/libaa/CVS/Entries create mode 100644 src/regress/libexec/ld.so/edgecases/test2/libaa/CVS/Repository create mode 100644 src/regress/libexec/ld.so/edgecases/test2/libaa/CVS/Root create mode 100644 src/regress/libexec/ld.so/edgecases/test2/libaa/Makefile create mode 100644 src/regress/libexec/ld.so/edgecases/test2/libaa/aa.c create mode 120000 src/regress/libexec/ld.so/edgecases/test2/libaa/obj create mode 100644 src/regress/libexec/ld.so/edgecases/test2/libaa/shlib_version create mode 100644 src/regress/libexec/ld.so/edgecases/test2/prog1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/edgecases/test2/prog1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/edgecases/test2/prog1/CVS/Root create mode 100644 src/regress/libexec/ld.so/edgecases/test2/prog1/Makefile create mode 100644 src/regress/libexec/ld.so/edgecases/test2/prog1/main.c create mode 120000 src/regress/libexec/ld.so/edgecases/test2/prog1/obj create mode 100644 src/regress/libexec/ld.so/edgecases/test3/CVS/Entries create mode 100644 src/regress/libexec/ld.so/edgecases/test3/CVS/Repository create mode 100644 src/regress/libexec/ld.so/edgecases/test3/CVS/Root create mode 100644 src/regress/libexec/ld.so/edgecases/test3/Makefile create mode 100644 src/regress/libexec/ld.so/edgecases/test3/Makefile.inc create mode 100644 src/regress/libexec/ld.so/edgecases/test3/libaa/CVS/Entries create mode 100644 src/regress/libexec/ld.so/edgecases/test3/libaa/CVS/Repository create mode 100644 src/regress/libexec/ld.so/edgecases/test3/libaa/CVS/Root create mode 100644 src/regress/libexec/ld.so/edgecases/test3/libaa/Makefile create mode 100644 src/regress/libexec/ld.so/edgecases/test3/libaa/aa.c create mode 120000 src/regress/libexec/ld.so/edgecases/test3/libaa/obj create mode 100644 src/regress/libexec/ld.so/edgecases/test3/libaa/shlib_version create mode 100644 src/regress/libexec/ld.so/edgecases/test3/libbb/CVS/Entries create mode 100644 src/regress/libexec/ld.so/edgecases/test3/libbb/CVS/Repository create mode 100644 src/regress/libexec/ld.so/edgecases/test3/libbb/CVS/Root create mode 100644 src/regress/libexec/ld.so/edgecases/test3/libbb/Makefile create mode 100644 src/regress/libexec/ld.so/edgecases/test3/libbb/bb.c create mode 120000 src/regress/libexec/ld.so/edgecases/test3/libbb/obj create mode 100644 src/regress/libexec/ld.so/edgecases/test3/libbb/shlib_version create mode 100644 src/regress/libexec/ld.so/edgecases/test3/prog1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/edgecases/test3/prog1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/edgecases/test3/prog1/CVS/Root create mode 100644 src/regress/libexec/ld.so/edgecases/test3/prog1/Makefile create mode 100644 src/regress/libexec/ld.so/edgecases/test3/prog1/main.c create mode 120000 src/regress/libexec/ld.so/edgecases/test3/prog1/obj create mode 100644 src/regress/libexec/ld.so/elf/CVS/Entries create mode 100644 src/regress/libexec/ld.so/elf/CVS/Repository create mode 100644 src/regress/libexec/ld.so/elf/CVS/Root create mode 100644 src/regress/libexec/ld.so/elf/Makefile create mode 100644 src/regress/libexec/ld.so/elf/elfbug.h create mode 100644 src/regress/libexec/ld.so/elf/foo/CVS/Entries create mode 100644 src/regress/libexec/ld.so/elf/foo/CVS/Repository create mode 100644 src/regress/libexec/ld.so/elf/foo/CVS/Root create mode 100644 src/regress/libexec/ld.so/elf/foo/Makefile create mode 100644 src/regress/libexec/ld.so/elf/foo/main.c create mode 120000 src/regress/libexec/ld.so/elf/foo/obj create mode 100644 src/regress/libexec/ld.so/elf/libbar/CVS/Entries create mode 100644 src/regress/libexec/ld.so/elf/libbar/CVS/Repository create mode 100644 src/regress/libexec/ld.so/elf/libbar/CVS/Root create mode 100644 src/regress/libexec/ld.so/elf/libbar/Makefile create mode 100644 src/regress/libexec/ld.so/elf/libbar/bar.c create mode 120000 src/regress/libexec/ld.so/elf/libbar/obj create mode 100644 src/regress/libexec/ld.so/elf/libbar/shlib_version create mode 100644 src/regress/libexec/ld.so/hidden/CVS/Entries create mode 100644 src/regress/libexec/ld.so/hidden/CVS/Repository create mode 100644 src/regress/libexec/ld.so/hidden/CVS/Root create mode 100644 src/regress/libexec/ld.so/hidden/Makefile create mode 100644 src/regress/libexec/ld.so/hidden/libaa/CVS/Entries create mode 100644 src/regress/libexec/ld.so/hidden/libaa/CVS/Repository create mode 100644 src/regress/libexec/ld.so/hidden/libaa/CVS/Root create mode 100644 src/regress/libexec/ld.so/hidden/libaa/Makefile create mode 100644 src/regress/libexec/ld.so/hidden/libaa/aa.c create mode 120000 src/regress/libexec/ld.so/hidden/libaa/obj create mode 100644 src/regress/libexec/ld.so/hidden/libaa/shlib_version create mode 100644 src/regress/libexec/ld.so/hidden/libab/CVS/Entries create mode 100644 src/regress/libexec/ld.so/hidden/libab/CVS/Repository create mode 100644 src/regress/libexec/ld.so/hidden/libab/CVS/Root create mode 100644 src/regress/libexec/ld.so/hidden/libab/Makefile create mode 100644 src/regress/libexec/ld.so/hidden/libab/ab.c create mode 120000 src/regress/libexec/ld.so/hidden/libab/obj create mode 100644 src/regress/libexec/ld.so/hidden/libab/shlib_version create mode 100644 src/regress/libexec/ld.so/hidden/test1/CVS/Entries create mode 100644 src/regress/libexec/ld.so/hidden/test1/CVS/Repository create mode 100644 src/regress/libexec/ld.so/hidden/test1/CVS/Root create mode 100644 src/regress/libexec/ld.so/hidden/test1/Makefile create mode 120000 src/regress/libexec/ld.so/hidden/test1/obj create mode 100644 src/regress/libexec/ld.so/hidden/test1/test1.c create mode 100644 src/regress/libexec/ld.so/hidden/test2/CVS/Entries create mode 100644 src/regress/libexec/ld.so/hidden/test2/CVS/Repository create mode 100644 src/regress/libexec/ld.so/hidden/test2/CVS/Root create mode 100644 src/regress/libexec/ld.so/hidden/test2/Makefile create mode 120000 src/regress/libexec/ld.so/hidden/test2/obj create mode 100644 src/regress/libexec/ld.so/hidden/test2/test2.c create mode 100644 src/regress/libexec/ld.so/lazy/CVS/Entries create mode 100644 src/regress/libexec/ld.so/lazy/CVS/Repository create mode 100644 src/regress/libexec/ld.so/lazy/CVS/Root create mode 100644 src/regress/libexec/ld.so/lazy/Makefile create mode 100644 src/regress/libexec/ld.so/lazy/libbar/CVS/Entries create mode 100644 src/regress/libexec/ld.so/lazy/libbar/CVS/Repository create mode 100644 src/regress/libexec/ld.so/lazy/libbar/CVS/Root create mode 100644 src/regress/libexec/ld.so/lazy/libbar/Makefile create mode 100644 src/regress/libexec/ld.so/lazy/libbar/bar.c create mode 120000 src/regress/libexec/ld.so/lazy/libbar/obj create mode 100644 src/regress/libexec/ld.so/lazy/libbar/shlib_version create mode 100644 src/regress/libexec/ld.so/lazy/libfoo/CVS/Entries create mode 100644 src/regress/libexec/ld.so/lazy/libfoo/CVS/Repository create mode 100644 src/regress/libexec/ld.so/lazy/libfoo/CVS/Root create mode 100644 src/regress/libexec/ld.so/lazy/libfoo/Makefile create mode 100644 src/regress/libexec/ld.so/lazy/libfoo/foo.c create mode 120000 src/regress/libexec/ld.so/lazy/libfoo/obj create mode 100644 src/regress/libexec/ld.so/lazy/libfoo/shlib_version create mode 100644 src/regress/libexec/ld.so/lazy/prog/CVS/Entries create mode 100644 src/regress/libexec/ld.so/lazy/prog/CVS/Repository create mode 100644 src/regress/libexec/ld.so/lazy/prog/CVS/Root create mode 100644 src/regress/libexec/ld.so/lazy/prog/Makefile create mode 120000 src/regress/libexec/ld.so/lazy/prog/obj create mode 100644 src/regress/libexec/ld.so/lazy/prog/prog.c create mode 100644 src/regress/libexec/ld.so/link-order/CVS/Entries create mode 100644 src/regress/libexec/ld.so/link-order/CVS/Repository create mode 100644 src/regress/libexec/ld.so/link-order/CVS/Root create mode 100644 src/regress/libexec/ld.so/link-order/Makefile create mode 100644 src/regress/libexec/ld.so/link-order/lib10/10.c create mode 100644 src/regress/libexec/ld.so/link-order/lib10/CVS/Entries create mode 100644 src/regress/libexec/ld.so/link-order/lib10/CVS/Repository create mode 100644 src/regress/libexec/ld.so/link-order/lib10/CVS/Root create mode 100644 src/regress/libexec/ld.so/link-order/lib10/Makefile create mode 120000 src/regress/libexec/ld.so/link-order/lib10/obj create mode 100644 src/regress/libexec/ld.so/link-order/lib10/shlib_version create mode 100644 src/regress/libexec/ld.so/link-order/lib11/11.c create mode 100644 src/regress/libexec/ld.so/link-order/lib11/CVS/Entries create mode 100644 src/regress/libexec/ld.so/link-order/lib11/CVS/Repository create mode 100644 src/regress/libexec/ld.so/link-order/lib11/CVS/Root create mode 100644 src/regress/libexec/ld.so/link-order/lib11/Makefile create mode 120000 src/regress/libexec/ld.so/link-order/lib11/obj create mode 100644 src/regress/libexec/ld.so/link-order/lib11/shlib_version create mode 100644 src/regress/libexec/ld.so/link-order/lib20/20.c create mode 100644 src/regress/libexec/ld.so/link-order/lib20/CVS/Entries create mode 100644 src/regress/libexec/ld.so/link-order/lib20/CVS/Repository create mode 100644 src/regress/libexec/ld.so/link-order/lib20/CVS/Root create mode 100644 src/regress/libexec/ld.so/link-order/lib20/Makefile create mode 120000 src/regress/libexec/ld.so/link-order/lib20/obj create mode 100644 src/regress/libexec/ld.so/link-order/lib20/shlib_version create mode 100644 src/regress/libexec/ld.so/link-order/libnover/CVS/Entries create mode 100644 src/regress/libexec/ld.so/link-order/libnover/CVS/Repository create mode 100644 src/regress/libexec/ld.so/link-order/libnover/CVS/Root create mode 100644 src/regress/libexec/ld.so/link-order/libnover/Makefile create mode 100644 src/regress/libexec/ld.so/link-order/libnover/nover.c create mode 120000 src/regress/libexec/ld.so/link-order/libnover/obj create mode 100644 src/regress/libexec/ld.so/link-order/prog/CVS/Entries create mode 100644 src/regress/libexec/ld.so/link-order/prog/CVS/Repository create mode 100644 src/regress/libexec/ld.so/link-order/prog/CVS/Root create mode 100644 src/regress/libexec/ld.so/link-order/prog/Makefile create mode 120000 src/regress/libexec/ld.so/link-order/prog/obj create mode 100644 src/regress/libexec/ld.so/link-order/prog/prog.c create mode 100644 src/regress/libexec/ld.so/link-order/test/CVS/Entries create mode 100644 src/regress/libexec/ld.so/link-order/test/CVS/Repository create mode 100644 src/regress/libexec/ld.so/link-order/test/CVS/Root create mode 100644 src/regress/libexec/ld.so/link-order/test/Makefile create mode 120000 src/regress/libexec/ld.so/link-order/test/obj create mode 100644 src/regress/libexec/ld.so/link-order/test/test.sh create mode 100644 src/regress/libexec/ld.so/weak/CVS/Entries create mode 100644 src/regress/libexec/ld.so/weak/CVS/Repository create mode 100644 src/regress/libexec/ld.so/weak/CVS/Root create mode 100644 src/regress/libexec/ld.so/weak/Makefile create mode 100644 src/regress/libexec/ld.so/weak/Makefile.inc create mode 100644 src/regress/libexec/ld.so/weak/libstrong/CVS/Entries create mode 100644 src/regress/libexec/ld.so/weak/libstrong/CVS/Repository create mode 100644 src/regress/libexec/ld.so/weak/libstrong/CVS/Root create mode 100644 src/regress/libexec/ld.so/weak/libstrong/Makefile create mode 120000 src/regress/libexec/ld.so/weak/libstrong/obj create mode 100644 src/regress/libexec/ld.so/weak/libstrong/shlib_version create mode 100644 src/regress/libexec/ld.so/weak/libstrong/strong.c create mode 100644 src/regress/libexec/ld.so/weak/libweak/CVS/Entries create mode 100644 src/regress/libexec/ld.so/weak/libweak/CVS/Repository create mode 100644 src/regress/libexec/ld.so/weak/libweak/CVS/Root create mode 100644 src/regress/libexec/ld.so/weak/libweak/Makefile create mode 120000 src/regress/libexec/ld.so/weak/libweak/obj create mode 100644 src/regress/libexec/ld.so/weak/libweak/shlib_version create mode 100644 src/regress/libexec/ld.so/weak/libweak/weak.c create mode 100644 src/regress/libexec/ld.so/weak/prog/CVS/Entries create mode 100644 src/regress/libexec/ld.so/weak/prog/CVS/Repository create mode 100644 src/regress/libexec/ld.so/weak/prog/CVS/Root create mode 100644 src/regress/libexec/ld.so/weak/prog/Makefile create mode 100644 src/regress/libexec/ld.so/weak/prog/defs.h create mode 100644 src/regress/libexec/ld.so/weak/prog/main.c create mode 120000 src/regress/libexec/ld.so/weak/prog/obj create mode 100644 src/regress/libexec/ld.so/weak/prog2/CVS/Entries create mode 100644 src/regress/libexec/ld.so/weak/prog2/CVS/Repository create mode 100644 src/regress/libexec/ld.so/weak/prog2/CVS/Root create mode 100644 src/regress/libexec/ld.so/weak/prog2/Makefile create mode 100644 src/regress/libexec/ld.so/weak/prog2/main.c create mode 120000 src/regress/libexec/ld.so/weak/prog2/obj create mode 100644 src/regress/misc/CVS/Entries create mode 100644 src/regress/misc/CVS/Repository create mode 100644 src/regress/misc/CVS/Root create mode 100644 src/regress/misc/Makefile create mode 100644 src/regress/misc/X11/CVS/Entries create mode 100644 src/regress/misc/X11/CVS/Repository create mode 100644 src/regress/misc/X11/CVS/Root create mode 100644 src/regress/misc/X11/Makefile create mode 100644 src/regress/misc/X11/blt/CVS/Entries create mode 100644 src/regress/misc/X11/blt/CVS/Repository create mode 100644 src/regress/misc/X11/blt/CVS/Root create mode 100644 src/regress/misc/X11/blt/Makefile create mode 100644 src/regress/misc/X11/blt/blt.c create mode 120000 src/regress/misc/X11/blt/obj create mode 100644 src/regress/misc/X11/bltone/CVS/Entries create mode 100644 src/regress/misc/X11/bltone/CVS/Repository create mode 100644 src/regress/misc/X11/bltone/CVS/Root create mode 100644 src/regress/misc/X11/bltone/Makefile create mode 100644 src/regress/misc/X11/bltone/bltone.c create mode 120000 src/regress/misc/X11/bltone/obj create mode 100644 src/regress/misc/exceptions/CVS/Entries create mode 100644 src/regress/misc/exceptions/CVS/Repository create mode 100644 src/regress/misc/exceptions/CVS/Root create mode 100644 src/regress/misc/exceptions/Makefile create mode 100644 src/regress/misc/exceptions/foo/CVS/Entries create mode 100644 src/regress/misc/exceptions/foo/CVS/Repository create mode 100644 src/regress/misc/exceptions/foo/CVS/Root create mode 100644 src/regress/misc/exceptions/foo/Makefile create mode 100644 src/regress/misc/exceptions/foo/foo.cc create mode 120000 src/regress/misc/exceptions/foo/obj create mode 100644 src/regress/misc/exceptions/libbar/CVS/Entries create mode 100644 src/regress/misc/exceptions/libbar/CVS/Repository create mode 100644 src/regress/misc/exceptions/libbar/CVS/Root create mode 100644 src/regress/misc/exceptions/libbar/Makefile create mode 100644 src/regress/misc/exceptions/libbar/bar.cc create mode 120000 src/regress/misc/exceptions/libbar/obj create mode 100644 src/regress/misc/exceptions/libbar/shlib_version create mode 100644 src/regress/misc/exceptions/simple/CVS/Entries create mode 100644 src/regress/misc/exceptions/simple/CVS/Repository create mode 100644 src/regress/misc/exceptions/simple/CVS/Root create mode 100644 src/regress/misc/exceptions/simple/Makefile create mode 100644 src/regress/misc/exceptions/simple/exceptions.cc create mode 120000 src/regress/misc/exceptions/simple/obj create mode 100644 src/regress/misc/objc/CVS/Entries create mode 100644 src/regress/misc/objc/CVS/Repository create mode 100644 src/regress/misc/objc/CVS/Root create mode 100644 src/regress/misc/objc/Makefile create mode 100644 src/regress/misc/objc/main.m create mode 120000 src/regress/misc/objc/obj create mode 100644 src/regress/sbin/CVS/Entries create mode 100644 src/regress/sbin/CVS/Repository create mode 100644 src/regress/sbin/CVS/Root create mode 100644 src/regress/sbin/Makefile create mode 100644 src/regress/sbin/disklabel/CVS/Entries create mode 100644 src/regress/sbin/disklabel/CVS/Repository create mode 100644 src/regress/sbin/disklabel/CVS/Root create mode 100644 src/regress/sbin/disklabel/disklabel-A create mode 100644 src/regress/sbin/ipsecctl/CVS/Entries create mode 100644 src/regress/sbin/ipsecctl/CVS/Repository create mode 100644 src/regress/sbin/ipsecctl/CVS/Root create mode 100644 src/regress/sbin/ipsecctl/Makefile create mode 100644 src/regress/sbin/ipsecctl/ak128 create mode 100644 src/regress/sbin/ipsecctl/ak160 create mode 100644 src/regress/sbin/ipsecctl/ak256 create mode 100644 src/regress/sbin/ipsecctl/ak384 create mode 100644 src/regress/sbin/ipsecctl/ak512 create mode 100644 src/regress/sbin/ipsecctl/ek128 create mode 100644 src/regress/sbin/ipsecctl/ek160 create mode 100644 src/regress/sbin/ipsecctl/ek192 create mode 100644 src/regress/sbin/ipsecctl/ek64 create mode 100644 src/regress/sbin/ipsecctl/ek80 create mode 100644 src/regress/sbin/ipsecctl/ike1.in create mode 100644 src/regress/sbin/ipsecctl/ike1.ok create mode 100644 src/regress/sbin/ipsecctl/ike10.in create mode 100644 src/regress/sbin/ipsecctl/ike10.ok create mode 100644 src/regress/sbin/ipsecctl/ike11.in create mode 100644 src/regress/sbin/ipsecctl/ike11.ok create mode 100644 src/regress/sbin/ipsecctl/ike12.in create mode 100644 src/regress/sbin/ipsecctl/ike12.ok create mode 100644 src/regress/sbin/ipsecctl/ike13.in create mode 100644 src/regress/sbin/ipsecctl/ike13.ok create mode 100644 src/regress/sbin/ipsecctl/ike14.in create mode 100644 src/regress/sbin/ipsecctl/ike14.ok create mode 100644 src/regress/sbin/ipsecctl/ike15.in create mode 100644 src/regress/sbin/ipsecctl/ike15.ok create mode 100644 src/regress/sbin/ipsecctl/ike16.in create mode 100644 src/regress/sbin/ipsecctl/ike16.ok create mode 100644 src/regress/sbin/ipsecctl/ike17.in create mode 100644 src/regress/sbin/ipsecctl/ike17.ok create mode 100644 src/regress/sbin/ipsecctl/ike18.in create mode 100644 src/regress/sbin/ipsecctl/ike18.ok create mode 100644 src/regress/sbin/ipsecctl/ike19.in create mode 100644 src/regress/sbin/ipsecctl/ike19.ok create mode 100644 src/regress/sbin/ipsecctl/ike2.in create mode 100644 src/regress/sbin/ipsecctl/ike2.ok create mode 100644 src/regress/sbin/ipsecctl/ike20.in create mode 100644 src/regress/sbin/ipsecctl/ike20.ok create mode 100644 src/regress/sbin/ipsecctl/ike21.in create mode 100644 src/regress/sbin/ipsecctl/ike21.ok create mode 100644 src/regress/sbin/ipsecctl/ike22.in create mode 100644 src/regress/sbin/ipsecctl/ike22.ok create mode 100644 src/regress/sbin/ipsecctl/ike23.in create mode 100644 src/regress/sbin/ipsecctl/ike23.ok create mode 100644 src/regress/sbin/ipsecctl/ike29.in create mode 100644 src/regress/sbin/ipsecctl/ike29.ok create mode 100644 src/regress/sbin/ipsecctl/ike3.in create mode 100644 src/regress/sbin/ipsecctl/ike3.ok create mode 100644 src/regress/sbin/ipsecctl/ike30.in create mode 100644 src/regress/sbin/ipsecctl/ike30.ok create mode 100644 src/regress/sbin/ipsecctl/ike31.in create mode 100644 src/regress/sbin/ipsecctl/ike31.ok create mode 100644 src/regress/sbin/ipsecctl/ike32.in create mode 100644 src/regress/sbin/ipsecctl/ike32.ok create mode 100644 src/regress/sbin/ipsecctl/ike33.in create mode 100644 src/regress/sbin/ipsecctl/ike33.ok create mode 100644 src/regress/sbin/ipsecctl/ike34.in create mode 100644 src/regress/sbin/ipsecctl/ike34.ok create mode 100644 src/regress/sbin/ipsecctl/ike35.in create mode 100644 src/regress/sbin/ipsecctl/ike35.ok create mode 100644 src/regress/sbin/ipsecctl/ike36.in create mode 100644 src/regress/sbin/ipsecctl/ike36.ok create mode 100644 src/regress/sbin/ipsecctl/ike37.in create mode 100644 src/regress/sbin/ipsecctl/ike37.ok create mode 100644 src/regress/sbin/ipsecctl/ike38.in create mode 100644 src/regress/sbin/ipsecctl/ike38.ok create mode 100644 src/regress/sbin/ipsecctl/ike39.in create mode 100644 src/regress/sbin/ipsecctl/ike39.ok create mode 100644 src/regress/sbin/ipsecctl/ike4.in create mode 100644 src/regress/sbin/ipsecctl/ike4.ok create mode 100644 src/regress/sbin/ipsecctl/ike40.in create mode 100644 src/regress/sbin/ipsecctl/ike40.ok create mode 100644 src/regress/sbin/ipsecctl/ike41.in create mode 100644 src/regress/sbin/ipsecctl/ike41.ok create mode 100644 src/regress/sbin/ipsecctl/ike42.in create mode 100644 src/regress/sbin/ipsecctl/ike42.ok create mode 100644 src/regress/sbin/ipsecctl/ike43.in create mode 100644 src/regress/sbin/ipsecctl/ike43.ok create mode 100644 src/regress/sbin/ipsecctl/ike46.in create mode 100644 src/regress/sbin/ipsecctl/ike46.ok create mode 100644 src/regress/sbin/ipsecctl/ike47.in create mode 100644 src/regress/sbin/ipsecctl/ike47.ok create mode 100644 src/regress/sbin/ipsecctl/ike48.in create mode 100644 src/regress/sbin/ipsecctl/ike48.ok create mode 100644 src/regress/sbin/ipsecctl/ike49.in create mode 100644 src/regress/sbin/ipsecctl/ike49.ok create mode 100644 src/regress/sbin/ipsecctl/ike5.in create mode 100644 src/regress/sbin/ipsecctl/ike5.ok create mode 100644 src/regress/sbin/ipsecctl/ike50.in create mode 100644 src/regress/sbin/ipsecctl/ike50.ok create mode 100644 src/regress/sbin/ipsecctl/ike51.in create mode 100644 src/regress/sbin/ipsecctl/ike51.ok create mode 100644 src/regress/sbin/ipsecctl/ike52.in create mode 100644 src/regress/sbin/ipsecctl/ike52.ok create mode 100644 src/regress/sbin/ipsecctl/ike53.in create mode 100644 src/regress/sbin/ipsecctl/ike53.ok create mode 100644 src/regress/sbin/ipsecctl/ike54.in create mode 100644 src/regress/sbin/ipsecctl/ike54.ok create mode 100644 src/regress/sbin/ipsecctl/ike55.in create mode 100644 src/regress/sbin/ipsecctl/ike55.ok create mode 100644 src/regress/sbin/ipsecctl/ike56.in create mode 100644 src/regress/sbin/ipsecctl/ike56.ok create mode 100644 src/regress/sbin/ipsecctl/ike57.in create mode 100644 src/regress/sbin/ipsecctl/ike57.ok create mode 100644 src/regress/sbin/ipsecctl/ike58.in create mode 100644 src/regress/sbin/ipsecctl/ike58.ok create mode 100644 src/regress/sbin/ipsecctl/ike59.in create mode 100644 src/regress/sbin/ipsecctl/ike59.ok create mode 100644 src/regress/sbin/ipsecctl/ike6.in create mode 100644 src/regress/sbin/ipsecctl/ike6.ok create mode 100644 src/regress/sbin/ipsecctl/ike60.in create mode 100644 src/regress/sbin/ipsecctl/ike60.ok create mode 100644 src/regress/sbin/ipsecctl/ike61.in create mode 100644 src/regress/sbin/ipsecctl/ike61.ok create mode 100644 src/regress/sbin/ipsecctl/ike62.in create mode 100644 src/regress/sbin/ipsecctl/ike62.ok create mode 100644 src/regress/sbin/ipsecctl/ike63.in create mode 100644 src/regress/sbin/ipsecctl/ike63.ok create mode 100644 src/regress/sbin/ipsecctl/ike64.in create mode 100644 src/regress/sbin/ipsecctl/ike64.ok create mode 100644 src/regress/sbin/ipsecctl/ike65.in create mode 100644 src/regress/sbin/ipsecctl/ike65.ok create mode 100644 src/regress/sbin/ipsecctl/ike66.in create mode 100644 src/regress/sbin/ipsecctl/ike66.ok create mode 100644 src/regress/sbin/ipsecctl/ike67.in create mode 100644 src/regress/sbin/ipsecctl/ike67.ok create mode 100644 src/regress/sbin/ipsecctl/ike68.in create mode 100644 src/regress/sbin/ipsecctl/ike68.ok create mode 100644 src/regress/sbin/ipsecctl/ike7.in create mode 100644 src/regress/sbin/ipsecctl/ike7.ok create mode 100644 src/regress/sbin/ipsecctl/ike8.in create mode 100644 src/regress/sbin/ipsecctl/ike8.ok create mode 100644 src/regress/sbin/ipsecctl/ike9.in create mode 100644 src/regress/sbin/ipsecctl/ike9.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel1.in create mode 100644 src/regress/sbin/ipsecctl/ikedel1.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel10.in create mode 100644 src/regress/sbin/ipsecctl/ikedel10.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel11.in create mode 100644 src/regress/sbin/ipsecctl/ikedel11.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel12.in create mode 100644 src/regress/sbin/ipsecctl/ikedel12.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel13.in create mode 100644 src/regress/sbin/ipsecctl/ikedel13.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel14.in create mode 100644 src/regress/sbin/ipsecctl/ikedel14.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel15.in create mode 100644 src/regress/sbin/ipsecctl/ikedel15.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel16.in create mode 100644 src/regress/sbin/ipsecctl/ikedel16.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel17.in create mode 100644 src/regress/sbin/ipsecctl/ikedel17.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel18.in create mode 100644 src/regress/sbin/ipsecctl/ikedel18.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel19.in create mode 100644 src/regress/sbin/ipsecctl/ikedel19.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel2.in create mode 100644 src/regress/sbin/ipsecctl/ikedel2.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel20.in create mode 100644 src/regress/sbin/ipsecctl/ikedel20.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel21.in create mode 100644 src/regress/sbin/ipsecctl/ikedel21.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel22.in create mode 100644 src/regress/sbin/ipsecctl/ikedel22.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel23.in create mode 100644 src/regress/sbin/ipsecctl/ikedel23.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel29.in create mode 100644 src/regress/sbin/ipsecctl/ikedel29.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel3.in create mode 100644 src/regress/sbin/ipsecctl/ikedel3.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel30.in create mode 100644 src/regress/sbin/ipsecctl/ikedel30.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel31.in create mode 100644 src/regress/sbin/ipsecctl/ikedel31.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel32.in create mode 100644 src/regress/sbin/ipsecctl/ikedel32.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel33.in create mode 100644 src/regress/sbin/ipsecctl/ikedel33.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel34.in create mode 100644 src/regress/sbin/ipsecctl/ikedel34.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel35.in create mode 100644 src/regress/sbin/ipsecctl/ikedel35.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel36.in create mode 100644 src/regress/sbin/ipsecctl/ikedel36.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel37.in create mode 100644 src/regress/sbin/ipsecctl/ikedel37.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel38.in create mode 100644 src/regress/sbin/ipsecctl/ikedel38.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel39.in create mode 100644 src/regress/sbin/ipsecctl/ikedel39.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel4.in create mode 100644 src/regress/sbin/ipsecctl/ikedel4.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel40.in create mode 100644 src/regress/sbin/ipsecctl/ikedel40.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel41.in create mode 100644 src/regress/sbin/ipsecctl/ikedel41.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel42.in create mode 100644 src/regress/sbin/ipsecctl/ikedel42.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel43.in create mode 100644 src/regress/sbin/ipsecctl/ikedel43.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel46.in create mode 100644 src/regress/sbin/ipsecctl/ikedel46.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel47.in create mode 100644 src/regress/sbin/ipsecctl/ikedel47.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel5.in create mode 100644 src/regress/sbin/ipsecctl/ikedel5.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel6.in create mode 100644 src/regress/sbin/ipsecctl/ikedel6.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel7.in create mode 100644 src/regress/sbin/ipsecctl/ikedel7.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel8.in create mode 100644 src/regress/sbin/ipsecctl/ikedel8.ok create mode 100644 src/regress/sbin/ipsecctl/ikedel9.in create mode 100644 src/regress/sbin/ipsecctl/ikedel9.ok create mode 100644 src/regress/sbin/ipsecctl/ikedeldel1.in create mode 100644 src/regress/sbin/ipsecctl/ikedeldel1.ok create mode 100644 src/regress/sbin/ipsecctl/ikedeldel47.in create mode 100644 src/regress/sbin/ipsecctl/ikedeldel47.ok create mode 100644 src/regress/sbin/ipsecctl/ikefail1.in create mode 100644 src/regress/sbin/ipsecctl/ikefail1.ok create mode 100644 src/regress/sbin/ipsecctl/ikefail11.in create mode 100644 src/regress/sbin/ipsecctl/ikefail11.ok create mode 100644 src/regress/sbin/ipsecctl/ikefail12.in create mode 100644 src/regress/sbin/ipsecctl/ikefail12.ok create mode 100644 src/regress/sbin/ipsecctl/ikefail13.in create mode 100644 src/regress/sbin/ipsecctl/ikefail13.ok create mode 100644 src/regress/sbin/ipsecctl/ikefail14.in create mode 100644 src/regress/sbin/ipsecctl/ikefail14.ok create mode 100644 src/regress/sbin/ipsecctl/ikefail2.in create mode 100644 src/regress/sbin/ipsecctl/ikefail2.ok create mode 100644 src/regress/sbin/ipsecctl/ikefail3.in create mode 100644 src/regress/sbin/ipsecctl/ikefail3.ok create mode 100644 src/regress/sbin/ipsecctl/ikefail4.in create mode 100644 src/regress/sbin/ipsecctl/ikefail4.ok create mode 100644 src/regress/sbin/ipsecctl/ikefail5.in create mode 100644 src/regress/sbin/ipsecctl/ikefail5.ok create mode 100644 src/regress/sbin/ipsecctl/ikefail6.in create mode 100644 src/regress/sbin/ipsecctl/ikefail6.ok create mode 100644 src/regress/sbin/ipsecctl/ikefail8.in create mode 100644 src/regress/sbin/ipsecctl/ikefail8.ok create mode 100644 src/regress/sbin/ipsecctl/ikefail9.in create mode 100644 src/regress/sbin/ipsecctl/ikefail9.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec1.in create mode 100644 src/regress/sbin/ipsecctl/ipsec1.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec10.in create mode 100644 src/regress/sbin/ipsecctl/ipsec10.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec11.in create mode 100644 src/regress/sbin/ipsecctl/ipsec11.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec12.in create mode 100644 src/regress/sbin/ipsecctl/ipsec12.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec13.in create mode 100644 src/regress/sbin/ipsecctl/ipsec13.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec14.in create mode 100644 src/regress/sbin/ipsecctl/ipsec14.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec15.in create mode 100644 src/regress/sbin/ipsecctl/ipsec15.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec16.in create mode 100644 src/regress/sbin/ipsecctl/ipsec16.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec17.in create mode 100644 src/regress/sbin/ipsecctl/ipsec17.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec18.in create mode 100644 src/regress/sbin/ipsecctl/ipsec18.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec19.in create mode 100644 src/regress/sbin/ipsecctl/ipsec19.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec2.in create mode 100644 src/regress/sbin/ipsecctl/ipsec2.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec20.in create mode 100644 src/regress/sbin/ipsecctl/ipsec20.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec21.in create mode 100644 src/regress/sbin/ipsecctl/ipsec21.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec22.in create mode 100644 src/regress/sbin/ipsecctl/ipsec22.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec23.in create mode 100644 src/regress/sbin/ipsecctl/ipsec23.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec24.in create mode 100644 src/regress/sbin/ipsecctl/ipsec24.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec25.in create mode 100644 src/regress/sbin/ipsecctl/ipsec25.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec26.in create mode 100644 src/regress/sbin/ipsecctl/ipsec26.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec27.in create mode 100644 src/regress/sbin/ipsecctl/ipsec27.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec28.in create mode 100644 src/regress/sbin/ipsecctl/ipsec28.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec29.in create mode 100644 src/regress/sbin/ipsecctl/ipsec29.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec3.in create mode 100644 src/regress/sbin/ipsecctl/ipsec3.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec30.in create mode 100644 src/regress/sbin/ipsecctl/ipsec30.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec31.in create mode 100644 src/regress/sbin/ipsecctl/ipsec31.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec32.in create mode 100644 src/regress/sbin/ipsecctl/ipsec32.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec33.in create mode 100644 src/regress/sbin/ipsecctl/ipsec33.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec34.in create mode 100644 src/regress/sbin/ipsecctl/ipsec34.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec35.in create mode 100644 src/regress/sbin/ipsecctl/ipsec35.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec36.in create mode 100644 src/regress/sbin/ipsecctl/ipsec36.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec37.in create mode 100644 src/regress/sbin/ipsecctl/ipsec37.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec38.in create mode 100644 src/regress/sbin/ipsecctl/ipsec38.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec39.in create mode 100644 src/regress/sbin/ipsecctl/ipsec39.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec4.in create mode 100644 src/regress/sbin/ipsecctl/ipsec4.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec40.in create mode 100644 src/regress/sbin/ipsecctl/ipsec40.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec41.in create mode 100644 src/regress/sbin/ipsecctl/ipsec41.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec42.in create mode 100644 src/regress/sbin/ipsecctl/ipsec42.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec43.in create mode 100644 src/regress/sbin/ipsecctl/ipsec43.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec44.in create mode 100644 src/regress/sbin/ipsecctl/ipsec44.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec5.in create mode 100644 src/regress/sbin/ipsecctl/ipsec5.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec50.in create mode 100644 src/regress/sbin/ipsecctl/ipsec50.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec51.in create mode 100644 src/regress/sbin/ipsecctl/ipsec51.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec52.in create mode 100644 src/regress/sbin/ipsecctl/ipsec52.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec53.in create mode 100644 src/regress/sbin/ipsecctl/ipsec53.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec54.in create mode 100644 src/regress/sbin/ipsecctl/ipsec54.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec55.in create mode 100644 src/regress/sbin/ipsecctl/ipsec55.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec56.in create mode 100644 src/regress/sbin/ipsecctl/ipsec56.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec57.in create mode 100644 src/regress/sbin/ipsecctl/ipsec57.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec58.in create mode 100644 src/regress/sbin/ipsecctl/ipsec58.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec6.in create mode 100644 src/regress/sbin/ipsecctl/ipsec6.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec7.in create mode 100644 src/regress/sbin/ipsecctl/ipsec7.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec8.in create mode 100644 src/regress/sbin/ipsecctl/ipsec8.ok create mode 100644 src/regress/sbin/ipsecctl/ipsec9.in create mode 100644 src/regress/sbin/ipsecctl/ipsec9.ok create mode 100644 src/regress/sbin/ipsecctl/ipsecfail1.in create mode 100644 src/regress/sbin/ipsecctl/ipsecfail1.ok create mode 100644 src/regress/sbin/ipsecctl/ipsecfail2.in create mode 100644 src/regress/sbin/ipsecctl/ipsecfail2.ok create mode 100644 src/regress/sbin/ipsecctl/ipsecfail3.in create mode 100644 src/regress/sbin/ipsecctl/ipsecfail3.ok create mode 120000 src/regress/sbin/ipsecctl/obj create mode 100644 src/regress/sbin/ipsecctl/sa1.in create mode 100644 src/regress/sbin/ipsecctl/sa1.ok create mode 100644 src/regress/sbin/ipsecctl/sa10.in create mode 100644 src/regress/sbin/ipsecctl/sa10.ok create mode 100644 src/regress/sbin/ipsecctl/sa11.in create mode 100644 src/regress/sbin/ipsecctl/sa11.ok create mode 100644 src/regress/sbin/ipsecctl/sa12.in create mode 100644 src/regress/sbin/ipsecctl/sa12.ok create mode 100644 src/regress/sbin/ipsecctl/sa13.in create mode 100644 src/regress/sbin/ipsecctl/sa13.ok create mode 100644 src/regress/sbin/ipsecctl/sa14.in create mode 100644 src/regress/sbin/ipsecctl/sa14.ok create mode 100644 src/regress/sbin/ipsecctl/sa15.in create mode 100644 src/regress/sbin/ipsecctl/sa15.ok create mode 100644 src/regress/sbin/ipsecctl/sa16.in create mode 100644 src/regress/sbin/ipsecctl/sa16.ok create mode 100644 src/regress/sbin/ipsecctl/sa17.in create mode 100644 src/regress/sbin/ipsecctl/sa17.ok create mode 100644 src/regress/sbin/ipsecctl/sa18.in create mode 100644 src/regress/sbin/ipsecctl/sa18.ok create mode 100644 src/regress/sbin/ipsecctl/sa19.in create mode 100644 src/regress/sbin/ipsecctl/sa19.ok create mode 100644 src/regress/sbin/ipsecctl/sa2.in create mode 100644 src/regress/sbin/ipsecctl/sa2.ok create mode 100644 src/regress/sbin/ipsecctl/sa20.in create mode 100644 src/regress/sbin/ipsecctl/sa20.ok create mode 100644 src/regress/sbin/ipsecctl/sa21.in create mode 100644 src/regress/sbin/ipsecctl/sa21.ok create mode 100644 src/regress/sbin/ipsecctl/sa22.in create mode 100644 src/regress/sbin/ipsecctl/sa22.ok create mode 100644 src/regress/sbin/ipsecctl/sa23.in create mode 100644 src/regress/sbin/ipsecctl/sa23.ok create mode 100644 src/regress/sbin/ipsecctl/sa24.in create mode 100644 src/regress/sbin/ipsecctl/sa24.ok create mode 100644 src/regress/sbin/ipsecctl/sa3.in create mode 100644 src/regress/sbin/ipsecctl/sa3.ok create mode 100644 src/regress/sbin/ipsecctl/sa4.in create mode 100644 src/regress/sbin/ipsecctl/sa4.ok create mode 100644 src/regress/sbin/ipsecctl/sa5.in create mode 100644 src/regress/sbin/ipsecctl/sa5.ok create mode 100644 src/regress/sbin/ipsecctl/sa6.in create mode 100644 src/regress/sbin/ipsecctl/sa6.ok create mode 100644 src/regress/sbin/ipsecctl/sa7.in create mode 100644 src/regress/sbin/ipsecctl/sa7.ok create mode 100644 src/regress/sbin/ipsecctl/sa8.in create mode 100644 src/regress/sbin/ipsecctl/sa8.ok create mode 100644 src/regress/sbin/ipsecctl/sa9.in create mode 100644 src/regress/sbin/ipsecctl/sa9.ok create mode 100644 src/regress/sbin/ipsecctl/safail1.in create mode 100644 src/regress/sbin/ipsecctl/safail1.ok create mode 100644 src/regress/sbin/ipsecctl/safail2.in create mode 100644 src/regress/sbin/ipsecctl/safail2.ok create mode 100644 src/regress/sbin/ipsecctl/tcpmd51.in create mode 100644 src/regress/sbin/ipsecctl/tcpmd51.ok create mode 100644 src/regress/sbin/ipsecctl/tcpmd52.in create mode 100644 src/regress/sbin/ipsecctl/tcpmd52.ok create mode 100644 src/regress/sbin/ipsecctl/tcpmd53.in create mode 100644 src/regress/sbin/ipsecctl/tcpmd53.ok create mode 100644 src/regress/sbin/isakmpd/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/CVS/Root create mode 100644 src/regress/sbin/isakmpd/Makefile create mode 100644 src/regress/sbin/isakmpd/b2n/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/b2n/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/b2n/CVS/Root create mode 100644 src/regress/sbin/isakmpd/b2n/Makefile create mode 100644 src/regress/sbin/isakmpd/b2n/b2ntest.c create mode 100644 src/regress/sbin/isakmpd/crypto/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/crypto/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/crypto/CVS/Root create mode 100644 src/regress/sbin/isakmpd/crypto/Makefile create mode 100644 src/regress/sbin/isakmpd/crypto/cryptotest.c create mode 100644 src/regress/sbin/isakmpd/dh/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/dh/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/dh/CVS/Root create mode 100644 src/regress/sbin/isakmpd/dh/Makefile create mode 100644 src/regress/sbin/isakmpd/dh/dhtest.c create mode 100644 src/regress/sbin/isakmpd/ec2n/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/ec2n/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/ec2n/CVS/Root create mode 100644 src/regress/sbin/isakmpd/ec2n/Makefile create mode 100644 src/regress/sbin/isakmpd/ec2n/ec2ntest.c create mode 100644 src/regress/sbin/isakmpd/exchange/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/exchange/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/exchange/CVS/Root create mode 100644 src/regress/sbin/isakmpd/exchange/Makefile create mode 100644 src/regress/sbin/isakmpd/exchange/README create mode 100644 src/regress/sbin/isakmpd/exchange/def-i.1 create mode 100644 src/regress/sbin/isakmpd/exchange/def-r.1 create mode 100644 src/regress/sbin/isakmpd/exchange/mm-1-setup.sh create mode 100644 src/regress/sbin/isakmpd/exchange/mm-i-1.t create mode 100644 src/regress/sbin/isakmpd/exchange/mm-r-1.t create mode 100644 src/regress/sbin/isakmpd/exchange/run.pl create mode 100644 src/regress/sbin/isakmpd/exchange/run.sh create mode 100644 src/regress/sbin/isakmpd/group/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/group/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/group/CVS/Root create mode 100644 src/regress/sbin/isakmpd/group/Makefile create mode 100644 src/regress/sbin/isakmpd/group/grouptest.c create mode 100644 src/regress/sbin/isakmpd/hmac/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/hmac/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/hmac/CVS/Root create mode 100644 src/regress/sbin/isakmpd/hmac/Makefile create mode 100644 src/regress/sbin/isakmpd/hmac/hmactest.c create mode 100644 src/regress/sbin/isakmpd/msg/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/msg/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/msg/CVS/Root create mode 100644 src/regress/sbin/isakmpd/msg/check.sh create mode 100644 src/regress/sbin/isakmpd/prf/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/prf/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/prf/CVS/Root create mode 100644 src/regress/sbin/isakmpd/prf/Makefile create mode 100644 src/regress/sbin/isakmpd/prf/prftest.c create mode 100644 src/regress/sbin/isakmpd/rsakeygen/.cvsignore create mode 100644 src/regress/sbin/isakmpd/rsakeygen/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/rsakeygen/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/rsakeygen/CVS/Root create mode 100644 src/regress/sbin/isakmpd/rsakeygen/Makefile create mode 100644 src/regress/sbin/isakmpd/rsakeygen/rsakeygen.c create mode 100644 src/regress/sbin/isakmpd/util/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/util/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/util/CVS/Root create mode 100644 src/regress/sbin/isakmpd/util/Makefile create mode 100644 src/regress/sbin/isakmpd/util/utiltest.c create mode 100644 src/regress/sbin/isakmpd/x509/CVS/Entries create mode 100644 src/regress/sbin/isakmpd/x509/CVS/Repository create mode 100644 src/regress/sbin/isakmpd/x509/CVS/Root create mode 100644 src/regress/sbin/isakmpd/x509/Makefile create mode 100644 src/regress/sbin/isakmpd/x509/x509test.c create mode 100644 src/regress/sbin/newfs/CVS/Entries create mode 100644 src/regress/sbin/newfs/CVS/Repository create mode 100644 src/regress/sbin/newfs/CVS/Root create mode 100644 src/regress/sbin/newfs/Makefile create mode 100644 src/regress/sbin/newfs/checknewfs create mode 100644 src/regress/sbin/pfctl/CVS/Entries create mode 100644 src/regress/sbin/pfctl/CVS/Repository create mode 100644 src/regress/sbin/pfctl/CVS/Root create mode 100644 src/regress/sbin/pfctl/Makefile create mode 100644 src/regress/sbin/pfctl/if2ip create mode 120000 src/regress/sbin/pfctl/obj create mode 100644 src/regress/sbin/pfctl/pf1.in create mode 100644 src/regress/sbin/pfctl/pf1.loaded create mode 100644 src/regress/sbin/pfctl/pf1.ok create mode 100644 src/regress/sbin/pfctl/pf1.optimized create mode 100644 src/regress/sbin/pfctl/pf10.in create mode 100644 src/regress/sbin/pfctl/pf10.loaded create mode 100644 src/regress/sbin/pfctl/pf10.ok create mode 100644 src/regress/sbin/pfctl/pf10.optimized create mode 100644 src/regress/sbin/pfctl/pf11.in create mode 100644 src/regress/sbin/pfctl/pf11.loaded create mode 100644 src/regress/sbin/pfctl/pf11.ok create mode 100644 src/regress/sbin/pfctl/pf11.optimized create mode 100644 src/regress/sbin/pfctl/pf12.in create mode 100644 src/regress/sbin/pfctl/pf12.loaded create mode 100644 src/regress/sbin/pfctl/pf12.ok create mode 100644 src/regress/sbin/pfctl/pf12.optimized create mode 100644 src/regress/sbin/pfctl/pf13.in create mode 100644 src/regress/sbin/pfctl/pf13.loaded create mode 100644 src/regress/sbin/pfctl/pf13.ok create mode 100644 src/regress/sbin/pfctl/pf13.optimized create mode 100644 src/regress/sbin/pfctl/pf14.in create mode 100644 src/regress/sbin/pfctl/pf14.loaded create mode 100644 src/regress/sbin/pfctl/pf14.ok create mode 100644 src/regress/sbin/pfctl/pf14.optimized create mode 100644 src/regress/sbin/pfctl/pf15.in create mode 100644 src/regress/sbin/pfctl/pf15.loaded create mode 100644 src/regress/sbin/pfctl/pf15.ok create mode 100644 src/regress/sbin/pfctl/pf15.optimized create mode 100644 src/regress/sbin/pfctl/pf16.in create mode 100644 src/regress/sbin/pfctl/pf16.loaded create mode 100644 src/regress/sbin/pfctl/pf16.ok create mode 100644 src/regress/sbin/pfctl/pf16.optimized create mode 100644 src/regress/sbin/pfctl/pf17.in create mode 100644 src/regress/sbin/pfctl/pf17.loaded create mode 100644 src/regress/sbin/pfctl/pf17.ok create mode 100644 src/regress/sbin/pfctl/pf17.optimized create mode 100644 src/regress/sbin/pfctl/pf18.in create mode 100644 src/regress/sbin/pfctl/pf18.loaded create mode 100644 src/regress/sbin/pfctl/pf18.ok create mode 100644 src/regress/sbin/pfctl/pf18.optimized create mode 100644 src/regress/sbin/pfctl/pf19.in create mode 100644 src/regress/sbin/pfctl/pf19.loaded create mode 100644 src/regress/sbin/pfctl/pf19.ok create mode 100644 src/regress/sbin/pfctl/pf19.optimized create mode 100644 src/regress/sbin/pfctl/pf2.in create mode 100644 src/regress/sbin/pfctl/pf2.loaded create mode 100644 src/regress/sbin/pfctl/pf2.ok create mode 100644 src/regress/sbin/pfctl/pf2.optimized create mode 100644 src/regress/sbin/pfctl/pf20.in create mode 100644 src/regress/sbin/pfctl/pf20.loaded create mode 100644 src/regress/sbin/pfctl/pf20.ok create mode 100644 src/regress/sbin/pfctl/pf20.optimized create mode 100644 src/regress/sbin/pfctl/pf21.in create mode 100644 src/regress/sbin/pfctl/pf21.ok create mode 100644 src/regress/sbin/pfctl/pf21.optimized create mode 100644 src/regress/sbin/pfctl/pf22.in create mode 100644 src/regress/sbin/pfctl/pf22.ok create mode 100644 src/regress/sbin/pfctl/pf23.in create mode 100644 src/regress/sbin/pfctl/pf23.loaded create mode 100644 src/regress/sbin/pfctl/pf23.ok create mode 100644 src/regress/sbin/pfctl/pf23.optimized create mode 100644 src/regress/sbin/pfctl/pf24.in create mode 100644 src/regress/sbin/pfctl/pf24.loaded create mode 100644 src/regress/sbin/pfctl/pf24.ok create mode 100644 src/regress/sbin/pfctl/pf24.optimized create mode 100644 src/regress/sbin/pfctl/pf25.in create mode 100644 src/regress/sbin/pfctl/pf25.loaded create mode 100644 src/regress/sbin/pfctl/pf25.ok create mode 100644 src/regress/sbin/pfctl/pf25.optimized create mode 100644 src/regress/sbin/pfctl/pf26.in create mode 100644 src/regress/sbin/pfctl/pf26.loaded create mode 100644 src/regress/sbin/pfctl/pf26.ok create mode 100644 src/regress/sbin/pfctl/pf26.optimized create mode 100644 src/regress/sbin/pfctl/pf27.in create mode 100644 src/regress/sbin/pfctl/pf27.loaded create mode 100644 src/regress/sbin/pfctl/pf27.ok create mode 100644 src/regress/sbin/pfctl/pf27.optimized create mode 100644 src/regress/sbin/pfctl/pf28.in create mode 100644 src/regress/sbin/pfctl/pf28.loaded create mode 100644 src/regress/sbin/pfctl/pf28.ok create mode 100644 src/regress/sbin/pfctl/pf28.optimized create mode 100644 src/regress/sbin/pfctl/pf29.in create mode 100644 src/regress/sbin/pfctl/pf29.loaded create mode 100644 src/regress/sbin/pfctl/pf29.ok create mode 100644 src/regress/sbin/pfctl/pf29.optimized create mode 100644 src/regress/sbin/pfctl/pf3.in create mode 100644 src/regress/sbin/pfctl/pf3.loaded create mode 100644 src/regress/sbin/pfctl/pf3.ok create mode 100644 src/regress/sbin/pfctl/pf3.optimized create mode 100644 src/regress/sbin/pfctl/pf30.in create mode 100644 src/regress/sbin/pfctl/pf30.loaded create mode 100644 src/regress/sbin/pfctl/pf30.ok create mode 100644 src/regress/sbin/pfctl/pf30.optimized create mode 100644 src/regress/sbin/pfctl/pf31.in create mode 100644 src/regress/sbin/pfctl/pf31.loaded create mode 100644 src/regress/sbin/pfctl/pf31.ok create mode 100644 src/regress/sbin/pfctl/pf31.optimized create mode 100644 src/regress/sbin/pfctl/pf32.in create mode 100644 src/regress/sbin/pfctl/pf32.loaded create mode 100644 src/regress/sbin/pfctl/pf32.ok create mode 100644 src/regress/sbin/pfctl/pf32.optimized create mode 100644 src/regress/sbin/pfctl/pf33.in create mode 100644 src/regress/sbin/pfctl/pf33.loaded create mode 100644 src/regress/sbin/pfctl/pf33.ok create mode 100644 src/regress/sbin/pfctl/pf34.in create mode 100644 src/regress/sbin/pfctl/pf34.loaded create mode 100644 src/regress/sbin/pfctl/pf34.ok create mode 100644 src/regress/sbin/pfctl/pf34.optimized create mode 100644 src/regress/sbin/pfctl/pf35.in create mode 100644 src/regress/sbin/pfctl/pf35.loaded create mode 100644 src/regress/sbin/pfctl/pf35.ok create mode 100644 src/regress/sbin/pfctl/pf36.in create mode 100644 src/regress/sbin/pfctl/pf36.loaded create mode 100644 src/regress/sbin/pfctl/pf36.ok create mode 100644 src/regress/sbin/pfctl/pf36.optimized create mode 100644 src/regress/sbin/pfctl/pf37.in create mode 100644 src/regress/sbin/pfctl/pf37.ok create mode 100644 src/regress/sbin/pfctl/pf38.in create mode 100644 src/regress/sbin/pfctl/pf38.loaded create mode 100644 src/regress/sbin/pfctl/pf38.ok create mode 100644 src/regress/sbin/pfctl/pf38.optimized create mode 100644 src/regress/sbin/pfctl/pf39.in create mode 100644 src/regress/sbin/pfctl/pf39.loaded create mode 100644 src/regress/sbin/pfctl/pf39.ok create mode 100644 src/regress/sbin/pfctl/pf39.optimized create mode 100644 src/regress/sbin/pfctl/pf4.in create mode 100644 src/regress/sbin/pfctl/pf4.loaded create mode 100644 src/regress/sbin/pfctl/pf4.ok create mode 100644 src/regress/sbin/pfctl/pf4.optimized create mode 100644 src/regress/sbin/pfctl/pf40.in create mode 100644 src/regress/sbin/pfctl/pf40.loaded create mode 100644 src/regress/sbin/pfctl/pf40.ok create mode 100644 src/regress/sbin/pfctl/pf40.optimized create mode 100644 src/regress/sbin/pfctl/pf41.in create mode 100644 src/regress/sbin/pfctl/pf41.ok create mode 100644 src/regress/sbin/pfctl/pf42.in create mode 100644 src/regress/sbin/pfctl/pf42.ok create mode 100644 src/regress/sbin/pfctl/pf43.in create mode 100644 src/regress/sbin/pfctl/pf43.loaded create mode 100644 src/regress/sbin/pfctl/pf43.ok create mode 100644 src/regress/sbin/pfctl/pf44.in create mode 100644 src/regress/sbin/pfctl/pf44.loaded create mode 100644 src/regress/sbin/pfctl/pf44.ok create mode 100644 src/regress/sbin/pfctl/pf44.optimized create mode 100644 src/regress/sbin/pfctl/pf45.in create mode 100644 src/regress/sbin/pfctl/pf45.ok create mode 100644 src/regress/sbin/pfctl/pf46.in create mode 100644 src/regress/sbin/pfctl/pf46.loaded create mode 100644 src/regress/sbin/pfctl/pf46.ok create mode 100644 src/regress/sbin/pfctl/pf46.optimized create mode 100644 src/regress/sbin/pfctl/pf47.in create mode 100644 src/regress/sbin/pfctl/pf47.loaded create mode 100644 src/regress/sbin/pfctl/pf47.ok create mode 100644 src/regress/sbin/pfctl/pf47.optimized create mode 100644 src/regress/sbin/pfctl/pf48.in create mode 100644 src/regress/sbin/pfctl/pf48.loaded create mode 100644 src/regress/sbin/pfctl/pf48.ok create mode 100644 src/regress/sbin/pfctl/pf48.optimized create mode 100644 src/regress/sbin/pfctl/pf49.in create mode 100644 src/regress/sbin/pfctl/pf49.loaded create mode 100644 src/regress/sbin/pfctl/pf49.ok create mode 100644 src/regress/sbin/pfctl/pf49.optimized create mode 100644 src/regress/sbin/pfctl/pf5.in create mode 100644 src/regress/sbin/pfctl/pf5.loaded create mode 100644 src/regress/sbin/pfctl/pf5.ok create mode 100644 src/regress/sbin/pfctl/pf5.optimized create mode 100644 src/regress/sbin/pfctl/pf50.in create mode 100644 src/regress/sbin/pfctl/pf50.ok create mode 100644 src/regress/sbin/pfctl/pf51.in create mode 100644 src/regress/sbin/pfctl/pf51.ok create mode 100644 src/regress/sbin/pfctl/pf52.in create mode 100644 src/regress/sbin/pfctl/pf52.ok create mode 100644 src/regress/sbin/pfctl/pf53.in create mode 100644 src/regress/sbin/pfctl/pf53.ok create mode 100644 src/regress/sbin/pfctl/pf54.in create mode 100644 src/regress/sbin/pfctl/pf54.loaded create mode 100644 src/regress/sbin/pfctl/pf54.ok create mode 100644 src/regress/sbin/pfctl/pf54.optimized create mode 100644 src/regress/sbin/pfctl/pf55.in create mode 100644 src/regress/sbin/pfctl/pf55.ok create mode 100644 src/regress/sbin/pfctl/pf56.in create mode 100644 src/regress/sbin/pfctl/pf56.loaded create mode 100644 src/regress/sbin/pfctl/pf56.ok create mode 100644 src/regress/sbin/pfctl/pf56.optimized create mode 100644 src/regress/sbin/pfctl/pf57.in create mode 100644 src/regress/sbin/pfctl/pf57.ok create mode 100644 src/regress/sbin/pfctl/pf58.in create mode 100644 src/regress/sbin/pfctl/pf58.ok create mode 100644 src/regress/sbin/pfctl/pf59.in create mode 100644 src/regress/sbin/pfctl/pf59.ok create mode 100644 src/regress/sbin/pfctl/pf6.in create mode 100644 src/regress/sbin/pfctl/pf6.ok create mode 100644 src/regress/sbin/pfctl/pf60.in create mode 100644 src/regress/sbin/pfctl/pf60.loaded create mode 100644 src/regress/sbin/pfctl/pf60.ok create mode 100644 src/regress/sbin/pfctl/pf60.optimized create mode 100644 src/regress/sbin/pfctl/pf61.in create mode 100644 src/regress/sbin/pfctl/pf61.loaded create mode 100644 src/regress/sbin/pfctl/pf61.ok create mode 100644 src/regress/sbin/pfctl/pf61.optimized create mode 100644 src/regress/sbin/pfctl/pf62.in create mode 100644 src/regress/sbin/pfctl/pf62.ok create mode 100644 src/regress/sbin/pfctl/pf63.in create mode 100644 src/regress/sbin/pfctl/pf63.ok create mode 100644 src/regress/sbin/pfctl/pf64.in create mode 100644 src/regress/sbin/pfctl/pf64.ok create mode 100644 src/regress/sbin/pfctl/pf65.in create mode 100644 src/regress/sbin/pfctl/pf65.loaded create mode 100644 src/regress/sbin/pfctl/pf65.ok create mode 100644 src/regress/sbin/pfctl/pf65.optimized create mode 100644 src/regress/sbin/pfctl/pf66.in create mode 100644 src/regress/sbin/pfctl/pf66.loaded create mode 100644 src/regress/sbin/pfctl/pf66.ok create mode 100644 src/regress/sbin/pfctl/pf66.optimized create mode 100644 src/regress/sbin/pfctl/pf67.in create mode 100644 src/regress/sbin/pfctl/pf67.loaded create mode 100644 src/regress/sbin/pfctl/pf67.ok create mode 100644 src/regress/sbin/pfctl/pf67.optimized create mode 100644 src/regress/sbin/pfctl/pf68.in create mode 100644 src/regress/sbin/pfctl/pf68.loaded create mode 100644 src/regress/sbin/pfctl/pf68.ok create mode 100644 src/regress/sbin/pfctl/pf68.optimized create mode 100644 src/regress/sbin/pfctl/pf69.in create mode 100644 src/regress/sbin/pfctl/pf69.loaded create mode 100644 src/regress/sbin/pfctl/pf69.ok create mode 100644 src/regress/sbin/pfctl/pf69.optimized create mode 100644 src/regress/sbin/pfctl/pf7.in create mode 100644 src/regress/sbin/pfctl/pf7.loaded create mode 100644 src/regress/sbin/pfctl/pf7.ok create mode 100644 src/regress/sbin/pfctl/pf7.optimized create mode 100644 src/regress/sbin/pfctl/pf70.in create mode 100644 src/regress/sbin/pfctl/pf70.loaded create mode 100644 src/regress/sbin/pfctl/pf70.ok create mode 100644 src/regress/sbin/pfctl/pf70.optimized create mode 100644 src/regress/sbin/pfctl/pf71.in create mode 100644 src/regress/sbin/pfctl/pf71.loaded create mode 100644 src/regress/sbin/pfctl/pf71.ok create mode 100644 src/regress/sbin/pfctl/pf71.optimized create mode 100644 src/regress/sbin/pfctl/pf72.in create mode 100644 src/regress/sbin/pfctl/pf72.loaded create mode 100644 src/regress/sbin/pfctl/pf72.ok create mode 100644 src/regress/sbin/pfctl/pf72.optimized create mode 100644 src/regress/sbin/pfctl/pf73.in create mode 100644 src/regress/sbin/pfctl/pf73.loaded create mode 100644 src/regress/sbin/pfctl/pf73.ok create mode 100644 src/regress/sbin/pfctl/pf73.optimized create mode 100644 src/regress/sbin/pfctl/pf74.in create mode 100644 src/regress/sbin/pfctl/pf74.loaded create mode 100644 src/regress/sbin/pfctl/pf74.ok create mode 100644 src/regress/sbin/pfctl/pf74.optimized create mode 100644 src/regress/sbin/pfctl/pf75.in create mode 100644 src/regress/sbin/pfctl/pf75.loaded create mode 100644 src/regress/sbin/pfctl/pf75.ok create mode 100644 src/regress/sbin/pfctl/pf75.optimized create mode 100644 src/regress/sbin/pfctl/pf76.in create mode 100644 src/regress/sbin/pfctl/pf76.loaded create mode 100644 src/regress/sbin/pfctl/pf76.ok create mode 100644 src/regress/sbin/pfctl/pf76.optimized create mode 100644 src/regress/sbin/pfctl/pf77.in create mode 100644 src/regress/sbin/pfctl/pf77.loaded create mode 100644 src/regress/sbin/pfctl/pf77.ok create mode 100644 src/regress/sbin/pfctl/pf77.optimized create mode 100644 src/regress/sbin/pfctl/pf78.in create mode 100644 src/regress/sbin/pfctl/pf78.loaded create mode 100644 src/regress/sbin/pfctl/pf78.ok create mode 100644 src/regress/sbin/pfctl/pf78.optimized create mode 100644 src/regress/sbin/pfctl/pf79.in create mode 100644 src/regress/sbin/pfctl/pf79.loaded create mode 100644 src/regress/sbin/pfctl/pf79.ok create mode 100644 src/regress/sbin/pfctl/pf79.optimized create mode 100644 src/regress/sbin/pfctl/pf8.in create mode 100644 src/regress/sbin/pfctl/pf8.loaded create mode 100644 src/regress/sbin/pfctl/pf8.ok create mode 100644 src/regress/sbin/pfctl/pf8.optimized create mode 100644 src/regress/sbin/pfctl/pf80.in create mode 100644 src/regress/sbin/pfctl/pf80.loaded create mode 100644 src/regress/sbin/pfctl/pf80.ok create mode 100644 src/regress/sbin/pfctl/pf80.optimized create mode 100644 src/regress/sbin/pfctl/pf81.in create mode 100644 src/regress/sbin/pfctl/pf81.loaded create mode 100644 src/regress/sbin/pfctl/pf81.ok create mode 100644 src/regress/sbin/pfctl/pf81.optimized create mode 100644 src/regress/sbin/pfctl/pf82.in create mode 100644 src/regress/sbin/pfctl/pf82.loaded create mode 100644 src/regress/sbin/pfctl/pf82.ok create mode 100644 src/regress/sbin/pfctl/pf82.optimized create mode 100644 src/regress/sbin/pfctl/pf83.in create mode 100644 src/regress/sbin/pfctl/pf83.ok create mode 100644 src/regress/sbin/pfctl/pf84.in create mode 100644 src/regress/sbin/pfctl/pf84.loaded create mode 100644 src/regress/sbin/pfctl/pf84.ok create mode 100644 src/regress/sbin/pfctl/pf84.optimized create mode 100644 src/regress/sbin/pfctl/pf85.in create mode 100644 src/regress/sbin/pfctl/pf85.ok create mode 100644 src/regress/sbin/pfctl/pf86.in create mode 100644 src/regress/sbin/pfctl/pf86.ok create mode 100644 src/regress/sbin/pfctl/pf87.in create mode 100644 src/regress/sbin/pfctl/pf87.loaded create mode 100644 src/regress/sbin/pfctl/pf87.ok create mode 100644 src/regress/sbin/pfctl/pf87.optimized create mode 100644 src/regress/sbin/pfctl/pf88.in create mode 100644 src/regress/sbin/pfctl/pf88.loaded create mode 100644 src/regress/sbin/pfctl/pf88.ok create mode 100644 src/regress/sbin/pfctl/pf88.optimized create mode 100644 src/regress/sbin/pfctl/pf89.in create mode 100644 src/regress/sbin/pfctl/pf89.loaded create mode 100644 src/regress/sbin/pfctl/pf89.ok create mode 100644 src/regress/sbin/pfctl/pf89.optimized create mode 100644 src/regress/sbin/pfctl/pf9.in create mode 100644 src/regress/sbin/pfctl/pf9.loaded create mode 100644 src/regress/sbin/pfctl/pf9.ok create mode 100644 src/regress/sbin/pfctl/pf9.optimized create mode 100644 src/regress/sbin/pfctl/pf90.in create mode 100644 src/regress/sbin/pfctl/pf90.loaded create mode 100644 src/regress/sbin/pfctl/pf90.ok create mode 100644 src/regress/sbin/pfctl/pf90.optimized create mode 100644 src/regress/sbin/pfctl/pf91.in create mode 100644 src/regress/sbin/pfctl/pf91.loaded create mode 100644 src/regress/sbin/pfctl/pf91.ok create mode 100644 src/regress/sbin/pfctl/pf91.optimized create mode 100644 src/regress/sbin/pfctl/pf92.in create mode 100644 src/regress/sbin/pfctl/pf92.loaded create mode 100644 src/regress/sbin/pfctl/pf92.ok create mode 100644 src/regress/sbin/pfctl/pf92.optimized create mode 100644 src/regress/sbin/pfctl/pf93.in create mode 100644 src/regress/sbin/pfctl/pf93.ok create mode 100644 src/regress/sbin/pfctl/pf94.in create mode 100644 src/regress/sbin/pfctl/pf94.ok create mode 100644 src/regress/sbin/pfctl/pf95.in create mode 100644 src/regress/sbin/pfctl/pf95.include create mode 100644 src/regress/sbin/pfctl/pf95.ok create mode 100644 src/regress/sbin/pfctl/pf96.in create mode 100644 src/regress/sbin/pfctl/pf96.ok create mode 100644 src/regress/sbin/pfctl/pf97.in create mode 100644 src/regress/sbin/pfctl/pf97.ok create mode 100644 src/regress/sbin/pfctl/pf98.in create mode 100644 src/regress/sbin/pfctl/pf98.ok create mode 100644 src/regress/sbin/pfctl/pfail1.in create mode 100644 src/regress/sbin/pfctl/pfail1.ok create mode 100644 src/regress/sbin/pfctl/pfail11.in create mode 100644 src/regress/sbin/pfctl/pfail11.ok create mode 100644 src/regress/sbin/pfctl/pfail12.in create mode 100644 src/regress/sbin/pfctl/pfail12.ok create mode 100644 src/regress/sbin/pfctl/pfail13.in create mode 100644 src/regress/sbin/pfctl/pfail13.ok create mode 100644 src/regress/sbin/pfctl/pfail14.in create mode 100644 src/regress/sbin/pfctl/pfail14.ok create mode 100644 src/regress/sbin/pfctl/pfail15.in create mode 100644 src/regress/sbin/pfctl/pfail15.ok create mode 100644 src/regress/sbin/pfctl/pfail16.in create mode 100644 src/regress/sbin/pfctl/pfail16.ok create mode 100644 src/regress/sbin/pfctl/pfail17.in create mode 100644 src/regress/sbin/pfctl/pfail17.ok create mode 100644 src/regress/sbin/pfctl/pfail18.in create mode 100644 src/regress/sbin/pfctl/pfail18.ok create mode 100644 src/regress/sbin/pfctl/pfail19.in create mode 100644 src/regress/sbin/pfctl/pfail19.ok create mode 100644 src/regress/sbin/pfctl/pfail2.in create mode 100644 src/regress/sbin/pfctl/pfail2.ok create mode 100644 src/regress/sbin/pfctl/pfail20.in create mode 100644 src/regress/sbin/pfctl/pfail20.ok create mode 100644 src/regress/sbin/pfctl/pfail23.in create mode 100644 src/regress/sbin/pfctl/pfail23.ok create mode 100644 src/regress/sbin/pfctl/pfail25.in create mode 100644 src/regress/sbin/pfctl/pfail25.ok create mode 100644 src/regress/sbin/pfctl/pfail27.in create mode 100644 src/regress/sbin/pfctl/pfail27.ok create mode 100644 src/regress/sbin/pfctl/pfail29.in create mode 100644 src/regress/sbin/pfctl/pfail29.ok create mode 100644 src/regress/sbin/pfctl/pfail3.in create mode 100644 src/regress/sbin/pfctl/pfail3.ok create mode 100644 src/regress/sbin/pfctl/pfail30.in create mode 100644 src/regress/sbin/pfctl/pfail30.ok create mode 100644 src/regress/sbin/pfctl/pfail31.in create mode 100644 src/regress/sbin/pfctl/pfail31.ok create mode 100644 src/regress/sbin/pfctl/pfail32.in create mode 100644 src/regress/sbin/pfctl/pfail32.ok create mode 100644 src/regress/sbin/pfctl/pfail33.in create mode 100644 src/regress/sbin/pfctl/pfail33.ok create mode 100644 src/regress/sbin/pfctl/pfail34.in create mode 100644 src/regress/sbin/pfctl/pfail34.ok create mode 100644 src/regress/sbin/pfctl/pfail35.in create mode 100644 src/regress/sbin/pfctl/pfail35.ok create mode 100644 src/regress/sbin/pfctl/pfail36.in create mode 100644 src/regress/sbin/pfctl/pfail36.ok create mode 100644 src/regress/sbin/pfctl/pfail37.in create mode 100644 src/regress/sbin/pfctl/pfail37.ok create mode 100644 src/regress/sbin/pfctl/pfail38.in create mode 100644 src/regress/sbin/pfctl/pfail38.ok create mode 100644 src/regress/sbin/pfctl/pfail39.in create mode 100644 src/regress/sbin/pfctl/pfail39.ok create mode 100644 src/regress/sbin/pfctl/pfail4.in create mode 100644 src/regress/sbin/pfctl/pfail4.ok create mode 100644 src/regress/sbin/pfctl/pfail40.in create mode 100644 src/regress/sbin/pfctl/pfail40.ok create mode 100644 src/regress/sbin/pfctl/pfail41.in create mode 100644 src/regress/sbin/pfctl/pfail41.ok create mode 100644 src/regress/sbin/pfctl/pfail42.in create mode 100644 src/regress/sbin/pfctl/pfail42.ok create mode 100644 src/regress/sbin/pfctl/pfail43.in create mode 100644 src/regress/sbin/pfctl/pfail43.ok create mode 100644 src/regress/sbin/pfctl/pfail44.in create mode 100644 src/regress/sbin/pfctl/pfail44.ok create mode 100644 src/regress/sbin/pfctl/pfail45.in create mode 100644 src/regress/sbin/pfctl/pfail45.ok create mode 100644 src/regress/sbin/pfctl/pfail46.in create mode 100644 src/regress/sbin/pfctl/pfail46.ok create mode 100644 src/regress/sbin/pfctl/pfail47.in create mode 100644 src/regress/sbin/pfctl/pfail47.ok create mode 100644 src/regress/sbin/pfctl/pfail48.in create mode 100644 src/regress/sbin/pfctl/pfail48.ok create mode 100644 src/regress/sbin/pfctl/pfail49.in create mode 100644 src/regress/sbin/pfctl/pfail49.ok create mode 100644 src/regress/sbin/pfctl/pfail5.in create mode 100644 src/regress/sbin/pfctl/pfail5.ok create mode 100644 src/regress/sbin/pfctl/pfail50.in create mode 100644 src/regress/sbin/pfctl/pfail50.ok create mode 100644 src/regress/sbin/pfctl/pfail52.in create mode 100644 src/regress/sbin/pfctl/pfail52.ok create mode 100644 src/regress/sbin/pfctl/pfail53.in create mode 100644 src/regress/sbin/pfctl/pfail53.ok create mode 100644 src/regress/sbin/pfctl/pfail6.in create mode 100644 src/regress/sbin/pfctl/pfail6.ok create mode 100644 src/regress/sbin/pfctl/pfail7.in create mode 100644 src/regress/sbin/pfctl/pfail7.ok create mode 100644 src/regress/sbin/pfctl/pfail8.in create mode 100644 src/regress/sbin/pfctl/pfail8.ok create mode 100644 src/regress/sbin/pfctl/pfaltq1.in create mode 100644 src/regress/sbin/pfctl/pfaltq1.ok create mode 100644 src/regress/sbin/pfctl/pfaltq10.in create mode 100644 src/regress/sbin/pfctl/pfaltq10.ok create mode 100644 src/regress/sbin/pfctl/pfaltq11.in create mode 100644 src/regress/sbin/pfctl/pfaltq11.ok create mode 100644 src/regress/sbin/pfctl/pfaltq12.in create mode 100644 src/regress/sbin/pfctl/pfaltq12.ok create mode 100644 src/regress/sbin/pfctl/pfaltq13.in create mode 100644 src/regress/sbin/pfctl/pfaltq13.ok create mode 100644 src/regress/sbin/pfctl/pfaltq14.in create mode 100644 src/regress/sbin/pfctl/pfaltq14.ok create mode 100644 src/regress/sbin/pfctl/pfaltq2.in create mode 100644 src/regress/sbin/pfctl/pfaltq2.ok create mode 100644 src/regress/sbin/pfctl/pfaltq3.in create mode 100644 src/regress/sbin/pfctl/pfaltq3.ok create mode 100644 src/regress/sbin/pfctl/pfaltq4.in create mode 100644 src/regress/sbin/pfctl/pfaltq4.ok create mode 100644 src/regress/sbin/pfctl/pfaltq5.in create mode 100644 src/regress/sbin/pfctl/pfaltq5.ok create mode 100644 src/regress/sbin/pfctl/pfaltq6.in create mode 100644 src/regress/sbin/pfctl/pfaltq6.ok create mode 100644 src/regress/sbin/pfctl/pfaltq7.in create mode 100644 src/regress/sbin/pfctl/pfaltq7.ok create mode 100644 src/regress/sbin/pfctl/pfaltq8.in create mode 100644 src/regress/sbin/pfctl/pfaltq8.ok create mode 100644 src/regress/sbin/pfctl/pfaltq9.in create mode 100644 src/regress/sbin/pfctl/pfaltq9.ok create mode 100644 src/regress/sbin/pfctl/pfchksum1.in create mode 100644 src/regress/sbin/pfctl/pfchksum1.ok create mode 100644 src/regress/sbin/pfctl/pfchksum2.in create mode 100644 src/regress/sbin/pfctl/pfchksum2.ok create mode 100644 src/regress/sbin/pfctl/pfchksum3.in create mode 100644 src/regress/sbin/pfctl/pfchksum3.ok create mode 100644 src/regress/sbin/pfctl/pfi1.in create mode 100644 src/regress/sbin/pfctl/pfi1.ok create mode 100644 src/regress/sbin/pfctl/pfi2.in create mode 100644 src/regress/sbin/pfctl/pfi2.ok create mode 100644 src/regress/sbin/pfctl/pfi3.in create mode 100644 src/regress/sbin/pfctl/pfi3.ok create mode 100644 src/regress/sbin/pfctl/pfopt1.in create mode 100644 src/regress/sbin/pfctl/pfopt1.ok create mode 100644 src/regress/sbin/pfctl/pfopt1.opts create mode 100644 src/regress/sbin/pfctl/pfopt2.in create mode 100644 src/regress/sbin/pfctl/pfopt2.ok create mode 100644 src/regress/sbin/pfctl/pfopt2.opts create mode 100644 src/regress/sbin/pfctl/pfopt3.in create mode 100644 src/regress/sbin/pfctl/pfopt3.ok create mode 100644 src/regress/sbin/pfctl/pfopt3.opts create mode 100644 src/regress/sbin/pfctl/pfopt6.in create mode 100644 src/regress/sbin/pfctl/pfopt6.ok create mode 100644 src/regress/sbin/pfctl/pfopt6.opts create mode 100644 src/regress/sbin/pfctl/pfr.addrs1 create mode 100644 src/regress/sbin/pfctl/pfr.addrs2 create mode 100644 src/regress/sbin/pfctl/pfr.exec create mode 100644 src/regress/sbin/pfctl/pfr1.in create mode 100644 src/regress/sbin/pfctl/pfr1.ok create mode 100644 src/regress/sbin/pfctl/pfr10.in create mode 100644 src/regress/sbin/pfctl/pfr10.ok create mode 100644 src/regress/sbin/pfctl/pfr11.in create mode 100644 src/regress/sbin/pfctl/pfr11.ok create mode 100644 src/regress/sbin/pfctl/pfr12.in create mode 100644 src/regress/sbin/pfctl/pfr12.ok create mode 100644 src/regress/sbin/pfctl/pfr13.in create mode 100644 src/regress/sbin/pfctl/pfr13.ok create mode 100644 src/regress/sbin/pfctl/pfr2.in create mode 100644 src/regress/sbin/pfctl/pfr2.ok create mode 100644 src/regress/sbin/pfctl/pfr3.in create mode 100644 src/regress/sbin/pfctl/pfr3.ok create mode 100644 src/regress/sbin/pfctl/pfr4.in create mode 100644 src/regress/sbin/pfctl/pfr4.ok create mode 100644 src/regress/sbin/pfctl/pfr5.in create mode 100644 src/regress/sbin/pfctl/pfr5.ok create mode 100644 src/regress/sbin/pfctl/pfr6.in create mode 100644 src/regress/sbin/pfctl/pfr6.ok create mode 100644 src/regress/sbin/pfctl/pfr7.in create mode 100644 src/regress/sbin/pfctl/pfr7.ok create mode 100644 src/regress/sbin/pfctl/pfr8.in create mode 100644 src/regress/sbin/pfctl/pfr8.ok create mode 100644 src/regress/sbin/pfctl/pfr9.in create mode 100644 src/regress/sbin/pfctl/pfr9.ok create mode 100644 src/regress/sbin/pfctl/pfsetup1.clean create mode 100644 src/regress/sbin/pfctl/pfsetup1.in create mode 100644 src/regress/sbin/pfctl/pfsetup1.ok create mode 100644 src/regress/sbin/pfctl/pfsetup1.setup create mode 100644 src/regress/sbin/pfctl/pfsetup2.clean create mode 100644 src/regress/sbin/pfctl/pfsetup2.in create mode 100644 src/regress/sbin/pfctl/pfsetup2.ok create mode 100644 src/regress/sbin/pfctl/pfsetup2.setup create mode 100644 src/regress/sbin/pfctl/pfsetup3.clean create mode 100644 src/regress/sbin/pfctl/pfsetup3.in create mode 100644 src/regress/sbin/pfctl/pfsetup3.ok create mode 100644 src/regress/sbin/pfctl/pfsetup3.setup create mode 100644 src/regress/sbin/pfctl/pfsetup4.clean create mode 100644 src/regress/sbin/pfctl/pfsetup4.in create mode 100644 src/regress/sbin/pfctl/pfsetup4.ok create mode 100644 src/regress/sbin/pfctl/pfsetup4.setup create mode 100644 src/regress/sbin/pfctl/pfsimple1.in create mode 100644 src/regress/sbin/pfctl/pfsimple2.in create mode 100644 src/regress/sbin/route/CVS/Entries create mode 100644 src/regress/sbin/route/CVS/Repository create mode 100644 src/regress/sbin/route/CVS/Root create mode 100644 src/regress/sbin/route/Makefile create mode 120000 src/regress/sbin/route/obj create mode 100644 src/regress/share/CVS/Entries create mode 100644 src/regress/share/CVS/Repository create mode 100644 src/regress/share/CVS/Root create mode 100644 src/regress/share/Makefile create mode 100644 src/regress/share/man/CVS/Entries create mode 100644 src/regress/share/man/CVS/Repository create mode 100644 src/regress/share/man/CVS/Root create mode 100644 src/regress/share/man/Makefile create mode 100644 src/regress/share/man/cfman create mode 100644 src/regress/share/man/no3man create mode 120000 src/regress/share/man/obj create mode 100644 src/regress/share/man/scatman create mode 100644 src/regress/sys/CVS/Entries create mode 100644 src/regress/sys/CVS/Repository create mode 100644 src/regress/sys/CVS/Root create mode 100644 src/regress/sys/Makefile create mode 100644 src/regress/sys/arch/CVS/Entries create mode 100644 src/regress/sys/arch/CVS/Repository create mode 100644 src/regress/sys/arch/CVS/Root create mode 100644 src/regress/sys/arch/hppa/CVS/Entries create mode 100644 src/regress/sys/arch/hppa/CVS/Repository create mode 100644 src/regress/sys/arch/hppa/CVS/Root create mode 100644 src/regress/sys/arch/hppa/Makefile create mode 100644 src/regress/sys/arch/hppa/probe/CVS/Entries create mode 100644 src/regress/sys/arch/hppa/probe/CVS/Repository create mode 100644 src/regress/sys/arch/hppa/probe/CVS/Root create mode 100644 src/regress/sys/arch/hppa/probe/Makefile create mode 100644 src/regress/sys/arch/hppa/probe/probe.c create mode 100644 src/regress/sys/arch/hppa/sfuid/CVS/Entries create mode 100644 src/regress/sys/arch/hppa/sfuid/CVS/Repository create mode 100644 src/regress/sys/arch/hppa/sfuid/CVS/Root create mode 100644 src/regress/sys/arch/hppa/sfuid/Makefile create mode 100644 src/regress/sys/arch/hppa/sfuid/sfuid.c create mode 100644 src/regress/sys/arch/i386/CVS/Entries create mode 100644 src/regress/sys/arch/i386/CVS/Repository create mode 100644 src/regress/sys/arch/i386/CVS/Root create mode 100644 src/regress/sys/arch/i386/Makefile create mode 100644 src/regress/sys/arch/i386/ldt/CVS/Entries create mode 100644 src/regress/sys/arch/i386/ldt/CVS/Repository create mode 100644 src/regress/sys/arch/i386/ldt/CVS/Root create mode 100644 src/regress/sys/arch/i386/ldt/Makefile create mode 100644 src/regress/sys/arch/i386/ldt/testldt.c create mode 100644 src/regress/sys/arch/m68k/060sp/CVS/Entries create mode 100644 src/regress/sys/arch/m68k/060sp/CVS/Repository create mode 100644 src/regress/sys/arch/m68k/060sp/CVS/Root create mode 100644 src/regress/sys/arch/m68k/060sp/Makefile create mode 100644 src/regress/sys/arch/m68k/060sp/dotest.c create mode 100644 src/regress/sys/arch/m68k/060sp/dotestsubs.S create mode 100644 src/regress/sys/arch/m68k/060sp/goodoutput create mode 100644 src/regress/sys/arch/m68k/CVS/Entries create mode 100644 src/regress/sys/arch/m68k/CVS/Repository create mode 100644 src/regress/sys/arch/m68k/CVS/Root create mode 100644 src/regress/sys/arch/m68k/Makefile create mode 100644 src/regress/sys/arch/m68k/emuspeed/CVS/Entries create mode 100644 src/regress/sys/arch/m68k/emuspeed/CVS/Repository create mode 100644 src/regress/sys/arch/m68k/emuspeed/CVS/Root create mode 100644 src/regress/sys/arch/m68k/emuspeed/Makefile create mode 100644 src/regress/sys/arch/m68k/emuspeed/compare create mode 100644 src/regress/sys/arch/m68k/emuspeed/div64.s create mode 100644 src/regress/sys/arch/m68k/emuspeed/emuspeed.c create mode 100644 src/regress/sys/arch/m68k/emuspeed/mul64.s create mode 100644 src/regress/sys/arch/m68k/emuspeed/speed.h create mode 100644 src/regress/sys/arch/m68k/emuspeed/test.s create mode 100644 src/regress/sys/arch/m88k/CVS/Entries create mode 100644 src/regress/sys/arch/m88k/CVS/Repository create mode 100644 src/regress/sys/arch/m88k/CVS/Root create mode 100644 src/regress/sys/arch/m88k/Makefile create mode 100644 src/regress/sys/arch/m88k/usertrap/CVS/Entries create mode 100644 src/regress/sys/arch/m88k/usertrap/CVS/Repository create mode 100644 src/regress/sys/arch/m88k/usertrap/CVS/Root create mode 100644 src/regress/sys/arch/m88k/usertrap/Makefile create mode 100644 src/regress/sys/arch/m88k/usertrap/answer create mode 100644 src/regress/sys/arch/m88k/usertrap/testsuite.sh create mode 100644 src/regress/sys/arch/m88k/usertrap/trap.c create mode 100644 src/regress/sys/arch/sparc64/CVS/Entries create mode 100644 src/regress/sys/arch/sparc64/CVS/Repository create mode 100644 src/regress/sys/arch/sparc64/CVS/Root create mode 100644 src/regress/sys/arch/sparc64/Makefile create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Entries create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Repository create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Root create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/Makefile create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/asi/CVS/Entries create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/asi/CVS/Repository create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/asi/CVS/Root create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/asi/Makefile create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/asi/asi.c create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/asi/asi_asm.S create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Entries create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Repository create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Root create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/Makefile create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/main.c create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/test.S create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Entries create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Repository create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Root create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/Makefile create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/fpregs.S create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/fpregs.h create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/goodfreg.c create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/test_asm.S create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/simm13/CVS/Entries create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/simm13/CVS/Repository create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/simm13/CVS/Root create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/simm13/Makefile create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/simm13/genasm.pl create mode 100644 src/regress/sys/arch/sparc64/emul-ldqstq/simm13/genc.pl create mode 100644 src/regress/sys/arch/sparc64/emul-popc/CVS/Entries create mode 100644 src/regress/sys/arch/sparc64/emul-popc/CVS/Repository create mode 100644 src/regress/sys/arch/sparc64/emul-popc/CVS/Root create mode 100644 src/regress/sys/arch/sparc64/emul-popc/Makefile create mode 100644 src/regress/sys/arch/sparc64/emul-popc/reg/CVS/Entries create mode 100644 src/regress/sys/arch/sparc64/emul-popc/reg/CVS/Repository create mode 100644 src/regress/sys/arch/sparc64/emul-popc/reg/CVS/Root create mode 100644 src/regress/sys/arch/sparc64/emul-popc/reg/Makefile create mode 100644 src/regress/sys/arch/sparc64/emul-popc/reg/reg.c create mode 100644 src/regress/sys/arch/sparc64/emul-popc/simm/CVS/Entries create mode 100644 src/regress/sys/arch/sparc64/emul-popc/simm/CVS/Repository create mode 100644 src/regress/sys/arch/sparc64/emul-popc/simm/CVS/Root create mode 100644 src/regress/sys/arch/sparc64/emul-popc/simm/Makefile create mode 100644 src/regress/sys/arch/sparc64/emul-popc/simm/simm13.c create mode 100644 src/regress/sys/copy/CVS/Entries create mode 100644 src/regress/sys/copy/CVS/Repository create mode 100644 src/regress/sys/copy/CVS/Root create mode 100644 src/regress/sys/copy/Makefile create mode 100644 src/regress/sys/copy/copy.c create mode 120000 src/regress/sys/copy/obj create mode 100644 src/regress/sys/crypto/CVS/Entries create mode 100644 src/regress/sys/crypto/CVS/Repository create mode 100644 src/regress/sys/crypto/CVS/Root create mode 100644 src/regress/sys/crypto/Makefile create mode 100644 src/regress/sys/crypto/aes/CVS/Entries create mode 100644 src/regress/sys/crypto/aes/CVS/Repository create mode 100644 src/regress/sys/crypto/aes/CVS/Root create mode 100644 src/regress/sys/crypto/aes/Makefile create mode 100644 src/regress/sys/crypto/aes/aestest.c create mode 120000 src/regress/sys/crypto/aes/obj create mode 100644 src/regress/sys/crypto/aes/vectors/CVS/Entries create mode 100644 src/regress/sys/crypto/aes/vectors/CVS/Repository create mode 100644 src/regress/sys/crypto/aes/vectors/CVS/Root create mode 100644 src/regress/sys/crypto/aes/vectors/ecbnk44.txt create mode 100644 src/regress/sys/crypto/aes/vectors/ecbnk48.txt create mode 100644 src/regress/sys/crypto/aes/vectors/ecbnt44.txt create mode 100644 src/regress/sys/crypto/aes/vectors/ecbnt48.txt create mode 100644 src/regress/sys/crypto/aes/vectors/ecbvk44.txt create mode 100644 src/regress/sys/crypto/aes/vectors/ecbvk48.txt create mode 100644 src/regress/sys/crypto/aes/vectors/ecbvt44.txt create mode 100644 src/regress/sys/crypto/aes/vectors/ecbvt48.txt create mode 100644 src/regress/sys/crypto/aesctr/CVS/Entries create mode 100644 src/regress/sys/crypto/aesctr/CVS/Repository create mode 100644 src/regress/sys/crypto/aesctr/CVS/Root create mode 100644 src/regress/sys/crypto/aesctr/Makefile create mode 100644 src/regress/sys/crypto/aesctr/aesctr.c create mode 120000 src/regress/sys/crypto/aesctr/obj create mode 100644 src/regress/sys/crypto/aesxts/CVS/Entries create mode 100644 src/regress/sys/crypto/aesxts/CVS/Repository create mode 100644 src/regress/sys/crypto/aesxts/CVS/Root create mode 100644 src/regress/sys/crypto/aesxts/Makefile create mode 100644 src/regress/sys/crypto/aesxts/aes_xts.c create mode 120000 src/regress/sys/crypto/aesxts/obj create mode 100644 src/regress/sys/crypto/auth/CVS/Entries create mode 100644 src/regress/sys/crypto/auth/CVS/Repository create mode 100644 src/regress/sys/crypto/auth/CVS/Root create mode 100644 src/regress/sys/crypto/auth/Makefile create mode 100644 src/regress/sys/crypto/auth/md5.c create mode 100644 src/regress/sys/crypto/cmac/CVS/Entries create mode 100644 src/regress/sys/crypto/cmac/CVS/Repository create mode 100644 src/regress/sys/crypto/cmac/CVS/Root create mode 100644 src/regress/sys/crypto/cmac/Makefile create mode 100644 src/regress/sys/crypto/cmac/cmac_test.c create mode 100644 src/regress/sys/crypto/cmac/cmac_test.txt create mode 120000 src/regress/sys/crypto/cmac/obj create mode 100644 src/regress/sys/crypto/enc/CVS/Entries create mode 100644 src/regress/sys/crypto/enc/CVS/Repository create mode 100644 src/regress/sys/crypto/enc/CVS/Root create mode 100644 src/regress/sys/crypto/enc/Makefile create mode 100644 src/regress/sys/crypto/enc/des3.c create mode 120000 src/regress/sys/crypto/enc/obj create mode 100644 src/regress/sys/crypto/hmac/CVS/Entries create mode 100644 src/regress/sys/crypto/hmac/CVS/Repository create mode 100644 src/regress/sys/crypto/hmac/CVS/Root create mode 100644 src/regress/sys/crypto/hmac/Makefile create mode 100644 src/regress/sys/crypto/hmac/hmac_test.c create mode 100644 src/regress/sys/crypto/hmac/hmac_test.txt create mode 120000 src/regress/sys/crypto/hmac/obj create mode 100644 src/regress/sys/crypto/key_wrap/CVS/Entries create mode 100644 src/regress/sys/crypto/key_wrap/CVS/Repository create mode 100644 src/regress/sys/crypto/key_wrap/CVS/Root create mode 100644 src/regress/sys/crypto/key_wrap/Makefile create mode 100644 src/regress/sys/crypto/key_wrap/key_wrap_test.c create mode 100644 src/regress/sys/crypto/key_wrap/key_wrap_test.txt create mode 120000 src/regress/sys/crypto/key_wrap/obj create mode 100644 src/regress/sys/ddb/CVS/Entries create mode 100644 src/regress/sys/ddb/CVS/Repository create mode 100644 src/regress/sys/ddb/CVS/Root create mode 100644 src/regress/sys/ddb/Makefile create mode 120000 src/regress/sys/ddb/obj create mode 100644 src/regress/sys/dev/CVS/Entries create mode 100644 src/regress/sys/dev/CVS/Repository create mode 100644 src/regress/sys/dev/CVS/Root create mode 100644 src/regress/sys/dev/Makefile create mode 100644 src/regress/sys/dev/audio/CVS/Entries create mode 100644 src/regress/sys/dev/audio/CVS/Repository create mode 100644 src/regress/sys/dev/audio/CVS/Root create mode 100644 src/regress/sys/dev/audio/Makefile create mode 100644 src/regress/sys/dev/audio/adpcm.c create mode 100644 src/regress/sys/dev/audio/adpcm.h create mode 100644 src/regress/sys/dev/audio/autest.1 create mode 100644 src/regress/sys/dev/audio/autest.c create mode 100644 src/regress/sys/dev/audio/law.c create mode 100644 src/regress/sys/dev/audio/law.h create mode 120000 src/regress/sys/dev/audio/obj create mode 100644 src/regress/sys/dev/audio_info/CVS/Entries create mode 100644 src/regress/sys/dev/audio_info/CVS/Repository create mode 100644 src/regress/sys/dev/audio_info/CVS/Root create mode 100644 src/regress/sys/dev/audio_info/Makefile create mode 100644 src/regress/sys/dev/audio_info/audiotest_gsinfo.1 create mode 100644 src/regress/sys/dev/audio_info/audiotest_gsinfo.c create mode 100644 src/regress/sys/dev/audio_rw/CVS/Entries create mode 100644 src/regress/sys/dev/audio_rw/CVS/Repository create mode 100644 src/regress/sys/dev/audio_rw/CVS/Root create mode 100644 src/regress/sys/dev/audio_rw/Makefile create mode 100644 src/regress/sys/dev/audio_rw/audiotest_rw.1 create mode 100644 src/regress/sys/dev/audio_rw/audiotest_rw.c create mode 100644 src/regress/sys/dev/fdesc/CVS/Entries create mode 100644 src/regress/sys/dev/fdesc/CVS/Repository create mode 100644 src/regress/sys/dev/fdesc/CVS/Root create mode 100644 src/regress/sys/dev/fdesc/Makefile create mode 100644 src/regress/sys/dev/fdesc/confuse.c create mode 120000 src/regress/sys/dev/fdesc/obj create mode 100644 src/regress/sys/ffs/CVS/Entries create mode 100644 src/regress/sys/ffs/CVS/Repository create mode 100644 src/regress/sys/ffs/CVS/Root create mode 100644 src/regress/sys/ffs/LICENSE create mode 100644 src/regress/sys/ffs/Makefile create mode 100644 src/regress/sys/ffs/README create mode 100644 src/regress/sys/ffs/fstest.c create mode 100644 src/regress/sys/ffs/run create mode 100644 src/regress/sys/ffs/tests/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/CVS/Root create mode 100644 src/regress/sys/ffs/tests/chflags/00.t create mode 100644 src/regress/sys/ffs/tests/chflags/01.t create mode 100644 src/regress/sys/ffs/tests/chflags/02.t create mode 100644 src/regress/sys/ffs/tests/chflags/03.t create mode 100644 src/regress/sys/ffs/tests/chflags/04.t create mode 100644 src/regress/sys/ffs/tests/chflags/05.t create mode 100644 src/regress/sys/ffs/tests/chflags/06.t create mode 100644 src/regress/sys/ffs/tests/chflags/07.t create mode 100644 src/regress/sys/ffs/tests/chflags/08.t create mode 100644 src/regress/sys/ffs/tests/chflags/09.t create mode 100644 src/regress/sys/ffs/tests/chflags/10.t create mode 100644 src/regress/sys/ffs/tests/chflags/11.t create mode 100644 src/regress/sys/ffs/tests/chflags/12.t create mode 100644 src/regress/sys/ffs/tests/chflags/13.t create mode 100644 src/regress/sys/ffs/tests/chflags/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/chflags/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/chflags/CVS/Root create mode 100644 src/regress/sys/ffs/tests/chmod/00.t create mode 100644 src/regress/sys/ffs/tests/chmod/01.t create mode 100644 src/regress/sys/ffs/tests/chmod/02.t create mode 100644 src/regress/sys/ffs/tests/chmod/03.t create mode 100644 src/regress/sys/ffs/tests/chmod/04.t create mode 100644 src/regress/sys/ffs/tests/chmod/05.t create mode 100644 src/regress/sys/ffs/tests/chmod/06.t create mode 100644 src/regress/sys/ffs/tests/chmod/07.t create mode 100644 src/regress/sys/ffs/tests/chmod/08.t create mode 100644 src/regress/sys/ffs/tests/chmod/09.t create mode 100644 src/regress/sys/ffs/tests/chmod/10.t create mode 100644 src/regress/sys/ffs/tests/chmod/11.t create mode 100644 src/regress/sys/ffs/tests/chmod/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/chmod/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/chmod/CVS/Root create mode 100644 src/regress/sys/ffs/tests/chown/00.t create mode 100644 src/regress/sys/ffs/tests/chown/01.t create mode 100644 src/regress/sys/ffs/tests/chown/02.t create mode 100644 src/regress/sys/ffs/tests/chown/03.t create mode 100644 src/regress/sys/ffs/tests/chown/04.t create mode 100644 src/regress/sys/ffs/tests/chown/05.t create mode 100644 src/regress/sys/ffs/tests/chown/06.t create mode 100644 src/regress/sys/ffs/tests/chown/07.t create mode 100644 src/regress/sys/ffs/tests/chown/08.t create mode 100644 src/regress/sys/ffs/tests/chown/09.t create mode 100644 src/regress/sys/ffs/tests/chown/10.t create mode 100644 src/regress/sys/ffs/tests/chown/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/chown/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/chown/CVS/Root create mode 100644 src/regress/sys/ffs/tests/link/00.t create mode 100644 src/regress/sys/ffs/tests/link/01.t create mode 100644 src/regress/sys/ffs/tests/link/02.t create mode 100644 src/regress/sys/ffs/tests/link/03.t create mode 100644 src/regress/sys/ffs/tests/link/04.t create mode 100644 src/regress/sys/ffs/tests/link/05.t create mode 100644 src/regress/sys/ffs/tests/link/06.t create mode 100644 src/regress/sys/ffs/tests/link/07.t create mode 100644 src/regress/sys/ffs/tests/link/08.t create mode 100644 src/regress/sys/ffs/tests/link/09.t create mode 100644 src/regress/sys/ffs/tests/link/10.t create mode 100644 src/regress/sys/ffs/tests/link/11.t create mode 100644 src/regress/sys/ffs/tests/link/12.t create mode 100644 src/regress/sys/ffs/tests/link/13.t create mode 100644 src/regress/sys/ffs/tests/link/14.t create mode 100644 src/regress/sys/ffs/tests/link/15.t create mode 100644 src/regress/sys/ffs/tests/link/16.t create mode 100644 src/regress/sys/ffs/tests/link/17.t create mode 100644 src/regress/sys/ffs/tests/link/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/link/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/link/CVS/Root create mode 100644 src/regress/sys/ffs/tests/mkdir/00.t create mode 100644 src/regress/sys/ffs/tests/mkdir/01.t create mode 100644 src/regress/sys/ffs/tests/mkdir/02.t create mode 100644 src/regress/sys/ffs/tests/mkdir/03.t create mode 100644 src/regress/sys/ffs/tests/mkdir/04.t create mode 100644 src/regress/sys/ffs/tests/mkdir/05.t create mode 100644 src/regress/sys/ffs/tests/mkdir/06.t create mode 100644 src/regress/sys/ffs/tests/mkdir/07.t create mode 100644 src/regress/sys/ffs/tests/mkdir/08.t create mode 100644 src/regress/sys/ffs/tests/mkdir/09.t create mode 100644 src/regress/sys/ffs/tests/mkdir/10.t create mode 100644 src/regress/sys/ffs/tests/mkdir/11.t create mode 100644 src/regress/sys/ffs/tests/mkdir/12.t create mode 100644 src/regress/sys/ffs/tests/mkdir/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/mkdir/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/mkdir/CVS/Root create mode 100644 src/regress/sys/ffs/tests/mkfifo/00.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/01.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/02.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/03.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/04.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/05.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/06.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/07.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/08.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/09.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/10.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/11.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/12.t create mode 100644 src/regress/sys/ffs/tests/mkfifo/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/mkfifo/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/mkfifo/CVS/Root create mode 100644 src/regress/sys/ffs/tests/open/00.t create mode 100644 src/regress/sys/ffs/tests/open/01.t create mode 100644 src/regress/sys/ffs/tests/open/02.t create mode 100644 src/regress/sys/ffs/tests/open/03.t create mode 100644 src/regress/sys/ffs/tests/open/04.t create mode 100644 src/regress/sys/ffs/tests/open/05.t create mode 100644 src/regress/sys/ffs/tests/open/06.t create mode 100644 src/regress/sys/ffs/tests/open/07.t create mode 100644 src/regress/sys/ffs/tests/open/08.t create mode 100644 src/regress/sys/ffs/tests/open/09.t create mode 100644 src/regress/sys/ffs/tests/open/10.t create mode 100644 src/regress/sys/ffs/tests/open/11.t create mode 100644 src/regress/sys/ffs/tests/open/12.t create mode 100644 src/regress/sys/ffs/tests/open/13.t create mode 100644 src/regress/sys/ffs/tests/open/14.t create mode 100644 src/regress/sys/ffs/tests/open/15.t create mode 100644 src/regress/sys/ffs/tests/open/16.t create mode 100644 src/regress/sys/ffs/tests/open/17.t create mode 100644 src/regress/sys/ffs/tests/open/18.t create mode 100644 src/regress/sys/ffs/tests/open/19.t create mode 100644 src/regress/sys/ffs/tests/open/20.t create mode 100644 src/regress/sys/ffs/tests/open/21.t create mode 100644 src/regress/sys/ffs/tests/open/22.t create mode 100644 src/regress/sys/ffs/tests/open/23.t create mode 100644 src/regress/sys/ffs/tests/open/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/open/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/open/CVS/Root create mode 100644 src/regress/sys/ffs/tests/rename/00.t create mode 100644 src/regress/sys/ffs/tests/rename/01.t create mode 100644 src/regress/sys/ffs/tests/rename/02.t create mode 100644 src/regress/sys/ffs/tests/rename/03.t create mode 100644 src/regress/sys/ffs/tests/rename/04.t create mode 100644 src/regress/sys/ffs/tests/rename/05.t create mode 100644 src/regress/sys/ffs/tests/rename/06.t create mode 100644 src/regress/sys/ffs/tests/rename/07.t create mode 100644 src/regress/sys/ffs/tests/rename/08.t create mode 100644 src/regress/sys/ffs/tests/rename/09.t create mode 100644 src/regress/sys/ffs/tests/rename/10.t create mode 100644 src/regress/sys/ffs/tests/rename/11.t create mode 100644 src/regress/sys/ffs/tests/rename/12.t create mode 100644 src/regress/sys/ffs/tests/rename/13.t create mode 100644 src/regress/sys/ffs/tests/rename/14.t create mode 100644 src/regress/sys/ffs/tests/rename/15.t create mode 100644 src/regress/sys/ffs/tests/rename/16.t create mode 100644 src/regress/sys/ffs/tests/rename/17.t create mode 100644 src/regress/sys/ffs/tests/rename/18.t create mode 100644 src/regress/sys/ffs/tests/rename/19.t create mode 100644 src/regress/sys/ffs/tests/rename/20.t create mode 100644 src/regress/sys/ffs/tests/rename/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/rename/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/rename/CVS/Root create mode 100644 src/regress/sys/ffs/tests/rmdir/00.t create mode 100644 src/regress/sys/ffs/tests/rmdir/01.t create mode 100644 src/regress/sys/ffs/tests/rmdir/02.t create mode 100644 src/regress/sys/ffs/tests/rmdir/03.t create mode 100644 src/regress/sys/ffs/tests/rmdir/04.t create mode 100644 src/regress/sys/ffs/tests/rmdir/05.t create mode 100644 src/regress/sys/ffs/tests/rmdir/06.t create mode 100644 src/regress/sys/ffs/tests/rmdir/07.t create mode 100644 src/regress/sys/ffs/tests/rmdir/08.t create mode 100644 src/regress/sys/ffs/tests/rmdir/09.t create mode 100644 src/regress/sys/ffs/tests/rmdir/10.t create mode 100644 src/regress/sys/ffs/tests/rmdir/11.t create mode 100644 src/regress/sys/ffs/tests/rmdir/12.t create mode 100644 src/regress/sys/ffs/tests/rmdir/13.t create mode 100644 src/regress/sys/ffs/tests/rmdir/14.t create mode 100644 src/regress/sys/ffs/tests/rmdir/15.t create mode 100644 src/regress/sys/ffs/tests/rmdir/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/rmdir/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/rmdir/CVS/Root create mode 100644 src/regress/sys/ffs/tests/symlink/00.t create mode 100644 src/regress/sys/ffs/tests/symlink/01.t create mode 100644 src/regress/sys/ffs/tests/symlink/02.t create mode 100644 src/regress/sys/ffs/tests/symlink/03.t create mode 100644 src/regress/sys/ffs/tests/symlink/04.t create mode 100644 src/regress/sys/ffs/tests/symlink/05.t create mode 100644 src/regress/sys/ffs/tests/symlink/06.t create mode 100644 src/regress/sys/ffs/tests/symlink/07.t create mode 100644 src/regress/sys/ffs/tests/symlink/08.t create mode 100644 src/regress/sys/ffs/tests/symlink/09.t create mode 100644 src/regress/sys/ffs/tests/symlink/10.t create mode 100644 src/regress/sys/ffs/tests/symlink/11.t create mode 100644 src/regress/sys/ffs/tests/symlink/12.t create mode 100644 src/regress/sys/ffs/tests/symlink/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/symlink/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/symlink/CVS/Root create mode 100644 src/regress/sys/ffs/tests/truncate/00.t create mode 100644 src/regress/sys/ffs/tests/truncate/01.t create mode 100644 src/regress/sys/ffs/tests/truncate/02.t create mode 100644 src/regress/sys/ffs/tests/truncate/03.t create mode 100644 src/regress/sys/ffs/tests/truncate/04.t create mode 100644 src/regress/sys/ffs/tests/truncate/05.t create mode 100644 src/regress/sys/ffs/tests/truncate/06.t create mode 100644 src/regress/sys/ffs/tests/truncate/07.t create mode 100644 src/regress/sys/ffs/tests/truncate/08.t create mode 100644 src/regress/sys/ffs/tests/truncate/09.t create mode 100644 src/regress/sys/ffs/tests/truncate/10.t create mode 100644 src/regress/sys/ffs/tests/truncate/11.t create mode 100644 src/regress/sys/ffs/tests/truncate/12.t create mode 100644 src/regress/sys/ffs/tests/truncate/13.t create mode 100644 src/regress/sys/ffs/tests/truncate/14.t create mode 100644 src/regress/sys/ffs/tests/truncate/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/truncate/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/truncate/CVS/Root create mode 100644 src/regress/sys/ffs/tests/unlink/00.t create mode 100644 src/regress/sys/ffs/tests/unlink/01.t create mode 100644 src/regress/sys/ffs/tests/unlink/02.t create mode 100644 src/regress/sys/ffs/tests/unlink/03.t create mode 100644 src/regress/sys/ffs/tests/unlink/04.t create mode 100644 src/regress/sys/ffs/tests/unlink/05.t create mode 100644 src/regress/sys/ffs/tests/unlink/06.t create mode 100644 src/regress/sys/ffs/tests/unlink/07.t create mode 100644 src/regress/sys/ffs/tests/unlink/08.t create mode 100644 src/regress/sys/ffs/tests/unlink/09.t create mode 100644 src/regress/sys/ffs/tests/unlink/10.t create mode 100644 src/regress/sys/ffs/tests/unlink/11.t create mode 100644 src/regress/sys/ffs/tests/unlink/12.t create mode 100644 src/regress/sys/ffs/tests/unlink/13.t create mode 100644 src/regress/sys/ffs/tests/unlink/CVS/Entries create mode 100644 src/regress/sys/ffs/tests/unlink/CVS/Repository create mode 100644 src/regress/sys/ffs/tests/unlink/CVS/Root create mode 100644 src/regress/sys/fifofs/CVS/Entries create mode 100644 src/regress/sys/fifofs/CVS/Repository create mode 100644 src/regress/sys/fifofs/CVS/Root create mode 100644 src/regress/sys/fifofs/Makefile create mode 100644 src/regress/sys/fifofs/fifotest.c create mode 100644 src/regress/sys/fifofs/fifotest.out create mode 120000 src/regress/sys/fifofs/obj create mode 100644 src/regress/sys/kern/CVS/Entries create mode 100644 src/regress/sys/kern/CVS/Repository create mode 100644 src/regress/sys/kern/CVS/Root create mode 100644 src/regress/sys/kern/Makefile create mode 100644 src/regress/sys/kern/__syscall/CVS/Entries create mode 100644 src/regress/sys/kern/__syscall/CVS/Repository create mode 100644 src/regress/sys/kern/__syscall/CVS/Root create mode 100644 src/regress/sys/kern/__syscall/Makefile create mode 100644 src/regress/sys/kern/__syscall/__syscall.c create mode 120000 src/regress/sys/kern/__syscall/obj create mode 100644 src/regress/sys/kern/accept/CVS/Entries create mode 100644 src/regress/sys/kern/accept/CVS/Repository create mode 100644 src/regress/sys/kern/accept/CVS/Root create mode 100644 src/regress/sys/kern/accept/Makefile create mode 100644 src/regress/sys/kern/accept/accept.c create mode 120000 src/regress/sys/kern/accept/obj create mode 100644 src/regress/sys/kern/dup2/CVS/Entries create mode 100644 src/regress/sys/kern/dup2/CVS/Repository create mode 100644 src/regress/sys/kern/dup2/CVS/Root create mode 100644 src/regress/sys/kern/dup2/Makefile create mode 100644 src/regress/sys/kern/dup2/dup2test.c create mode 120000 src/regress/sys/kern/dup2/obj create mode 100644 src/regress/sys/kern/dup2_self/CVS/Entries create mode 100644 src/regress/sys/kern/dup2_self/CVS/Repository create mode 100644 src/regress/sys/kern/dup2_self/CVS/Root create mode 100644 src/regress/sys/kern/dup2_self/Makefile create mode 100644 src/regress/sys/kern/dup2_self/dup2_self.c create mode 120000 src/regress/sys/kern/dup2_self/obj create mode 100644 src/regress/sys/kern/exec_self/CVS/Entries create mode 100644 src/regress/sys/kern/exec_self/CVS/Repository create mode 100644 src/regress/sys/kern/exec_self/CVS/Root create mode 100644 src/regress/sys/kern/exec_self/Makefile create mode 100644 src/regress/sys/kern/exec_self/exec_self.c create mode 120000 src/regress/sys/kern/exec_self/obj create mode 100644 src/regress/sys/kern/execve/CVS/Entries create mode 100644 src/regress/sys/kern/execve/CVS/Repository create mode 100644 src/regress/sys/kern/execve/CVS/Root create mode 100644 src/regress/sys/kern/execve/Makefile create mode 100644 src/regress/sys/kern/execve/doexec.c create mode 100644 src/regress/sys/kern/execve/good/CVS/Entries create mode 100644 src/regress/sys/kern/execve/good/CVS/Repository create mode 100644 src/regress/sys/kern/execve/good/CVS/Root create mode 100644 src/regress/sys/kern/execve/good/badinterplen create mode 100644 src/regress/sys/kern/execve/good/devnullscript create mode 100644 src/regress/sys/kern/execve/good/empty create mode 100644 src/regress/sys/kern/execve/good/goodaout create mode 100644 src/regress/sys/kern/execve/good/goodscript create mode 100644 src/regress/sys/kern/execve/good/nonexistent create mode 100644 src/regress/sys/kern/execve/good/nonexistshell create mode 100644 src/regress/sys/kern/execve/good/scriptarg create mode 100644 src/regress/sys/kern/execve/good/scriptarg-nospace create mode 100644 src/regress/sys/kern/execve/good/truncaout create mode 120000 src/regress/sys/kern/execve/obj create mode 100644 src/regress/sys/kern/execve/tests/CVS/Entries create mode 100644 src/regress/sys/kern/execve/tests/CVS/Repository create mode 100644 src/regress/sys/kern/execve/tests/CVS/Root create mode 100644 src/regress/sys/kern/execve/tests/badinterplen.in create mode 100644 src/regress/sys/kern/execve/tests/devnullscript.in create mode 100644 src/regress/sys/kern/execve/tests/empty.in create mode 100644 src/regress/sys/kern/execve/tests/goodaout.c create mode 100644 src/regress/sys/kern/execve/tests/goodscript.in create mode 100644 src/regress/sys/kern/execve/tests/nonexistshell.in create mode 100644 src/regress/sys/kern/execve/tests/scriptarg-nospace.in create mode 100644 src/regress/sys/kern/execve/tests/scriptarg.in create mode 100644 src/regress/sys/kern/exit/CVS/Entries create mode 100644 src/regress/sys/kern/exit/CVS/Repository create mode 100644 src/regress/sys/kern/exit/CVS/Root create mode 100644 src/regress/sys/kern/exit/Makefile create mode 100644 src/regress/sys/kern/exit/exit.c create mode 120000 src/regress/sys/kern/exit/obj create mode 100644 src/regress/sys/kern/extent/CVS/Entries create mode 100644 src/regress/sys/kern/extent/CVS/Repository create mode 100644 src/regress/sys/kern/extent/CVS/Root create mode 100644 src/regress/sys/kern/extent/Makefile create mode 100644 src/regress/sys/kern/extent/extest.awk create mode 100644 src/regress/sys/kern/extent/extest.exp create mode 120000 src/regress/sys/kern/extent/obj create mode 100644 src/regress/sys/kern/extent/tests create mode 100644 src/regress/sys/kern/fcntl_dup/CVS/Entries create mode 100644 src/regress/sys/kern/fcntl_dup/CVS/Repository create mode 100644 src/regress/sys/kern/fcntl_dup/CVS/Root create mode 100644 src/regress/sys/kern/fcntl_dup/Makefile create mode 100644 src/regress/sys/kern/fcntl_dup/fcntl_dup.c create mode 120000 src/regress/sys/kern/fcntl_dup/obj create mode 100644 src/regress/sys/kern/flock/CVS/Entries create mode 100644 src/regress/sys/kern/flock/CVS/Repository create mode 100644 src/regress/sys/kern/flock/CVS/Root create mode 100644 src/regress/sys/kern/flock/Makefile create mode 100644 src/regress/sys/kern/flock/flock.c create mode 120000 src/regress/sys/kern/flock/obj create mode 100644 src/regress/sys/kern/getpeereid/CVS/Entries create mode 100644 src/regress/sys/kern/getpeereid/CVS/Repository create mode 100644 src/regress/sys/kern/getpeereid/CVS/Root create mode 100644 src/regress/sys/kern/getpeereid/Makefile create mode 100644 src/regress/sys/kern/getpeereid/getpeereid_test.c create mode 120000 src/regress/sys/kern/getpeereid/obj create mode 100644 src/regress/sys/kern/getrusage/CVS/Entries create mode 100644 src/regress/sys/kern/getrusage/CVS/Repository create mode 100644 src/regress/sys/kern/getrusage/CVS/Root create mode 100644 src/regress/sys/kern/getrusage/Makefile create mode 100644 src/regress/sys/kern/getrusage/getrusage.c create mode 120000 src/regress/sys/kern/getrusage/obj create mode 100644 src/regress/sys/kern/gettimeofday/CVS/Entries create mode 100644 src/regress/sys/kern/gettimeofday/CVS/Repository create mode 100644 src/regress/sys/kern/gettimeofday/CVS/Root create mode 100644 src/regress/sys/kern/gettimeofday/Makefile create mode 100644 src/regress/sys/kern/gettimeofday/gettimeofday.c create mode 120000 src/regress/sys/kern/gettimeofday/obj create mode 100644 src/regress/sys/kern/itimer/CVS/Entries create mode 100644 src/regress/sys/kern/itimer/CVS/Repository create mode 100644 src/regress/sys/kern/itimer/CVS/Root create mode 100644 src/regress/sys/kern/itimer/Makefile create mode 100644 src/regress/sys/kern/itimer/itimer.c create mode 120000 src/regress/sys/kern/itimer/obj create mode 100644 src/regress/sys/kern/kqueue/CVS/Entries create mode 100644 src/regress/sys/kern/kqueue/CVS/Repository create mode 100644 src/regress/sys/kern/kqueue/CVS/Root create mode 100644 src/regress/sys/kern/kqueue/Makefile create mode 100644 src/regress/sys/kern/kqueue/kqueue-fork.c create mode 100644 src/regress/sys/kern/kqueue/kqueue-pipe.c create mode 100644 src/regress/sys/kern/kqueue/kqueue-process.c create mode 100644 src/regress/sys/kern/kqueue/kqueue-pty.c create mode 100644 src/regress/sys/kern/kqueue/kqueue-random.c create mode 100644 src/regress/sys/kern/kqueue/kqueue-tun.c create mode 100644 src/regress/sys/kern/kqueue/main.c create mode 120000 src/regress/sys/kern/kqueue/obj create mode 100644 src/regress/sys/kern/mbuf/CVS/Entries create mode 100644 src/regress/sys/kern/mbuf/CVS/Repository create mode 100644 src/regress/sys/kern/mbuf/CVS/Root create mode 100644 src/regress/sys/kern/mbuf/Makefile create mode 100644 src/regress/sys/kern/mbuf/mbuftest.c create mode 120000 src/regress/sys/kern/mbuf/obj create mode 100644 src/regress/sys/kern/minherit/CVS/Entries create mode 100644 src/regress/sys/kern/minherit/CVS/Repository create mode 100644 src/regress/sys/kern/minherit/CVS/Root create mode 100644 src/regress/sys/kern/minherit/Makefile create mode 100644 src/regress/sys/kern/minherit/minherit.c create mode 120000 src/regress/sys/kern/minherit/obj create mode 100644 src/regress/sys/kern/mmap-fail/CVS/Entries create mode 100644 src/regress/sys/kern/mmap-fail/CVS/Repository create mode 100644 src/regress/sys/kern/mmap-fail/CVS/Root create mode 100644 src/regress/sys/kern/mmap-fail/Makefile create mode 100644 src/regress/sys/kern/mmap-fail/mmap-fail.c create mode 120000 src/regress/sys/kern/mmap-fail/obj create mode 100644 src/regress/sys/kern/mmap/CVS/Entries create mode 100644 src/regress/sys/kern/mmap/CVS/Repository create mode 100644 src/regress/sys/kern/mmap/CVS/Root create mode 100644 src/regress/sys/kern/mmap/Makefile create mode 100644 src/regress/sys/kern/mmap/mmaptest.c create mode 120000 src/regress/sys/kern/mmap/obj create mode 100644 src/regress/sys/kern/mmap2/CVS/Entries create mode 100644 src/regress/sys/kern/mmap2/CVS/Repository create mode 100644 src/regress/sys/kern/mmap2/CVS/Root create mode 100644 src/regress/sys/kern/mmap2/Makefile create mode 100644 src/regress/sys/kern/mmap2/mmaptest.c create mode 120000 src/regress/sys/kern/mmap2/obj create mode 100644 src/regress/sys/kern/mmap3/CVS/Entries create mode 100644 src/regress/sys/kern/mmap3/CVS/Repository create mode 100644 src/regress/sys/kern/mmap3/CVS/Root create mode 100644 src/regress/sys/kern/mmap3/Makefile create mode 100644 src/regress/sys/kern/mmap3/mmaptest.c create mode 120000 src/regress/sys/kern/mmap3/obj create mode 100644 src/regress/sys/kern/mquery/CVS/Entries create mode 100644 src/regress/sys/kern/mquery/CVS/Repository create mode 100644 src/regress/sys/kern/mquery/CVS/Root create mode 100644 src/regress/sys/kern/mquery/Makefile create mode 100644 src/regress/sys/kern/mquery/mquery.c create mode 100644 src/regress/sys/kern/nanosleep/CVS/Entries create mode 100644 src/regress/sys/kern/nanosleep/CVS/Repository create mode 100644 src/regress/sys/kern/nanosleep/CVS/Root create mode 100644 src/regress/sys/kern/nanosleep/Makefile create mode 100644 src/regress/sys/kern/nanosleep/nanosleep.c create mode 120000 src/regress/sys/kern/nanosleep/obj create mode 100644 src/regress/sys/kern/noexec/CVS/Entries create mode 100644 src/regress/sys/kern/noexec/CVS/Repository create mode 100644 src/regress/sys/kern/noexec/CVS/Root create mode 100644 src/regress/sys/kern/noexec/Makefile create mode 100644 src/regress/sys/kern/noexec/noexec.c create mode 120000 src/regress/sys/kern/noexec/obj create mode 100644 src/regress/sys/kern/pread/CVS/Entries create mode 100644 src/regress/sys/kern/pread/CVS/Repository create mode 100644 src/regress/sys/kern/pread/CVS/Root create mode 100644 src/regress/sys/kern/pread/Makefile create mode 120000 src/regress/sys/kern/pread/obj create mode 100644 src/regress/sys/kern/pread/pread.c create mode 100644 src/regress/sys/kern/preadv/CVS/Entries create mode 100644 src/regress/sys/kern/preadv/CVS/Repository create mode 100644 src/regress/sys/kern/preadv/CVS/Root create mode 100644 src/regress/sys/kern/preadv/Makefile create mode 120000 src/regress/sys/kern/preadv/obj create mode 100644 src/regress/sys/kern/preadv/preadv.c create mode 100644 src/regress/sys/kern/ptmget/CVS/Entries create mode 100644 src/regress/sys/kern/ptmget/CVS/Repository create mode 100644 src/regress/sys/kern/ptmget/CVS/Root create mode 100644 src/regress/sys/kern/ptmget/Makefile create mode 120000 src/regress/sys/kern/ptmget/obj create mode 100644 src/regress/sys/kern/ptmget/ptmget.c create mode 100644 src/regress/sys/kern/ptrace/CVS/Entries create mode 100644 src/regress/sys/kern/ptrace/CVS/Repository create mode 100644 src/regress/sys/kern/ptrace/CVS/Root create mode 100644 src/regress/sys/kern/ptrace/Makefile create mode 100644 src/regress/sys/kern/ptrace/ptrace.c create mode 100644 src/regress/sys/kern/pwrite/CVS/Entries create mode 100644 src/regress/sys/kern/pwrite/CVS/Repository create mode 100644 src/regress/sys/kern/pwrite/CVS/Root create mode 100644 src/regress/sys/kern/pwrite/Makefile create mode 120000 src/regress/sys/kern/pwrite/obj create mode 100644 src/regress/sys/kern/pwrite/pwrite.c create mode 100644 src/regress/sys/kern/pwritev/CVS/Entries create mode 100644 src/regress/sys/kern/pwritev/CVS/Repository create mode 100644 src/regress/sys/kern/pwritev/CVS/Root create mode 100644 src/regress/sys/kern/pwritev/Makefile create mode 120000 src/regress/sys/kern/pwritev/obj create mode 100644 src/regress/sys/kern/pwritev/pwritev.c create mode 100644 src/regress/sys/kern/rcvtimeo/CVS/Entries create mode 100644 src/regress/sys/kern/rcvtimeo/CVS/Repository create mode 100644 src/regress/sys/kern/rcvtimeo/CVS/Root create mode 100644 src/regress/sys/kern/rcvtimeo/Makefile create mode 120000 src/regress/sys/kern/rcvtimeo/obj create mode 100644 src/regress/sys/kern/rcvtimeo/rcvtimeo.c create mode 100644 src/regress/sys/kern/rfork/CVS/Entries create mode 100644 src/regress/sys/kern/rfork/CVS/Repository create mode 100644 src/regress/sys/kern/rfork/CVS/Root create mode 100644 src/regress/sys/kern/rfork/Makefile create mode 100644 src/regress/sys/kern/rfork/madness/CVS/Entries create mode 100644 src/regress/sys/kern/rfork/madness/CVS/Repository create mode 100644 src/regress/sys/kern/rfork/madness/CVS/Root create mode 100644 src/regress/sys/kern/rfork/madness/Makefile create mode 100644 src/regress/sys/kern/rfork/madness/madness.c create mode 100644 src/regress/sys/kern/rfork/rfcfdg/CVS/Entries create mode 100644 src/regress/sys/kern/rfork/rfcfdg/CVS/Repository create mode 100644 src/regress/sys/kern/rfork/rfcfdg/CVS/Root create mode 100644 src/regress/sys/kern/rfork/rfcfdg/Makefile create mode 100644 src/regress/sys/kern/rfork/rfcfdg/rfcfdg.c create mode 100644 src/regress/sys/kern/rfork/rfmem-stack/CVS/Entries create mode 100644 src/regress/sys/kern/rfork/rfmem-stack/CVS/Repository create mode 100644 src/regress/sys/kern/rfork/rfmem-stack/CVS/Root create mode 100644 src/regress/sys/kern/rfork/rfmem-stack/Makefile create mode 100644 src/regress/sys/kern/rfork/rfmem-stack/rfmem-stack.c create mode 100644 src/regress/sys/kern/rfork/rfmem/CVS/Entries create mode 100644 src/regress/sys/kern/rfork/rfmem/CVS/Repository create mode 100644 src/regress/sys/kern/rfork/rfmem/CVS/Root create mode 100644 src/regress/sys/kern/rfork/rfmem/Makefile create mode 100644 src/regress/sys/kern/rfork/rfmem/rfmem.c create mode 100644 src/regress/sys/kern/rfork/rfnowait/CVS/Entries create mode 100644 src/regress/sys/kern/rfork/rfnowait/CVS/Repository create mode 100644 src/regress/sys/kern/rfork/rfnowait/CVS/Root create mode 100644 src/regress/sys/kern/rfork/rfnowait/Makefile create mode 100644 src/regress/sys/kern/rfork/rfnowait/rfnowait.c create mode 100644 src/regress/sys/kern/rfork/rfsharefd/CVS/Entries create mode 100644 src/regress/sys/kern/rfork/rfsharefd/CVS/Repository create mode 100644 src/regress/sys/kern/rfork/rfsharefd/CVS/Root create mode 100644 src/regress/sys/kern/rfork/rfsharefd/Makefile create mode 100644 src/regress/sys/kern/rfork/rfsharefd/rfsharefd.c create mode 100644 src/regress/sys/kern/rlimit-file/CVS/Entries create mode 100644 src/regress/sys/kern/rlimit-file/CVS/Repository create mode 100644 src/regress/sys/kern/rlimit-file/CVS/Root create mode 100644 src/regress/sys/kern/rlimit-file/Makefile create mode 120000 src/regress/sys/kern/rlimit-file/obj create mode 100644 src/regress/sys/kern/rlimit-file/rlim-file.c create mode 100644 src/regress/sys/kern/sig-stop/CVS/Entries create mode 100644 src/regress/sys/kern/sig-stop/CVS/Repository create mode 100644 src/regress/sys/kern/sig-stop/CVS/Root create mode 100644 src/regress/sys/kern/sig-stop/Makefile create mode 120000 src/regress/sys/kern/sig-stop/obj create mode 100644 src/regress/sys/kern/sig-stop/sig-stop.c create mode 100644 src/regress/sys/kern/signal-stress/CVS/Entries create mode 100644 src/regress/sys/kern/signal-stress/CVS/Repository create mode 100644 src/regress/sys/kern/signal-stress/CVS/Root create mode 100644 src/regress/sys/kern/signal-stress/Makefile create mode 120000 src/regress/sys/kern/signal-stress/obj create mode 100644 src/regress/sys/kern/signal-stress/signal-stress.c create mode 100644 src/regress/sys/kern/signal/CVS/Entries create mode 100644 src/regress/sys/kern/signal/CVS/Repository create mode 100644 src/regress/sys/kern/signal/CVS/Root create mode 100644 src/regress/sys/kern/signal/Makefile create mode 100644 src/regress/sys/kern/signal/cansig/CVS/Entries create mode 100644 src/regress/sys/kern/signal/cansig/CVS/Repository create mode 100644 src/regress/sys/kern/signal/cansig/CVS/Root create mode 100644 src/regress/sys/kern/signal/cansig/Makefile create mode 100644 src/regress/sys/kern/signal/cansig/cansig.c create mode 120000 src/regress/sys/kern/signal/cansig/obj create mode 100644 src/regress/sys/kern/signal/earlysig/CVS/Entries create mode 100644 src/regress/sys/kern/signal/earlysig/CVS/Repository create mode 100644 src/regress/sys/kern/signal/earlysig/CVS/Root create mode 100644 src/regress/sys/kern/signal/earlysig/Makefile create mode 100644 src/regress/sys/kern/signal/earlysig/earlysig.c create mode 120000 src/regress/sys/kern/signal/earlysig/obj create mode 100644 src/regress/sys/kern/signal/fpsig/CVS/Entries create mode 100644 src/regress/sys/kern/signal/fpsig/CVS/Repository create mode 100644 src/regress/sys/kern/signal/fpsig/CVS/Root create mode 100644 src/regress/sys/kern/signal/fpsig/Makefile create mode 100644 src/regress/sys/kern/signal/fpsig/fpsig.c create mode 120000 src/regress/sys/kern/signal/fpsig/obj create mode 100644 src/regress/sys/kern/signal/sigfpe/CVS/Entries create mode 100644 src/regress/sys/kern/signal/sigfpe/CVS/Repository create mode 100644 src/regress/sys/kern/signal/sigfpe/CVS/Root create mode 100644 src/regress/sys/kern/signal/sigfpe/Makefile create mode 120000 src/regress/sys/kern/signal/sigfpe/obj create mode 100644 src/regress/sys/kern/signal/sigfpe/sigfpe.c create mode 100644 src/regress/sys/kern/signal/siginfo_addr/CVS/Entries create mode 100644 src/regress/sys/kern/signal/siginfo_addr/CVS/Repository create mode 100644 src/regress/sys/kern/signal/siginfo_addr/CVS/Root create mode 100644 src/regress/sys/kern/signal/siginfo_addr/Makefile create mode 120000 src/regress/sys/kern/signal/siginfo_addr/obj create mode 100644 src/regress/sys/kern/signal/siginfo_addr/siginfo_addr.c create mode 100644 src/regress/sys/kern/sigsuspend/CVS/Entries create mode 100644 src/regress/sys/kern/sigsuspend/CVS/Repository create mode 100644 src/regress/sys/kern/sigsuspend/CVS/Root create mode 100644 src/regress/sys/kern/sigsuspend/Makefile create mode 120000 src/regress/sys/kern/sigsuspend/obj create mode 100644 src/regress/sys/kern/sigsuspend/sigsuspend.c create mode 100644 src/regress/sys/kern/syscall/CVS/Entries create mode 100644 src/regress/sys/kern/syscall/CVS/Repository create mode 100644 src/regress/sys/kern/syscall/CVS/Root create mode 100644 src/regress/sys/kern/syscall/Makefile create mode 120000 src/regress/sys/kern/syscall/obj create mode 100644 src/regress/sys/kern/syscall/syscall.c create mode 100644 src/regress/sys/kern/sysvmsg/CVS/Entries create mode 100644 src/regress/sys/kern/sysvmsg/CVS/Repository create mode 100644 src/regress/sys/kern/sysvmsg/CVS/Root create mode 100644 src/regress/sys/kern/sysvmsg/Makefile create mode 100644 src/regress/sys/kern/sysvmsg/msgtest.c create mode 120000 src/regress/sys/kern/sysvmsg/obj create mode 100644 src/regress/sys/kern/sysvsem/CVS/Entries create mode 100644 src/regress/sys/kern/sysvsem/CVS/Repository create mode 100644 src/regress/sys/kern/sysvsem/CVS/Root create mode 100644 src/regress/sys/kern/sysvsem/Makefile create mode 120000 src/regress/sys/kern/sysvsem/obj create mode 100644 src/regress/sys/kern/sysvsem/semtest.c create mode 100644 src/regress/sys/kern/sysvshm/CVS/Entries create mode 100644 src/regress/sys/kern/sysvshm/CVS/Repository create mode 100644 src/regress/sys/kern/sysvshm/CVS/Root create mode 100644 src/regress/sys/kern/sysvshm/Makefile create mode 120000 src/regress/sys/kern/sysvshm/obj create mode 100644 src/regress/sys/kern/sysvshm/shmtest.c create mode 100644 src/regress/sys/kern/unalign/CVS/Entries create mode 100644 src/regress/sys/kern/unalign/CVS/Repository create mode 100644 src/regress/sys/kern/unalign/CVS/Root create mode 100644 src/regress/sys/kern/unalign/Makefile create mode 120000 src/regress/sys/kern/unalign/obj create mode 100644 src/regress/sys/kern/unalign/unalign.c create mode 100644 src/regress/sys/kern/unfdpass/CVS/Entries create mode 100644 src/regress/sys/kern/unfdpass/CVS/Repository create mode 100644 src/regress/sys/kern/unfdpass/CVS/Root create mode 100644 src/regress/sys/kern/unfdpass/Makefile create mode 100644 src/regress/sys/kern/unfdpass/expected create mode 120000 src/regress/sys/kern/unfdpass/obj create mode 100644 src/regress/sys/kern/unfdpass/unfdpass.c create mode 100644 src/regress/sys/kern/wait/CVS/Entries create mode 100644 src/regress/sys/kern/wait/CVS/Repository create mode 100644 src/regress/sys/kern/wait/CVS/Root create mode 100644 src/regress/sys/kern/wait/Makefile create mode 120000 src/regress/sys/kern/wait/obj create mode 100644 src/regress/sys/kern/wait/wait.c create mode 100644 src/regress/sys/net/CVS/Entries create mode 100644 src/regress/sys/net/CVS/Repository create mode 100644 src/regress/sys/net/CVS/Root create mode 100644 src/regress/sys/net/Makefile create mode 120000 src/regress/sys/net/obj create mode 100644 src/regress/sys/net/pf_print_test.c create mode 100644 src/regress/sys/ptrace/CVS/Entries create mode 100644 src/regress/sys/ptrace/CVS/Repository create mode 100644 src/regress/sys/ptrace/CVS/Root create mode 100644 src/regress/sys/ptrace/Makefile create mode 120000 src/regress/sys/ptrace/obj create mode 100644 src/regress/sys/ptrace/ptrace.c create mode 100644 src/regress/sys/sys/CVS/Entries create mode 100644 src/regress/sys/sys/CVS/Repository create mode 100644 src/regress/sys/sys/CVS/Root create mode 100644 src/regress/sys/sys/Makefile create mode 100644 src/regress/sys/sys/tree/CVS/Entries create mode 100644 src/regress/sys/sys/tree/CVS/Repository create mode 100644 src/regress/sys/sys/tree/CVS/Root create mode 100644 src/regress/sys/sys/tree/Makefile create mode 100644 src/regress/sys/sys/tree/rb/CVS/Entries create mode 100644 src/regress/sys/sys/tree/rb/CVS/Repository create mode 100644 src/regress/sys/sys/tree/rb/CVS/Root create mode 100644 src/regress/sys/sys/tree/rb/Makefile create mode 120000 src/regress/sys/sys/tree/rb/obj create mode 100644 src/regress/sys/sys/tree/rb/rb-test.c create mode 100644 src/regress/sys/sys/tree/splay/CVS/Entries create mode 100644 src/regress/sys/sys/tree/splay/CVS/Repository create mode 100644 src/regress/sys/sys/tree/splay/CVS/Root create mode 100644 src/regress/sys/sys/tree/splay/Makefile create mode 120000 src/regress/sys/sys/tree/splay/obj create mode 100644 src/regress/sys/sys/tree/splay/splay-test.c create mode 100644 src/regress/sys/uvm/CVS/Entries create mode 100644 src/regress/sys/uvm/CVS/Repository create mode 100644 src/regress/sys/uvm/CVS/Root create mode 100644 src/regress/sys/uvm/Makefile create mode 100644 src/regress/sys/uvm/misc/CVS/Entries create mode 100644 src/regress/sys/uvm/misc/CVS/Repository create mode 100644 src/regress/sys/uvm/misc/CVS/Root create mode 100644 src/regress/sys/uvm/misc/Makefile create mode 100644 src/regress/sys/uvm/misc/misc.c create mode 120000 src/regress/sys/uvm/misc/obj create mode 100644 src/regress/sys/uvm/mmap_4g/CVS/Entries create mode 100644 src/regress/sys/uvm/mmap_4g/CVS/Repository create mode 100644 src/regress/sys/uvm/mmap_4g/CVS/Root create mode 100644 src/regress/sys/uvm/mmap_4g/Makefile create mode 100644 src/regress/sys/uvm/mmap_4g/mmap_4g.c create mode 120000 src/regress/sys/uvm/mmap_4g/obj create mode 100644 src/regress/sys/uvm/mmap_fixed/CVS/Entries create mode 100644 src/regress/sys/uvm/mmap_fixed/CVS/Repository create mode 100644 src/regress/sys/uvm/mmap_fixed/CVS/Root create mode 100644 src/regress/sys/uvm/mmap_fixed/Makefile create mode 100644 src/regress/sys/uvm/mmap_fixed/mmap_fixed.c create mode 120000 src/regress/sys/uvm/mmap_fixed/obj create mode 100644 src/regress/sys/uvm/mmap_mod/CVS/Entries create mode 100644 src/regress/sys/uvm/mmap_mod/CVS/Repository create mode 100644 src/regress/sys/uvm/mmap_mod/CVS/Root create mode 100644 src/regress/sys/uvm/mmap_mod/Makefile create mode 100644 src/regress/sys/uvm/mmap_mod/mmap_mod.c create mode 120000 src/regress/sys/uvm/mmap_mod/obj create mode 100644 src/regress/sys/uvm/mmap_size/CVS/Entries create mode 100644 src/regress/sys/uvm/mmap_size/CVS/Repository create mode 100644 src/regress/sys/uvm/mmap_size/CVS/Root create mode 100644 src/regress/sys/uvm/mmap_size/Makefile create mode 100644 src/regress/sys/uvm/mmap_size/mmap_size.c create mode 120000 src/regress/sys/uvm/mmap_size/obj create mode 100644 src/regress/usr.bin/CVS/CVS/Entries create mode 100644 src/regress/usr.bin/CVS/CVS/Repository create mode 100644 src/regress/usr.bin/CVS/CVS/Root create mode 100644 src/regress/usr.bin/CVS/Entries create mode 100644 src/regress/usr.bin/CVS/Makefile create mode 100644 src/regress/usr.bin/CVS/Repository create mode 100644 src/regress/usr.bin/CVS/Root create mode 100644 src/regress/usr.bin/CVS/import_seed/CVS/Entries create mode 100644 src/regress/usr.bin/CVS/import_seed/CVS/Repository create mode 100644 src/regress/usr.bin/CVS/import_seed/CVS/Root create mode 100644 src/regress/usr.bin/CVS/import_seed/seed1.txt create mode 100644 src/regress/usr.bin/CVS/setdate.pl create mode 100644 src/regress/usr.bin/CVS/test_cvs_import_01_seed1.txt,v create mode 100644 src/regress/usr.bin/CVS/test_opencvs_import_01_seed1.txt,v create mode 100644 src/regress/usr.bin/Makefile create mode 100644 src/regress/usr.bin/basename/CVS/Entries create mode 100644 src/regress/usr.bin/basename/CVS/Repository create mode 100644 src/regress/usr.bin/basename/CVS/Root create mode 100644 src/regress/usr.bin/basename/Makefile create mode 100644 src/regress/usr.bin/basename/basename.sh create mode 120000 src/regress/usr.bin/basename/obj create mode 100644 src/regress/usr.bin/bc/CVS/Entries create mode 100644 src/regress/usr.bin/bc/CVS/Repository create mode 100644 src/regress/usr.bin/bc/CVS/Root create mode 100644 src/regress/usr.bin/bc/Makefile create mode 120000 src/regress/usr.bin/bc/obj create mode 100644 src/regress/usr.bin/bc/t1.in create mode 100644 src/regress/usr.bin/bc/t1.out create mode 100644 src/regress/usr.bin/bc/t10.in create mode 100644 src/regress/usr.bin/bc/t10.out create mode 100644 src/regress/usr.bin/bc/t11.in create mode 100644 src/regress/usr.bin/bc/t11.out create mode 100644 src/regress/usr.bin/bc/t12.in create mode 100644 src/regress/usr.bin/bc/t12.out create mode 100644 src/regress/usr.bin/bc/t13.in create mode 100644 src/regress/usr.bin/bc/t13.out create mode 100644 src/regress/usr.bin/bc/t14.in create mode 100644 src/regress/usr.bin/bc/t14.out create mode 100644 src/regress/usr.bin/bc/t15.in create mode 100644 src/regress/usr.bin/bc/t15.out create mode 100644 src/regress/usr.bin/bc/t16.in create mode 100644 src/regress/usr.bin/bc/t16.out create mode 100644 src/regress/usr.bin/bc/t17.in create mode 100644 src/regress/usr.bin/bc/t17.out create mode 100644 src/regress/usr.bin/bc/t18.in create mode 100644 src/regress/usr.bin/bc/t18.out create mode 100644 src/regress/usr.bin/bc/t2.in create mode 100644 src/regress/usr.bin/bc/t2.out create mode 100644 src/regress/usr.bin/bc/t3.in create mode 100644 src/regress/usr.bin/bc/t3.out create mode 100644 src/regress/usr.bin/bc/t4.in create mode 100644 src/regress/usr.bin/bc/t4.out create mode 100644 src/regress/usr.bin/bc/t5.in create mode 100644 src/regress/usr.bin/bc/t5.out create mode 100644 src/regress/usr.bin/bc/t6.in create mode 100644 src/regress/usr.bin/bc/t6.out create mode 100644 src/regress/usr.bin/bc/t7.in create mode 100644 src/regress/usr.bin/bc/t7.out create mode 100644 src/regress/usr.bin/bc/t8.in create mode 100644 src/regress/usr.bin/bc/t8.out create mode 100644 src/regress/usr.bin/bc/t9.in create mode 100644 src/regress/usr.bin/bc/t9.out create mode 100644 src/regress/usr.bin/cap_mkdb/CVS/Entries create mode 100644 src/regress/usr.bin/cap_mkdb/CVS/Repository create mode 100644 src/regress/usr.bin/cap_mkdb/CVS/Root create mode 100644 src/regress/usr.bin/cap_mkdb/Makefile create mode 120000 src/regress/usr.bin/cap_mkdb/obj create mode 100644 src/regress/usr.bin/cap_mkdb/shortname.in create mode 100644 src/regress/usr.bin/dc/CVS/Entries create mode 100644 src/regress/usr.bin/dc/CVS/Repository create mode 100644 src/regress/usr.bin/dc/CVS/Root create mode 100644 src/regress/usr.bin/dc/Makefile create mode 120000 src/regress/usr.bin/dc/obj create mode 100644 src/regress/usr.bin/dc/t1.in create mode 100644 src/regress/usr.bin/dc/t1.out create mode 100644 src/regress/usr.bin/dc/t10.in create mode 100644 src/regress/usr.bin/dc/t10.out create mode 100644 src/regress/usr.bin/dc/t11.in create mode 100644 src/regress/usr.bin/dc/t11.out create mode 100644 src/regress/usr.bin/dc/t12.in create mode 100644 src/regress/usr.bin/dc/t12.out create mode 100644 src/regress/usr.bin/dc/t13.in create mode 100644 src/regress/usr.bin/dc/t13.out create mode 100644 src/regress/usr.bin/dc/t14.in create mode 100644 src/regress/usr.bin/dc/t14.out create mode 100644 src/regress/usr.bin/dc/t15.in create mode 100644 src/regress/usr.bin/dc/t15.out create mode 100644 src/regress/usr.bin/dc/t16.in create mode 100644 src/regress/usr.bin/dc/t16.out create mode 100644 src/regress/usr.bin/dc/t17.in create mode 100644 src/regress/usr.bin/dc/t17.out create mode 100644 src/regress/usr.bin/dc/t18.in create mode 100644 src/regress/usr.bin/dc/t18.out create mode 100644 src/regress/usr.bin/dc/t19.in create mode 100644 src/regress/usr.bin/dc/t19.out create mode 100644 src/regress/usr.bin/dc/t2.in create mode 100644 src/regress/usr.bin/dc/t2.out create mode 100644 src/regress/usr.bin/dc/t20.in create mode 100644 src/regress/usr.bin/dc/t20.out create mode 100644 src/regress/usr.bin/dc/t21.in create mode 100644 src/regress/usr.bin/dc/t21.out create mode 100644 src/regress/usr.bin/dc/t22.in create mode 100644 src/regress/usr.bin/dc/t22.out create mode 100644 src/regress/usr.bin/dc/t23.in create mode 100644 src/regress/usr.bin/dc/t23.out create mode 100644 src/regress/usr.bin/dc/t24.in create mode 100644 src/regress/usr.bin/dc/t24.out create mode 100644 src/regress/usr.bin/dc/t25.in create mode 100644 src/regress/usr.bin/dc/t25.out create mode 100644 src/regress/usr.bin/dc/t26.in create mode 100644 src/regress/usr.bin/dc/t26.out create mode 100644 src/regress/usr.bin/dc/t3.in create mode 100644 src/regress/usr.bin/dc/t3.out create mode 100644 src/regress/usr.bin/dc/t4.in create mode 100644 src/regress/usr.bin/dc/t4.out create mode 100644 src/regress/usr.bin/dc/t5.in create mode 100644 src/regress/usr.bin/dc/t5.out create mode 100644 src/regress/usr.bin/dc/t6.in create mode 100644 src/regress/usr.bin/dc/t6.out create mode 100644 src/regress/usr.bin/dc/t7.in create mode 100644 src/regress/usr.bin/dc/t7.out create mode 100644 src/regress/usr.bin/dc/t8.in create mode 100644 src/regress/usr.bin/dc/t8.out create mode 100644 src/regress/usr.bin/dc/t9.in create mode 100644 src/regress/usr.bin/dc/t9.out create mode 100644 src/regress/usr.bin/diff/CVS/Entries create mode 100644 src/regress/usr.bin/diff/CVS/Repository create mode 100644 src/regress/usr.bin/diff/CVS/Root create mode 100644 src/regress/usr.bin/diff/Makefile create mode 120000 src/regress/usr.bin/diff/obj create mode 100644 src/regress/usr.bin/diff/t1.1 create mode 100644 src/regress/usr.bin/diff/t1.2 create mode 100644 src/regress/usr.bin/diff/t10.1 create mode 100644 src/regress/usr.bin/diff/t10.2 create mode 100644 src/regress/usr.bin/diff/t11.1 create mode 100644 src/regress/usr.bin/diff/t11.2 create mode 100644 src/regress/usr.bin/diff/t12.1 create mode 100644 src/regress/usr.bin/diff/t12.2 create mode 100644 src/regress/usr.bin/diff/t13.1 create mode 100644 src/regress/usr.bin/diff/t13.2 create mode 100644 src/regress/usr.bin/diff/t2.1 create mode 100644 src/regress/usr.bin/diff/t2.2 create mode 100644 src/regress/usr.bin/diff/t3.1 create mode 100644 src/regress/usr.bin/diff/t3.2 create mode 100644 src/regress/usr.bin/diff/t4.1 create mode 100644 src/regress/usr.bin/diff/t4.2 create mode 100644 src/regress/usr.bin/diff/t5.1 create mode 100644 src/regress/usr.bin/diff/t5.2 create mode 100644 src/regress/usr.bin/diff/t6.1 create mode 100644 src/regress/usr.bin/diff/t6.2 create mode 100644 src/regress/usr.bin/diff/t7.1 create mode 100644 src/regress/usr.bin/diff/t7.2 create mode 100644 src/regress/usr.bin/diff/t8.1 create mode 100644 src/regress/usr.bin/diff/t8.2 create mode 100644 src/regress/usr.bin/diff/t9.1 create mode 100644 src/regress/usr.bin/diff/t9.2 create mode 100644 src/regress/usr.bin/diff/torture/CVS/Entries create mode 100644 src/regress/usr.bin/diff/torture/CVS/Repository create mode 100644 src/regress/usr.bin/diff/torture/CVS/Root create mode 100644 src/regress/usr.bin/diff/torture/torture create mode 100644 src/regress/usr.bin/diff3/CVS/Entries create mode 100644 src/regress/usr.bin/diff3/CVS/Repository create mode 100644 src/regress/usr.bin/diff3/CVS/Root create mode 100644 src/regress/usr.bin/diff3/Makefile create mode 120000 src/regress/usr.bin/diff3/obj create mode 100644 src/regress/usr.bin/dirname/CVS/Entries create mode 100644 src/regress/usr.bin/dirname/CVS/Repository create mode 100644 src/regress/usr.bin/dirname/CVS/Root create mode 100644 src/regress/usr.bin/dirname/Makefile create mode 100644 src/regress/usr.bin/dirname/dirname.sh create mode 120000 src/regress/usr.bin/dirname/obj create mode 100644 src/regress/usr.bin/file/CVS/Entries create mode 100644 src/regress/usr.bin/file/CVS/Repository create mode 100644 src/regress/usr.bin/file/CVS/Root create mode 100644 src/regress/usr.bin/file/Makefile create mode 100644 src/regress/usr.bin/file/t0.in create mode 100644 src/regress/usr.bin/file/t0.out create mode 100644 src/regress/usr.bin/file/t1.in create mode 100644 src/regress/usr.bin/file/t1.out create mode 100644 src/regress/usr.bin/file/t10.in create mode 100644 src/regress/usr.bin/file/t10.out create mode 100644 src/regress/usr.bin/file/t15.in create mode 100644 src/regress/usr.bin/file/t15.out create mode 100644 src/regress/usr.bin/file/t17.in create mode 100644 src/regress/usr.bin/file/t17.out create mode 100644 src/regress/usr.bin/file/t18.in create mode 100644 src/regress/usr.bin/file/t18.out create mode 100644 src/regress/usr.bin/file/t2.in create mode 100644 src/regress/usr.bin/file/t2.out create mode 100644 src/regress/usr.bin/file/t20.in create mode 100644 src/regress/usr.bin/file/t20.out create mode 100644 src/regress/usr.bin/file/t21.in create mode 100644 src/regress/usr.bin/file/t21.out create mode 100644 src/regress/usr.bin/file/t22.in create mode 100644 src/regress/usr.bin/file/t22.out create mode 100644 src/regress/usr.bin/file/t23.in create mode 100644 src/regress/usr.bin/file/t23.out create mode 100644 src/regress/usr.bin/file/t3.in create mode 100644 src/regress/usr.bin/file/t3.out create mode 100644 src/regress/usr.bin/file/t30.in create mode 100644 src/regress/usr.bin/file/t30.out create mode 100644 src/regress/usr.bin/file/t4.in create mode 100644 src/regress/usr.bin/file/t4.out create mode 100644 src/regress/usr.bin/file/t5.in create mode 100644 src/regress/usr.bin/file/t5.out create mode 100644 src/regress/usr.bin/file/t6.in create mode 100644 src/regress/usr.bin/file/t6.out create mode 100644 src/regress/usr.bin/file/t7.in create mode 100644 src/regress/usr.bin/file/t7.out create mode 100644 src/regress/usr.bin/file/t8.in create mode 100644 src/regress/usr.bin/file/t8.out create mode 100644 src/regress/usr.bin/file/t9.in create mode 100644 src/regress/usr.bin/file/t9.out create mode 100644 src/regress/usr.bin/grep/CVS/Entries create mode 100644 src/regress/usr.bin/grep/CVS/Repository create mode 100644 src/regress/usr.bin/grep/CVS/Root create mode 100644 src/regress/usr.bin/grep/Makefile create mode 100644 src/regress/usr.bin/grep/in create mode 120000 src/regress/usr.bin/grep/obj create mode 100644 src/regress/usr.bin/grep/t1.out create mode 100644 src/regress/usr.bin/grep/t11.out create mode 100644 src/regress/usr.bin/grep/t13.in create mode 100644 src/regress/usr.bin/grep/t13.out create mode 100644 src/regress/usr.bin/grep/t14.in create mode 100644 src/regress/usr.bin/grep/t15.in create mode 100644 src/regress/usr.bin/grep/t15.out create mode 100644 src/regress/usr.bin/grep/t17.in create mode 100644 src/regress/usr.bin/grep/t17.out create mode 100644 src/regress/usr.bin/grep/t19.in create mode 100644 src/regress/usr.bin/grep/t19.out create mode 100644 src/regress/usr.bin/grep/t21.out create mode 100644 src/regress/usr.bin/grep/t22.in create mode 100644 src/regress/usr.bin/grep/t23.in create mode 100644 src/regress/usr.bin/grep/t23.out create mode 100644 src/regress/usr.bin/grep/t3.out create mode 100644 src/regress/usr.bin/grep/t4.out create mode 100644 src/regress/usr.bin/grep/t5.out create mode 100644 src/regress/usr.bin/grep/t6.out create mode 100644 src/regress/usr.bin/grep/t7.out create mode 100644 src/regress/usr.bin/gzip/CVS/Entries create mode 100644 src/regress/usr.bin/gzip/CVS/Repository create mode 100644 src/regress/usr.bin/gzip/CVS/Root create mode 100644 src/regress/usr.bin/gzip/Makefile create mode 120000 src/regress/usr.bin/gzip/obj create mode 100644 src/regress/usr.bin/gzip/t1.sh create mode 100644 src/regress/usr.bin/gzip/t2.sh create mode 100644 src/regress/usr.bin/gzsig/CVS/Entries create mode 100644 src/regress/usr.bin/gzsig/CVS/Repository create mode 100644 src/regress/usr.bin/gzsig/CVS/Root create mode 100644 src/regress/usr.bin/gzsig/Makefile create mode 100644 src/regress/usr.bin/gzsig/file1 create mode 100644 src/regress/usr.bin/gzsig/file2 create mode 100644 src/regress/usr.bin/gzsig/file3 create mode 100644 src/regress/usr.bin/gzsig/gzsig.sh create mode 120000 src/regress/usr.bin/gzsig/obj create mode 100644 src/regress/usr.bin/gzsig/pass.ssh create mode 100644 src/regress/usr.bin/gzsig/pass.ssh2 create mode 100644 src/regress/usr.bin/gzsig/ssh-rsa create mode 100644 src/regress/usr.bin/gzsig/ssh-rsa-pass create mode 100644 src/regress/usr.bin/gzsig/ssh-rsa-pass.pub create mode 100644 src/regress/usr.bin/gzsig/ssh-rsa.pub create mode 100644 src/regress/usr.bin/gzsig/ssh2-dsa create mode 100644 src/regress/usr.bin/gzsig/ssh2-dsa-pass create mode 100644 src/regress/usr.bin/gzsig/ssh2-dsa-pass.pub create mode 100644 src/regress/usr.bin/gzsig/ssh2-dsa.pub create mode 100644 src/regress/usr.bin/gzsig/ssh2-rsa create mode 100644 src/regress/usr.bin/gzsig/ssh2-rsa-pass create mode 100644 src/regress/usr.bin/gzsig/ssh2-rsa-pass.pub create mode 100644 src/regress/usr.bin/gzsig/ssh2-rsa.pub create mode 100644 src/regress/usr.bin/gzsig/x509-dsa create mode 100644 src/regress/usr.bin/gzsig/x509-dsa-pass create mode 100644 src/regress/usr.bin/gzsig/x509-dsa-pass.pub create mode 100644 src/regress/usr.bin/gzsig/x509-dsa.pub create mode 100644 src/regress/usr.bin/gzsig/x509-rsa create mode 100644 src/regress/usr.bin/gzsig/x509-rsa-pass create mode 100644 src/regress/usr.bin/gzsig/x509-rsa-pass.pub create mode 100644 src/regress/usr.bin/gzsig/x509-rsa.pub create mode 100644 src/regress/usr.bin/m4/CVS/Entries create mode 100644 src/regress/usr.bin/m4/CVS/Repository create mode 100644 src/regress/usr.bin/m4/CVS/Root create mode 100644 src/regress/usr.bin/m4/Makefile create mode 100644 src/regress/usr.bin/m4/args.m4 create mode 100644 src/regress/usr.bin/m4/args.out create mode 100644 src/regress/usr.bin/m4/args2.m4 create mode 100644 src/regress/usr.bin/m4/args2.out create mode 100644 src/regress/usr.bin/m4/comments.m4 create mode 100644 src/regress/usr.bin/m4/comments.out create mode 100644 src/regress/usr.bin/m4/dumpdef.m4 create mode 100644 src/regress/usr.bin/m4/esyscmd.m4 create mode 100644 src/regress/usr.bin/m4/esyscmd.out create mode 100644 src/regress/usr.bin/m4/eval.m4 create mode 100644 src/regress/usr.bin/m4/eval.out create mode 100644 src/regress/usr.bin/m4/ff_after_dnl.m4.uu create mode 100644 src/regress/usr.bin/m4/ff_after_dnl.out create mode 100644 src/regress/usr.bin/m4/fibo.m4 create mode 100644 src/regress/usr.bin/m4/fibo.pl create mode 100644 src/regress/usr.bin/m4/gm4wrap3.out create mode 100644 src/regress/usr.bin/m4/gnuformat.m4 create mode 100644 src/regress/usr.bin/m4/gnuformat.out create mode 100644 src/regress/usr.bin/m4/gnupatterns.m4 create mode 100644 src/regress/usr.bin/m4/gnupatterns.out create mode 100644 src/regress/usr.bin/m4/gnupatterns2.m4 create mode 100644 src/regress/usr.bin/m4/gnupatterns2.out create mode 100644 src/regress/usr.bin/m4/gnuprefix.m4 create mode 100644 src/regress/usr.bin/m4/gnuprefix.out create mode 100644 src/regress/usr.bin/m4/includes.aux create mode 100644 src/regress/usr.bin/m4/includes.m4 create mode 100644 src/regress/usr.bin/m4/includes.out create mode 100644 src/regress/usr.bin/m4/m4wrap.m4 create mode 100644 src/regress/usr.bin/m4/m4wrap.out create mode 100644 src/regress/usr.bin/m4/m4wrap2.m4 create mode 100644 src/regress/usr.bin/m4/m4wrap3.m4 create mode 100644 src/regress/usr.bin/m4/m4wrap3.out create mode 120000 src/regress/usr.bin/m4/obj create mode 100644 src/regress/usr.bin/m4/patterns.m4 create mode 100644 src/regress/usr.bin/m4/patterns.out create mode 100644 src/regress/usr.bin/m4/quotes.gnu.out create mode 100644 src/regress/usr.bin/m4/quotes.m4 create mode 100644 src/regress/usr.bin/m4/quotes.out create mode 100644 src/regress/usr.bin/m4/reconstitute create mode 100644 src/regress/usr.bin/m4/redef.m4 create mode 100644 src/regress/usr.bin/m4/redef.out create mode 100644 src/regress/usr.bin/m4/strangequotes.m4.uu create mode 100644 src/regress/usr.bin/m4/strangequotes.out create mode 100644 src/regress/usr.bin/m4/synch1.m4 create mode 100644 src/regress/usr.bin/m4/synch1.out create mode 100644 src/regress/usr.bin/m4/synch1bis.out create mode 100644 src/regress/usr.bin/m4/translit.m4 create mode 100644 src/regress/usr.bin/m4/translit.out create mode 100644 src/regress/usr.bin/m4/weird,name.m4 create mode 100644 src/regress/usr.bin/make/CVS/Entries create mode 100644 src/regress/usr.bin/make/CVS/Repository create mode 100644 src/regress/usr.bin/make/CVS/Root create mode 100644 src/regress/usr.bin/make/Makefile create mode 100644 src/regress/usr.bin/make/mk1 create mode 100644 src/regress/usr.bin/make/mk10 create mode 100644 src/regress/usr.bin/make/mk11 create mode 100644 src/regress/usr.bin/make/mk12 create mode 100644 src/regress/usr.bin/make/mk13 create mode 100644 src/regress/usr.bin/make/mk14 create mode 100644 src/regress/usr.bin/make/mk15 create mode 100644 src/regress/usr.bin/make/mk16 create mode 100644 src/regress/usr.bin/make/mk17 create mode 100644 src/regress/usr.bin/make/mk18 create mode 100644 src/regress/usr.bin/make/mk19 create mode 100644 src/regress/usr.bin/make/mk2 create mode 100644 src/regress/usr.bin/make/mk20 create mode 100644 src/regress/usr.bin/make/mk21 create mode 100644 src/regress/usr.bin/make/mk22 create mode 100644 src/regress/usr.bin/make/mk23 create mode 100644 src/regress/usr.bin/make/mk24 create mode 100644 src/regress/usr.bin/make/mk25 create mode 100644 src/regress/usr.bin/make/mk26 create mode 100644 src/regress/usr.bin/make/mk27 create mode 100644 src/regress/usr.bin/make/mk28 create mode 100644 src/regress/usr.bin/make/mk2a create mode 100644 src/regress/usr.bin/make/mk2b create mode 100644 src/regress/usr.bin/make/mk3 create mode 100644 src/regress/usr.bin/make/mk32 create mode 100644 src/regress/usr.bin/make/mk3a create mode 100644 src/regress/usr.bin/make/mk4 create mode 100644 src/regress/usr.bin/make/mk4a create mode 100644 src/regress/usr.bin/make/mk6 create mode 100644 src/regress/usr.bin/make/mk7 create mode 100644 src/regress/usr.bin/make/mk8 create mode 100644 src/regress/usr.bin/make/mk9 create mode 100644 src/regress/usr.bin/make/mkfail create mode 120000 src/regress/usr.bin/make/obj create mode 100644 src/regress/usr.bin/make/t10.out create mode 100644 src/regress/usr.bin/make/t11.out create mode 100644 src/regress/usr.bin/make/t11.out2 create mode 100644 src/regress/usr.bin/make/t12.out create mode 100644 src/regress/usr.bin/make/t13.out create mode 100644 src/regress/usr.bin/make/t19.out create mode 100644 src/regress/usr.bin/make/t2.out create mode 100644 src/regress/usr.bin/make/t20.out create mode 100644 src/regress/usr.bin/make/t21.out create mode 100644 src/regress/usr.bin/make/t22.out create mode 100644 src/regress/usr.bin/make/t23.out create mode 100644 src/regress/usr.bin/make/t29.out create mode 100644 src/regress/usr.bin/make/t29.out2 create mode 100644 src/regress/usr.bin/make/t3.out create mode 100644 src/regress/usr.bin/make/t30.out create mode 100644 src/regress/usr.bin/make/t32.out create mode 100644 src/regress/usr.bin/make/t33.out create mode 100644 src/regress/usr.bin/make/t34.out create mode 100644 src/regress/usr.bin/make/t35.out create mode 100644 src/regress/usr.bin/make/t4.out create mode 100644 src/regress/usr.bin/make/t6.out create mode 100644 src/regress/usr.bin/make/t8.out create mode 100644 src/regress/usr.bin/make/t9.out create mode 100644 src/regress/usr.bin/mandoc/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/Makefile create mode 100644 src/regress/usr.bin/mandoc/Makefile.inc create mode 100644 src/regress/usr.bin/mandoc/char/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/char/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/char/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/char/Makefile create mode 100644 src/regress/usr.bin/mandoc/char/Makefile.inc create mode 100644 src/regress/usr.bin/mandoc/char/space/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/char/space/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/char/space/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/char/space/Makefile create mode 100644 src/regress/usr.bin/mandoc/char/space/nobreak.in create mode 100644 src/regress/usr.bin/mandoc/char/space/tab.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bd/Makefile create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bd/blank.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Root create mode 100755 src/regress/usr.bin/mandoc/mdoc/Bl/EMULTILIST.sh create mode 100755 src/regress/usr.bin/mandoc/mdoc/Bl/ENOTYPE.sh create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bl/Makefile create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bl/column.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bl/diag.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bl/hang.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bl/inset.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bl/multitag.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bl/nested.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Bl/tag.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/mdoc/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/mdoc/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/mdoc/Fl/Makefile create mode 100644 src/regress/usr.bin/mandoc/mdoc/Fl/multiarg.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Fl/noarg.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/In/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/mdoc/In/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/mdoc/In/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/mdoc/In/Makefile create mode 100644 src/regress/usr.bin/mandoc/mdoc/In/break.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Li/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/mdoc/Li/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/mdoc/Li/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/mdoc/Li/Makefile create mode 100644 src/regress/usr.bin/mandoc/mdoc/Li/punct.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Makefile create mode 100644 src/regress/usr.bin/mandoc/mdoc/Makefile.inc create mode 100644 src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/mdoc/Pa/FILES.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Pa/Makefile create mode 100644 src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/mdoc/Rs/Makefile create mode 100644 src/regress/usr.bin/mandoc/mdoc/Rs/break.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/mdoc/Sm/Makefile create mode 100644 src/regress/usr.bin/mandoc/mdoc/Sm/scope.in create mode 100644 src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/mdoc/Xr/Makefile create mode 100644 src/regress/usr.bin/mandoc/mdoc/Xr/args.in create mode 100644 src/regress/usr.bin/mandoc/roff/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/roff/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/roff/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/roff/Makefile create mode 100644 src/regress/usr.bin/mandoc/roff/Makefile.inc create mode 100644 src/regress/usr.bin/mandoc/roff/cond/CVS/Entries create mode 100644 src/regress/usr.bin/mandoc/roff/cond/CVS/Repository create mode 100644 src/regress/usr.bin/mandoc/roff/cond/CVS/Root create mode 100644 src/regress/usr.bin/mandoc/roff/cond/Makefile create mode 100644 src/regress/usr.bin/mandoc/roff/cond/ie.in create mode 100644 src/regress/usr.bin/mandoc/roff/cond/ie.out_ascii create mode 100644 src/regress/usr.bin/mandoc/roff/cond/if.in create mode 100644 src/regress/usr.bin/mandoc/roff/cond/if.out_ascii create mode 100644 src/regress/usr.bin/mdoclint/CVS/Entries create mode 100644 src/regress/usr.bin/mdoclint/CVS/Repository create mode 100644 src/regress/usr.bin/mdoclint/CVS/Root create mode 100644 src/regress/usr.bin/mdoclint/Makefile create mode 100644 src/regress/usr.bin/mdoclint/mdoclint create mode 100644 src/regress/usr.bin/mdoclint/mdoclint.1 create mode 100644 src/regress/usr.bin/patch/CVS/Entries create mode 100644 src/regress/usr.bin/patch/CVS/Repository create mode 100644 src/regress/usr.bin/patch/CVS/Root create mode 100644 src/regress/usr.bin/patch/Makefile create mode 120000 src/regress/usr.bin/patch/obj create mode 100644 src/regress/usr.bin/patch/t1.diff create mode 100644 src/regress/usr.bin/patch/t1.in create mode 100644 src/regress/usr.bin/patch/t1.out create mode 100644 src/regress/usr.bin/patch/t10.diff create mode 100644 src/regress/usr.bin/patch/t10.in create mode 100644 src/regress/usr.bin/patch/t10.out create mode 100644 src/regress/usr.bin/patch/t11.diff create mode 100644 src/regress/usr.bin/patch/t11.in create mode 100644 src/regress/usr.bin/patch/t11.out create mode 100644 src/regress/usr.bin/patch/t12.diff create mode 100644 src/regress/usr.bin/patch/t12.in create mode 100644 src/regress/usr.bin/patch/t12.out create mode 100644 src/regress/usr.bin/patch/t13.diff create mode 100644 src/regress/usr.bin/patch/t13.in create mode 100644 src/regress/usr.bin/patch/t13.out create mode 100644 src/regress/usr.bin/patch/t2.diff create mode 100644 src/regress/usr.bin/patch/t2.in create mode 100644 src/regress/usr.bin/patch/t2.out create mode 100644 src/regress/usr.bin/patch/t3.diff create mode 100644 src/regress/usr.bin/patch/t3.in create mode 100644 src/regress/usr.bin/patch/t3.out create mode 100644 src/regress/usr.bin/patch/t4.diff create mode 100644 src/regress/usr.bin/patch/t4.in create mode 100644 src/regress/usr.bin/patch/t4.out create mode 100644 src/regress/usr.bin/patch/t5.diff create mode 100644 src/regress/usr.bin/patch/t5.out create mode 100644 src/regress/usr.bin/patch/t6.diff create mode 100644 src/regress/usr.bin/patch/t6.in create mode 100644 src/regress/usr.bin/patch/t6.out create mode 100644 src/regress/usr.bin/patch/t7.diff create mode 100644 src/regress/usr.bin/patch/t7.in create mode 100644 src/regress/usr.bin/patch/t7.out create mode 100644 src/regress/usr.bin/patch/t8.diff create mode 100644 src/regress/usr.bin/patch/t8.in create mode 100644 src/regress/usr.bin/patch/t8.out create mode 100644 src/regress/usr.bin/patch/t9.diff create mode 100644 src/regress/usr.bin/patch/t9.in create mode 100644 src/regress/usr.bin/patch/t9.out create mode 100644 src/regress/usr.bin/pcc/CVS/Entries create mode 100644 src/regress/usr.bin/pcc/CVS/Repository create mode 100644 src/regress/usr.bin/pcc/CVS/Root create mode 100644 src/regress/usr.bin/pcc/Makefile create mode 100644 src/regress/usr.bin/pcc/ccom/CVS/Entries create mode 100644 src/regress/usr.bin/pcc/ccom/CVS/Repository create mode 100644 src/regress/usr.bin/pcc/ccom/CVS/Root create mode 100644 src/regress/usr.bin/pcc/ccom/Makefile create mode 100644 src/regress/usr.bin/pcc/ccom/arith001.c create mode 100644 src/regress/usr.bin/pcc/ccom/const001.c create mode 100644 src/regress/usr.bin/pcc/ccom/darray001.c create mode 100644 src/regress/usr.bin/pcc/ccom/enum001.c create mode 100644 src/regress/usr.bin/pcc/ccom/init001.c create mode 100644 src/regress/usr.bin/pcc/ccom/init002.c create mode 100644 src/regress/usr.bin/pcc/ccom/init003.c create mode 100644 src/regress/usr.bin/pcc/ccom/init004.c create mode 100644 src/regress/usr.bin/pcc/ccom/mustfail0000.c create mode 100644 src/regress/usr.bin/pcc/ccom/mustpass0000.c create mode 100644 src/regress/usr.bin/pcc/ccom/mustpass0001.c create mode 100644 src/regress/usr.bin/pcc/ccom/switch001.c create mode 100644 src/regress/usr.bin/pcc/ccom/switch002.c create mode 100644 src/regress/usr.bin/pcc/ccom/switch003.c create mode 100644 src/regress/usr.bin/pcc/ccom/tmpalloc001.c create mode 100644 src/regress/usr.bin/pcc/cpp/CVS/Entries create mode 100644 src/regress/usr.bin/pcc/cpp/CVS/Repository create mode 100644 src/regress/usr.bin/pcc/cpp/CVS/Root create mode 100644 src/regress/usr.bin/pcc/cpp/Makefile create mode 100644 src/regress/usr.bin/pcc/cpp/res1 create mode 100644 src/regress/usr.bin/pcc/cpp/res2 create mode 100644 src/regress/usr.bin/pcc/cpp/res3 create mode 100644 src/regress/usr.bin/pcc/cpp/res4 create mode 100644 src/regress/usr.bin/pcc/cpp/res5 create mode 100644 src/regress/usr.bin/pcc/cpp/res6 create mode 100644 src/regress/usr.bin/pcc/cpp/res7 create mode 100644 src/regress/usr.bin/pcc/cpp/res8 create mode 100644 src/regress/usr.bin/pcc/cpp/res9 create mode 100644 src/regress/usr.bin/pcc/cpp/skip001.c create mode 100644 src/regress/usr.bin/pcc/cpp/skip001.out create mode 100644 src/regress/usr.bin/pcc/cpp/subdir/CVS/Entries create mode 100644 src/regress/usr.bin/pcc/cpp/subdir/CVS/Repository create mode 100644 src/regress/usr.bin/pcc/cpp/subdir/CVS/Root create mode 100644 src/regress/usr.bin/pcc/cpp/subdir/include.h create mode 100644 src/regress/usr.bin/pcc/cpp/test1 create mode 100644 src/regress/usr.bin/pcc/cpp/test2 create mode 100644 src/regress/usr.bin/pcc/cpp/test3 create mode 100644 src/regress/usr.bin/pcc/cpp/test4 create mode 100644 src/regress/usr.bin/pcc/cpp/test5 create mode 100644 src/regress/usr.bin/pcc/cpp/test6 create mode 100644 src/regress/usr.bin/pcc/cpp/test7 create mode 100644 src/regress/usr.bin/pcc/cpp/test8 create mode 100644 src/regress/usr.bin/pcc/cpp/test9 create mode 100644 src/regress/usr.bin/rcs/CVS/Entries create mode 100644 src/regress/usr.bin/rcs/CVS/Repository create mode 100644 src/regress/usr.bin/rcs/CVS/Root create mode 100644 src/regress/usr.bin/rcs/Makefile create mode 100644 src/regress/usr.bin/rcs/keywords.in create mode 100644 src/regress/usr.bin/rcs/keywords.out create mode 100644 src/regress/usr.bin/rcs/merge-eflag.out create mode 120000 src/regress/usr.bin/rcs/obj create mode 100644 src/regress/usr.bin/rcs/rcs-aflag.out create mode 100644 src/regress/usr.bin/rcs/rcs-eflag.out create mode 100644 src/regress/usr.bin/rcs/rcsdiff-rflag.out create mode 100644 src/regress/usr.bin/rcs/rcsdiff-uflag.out create mode 100644 src/regress/usr.bin/rcs/rcsdiff.out create mode 100644 src/regress/usr.bin/rcs/rcsmerge.out create mode 100644 src/regress/usr.bin/rcs/rev1 create mode 100644 src/regress/usr.bin/rcs/rev2 create mode 100644 src/regress/usr.bin/rcs/rev3 create mode 100644 src/regress/usr.bin/rcs/rlog-rflag1.out create mode 100644 src/regress/usr.bin/rcs/rlog-rflag2.out create mode 100644 src/regress/usr.bin/rcs/rlog-rflag3.out create mode 100644 src/regress/usr.bin/rcs/rlog-rflag4.out create mode 100644 src/regress/usr.bin/rcs/rlog-zflag1.out create mode 100644 src/regress/usr.bin/rcs/rlog-zflag2.out create mode 100644 src/regress/usr.bin/rcs/rlog-zflag3.out create mode 100644 src/regress/usr.bin/rcs/rlog-zflag4.out create mode 100644 src/regress/usr.bin/rcs/rlog-zflag5.out create mode 100644 src/regress/usr.bin/rcs/test-truncated,v create mode 100644 src/regress/usr.bin/sdiff/CVS/Entries create mode 100644 src/regress/usr.bin/sdiff/CVS/Repository create mode 100644 src/regress/usr.bin/sdiff/CVS/Root create mode 100644 src/regress/usr.bin/sdiff/Iflag12.out create mode 100644 src/regress/usr.bin/sdiff/Iflag21.out create mode 100644 src/regress/usr.bin/sdiff/Ilflag12.out create mode 100644 src/regress/usr.bin/sdiff/Ilflag21.out create mode 100644 src/regress/usr.bin/sdiff/Ilsflag12.out create mode 100644 src/regress/usr.bin/sdiff/Ilsflag21.out create mode 100644 src/regress/usr.bin/sdiff/Isflag12.out create mode 100644 src/regress/usr.bin/sdiff/Isflag21.out create mode 100644 src/regress/usr.bin/sdiff/Makefile create mode 100644 src/regress/usr.bin/sdiff/dot.in create mode 100644 src/regress/usr.bin/sdiff/file1 create mode 100644 src/regress/usr.bin/sdiff/file2 create mode 100644 src/regress/usr.bin/sdiff/lflag.out create mode 120000 src/regress/usr.bin/sdiff/obj create mode 100644 src/regress/usr.bin/sdiff/oneline.in create mode 100644 src/regress/usr.bin/sdiff/same.out create mode 100644 src/regress/usr.bin/sdiff/sflag.out create mode 100644 src/regress/usr.bin/sdiff/short.out create mode 100644 src/regress/usr.bin/sdiff/tabends create mode 100644 src/regress/usr.bin/sdiff/tabends.out create mode 100644 src/regress/usr.bin/sdiff/tabends2.out create mode 100644 src/regress/usr.bin/sdiff/tabends3.out create mode 100644 src/regress/usr.bin/sdiff/tabs.out create mode 100644 src/regress/usr.bin/sdiff/tabs1 create mode 100644 src/regress/usr.bin/sdiff/tabs2 create mode 100644 src/regress/usr.bin/sdiff/wflag.out create mode 100644 src/regress/usr.bin/sed/CVS/Entries create mode 100644 src/regress/usr.bin/sed/CVS/Repository create mode 100644 src/regress/usr.bin/sed/CVS/Root create mode 100644 src/regress/usr.bin/sed/Makefile create mode 100644 src/regress/usr.bin/sed/dc.expected create mode 100644 src/regress/usr.bin/sed/dc.in create mode 100644 src/regress/usr.bin/sed/dc.sed create mode 100644 src/regress/usr.bin/sed/hanoi.expected create mode 100644 src/regress/usr.bin/sed/hanoi.in create mode 100644 src/regress/usr.bin/sed/hanoi.sed create mode 100644 src/regress/usr.bin/sed/math.expected create mode 100644 src/regress/usr.bin/sed/math.in create mode 100644 src/regress/usr.bin/sed/math.sed create mode 120000 src/regress/usr.bin/sed/obj create mode 100644 src/regress/usr.bin/sed/sedtest.expected create mode 100644 src/regress/usr.bin/sed/sedtest.sh create mode 100644 src/regress/usr.bin/sed/sierpinski.expected create mode 100644 src/regress/usr.bin/sed/sierpinski.in create mode 100644 src/regress/usr.bin/sed/sierpinski.sed create mode 100644 src/regress/usr.bin/sort/CVS/Entries create mode 100644 src/regress/usr.bin/sort/CVS/Repository create mode 100644 src/regress/usr.bin/sort/CVS/Root create mode 100644 src/regress/usr.bin/sort/Makefile create mode 120000 src/regress/usr.bin/sort/obj create mode 100644 src/regress/usr.bin/sort/stests create mode 100644 src/regress/usr.bin/ssh/CVS/Entries create mode 100644 src/regress/usr.bin/ssh/CVS/Repository create mode 100644 src/regress/usr.bin/ssh/CVS/Root create mode 100644 src/regress/usr.bin/ssh/Makefile create mode 100644 src/regress/usr.bin/ssh/addrmatch.sh create mode 100644 src/regress/usr.bin/ssh/agent-getpeereid.sh create mode 100644 src/regress/usr.bin/ssh/agent-pkcs11.sh create mode 100644 src/regress/usr.bin/ssh/agent-ptrace.sh create mode 100644 src/regress/usr.bin/ssh/agent-timeout.sh create mode 100644 src/regress/usr.bin/ssh/agent.sh create mode 100644 src/regress/usr.bin/ssh/banner.sh create mode 100644 src/regress/usr.bin/ssh/broken-pipe.sh create mode 100644 src/regress/usr.bin/ssh/brokenkeys.sh create mode 100644 src/regress/usr.bin/ssh/cert-hostkey.sh create mode 100644 src/regress/usr.bin/ssh/cert-userkey.sh create mode 100644 src/regress/usr.bin/ssh/cfgmatch.sh create mode 100644 src/regress/usr.bin/ssh/cipher-speed.sh create mode 100644 src/regress/usr.bin/ssh/conch-ciphers.sh create mode 100644 src/regress/usr.bin/ssh/connect-privsep.sh create mode 100644 src/regress/usr.bin/ssh/connect.sh create mode 100644 src/regress/usr.bin/ssh/dsa_ssh2.prv create mode 100644 src/regress/usr.bin/ssh/dsa_ssh2.pub create mode 100644 src/regress/usr.bin/ssh/dynamic-forward.sh create mode 100644 src/regress/usr.bin/ssh/envpass.sh create mode 100644 src/regress/usr.bin/ssh/exit-status.sh create mode 100644 src/regress/usr.bin/ssh/forcecommand.sh create mode 100644 src/regress/usr.bin/ssh/forwarding.sh create mode 100644 src/regress/usr.bin/ssh/key-options.sh create mode 100644 src/regress/usr.bin/ssh/keygen-change.sh create mode 100644 src/regress/usr.bin/ssh/keygen-convert.sh create mode 100644 src/regress/usr.bin/ssh/keyscan.sh create mode 100644 src/regress/usr.bin/ssh/localcommand.sh create mode 100644 src/regress/usr.bin/ssh/login-timeout.sh create mode 100644 src/regress/usr.bin/ssh/multiplex.sh create mode 120000 src/regress/usr.bin/ssh/obj create mode 100644 src/regress/usr.bin/ssh/portnum.sh create mode 100644 src/regress/usr.bin/ssh/proto-mismatch.sh create mode 100644 src/regress/usr.bin/ssh/proto-version.sh create mode 100644 src/regress/usr.bin/ssh/proxy-connect.sh create mode 100644 src/regress/usr.bin/ssh/putty-ciphers.sh create mode 100644 src/regress/usr.bin/ssh/putty-kex.sh create mode 100644 src/regress/usr.bin/ssh/putty-transfer.sh create mode 100644 src/regress/usr.bin/ssh/reconfigure.sh create mode 100644 src/regress/usr.bin/ssh/reexec.sh create mode 100644 src/regress/usr.bin/ssh/rekey.sh create mode 100644 src/regress/usr.bin/ssh/rsa_openssh.prv create mode 100644 src/regress/usr.bin/ssh/rsa_openssh.pub create mode 100644 src/regress/usr.bin/ssh/rsa_ssh2.prv create mode 100644 src/regress/usr.bin/ssh/scp-ssh-wrapper.sh create mode 100644 src/regress/usr.bin/ssh/scp.sh create mode 100644 src/regress/usr.bin/ssh/sftp-badcmds.sh create mode 100644 src/regress/usr.bin/ssh/sftp-batch.sh create mode 100644 src/regress/usr.bin/ssh/sftp-cmds.sh create mode 100644 src/regress/usr.bin/ssh/sftp-glob.sh create mode 100644 src/regress/usr.bin/ssh/sftp.sh create mode 100644 src/regress/usr.bin/ssh/ssh-com-client.sh create mode 100644 src/regress/usr.bin/ssh/ssh-com-keygen.sh create mode 100644 src/regress/usr.bin/ssh/ssh-com-sftp.sh create mode 100644 src/regress/usr.bin/ssh/ssh-com.sh create mode 100755 src/regress/usr.bin/ssh/ssh2putty.sh create mode 100644 src/regress/usr.bin/ssh/sshd-log-wrapper.sh create mode 100644 src/regress/usr.bin/ssh/stderr-after-eof.sh create mode 100644 src/regress/usr.bin/ssh/stderr-data.sh create mode 100644 src/regress/usr.bin/ssh/t4.ok create mode 100644 src/regress/usr.bin/ssh/t5.ok create mode 100644 src/regress/usr.bin/ssh/test-exec.sh create mode 100644 src/regress/usr.bin/ssh/transfer.sh create mode 100644 src/regress/usr.bin/ssh/try-ciphers.sh create mode 100644 src/regress/usr.bin/ssh/yes-head.sh create mode 100644 src/regress/usr.bin/tsort/CVS/Entries create mode 100644 src/regress/usr.bin/tsort/CVS/Repository create mode 100644 src/regress/usr.bin/tsort/CVS/Root create mode 100644 src/regress/usr.bin/tsort/Makefile create mode 100644 src/regress/usr.bin/tsort/build-tree create mode 100644 src/regress/usr.bin/tsort/normalize-cycles create mode 120000 src/regress/usr.bin/tsort/obj create mode 100644 src/regress/usr.bin/tsort/pairs1 create mode 100644 src/regress/usr.bin/tsort/pairs2 create mode 100644 src/regress/usr.bin/tsort/pairs5 create mode 100644 src/regress/usr.bin/tsort/pairs6 create mode 100644 src/regress/usr.bin/tsort/t2.canonical create mode 100644 src/regress/usr.bin/tsort/tsort-check create mode 100644 src/regress/usr.bin/xargs/CVS/Entries create mode 100644 src/regress/usr.bin/xargs/CVS/Repository create mode 100644 src/regress/usr.bin/xargs/CVS/Root create mode 100644 src/regress/usr.bin/xargs/Makefile create mode 100644 src/regress/usr.bin/xargs/showargs.c create mode 100755 src/regress/usr.bin/xargs/xargs-L.sh create mode 100644 src/regress/usr.bin/xlint/CVS/Entries create mode 100644 src/regress/usr.bin/xlint/CVS/Repository create mode 100644 src/regress/usr.bin/xlint/CVS/Root create mode 100644 src/regress/usr.bin/xlint/Makefile create mode 100644 src/regress/usr.bin/xlint/test-1.c create mode 100644 src/regress/usr.bin/xlint/test-1.c.exp create mode 100644 src/regress/usr.bin/xlint/test-10.c create mode 100644 src/regress/usr.bin/xlint/test-10.c.exp create mode 100644 src/regress/usr.bin/xlint/test-11.c create mode 100644 src/regress/usr.bin/xlint/test-11.c.exp create mode 100644 src/regress/usr.bin/xlint/test-12.c create mode 100644 src/regress/usr.bin/xlint/test-12.c.exp create mode 100644 src/regress/usr.bin/xlint/test-13.c create mode 100644 src/regress/usr.bin/xlint/test-13.c.exp create mode 100644 src/regress/usr.bin/xlint/test-14.c create mode 100644 src/regress/usr.bin/xlint/test-14.c.exp create mode 100644 src/regress/usr.bin/xlint/test-15.c create mode 100644 src/regress/usr.bin/xlint/test-15.c.exp create mode 100644 src/regress/usr.bin/xlint/test-16.c create mode 100644 src/regress/usr.bin/xlint/test-16.c.exp create mode 100644 src/regress/usr.bin/xlint/test-17.c create mode 100644 src/regress/usr.bin/xlint/test-17.c.exp create mode 100644 src/regress/usr.bin/xlint/test-18.c create mode 100644 src/regress/usr.bin/xlint/test-18.c.exp create mode 100644 src/regress/usr.bin/xlint/test-19.c create mode 100644 src/regress/usr.bin/xlint/test-19.c.exp create mode 100644 src/regress/usr.bin/xlint/test-2.c create mode 100644 src/regress/usr.bin/xlint/test-2.c.exp create mode 100644 src/regress/usr.bin/xlint/test-20.c create mode 100644 src/regress/usr.bin/xlint/test-20.c.exp create mode 100644 src/regress/usr.bin/xlint/test-21.c create mode 100644 src/regress/usr.bin/xlint/test-21.c.exp create mode 100644 src/regress/usr.bin/xlint/test-22.c create mode 100644 src/regress/usr.bin/xlint/test-22.c.exp create mode 100644 src/regress/usr.bin/xlint/test-23.c create mode 100644 src/regress/usr.bin/xlint/test-23.c.exp create mode 100644 src/regress/usr.bin/xlint/test-3.c create mode 100644 src/regress/usr.bin/xlint/test-3.c.exp create mode 100644 src/regress/usr.bin/xlint/test-4.c create mode 100644 src/regress/usr.bin/xlint/test-4.c.exp create mode 100644 src/regress/usr.bin/xlint/test-5.c create mode 100644 src/regress/usr.bin/xlint/test-5.c.exp create mode 100644 src/regress/usr.bin/xlint/test-6.c create mode 100644 src/regress/usr.bin/xlint/test-6.c.exp create mode 100644 src/regress/usr.bin/xlint/test-7.c create mode 100644 src/regress/usr.bin/xlint/test-7.c.exp create mode 100644 src/regress/usr.bin/xlint/test-8.c create mode 100644 src/regress/usr.bin/xlint/test-8.c.exp create mode 100644 src/regress/usr.bin/xlint/test-8.h create mode 100644 src/regress/usr.bin/xlint/test-9.c create mode 100644 src/regress/usr.bin/xlint/test-9.c.exp create mode 100644 src/regress/usr.sbin/CVS/Entries create mode 100644 src/regress/usr.sbin/CVS/Repository create mode 100644 src/regress/usr.sbin/CVS/Root create mode 100644 src/regress/usr.sbin/Makefile create mode 100644 src/regress/usr.sbin/mtree/CVS/Entries create mode 100644 src/regress/usr.sbin/mtree/CVS/Repository create mode 100644 src/regress/usr.sbin/mtree/CVS/Root create mode 100644 src/regress/usr.sbin/mtree/Makefile create mode 120000 src/regress/usr.sbin/mtree/obj create mode 100644 src/regress/usr.sbin/mtree/spec1 create mode 100644 src/regress/usr.sbin/pkg_add/CVS/Entries create mode 100644 src/regress/usr.sbin/pkg_add/CVS/Repository create mode 100644 src/regress/usr.sbin/pkg_add/CVS/Root create mode 100644 src/regress/usr.sbin/pkg_add/Makefile create mode 100644 src/regress/usr.sbin/pkg_add/check-name create mode 100755 src/regress/usr.sbin/pkg_add/check-sig create mode 100644 src/regress/usr.sbin/pkg_add/empty create mode 100644 src/regress/usr.sbin/pkg_add/list create mode 100644 src/regress/usr.sbin/pkg_add/list.out create mode 100644 src/regress/usr.sbin/pkg_add/list2.out create mode 100644 src/regress/usr.sbin/pkg_add/list3.out create mode 100644 src/regress/usr.sbin/pkg_add/list4.out create mode 100644 src/regress/usr.sbin/pkg_add/list5.out create mode 100644 src/regress/usr.sbin/pkg_add/list6.out create mode 100644 src/regress/usr.sbin/pkg_add/list7.out create mode 100644 src/regress/usr.sbin/pkg_add/list8.out create mode 100644 src/regress/usr.sbin/pkg_add/minitar create mode 100644 src/regress/usr.sbin/pkg_add/myadd create mode 100644 src/regress/usr.sbin/pkg_add/mycreate create mode 120000 src/regress/usr.sbin/pkg_add/obj create mode 100644 src/regress/usr.sbin/pkg_add/signatures.ref diff --git a/src/regress/CVS/Entries b/src/regress/CVS/Entries new file mode 100644 index 000000000..fa2110eee --- /dev/null +++ b/src/regress/CVS/Entries @@ -0,0 +1,13 @@ +/Makefile/1.19/Sat Feb 5 10:39:50 2005// +D/bin//// +D/etc//// +D/gnu//// +D/include//// +D/lib//// +D/libexec//// +D/misc//// +D/sbin//// +D/share//// +D/sys//// +D/usr.bin//// +D/usr.sbin//// diff --git a/src/regress/CVS/Repository b/src/regress/CVS/Repository new file mode 100644 index 000000000..143a8e6d5 --- /dev/null +++ b/src/regress/CVS/Repository @@ -0,0 +1 @@ +src/regress diff --git a/src/regress/CVS/Root b/src/regress/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/Makefile b/src/regress/Makefile new file mode 100644 index 000000000..6506a6f54 --- /dev/null +++ b/src/regress/Makefile @@ -0,0 +1,61 @@ +# $OpenBSD: Makefile,v 1.19 2005/02/05 10:39:50 espie Exp $ + +# +# To run full regression tests you just need two steps: +# 1. make depend +# 2. make regress +# +# A normal "make" is not necessary and will simply do the same thing +# as "regress" (possibly with more bugs). This allows us to include +# compilation as a part of the regression test. +# +# To get a log of test results set the REGRESS_LOG make variable to +# a log file, use an absolute path. +# To mail the test results set the REGRESS_MAIL make variable to an +# email address, preferably 'regress@openbsd.org'. +# To skip the really slow tests, set the REGRESS_SKIP_SLOW variable. + +SUBDIR+= etc bin include lib libexec sbin sys share usr.bin usr.sbin misc gnu + +install: + +REGRESS_MAIL?= + +.if !empty(REGRESS_MAIL) +_REGRESS_TMP!=/usr/bin/mktemp +.endif + +.if empty(REGRESS_MAIL) || empty(_REGRESS_TMP) +_REGRESS_TMP= +_REGRESS_CLEAN=exit 0 +.else +_REGRESS_CLEAN=rm -f ${_REGRESS_TMP} +.endif +MAKE_FLAGS+= _REGRESS_TMP=${_REGRESS_TMP} + +.INTERRUPT: + ${_REGRESS_CLEAN} + +.END: .SILENT +.if ${.TARGETS:Mall} || ${.TARGETS:Mregress} + echo ==================================================================== +.if empty(REGRESS_MAIL) || empty(_REGRESS_TMP) +# echo Please mail a copy of these regression tests to regress@openbsd.org +# echo to help with future development. +# echo +# echo You can do this automatically by setting the REGRESS_MAIL variable +# echo $$ make REGRESS_MAIL=regress@openbsd.org regress +# echo + echo You can set REGRESS_LOG to point to a file and mail it manually. + echo $$ make REGRESS_LOG=/var/log/regress-tests regress +.else + echo Mailing regress results to ${REGRESS_MAIL} ... + echo If you want them to be also logged locally, you can set the + echo REGRESS_LOG make variable to the full path of a log file. + (sysctl -n kern.version && cat ${_REGRESS_TMP}) | /usr/bin/mail -s "Regress: `uname -a`" ${REGRESS_MAIL} +.endif + echo ==================================================================== + ${_REGRESS_CLEAN} +.endif + +.include diff --git a/src/regress/bin/CVS/Entries b/src/regress/bin/CVS/Entries new file mode 100644 index 000000000..49cfa338c --- /dev/null +++ b/src/regress/bin/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.5/Thu Apr 14 15:17:07 2005// +D/ksh//// +D/md5//// +D/pax//// +D/systrace//// diff --git a/src/regress/bin/CVS/Repository b/src/regress/bin/CVS/Repository new file mode 100644 index 000000000..b9d73f8ea --- /dev/null +++ b/src/regress/bin/CVS/Repository @@ -0,0 +1 @@ +src/regress/bin diff --git a/src/regress/bin/CVS/Root b/src/regress/bin/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/bin/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/bin/Makefile b/src/regress/bin/Makefile new file mode 100644 index 000000000..bc5937509 --- /dev/null +++ b/src/regress/bin/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.5 2005/04/14 15:17:07 cloder Exp $ + +SUBDIR+= md5 ksh pax systrace + +install: + +.include diff --git a/src/regress/bin/ksh/CVS/Entries b/src/regress/bin/ksh/CVS/Entries new file mode 100644 index 000000000..c688834ba --- /dev/null +++ b/src/regress/bin/ksh/CVS/Entries @@ -0,0 +1,6 @@ +/seterror.sh/1.2/Thu Jan 29 23:27:26 2009// +/shcrash.sh/1.1/Wed Feb 27 19:57:17 2002// +/varfunction.sh/1.1/Mon Dec 15 05:28:40 2003// +/Makefile/1.5/Mon Apr 5 23:11:45 2010// +/eval.sh/1.1/Wed Mar 24 08:29:44 2010// +D diff --git a/src/regress/bin/ksh/CVS/Repository b/src/regress/bin/ksh/CVS/Repository new file mode 100644 index 000000000..dfb04e7b5 --- /dev/null +++ b/src/regress/bin/ksh/CVS/Repository @@ -0,0 +1 @@ +src/regress/bin/ksh diff --git a/src/regress/bin/ksh/CVS/Root b/src/regress/bin/ksh/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/bin/ksh/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/bin/ksh/Makefile b/src/regress/bin/ksh/Makefile new file mode 100644 index 000000000..ae966f67b --- /dev/null +++ b/src/regress/bin/ksh/Makefile @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile,v 1.5 2010/03/24 08:29:44 fgsch Exp $ + +REGRESS_TARGETS=shcrash.sh seterror.sh varfunction.sh eval.sh + +shcrash.sh: + ulimit -c 0 && sh ${.CURDIR}/shcrash.sh + +seterror.sh: + sh ${.CURDIR}/seterror.sh + +varfunction.sh: + sh ${.CURDIR}/varfunction.sh + +eval.sh: + test `sh ${.CURDIR}/eval.sh | wc -l` == 4 + +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/bin/ksh/eval.sh b/src/regress/bin/ksh/eval.sh new file mode 100644 index 000000000..fb6d01f28 --- /dev/null +++ b/src/regress/bin/ksh/eval.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# +# $Id: eval.sh,v 1.1 2010/03/24 08:29:44 fgsch Exp $ + +for n in ${a#*=}; do echo ${n}; done +for n in "${a#*=}"; do echo ${n}; done + +for n in ${a##*=}; do echo ${n}; done +for n in "${a##*=}"; do echo ${n}; done + +for n in ${a%=*}; do echo ${n}; done +for n in "${a%=*}"; do echo ${n}; done + +for n in ${a%%=*}; do echo ${n}; done +for n in "${a%%=*}"; do echo ${n}; done diff --git a/src/regress/bin/ksh/obj b/src/regress/bin/ksh/obj new file mode 120000 index 000000000..cade06b7c --- /dev/null +++ b/src/regress/bin/ksh/obj @@ -0,0 +1 @@ +/usr/obj/regress/bin/ksh \ No newline at end of file diff --git a/src/regress/bin/ksh/seterror.sh b/src/regress/bin/ksh/seterror.sh new file mode 100644 index 000000000..f3753249c --- /dev/null +++ b/src/regress/bin/ksh/seterror.sh @@ -0,0 +1,20 @@ +#! /bin/sh +# $OpenBSD: seterror.sh,v 1.2 2009/01/29 23:27:26 jaredy Exp $ + +# set -e is supposed to abort the script for errors that are not caught +# otherwise. + +set -e + +if true; then false && false; fi +if true; then if true; then false && false; fi; fi + +for i in 1 2 3 +do + true && false + false || false +done + +! true | false + +true diff --git a/src/regress/bin/ksh/shcrash.sh b/src/regress/bin/ksh/shcrash.sh new file mode 100644 index 000000000..8211d03c3 --- /dev/null +++ b/src/regress/bin/ksh/shcrash.sh @@ -0,0 +1,19 @@ +#! /bin/ksh + +deplibs="-lz -lpng /usr/local/lib/libjpeg.la -ltiff -lm -lX11 -lXext /usr/local/lib/libiconv.la -L/usr/local/lib -L/usr/ports/devel/gettext/w-gettext-0.10.40/gettext-0.10.40/intl/.libs /usr/local/lib/libintl.la /usr/local/lib/libglib.la /usr/local/lib/libgmodule.la -lintl -lm -lX11 -lXext -L/usr/X11R6/lib -lglib -lgmodule -L/usr/local/lib /usr/local/lib/libgdk.la -lintl -lm -lX11 -lXext -L/usr/X11R6/lib -lglib -lgmodule -L/usr/local/lib /usr/local/lib/libgtk.la -ltiff -ljpeg -lz -lpng -lm -lX11 -lXext -lintl -lglib -lgmodule -lgdk -lgtk -L/usr/X11R6/lib -lglib -lgmodule -L/usr/local/lib /usr/local/lib/libgdk_pixbuf.la -lz -lpng /usr/local/lib/libiconv.la -L/usr/local/lib -L/usr/ports/devel/gettext/w-gettext-0.10.40/gettext-0.10.40/intl/.libs /usr/local/lib/libintl.la /usr/local/lib/libglib.la -lm -lm /usr/local/lib/libaudiofile.la -lm -lm -laudiofile -L/usr/local/lib /usr/local/lib/libesd.la -lm -lz -L/usr/local/lib /usr/local/lib/libgnomesupport.la -lm -lz -lm -lglib -L/usr/local/lib /usr/local/lib/libgnome.la -lX11 -lXext /usr/local/lib/libiconv.la -L/usr/local/lib -L/usr/ports/devel/gettext/w-gettext-0.10.40/gettext-0.10.40/intl/.libs /usr/local/lib/libintl.la /usr/local/lib/libgmodule.la -lintl -lm -lX11 -lXext -L/usr/X11R6/lib -lglib -lgmodule -L/usr/local/lib /usr/local/lib/libgdk.la -lintl -lm -lX11 -lXext -L/usr/X11R6/lib -lglib -lgmodule -L/usr/local/lib /usr/local/lib/libgtk.la -lICE -lSM -lz -lpng /usr/local/lib/libungif.la /usr/local/lib/libjpeg.la -ltiff -lm -lz -lpng /usr/local/lib/libungif.la -lz /usr/local/lib/libjpeg.la -ltiff -L/usr/local/lib -L/usr/X11R6/lib /usr/local/lib/libgdk_imlib.la -lm -L/usr/local/lib /usr/local/lib/libart_lgpl.la -lm -lz -lm -lX11 -lXext -lintl -lglib -lgmodule -lgdk -lgtk -lICE -lSM -lm -lX11 -lXext -lintl -lglib -lgmodule -lgdk -lgtk -L/usr/X11R6/lib -lm -lz -lpng -lungif -lz -ljpeg -ltiff -ljpeg -lgdk_imlib -lglib -lm -laudiofile -lm -laudiofile -lesd -L/usr/local/lib /usr/local/lib/libgnomeui.la -lz -lz /usr/local/lib/libxml.la -lz -lz -lz /usr/local/lib/libxml.la -lm -lX11 -lXext /usr/local/lib/libiconv.la -L/usr/ports/devel/gettext/w-gettext-0.10.40/gettext-0.10.40/intl/.libs /usr/local/lib/libintl.la /usr/local/lib/libglib.la /usr/local/lib/libgmodule.la -lintl -lglib -lgmodule /usr/local/lib/libgdk.la /usr/local/lib/libgtk.la -L/usr/X11R6/lib -L/usr/local/lib /usr/local/lib/libglade.la -lz -lz -lz /usr/local/lib/libxml.la /usr/local/lib/libglib.la -lm -lm /usr/local/lib/libaudiofile.la -lm -lm -laudiofile /usr/local/lib/libesd.la -lm -lz /usr/local/lib/libgnomesupport.la -lm -lz -lm -lglib /usr/local/lib/libgnome.la -lX11 -lXext /usr/local/lib/libiconv.la -L/usr/ports/devel/gettext/w-gettext-0.10.40/gettext-0.10.40/intl/.libs /usr/local/lib/libintl.la /usr/local/lib/libgmodule.la -lintl -lm -lX11 -lXext -lglib -lgmodule /usr/local/lib/libgdk.la -lintl -lm -lX11 -lXext -lglib -lgmodule /usr/local/lib/libgtk.la -lICE -lSM -lz -lpng /usr/local/lib/libungif.la /usr/local/lib/libjpeg.la -ltiff -lm -lz -lz /usr/local/lib/libgdk_imlib.la /usr/local/lib/libart_lgpl.la -lm -lz -lm -lX11 -lXext -lintl -lglib -lgmodule -lgdk -lgtk -lm -lX11 -lXext -lintl -lglib -lgmodule -lgdk -lgtk -lm -lz -lungif -lz -ljpeg -ljpeg -lgdk_imlib -lglib -lm -laudiofile -lm -laudiofile -lesd /usr/local/lib/libgnomeui.la -L/usr/X11R6/lib -L/usr/local/lib /usr/local/lib/libglade-gnome.la /usr/local/lib/libglib.la -lm -lm /usr/local/lib/libaudiofile.la -lm -lm -laudiofile -L/usr/local/lib /usr/local/lib/libesd.la -lm -lz -L/usr/local/lib /usr/local/lib/libgnomesupport.la -lm -lz -lm -lglib -L/usr/local/lib /usr/local/lib/libgnome.la -lX11 -lXext /usr/local/lib/libiconv.la -L/usr/local/lib -L/usr/ports/devel/gettext/w-gettext-0.10.40/gettext-0.10.40/intl/.libs /usr/local/lib/libintl.la /usr/local/lib/libgmodule.la -lintl -lm -lX11 -lXext -L/usr/X11R6/lib -lglib -lgmodule -L/usr/local/lib /usr/local/lib/libgdk.la -lintl -lm -lX11 -lXext -L/usr/X11R6/lib -lglib -lgmodule -L/usr/local/lib /usr/local/lib/libgtk.la -lICE -lSM -lz -lpng /usr/local/lib/libungif.la /usr/local/lib/libjpeg.la -ltiff -lm -lz -lpng /usr/local/lib/libungif.la -lz /usr/local/lib/libjpeg.la -ltiff -L/usr/local/lib -L/usr/X11R6/lib /usr/local/lib/libgdk_imlib.la -lm -L/usr/local/lib /usr/local/lib/libart_lgpl.la -lm -lz -lm -lX11 -lXext -lintl -lglib -lgmodule -lgdk -lgtk -lICE -lSM -lm -lX11 -lXext -lintl -lglib -lgmodule -lgdk -lgtk -L/usr/X11R6/lib -lm -lz -lpng -lungif -lz -ljpeg -ltiff -ljpeg -lgdk_imlib -lglib -lm -laudiofile -lm -laudiofile -lesd -L/usr/local/lib /usr/local/lib/libgnomeui.la -L/usr/X11R6/lib -L/usr/local/lib" + +specialdeplibs="-lgnomeui -lart_lgpl -lgdk_imlib -ltiff -ljpeg -lungif -lpng -lz -lSM -lICE -lgtk -lgdk -lgmodule -lintl -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -lglib" + +for deplib in $deplibs; do + case $deplib in + -L*) + new_libs="$deplib $new_libs" + ;; + *) + case " $specialdeplibs " in + *" $deplib "*) + new_libs="$deplib $new_libs";; + esac + ;; + esac +done diff --git a/src/regress/bin/ksh/varfunction.sh b/src/regress/bin/ksh/varfunction.sh new file mode 100644 index 000000000..c530dfa2c --- /dev/null +++ b/src/regress/bin/ksh/varfunction.sh @@ -0,0 +1,76 @@ +# $OpenBSD: varfunction.sh,v 1.1 2003/12/15 05:28:40 otto Exp $ +# +# Calling +# +# FOO=bar f +# +# where f is a ksh style function, should not set FOO in the current env. +# If f is a bourne style function, FOO should be set. Furthermore, +# the function should receive a correct value of FOO. Additionally, +# setting FOO in the function itself should not change the value in +# global environment. +# +# Inspired by PR 2450. +# +function k { + if [ x$FOO != xbar ]; then + echo 1 + return 1 + fi + x=$(env | grep FOO) + if [ "x$x" != "xFOO=bar" ]; then + echo 2 + return 1; + fi + FOO=foo + return 0 +} + +b () { + if [ x$FOO != xbar ]; then + echo 3 + return 1 + fi + x=$(env | grep FOO) + if [ "x$x" != "xFOO=bar" ]; then + echo 4 + return 1; + fi + FOO=foo + return 0 +} + +FOO=bar k +if [ $? != 0 ]; then + exit 1 +fi +if [ x$FOO != x ]; then + exit 1 +fi + +FOO=bar b +if [ $? != 0 ]; then + exit 1 +fi +if [ x$FOO != xbar ]; then + exit 1 +fi + +FOO=barbar + +FOO=bar k +if [ $? != 0 ]; then + exit 1 +fi +if [ x$FOO != xbarbar ]; then + exit 1 +fi + +FOO=bar b +if [ $? != 0 ]; then + exit 1 +fi +if [ x$FOO != xbar ]; then + exit 1 +fi + diff --git a/src/regress/bin/md5/CVS/Entries b/src/regress/bin/md5/CVS/Entries new file mode 100644 index 000000000..919cfb79c --- /dev/null +++ b/src/regress/bin/md5/CVS/Entries @@ -0,0 +1,6 @@ +/Makefile/1.4/Mon Sep 2 20:01:43 2002// +/pipe_test.md5/1.1/Mon Jun 4 23:08:19 2001// +/testsuite.md5/1.1/Mon Jun 4 23:08:19 2001// +/testsuite.rmd160/1.1/Mon Jun 4 23:08:19 2001// +/testsuite.sha1/1.1/Mon Jun 4 23:08:19 2001// +D diff --git a/src/regress/bin/md5/CVS/Repository b/src/regress/bin/md5/CVS/Repository new file mode 100644 index 000000000..c890b01d2 --- /dev/null +++ b/src/regress/bin/md5/CVS/Repository @@ -0,0 +1 @@ +src/regress/bin/md5 diff --git a/src/regress/bin/md5/CVS/Root b/src/regress/bin/md5/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/bin/md5/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/bin/md5/Makefile b/src/regress/bin/md5/Makefile new file mode 100644 index 000000000..fb15e9b5e --- /dev/null +++ b/src/regress/bin/md5/Makefile @@ -0,0 +1,38 @@ +# $OpenBSD: Makefile,v 1.4 2002/09/02 20:01:43 avsm Exp $ + +REGRESS_TARGETS=md5 sha1 rmd160 md5_string_vs_files md5_pipe +REGRESS_TARGETS+=md5_pipe_vs_file md5_multiple_files + +md5: + md5 -x | cmp -s ${.CURDIR}/testsuite.md5 /dev/stdin + +sha1: + sha1 -x | cmp -s ${.CURDIR}/testsuite.sha1 /dev/stdin + +rmd160: + rmd160 -x | cmp -s ${.CURDIR}/testsuite.rmd160 /dev/stdin + +# shouldn't allow files on the command line along with '-s' +md5_string_vs_files: + if md5 -s "" /dev/null >/dev/null 2>&1; then \ + false ; \ + fi + +md5_pipe: + echo hi | md5 -p | cmp -s ${.CURDIR}/pipe_test.md5 /dev/stdin + +# shouldn't allow files on the command line along with '-p' +md5_pipe_vs_file: + if echo hi | md5 -p /dev/null >/dev/null 2>&1; then \ + false ; \ + fi + +# should allow multiple files +md5_multiple_files: + if [ `md5 /dev/null /dev/null | wc -l` != 2 ]; then \ + false ; \ + fi + +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/bin/md5/obj b/src/regress/bin/md5/obj new file mode 120000 index 000000000..9039eba58 --- /dev/null +++ b/src/regress/bin/md5/obj @@ -0,0 +1 @@ +/usr/obj/regress/bin/md5 \ No newline at end of file diff --git a/src/regress/bin/md5/pipe_test.md5 b/src/regress/bin/md5/pipe_test.md5 new file mode 100644 index 000000000..c6ad17d99 --- /dev/null +++ b/src/regress/bin/md5/pipe_test.md5 @@ -0,0 +1,2 @@ +hi +764efa883dda1e11db47671c4a3bbd9e diff --git a/src/regress/bin/md5/testsuite.md5 b/src/regress/bin/md5/testsuite.md5 new file mode 100644 index 000000000..96ec9270f --- /dev/null +++ b/src/regress/bin/md5/testsuite.md5 @@ -0,0 +1,10 @@ +MD5 test suite: +MD5 ("") = d41d8cd98f00b204e9800998ecf8427e +MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661 +MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72 +MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0 +MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b +MD5 ("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq") = 8215ef0796a20bcaaae116d3876c664a +MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = d174ab98d277d9f5a5611c2c9f419d9f +MD5 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = 57edf4a22be3c955ac49da2e2107b67a +MD5 (one million 'a' characters) = 7707d6ae4e027c70eea2a935c2296f21 diff --git a/src/regress/bin/md5/testsuite.rmd160 b/src/regress/bin/md5/testsuite.rmd160 new file mode 100644 index 000000000..4a3f11181 --- /dev/null +++ b/src/regress/bin/md5/testsuite.rmd160 @@ -0,0 +1,10 @@ +RMD160 test suite: +RMD160 ("") = 9c1185a5c5e9fc54612808977ee8f548b2258d31 +RMD160 ("a") = 0bdc9d2d256b3ee9daae347be6f4dc835a467ffe +RMD160 ("abc") = 8eb208f7e05d987a9b044a8e98c6b087f15a0bfc +RMD160 ("message digest") = 5d0689ef49d2fae572b881b123a85ffa21595f36 +RMD160 ("abcdefghijklmnopqrstuvwxyz") = f71c27109c692c1b56bbdceb5b9d2865b3708dbc +RMD160 ("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq") = 12a053384a9c0c88e405a06c27dcf49ada62eb2b +RMD160 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = b0e20b6e3116640286ed3a87a5713079b21f5189 +RMD160 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = 9b752e45573d4b39f4dbd3323cab82bf63326bfb +RMD160 (one million 'a' characters) = 52783243c1697bdbe16d37f97f68f08325dc1528 diff --git a/src/regress/bin/md5/testsuite.sha1 b/src/regress/bin/md5/testsuite.sha1 new file mode 100644 index 000000000..8ee49b4d7 --- /dev/null +++ b/src/regress/bin/md5/testsuite.sha1 @@ -0,0 +1,10 @@ +SHA1 test suite: +SHA1 ("") = da39a3ee5e6b4b0d3255bfef95601890afd80709 +SHA1 ("a") = 86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 +SHA1 ("abc") = a9993e364706816aba3e25717850c26c9cd0d89d +SHA1 ("message digest") = c12252ceda8be8994d5fa0290a47231c1d16aae3 +SHA1 ("abcdefghijklmnopqrstuvwxyz") = 32d10c7b8cf96570ca04ce37f2a19d84240d3a89 +SHA1 ("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq") = 84983e441c3bd26ebaae4aa1f95129e5e54670f1 +SHA1 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = 761c457bf73b14d27e9e9265c46f4b4dda11f940 +SHA1 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = 50abf5706a150990a08b2c5ea40fa0e585554732 +SHA1 (one million 'a' characters) = 34aa973cd4c4daa4f61eeb2bdbad27316534016f diff --git a/src/regress/bin/pax/CVS/Entries b/src/regress/bin/pax/CVS/Entries new file mode 100644 index 000000000..b2e4c0bbc --- /dev/null +++ b/src/regress/bin/pax/CVS/Entries @@ -0,0 +1,12 @@ +/Makefile/1.6/Fri Jul 21 22:59:05 2006// +/t1.out/1.2/Fri Apr 15 07:06:35 2005// +/t1.sh/1.2/Fri Apr 15 07:06:35 2005// +/t2.out/1.1/Fri Apr 15 07:06:35 2005// +/t2.sh/1.1/Fri Apr 15 07:06:35 2005// +/t3.out/1.1/Sat Apr 30 17:36:58 2005// +/t3.sh/1.1/Sat Apr 30 17:36:58 2005// +/t4.out/1.1/Mon Jun 13 19:22:02 2005// +/t4.sh/1.1/Mon Jun 13 19:22:02 2005// +/t5.sh/1.1/Wed Jan 25 17:42:08 2006// +/t6.sh/1.1/Fri Jul 21 22:59:05 2006// +D diff --git a/src/regress/bin/pax/CVS/Repository b/src/regress/bin/pax/CVS/Repository new file mode 100644 index 000000000..f41fc9bfd --- /dev/null +++ b/src/regress/bin/pax/CVS/Repository @@ -0,0 +1 @@ +src/regress/bin/pax diff --git a/src/regress/bin/pax/CVS/Root b/src/regress/bin/pax/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/bin/pax/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/bin/pax/Makefile b/src/regress/bin/pax/Makefile new file mode 100644 index 000000000..aa8ad2295 --- /dev/null +++ b/src/regress/bin/pax/Makefile @@ -0,0 +1,15 @@ +# $OpenBSD: Makefile,v 1.6 2006/07/21 22:59:05 ray Exp $ + +TESTSCRIPTS=t1 t2 t3 t4 t5 t6 + +.for t in ${TESTSCRIPTS} +REGRESS_TARGETS+=t-${t} +CLEANFILES+=${t}.tar + +t-${t}: + sh ${.CURDIR}/${t}.sh ${.CURDIR} ${.OBJDIR} +.endfor + +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/bin/pax/obj b/src/regress/bin/pax/obj new file mode 120000 index 000000000..f698ca3e4 --- /dev/null +++ b/src/regress/bin/pax/obj @@ -0,0 +1 @@ +/usr/obj/regress/bin/pax \ No newline at end of file diff --git a/src/regress/bin/pax/t1.out b/src/regress/bin/pax/t1.out new file mode 100644 index 000000000..62307e5dc --- /dev/null +++ b/src/regress/bin/pax/t1.out @@ -0,0 +1 @@ +digikamimageplugins-0.7.2/digikamimageplugins/antivignetting/digikamimageplugin_antivignetting_ui.rc diff --git a/src/regress/bin/pax/t1.sh b/src/regress/bin/pax/t1.sh new file mode 100644 index 000000000..771b41b82 --- /dev/null +++ b/src/regress/bin/pax/t1.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# $OpenBSD: t1.sh,v 1.2 2005/04/15 07:06:35 markus Exp $ + +# pax was assuming ustar entries were always NUL terminated +CUR=$1 +OBJ=$2 +uudecode -o $OBJ/t1.tar << '_EOF' +begin 644 t1.tar +M9&EG:6MA;6EM86=E<&QU9VEN"(@/@H@("`\=&5X=#Y&:29A;7`[>#PO=&5X +M=#X*("`@/$%C=&EO;B!N86UE/2)I;6%G97!L=6=I;E]A;G1I=FEG;F5T=&EN +M9R(@+SX@"B`@/"]-96YU/@H*(#PO365N=4)A /dev/null | cmp -s $CUR/t1.out /dev/stdin diff --git a/src/regress/bin/pax/t2.out b/src/regress/bin/pax/t2.out new file mode 100644 index 000000000..a34d79f83 --- /dev/null +++ b/src/regress/bin/pax/t2.out @@ -0,0 +1,2 @@ +abc/1234 +abc/abc diff --git a/src/regress/bin/pax/t2.sh b/src/regress/bin/pax/t2.sh new file mode 100644 index 000000000..281a74642 --- /dev/null +++ b/src/regress/bin/pax/t2.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# $OpenBSD: t2.sh,v 1.1 2005/04/15 07:06:35 markus Exp $ + +# tar.c, rev 1.36 +CUR=$1 +OBJ=$2 +uudecode -p << '_EOF' | tar ztf - 2> /dev/null | cmp -s $CUR/t2.out /dev/stdin +begin 644 foo +M'XL(`````````^W1L1&`,`@%4$9A!$(@S!/=0./^)A9Z9ZEBQ6M^0_&YGS@+ +M.",B4SVRNQ)/!(F8BY5,_1#1)#&@>A<;MK75!4:==^[/U6G^HIZW/VH^V%^E +/Q/XAA.!I!W_0A94`"``` +` +end +_EOF diff --git a/src/regress/bin/pax/t3.out b/src/regress/bin/pax/t3.out new file mode 100644 index 000000000..182dda13b --- /dev/null +++ b/src/regress/bin/pax/t3.out @@ -0,0 +1,33 @@ +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/a +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/bb +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/ccc +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/dddd +11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111/a +11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111/bb +11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111/ccc +11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111/dddd +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222/a +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222/bb +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222/ccc +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222/dddd +88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888 +88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888/a +88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888/bb +88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888/ccc +88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888/dddd +999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 +999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999/a +999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999/bb +999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999/ccc +999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999/dddd +f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +f99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 +p33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 +p33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333/a +p444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444 +p444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444/b +p5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 +p5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555/c diff --git a/src/regress/bin/pax/t3.sh b/src/regress/bin/pax/t3.sh new file mode 100644 index 000000000..b35ab715a --- /dev/null +++ b/src/regress/bin/pax/t3.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# $OpenBSD: t3.sh,v 1.1 2005/04/30 17:36:58 otto Exp $ +# +# Test filled prefix and empty name, plus various other edgae cases. +# +CUR=$1 +OBJ=$2 +uudecode -p << '_EOF' | tar ztf - 2> /dev/null | cmp -s $CUR/t3.out /dev/stdin +begin 644 t3.tar.gz +M'XL("$&5:D("`W0S+G1A<@#MF\%NPC`,AO,HO`&.'S.'X<>RJ'5US_Y$[4I+0],"',[9F&X/5Y)&9"R2*Y%$B`6Q+1AA6M+ +M7Y_GW<=T*:?S^?3;__XZ?[V1'\=%><+M[Y3\UU(>\T^U^6?.:0/A?W'_^[TQ +M_P6:?P$)_QK^#X>#,?_3/($$-?*OXO]MPI;_-O_3]`O_&OXUF-7_*K;QOSTN +MOOM?UF"%_6_X%V'G^7?BWUS_Z_XI3S4P_"OX-]?_AG^"R+^*?W/];_@O7,*_ +MAG]S_4]R7_\).>]_J,+Z^M_PC^@]_T[\F^M_PS]5"?\:_LWUO^&?*?*OXM]< +M_QO^!2C\:_A_69SMS/Y7N__JO?\Y0<'_;E[^F_^2L_?QWPGV^E_WC^!]_V_Y +M8#WE]NWUO^Z?"H=_#?_V^E_WS^['?R?^7Y=G.Z?_"?`8_R7ZGP;6]O^N_MV_ +M_Z,0K#7VOXO_XG[_UXE_:_WOXI\E\J_BWUK_N_@7]^]_./%_!!T>](\9<__^ +MH\;^CPI'A<=TGO^Q_R<4_M?"H^L_1.(BDH"@N%__O9-1[*[_;ORS^_G?B7]K +M^><,S;_XSW^QROWZWUC^A_\,Q?OZSXE_<_EO_9\RHOO\LUGN]G^LY7_XI^K] +9^S\G_H,@"((@"((@"(+_P3=C@T(``W0T9VYU+G1A<@#MULT-@S`,AN&,P@;8^2%TG%X8HM,W`7$G +MB+A*]3X7"P4).5\,K&MOLY,BIU2KYB3[M:@>]>!4?(AY"2%Y)UZRBIN2&\C9 +MR%D'T3W^=7[7_5ABO)1_N7//OQR7Z==[TV30_%_]S4WSG^O\J\;$_%O8Q$;3 +M_&L.,3#_%K;^\^^:\__B8_!,V[D'WSY_U.+P_EDDR/F;W``VO,ORWO^ +>U[\OMSW9Y(#Y`P``````````X+]\`:H?&NT`*``` +` +end +EOF +tar -cO -f - * | tar -tf - | cmp -s $CUR/t4.out - +ret=$? +cd .. && rm -rf t4 +exit $ret diff --git a/src/regress/bin/pax/t5.sh b/src/regress/bin/pax/t5.sh new file mode 100644 index 000000000..48ec7edd2 --- /dev/null +++ b/src/regress/bin/pax/t5.sh @@ -0,0 +1,26 @@ +# $OpenBSD: t5.sh,v 1.1 2006/01/25 17:42:08 markus Exp $ +# append without a file list should not corrupt a tar file +# +OBJ=$2 +cd ${OBJ} +fail () { + rm -f a b foo.tar + echo "$*" + exit 1 +} +echo a > a +echo b > b +echo a | pax -w -f foo.tar +tar tf foo.tar | grep -q a || fail missing file a +# append without a file list +echo -n | pax -w -a -f foo.tar +tar tf foo.tar > /dev/null || fail not a tar file +# again +echo | pax -w -a -f foo.tar +tar tf foo.tar > /dev/null || fail not a tar file +# append file +echo b | pax -w -a -f foo.tar +for i in a b; do + tar tf foo.tar | grep -q $i || fail missing file $i +done +rm -f a b foo.tar diff --git a/src/regress/bin/pax/t6.sh b/src/regress/bin/pax/t6.sh new file mode 100644 index 000000000..ff08466d9 --- /dev/null +++ b/src/regress/bin/pax/t6.sh @@ -0,0 +1,6 @@ +# $OpenBSD: t6.sh,v 1.1 2006/07/21 22:59:05 ray Exp $ +# Don't segfault if no file list is given. +# +OBJ=$2 +cd ${OBJ} +cpio -o < /dev/null diff --git a/src/regress/bin/systrace/CVS/Entries b/src/regress/bin/systrace/CVS/Entries new file mode 100644 index 000000000..b671be2a9 --- /dev/null +++ b/src/regress/bin/systrace/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Aug 10 09:00:20 2006// +D/id//// +D/symlink//// diff --git a/src/regress/bin/systrace/CVS/Repository b/src/regress/bin/systrace/CVS/Repository new file mode 100644 index 000000000..25deeb5eb --- /dev/null +++ b/src/regress/bin/systrace/CVS/Repository @@ -0,0 +1 @@ +src/regress/bin/systrace diff --git a/src/regress/bin/systrace/CVS/Root b/src/regress/bin/systrace/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/bin/systrace/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/bin/systrace/Makefile b/src/regress/bin/systrace/Makefile new file mode 100644 index 000000000..663026dc2 --- /dev/null +++ b/src/regress/bin/systrace/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.2 2006/08/10 09:00:20 espie Exp $ + +SUBDIR+= id +SUBDIR+= symlink + +.include diff --git a/src/regress/bin/systrace/id/CVS/Entries b/src/regress/bin/systrace/id/CVS/Entries new file mode 100644 index 000000000..d4a2d1626 --- /dev/null +++ b/src/regress/bin/systrace/id/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Thu Jan 15 17:14:43 2004// +/id.policy/1.2/Sat Aug 7 18:28:35 2004// +/id.sh/1.1/Thu Jan 15 17:14:43 2004// +D diff --git a/src/regress/bin/systrace/id/CVS/Repository b/src/regress/bin/systrace/id/CVS/Repository new file mode 100644 index 000000000..22a063690 --- /dev/null +++ b/src/regress/bin/systrace/id/CVS/Repository @@ -0,0 +1 @@ +src/regress/bin/systrace/id diff --git a/src/regress/bin/systrace/id/CVS/Root b/src/regress/bin/systrace/id/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/bin/systrace/id/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/bin/systrace/id/Makefile b/src/regress/bin/systrace/id/Makefile new file mode 100644 index 000000000..9997759e7 --- /dev/null +++ b/src/regress/bin/systrace/id/Makefile @@ -0,0 +1,10 @@ +# $OpenBSD: Makefile,v 1.1 2004/01/15 17:14:43 sturm Exp $ + +REGRESS_TARGETS=id.sh + +id.sh: + @sh ${.CURDIR}/id.sh ${.CURDIR}/id.policy + +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/bin/systrace/id/id.policy b/src/regress/bin/systrace/id/id.policy new file mode 100644 index 000000000..9d3b93999 --- /dev/null +++ b/src/regress/bin/systrace/id/id.policy @@ -0,0 +1,31 @@ +# $OpenBSD: id.policy,v 1.2 2004/08/07 18:28:35 marius Exp $ +Policy: /usr/bin/id, Emulation: native + native-issetugid: permit + native-mprotect: permit + native-mmap: permit + native-fsread: filename eq "/var/run/ld.so.hints" then permit + native-fstat: permit + native-close: permit + native-fsread: filename match "/usr/lib/libc.so.*" then permit + native-read: permit + native-mquery: permit + native-munmap: permit + native-sigprocmask: permit + native-__sysctl: permit + native-fsread: filename eq "/etc/malloc.conf" then permit + native-break: permit + native-getuid: permit + native-ioctl: permit + native-fsread: filename eq "/etc/spwd.db" then permit + native-fsread: filename eq "/etc/pwd.db" then permit + native-fcntl: permit + native-pread: permit + native-geteuid: permit + native-getgid: permit + native-fsread: filename eq "/etc/group" then permit + native-getegid: permit + native-getgroups: permit + native-write: permit + native-exit: permit + native-getrlimit: permit + diff --git a/src/regress/bin/systrace/id/id.sh b/src/regress/bin/systrace/id/id.sh new file mode 100644 index 000000000..06e479be7 --- /dev/null +++ b/src/regress/bin/systrace/id/id.sh @@ -0,0 +1,19 @@ +#!/bin/ksh +# $OpenBSD: id.sh,v 1.1 2004/01/15 17:14:43 sturm Exp $ + +echo "/bin/systrace -f $1 -a /usr/bin/id" +SYSTR_RES=`eval /bin/systrace -f $1 -a /usr/bin/id 2>/dev/null` +NORM_RES=`/usr/bin/id` +if [ -z "$SYSTR_RES" ] ; then + rm -f id.core + echo "Systrace of /usr/bin/id failed" + exit 1 +fi + +if [ "$NORM_RES" != "$SYSTR_RES" ] ; then + echo "Expected \"$NORM_RES\"" + echo "Got \"$SYSTR_RES\"" + exit 1 +fi + +exit 0 diff --git a/src/regress/bin/systrace/id/obj b/src/regress/bin/systrace/id/obj new file mode 120000 index 000000000..1d627430d --- /dev/null +++ b/src/regress/bin/systrace/id/obj @@ -0,0 +1 @@ +/usr/obj/regress/bin/systrace/id \ No newline at end of file diff --git a/src/regress/bin/systrace/symlink/CVS/Entries b/src/regress/bin/systrace/symlink/CVS/Entries new file mode 100644 index 000000000..2a168bd78 --- /dev/null +++ b/src/regress/bin/systrace/symlink/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Aug 10 09:00:20 2006// +/ln.policy/1.1/Thu Aug 10 09:00:20 2006// +D diff --git a/src/regress/bin/systrace/symlink/CVS/Repository b/src/regress/bin/systrace/symlink/CVS/Repository new file mode 100644 index 000000000..aa5c83829 --- /dev/null +++ b/src/regress/bin/systrace/symlink/CVS/Repository @@ -0,0 +1 @@ +src/regress/bin/systrace/symlink diff --git a/src/regress/bin/systrace/symlink/CVS/Root b/src/regress/bin/systrace/symlink/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/bin/systrace/symlink/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/bin/systrace/symlink/Makefile b/src/regress/bin/systrace/symlink/Makefile new file mode 100644 index 000000000..4eb1f1a6f --- /dev/null +++ b/src/regress/bin/systrace/symlink/Makefile @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile,v 1.1 2006/08/10 09:00:20 espie Exp $ + +REGRESS_TARGETS=symlink1 + +symlink1: + rm -f ${.OBJDIR}/{a,b} + ln -sf b ${.OBJDIR}/a + if systrace -ae -f ${.CURDIR}/ln.policy ln -s b ${.OBJDIR}/a; then \ + exit 1; \ + fi + if test -e ${.OBJDIR}/b; then \ + exit 1; \ + fi + +.PHONY: ${REGRESS_TARGETS} + +CLEANFILES+= a b + +.include diff --git a/src/regress/bin/systrace/symlink/ln.policy b/src/regress/bin/systrace/symlink/ln.policy new file mode 100644 index 000000000..9e0cc1841 --- /dev/null +++ b/src/regress/bin/systrace/symlink/ln.policy @@ -0,0 +1,15 @@ +# $OpenBSD: ln.policy,v 1.1 2006/08/10 09:00:20 espie Exp $ + +Policy: /bin/ln, Emulation: native + native-__sysctl: permit + native-mmap: permit + native-mprotect: permit + native-fsread: permit + native-symlink: filename match "/*" then permit + native-munmap: permit + native-exit: permit + native-write: permit + native-issetugid: permit + native-fstat: permit + native-close: permit + diff --git a/src/regress/bin/systrace/symlink/obj b/src/regress/bin/systrace/symlink/obj new file mode 120000 index 000000000..e94d7685f --- /dev/null +++ b/src/regress/bin/systrace/symlink/obj @@ -0,0 +1 @@ +/usr/obj/regress/bin/systrace/symlink \ No newline at end of file diff --git a/src/regress/etc/CVS/Entries b/src/regress/etc/CVS/Entries new file mode 100644 index 000000000..f6e8c9735 --- /dev/null +++ b/src/regress/etc/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.2/Sat Feb 23 01:25:10 2002// +D/MAKEDEV//// diff --git a/src/regress/etc/CVS/Repository b/src/regress/etc/CVS/Repository new file mode 100644 index 000000000..bcf802003 --- /dev/null +++ b/src/regress/etc/CVS/Repository @@ -0,0 +1 @@ +src/regress/etc diff --git a/src/regress/etc/CVS/Root b/src/regress/etc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/etc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/etc/MAKEDEV/CVS/Entries b/src/regress/etc/MAKEDEV/CVS/Entries new file mode 100644 index 000000000..51cacf55f --- /dev/null +++ b/src/regress/etc/MAKEDEV/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.25/Mon Apr 5 23:11:45 2010// +D diff --git a/src/regress/etc/MAKEDEV/CVS/Repository b/src/regress/etc/MAKEDEV/CVS/Repository new file mode 100644 index 000000000..dab6be5fa --- /dev/null +++ b/src/regress/etc/MAKEDEV/CVS/Repository @@ -0,0 +1 @@ +src/regress/etc/MAKEDEV diff --git a/src/regress/etc/MAKEDEV/CVS/Root b/src/regress/etc/MAKEDEV/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/etc/MAKEDEV/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/etc/MAKEDEV/Makefile b/src/regress/etc/MAKEDEV/Makefile new file mode 100644 index 000000000..564ce0c1b --- /dev/null +++ b/src/regress/etc/MAKEDEV/Makefile @@ -0,0 +1,49 @@ + +# $OpenBSD: Makefile,v 1.25 2010/02/14 12:30:27 miod Exp $ + +MAKEDEVARCHS+=alpha amd64 armish aviion hp300 hppa hppa64 i386 landisk +MAKEDEVARCHS+=loongson luna88k mac68k macppc mvme68k +#MAKEDEVARCHS+=mvmeppc +MAKEDEVARCHS+=mvme88k sgi socppc sparc sparc64 vax zaurus + +MAKEDEVTARGS?=all ramdisk + +ETCSRCDIR?= /usr/src/etc + +REGRESS_SLOW_TARGETS=${REGRESS_TARGETS} + +# test separate targets, all, ramdisk/raminst, std, etc +# t1 = all +# t2 = ramdisk + +REGRESS_TARGETS+= ${MAKEDEVARCHS} +REGRESS_ROOT_TARGETS=${REGRESS_TARGETS} + +${REGRESS_TARGETS}: +. for _T in ${MAKEDEVTARGS} + @echo "====> ${_T}.${.TARGET}" + @exec ${SUDO} rm -rf test.${_T}.${.TARGET} + @exec mkdir -p -m 700 test.${_T}.${.TARGET} + @exec cp ${ETCSRCDIR}/etc.${.TARGET}/MAKEDEV test.${_T}.${.TARGET} + @exec ${SUDO} chown root:wheel test.${_T}.${.TARGET} + @cd test.${_T}.${.TARGET}; \ + time ${SUDO} sh ./MAKEDEV ${_T} || true; \ + time ${SUDO} sh ./MAKEDEV ${_T} || true; \ + ( ls -ln; ls -ln fd/; ls -ln altq/ ) 2> /dev/null | \ + awk '/^[bcps]/ {printf "%s %x.%x %x,%x%s\n",$$1,$$3,$$4,$$5,$$6,$$10} \ + /^l/ {printf "%s %s.%s%s>%s\n",$$1,$$3,$$4,$$9,$$11}' | \ + sort +5 -n | \ + sed -e 's/rwx/7/g;s/rw-/6/g;s/r-x/5/g;s/r--/4/g' \ + -e 's/-wx/3/g;s/-w-/2/g;s/--x/1/g;s/---/0/g' \ + -e 's/^\([bcpsl]\)\([0-9][0-9]*\) /\2\1/' \ + > ../t1.${_T}.${.TARGET}.out +.endfor + +clean: + for f in ${MAKEDEVARCHS}; do rm -rf test.$$f; done + rm -f ${CLEANFILES} + +.PHONY: ${MAKEDEVARCHS} +CLEANFILES+=t1.*.out + +.include diff --git a/src/regress/etc/MAKEDEV/obj b/src/regress/etc/MAKEDEV/obj new file mode 120000 index 000000000..411527e1f --- /dev/null +++ b/src/regress/etc/MAKEDEV/obj @@ -0,0 +1 @@ +/usr/obj/regress/etc/MAKEDEV \ No newline at end of file diff --git a/src/regress/etc/Makefile b/src/regress/etc/Makefile new file mode 100644 index 000000000..41f6f45c7 --- /dev/null +++ b/src/regress/etc/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.2 2002/02/23 01:25:10 art Exp $ + +SUBDIR+= MAKEDEV + +install: + +.include diff --git a/src/regress/gnu/CVS/Entries b/src/regress/gnu/CVS/Entries new file mode 100644 index 000000000..2fed79503 --- /dev/null +++ b/src/regress/gnu/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.2/Sat Feb 23 01:25:10 2002// +D/egcs//// diff --git a/src/regress/gnu/CVS/Repository b/src/regress/gnu/CVS/Repository new file mode 100644 index 000000000..04d3e925f --- /dev/null +++ b/src/regress/gnu/CVS/Repository @@ -0,0 +1 @@ +src/regress/gnu diff --git a/src/regress/gnu/CVS/Root b/src/regress/gnu/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/gnu/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/gnu/Makefile b/src/regress/gnu/Makefile new file mode 100644 index 000000000..999364693 --- /dev/null +++ b/src/regress/gnu/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.2 2002/02/23 01:25:10 art Exp $ + +SUBDIR+= egcs + +install: + +.include diff --git a/src/regress/gnu/egcs/CVS/Entries b/src/regress/gnu/egcs/CVS/Entries new file mode 100644 index 000000000..9e72052fb --- /dev/null +++ b/src/regress/gnu/egcs/CVS/Entries @@ -0,0 +1,6 @@ +/Makefile/1.5/Wed Dec 29 06:16:45 2004// +/Makefile.inc/1.1/Sun Oct 7 13:24:56 2001// +D/gcc//// +D/gcc-bounds//// +D/libf2c//// +D/libiberty//// diff --git a/src/regress/gnu/egcs/CVS/Repository b/src/regress/gnu/egcs/CVS/Repository new file mode 100644 index 000000000..aef150d6d --- /dev/null +++ b/src/regress/gnu/egcs/CVS/Repository @@ -0,0 +1 @@ +src/regress/gnu/egcs diff --git a/src/regress/gnu/egcs/CVS/Root b/src/regress/gnu/egcs/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/gnu/egcs/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/gnu/egcs/Makefile b/src/regress/gnu/egcs/Makefile new file mode 100644 index 000000000..2402586aa --- /dev/null +++ b/src/regress/gnu/egcs/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.5 2004/12/29 06:16:45 david Exp $ + +SUBDIR+= gcc gcc-bounds libiberty libf2c + +install: + +.include diff --git a/src/regress/gnu/egcs/Makefile.inc b/src/regress/gnu/egcs/Makefile.inc new file mode 100644 index 000000000..32879c363 --- /dev/null +++ b/src/regress/gnu/egcs/Makefile.inc @@ -0,0 +1,3 @@ +# $OpenBSD: Makefile.inc,v 1.1 2001/10/07 13:24:56 espie Exp $ + +RUNTEST=/usr/local/bin/runtest diff --git a/src/regress/gnu/egcs/gcc-bounds/CVS/Entries b/src/regress/gnu/egcs/gcc-bounds/CVS/Entries new file mode 100644 index 000000000..dc7d5e528 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/CVS/Entries @@ -0,0 +1,194 @@ +/builtins-1.c/1.1/Fri Apr 23 21:36:14 2004// +/builtins-1.c.exp/1.1/Fri Apr 23 21:50:08 2004// +/builtins-1.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-1.c/1.1/Thu Jun 26 18:37:28 2003// +/declare-1.c.exp/1.1/Thu Jun 26 18:37:28 2003// +/declare-1.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-10.c/1.1/Thu Jun 26 18:37:28 2003// +/declare-10.c.exp/1.1/Thu Jun 26 18:37:28 2003// +/declare-10.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-11.c/1.1/Thu Jun 26 18:37:28 2003// +/declare-11.c.exp/1.1/Thu Jun 26 18:37:28 2003// +/declare-11.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-12.c/1.1/Thu Jun 26 18:37:28 2003// +/declare-12.c.exp/1.1/Thu Jun 26 18:37:28 2003// +/declare-12.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-13.c/1.1/Thu Jun 26 18:37:28 2003// +/declare-13.c.exp/1.1/Thu Jun 26 18:37:28 2003// +/declare-13.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-14.c/1.1/Tue Apr 27 18:02:07 2004// +/declare-14.c.exp/1.1/Fri Jul 9 21:28:42 2004// +/declare-14.c.exp.gcc3/1.1/Tue Apr 27 18:02:07 2004// +/declare-15.c/1.1/Tue Apr 27 18:02:07 2004// +/declare-15.c.exp/1.1/Fri Jul 9 21:28:42 2004// +/declare-15.c.exp.gcc3/1.1/Tue Apr 27 18:02:07 2004// +/declare-2.c/1.1/Thu Jun 26 18:37:28 2003// +/declare-2.c.exp/1.1/Thu Jun 26 18:37:28 2003// +/declare-2.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-3.c/1.1/Thu Jun 26 18:37:28 2003// +/declare-3.c.exp/1.1/Thu Jun 26 18:37:28 2003// +/declare-3.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-4.c/1.1/Thu Jun 26 18:37:28 2003// +/declare-4.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/declare-4.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-5.c/1.1/Thu Jun 26 18:37:29 2003// +/declare-5.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/declare-5.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-6.c/1.1/Thu Jun 26 18:37:29 2003// +/declare-6.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/declare-6.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-7.c/1.1/Thu Jun 26 18:37:29 2003// +/declare-7.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/declare-7.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-8.c/1.1/Thu Jun 26 18:37:29 2003// +/declare-8.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/declare-8.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/declare-9.c/1.1/Thu Jun 26 18:37:29 2003// +/declare-9.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/declare-9.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/fread-1.c/1.1/Thu Jun 26 18:37:29 2003// +/fread-1.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/fread-1.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/fread-2.c/1.1/Thu Jun 26 18:37:29 2003// +/fread-2.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/fread-2.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/fread-3.c/1.1/Thu Jun 26 18:37:29 2003// +/fread-3.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/fread-3.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/fread-4.c/1.2/Sat Apr 3 10:24:49 2004// +/fread-4.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/fread-4.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/getcwd-1.c/1.1/Thu Jul 3 14:31:41 2003// +/getcwd-1.c.exp/1.1/Thu Jul 3 14:31:41 2003// +/getcwd-1.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/getcwd-2.c/1.1/Thu Jul 3 14:31:41 2003// +/getcwd-2.c.exp/1.1/Thu Jul 3 14:31:41 2003// +/getcwd-2.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/getcwd-3.c/1.1/Thu Jul 3 14:31:41 2003// +/getcwd-3.c.exp/1.1/Thu Jul 3 14:31:41 2003// +/getcwd-3.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/getcwd-4.c/1.1/Thu Jul 3 14:31:41 2003// +/getcwd-4.c.exp/1.1/Thu Jul 3 14:31:41 2003// +/getcwd-4.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/md-1.c/1.1/Tue Oct 7 22:24:26 2003// +/md-1.c.exp/1.1/Tue Oct 7 22:24:26 2003// +/md-1.c.exp.gcc3/1.1/Fri Apr 23 21:36:14 2004// +/md-2.c/1.1/Tue Oct 7 22:24:26 2003// +/md-2.c.exp/1.1/Tue Oct 7 22:24:26 2003// +/md-2.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/md-3.c/1.1/Tue Oct 7 22:24:26 2003// +/md-3.c.exp/1.1/Tue Oct 7 22:24:26 2003// +/md-3.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/md-4.c/1.1/Tue Oct 7 22:24:26 2003// +/md-4.c.exp/1.1/Tue Oct 7 22:24:26 2003// +/md-4.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/md-5.c/1.1/Tue Oct 7 22:24:26 2003// +/md-5.c.exp/1.1/Tue Oct 7 22:24:26 2003// +/md-5.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/md-6.c/1.1/Tue Oct 7 22:24:26 2003// +/md-6.c.exp/1.1/Tue Oct 7 22:24:26 2003// +/md-6.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/memcpy-1.c/1.1/Thu Jun 26 18:37:29 2003// +/memcpy-1.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/memcpy-1.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/memcpy-2.c/1.1/Thu Jun 26 18:37:29 2003// +/memcpy-2.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/memcpy-2.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/memcpy-3.c/1.1/Thu Jun 26 18:37:29 2003// +/memcpy-3.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/memcpy-3.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/memcpy-4.c/1.1/Thu Jun 26 18:37:29 2003// +/memcpy-4.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/memcpy-4.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/memcpy-5.c/1.1/Thu Jun 26 18:37:29 2003// +/memcpy-5.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/memcpy-5.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/memcpy-6.c/1.1/Thu Jun 26 18:37:29 2003// +/memcpy-6.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/memcpy-6.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/memcpy-7.c/1.1/Fri Apr 23 21:36:15 2004// +/snprintf-1.cpp/1.1/Thu Jun 26 18:37:29 2003// +/snprintf-1.cpp.exp/1.1/Thu Jun 26 18:37:29 2003// +/snprintf-1.cpp.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/snprintf-2.cpp/1.1/Thu Jun 26 18:37:29 2003// +/snprintf-2.cpp.exp/1.1/Thu Jun 26 18:37:29 2003// +/snprintf-2.cpp.exp.gcc3/1.2/Tue Jul 11 11:55:13 2006// +/snprintf-3.cpp/1.1/Thu Jun 26 18:37:29 2003// +/snprintf-3.cpp.exp/1.1/Thu Jun 26 18:37:29 2003// +/snprintf-3.cpp.exp.gcc3/1.2/Tue Jul 11 11:55:13 2006// +/snprintf-4.cpp/1.2/Thu Sep 11 10:06:29 2008// +/snprintf-4.cpp.exp/1.2/Thu Sep 11 10:06:29 2008// +/snprintf-4.cpp.exp.gcc3/1.3/Thu Sep 11 10:06:29 2008// +/snprintf-5.cpp/1.1/Thu Jun 26 18:37:29 2003// +/snprintf-5.cpp.exp/1.1/Thu Jun 26 18:37:29 2003// +/snprintf-5.cpp.exp.gcc3/1.2/Tue Jul 11 11:55:13 2006// +/sscanf-1.c/1.1/Thu Jun 26 18:37:29 2003// +/sscanf-1.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/sscanf-1.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/sscanf-1.cpp/1.1/Thu Jun 26 18:37:29 2003// +/sscanf-1.cpp.exp/1.2/Wed Aug 6 13:54:30 2003// +/sscanf-1.cpp.exp.gcc3/1.2/Tue Jul 11 11:55:13 2006// +/sscanf-2.c/1.1/Thu Jun 26 18:37:29 2003// +/sscanf-2.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/sscanf-2.c.exp.gcc3/1.2/Tue Jul 11 11:55:13 2006// +/sscanf-3.c/1.1/Fri Apr 23 21:36:15 2004// +/sscanf-3.c.exp/1.1/Fri Apr 23 21:50:09 2004// +/sscanf-3.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/sscanf-4.c/1.1/Fri Apr 23 21:36:15 2004// +/sscanf-4.c.exp/1.1/Fri Apr 23 21:50:09 2004// +/sscanf-4.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/sscanf-5.c/1.1/Fri Apr 23 21:36:15 2004// +/sscanf-5.c.exp/1.1/Fri Apr 23 21:50:09 2004// +/sscanf-5.c.exp.gcc3/1.2/Tue Jul 11 11:55:13 2006// +/sscanf-6.c/1.1/Tue Jul 11 11:59:53 2006// +/sscanf-6.c.exp.gcc3/1.1/Tue Jul 11 11:59:53 2006// +/strlcat-1.c/1.1/Thu Jun 26 18:37:29 2003// +/strlcat-1.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/strlcat-1.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/strlcat-2.c/1.1/Thu Jun 26 18:37:29 2003// +/strlcat-2.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/strlcat-2.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/strlcat-3.c/1.1/Thu Jun 26 18:37:29 2003// +/strlcat-3.c.exp/1.2/Fri Sep 5 20:50:29 2003// +/strlcat-3.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/strlcat-4.c/1.1/Thu Jun 26 18:37:29 2003// +/strlcat-4.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/strlcat-4.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/strlcat-5.c/1.1/Thu Jun 26 18:37:29 2003// +/strlcat-5.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/strlcat-5.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/strlcat-6.c/1.1/Fri Sep 5 20:50:29 2003// +/strlcat-6.c.exp/1.1/Fri Sep 5 20:50:29 2003// +/strlcat-6.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/strlcpy-1.c/1.1/Thu Jun 26 18:37:29 2003// +/strlcpy-1.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/strlcpy-1.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/strlcpy-2.c/1.1/Thu Jun 26 18:37:29 2003// +/strlcpy-2.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/strlcpy-2.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/strlcpy-3.c/1.1/Thu Jun 26 18:37:29 2003// +/strlcpy-3.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/strlcpy-3.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/strlcpy-4.c/1.1/Thu Jun 26 18:37:29 2003// +/strlcpy-4.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/strlcpy-4.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/strlcpy-5.c/1.1/Thu Jun 26 18:37:29 2003// +/strlcpy-5.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/strlcpy-5.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/strlcpy-6.c/1.1/Thu Jun 26 18:37:29 2003// +/strlcpy-6.c.exp/1.1/Thu Jun 26 18:37:29 2003// +/strlcpy-6.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/vararray-1.c/1.1/Wed Aug 6 13:54:30 2003// +/vararray-1.c.exp/1.1/Wed Aug 6 13:54:30 2003// +/vararray-1.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/vararray-2.c/1.1/Wed Aug 6 13:54:30 2003// +/vararray-2.c.exp/1.1/Wed Aug 6 13:54:30 2003// +/vararray-2.c.exp.gcc3/1.1/Fri Apr 23 21:36:15 2004// +/vararray-3.c/1.1/Sun Aug 8 13:11:10 2004// +/vararray-3.c.exp/1.1/Sun Aug 8 13:11:10 2004// +/vararray-3.c.exp.gcc3/1.1/Wed Dec 29 05:48:40 2004// +/Makefile/1.12/Mon May 31 05:18:47 2010// +/memcpy-8.c/1.1/Fri May 14 09:59:53 2010// +/memcpy-8.c.exp/1.1/Fri May 14 17:54:25 2010// +/memcpy-8.c.exp.gcc3/1.1/Fri May 14 17:54:25 2010// +D diff --git a/src/regress/gnu/egcs/gcc-bounds/CVS/Repository b/src/regress/gnu/egcs/gcc-bounds/CVS/Repository new file mode 100644 index 000000000..83a5836d9 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/CVS/Repository @@ -0,0 +1 @@ +src/regress/gnu/egcs/gcc-bounds diff --git a/src/regress/gnu/egcs/gcc-bounds/CVS/Root b/src/regress/gnu/egcs/gcc-bounds/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/gnu/egcs/gcc-bounds/Makefile b/src/regress/gnu/egcs/gcc-bounds/Makefile new file mode 100644 index 000000000..bd6396394 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/Makefile @@ -0,0 +1,62 @@ +# $OpenBSD: Makefile,v 1.12 2010/05/14 09:59:53 avsm Exp $ + +C_MODULES?= strlcpy strlcat getcwd memcpy fread memcpy declare \ + sscanf vararray md builtins +CPP_MODULES?= snprintf sscanf + +C_STRLCPY= 1 2 3 4 5 6 +C_STRLCAT= 1 2 3 4 5 6 +C_GETCWD= 1 2 3 4 +C_MEMCPY= 1 2 3 4 5 6 8 +C_FREAD= 1 2 3 4 +C_DECLARE= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +C_SSCANF= 1 2 3 4 5 6 +C_VARARRAY= 1 2 3 +C_MD= 1 2 3 4 5 6 +C_BUILTINS= 1 + +CPP_SNPRINTF= 1 2 3 4 5 +CPP_SSCANF= 1 + +TCC= gcc +TCFLAGS= -Wbounded -Wformat -pedantic +TCXX= g++ +TCXXFLAGS= ${TCFLAGS} +REGRESS_TARGETS= ${C_TARGETS} ${CPP_TARGETS} + +.for i in ${C_MODULES} +. for j in ${C_${i:U}} +C_TARGETS+= c-${i}-${j} +c-${i}-${j}: + ${TCC} ${TCFLAGS} -o /dev/null ${i}-${j}.c 2>&1 | diff -u - ${.CURDIR}/${i}-${j}.c${EXP} +. endfor +.endfor + +.for i in ${CPP_MODULES} +. for j in ${CPP_${i:U}} +CPP_TARGETS+= cpp-${i}-${j} +cpp-${i}-${j}: + ${TCXX} ${TCXXFLAGS} -o /dev/null ${i}-${j}.cpp 2>&1 | grep -v 'misused' | diff -u - ${.CURDIR}/${i}-${j}.cpp${EXP} +. endfor +.endfor + +generate: +.for i in ${C_TARGETS} + -${TCC} ${TCFLAGS} -o /dev/null ${i:C/^c-//g}.c >${i:C/^c-//g}.c${EXP} 2>&1 +.endfor +.for i in ${CPP_TARGETS} + -${TCXX} ${TCXXFLAGS} -o /dev/null ${i:C/^cpp-//g}.cpp >${i:C/^cpp-//g}.cpp${EXP} 2>&1 +.endfor + +.PHONY: ${REGRESS_TARGETS} generate regress + +NOOBJ= Yes + +.include +.if ${COMPILER_VERSION:L} == "gcc3" +EXP= .exp.gcc3 +.elif ${COMPILER_VERSION:L} == "gcc4" +EXP= .exp.gcc4 +.else +EXP= .exp +.endif diff --git a/src/regress/gnu/egcs/gcc-bounds/builtins-1.c b/src/regress/gnu/egcs/gcc-bounds/builtins-1.c new file mode 100644 index 000000000..ea5389b56 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/builtins-1.c @@ -0,0 +1,23 @@ +#include +#include +#include + +int +main(int argc, char **argv) +{ + char buf[100]; + char buf2[50]; + va_list l; + FILE *f; + bzero(buf, 200); + memcpy(buf2, buf, sizeof buf); + memcpy(buf2, buf, 105); + memset(buf, 0, 500); + strncat(buf2, "blahblah", 1000); + strncpy(buf2, buf, 1234); + snprintf(buf, 5432, "foo"); + vsnprintf(buf, 2345, "bar", l); + fwrite(buf, 123, 4, f); + return 1; +} + diff --git a/src/regress/gnu/egcs/gcc-bounds/builtins-1.c.exp b/src/regress/gnu/egcs/gcc-bounds/builtins-1.c.exp new file mode 100644 index 000000000..01ccf21ac --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/builtins-1.c.exp @@ -0,0 +1,11 @@ +builtins-1.c: In function `main': +builtins-1.c:12: warning: array size (100) smaller than bound length (200) +builtins-1.c:13: warning: array size (50) smaller than bound length (100) +builtins-1.c:14: warning: array size (100) smaller than bound length (105) +builtins-1.c:14: warning: array size (50) smaller than bound length (105) +builtins-1.c:15: warning: array size (100) smaller than bound length (500) +builtins-1.c:16: warning: array size (50) smaller than bound length (1000) +builtins-1.c:17: warning: array size (50) smaller than bound length (1234) +builtins-1.c:18: warning: array size (100) smaller than bound length (5432) +builtins-1.c:19: warning: array size (100) smaller than bound length (2345) +builtins-1.c:20: warning: array size (100) smaller than required length (4 * 123) diff --git a/src/regress/gnu/egcs/gcc-bounds/builtins-1.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/builtins-1.c.exp.gcc3 new file mode 100644 index 000000000..624bd882f --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/builtins-1.c.exp.gcc3 @@ -0,0 +1,11 @@ +builtins-1.c: In function `main': +builtins-1.c:12: warning: array size (100) smaller than bound length (200) +builtins-1.c:13: warning: array size (50) smaller than bound length (100) +builtins-1.c:14: warning: array size (50) smaller than bound length (105) +builtins-1.c:14: warning: array size (100) smaller than bound length (105) +builtins-1.c:15: warning: array size (100) smaller than bound length (500) +builtins-1.c:16: warning: array size (50) smaller than bound length (1000) +builtins-1.c:17: warning: array size (50) smaller than bound length (1234) +builtins-1.c:18: warning: array size (100) smaller than bound length (5432) +builtins-1.c:19: warning: array size (100) smaller than bound length (2345) +builtins-1.c:20: warning: array size (100) smaller than required length (4 * 123) diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-1.c b/src/regress/gnu/egcs/gcc-bounds/declare-1.c new file mode 100644 index 000000000..1ef86930d --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-1.c @@ -0,0 +1,6 @@ +void my_func(char *, int) + __attribute__((__bounded__(__string__,1,2))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-1.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-1.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-1.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-1.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-10.c b/src/regress/gnu/egcs/gcc-bounds/declare-10.c new file mode 100644 index 000000000..7762fcf34 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-10.c @@ -0,0 +1,6 @@ +void my_func(char *, int) + __attribute__((__bounded__(__size__,1,2,3))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-10.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-10.c.exp new file mode 100644 index 000000000..5e14dc6e1 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-10.c.exp @@ -0,0 +1 @@ +declare-10.c:2: bound element size argument not an integer type diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-10.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-10.c.exp.gcc3 new file mode 100644 index 000000000..6e956337f --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-10.c.exp.gcc3 @@ -0,0 +1 @@ +declare-10.c:2: error: bound element size argument not an integer type diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-11.c b/src/regress/gnu/egcs/gcc-bounds/declare-11.c new file mode 100644 index 000000000..386515d85 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-11.c @@ -0,0 +1,6 @@ +void my_func(char *, int, int) + __attribute__((__bounded__(__size__,1,2,3))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-11.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-11.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-11.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-11.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-12.c b/src/regress/gnu/egcs/gcc-bounds/declare-12.c new file mode 100644 index 000000000..e003e3c78 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-12.c @@ -0,0 +1,6 @@ +void my_func(char *, int, int) + __attribute__((__bounded__(__size__,1,2,-3))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-12.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-12.c.exp new file mode 100644 index 000000000..05623f1fb --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-12.c.exp @@ -0,0 +1 @@ +declare-12.c:2: bound element size argument not an integer type diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-12.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-12.c.exp.gcc3 new file mode 100644 index 000000000..b2895b299 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-12.c.exp.gcc3 @@ -0,0 +1 @@ +declare-12.c:2: error: bound element size argument not an integer type diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-13.c b/src/regress/gnu/egcs/gcc-bounds/declare-13.c new file mode 100644 index 000000000..057451b54 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-13.c @@ -0,0 +1,6 @@ +void my_func(char *, int, int) + __attribute__((__bounded__(__foo__,1,2,3))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-13.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-13.c.exp new file mode 100644 index 000000000..68f3aa069 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-13.c.exp @@ -0,0 +1 @@ +declare-13.c:2: warning: `__foo__' is an unrecognized bounded function type diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-13.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-13.c.exp.gcc3 new file mode 100644 index 000000000..68f3aa069 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-13.c.exp.gcc3 @@ -0,0 +1 @@ +declare-13.c:2: warning: `__foo__' is an unrecognized bounded function type diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-14.c b/src/regress/gnu/egcs/gcc-bounds/declare-14.c new file mode 100644 index 000000000..2b616899b --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-14.c @@ -0,0 +1,8 @@ +#define TEST_SIZE 32 + +void my_func(char *, int, int) + __attribute__((__bounded__(__minbytes__,1,TEST_SIZE))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-14.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-14.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-14.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-14.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-15.c b/src/regress/gnu/egcs/gcc-bounds/declare-15.c new file mode 100644 index 000000000..fe6603528 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-15.c @@ -0,0 +1,6 @@ +void my_func(char *, int, int) + __attribute__((__bounded__(__minbytes__,1,TEST_SIZE))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-15.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-15.c.exp new file mode 100644 index 000000000..bed561db9 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-15.c.exp @@ -0,0 +1,2 @@ +declare-15.c:2: `TEST_SIZE' undeclared here (not in a function) +declare-15.c:2: bound length operand number is not an integer constant diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-15.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-15.c.exp.gcc3 new file mode 100644 index 000000000..98dc7e161 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-15.c.exp.gcc3 @@ -0,0 +1,2 @@ +declare-15.c:2: error: `TEST_SIZE' undeclared here (not in a function) +declare-15.c:2: error: bound length operand number is not an integer constant diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-2.c b/src/regress/gnu/egcs/gcc-bounds/declare-2.c new file mode 100644 index 000000000..62d7634da --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-2.c @@ -0,0 +1,6 @@ +void my_func(char *, int) + __attribute__((__bounded__(__string__,3,4))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-2.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-2.c.exp new file mode 100644 index 000000000..c87886096 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-2.c.exp @@ -0,0 +1 @@ +declare-2.c:2: bound buffer argument not an array or pointer type diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-2.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-2.c.exp.gcc3 new file mode 100644 index 000000000..82938564e --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-2.c.exp.gcc3 @@ -0,0 +1 @@ +declare-2.c:2: error: bound buffer argument not an array or pointer type diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-3.c b/src/regress/gnu/egcs/gcc-bounds/declare-3.c new file mode 100644 index 000000000..acc7f51e6 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-3.c @@ -0,0 +1,6 @@ +void my_func(char *, int) + __attribute__((__bounded__(__string__,1,"foo"))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-3.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-3.c.exp new file mode 100644 index 000000000..5478089a7 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-3.c.exp @@ -0,0 +1 @@ +declare-3.c:2: bound length operand number is not an integer constant diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-3.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-3.c.exp.gcc3 new file mode 100644 index 000000000..0446d3327 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-3.c.exp.gcc3 @@ -0,0 +1 @@ +declare-3.c:2: error: bound length operand number is not an integer constant diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-4.c b/src/regress/gnu/egcs/gcc-bounds/declare-4.c new file mode 100644 index 000000000..378842a58 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-4.c @@ -0,0 +1,6 @@ +void my_func(char *, int) + __attribute__((__bounded__(__string__,1,2,3))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-4.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-4.c.exp new file mode 100644 index 000000000..eae8acb01 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-4.c.exp @@ -0,0 +1 @@ +declare-4.c:2: warning: `string' bound type only takes 2 parameters diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-4.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-4.c.exp.gcc3 new file mode 100644 index 000000000..eae8acb01 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-4.c.exp.gcc3 @@ -0,0 +1 @@ +declare-4.c:2: warning: `string' bound type only takes 2 parameters diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-5.c b/src/regress/gnu/egcs/gcc-bounds/declare-5.c new file mode 100644 index 000000000..b0dbc6b96 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-5.c @@ -0,0 +1,6 @@ +void my_func(char *, int) + __attribute__((__bounded__(__minbytes__,1,1024))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-5.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-5.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-5.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-5.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-6.c b/src/regress/gnu/egcs/gcc-bounds/declare-6.c new file mode 100644 index 000000000..dd07db4ca --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-6.c @@ -0,0 +1,6 @@ +void my_func(char *, int) + __attribute__((__bounded__(__minbytes__,1,-1024))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-6.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-6.c.exp new file mode 100644 index 000000000..e38239ee4 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-6.c.exp @@ -0,0 +1 @@ +declare-6.c:2: `minbytes' bound size must be a positive integer value diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-6.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-6.c.exp.gcc3 new file mode 100644 index 000000000..2860f1b85 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-6.c.exp.gcc3 @@ -0,0 +1 @@ +declare-6.c:2: error: `minbytes' bound size must be a positive integer value diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-7.c b/src/regress/gnu/egcs/gcc-bounds/declare-7.c new file mode 100644 index 000000000..0a7265192 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-7.c @@ -0,0 +1,6 @@ +void my_func(char *, int) + __attribute__((__bounded__(__minbytes__,1,1024,2))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-7.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-7.c.exp new file mode 100644 index 000000000..dcf1ba028 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-7.c.exp @@ -0,0 +1 @@ +declare-7.c:2: warning: `minbytes' bound type only takes 2 parameters diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-7.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-7.c.exp.gcc3 new file mode 100644 index 000000000..dcf1ba028 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-7.c.exp.gcc3 @@ -0,0 +1 @@ +declare-7.c:2: warning: `minbytes' bound type only takes 2 parameters diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-8.c b/src/regress/gnu/egcs/gcc-bounds/declare-8.c new file mode 100644 index 000000000..97a7fe8c6 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-8.c @@ -0,0 +1,6 @@ +void my_func(char *, int) + __attribute__((__bounded__(__minbytes__,1,1024,2,3))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-8.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-8.c.exp new file mode 100644 index 000000000..d60195852 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-8.c.exp @@ -0,0 +1 @@ +declare-8.c:2: wrong number of arguments specified for `__bounded__' attribute diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-8.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-8.c.exp.gcc3 new file mode 100644 index 000000000..a6ef5bbe1 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-8.c.exp.gcc3 @@ -0,0 +1 @@ +declare-8.c:2: error: wrong number of arguments specified for `__bounded__' attribute diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-9.c b/src/regress/gnu/egcs/gcc-bounds/declare-9.c new file mode 100644 index 000000000..3daf90426 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-9.c @@ -0,0 +1,6 @@ +void my_func(char *, int) + __attribute__((__bounded__(__size__,1,2))); + +int main(int argc, char **argv) { + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-9.c.exp b/src/regress/gnu/egcs/gcc-bounds/declare-9.c.exp new file mode 100644 index 000000000..0074bbd26 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-9.c.exp @@ -0,0 +1 @@ +declare-9.c:2: parameter 3 not specified for `size' bounded function diff --git a/src/regress/gnu/egcs/gcc-bounds/declare-9.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/declare-9.c.exp.gcc3 new file mode 100644 index 000000000..3ab0481a5 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/declare-9.c.exp.gcc3 @@ -0,0 +1 @@ +declare-9.c:2: error: parameter 3 not specified for `size' bounded function diff --git a/src/regress/gnu/egcs/gcc-bounds/fread-1.c b/src/regress/gnu/egcs/gcc-bounds/fread-1.c new file mode 100644 index 000000000..18bb3541f --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/fread-1.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char buf[100]; + FILE *fp; + fread(buf, sizeof(char), sizeof(buf), fp); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/fread-1.c.exp b/src/regress/gnu/egcs/gcc-bounds/fread-1.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/fread-1.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/fread-1.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/fread-2.c b/src/regress/gnu/egcs/gcc-bounds/fread-2.c new file mode 100644 index 000000000..1f0d090e7 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/fread-2.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char buf[100]; + FILE *fp; + fread(buf, sizeof(char), sizeof(buf) + 10, fp); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/fread-2.c.exp b/src/regress/gnu/egcs/gcc-bounds/fread-2.c.exp new file mode 100644 index 000000000..f0ead30ae --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/fread-2.c.exp @@ -0,0 +1,2 @@ +fread-2.c: In function `main': +fread-2.c:6: warning: array size (100) smaller than required length (110 * 1) diff --git a/src/regress/gnu/egcs/gcc-bounds/fread-2.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/fread-2.c.exp.gcc3 new file mode 100644 index 000000000..f0ead30ae --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/fread-2.c.exp.gcc3 @@ -0,0 +1,2 @@ +fread-2.c: In function `main': +fread-2.c:6: warning: array size (100) smaller than required length (110 * 1) diff --git a/src/regress/gnu/egcs/gcc-bounds/fread-3.c b/src/regress/gnu/egcs/gcc-bounds/fread-3.c new file mode 100644 index 000000000..ee8b2c0b5 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/fread-3.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + long buf[100]; + FILE *fp; + fread(buf, sizeof(char), sizeof(buf), fp); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/fread-3.c.exp b/src/regress/gnu/egcs/gcc-bounds/fread-3.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/fread-3.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/fread-3.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/fread-4.c b/src/regress/gnu/egcs/gcc-bounds/fread-4.c new file mode 100644 index 000000000..e2b5b6351 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/fread-4.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char buf[100]; + FILE *fp; + fread(buf, sizeof(uint32_t), sizeof(buf), fp); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/fread-4.c.exp b/src/regress/gnu/egcs/gcc-bounds/fread-4.c.exp new file mode 100644 index 000000000..64c86839f --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/fread-4.c.exp @@ -0,0 +1,2 @@ +fread-4.c: In function `main': +fread-4.c:6: warning: array size (100) smaller than required length (100 * 4) diff --git a/src/regress/gnu/egcs/gcc-bounds/fread-4.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/fread-4.c.exp.gcc3 new file mode 100644 index 000000000..64c86839f --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/fread-4.c.exp.gcc3 @@ -0,0 +1,2 @@ +fread-4.c: In function `main': +fread-4.c:6: warning: array size (100) smaller than required length (100 * 4) diff --git a/src/regress/gnu/egcs/gcc-bounds/getcwd-1.c b/src/regress/gnu/egcs/gcc-bounds/getcwd-1.c new file mode 100644 index 000000000..9d4d41999 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/getcwd-1.c @@ -0,0 +1,7 @@ +#include + +int main(int argc, char **argv) { + char buf[10]; + getcwd(buf, sizeof buf); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/getcwd-1.c.exp b/src/regress/gnu/egcs/gcc-bounds/getcwd-1.c.exp new file mode 100644 index 000000000..fd2af5319 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/getcwd-1.c.exp @@ -0,0 +1,2 @@ +getcwd-1.c: In function `main': +getcwd-1.c:5: warning: array size (10) is smaller than minimum required (1024) diff --git a/src/regress/gnu/egcs/gcc-bounds/getcwd-1.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/getcwd-1.c.exp.gcc3 new file mode 100644 index 000000000..fd2af5319 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/getcwd-1.c.exp.gcc3 @@ -0,0 +1,2 @@ +getcwd-1.c: In function `main': +getcwd-1.c:5: warning: array size (10) is smaller than minimum required (1024) diff --git a/src/regress/gnu/egcs/gcc-bounds/getcwd-2.c b/src/regress/gnu/egcs/gcc-bounds/getcwd-2.c new file mode 100644 index 000000000..bd007c64b --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/getcwd-2.c @@ -0,0 +1,7 @@ +#include + +int main(int argc, char **argv) { + char buf[10]; + getcwd(buf, sizeof(buf) - 1000); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/getcwd-2.c.exp b/src/regress/gnu/egcs/gcc-bounds/getcwd-2.c.exp new file mode 100644 index 000000000..a8e8067f5 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/getcwd-2.c.exp @@ -0,0 +1,3 @@ +getcwd-2.c: In function `main': +getcwd-2.c:5: warning: array size (10) is smaller than minimum required (1024) +getcwd-2.c:5: warning: non-positive bounds length (-990) detected diff --git a/src/regress/gnu/egcs/gcc-bounds/getcwd-2.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/getcwd-2.c.exp.gcc3 new file mode 100644 index 000000000..a8e8067f5 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/getcwd-2.c.exp.gcc3 @@ -0,0 +1,3 @@ +getcwd-2.c: In function `main': +getcwd-2.c:5: warning: array size (10) is smaller than minimum required (1024) +getcwd-2.c:5: warning: non-positive bounds length (-990) detected diff --git a/src/regress/gnu/egcs/gcc-bounds/getcwd-3.c b/src/regress/gnu/egcs/gcc-bounds/getcwd-3.c new file mode 100644 index 000000000..da4f733d9 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/getcwd-3.c @@ -0,0 +1,7 @@ +#include + +int main(int argc, char **argv) { + char buf[10]; + getcwd(buf, sizeof(buf) + 2000); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/getcwd-3.c.exp b/src/regress/gnu/egcs/gcc-bounds/getcwd-3.c.exp new file mode 100644 index 000000000..f84544261 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/getcwd-3.c.exp @@ -0,0 +1,3 @@ +getcwd-3.c: In function `main': +getcwd-3.c:5: warning: array size (10) is smaller than minimum required (1024) +getcwd-3.c:5: warning: array size (10) smaller than bound length (2010) diff --git a/src/regress/gnu/egcs/gcc-bounds/getcwd-3.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/getcwd-3.c.exp.gcc3 new file mode 100644 index 000000000..f84544261 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/getcwd-3.c.exp.gcc3 @@ -0,0 +1,3 @@ +getcwd-3.c: In function `main': +getcwd-3.c:5: warning: array size (10) is smaller than minimum required (1024) +getcwd-3.c:5: warning: array size (10) smaller than bound length (2010) diff --git a/src/regress/gnu/egcs/gcc-bounds/getcwd-4.c b/src/regress/gnu/egcs/gcc-bounds/getcwd-4.c new file mode 100644 index 000000000..81b479870 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/getcwd-4.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + /* XXX - is this worth warning for? right now nothing */ + char buf[1024]; + getcwd(buf, 10); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/getcwd-4.c.exp b/src/regress/gnu/egcs/gcc-bounds/getcwd-4.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/getcwd-4.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/getcwd-4.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/md-1.c b/src/regress/gnu/egcs/gcc-bounds/md-1.c new file mode 100644 index 000000000..629486a52 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-1.c @@ -0,0 +1,18 @@ +#include +#include +#include +#include + +const unsigned char data[] = "1234567890abcdefghijklmnopqrstuvwxyz"; + +int +main(int argc, char **argv) +{ + MD5_CTX ctx; + char *ret; + + MD5Init(&ctx); + ret = MD5Data(data, sizeof data - 1, NULL); + printf("%s\n", ret); + free(ret); +} diff --git a/src/regress/gnu/egcs/gcc-bounds/md-1.c.exp b/src/regress/gnu/egcs/gcc-bounds/md-1.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/md-1.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/md-1.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/md-2.c b/src/regress/gnu/egcs/gcc-bounds/md-2.c new file mode 100644 index 000000000..86fa059ac --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-2.c @@ -0,0 +1,17 @@ +#include +#include +#include +#include + +const unsigned char data[] = "1234567890abcdefghijklmnopqrstuvwxyz"; + +int +main(int argc, char **argv) +{ + MD4_CTX ctx; + char ret[33]; + + MD4Init(&ctx); + MD4Data(data, sizeof data - 1, ret); + printf("%s\n", ret); +} diff --git a/src/regress/gnu/egcs/gcc-bounds/md-2.c.exp b/src/regress/gnu/egcs/gcc-bounds/md-2.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/md-2.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/md-2.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/md-3.c b/src/regress/gnu/egcs/gcc-bounds/md-3.c new file mode 100644 index 000000000..a3d7364da --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-3.c @@ -0,0 +1,18 @@ +#include +#include +#include +#include + +int +main(int argc, char **argv) +{ + MD5_CTX ctx; + unsigned char *data = malloc(10); + char ret[33]; + + strlcpy(data, "123456789", 10); + + MD5Init(&ctx); + MD5Data(data, sizeof data, ret); + printf("%s\n", ret); +} diff --git a/src/regress/gnu/egcs/gcc-bounds/md-3.c.exp b/src/regress/gnu/egcs/gcc-bounds/md-3.c.exp new file mode 100644 index 000000000..f37978041 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-3.c.exp @@ -0,0 +1,2 @@ +md-3.c: In function `main': +md-3.c:16: warning: sizeof(pointer) possibly incorrect in argument 2 diff --git a/src/regress/gnu/egcs/gcc-bounds/md-3.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/md-3.c.exp.gcc3 new file mode 100644 index 000000000..f37978041 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-3.c.exp.gcc3 @@ -0,0 +1,2 @@ +md-3.c: In function `main': +md-3.c:16: warning: sizeof(pointer) possibly incorrect in argument 2 diff --git a/src/regress/gnu/egcs/gcc-bounds/md-4.c b/src/regress/gnu/egcs/gcc-bounds/md-4.c new file mode 100644 index 000000000..06fb2e18f --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-4.c @@ -0,0 +1,17 @@ +#include +#include +#include +#include + +const unsigned char data[] = "1234567890abcdefghijklmnopqrstuvwxyz"; + +int +main(int argc, char **argv) +{ + MD5_CTX ctx; + char ret[10]; + + MD5Init(&ctx); + MD5Data(data, sizeof data - 1, ret); + printf("%s\n", ret); +} diff --git a/src/regress/gnu/egcs/gcc-bounds/md-4.c.exp b/src/regress/gnu/egcs/gcc-bounds/md-4.c.exp new file mode 100644 index 000000000..822902850 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-4.c.exp @@ -0,0 +1,2 @@ +md-4.c: In function `main': +md-4.c:15: warning: array size (10) is smaller than minimum required (33) diff --git a/src/regress/gnu/egcs/gcc-bounds/md-4.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/md-4.c.exp.gcc3 new file mode 100644 index 000000000..822902850 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-4.c.exp.gcc3 @@ -0,0 +1,2 @@ +md-4.c: In function `main': +md-4.c:15: warning: array size (10) is smaller than minimum required (33) diff --git a/src/regress/gnu/egcs/gcc-bounds/md-5.c b/src/regress/gnu/egcs/gcc-bounds/md-5.c new file mode 100644 index 000000000..e1d0538b1 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-5.c @@ -0,0 +1,18 @@ +#include +#include +#include +#include + +int +main(int argc, char **argv) +{ + RMD160_CTX ctx; + unsigned char *data = malloc(10); + char ret[32]; + + strlcpy(data, "123456789", 10); + + RMD160Init(&ctx); + RMD160Data(data, sizeof data, ret); + printf("%s\n", ret); +} diff --git a/src/regress/gnu/egcs/gcc-bounds/md-5.c.exp b/src/regress/gnu/egcs/gcc-bounds/md-5.c.exp new file mode 100644 index 000000000..9f3e82cae --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-5.c.exp @@ -0,0 +1,3 @@ +md-5.c: In function `main': +md-5.c:16: warning: array size (32) is smaller than minimum required (41) +md-5.c:16: warning: sizeof(pointer) possibly incorrect in argument 2 diff --git a/src/regress/gnu/egcs/gcc-bounds/md-5.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/md-5.c.exp.gcc3 new file mode 100644 index 000000000..9f3e82cae --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-5.c.exp.gcc3 @@ -0,0 +1,3 @@ +md-5.c: In function `main': +md-5.c:16: warning: array size (32) is smaller than minimum required (41) +md-5.c:16: warning: sizeof(pointer) possibly incorrect in argument 2 diff --git a/src/regress/gnu/egcs/gcc-bounds/md-6.c b/src/regress/gnu/egcs/gcc-bounds/md-6.c new file mode 100644 index 000000000..5ed36c546 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-6.c @@ -0,0 +1,17 @@ +#include +#include +#include +#include + +const unsigned char data[] = "1234567890abcdefghijklmnopqrstuvwxyz"; + +int +main(int argc, char **argv) +{ + SHA1_CTX ctx; + char ret[20]; + + SHA1Init(&ctx); + SHA1Data(data, sizeof data - 1, ret); + printf("%s\n", ret); +} diff --git a/src/regress/gnu/egcs/gcc-bounds/md-6.c.exp b/src/regress/gnu/egcs/gcc-bounds/md-6.c.exp new file mode 100644 index 000000000..c0dcb0c10 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-6.c.exp @@ -0,0 +1,2 @@ +md-6.c: In function `main': +md-6.c:15: warning: array size (20) is smaller than minimum required (41) diff --git a/src/regress/gnu/egcs/gcc-bounds/md-6.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/md-6.c.exp.gcc3 new file mode 100644 index 000000000..c0dcb0c10 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/md-6.c.exp.gcc3 @@ -0,0 +1,2 @@ +md-6.c: In function `main': +md-6.c:15: warning: array size (20) is smaller than minimum required (41) diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-1.c b/src/regress/gnu/egcs/gcc-bounds/memcpy-1.c new file mode 100644 index 000000000..02fa5181c --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-1.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char buf[10]; + char buf2[10] = "123456789"; + memcpy(buf, buf2, sizeof buf); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-1.c.exp b/src/regress/gnu/egcs/gcc-bounds/memcpy-1.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-1.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/memcpy-1.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-2.c b/src/regress/gnu/egcs/gcc-bounds/memcpy-2.c new file mode 100644 index 000000000..f1fe1813d --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-2.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char buf[10]; + char buf2[8] = "1234567"; + memcpy(buf, buf2, sizeof buf); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-2.c.exp b/src/regress/gnu/egcs/gcc-bounds/memcpy-2.c.exp new file mode 100644 index 000000000..894e28a9c --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-2.c.exp @@ -0,0 +1,2 @@ +memcpy-2.c: In function `main': +memcpy-2.c:6: warning: array size (8) smaller than bound length (10) diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-2.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/memcpy-2.c.exp.gcc3 new file mode 100644 index 000000000..894e28a9c --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-2.c.exp.gcc3 @@ -0,0 +1,2 @@ +memcpy-2.c: In function `main': +memcpy-2.c:6: warning: array size (8) smaller than bound length (10) diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-3.c b/src/regress/gnu/egcs/gcc-bounds/memcpy-3.c new file mode 100644 index 000000000..7807e02c6 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-3.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char buf[4]; + char buf2[8] = "1234567"; + memcpy(buf, buf2, sizeof buf2); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-3.c.exp b/src/regress/gnu/egcs/gcc-bounds/memcpy-3.c.exp new file mode 100644 index 000000000..fa29cd782 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-3.c.exp @@ -0,0 +1,2 @@ +memcpy-3.c: In function `main': +memcpy-3.c:6: warning: array size (4) smaller than bound length (8) diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-3.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/memcpy-3.c.exp.gcc3 new file mode 100644 index 000000000..fa29cd782 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-3.c.exp.gcc3 @@ -0,0 +1,2 @@ +memcpy-3.c: In function `main': +memcpy-3.c:6: warning: array size (4) smaller than bound length (8) diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-4.c b/src/regress/gnu/egcs/gcc-bounds/memcpy-4.c new file mode 100644 index 000000000..48f75860e --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-4.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char buf[4]; + char buf2[8] = "1234567"; + memcpy(buf, buf2, -100); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-4.c.exp b/src/regress/gnu/egcs/gcc-bounds/memcpy-4.c.exp new file mode 100644 index 000000000..3165fe55a --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-4.c.exp @@ -0,0 +1,3 @@ +memcpy-4.c: In function `main': +memcpy-4.c:6: warning: non-positive bounds length (-100) detected +memcpy-4.c:6: warning: non-positive bounds length (-100) detected diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-4.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/memcpy-4.c.exp.gcc3 new file mode 100644 index 000000000..3165fe55a --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-4.c.exp.gcc3 @@ -0,0 +1,3 @@ +memcpy-4.c: In function `main': +memcpy-4.c:6: warning: non-positive bounds length (-100) detected +memcpy-4.c:6: warning: non-positive bounds length (-100) detected diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-5.c b/src/regress/gnu/egcs/gcc-bounds/memcpy-5.c new file mode 100644 index 000000000..2f07fc3bb --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-5.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + int buf[10]; + int buf2[10] = {1,2,3,4,5,6,7,8,9,10}; + memcpy(buf, buf2, sizeof buf2); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-5.c.exp b/src/regress/gnu/egcs/gcc-bounds/memcpy-5.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-5.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/memcpy-5.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-6.c b/src/regress/gnu/egcs/gcc-bounds/memcpy-6.c new file mode 100644 index 000000000..7acf1f79b --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-6.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + int buf[8]; + int buf2[10] = {1,2,3,4,5,6,7,8,9,10}; + memcpy(buf, buf2, sizeof buf2); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-6.c.exp b/src/regress/gnu/egcs/gcc-bounds/memcpy-6.c.exp new file mode 100644 index 000000000..28c8da74c --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-6.c.exp @@ -0,0 +1,2 @@ +memcpy-6.c: In function `main': +memcpy-6.c:6: warning: array size (32) smaller than bound length (40) diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-6.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/memcpy-6.c.exp.gcc3 new file mode 100644 index 000000000..28c8da74c --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-6.c.exp.gcc3 @@ -0,0 +1,2 @@ +memcpy-6.c: In function `main': +memcpy-6.c:6: warning: array size (32) smaller than bound length (40) diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-7.c b/src/regress/gnu/egcs/gcc-bounds/memcpy-7.c new file mode 100644 index 000000000..d09906494 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-7.c @@ -0,0 +1,9 @@ +#include + +extern char buf[]; + +int main(int argc, char **argv) { + char buf2[10] = "123456789"; + memcpy(buf, buf2, sizeof buf2); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-8.c b/src/regress/gnu/egcs/gcc-bounds/memcpy-8.c new file mode 100644 index 000000000..139a17dd8 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-8.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char buf[0]; + char buf2[0]; + memcpy(buf, buf2, sizeof buf); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-8.c.exp b/src/regress/gnu/egcs/gcc-bounds/memcpy-8.c.exp new file mode 100644 index 000000000..6f191249b --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-8.c.exp @@ -0,0 +1,3 @@ +memcpy-8.c: In function `main': +memcpy-8.c:4: warning: ANSI C forbids zero-size array `buf' +memcpy-8.c:5: warning: ANSI C forbids zero-size array `buf2' diff --git a/src/regress/gnu/egcs/gcc-bounds/memcpy-8.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/memcpy-8.c.exp.gcc3 new file mode 100644 index 000000000..4a13cd5ea --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/memcpy-8.c.exp.gcc3 @@ -0,0 +1,3 @@ +memcpy-8.c: In function `main': +memcpy-8.c:4: warning: ISO C forbids zero-size array `buf' +memcpy-8.c:5: warning: ISO C forbids zero-size array `buf2' diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-1.cpp b/src/regress/gnu/egcs/gcc-bounds/snprintf-1.cpp new file mode 100644 index 000000000..a7ffb1060 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-1.cpp @@ -0,0 +1,7 @@ +#include + +int main(int argc, char **argv) { + char buf[20]; + snprintf(buf, sizeof buf, "%s", "foo"); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-1.cpp.exp b/src/regress/gnu/egcs/gcc-bounds/snprintf-1.cpp.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-1.cpp.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/snprintf-1.cpp.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp b/src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp new file mode 100644 index 000000000..cd776e3c4 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp @@ -0,0 +1,7 @@ +#include + +int main(int argc, char **argv) { + char buf[20]; + snprintf(buf, sizeof(buf) + 10, "%s", "foo"); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp.exp b/src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp.exp new file mode 100644 index 000000000..04d7a13eb --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp.exp @@ -0,0 +1,2 @@ +snprintf-2.cpp: In function `int main(int, char **)': +snprintf-2.cpp:5: warning: array size (20) smaller than bound length (30) diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp.exp.gcc3 new file mode 100644 index 000000000..387989daf --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-2.cpp.exp.gcc3 @@ -0,0 +1,3 @@ +snprintf-2.cpp: In function `int main(int, char**)': +snprintf-2.cpp:5: warning: array size (20) smaller than bound length (30) +snprintf-2.cpp:5: warning: array size (20) smaller than bound length (30) diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp b/src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp new file mode 100644 index 000000000..bd7126d07 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp @@ -0,0 +1,7 @@ +#include + +int main(int argc, char **argv) { + char *buf; + snprintf(buf, sizeof(buf), "%s", "foo"); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp.exp b/src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp.exp new file mode 100644 index 000000000..fe8156d4c --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp.exp @@ -0,0 +1,2 @@ +snprintf-3.cpp: In function `int main(int, char **)': +snprintf-3.cpp:5: warning: sizeof(pointer) possibly incorrect in argument 2 diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp.exp.gcc3 new file mode 100644 index 000000000..6bf8bec16 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-3.cpp.exp.gcc3 @@ -0,0 +1,3 @@ +snprintf-3.cpp: In function `int main(int, char**)': +snprintf-3.cpp:5: warning: sizeof(pointer) possibly incorrect in argument 2 +snprintf-3.cpp:5: warning: sizeof(pointer) possibly incorrect in argument 2 diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp b/src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp new file mode 100644 index 000000000..c18e7625d --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp @@ -0,0 +1,14 @@ +#include + +#if defined(__LP64__) +#define DUMMYSIZE 104 +#else +#define DUMMYSIZE 100 +#endif + +int main(int argc, char **argv) { + char *buf; + char buf2[10]; + snprintf(buf2, -sizeof(buf) + DUMMYSIZE, "%s", "foo"); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp.exp b/src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp.exp new file mode 100644 index 000000000..89c910462 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp.exp @@ -0,0 +1,3 @@ +snprintf-4.cpp: In function `int main(int, char **)': +snprintf-4.cpp:12: warning: sizeof(pointer) possibly incorrect in argument 2 +snprintf-4.cpp:12: warning: array size (10) smaller than bound length (96) diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp.exp.gcc3 new file mode 100644 index 000000000..0fabc2705 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-4.cpp.exp.gcc3 @@ -0,0 +1,5 @@ +snprintf-4.cpp: In function `int main(int, char**)': +snprintf-4.cpp:12: warning: sizeof(pointer) possibly incorrect in argument 2 +snprintf-4.cpp:12: warning: array size (10) smaller than bound length (96) +snprintf-4.cpp:12: warning: sizeof(pointer) possibly incorrect in argument 2 +snprintf-4.cpp:12: warning: array size (10) smaller than bound length (96) diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp b/src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp new file mode 100644 index 000000000..3c52cc9f5 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp @@ -0,0 +1,7 @@ +#include + +int main(int argc, char **argv) { + char buf[10]; + snprintf(buf, -sizeof(buf), "%s", "foo"); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp.exp b/src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp.exp new file mode 100644 index 000000000..2a288378e --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp.exp @@ -0,0 +1,2 @@ +snprintf-5.cpp: In function `int main(int, char **)': +snprintf-5.cpp:5: warning: non-positive bounds length (-10) detected diff --git a/src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp.exp.gcc3 new file mode 100644 index 000000000..9c30b6a2c --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/snprintf-5.cpp.exp.gcc3 @@ -0,0 +1,3 @@ +snprintf-5.cpp: In function `int main(int, char**)': +snprintf-5.cpp:5: warning: non-positive bounds length (-10) detected +snprintf-5.cpp:5: warning: non-positive bounds length (-10) detected diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-1.c b/src/regress/gnu/egcs/gcc-bounds/sscanf-1.c new file mode 100644 index 000000000..8ffd846a8 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-1.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char buf[10]; + char buf2[10]; + sscanf("foooo baaar", "%9s %9s", buf, buf2); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-1.c.exp b/src/regress/gnu/egcs/gcc-bounds/sscanf-1.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-1.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/sscanf-1.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp b/src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp new file mode 100644 index 000000000..139c67303 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char buf[10]; + char buf2[10]; + sscanf("foooo baaar", "%20s %10s", buf, buf2); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp.exp b/src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp.exp new file mode 100644 index 000000000..8b979d482 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp.exp @@ -0,0 +1,3 @@ +sscanf-1.cpp: In function `int main(int, char **)': +sscanf-1.cpp:6: warning: Array size (10) smaller than format string size (21) +sscanf-1.cpp:6: warning: Array size (10) smaller than format string size (11) diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp.exp.gcc3 new file mode 100644 index 000000000..0bd689244 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-1.cpp.exp.gcc3 @@ -0,0 +1,5 @@ +sscanf-1.cpp: In function `int main(int, char**)': +sscanf-1.cpp:6: warning: Array size (10) smaller than format string size (21) + (arg 3) +sscanf-1.cpp:6: warning: Array size (10) smaller than format string size (11) + (arg 4) diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-2.c b/src/regress/gnu/egcs/gcc-bounds/sscanf-2.c new file mode 100644 index 000000000..139c67303 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-2.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char buf[10]; + char buf2[10]; + sscanf("foooo baaar", "%20s %10s", buf, buf2); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-2.c.exp b/src/regress/gnu/egcs/gcc-bounds/sscanf-2.c.exp new file mode 100644 index 000000000..eeb4a57d8 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-2.c.exp @@ -0,0 +1,3 @@ +sscanf-2.c: In function `main': +sscanf-2.c:6: warning: Array size (10) smaller than format string size (21) +sscanf-2.c:6: warning: Array size (10) smaller than format string size (11) diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-2.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/sscanf-2.c.exp.gcc3 new file mode 100644 index 000000000..80d526d49 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-2.c.exp.gcc3 @@ -0,0 +1,3 @@ +sscanf-2.c: In function `main': +sscanf-2.c:6: warning: Array size (10) smaller than format string size (21) (arg 3) +sscanf-2.c:6: warning: Array size (10) smaller than format string size (11) (arg 4) diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-3.c b/src/regress/gnu/egcs/gcc-bounds/sscanf-3.c new file mode 100644 index 000000000..455562f45 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-3.c @@ -0,0 +1,9 @@ +#include + +extern char buf1[]; + +int main(int argc, char **argv) { + char q[10], buf1[10]; + sscanf(q,"%[.0-9]",buf1); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-3.c.exp b/src/regress/gnu/egcs/gcc-bounds/sscanf-3.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-3.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/sscanf-3.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-4.c b/src/regress/gnu/egcs/gcc-bounds/sscanf-4.c new file mode 100644 index 000000000..684eb14f1 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-4.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char q[10]; + char buf1[10]; + sscanf(q,"%10c",buf1); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-4.c.exp b/src/regress/gnu/egcs/gcc-bounds/sscanf-4.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-4.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/sscanf-4.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-5.c b/src/regress/gnu/egcs/gcc-bounds/sscanf-5.c new file mode 100644 index 000000000..8ef133108 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-5.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char q[10]; + char buf1[10]; + sscanf(q,"%20c",buf1); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-5.c.exp b/src/regress/gnu/egcs/gcc-bounds/sscanf-5.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-5.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/sscanf-5.c.exp.gcc3 new file mode 100644 index 000000000..a57331168 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-5.c.exp.gcc3 @@ -0,0 +1,2 @@ +sscanf-5.c: In function `main': +sscanf-5.c:6: warning: Array size (10) smaller than format string size (20) (arg 3) diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-6.c b/src/regress/gnu/egcs/gcc-bounds/sscanf-6.c new file mode 100644 index 000000000..6cbd8c5f0 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-6.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) { + char buf[20]; + int a[2], b; + sscanf(buf, "%3d %d %3d %30s %50d %20c %21c", &a[0], &a[1], &b, buf, buf, buf, buf); + return 0; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/sscanf-6.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/sscanf-6.c.exp.gcc3 new file mode 100644 index 000000000..39d8d12dc --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/sscanf-6.c.exp.gcc3 @@ -0,0 +1,4 @@ +sscanf-6.c: In function `main': +sscanf-6.c:6: warning: Array size (20) smaller than format string size (31) (arg 6) +sscanf-6.c:6: warning: int format, different type arg (arg 7) +sscanf-6.c:6: warning: Array size (20) smaller than format string size (21) (arg 9) diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-1.c b/src/regress/gnu/egcs/gcc-bounds/strlcat-1.c new file mode 100644 index 000000000..2bf9dc54f --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-1.c @@ -0,0 +1,8 @@ +#include +#include + +int main(int argc, char **argv) { + char buf[10]; + strlcat(buf, "foo", sizeof buf); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-1.c.exp b/src/regress/gnu/egcs/gcc-bounds/strlcat-1.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-1.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/strlcat-1.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-2.c b/src/regress/gnu/egcs/gcc-bounds/strlcat-2.c new file mode 100644 index 000000000..1f13d46cf --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-2.c @@ -0,0 +1,8 @@ +#include +#include + +int main(int argc, char **argv) { + char buf[10]; + strlcat(buf, "foo", -1); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-2.c.exp b/src/regress/gnu/egcs/gcc-bounds/strlcat-2.c.exp new file mode 100644 index 000000000..c809499be --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-2.c.exp @@ -0,0 +1,2 @@ +strlcat-2.c: In function `main': +strlcat-2.c:6: warning: non-positive bounds length (-1) detected diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-2.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/strlcat-2.c.exp.gcc3 new file mode 100644 index 000000000..c809499be --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-2.c.exp.gcc3 @@ -0,0 +1,2 @@ +strlcat-2.c: In function `main': +strlcat-2.c:6: warning: non-positive bounds length (-1) detected diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-3.c b/src/regress/gnu/egcs/gcc-bounds/strlcat-3.c new file mode 100644 index 000000000..c8b715706 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-3.c @@ -0,0 +1,8 @@ +#include +#include + +int main(int argc, char **argv) { + char buf[10]; + strlcat(buf, "foo", 0); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-3.c.exp b/src/regress/gnu/egcs/gcc-bounds/strlcat-3.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-3.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/strlcat-3.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-4.c b/src/regress/gnu/egcs/gcc-bounds/strlcat-4.c new file mode 100644 index 000000000..2e477b056 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-4.c @@ -0,0 +1,8 @@ +#include +#include + +int main(int argc, char **argv) { + char *foo; + strlcat(foo, "bar", -(-sizeof(foo))); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-4.c.exp b/src/regress/gnu/egcs/gcc-bounds/strlcat-4.c.exp new file mode 100644 index 000000000..668fb0082 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-4.c.exp @@ -0,0 +1,2 @@ +strlcat-4.c: In function `main': +strlcat-4.c:6: warning: sizeof(pointer) possibly incorrect in argument 3 diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-4.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/strlcat-4.c.exp.gcc3 new file mode 100644 index 000000000..668fb0082 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-4.c.exp.gcc3 @@ -0,0 +1,2 @@ +strlcat-4.c: In function `main': +strlcat-4.c:6: warning: sizeof(pointer) possibly incorrect in argument 3 diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-5.c b/src/regress/gnu/egcs/gcc-bounds/strlcat-5.c new file mode 100644 index 000000000..136b2625c --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-5.c @@ -0,0 +1,8 @@ +#include +#include + +int main(int argc, char **argv) { + char *foo; + strlcat(foo, "bar", -(sizeof(foo))); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-5.c.exp b/src/regress/gnu/egcs/gcc-bounds/strlcat-5.c.exp new file mode 100644 index 000000000..64d4324dc --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-5.c.exp @@ -0,0 +1,2 @@ +strlcat-5.c: In function `main': +strlcat-5.c:6: warning: sizeof(pointer) possibly incorrect in argument 3 diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-5.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/strlcat-5.c.exp.gcc3 new file mode 100644 index 000000000..64d4324dc --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-5.c.exp.gcc3 @@ -0,0 +1,2 @@ +strlcat-5.c: In function `main': +strlcat-5.c:6: warning: sizeof(pointer) possibly incorrect in argument 3 diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-6.c b/src/regress/gnu/egcs/gcc-bounds/strlcat-6.c new file mode 100644 index 000000000..1f13d46cf --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-6.c @@ -0,0 +1,8 @@ +#include +#include + +int main(int argc, char **argv) { + char buf[10]; + strlcat(buf, "foo", -1); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-6.c.exp b/src/regress/gnu/egcs/gcc-bounds/strlcat-6.c.exp new file mode 100644 index 000000000..64aaff0c0 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-6.c.exp @@ -0,0 +1,2 @@ +strlcat-6.c: In function `main': +strlcat-6.c:6: warning: non-positive bounds length (-1) detected diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcat-6.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/strlcat-6.c.exp.gcc3 new file mode 100644 index 000000000..64aaff0c0 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcat-6.c.exp.gcc3 @@ -0,0 +1,2 @@ +strlcat-6.c: In function `main': +strlcat-6.c:6: warning: non-positive bounds length (-1) detected diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-1.c b/src/regress/gnu/egcs/gcc-bounds/strlcpy-1.c new file mode 100644 index 000000000..b7ac1437d --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcpy-1.c @@ -0,0 +1,8 @@ +#include +#include + +int main(int argc, char **argv) { + char buf[10]; + strlcpy(buf, "foo", sizeof buf); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-1.c.exp b/src/regress/gnu/egcs/gcc-bounds/strlcpy-1.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-1.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/strlcpy-1.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-2.c b/src/regress/gnu/egcs/gcc-bounds/strlcpy-2.c new file mode 100644 index 000000000..1e8dc8934 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcpy-2.c @@ -0,0 +1,8 @@ +#include +#include + +int main(int argc, char **argv) { + char buf[10]; + strlcpy(buf, "foo", 10); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-2.c.exp b/src/regress/gnu/egcs/gcc-bounds/strlcpy-2.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-2.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/strlcpy-2.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c b/src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c new file mode 100644 index 000000000..c592f9aed --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c @@ -0,0 +1,8 @@ +#include +#include + +int main(int argc, char **argv) { + char buf[10]; + strlcpy(buf, "foo", 15); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c.exp b/src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c.exp new file mode 100644 index 000000000..881f009ea --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c.exp @@ -0,0 +1,2 @@ +strlcpy-3.c: In function `main': +strlcpy-3.c:6: warning: array size (10) smaller than bound length (15) diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c.exp.gcc3 new file mode 100644 index 000000000..881f009ea --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcpy-3.c.exp.gcc3 @@ -0,0 +1,2 @@ +strlcpy-3.c: In function `main': +strlcpy-3.c:6: warning: array size (10) smaller than bound length (15) diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c b/src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c new file mode 100644 index 000000000..025a7645b --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c @@ -0,0 +1,8 @@ +#include +#include + +int main(int argc, char **argv) { + char *buf; + strlcpy(buf, "foo", sizeof buf); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c.exp b/src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c.exp new file mode 100644 index 000000000..7092a8714 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c.exp @@ -0,0 +1,2 @@ +strlcpy-4.c: In function `main': +strlcpy-4.c:6: warning: sizeof(pointer) possibly incorrect in argument 3 diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c.exp.gcc3 new file mode 100644 index 000000000..7092a8714 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcpy-4.c.exp.gcc3 @@ -0,0 +1,2 @@ +strlcpy-4.c: In function `main': +strlcpy-4.c:6: warning: sizeof(pointer) possibly incorrect in argument 3 diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c b/src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c new file mode 100644 index 000000000..43c27e4e9 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c @@ -0,0 +1,9 @@ +#include +#include + +int main(int argc, char **argv) { + char buf[10]; + char *buf2; + strlcpy(buf, "foo", sizeof buf2); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c.exp b/src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c.exp new file mode 100644 index 000000000..b60e17409 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c.exp @@ -0,0 +1,2 @@ +strlcpy-5.c: In function `main': +strlcpy-5.c:7: warning: sizeof(pointer) possibly incorrect in argument 3 diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c.exp.gcc3 new file mode 100644 index 000000000..b60e17409 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcpy-5.c.exp.gcc3 @@ -0,0 +1,2 @@ +strlcpy-5.c: In function `main': +strlcpy-5.c:7: warning: sizeof(pointer) possibly incorrect in argument 3 diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-6.c b/src/regress/gnu/egcs/gcc-bounds/strlcpy-6.c new file mode 100644 index 000000000..4d027d844 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/strlcpy-6.c @@ -0,0 +1,9 @@ +#include +#include + +int main(int argc, char **argv) { + char buf[10]; + char *buf2; + strlcpy(buf2, "foo", sizeof buf); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-6.c.exp b/src/regress/gnu/egcs/gcc-bounds/strlcpy-6.c.exp new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/strlcpy-6.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/strlcpy-6.c.exp.gcc3 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/gnu/egcs/gcc-bounds/vararray-1.c b/src/regress/gnu/egcs/gcc-bounds/vararray-1.c new file mode 100644 index 000000000..133979e3f --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/vararray-1.c @@ -0,0 +1,11 @@ +/* gcc used to barf on this with a 'not 8-byte aligned' error + * while correct behaviour is to ignore it */ + +#include +#include + +int main(int argc, char **argv) { + int sample_buffer[10][argc+10]; + memset(sample_buffer, 0, sizeof(sample_buffer)); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/vararray-1.c.exp b/src/regress/gnu/egcs/gcc-bounds/vararray-1.c.exp new file mode 100644 index 000000000..4bac0f8d5 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/vararray-1.c.exp @@ -0,0 +1,2 @@ +vararray-1.c: In function `main': +vararray-1.c:8: warning: ANSI C forbids variable-size array `sample_buffer' diff --git a/src/regress/gnu/egcs/gcc-bounds/vararray-1.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/vararray-1.c.exp.gcc3 new file mode 100644 index 000000000..9629a42d3 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/vararray-1.c.exp.gcc3 @@ -0,0 +1,2 @@ +vararray-1.c: In function `main': +vararray-1.c:8: warning: ISO C90 forbids variable-size array `sample_buffer' diff --git a/src/regress/gnu/egcs/gcc-bounds/vararray-2.c b/src/regress/gnu/egcs/gcc-bounds/vararray-2.c new file mode 100644 index 000000000..d8e9617e8 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/vararray-2.c @@ -0,0 +1,8 @@ +#include +#include + +int main(int argc, char **argv) { + int sample_buffer[argc]; + memset(sample_buffer, 0, sizeof(sample_buffer)); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/vararray-2.c.exp b/src/regress/gnu/egcs/gcc-bounds/vararray-2.c.exp new file mode 100644 index 000000000..d1c99270e --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/vararray-2.c.exp @@ -0,0 +1,2 @@ +vararray-2.c: In function `main': +vararray-2.c:5: warning: ANSI C forbids variable-size array `sample_buffer' diff --git a/src/regress/gnu/egcs/gcc-bounds/vararray-2.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/vararray-2.c.exp.gcc3 new file mode 100644 index 000000000..417fec229 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/vararray-2.c.exp.gcc3 @@ -0,0 +1,2 @@ +vararray-2.c: In function `main': +vararray-2.c:5: warning: ISO C90 forbids variable-size array `sample_buffer' diff --git a/src/regress/gnu/egcs/gcc-bounds/vararray-3.c b/src/regress/gnu/egcs/gcc-bounds/vararray-3.c new file mode 100644 index 000000000..b1d361f40 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/vararray-3.c @@ -0,0 +1,10 @@ +#include + +int +main(int argc, char **argv) +{ + int a; + char buf[10], buf2[a]; + sscanf(buf, "%s", buf2); + return 1; +} diff --git a/src/regress/gnu/egcs/gcc-bounds/vararray-3.c.exp b/src/regress/gnu/egcs/gcc-bounds/vararray-3.c.exp new file mode 100644 index 000000000..91a07e630 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/vararray-3.c.exp @@ -0,0 +1,2 @@ +vararray-3.c: In function `main': +vararray-3.c:7: warning: ANSI C forbids variable-size array `buf2' diff --git a/src/regress/gnu/egcs/gcc-bounds/vararray-3.c.exp.gcc3 b/src/regress/gnu/egcs/gcc-bounds/vararray-3.c.exp.gcc3 new file mode 100644 index 000000000..29c95b132 --- /dev/null +++ b/src/regress/gnu/egcs/gcc-bounds/vararray-3.c.exp.gcc3 @@ -0,0 +1,2 @@ +vararray-3.c: In function `main': +vararray-3.c:7: warning: ISO C90 forbids variable-size array `buf2' diff --git a/src/regress/gnu/egcs/gcc/CVS/Entries b/src/regress/gnu/egcs/gcc/CVS/Entries new file mode 100644 index 000000000..12040ea0f --- /dev/null +++ b/src/regress/gnu/egcs/gcc/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.7/Mon May 31 05:18:47 2010// +D diff --git a/src/regress/gnu/egcs/gcc/CVS/Repository b/src/regress/gnu/egcs/gcc/CVS/Repository new file mode 100644 index 000000000..a0ffcb4cf --- /dev/null +++ b/src/regress/gnu/egcs/gcc/CVS/Repository @@ -0,0 +1 @@ +src/regress/gnu/egcs/gcc diff --git a/src/regress/gnu/egcs/gcc/CVS/Root b/src/regress/gnu/egcs/gcc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/gnu/egcs/gcc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/gnu/egcs/gcc/Makefile b/src/regress/gnu/egcs/gcc/Makefile new file mode 100644 index 000000000..9c4f3f68a --- /dev/null +++ b/src/regress/gnu/egcs/gcc/Makefile @@ -0,0 +1,34 @@ +# $OpenBSD: Makefile,v 1.7 2010/05/10 18:20:31 drahn Exp $ + +.include + +NOMAN= +NOPROG= + +.if ${COMPILER_VERSION:L} == "gcc3" +TESTDIR=${BSDSRCDIR}/gnu/usr.bin/gcc +.elif ${COMPILER_VERSION:L} == "gcc4" +TESTDIR=${BSDSRCDIR}/gnu/usr.bin/cc +.else +TESTDIR=${BSDSRCDIR}/gnu/egcs/gcc +.endif + +REGRESS_TARGETS=do-gcc + +.if !defined(DO_DEJATESTS) +REGRESS_SKIP_TARGETS=do-gcc +.endif + +do-gcc: + @if [ ! "`pkg_info -e dejagnu-\*`" ]; then \ + echo "Error: DejaGnu is required to run this test."; \ + echo " You can install the package from the ftp site or compile it"; \ + echo " from the ports tree (${PORTSDIR}/devel/dejagnu)."; \ + exit 1; \ + fi + @cd ${TESTDIR} && ${MAKE} -f Makefile.bsd-wrapper && \ + ${MAKE} check RUNTEST=${RUNTEST}; + +.include + +PORTSDIR?=/usr/ports diff --git a/src/regress/gnu/egcs/gcc/obj b/src/regress/gnu/egcs/gcc/obj new file mode 120000 index 000000000..527b092f0 --- /dev/null +++ b/src/regress/gnu/egcs/gcc/obj @@ -0,0 +1 @@ +/usr/obj/regress/gnu/egcs/gcc \ No newline at end of file diff --git a/src/regress/gnu/egcs/libf2c/CVS/Entries b/src/regress/gnu/egcs/libf2c/CVS/Entries new file mode 100644 index 000000000..12040ea0f --- /dev/null +++ b/src/regress/gnu/egcs/libf2c/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.7/Mon May 31 05:18:47 2010// +D diff --git a/src/regress/gnu/egcs/libf2c/CVS/Repository b/src/regress/gnu/egcs/libf2c/CVS/Repository new file mode 100644 index 000000000..004da6d4a --- /dev/null +++ b/src/regress/gnu/egcs/libf2c/CVS/Repository @@ -0,0 +1 @@ +src/regress/gnu/egcs/libf2c diff --git a/src/regress/gnu/egcs/libf2c/CVS/Root b/src/regress/gnu/egcs/libf2c/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/gnu/egcs/libf2c/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/gnu/egcs/libf2c/Makefile b/src/regress/gnu/egcs/libf2c/Makefile new file mode 100644 index 000000000..db1e423bd --- /dev/null +++ b/src/regress/gnu/egcs/libf2c/Makefile @@ -0,0 +1,39 @@ +# $OpenBSD: Makefile,v 1.7 2010/05/10 18:20:31 drahn Exp $ + +.include + +NOMAN= +NOPROG= + +.if ${COMPILER_VERSION:L} == "gcc3" +TESTDIR=${BSDSRCDIR}/gnu/lib/libf2c +TEST2DIR=${BSDSRCDIR}/gnu/usr.bin/gcc +.elif ${COMPILER_VERSION:L} == "gcc2" +TESTDIR=${BSDSRCDIR}/gnu/egcs/libf2c +TEST2DIR=${BSDSRCDIR}/gnu/egcs/gcc +.endif + +# We don't even try to run without objdir +TEST3DIR=${TESTDIR}/libU77 +TEST4DIR=${TEST2DIR}/ + +REGRESS_TARGETS=do-libf2c + +.if !defined(DO_DEJATESTS) && defined(TESTDIR) +REGRESS_SKIP_TARGETS=do-libf2c +.endif + +do-libf2c: + @if [ ! "`pkg_info -e dejagnu-\*`" ]; then \ + echo "Error: DejaGnu is required to run this test."; \ + echo " You can install the package from the ftp site or compile it"; \ + echo " from the ports tree (${PORTSDIR}/devel/dejagnu)."; \ + exit 1; \ + fi + @cd ${TESTDIR} && ${MAKE} -f Makefile.bsd-wrapper && \ + cd ${TEST2DIR} && ${MAKE} -f Makefile.bsd-wrapper && \ + cd ${TEST3DIR} && ${MAKE} G77DIR=${TEST4DIR} check RUNTEST=${RUNTEST}; + +.include + +PORTSDIR?=/usr/ports diff --git a/src/regress/gnu/egcs/libf2c/obj b/src/regress/gnu/egcs/libf2c/obj new file mode 120000 index 000000000..fe6568280 --- /dev/null +++ b/src/regress/gnu/egcs/libf2c/obj @@ -0,0 +1 @@ +/usr/obj/regress/gnu/egcs/libf2c \ No newline at end of file diff --git a/src/regress/gnu/egcs/libiberty/CVS/Entries b/src/regress/gnu/egcs/libiberty/CVS/Entries new file mode 100644 index 000000000..4c98b8fff --- /dev/null +++ b/src/regress/gnu/egcs/libiberty/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.5/Sat Feb 11 23:54:34 2006// +D diff --git a/src/regress/gnu/egcs/libiberty/CVS/Repository b/src/regress/gnu/egcs/libiberty/CVS/Repository new file mode 100644 index 000000000..baa21df8c --- /dev/null +++ b/src/regress/gnu/egcs/libiberty/CVS/Repository @@ -0,0 +1 @@ +src/regress/gnu/egcs/libiberty diff --git a/src/regress/gnu/egcs/libiberty/CVS/Root b/src/regress/gnu/egcs/libiberty/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/gnu/egcs/libiberty/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/gnu/egcs/libiberty/Makefile b/src/regress/gnu/egcs/libiberty/Makefile new file mode 100644 index 000000000..2ab321bd4 --- /dev/null +++ b/src/regress/gnu/egcs/libiberty/Makefile @@ -0,0 +1,26 @@ +# $OpenBSD: Makefile,v 1.5 2006/02/11 23:54:34 david Exp $ + +NOMAN= +NOPROG= + +TESTDIR=${BSDSRCDIR}/gnu/lib/libiberty + +REGRESS_TARGETS=do-libiberty + +.if !defined(DO_DEJATESTS) +REGRESS_SKIP_TARGETS=do-libiberty +.endif + +do-libiberty: + @if [ ! "`pkg_info -e dejagnu-\*`" ]; then \ + echo "Error: DejaGnu is required to run this test."; \ + echo " You can install the package from the ftp site or compile it"; \ + echo " from the ports tree (${PORTSDIR}/devel/dejagnu)."; \ + exit 1; \ + fi + @cd ${TESTDIR} && ${MAKE} -f Makefile.bsd-wrapper && \ + ${MAKE} check RUNTEST=${RUNTEST}; + +.include + +PORTSDIR?=/usr/ports diff --git a/src/regress/gnu/egcs/libiberty/obj b/src/regress/gnu/egcs/libiberty/obj new file mode 120000 index 000000000..699d5d2c1 --- /dev/null +++ b/src/regress/gnu/egcs/libiberty/obj @@ -0,0 +1 @@ +/usr/obj/regress/gnu/egcs/libiberty \ No newline at end of file diff --git a/src/regress/include/CVS/Entries b/src/regress/include/CVS/Entries new file mode 100644 index 000000000..e8d0e2511 --- /dev/null +++ b/src/regress/include/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.4/Sat Feb 23 01:25:10 2002// +D/bitstring//// diff --git a/src/regress/include/CVS/Repository b/src/regress/include/CVS/Repository new file mode 100644 index 000000000..6174ffbbe --- /dev/null +++ b/src/regress/include/CVS/Repository @@ -0,0 +1 @@ +src/regress/include diff --git a/src/regress/include/CVS/Root b/src/regress/include/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/include/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/include/Makefile b/src/regress/include/Makefile new file mode 100644 index 000000000..4cc8e17b3 --- /dev/null +++ b/src/regress/include/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.4 2002/02/23 01:25:10 art Exp $ +# $NetBSD: Makefile,v 1.5 1995/04/20 22:37:33 cgd Exp $ + +SUBDIR+= bitstring + +install: + +.include diff --git a/src/regress/include/bitstring/CVS/Entries b/src/regress/include/bitstring/CVS/Entries new file mode 100644 index 000000000..f3809ce4f --- /dev/null +++ b/src/regress/include/bitstring/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.4/Mon Sep 2 20:01:43 2002// +/bitstring_test.c/1.5/Thu Jul 31 21:48:02 2003// +D/good//// diff --git a/src/regress/include/bitstring/CVS/Repository b/src/regress/include/bitstring/CVS/Repository new file mode 100644 index 000000000..ed9ff4201 --- /dev/null +++ b/src/regress/include/bitstring/CVS/Repository @@ -0,0 +1 @@ +src/regress/include/bitstring diff --git a/src/regress/include/bitstring/CVS/Root b/src/regress/include/bitstring/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/include/bitstring/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/include/bitstring/Makefile b/src/regress/include/bitstring/Makefile new file mode 100644 index 000000000..90f8baf76 --- /dev/null +++ b/src/regress/include/bitstring/Makefile @@ -0,0 +1,27 @@ +# $OpenBSD: Makefile,v 1.4 2002/09/02 20:01:43 avsm Exp $ +# $NetBSD: Makefile,v 1.4 1995/04/20 22:37:50 cgd Exp $ + +PROG= ./bitstring_test + +REGRESS_TARGETS=test-8 test-27 test-32 test-49 test-64 test-67 + +test-8: ${PROG} + ${PROG} 8 | diff - ${.CURDIR}/good/8 + +test-27: ${PROG} + ${PROG} 27 | diff - ${.CURDIR}/good/27 + +test-32: ${PROG} + ${PROG} 32 | diff - ${.CURDIR}/good/32 + +test-49: ${PROG} + ${PROG} 49 | diff - ${.CURDIR}/good/49 + +test-64: ${PROG} + ${PROG} 64 | diff - ${.CURDIR}/good/64 + +test-67: ${PROG} + ${PROG} 67 | diff - ${.CURDIR}/good/67 + + +.include diff --git a/src/regress/include/bitstring/bitstring_test.c b/src/regress/include/bitstring/bitstring_test.c new file mode 100644 index 000000000..545a3cb79 --- /dev/null +++ b/src/regress/include/bitstring/bitstring_test.c @@ -0,0 +1,215 @@ +/* $OpenBSD: bitstring_test.c,v 1.5 2003/07/31 21:48:02 deraadt Exp $ */ +/* $NetBSD: bitstring_test.c,v 1.4 1995/04/29 05:44:35 cgd Exp $ */ + +/* + * this is a simple program to test bitstring.h + * inspect the output, you should notice problems + * choose the ATT or BSD flavor + */ +/* #define ATT /*- */ +#define BSD /*-*/ + +/* + * include the following define if you want the program to link. this + * corrects a misspeling in bitstring.h + */ +#define _bitstr_size bitstr_size + +#include +#include + +/* #ifdef NOTSOGOOD */ +#include "bitstring.h" +/* #else */ +/* #include "gbitstring.h" */ +/* #endif */ + +int TEST_LENGTH; +#define DECL_TEST_LENGTH 37 /* a mostly random number */ + +static void +clearbits(bitstr_t *b, int n) +{ + register int i = bitstr_size(n); + + while (i--) + *(b + i) = 0; +} + +static void +printbits(bitstr_t *b, int n) +{ + register int i; + int jc, js; + + bit_ffc(b, n, &jc); + bit_ffs(b, n, &js); + (void) printf("%3d %3d ", jc, js); + for (i = 0; i < n; i++) { + (void) putchar((bit_test(b, i) ? '1' : '0')); + } + (void) putchar('\n'); +} + +int +main(int argc, char *argv[]) +{ + int i; + bitstr_t *bs; + bitstr_t bit_decl(bss, DECL_TEST_LENGTH); + + if (argc > 1) + TEST_LENGTH = atoi(argv[1]); + else + TEST_LENGTH = DECL_TEST_LENGTH; + + if (TEST_LENGTH < 4) { + fprintf(stderr, "TEST_LENGTH must be at least 4, but it is %d\n", + TEST_LENGTH); + exit(1); + } + (void) printf("Testing with TEST_LENGTH = %d\n\n", TEST_LENGTH); + + (void) printf("test _bit_byte, _bit_mask, and bitstr_size\n"); + (void) printf(" i _bit_byte(i) _bit_mask(i) bitstr_size(i)\n"); + for (i = 0; i < TEST_LENGTH; i++) { + (void) printf("%3d%15d%15d%15d\n", + i, _bit_byte(i), _bit_mask(i), bitstr_size(i)); + } + + bs = bit_alloc(TEST_LENGTH); + clearbits(bs, TEST_LENGTH); + (void) printf("\ntest bit_alloc, clearbits, bit_ffc, bit_ffs\n"); + (void) printf("be: 0 -1 "); + for (i = 0; i < TEST_LENGTH; i++) + (void) putchar('0'); + (void) printf("\nis: "); + printbits(bs, TEST_LENGTH); + + (void) printf("\ntest bit_set\n"); + for (i = 0; i < TEST_LENGTH; i += 3) { + bit_set(bs, i); + } + (void) printf("be: 1 0 "); + for (i = 0; i < TEST_LENGTH; i++) + (void) putchar(*("100" + (i % 3))); + (void) printf("\nis: "); + printbits(bs, TEST_LENGTH); + + (void) printf("\ntest bit_clear\n"); + for (i = 0; i < TEST_LENGTH; i += 6) { + bit_clear(bs, i); + } + (void) printf("be: 0 3 "); + for (i = 0; i < TEST_LENGTH; i++) + (void) putchar(*("000100" + (i % 6))); + (void) printf("\nis: "); + printbits(bs, TEST_LENGTH); + + (void) printf("\ntest bit_test using previous bitstring\n"); + (void) printf(" i bit_test(i)\n"); + for (i = 0; i < TEST_LENGTH; i++) { + (void) printf("%3d%15d\n", + i, bit_test(bs, i)); + } + + clearbits(bs, TEST_LENGTH); + (void) printf("\ntest clearbits\n"); + (void) printf("be: 0 -1 "); + for (i = 0; i < TEST_LENGTH; i++) + (void) putchar('0'); + (void) printf("\nis: "); + printbits(bs, TEST_LENGTH); + + (void) printf("\ntest bit_nset and bit_nclear\n"); + bit_nset(bs, 1, TEST_LENGTH - 2); + (void) printf("be: 0 1 0"); + for (i = 0; i < TEST_LENGTH - 2; i++) + (void) putchar('1'); + (void) printf("0\nis: "); + printbits(bs, TEST_LENGTH); + + bit_nclear(bs, 2, TEST_LENGTH - 3); + (void) printf("be: 0 1 01"); + for (i = 0; i < TEST_LENGTH - 4; i++) + (void) putchar('0'); + (void) printf("10\nis: "); + printbits(bs, TEST_LENGTH); + + bit_nclear(bs, 0, TEST_LENGTH - 1); + (void) printf("be: 0 -1 "); + for (i = 0; i < TEST_LENGTH; i++) + (void) putchar('0'); + (void) printf("\nis: "); + printbits(bs, TEST_LENGTH); + bit_nset(bs, 0, TEST_LENGTH - 2); + (void) printf("be: %3d 0 ", TEST_LENGTH - 1); + for (i = 0; i < TEST_LENGTH - 1; i++) + (void) putchar('1'); + putchar('0'); + (void) printf("\nis: "); + printbits(bs, TEST_LENGTH); + bit_nclear(bs, 0, TEST_LENGTH - 1); + (void) printf("be: 0 -1 "); + for (i = 0; i < TEST_LENGTH; i++) + (void) putchar('0'); + (void) printf("\nis: "); + printbits(bs, TEST_LENGTH); + + (void) printf("\n"); + (void) printf("first 1 bit should move right 1 position each line\n"); + for (i = 0; i < TEST_LENGTH; i++) { + bit_nclear(bs, 0, TEST_LENGTH - 1); + bit_nset(bs, i, TEST_LENGTH - 1); + (void) printf("%3d ", i); + printbits(bs, TEST_LENGTH); + } + + (void) printf("\n"); + (void) printf("first 0 bit should move right 1 position each line\n"); + for (i = 0; i < TEST_LENGTH; i++) { + bit_nset(bs, 0, TEST_LENGTH - 1); + bit_nclear(bs, i, TEST_LENGTH - 1); + (void) printf("%3d ", i); + printbits(bs, TEST_LENGTH); + } + + (void) printf("\n"); + (void) printf("first 0 bit should move left 1 position each line\n"); + for (i = 0; i < TEST_LENGTH; i++) { + bit_nclear(bs, 0, TEST_LENGTH - 1); + bit_nset(bs, 0, TEST_LENGTH - 1 - i); + (void) printf("%3d ", i); + printbits(bs, TEST_LENGTH); + } + + (void) printf("\n"); + (void) printf("first 1 bit should move left 1 position each line\n"); + for (i = 0; i < TEST_LENGTH; i++) { + bit_nset(bs, 0, TEST_LENGTH - 1); + bit_nclear(bs, 0, TEST_LENGTH - 1 - i); + (void) printf("%3d ", i); + printbits(bs, TEST_LENGTH); + } + + (void) printf("\n"); + (void) printf("0 bit should move right 1 position each line\n"); + for (i = 0; i < TEST_LENGTH; i++) { + bit_nset(bs, 0, TEST_LENGTH - 1); + bit_nclear(bs, i, i); + (void) printf("%3d ", i); + printbits(bs, TEST_LENGTH); + } + + (void) printf("\n"); + (void) printf("1 bit should move right 1 position each line\n"); + for (i = 0; i < TEST_LENGTH; i++) { + bit_nclear(bs, 0, TEST_LENGTH - 1); + bit_nset(bs, i, i); + (void) printf("%3d ", i); + printbits(bs, TEST_LENGTH); + } + + (void) free(bs); + (void) exit(0); +} diff --git a/src/regress/include/bitstring/good/27 b/src/regress/include/bitstring/good/27 new file mode 100644 index 000000000..55ba39e77 --- /dev/null +++ b/src/regress/include/bitstring/good/27 @@ -0,0 +1,263 @@ +Testing with TEST_LENGTH = 27 + +test _bit_byte, _bit_mask, and bitstr_size + i _bit_byte(i) _bit_mask(i) bitstr_size(i) + 0 0 1 0 + 1 0 2 1 + 2 0 4 1 + 3 0 8 1 + 4 0 16 1 + 5 0 32 1 + 6 0 64 1 + 7 0 128 1 + 8 1 1 1 + 9 1 2 2 + 10 1 4 2 + 11 1 8 2 + 12 1 16 2 + 13 1 32 2 + 14 1 64 2 + 15 1 128 2 + 16 2 1 2 + 17 2 2 3 + 18 2 4 3 + 19 2 8 3 + 20 2 16 3 + 21 2 32 3 + 22 2 64 3 + 23 2 128 3 + 24 3 1 3 + 25 3 2 4 + 26 3 4 4 + +test bit_alloc, clearbits, bit_ffc, bit_ffs +be: 0 -1 000000000000000000000000000 +is: 0 -1 000000000000000000000000000 + +test bit_set +be: 1 0 100100100100100100100100100 +is: 1 0 100100100100100100100100100 + +test bit_clear +be: 0 3 000100000100000100000100000 +is: 0 3 000100000100000100000100000 + +test bit_test using previous bitstring + i bit_test(i) + 0 0 + 1 0 + 2 0 + 3 8 + 4 0 + 5 0 + 6 0 + 7 0 + 8 0 + 9 2 + 10 0 + 11 0 + 12 0 + 13 0 + 14 0 + 15 128 + 16 0 + 17 0 + 18 0 + 19 0 + 20 0 + 21 32 + 22 0 + 23 0 + 24 0 + 25 0 + 26 0 + +test clearbits +be: 0 -1 000000000000000000000000000 +is: 0 -1 000000000000000000000000000 + +test bit_nset and bit_nclear +be: 0 1 011111111111111111111111110 +is: 0 1 011111111111111111111111110 +be: 0 1 010000000000000000000000010 +is: 0 1 010000000000000000000000010 +be: 0 -1 000000000000000000000000000 +is: 0 -1 000000000000000000000000000 +be: 26 0 111111111111111111111111110 +is: 26 0 111111111111111111111111110 +be: 0 -1 000000000000000000000000000 +is: 0 -1 000000000000000000000000000 + +first 1 bit should move right 1 position each line + 0 -1 0 111111111111111111111111111 + 1 0 1 011111111111111111111111111 + 2 0 2 001111111111111111111111111 + 3 0 3 000111111111111111111111111 + 4 0 4 000011111111111111111111111 + 5 0 5 000001111111111111111111111 + 6 0 6 000000111111111111111111111 + 7 0 7 000000011111111111111111111 + 8 0 8 000000001111111111111111111 + 9 0 9 000000000111111111111111111 + 10 0 10 000000000011111111111111111 + 11 0 11 000000000001111111111111111 + 12 0 12 000000000000111111111111111 + 13 0 13 000000000000011111111111111 + 14 0 14 000000000000001111111111111 + 15 0 15 000000000000000111111111111 + 16 0 16 000000000000000011111111111 + 17 0 17 000000000000000001111111111 + 18 0 18 000000000000000000111111111 + 19 0 19 000000000000000000011111111 + 20 0 20 000000000000000000001111111 + 21 0 21 000000000000000000000111111 + 22 0 22 000000000000000000000011111 + 23 0 23 000000000000000000000001111 + 24 0 24 000000000000000000000000111 + 25 0 25 000000000000000000000000011 + 26 0 26 000000000000000000000000001 + +first 0 bit should move right 1 position each line + 0 0 -1 000000000000000000000000000 + 1 1 0 100000000000000000000000000 + 2 2 0 110000000000000000000000000 + 3 3 0 111000000000000000000000000 + 4 4 0 111100000000000000000000000 + 5 5 0 111110000000000000000000000 + 6 6 0 111111000000000000000000000 + 7 7 0 111111100000000000000000000 + 8 8 0 111111110000000000000000000 + 9 9 0 111111111000000000000000000 + 10 10 0 111111111100000000000000000 + 11 11 0 111111111110000000000000000 + 12 12 0 111111111111000000000000000 + 13 13 0 111111111111100000000000000 + 14 14 0 111111111111110000000000000 + 15 15 0 111111111111111000000000000 + 16 16 0 111111111111111100000000000 + 17 17 0 111111111111111110000000000 + 18 18 0 111111111111111111000000000 + 19 19 0 111111111111111111100000000 + 20 20 0 111111111111111111110000000 + 21 21 0 111111111111111111111000000 + 22 22 0 111111111111111111111100000 + 23 23 0 111111111111111111111110000 + 24 24 0 111111111111111111111111000 + 25 25 0 111111111111111111111111100 + 26 26 0 111111111111111111111111110 + +first 0 bit should move left 1 position each line + 0 -1 0 111111111111111111111111111 + 1 26 0 111111111111111111111111110 + 2 25 0 111111111111111111111111100 + 3 24 0 111111111111111111111111000 + 4 23 0 111111111111111111111110000 + 5 22 0 111111111111111111111100000 + 6 21 0 111111111111111111111000000 + 7 20 0 111111111111111111110000000 + 8 19 0 111111111111111111100000000 + 9 18 0 111111111111111111000000000 + 10 17 0 111111111111111110000000000 + 11 16 0 111111111111111100000000000 + 12 15 0 111111111111111000000000000 + 13 14 0 111111111111110000000000000 + 14 13 0 111111111111100000000000000 + 15 12 0 111111111111000000000000000 + 16 11 0 111111111110000000000000000 + 17 10 0 111111111100000000000000000 + 18 9 0 111111111000000000000000000 + 19 8 0 111111110000000000000000000 + 20 7 0 111111100000000000000000000 + 21 6 0 111111000000000000000000000 + 22 5 0 111110000000000000000000000 + 23 4 0 111100000000000000000000000 + 24 3 0 111000000000000000000000000 + 25 2 0 110000000000000000000000000 + 26 1 0 100000000000000000000000000 + +first 1 bit should move left 1 position each line + 0 0 -1 000000000000000000000000000 + 1 0 26 000000000000000000000000001 + 2 0 25 000000000000000000000000011 + 3 0 24 000000000000000000000000111 + 4 0 23 000000000000000000000001111 + 5 0 22 000000000000000000000011111 + 6 0 21 000000000000000000000111111 + 7 0 20 000000000000000000001111111 + 8 0 19 000000000000000000011111111 + 9 0 18 000000000000000000111111111 + 10 0 17 000000000000000001111111111 + 11 0 16 000000000000000011111111111 + 12 0 15 000000000000000111111111111 + 13 0 14 000000000000001111111111111 + 14 0 13 000000000000011111111111111 + 15 0 12 000000000000111111111111111 + 16 0 11 000000000001111111111111111 + 17 0 10 000000000011111111111111111 + 18 0 9 000000000111111111111111111 + 19 0 8 000000001111111111111111111 + 20 0 7 000000011111111111111111111 + 21 0 6 000000111111111111111111111 + 22 0 5 000001111111111111111111111 + 23 0 4 000011111111111111111111111 + 24 0 3 000111111111111111111111111 + 25 0 2 001111111111111111111111111 + 26 0 1 011111111111111111111111111 + +0 bit should move right 1 position each line + 0 0 1 011111111111111111111111111 + 1 1 0 101111111111111111111111111 + 2 2 0 110111111111111111111111111 + 3 3 0 111011111111111111111111111 + 4 4 0 111101111111111111111111111 + 5 5 0 111110111111111111111111111 + 6 6 0 111111011111111111111111111 + 7 7 0 111111101111111111111111111 + 8 8 0 111111110111111111111111111 + 9 9 0 111111111011111111111111111 + 10 10 0 111111111101111111111111111 + 11 11 0 111111111110111111111111111 + 12 12 0 111111111111011111111111111 + 13 13 0 111111111111101111111111111 + 14 14 0 111111111111110111111111111 + 15 15 0 111111111111111011111111111 + 16 16 0 111111111111111101111111111 + 17 17 0 111111111111111110111111111 + 18 18 0 111111111111111111011111111 + 19 19 0 111111111111111111101111111 + 20 20 0 111111111111111111110111111 + 21 21 0 111111111111111111111011111 + 22 22 0 111111111111111111111101111 + 23 23 0 111111111111111111111110111 + 24 24 0 111111111111111111111111011 + 25 25 0 111111111111111111111111101 + 26 26 0 111111111111111111111111110 + +1 bit should move right 1 position each line + 0 1 0 100000000000000000000000000 + 1 0 1 010000000000000000000000000 + 2 0 2 001000000000000000000000000 + 3 0 3 000100000000000000000000000 + 4 0 4 000010000000000000000000000 + 5 0 5 000001000000000000000000000 + 6 0 6 000000100000000000000000000 + 7 0 7 000000010000000000000000000 + 8 0 8 000000001000000000000000000 + 9 0 9 000000000100000000000000000 + 10 0 10 000000000010000000000000000 + 11 0 11 000000000001000000000000000 + 12 0 12 000000000000100000000000000 + 13 0 13 000000000000010000000000000 + 14 0 14 000000000000001000000000000 + 15 0 15 000000000000000100000000000 + 16 0 16 000000000000000010000000000 + 17 0 17 000000000000000001000000000 + 18 0 18 000000000000000000100000000 + 19 0 19 000000000000000000010000000 + 20 0 20 000000000000000000001000000 + 21 0 21 000000000000000000000100000 + 22 0 22 000000000000000000000010000 + 23 0 23 000000000000000000000001000 + 24 0 24 000000000000000000000000100 + 25 0 25 000000000000000000000000010 + 26 0 26 000000000000000000000000001 diff --git a/src/regress/include/bitstring/good/32 b/src/regress/include/bitstring/good/32 new file mode 100644 index 000000000..2e1ca55d6 --- /dev/null +++ b/src/regress/include/bitstring/good/32 @@ -0,0 +1,303 @@ +Testing with TEST_LENGTH = 32 + +test _bit_byte, _bit_mask, and bitstr_size + i _bit_byte(i) _bit_mask(i) bitstr_size(i) + 0 0 1 0 + 1 0 2 1 + 2 0 4 1 + 3 0 8 1 + 4 0 16 1 + 5 0 32 1 + 6 0 64 1 + 7 0 128 1 + 8 1 1 1 + 9 1 2 2 + 10 1 4 2 + 11 1 8 2 + 12 1 16 2 + 13 1 32 2 + 14 1 64 2 + 15 1 128 2 + 16 2 1 2 + 17 2 2 3 + 18 2 4 3 + 19 2 8 3 + 20 2 16 3 + 21 2 32 3 + 22 2 64 3 + 23 2 128 3 + 24 3 1 3 + 25 3 2 4 + 26 3 4 4 + 27 3 8 4 + 28 3 16 4 + 29 3 32 4 + 30 3 64 4 + 31 3 128 4 + +test bit_alloc, clearbits, bit_ffc, bit_ffs +be: 0 -1 00000000000000000000000000000000 +is: 0 -1 00000000000000000000000000000000 + +test bit_set +be: 1 0 10010010010010010010010010010010 +is: 1 0 10010010010010010010010010010010 + +test bit_clear +be: 0 3 00010000010000010000010000010000 +is: 0 3 00010000010000010000010000010000 + +test bit_test using previous bitstring + i bit_test(i) + 0 0 + 1 0 + 2 0 + 3 8 + 4 0 + 5 0 + 6 0 + 7 0 + 8 0 + 9 2 + 10 0 + 11 0 + 12 0 + 13 0 + 14 0 + 15 128 + 16 0 + 17 0 + 18 0 + 19 0 + 20 0 + 21 32 + 22 0 + 23 0 + 24 0 + 25 0 + 26 0 + 27 8 + 28 0 + 29 0 + 30 0 + 31 0 + +test clearbits +be: 0 -1 00000000000000000000000000000000 +is: 0 -1 00000000000000000000000000000000 + +test bit_nset and bit_nclear +be: 0 1 01111111111111111111111111111110 +is: 0 1 01111111111111111111111111111110 +be: 0 1 01000000000000000000000000000010 +is: 0 1 01000000000000000000000000000010 +be: 0 -1 00000000000000000000000000000000 +is: 0 -1 00000000000000000000000000000000 +be: 31 0 11111111111111111111111111111110 +is: 31 0 11111111111111111111111111111110 +be: 0 -1 00000000000000000000000000000000 +is: 0 -1 00000000000000000000000000000000 + +first 1 bit should move right 1 position each line + 0 -1 0 11111111111111111111111111111111 + 1 0 1 01111111111111111111111111111111 + 2 0 2 00111111111111111111111111111111 + 3 0 3 00011111111111111111111111111111 + 4 0 4 00001111111111111111111111111111 + 5 0 5 00000111111111111111111111111111 + 6 0 6 00000011111111111111111111111111 + 7 0 7 00000001111111111111111111111111 + 8 0 8 00000000111111111111111111111111 + 9 0 9 00000000011111111111111111111111 + 10 0 10 00000000001111111111111111111111 + 11 0 11 00000000000111111111111111111111 + 12 0 12 00000000000011111111111111111111 + 13 0 13 00000000000001111111111111111111 + 14 0 14 00000000000000111111111111111111 + 15 0 15 00000000000000011111111111111111 + 16 0 16 00000000000000001111111111111111 + 17 0 17 00000000000000000111111111111111 + 18 0 18 00000000000000000011111111111111 + 19 0 19 00000000000000000001111111111111 + 20 0 20 00000000000000000000111111111111 + 21 0 21 00000000000000000000011111111111 + 22 0 22 00000000000000000000001111111111 + 23 0 23 00000000000000000000000111111111 + 24 0 24 00000000000000000000000011111111 + 25 0 25 00000000000000000000000001111111 + 26 0 26 00000000000000000000000000111111 + 27 0 27 00000000000000000000000000011111 + 28 0 28 00000000000000000000000000001111 + 29 0 29 00000000000000000000000000000111 + 30 0 30 00000000000000000000000000000011 + 31 0 31 00000000000000000000000000000001 + +first 0 bit should move right 1 position each line + 0 0 -1 00000000000000000000000000000000 + 1 1 0 10000000000000000000000000000000 + 2 2 0 11000000000000000000000000000000 + 3 3 0 11100000000000000000000000000000 + 4 4 0 11110000000000000000000000000000 + 5 5 0 11111000000000000000000000000000 + 6 6 0 11111100000000000000000000000000 + 7 7 0 11111110000000000000000000000000 + 8 8 0 11111111000000000000000000000000 + 9 9 0 11111111100000000000000000000000 + 10 10 0 11111111110000000000000000000000 + 11 11 0 11111111111000000000000000000000 + 12 12 0 11111111111100000000000000000000 + 13 13 0 11111111111110000000000000000000 + 14 14 0 11111111111111000000000000000000 + 15 15 0 11111111111111100000000000000000 + 16 16 0 11111111111111110000000000000000 + 17 17 0 11111111111111111000000000000000 + 18 18 0 11111111111111111100000000000000 + 19 19 0 11111111111111111110000000000000 + 20 20 0 11111111111111111111000000000000 + 21 21 0 11111111111111111111100000000000 + 22 22 0 11111111111111111111110000000000 + 23 23 0 11111111111111111111111000000000 + 24 24 0 11111111111111111111111100000000 + 25 25 0 11111111111111111111111110000000 + 26 26 0 11111111111111111111111111000000 + 27 27 0 11111111111111111111111111100000 + 28 28 0 11111111111111111111111111110000 + 29 29 0 11111111111111111111111111111000 + 30 30 0 11111111111111111111111111111100 + 31 31 0 11111111111111111111111111111110 + +first 0 bit should move left 1 position each line + 0 -1 0 11111111111111111111111111111111 + 1 31 0 11111111111111111111111111111110 + 2 30 0 11111111111111111111111111111100 + 3 29 0 11111111111111111111111111111000 + 4 28 0 11111111111111111111111111110000 + 5 27 0 11111111111111111111111111100000 + 6 26 0 11111111111111111111111111000000 + 7 25 0 11111111111111111111111110000000 + 8 24 0 11111111111111111111111100000000 + 9 23 0 11111111111111111111111000000000 + 10 22 0 11111111111111111111110000000000 + 11 21 0 11111111111111111111100000000000 + 12 20 0 11111111111111111111000000000000 + 13 19 0 11111111111111111110000000000000 + 14 18 0 11111111111111111100000000000000 + 15 17 0 11111111111111111000000000000000 + 16 16 0 11111111111111110000000000000000 + 17 15 0 11111111111111100000000000000000 + 18 14 0 11111111111111000000000000000000 + 19 13 0 11111111111110000000000000000000 + 20 12 0 11111111111100000000000000000000 + 21 11 0 11111111111000000000000000000000 + 22 10 0 11111111110000000000000000000000 + 23 9 0 11111111100000000000000000000000 + 24 8 0 11111111000000000000000000000000 + 25 7 0 11111110000000000000000000000000 + 26 6 0 11111100000000000000000000000000 + 27 5 0 11111000000000000000000000000000 + 28 4 0 11110000000000000000000000000000 + 29 3 0 11100000000000000000000000000000 + 30 2 0 11000000000000000000000000000000 + 31 1 0 10000000000000000000000000000000 + +first 1 bit should move left 1 position each line + 0 0 -1 00000000000000000000000000000000 + 1 0 31 00000000000000000000000000000001 + 2 0 30 00000000000000000000000000000011 + 3 0 29 00000000000000000000000000000111 + 4 0 28 00000000000000000000000000001111 + 5 0 27 00000000000000000000000000011111 + 6 0 26 00000000000000000000000000111111 + 7 0 25 00000000000000000000000001111111 + 8 0 24 00000000000000000000000011111111 + 9 0 23 00000000000000000000000111111111 + 10 0 22 00000000000000000000001111111111 + 11 0 21 00000000000000000000011111111111 + 12 0 20 00000000000000000000111111111111 + 13 0 19 00000000000000000001111111111111 + 14 0 18 00000000000000000011111111111111 + 15 0 17 00000000000000000111111111111111 + 16 0 16 00000000000000001111111111111111 + 17 0 15 00000000000000011111111111111111 + 18 0 14 00000000000000111111111111111111 + 19 0 13 00000000000001111111111111111111 + 20 0 12 00000000000011111111111111111111 + 21 0 11 00000000000111111111111111111111 + 22 0 10 00000000001111111111111111111111 + 23 0 9 00000000011111111111111111111111 + 24 0 8 00000000111111111111111111111111 + 25 0 7 00000001111111111111111111111111 + 26 0 6 00000011111111111111111111111111 + 27 0 5 00000111111111111111111111111111 + 28 0 4 00001111111111111111111111111111 + 29 0 3 00011111111111111111111111111111 + 30 0 2 00111111111111111111111111111111 + 31 0 1 01111111111111111111111111111111 + +0 bit should move right 1 position each line + 0 0 1 01111111111111111111111111111111 + 1 1 0 10111111111111111111111111111111 + 2 2 0 11011111111111111111111111111111 + 3 3 0 11101111111111111111111111111111 + 4 4 0 11110111111111111111111111111111 + 5 5 0 11111011111111111111111111111111 + 6 6 0 11111101111111111111111111111111 + 7 7 0 11111110111111111111111111111111 + 8 8 0 11111111011111111111111111111111 + 9 9 0 11111111101111111111111111111111 + 10 10 0 11111111110111111111111111111111 + 11 11 0 11111111111011111111111111111111 + 12 12 0 11111111111101111111111111111111 + 13 13 0 11111111111110111111111111111111 + 14 14 0 11111111111111011111111111111111 + 15 15 0 11111111111111101111111111111111 + 16 16 0 11111111111111110111111111111111 + 17 17 0 11111111111111111011111111111111 + 18 18 0 11111111111111111101111111111111 + 19 19 0 11111111111111111110111111111111 + 20 20 0 11111111111111111111011111111111 + 21 21 0 11111111111111111111101111111111 + 22 22 0 11111111111111111111110111111111 + 23 23 0 11111111111111111111111011111111 + 24 24 0 11111111111111111111111101111111 + 25 25 0 11111111111111111111111110111111 + 26 26 0 11111111111111111111111111011111 + 27 27 0 11111111111111111111111111101111 + 28 28 0 11111111111111111111111111110111 + 29 29 0 11111111111111111111111111111011 + 30 30 0 11111111111111111111111111111101 + 31 31 0 11111111111111111111111111111110 + +1 bit should move right 1 position each line + 0 1 0 10000000000000000000000000000000 + 1 0 1 01000000000000000000000000000000 + 2 0 2 00100000000000000000000000000000 + 3 0 3 00010000000000000000000000000000 + 4 0 4 00001000000000000000000000000000 + 5 0 5 00000100000000000000000000000000 + 6 0 6 00000010000000000000000000000000 + 7 0 7 00000001000000000000000000000000 + 8 0 8 00000000100000000000000000000000 + 9 0 9 00000000010000000000000000000000 + 10 0 10 00000000001000000000000000000000 + 11 0 11 00000000000100000000000000000000 + 12 0 12 00000000000010000000000000000000 + 13 0 13 00000000000001000000000000000000 + 14 0 14 00000000000000100000000000000000 + 15 0 15 00000000000000010000000000000000 + 16 0 16 00000000000000001000000000000000 + 17 0 17 00000000000000000100000000000000 + 18 0 18 00000000000000000010000000000000 + 19 0 19 00000000000000000001000000000000 + 20 0 20 00000000000000000000100000000000 + 21 0 21 00000000000000000000010000000000 + 22 0 22 00000000000000000000001000000000 + 23 0 23 00000000000000000000000100000000 + 24 0 24 00000000000000000000000010000000 + 25 0 25 00000000000000000000000001000000 + 26 0 26 00000000000000000000000000100000 + 27 0 27 00000000000000000000000000010000 + 28 0 28 00000000000000000000000000001000 + 29 0 29 00000000000000000000000000000100 + 30 0 30 00000000000000000000000000000010 + 31 0 31 00000000000000000000000000000001 diff --git a/src/regress/include/bitstring/good/49 b/src/regress/include/bitstring/good/49 new file mode 100644 index 000000000..d63c0692d --- /dev/null +++ b/src/regress/include/bitstring/good/49 @@ -0,0 +1,439 @@ +Testing with TEST_LENGTH = 49 + +test _bit_byte, _bit_mask, and bitstr_size + i _bit_byte(i) _bit_mask(i) bitstr_size(i) + 0 0 1 0 + 1 0 2 1 + 2 0 4 1 + 3 0 8 1 + 4 0 16 1 + 5 0 32 1 + 6 0 64 1 + 7 0 128 1 + 8 1 1 1 + 9 1 2 2 + 10 1 4 2 + 11 1 8 2 + 12 1 16 2 + 13 1 32 2 + 14 1 64 2 + 15 1 128 2 + 16 2 1 2 + 17 2 2 3 + 18 2 4 3 + 19 2 8 3 + 20 2 16 3 + 21 2 32 3 + 22 2 64 3 + 23 2 128 3 + 24 3 1 3 + 25 3 2 4 + 26 3 4 4 + 27 3 8 4 + 28 3 16 4 + 29 3 32 4 + 30 3 64 4 + 31 3 128 4 + 32 4 1 4 + 33 4 2 5 + 34 4 4 5 + 35 4 8 5 + 36 4 16 5 + 37 4 32 5 + 38 4 64 5 + 39 4 128 5 + 40 5 1 5 + 41 5 2 6 + 42 5 4 6 + 43 5 8 6 + 44 5 16 6 + 45 5 32 6 + 46 5 64 6 + 47 5 128 6 + 48 6 1 6 + +test bit_alloc, clearbits, bit_ffc, bit_ffs +be: 0 -1 0000000000000000000000000000000000000000000000000 +is: 0 -1 0000000000000000000000000000000000000000000000000 + +test bit_set +be: 1 0 1001001001001001001001001001001001001001001001001 +is: 1 0 1001001001001001001001001001001001001001001001001 + +test bit_clear +be: 0 3 0001000001000001000001000001000001000001000001000 +is: 0 3 0001000001000001000001000001000001000001000001000 + +test bit_test using previous bitstring + i bit_test(i) + 0 0 + 1 0 + 2 0 + 3 8 + 4 0 + 5 0 + 6 0 + 7 0 + 8 0 + 9 2 + 10 0 + 11 0 + 12 0 + 13 0 + 14 0 + 15 128 + 16 0 + 17 0 + 18 0 + 19 0 + 20 0 + 21 32 + 22 0 + 23 0 + 24 0 + 25 0 + 26 0 + 27 8 + 28 0 + 29 0 + 30 0 + 31 0 + 32 0 + 33 2 + 34 0 + 35 0 + 36 0 + 37 0 + 38 0 + 39 128 + 40 0 + 41 0 + 42 0 + 43 0 + 44 0 + 45 32 + 46 0 + 47 0 + 48 0 + +test clearbits +be: 0 -1 0000000000000000000000000000000000000000000000000 +is: 0 -1 0000000000000000000000000000000000000000000000000 + +test bit_nset and bit_nclear +be: 0 1 0111111111111111111111111111111111111111111111110 +is: 0 1 0111111111111111111111111111111111111111111111110 +be: 0 1 0100000000000000000000000000000000000000000000010 +is: 0 1 0100000000000000000000000000000000000000000000010 +be: 0 -1 0000000000000000000000000000000000000000000000000 +is: 0 -1 0000000000000000000000000000000000000000000000000 +be: 48 0 1111111111111111111111111111111111111111111111110 +is: 48 0 1111111111111111111111111111111111111111111111110 +be: 0 -1 0000000000000000000000000000000000000000000000000 +is: 0 -1 0000000000000000000000000000000000000000000000000 + +first 1 bit should move right 1 position each line + 0 -1 0 1111111111111111111111111111111111111111111111111 + 1 0 1 0111111111111111111111111111111111111111111111111 + 2 0 2 0011111111111111111111111111111111111111111111111 + 3 0 3 0001111111111111111111111111111111111111111111111 + 4 0 4 0000111111111111111111111111111111111111111111111 + 5 0 5 0000011111111111111111111111111111111111111111111 + 6 0 6 0000001111111111111111111111111111111111111111111 + 7 0 7 0000000111111111111111111111111111111111111111111 + 8 0 8 0000000011111111111111111111111111111111111111111 + 9 0 9 0000000001111111111111111111111111111111111111111 + 10 0 10 0000000000111111111111111111111111111111111111111 + 11 0 11 0000000000011111111111111111111111111111111111111 + 12 0 12 0000000000001111111111111111111111111111111111111 + 13 0 13 0000000000000111111111111111111111111111111111111 + 14 0 14 0000000000000011111111111111111111111111111111111 + 15 0 15 0000000000000001111111111111111111111111111111111 + 16 0 16 0000000000000000111111111111111111111111111111111 + 17 0 17 0000000000000000011111111111111111111111111111111 + 18 0 18 0000000000000000001111111111111111111111111111111 + 19 0 19 0000000000000000000111111111111111111111111111111 + 20 0 20 0000000000000000000011111111111111111111111111111 + 21 0 21 0000000000000000000001111111111111111111111111111 + 22 0 22 0000000000000000000000111111111111111111111111111 + 23 0 23 0000000000000000000000011111111111111111111111111 + 24 0 24 0000000000000000000000001111111111111111111111111 + 25 0 25 0000000000000000000000000111111111111111111111111 + 26 0 26 0000000000000000000000000011111111111111111111111 + 27 0 27 0000000000000000000000000001111111111111111111111 + 28 0 28 0000000000000000000000000000111111111111111111111 + 29 0 29 0000000000000000000000000000011111111111111111111 + 30 0 30 0000000000000000000000000000001111111111111111111 + 31 0 31 0000000000000000000000000000000111111111111111111 + 32 0 32 0000000000000000000000000000000011111111111111111 + 33 0 33 0000000000000000000000000000000001111111111111111 + 34 0 34 0000000000000000000000000000000000111111111111111 + 35 0 35 0000000000000000000000000000000000011111111111111 + 36 0 36 0000000000000000000000000000000000001111111111111 + 37 0 37 0000000000000000000000000000000000000111111111111 + 38 0 38 0000000000000000000000000000000000000011111111111 + 39 0 39 0000000000000000000000000000000000000001111111111 + 40 0 40 0000000000000000000000000000000000000000111111111 + 41 0 41 0000000000000000000000000000000000000000011111111 + 42 0 42 0000000000000000000000000000000000000000001111111 + 43 0 43 0000000000000000000000000000000000000000000111111 + 44 0 44 0000000000000000000000000000000000000000000011111 + 45 0 45 0000000000000000000000000000000000000000000001111 + 46 0 46 0000000000000000000000000000000000000000000000111 + 47 0 47 0000000000000000000000000000000000000000000000011 + 48 0 48 0000000000000000000000000000000000000000000000001 + +first 0 bit should move right 1 position each line + 0 0 -1 0000000000000000000000000000000000000000000000000 + 1 1 0 1000000000000000000000000000000000000000000000000 + 2 2 0 1100000000000000000000000000000000000000000000000 + 3 3 0 1110000000000000000000000000000000000000000000000 + 4 4 0 1111000000000000000000000000000000000000000000000 + 5 5 0 1111100000000000000000000000000000000000000000000 + 6 6 0 1111110000000000000000000000000000000000000000000 + 7 7 0 1111111000000000000000000000000000000000000000000 + 8 8 0 1111111100000000000000000000000000000000000000000 + 9 9 0 1111111110000000000000000000000000000000000000000 + 10 10 0 1111111111000000000000000000000000000000000000000 + 11 11 0 1111111111100000000000000000000000000000000000000 + 12 12 0 1111111111110000000000000000000000000000000000000 + 13 13 0 1111111111111000000000000000000000000000000000000 + 14 14 0 1111111111111100000000000000000000000000000000000 + 15 15 0 1111111111111110000000000000000000000000000000000 + 16 16 0 1111111111111111000000000000000000000000000000000 + 17 17 0 1111111111111111100000000000000000000000000000000 + 18 18 0 1111111111111111110000000000000000000000000000000 + 19 19 0 1111111111111111111000000000000000000000000000000 + 20 20 0 1111111111111111111100000000000000000000000000000 + 21 21 0 1111111111111111111110000000000000000000000000000 + 22 22 0 1111111111111111111111000000000000000000000000000 + 23 23 0 1111111111111111111111100000000000000000000000000 + 24 24 0 1111111111111111111111110000000000000000000000000 + 25 25 0 1111111111111111111111111000000000000000000000000 + 26 26 0 1111111111111111111111111100000000000000000000000 + 27 27 0 1111111111111111111111111110000000000000000000000 + 28 28 0 1111111111111111111111111111000000000000000000000 + 29 29 0 1111111111111111111111111111100000000000000000000 + 30 30 0 1111111111111111111111111111110000000000000000000 + 31 31 0 1111111111111111111111111111111000000000000000000 + 32 32 0 1111111111111111111111111111111100000000000000000 + 33 33 0 1111111111111111111111111111111110000000000000000 + 34 34 0 1111111111111111111111111111111111000000000000000 + 35 35 0 1111111111111111111111111111111111100000000000000 + 36 36 0 1111111111111111111111111111111111110000000000000 + 37 37 0 1111111111111111111111111111111111111000000000000 + 38 38 0 1111111111111111111111111111111111111100000000000 + 39 39 0 1111111111111111111111111111111111111110000000000 + 40 40 0 1111111111111111111111111111111111111111000000000 + 41 41 0 1111111111111111111111111111111111111111100000000 + 42 42 0 1111111111111111111111111111111111111111110000000 + 43 43 0 1111111111111111111111111111111111111111111000000 + 44 44 0 1111111111111111111111111111111111111111111100000 + 45 45 0 1111111111111111111111111111111111111111111110000 + 46 46 0 1111111111111111111111111111111111111111111111000 + 47 47 0 1111111111111111111111111111111111111111111111100 + 48 48 0 1111111111111111111111111111111111111111111111110 + +first 0 bit should move left 1 position each line + 0 -1 0 1111111111111111111111111111111111111111111111111 + 1 48 0 1111111111111111111111111111111111111111111111110 + 2 47 0 1111111111111111111111111111111111111111111111100 + 3 46 0 1111111111111111111111111111111111111111111111000 + 4 45 0 1111111111111111111111111111111111111111111110000 + 5 44 0 1111111111111111111111111111111111111111111100000 + 6 43 0 1111111111111111111111111111111111111111111000000 + 7 42 0 1111111111111111111111111111111111111111110000000 + 8 41 0 1111111111111111111111111111111111111111100000000 + 9 40 0 1111111111111111111111111111111111111111000000000 + 10 39 0 1111111111111111111111111111111111111110000000000 + 11 38 0 1111111111111111111111111111111111111100000000000 + 12 37 0 1111111111111111111111111111111111111000000000000 + 13 36 0 1111111111111111111111111111111111110000000000000 + 14 35 0 1111111111111111111111111111111111100000000000000 + 15 34 0 1111111111111111111111111111111111000000000000000 + 16 33 0 1111111111111111111111111111111110000000000000000 + 17 32 0 1111111111111111111111111111111100000000000000000 + 18 31 0 1111111111111111111111111111111000000000000000000 + 19 30 0 1111111111111111111111111111110000000000000000000 + 20 29 0 1111111111111111111111111111100000000000000000000 + 21 28 0 1111111111111111111111111111000000000000000000000 + 22 27 0 1111111111111111111111111110000000000000000000000 + 23 26 0 1111111111111111111111111100000000000000000000000 + 24 25 0 1111111111111111111111111000000000000000000000000 + 25 24 0 1111111111111111111111110000000000000000000000000 + 26 23 0 1111111111111111111111100000000000000000000000000 + 27 22 0 1111111111111111111111000000000000000000000000000 + 28 21 0 1111111111111111111110000000000000000000000000000 + 29 20 0 1111111111111111111100000000000000000000000000000 + 30 19 0 1111111111111111111000000000000000000000000000000 + 31 18 0 1111111111111111110000000000000000000000000000000 + 32 17 0 1111111111111111100000000000000000000000000000000 + 33 16 0 1111111111111111000000000000000000000000000000000 + 34 15 0 1111111111111110000000000000000000000000000000000 + 35 14 0 1111111111111100000000000000000000000000000000000 + 36 13 0 1111111111111000000000000000000000000000000000000 + 37 12 0 1111111111110000000000000000000000000000000000000 + 38 11 0 1111111111100000000000000000000000000000000000000 + 39 10 0 1111111111000000000000000000000000000000000000000 + 40 9 0 1111111110000000000000000000000000000000000000000 + 41 8 0 1111111100000000000000000000000000000000000000000 + 42 7 0 1111111000000000000000000000000000000000000000000 + 43 6 0 1111110000000000000000000000000000000000000000000 + 44 5 0 1111100000000000000000000000000000000000000000000 + 45 4 0 1111000000000000000000000000000000000000000000000 + 46 3 0 1110000000000000000000000000000000000000000000000 + 47 2 0 1100000000000000000000000000000000000000000000000 + 48 1 0 1000000000000000000000000000000000000000000000000 + +first 1 bit should move left 1 position each line + 0 0 -1 0000000000000000000000000000000000000000000000000 + 1 0 48 0000000000000000000000000000000000000000000000001 + 2 0 47 0000000000000000000000000000000000000000000000011 + 3 0 46 0000000000000000000000000000000000000000000000111 + 4 0 45 0000000000000000000000000000000000000000000001111 + 5 0 44 0000000000000000000000000000000000000000000011111 + 6 0 43 0000000000000000000000000000000000000000000111111 + 7 0 42 0000000000000000000000000000000000000000001111111 + 8 0 41 0000000000000000000000000000000000000000011111111 + 9 0 40 0000000000000000000000000000000000000000111111111 + 10 0 39 0000000000000000000000000000000000000001111111111 + 11 0 38 0000000000000000000000000000000000000011111111111 + 12 0 37 0000000000000000000000000000000000000111111111111 + 13 0 36 0000000000000000000000000000000000001111111111111 + 14 0 35 0000000000000000000000000000000000011111111111111 + 15 0 34 0000000000000000000000000000000000111111111111111 + 16 0 33 0000000000000000000000000000000001111111111111111 + 17 0 32 0000000000000000000000000000000011111111111111111 + 18 0 31 0000000000000000000000000000000111111111111111111 + 19 0 30 0000000000000000000000000000001111111111111111111 + 20 0 29 0000000000000000000000000000011111111111111111111 + 21 0 28 0000000000000000000000000000111111111111111111111 + 22 0 27 0000000000000000000000000001111111111111111111111 + 23 0 26 0000000000000000000000000011111111111111111111111 + 24 0 25 0000000000000000000000000111111111111111111111111 + 25 0 24 0000000000000000000000001111111111111111111111111 + 26 0 23 0000000000000000000000011111111111111111111111111 + 27 0 22 0000000000000000000000111111111111111111111111111 + 28 0 21 0000000000000000000001111111111111111111111111111 + 29 0 20 0000000000000000000011111111111111111111111111111 + 30 0 19 0000000000000000000111111111111111111111111111111 + 31 0 18 0000000000000000001111111111111111111111111111111 + 32 0 17 0000000000000000011111111111111111111111111111111 + 33 0 16 0000000000000000111111111111111111111111111111111 + 34 0 15 0000000000000001111111111111111111111111111111111 + 35 0 14 0000000000000011111111111111111111111111111111111 + 36 0 13 0000000000000111111111111111111111111111111111111 + 37 0 12 0000000000001111111111111111111111111111111111111 + 38 0 11 0000000000011111111111111111111111111111111111111 + 39 0 10 0000000000111111111111111111111111111111111111111 + 40 0 9 0000000001111111111111111111111111111111111111111 + 41 0 8 0000000011111111111111111111111111111111111111111 + 42 0 7 0000000111111111111111111111111111111111111111111 + 43 0 6 0000001111111111111111111111111111111111111111111 + 44 0 5 0000011111111111111111111111111111111111111111111 + 45 0 4 0000111111111111111111111111111111111111111111111 + 46 0 3 0001111111111111111111111111111111111111111111111 + 47 0 2 0011111111111111111111111111111111111111111111111 + 48 0 1 0111111111111111111111111111111111111111111111111 + +0 bit should move right 1 position each line + 0 0 1 0111111111111111111111111111111111111111111111111 + 1 1 0 1011111111111111111111111111111111111111111111111 + 2 2 0 1101111111111111111111111111111111111111111111111 + 3 3 0 1110111111111111111111111111111111111111111111111 + 4 4 0 1111011111111111111111111111111111111111111111111 + 5 5 0 1111101111111111111111111111111111111111111111111 + 6 6 0 1111110111111111111111111111111111111111111111111 + 7 7 0 1111111011111111111111111111111111111111111111111 + 8 8 0 1111111101111111111111111111111111111111111111111 + 9 9 0 1111111110111111111111111111111111111111111111111 + 10 10 0 1111111111011111111111111111111111111111111111111 + 11 11 0 1111111111101111111111111111111111111111111111111 + 12 12 0 1111111111110111111111111111111111111111111111111 + 13 13 0 1111111111111011111111111111111111111111111111111 + 14 14 0 1111111111111101111111111111111111111111111111111 + 15 15 0 1111111111111110111111111111111111111111111111111 + 16 16 0 1111111111111111011111111111111111111111111111111 + 17 17 0 1111111111111111101111111111111111111111111111111 + 18 18 0 1111111111111111110111111111111111111111111111111 + 19 19 0 1111111111111111111011111111111111111111111111111 + 20 20 0 1111111111111111111101111111111111111111111111111 + 21 21 0 1111111111111111111110111111111111111111111111111 + 22 22 0 1111111111111111111111011111111111111111111111111 + 23 23 0 1111111111111111111111101111111111111111111111111 + 24 24 0 1111111111111111111111110111111111111111111111111 + 25 25 0 1111111111111111111111111011111111111111111111111 + 26 26 0 1111111111111111111111111101111111111111111111111 + 27 27 0 1111111111111111111111111110111111111111111111111 + 28 28 0 1111111111111111111111111111011111111111111111111 + 29 29 0 1111111111111111111111111111101111111111111111111 + 30 30 0 1111111111111111111111111111110111111111111111111 + 31 31 0 1111111111111111111111111111111011111111111111111 + 32 32 0 1111111111111111111111111111111101111111111111111 + 33 33 0 1111111111111111111111111111111110111111111111111 + 34 34 0 1111111111111111111111111111111111011111111111111 + 35 35 0 1111111111111111111111111111111111101111111111111 + 36 36 0 1111111111111111111111111111111111110111111111111 + 37 37 0 1111111111111111111111111111111111111011111111111 + 38 38 0 1111111111111111111111111111111111111101111111111 + 39 39 0 1111111111111111111111111111111111111110111111111 + 40 40 0 1111111111111111111111111111111111111111011111111 + 41 41 0 1111111111111111111111111111111111111111101111111 + 42 42 0 1111111111111111111111111111111111111111110111111 + 43 43 0 1111111111111111111111111111111111111111111011111 + 44 44 0 1111111111111111111111111111111111111111111101111 + 45 45 0 1111111111111111111111111111111111111111111110111 + 46 46 0 1111111111111111111111111111111111111111111111011 + 47 47 0 1111111111111111111111111111111111111111111111101 + 48 48 0 1111111111111111111111111111111111111111111111110 + +1 bit should move right 1 position each line + 0 1 0 1000000000000000000000000000000000000000000000000 + 1 0 1 0100000000000000000000000000000000000000000000000 + 2 0 2 0010000000000000000000000000000000000000000000000 + 3 0 3 0001000000000000000000000000000000000000000000000 + 4 0 4 0000100000000000000000000000000000000000000000000 + 5 0 5 0000010000000000000000000000000000000000000000000 + 6 0 6 0000001000000000000000000000000000000000000000000 + 7 0 7 0000000100000000000000000000000000000000000000000 + 8 0 8 0000000010000000000000000000000000000000000000000 + 9 0 9 0000000001000000000000000000000000000000000000000 + 10 0 10 0000000000100000000000000000000000000000000000000 + 11 0 11 0000000000010000000000000000000000000000000000000 + 12 0 12 0000000000001000000000000000000000000000000000000 + 13 0 13 0000000000000100000000000000000000000000000000000 + 14 0 14 0000000000000010000000000000000000000000000000000 + 15 0 15 0000000000000001000000000000000000000000000000000 + 16 0 16 0000000000000000100000000000000000000000000000000 + 17 0 17 0000000000000000010000000000000000000000000000000 + 18 0 18 0000000000000000001000000000000000000000000000000 + 19 0 19 0000000000000000000100000000000000000000000000000 + 20 0 20 0000000000000000000010000000000000000000000000000 + 21 0 21 0000000000000000000001000000000000000000000000000 + 22 0 22 0000000000000000000000100000000000000000000000000 + 23 0 23 0000000000000000000000010000000000000000000000000 + 24 0 24 0000000000000000000000001000000000000000000000000 + 25 0 25 0000000000000000000000000100000000000000000000000 + 26 0 26 0000000000000000000000000010000000000000000000000 + 27 0 27 0000000000000000000000000001000000000000000000000 + 28 0 28 0000000000000000000000000000100000000000000000000 + 29 0 29 0000000000000000000000000000010000000000000000000 + 30 0 30 0000000000000000000000000000001000000000000000000 + 31 0 31 0000000000000000000000000000000100000000000000000 + 32 0 32 0000000000000000000000000000000010000000000000000 + 33 0 33 0000000000000000000000000000000001000000000000000 + 34 0 34 0000000000000000000000000000000000100000000000000 + 35 0 35 0000000000000000000000000000000000010000000000000 + 36 0 36 0000000000000000000000000000000000001000000000000 + 37 0 37 0000000000000000000000000000000000000100000000000 + 38 0 38 0000000000000000000000000000000000000010000000000 + 39 0 39 0000000000000000000000000000000000000001000000000 + 40 0 40 0000000000000000000000000000000000000000100000000 + 41 0 41 0000000000000000000000000000000000000000010000000 + 42 0 42 0000000000000000000000000000000000000000001000000 + 43 0 43 0000000000000000000000000000000000000000000100000 + 44 0 44 0000000000000000000000000000000000000000000010000 + 45 0 45 0000000000000000000000000000000000000000000001000 + 46 0 46 0000000000000000000000000000000000000000000000100 + 47 0 47 0000000000000000000000000000000000000000000000010 + 48 0 48 0000000000000000000000000000000000000000000000001 diff --git a/src/regress/include/bitstring/good/64 b/src/regress/include/bitstring/good/64 new file mode 100644 index 000000000..7e9308eab --- /dev/null +++ b/src/regress/include/bitstring/good/64 @@ -0,0 +1,559 @@ +Testing with TEST_LENGTH = 64 + +test _bit_byte, _bit_mask, and bitstr_size + i _bit_byte(i) _bit_mask(i) bitstr_size(i) + 0 0 1 0 + 1 0 2 1 + 2 0 4 1 + 3 0 8 1 + 4 0 16 1 + 5 0 32 1 + 6 0 64 1 + 7 0 128 1 + 8 1 1 1 + 9 1 2 2 + 10 1 4 2 + 11 1 8 2 + 12 1 16 2 + 13 1 32 2 + 14 1 64 2 + 15 1 128 2 + 16 2 1 2 + 17 2 2 3 + 18 2 4 3 + 19 2 8 3 + 20 2 16 3 + 21 2 32 3 + 22 2 64 3 + 23 2 128 3 + 24 3 1 3 + 25 3 2 4 + 26 3 4 4 + 27 3 8 4 + 28 3 16 4 + 29 3 32 4 + 30 3 64 4 + 31 3 128 4 + 32 4 1 4 + 33 4 2 5 + 34 4 4 5 + 35 4 8 5 + 36 4 16 5 + 37 4 32 5 + 38 4 64 5 + 39 4 128 5 + 40 5 1 5 + 41 5 2 6 + 42 5 4 6 + 43 5 8 6 + 44 5 16 6 + 45 5 32 6 + 46 5 64 6 + 47 5 128 6 + 48 6 1 6 + 49 6 2 7 + 50 6 4 7 + 51 6 8 7 + 52 6 16 7 + 53 6 32 7 + 54 6 64 7 + 55 6 128 7 + 56 7 1 7 + 57 7 2 8 + 58 7 4 8 + 59 7 8 8 + 60 7 16 8 + 61 7 32 8 + 62 7 64 8 + 63 7 128 8 + +test bit_alloc, clearbits, bit_ffc, bit_ffs +be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000 +is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000 + +test bit_set +be: 1 0 1001001001001001001001001001001001001001001001001001001001001001 +is: 1 0 1001001001001001001001001001001001001001001001001001001001001001 + +test bit_clear +be: 0 3 0001000001000001000001000001000001000001000001000001000001000001 +is: 0 3 0001000001000001000001000001000001000001000001000001000001000001 + +test bit_test using previous bitstring + i bit_test(i) + 0 0 + 1 0 + 2 0 + 3 8 + 4 0 + 5 0 + 6 0 + 7 0 + 8 0 + 9 2 + 10 0 + 11 0 + 12 0 + 13 0 + 14 0 + 15 128 + 16 0 + 17 0 + 18 0 + 19 0 + 20 0 + 21 32 + 22 0 + 23 0 + 24 0 + 25 0 + 26 0 + 27 8 + 28 0 + 29 0 + 30 0 + 31 0 + 32 0 + 33 2 + 34 0 + 35 0 + 36 0 + 37 0 + 38 0 + 39 128 + 40 0 + 41 0 + 42 0 + 43 0 + 44 0 + 45 32 + 46 0 + 47 0 + 48 0 + 49 0 + 50 0 + 51 8 + 52 0 + 53 0 + 54 0 + 55 0 + 56 0 + 57 2 + 58 0 + 59 0 + 60 0 + 61 0 + 62 0 + 63 128 + +test clearbits +be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000 +is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000 + +test bit_nset and bit_nclear +be: 0 1 0111111111111111111111111111111111111111111111111111111111111110 +is: 0 1 0111111111111111111111111111111111111111111111111111111111111110 +be: 0 1 0100000000000000000000000000000000000000000000000000000000000010 +is: 0 1 0100000000000000000000000000000000000000000000000000000000000010 +be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000 +is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000 +be: 63 0 1111111111111111111111111111111111111111111111111111111111111110 +is: 63 0 1111111111111111111111111111111111111111111111111111111111111110 +be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000 +is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000 + +first 1 bit should move right 1 position each line + 0 -1 0 1111111111111111111111111111111111111111111111111111111111111111 + 1 0 1 0111111111111111111111111111111111111111111111111111111111111111 + 2 0 2 0011111111111111111111111111111111111111111111111111111111111111 + 3 0 3 0001111111111111111111111111111111111111111111111111111111111111 + 4 0 4 0000111111111111111111111111111111111111111111111111111111111111 + 5 0 5 0000011111111111111111111111111111111111111111111111111111111111 + 6 0 6 0000001111111111111111111111111111111111111111111111111111111111 + 7 0 7 0000000111111111111111111111111111111111111111111111111111111111 + 8 0 8 0000000011111111111111111111111111111111111111111111111111111111 + 9 0 9 0000000001111111111111111111111111111111111111111111111111111111 + 10 0 10 0000000000111111111111111111111111111111111111111111111111111111 + 11 0 11 0000000000011111111111111111111111111111111111111111111111111111 + 12 0 12 0000000000001111111111111111111111111111111111111111111111111111 + 13 0 13 0000000000000111111111111111111111111111111111111111111111111111 + 14 0 14 0000000000000011111111111111111111111111111111111111111111111111 + 15 0 15 0000000000000001111111111111111111111111111111111111111111111111 + 16 0 16 0000000000000000111111111111111111111111111111111111111111111111 + 17 0 17 0000000000000000011111111111111111111111111111111111111111111111 + 18 0 18 0000000000000000001111111111111111111111111111111111111111111111 + 19 0 19 0000000000000000000111111111111111111111111111111111111111111111 + 20 0 20 0000000000000000000011111111111111111111111111111111111111111111 + 21 0 21 0000000000000000000001111111111111111111111111111111111111111111 + 22 0 22 0000000000000000000000111111111111111111111111111111111111111111 + 23 0 23 0000000000000000000000011111111111111111111111111111111111111111 + 24 0 24 0000000000000000000000001111111111111111111111111111111111111111 + 25 0 25 0000000000000000000000000111111111111111111111111111111111111111 + 26 0 26 0000000000000000000000000011111111111111111111111111111111111111 + 27 0 27 0000000000000000000000000001111111111111111111111111111111111111 + 28 0 28 0000000000000000000000000000111111111111111111111111111111111111 + 29 0 29 0000000000000000000000000000011111111111111111111111111111111111 + 30 0 30 0000000000000000000000000000001111111111111111111111111111111111 + 31 0 31 0000000000000000000000000000000111111111111111111111111111111111 + 32 0 32 0000000000000000000000000000000011111111111111111111111111111111 + 33 0 33 0000000000000000000000000000000001111111111111111111111111111111 + 34 0 34 0000000000000000000000000000000000111111111111111111111111111111 + 35 0 35 0000000000000000000000000000000000011111111111111111111111111111 + 36 0 36 0000000000000000000000000000000000001111111111111111111111111111 + 37 0 37 0000000000000000000000000000000000000111111111111111111111111111 + 38 0 38 0000000000000000000000000000000000000011111111111111111111111111 + 39 0 39 0000000000000000000000000000000000000001111111111111111111111111 + 40 0 40 0000000000000000000000000000000000000000111111111111111111111111 + 41 0 41 0000000000000000000000000000000000000000011111111111111111111111 + 42 0 42 0000000000000000000000000000000000000000001111111111111111111111 + 43 0 43 0000000000000000000000000000000000000000000111111111111111111111 + 44 0 44 0000000000000000000000000000000000000000000011111111111111111111 + 45 0 45 0000000000000000000000000000000000000000000001111111111111111111 + 46 0 46 0000000000000000000000000000000000000000000000111111111111111111 + 47 0 47 0000000000000000000000000000000000000000000000011111111111111111 + 48 0 48 0000000000000000000000000000000000000000000000001111111111111111 + 49 0 49 0000000000000000000000000000000000000000000000000111111111111111 + 50 0 50 0000000000000000000000000000000000000000000000000011111111111111 + 51 0 51 0000000000000000000000000000000000000000000000000001111111111111 + 52 0 52 0000000000000000000000000000000000000000000000000000111111111111 + 53 0 53 0000000000000000000000000000000000000000000000000000011111111111 + 54 0 54 0000000000000000000000000000000000000000000000000000001111111111 + 55 0 55 0000000000000000000000000000000000000000000000000000000111111111 + 56 0 56 0000000000000000000000000000000000000000000000000000000011111111 + 57 0 57 0000000000000000000000000000000000000000000000000000000001111111 + 58 0 58 0000000000000000000000000000000000000000000000000000000000111111 + 59 0 59 0000000000000000000000000000000000000000000000000000000000011111 + 60 0 60 0000000000000000000000000000000000000000000000000000000000001111 + 61 0 61 0000000000000000000000000000000000000000000000000000000000000111 + 62 0 62 0000000000000000000000000000000000000000000000000000000000000011 + 63 0 63 0000000000000000000000000000000000000000000000000000000000000001 + +first 0 bit should move right 1 position each line + 0 0 -1 0000000000000000000000000000000000000000000000000000000000000000 + 1 1 0 1000000000000000000000000000000000000000000000000000000000000000 + 2 2 0 1100000000000000000000000000000000000000000000000000000000000000 + 3 3 0 1110000000000000000000000000000000000000000000000000000000000000 + 4 4 0 1111000000000000000000000000000000000000000000000000000000000000 + 5 5 0 1111100000000000000000000000000000000000000000000000000000000000 + 6 6 0 1111110000000000000000000000000000000000000000000000000000000000 + 7 7 0 1111111000000000000000000000000000000000000000000000000000000000 + 8 8 0 1111111100000000000000000000000000000000000000000000000000000000 + 9 9 0 1111111110000000000000000000000000000000000000000000000000000000 + 10 10 0 1111111111000000000000000000000000000000000000000000000000000000 + 11 11 0 1111111111100000000000000000000000000000000000000000000000000000 + 12 12 0 1111111111110000000000000000000000000000000000000000000000000000 + 13 13 0 1111111111111000000000000000000000000000000000000000000000000000 + 14 14 0 1111111111111100000000000000000000000000000000000000000000000000 + 15 15 0 1111111111111110000000000000000000000000000000000000000000000000 + 16 16 0 1111111111111111000000000000000000000000000000000000000000000000 + 17 17 0 1111111111111111100000000000000000000000000000000000000000000000 + 18 18 0 1111111111111111110000000000000000000000000000000000000000000000 + 19 19 0 1111111111111111111000000000000000000000000000000000000000000000 + 20 20 0 1111111111111111111100000000000000000000000000000000000000000000 + 21 21 0 1111111111111111111110000000000000000000000000000000000000000000 + 22 22 0 1111111111111111111111000000000000000000000000000000000000000000 + 23 23 0 1111111111111111111111100000000000000000000000000000000000000000 + 24 24 0 1111111111111111111111110000000000000000000000000000000000000000 + 25 25 0 1111111111111111111111111000000000000000000000000000000000000000 + 26 26 0 1111111111111111111111111100000000000000000000000000000000000000 + 27 27 0 1111111111111111111111111110000000000000000000000000000000000000 + 28 28 0 1111111111111111111111111111000000000000000000000000000000000000 + 29 29 0 1111111111111111111111111111100000000000000000000000000000000000 + 30 30 0 1111111111111111111111111111110000000000000000000000000000000000 + 31 31 0 1111111111111111111111111111111000000000000000000000000000000000 + 32 32 0 1111111111111111111111111111111100000000000000000000000000000000 + 33 33 0 1111111111111111111111111111111110000000000000000000000000000000 + 34 34 0 1111111111111111111111111111111111000000000000000000000000000000 + 35 35 0 1111111111111111111111111111111111100000000000000000000000000000 + 36 36 0 1111111111111111111111111111111111110000000000000000000000000000 + 37 37 0 1111111111111111111111111111111111111000000000000000000000000000 + 38 38 0 1111111111111111111111111111111111111100000000000000000000000000 + 39 39 0 1111111111111111111111111111111111111110000000000000000000000000 + 40 40 0 1111111111111111111111111111111111111111000000000000000000000000 + 41 41 0 1111111111111111111111111111111111111111100000000000000000000000 + 42 42 0 1111111111111111111111111111111111111111110000000000000000000000 + 43 43 0 1111111111111111111111111111111111111111111000000000000000000000 + 44 44 0 1111111111111111111111111111111111111111111100000000000000000000 + 45 45 0 1111111111111111111111111111111111111111111110000000000000000000 + 46 46 0 1111111111111111111111111111111111111111111111000000000000000000 + 47 47 0 1111111111111111111111111111111111111111111111100000000000000000 + 48 48 0 1111111111111111111111111111111111111111111111110000000000000000 + 49 49 0 1111111111111111111111111111111111111111111111111000000000000000 + 50 50 0 1111111111111111111111111111111111111111111111111100000000000000 + 51 51 0 1111111111111111111111111111111111111111111111111110000000000000 + 52 52 0 1111111111111111111111111111111111111111111111111111000000000000 + 53 53 0 1111111111111111111111111111111111111111111111111111100000000000 + 54 54 0 1111111111111111111111111111111111111111111111111111110000000000 + 55 55 0 1111111111111111111111111111111111111111111111111111111000000000 + 56 56 0 1111111111111111111111111111111111111111111111111111111100000000 + 57 57 0 1111111111111111111111111111111111111111111111111111111110000000 + 58 58 0 1111111111111111111111111111111111111111111111111111111111000000 + 59 59 0 1111111111111111111111111111111111111111111111111111111111100000 + 60 60 0 1111111111111111111111111111111111111111111111111111111111110000 + 61 61 0 1111111111111111111111111111111111111111111111111111111111111000 + 62 62 0 1111111111111111111111111111111111111111111111111111111111111100 + 63 63 0 1111111111111111111111111111111111111111111111111111111111111110 + +first 0 bit should move left 1 position each line + 0 -1 0 1111111111111111111111111111111111111111111111111111111111111111 + 1 63 0 1111111111111111111111111111111111111111111111111111111111111110 + 2 62 0 1111111111111111111111111111111111111111111111111111111111111100 + 3 61 0 1111111111111111111111111111111111111111111111111111111111111000 + 4 60 0 1111111111111111111111111111111111111111111111111111111111110000 + 5 59 0 1111111111111111111111111111111111111111111111111111111111100000 + 6 58 0 1111111111111111111111111111111111111111111111111111111111000000 + 7 57 0 1111111111111111111111111111111111111111111111111111111110000000 + 8 56 0 1111111111111111111111111111111111111111111111111111111100000000 + 9 55 0 1111111111111111111111111111111111111111111111111111111000000000 + 10 54 0 1111111111111111111111111111111111111111111111111111110000000000 + 11 53 0 1111111111111111111111111111111111111111111111111111100000000000 + 12 52 0 1111111111111111111111111111111111111111111111111111000000000000 + 13 51 0 1111111111111111111111111111111111111111111111111110000000000000 + 14 50 0 1111111111111111111111111111111111111111111111111100000000000000 + 15 49 0 1111111111111111111111111111111111111111111111111000000000000000 + 16 48 0 1111111111111111111111111111111111111111111111110000000000000000 + 17 47 0 1111111111111111111111111111111111111111111111100000000000000000 + 18 46 0 1111111111111111111111111111111111111111111111000000000000000000 + 19 45 0 1111111111111111111111111111111111111111111110000000000000000000 + 20 44 0 1111111111111111111111111111111111111111111100000000000000000000 + 21 43 0 1111111111111111111111111111111111111111111000000000000000000000 + 22 42 0 1111111111111111111111111111111111111111110000000000000000000000 + 23 41 0 1111111111111111111111111111111111111111100000000000000000000000 + 24 40 0 1111111111111111111111111111111111111111000000000000000000000000 + 25 39 0 1111111111111111111111111111111111111110000000000000000000000000 + 26 38 0 1111111111111111111111111111111111111100000000000000000000000000 + 27 37 0 1111111111111111111111111111111111111000000000000000000000000000 + 28 36 0 1111111111111111111111111111111111110000000000000000000000000000 + 29 35 0 1111111111111111111111111111111111100000000000000000000000000000 + 30 34 0 1111111111111111111111111111111111000000000000000000000000000000 + 31 33 0 1111111111111111111111111111111110000000000000000000000000000000 + 32 32 0 1111111111111111111111111111111100000000000000000000000000000000 + 33 31 0 1111111111111111111111111111111000000000000000000000000000000000 + 34 30 0 1111111111111111111111111111110000000000000000000000000000000000 + 35 29 0 1111111111111111111111111111100000000000000000000000000000000000 + 36 28 0 1111111111111111111111111111000000000000000000000000000000000000 + 37 27 0 1111111111111111111111111110000000000000000000000000000000000000 + 38 26 0 1111111111111111111111111100000000000000000000000000000000000000 + 39 25 0 1111111111111111111111111000000000000000000000000000000000000000 + 40 24 0 1111111111111111111111110000000000000000000000000000000000000000 + 41 23 0 1111111111111111111111100000000000000000000000000000000000000000 + 42 22 0 1111111111111111111111000000000000000000000000000000000000000000 + 43 21 0 1111111111111111111110000000000000000000000000000000000000000000 + 44 20 0 1111111111111111111100000000000000000000000000000000000000000000 + 45 19 0 1111111111111111111000000000000000000000000000000000000000000000 + 46 18 0 1111111111111111110000000000000000000000000000000000000000000000 + 47 17 0 1111111111111111100000000000000000000000000000000000000000000000 + 48 16 0 1111111111111111000000000000000000000000000000000000000000000000 + 49 15 0 1111111111111110000000000000000000000000000000000000000000000000 + 50 14 0 1111111111111100000000000000000000000000000000000000000000000000 + 51 13 0 1111111111111000000000000000000000000000000000000000000000000000 + 52 12 0 1111111111110000000000000000000000000000000000000000000000000000 + 53 11 0 1111111111100000000000000000000000000000000000000000000000000000 + 54 10 0 1111111111000000000000000000000000000000000000000000000000000000 + 55 9 0 1111111110000000000000000000000000000000000000000000000000000000 + 56 8 0 1111111100000000000000000000000000000000000000000000000000000000 + 57 7 0 1111111000000000000000000000000000000000000000000000000000000000 + 58 6 0 1111110000000000000000000000000000000000000000000000000000000000 + 59 5 0 1111100000000000000000000000000000000000000000000000000000000000 + 60 4 0 1111000000000000000000000000000000000000000000000000000000000000 + 61 3 0 1110000000000000000000000000000000000000000000000000000000000000 + 62 2 0 1100000000000000000000000000000000000000000000000000000000000000 + 63 1 0 1000000000000000000000000000000000000000000000000000000000000000 + +first 1 bit should move left 1 position each line + 0 0 -1 0000000000000000000000000000000000000000000000000000000000000000 + 1 0 63 0000000000000000000000000000000000000000000000000000000000000001 + 2 0 62 0000000000000000000000000000000000000000000000000000000000000011 + 3 0 61 0000000000000000000000000000000000000000000000000000000000000111 + 4 0 60 0000000000000000000000000000000000000000000000000000000000001111 + 5 0 59 0000000000000000000000000000000000000000000000000000000000011111 + 6 0 58 0000000000000000000000000000000000000000000000000000000000111111 + 7 0 57 0000000000000000000000000000000000000000000000000000000001111111 + 8 0 56 0000000000000000000000000000000000000000000000000000000011111111 + 9 0 55 0000000000000000000000000000000000000000000000000000000111111111 + 10 0 54 0000000000000000000000000000000000000000000000000000001111111111 + 11 0 53 0000000000000000000000000000000000000000000000000000011111111111 + 12 0 52 0000000000000000000000000000000000000000000000000000111111111111 + 13 0 51 0000000000000000000000000000000000000000000000000001111111111111 + 14 0 50 0000000000000000000000000000000000000000000000000011111111111111 + 15 0 49 0000000000000000000000000000000000000000000000000111111111111111 + 16 0 48 0000000000000000000000000000000000000000000000001111111111111111 + 17 0 47 0000000000000000000000000000000000000000000000011111111111111111 + 18 0 46 0000000000000000000000000000000000000000000000111111111111111111 + 19 0 45 0000000000000000000000000000000000000000000001111111111111111111 + 20 0 44 0000000000000000000000000000000000000000000011111111111111111111 + 21 0 43 0000000000000000000000000000000000000000000111111111111111111111 + 22 0 42 0000000000000000000000000000000000000000001111111111111111111111 + 23 0 41 0000000000000000000000000000000000000000011111111111111111111111 + 24 0 40 0000000000000000000000000000000000000000111111111111111111111111 + 25 0 39 0000000000000000000000000000000000000001111111111111111111111111 + 26 0 38 0000000000000000000000000000000000000011111111111111111111111111 + 27 0 37 0000000000000000000000000000000000000111111111111111111111111111 + 28 0 36 0000000000000000000000000000000000001111111111111111111111111111 + 29 0 35 0000000000000000000000000000000000011111111111111111111111111111 + 30 0 34 0000000000000000000000000000000000111111111111111111111111111111 + 31 0 33 0000000000000000000000000000000001111111111111111111111111111111 + 32 0 32 0000000000000000000000000000000011111111111111111111111111111111 + 33 0 31 0000000000000000000000000000000111111111111111111111111111111111 + 34 0 30 0000000000000000000000000000001111111111111111111111111111111111 + 35 0 29 0000000000000000000000000000011111111111111111111111111111111111 + 36 0 28 0000000000000000000000000000111111111111111111111111111111111111 + 37 0 27 0000000000000000000000000001111111111111111111111111111111111111 + 38 0 26 0000000000000000000000000011111111111111111111111111111111111111 + 39 0 25 0000000000000000000000000111111111111111111111111111111111111111 + 40 0 24 0000000000000000000000001111111111111111111111111111111111111111 + 41 0 23 0000000000000000000000011111111111111111111111111111111111111111 + 42 0 22 0000000000000000000000111111111111111111111111111111111111111111 + 43 0 21 0000000000000000000001111111111111111111111111111111111111111111 + 44 0 20 0000000000000000000011111111111111111111111111111111111111111111 + 45 0 19 0000000000000000000111111111111111111111111111111111111111111111 + 46 0 18 0000000000000000001111111111111111111111111111111111111111111111 + 47 0 17 0000000000000000011111111111111111111111111111111111111111111111 + 48 0 16 0000000000000000111111111111111111111111111111111111111111111111 + 49 0 15 0000000000000001111111111111111111111111111111111111111111111111 + 50 0 14 0000000000000011111111111111111111111111111111111111111111111111 + 51 0 13 0000000000000111111111111111111111111111111111111111111111111111 + 52 0 12 0000000000001111111111111111111111111111111111111111111111111111 + 53 0 11 0000000000011111111111111111111111111111111111111111111111111111 + 54 0 10 0000000000111111111111111111111111111111111111111111111111111111 + 55 0 9 0000000001111111111111111111111111111111111111111111111111111111 + 56 0 8 0000000011111111111111111111111111111111111111111111111111111111 + 57 0 7 0000000111111111111111111111111111111111111111111111111111111111 + 58 0 6 0000001111111111111111111111111111111111111111111111111111111111 + 59 0 5 0000011111111111111111111111111111111111111111111111111111111111 + 60 0 4 0000111111111111111111111111111111111111111111111111111111111111 + 61 0 3 0001111111111111111111111111111111111111111111111111111111111111 + 62 0 2 0011111111111111111111111111111111111111111111111111111111111111 + 63 0 1 0111111111111111111111111111111111111111111111111111111111111111 + +0 bit should move right 1 position each line + 0 0 1 0111111111111111111111111111111111111111111111111111111111111111 + 1 1 0 1011111111111111111111111111111111111111111111111111111111111111 + 2 2 0 1101111111111111111111111111111111111111111111111111111111111111 + 3 3 0 1110111111111111111111111111111111111111111111111111111111111111 + 4 4 0 1111011111111111111111111111111111111111111111111111111111111111 + 5 5 0 1111101111111111111111111111111111111111111111111111111111111111 + 6 6 0 1111110111111111111111111111111111111111111111111111111111111111 + 7 7 0 1111111011111111111111111111111111111111111111111111111111111111 + 8 8 0 1111111101111111111111111111111111111111111111111111111111111111 + 9 9 0 1111111110111111111111111111111111111111111111111111111111111111 + 10 10 0 1111111111011111111111111111111111111111111111111111111111111111 + 11 11 0 1111111111101111111111111111111111111111111111111111111111111111 + 12 12 0 1111111111110111111111111111111111111111111111111111111111111111 + 13 13 0 1111111111111011111111111111111111111111111111111111111111111111 + 14 14 0 1111111111111101111111111111111111111111111111111111111111111111 + 15 15 0 1111111111111110111111111111111111111111111111111111111111111111 + 16 16 0 1111111111111111011111111111111111111111111111111111111111111111 + 17 17 0 1111111111111111101111111111111111111111111111111111111111111111 + 18 18 0 1111111111111111110111111111111111111111111111111111111111111111 + 19 19 0 1111111111111111111011111111111111111111111111111111111111111111 + 20 20 0 1111111111111111111101111111111111111111111111111111111111111111 + 21 21 0 1111111111111111111110111111111111111111111111111111111111111111 + 22 22 0 1111111111111111111111011111111111111111111111111111111111111111 + 23 23 0 1111111111111111111111101111111111111111111111111111111111111111 + 24 24 0 1111111111111111111111110111111111111111111111111111111111111111 + 25 25 0 1111111111111111111111111011111111111111111111111111111111111111 + 26 26 0 1111111111111111111111111101111111111111111111111111111111111111 + 27 27 0 1111111111111111111111111110111111111111111111111111111111111111 + 28 28 0 1111111111111111111111111111011111111111111111111111111111111111 + 29 29 0 1111111111111111111111111111101111111111111111111111111111111111 + 30 30 0 1111111111111111111111111111110111111111111111111111111111111111 + 31 31 0 1111111111111111111111111111111011111111111111111111111111111111 + 32 32 0 1111111111111111111111111111111101111111111111111111111111111111 + 33 33 0 1111111111111111111111111111111110111111111111111111111111111111 + 34 34 0 1111111111111111111111111111111111011111111111111111111111111111 + 35 35 0 1111111111111111111111111111111111101111111111111111111111111111 + 36 36 0 1111111111111111111111111111111111110111111111111111111111111111 + 37 37 0 1111111111111111111111111111111111111011111111111111111111111111 + 38 38 0 1111111111111111111111111111111111111101111111111111111111111111 + 39 39 0 1111111111111111111111111111111111111110111111111111111111111111 + 40 40 0 1111111111111111111111111111111111111111011111111111111111111111 + 41 41 0 1111111111111111111111111111111111111111101111111111111111111111 + 42 42 0 1111111111111111111111111111111111111111110111111111111111111111 + 43 43 0 1111111111111111111111111111111111111111111011111111111111111111 + 44 44 0 1111111111111111111111111111111111111111111101111111111111111111 + 45 45 0 1111111111111111111111111111111111111111111110111111111111111111 + 46 46 0 1111111111111111111111111111111111111111111111011111111111111111 + 47 47 0 1111111111111111111111111111111111111111111111101111111111111111 + 48 48 0 1111111111111111111111111111111111111111111111110111111111111111 + 49 49 0 1111111111111111111111111111111111111111111111111011111111111111 + 50 50 0 1111111111111111111111111111111111111111111111111101111111111111 + 51 51 0 1111111111111111111111111111111111111111111111111110111111111111 + 52 52 0 1111111111111111111111111111111111111111111111111111011111111111 + 53 53 0 1111111111111111111111111111111111111111111111111111101111111111 + 54 54 0 1111111111111111111111111111111111111111111111111111110111111111 + 55 55 0 1111111111111111111111111111111111111111111111111111111011111111 + 56 56 0 1111111111111111111111111111111111111111111111111111111101111111 + 57 57 0 1111111111111111111111111111111111111111111111111111111110111111 + 58 58 0 1111111111111111111111111111111111111111111111111111111111011111 + 59 59 0 1111111111111111111111111111111111111111111111111111111111101111 + 60 60 0 1111111111111111111111111111111111111111111111111111111111110111 + 61 61 0 1111111111111111111111111111111111111111111111111111111111111011 + 62 62 0 1111111111111111111111111111111111111111111111111111111111111101 + 63 63 0 1111111111111111111111111111111111111111111111111111111111111110 + +1 bit should move right 1 position each line + 0 1 0 1000000000000000000000000000000000000000000000000000000000000000 + 1 0 1 0100000000000000000000000000000000000000000000000000000000000000 + 2 0 2 0010000000000000000000000000000000000000000000000000000000000000 + 3 0 3 0001000000000000000000000000000000000000000000000000000000000000 + 4 0 4 0000100000000000000000000000000000000000000000000000000000000000 + 5 0 5 0000010000000000000000000000000000000000000000000000000000000000 + 6 0 6 0000001000000000000000000000000000000000000000000000000000000000 + 7 0 7 0000000100000000000000000000000000000000000000000000000000000000 + 8 0 8 0000000010000000000000000000000000000000000000000000000000000000 + 9 0 9 0000000001000000000000000000000000000000000000000000000000000000 + 10 0 10 0000000000100000000000000000000000000000000000000000000000000000 + 11 0 11 0000000000010000000000000000000000000000000000000000000000000000 + 12 0 12 0000000000001000000000000000000000000000000000000000000000000000 + 13 0 13 0000000000000100000000000000000000000000000000000000000000000000 + 14 0 14 0000000000000010000000000000000000000000000000000000000000000000 + 15 0 15 0000000000000001000000000000000000000000000000000000000000000000 + 16 0 16 0000000000000000100000000000000000000000000000000000000000000000 + 17 0 17 0000000000000000010000000000000000000000000000000000000000000000 + 18 0 18 0000000000000000001000000000000000000000000000000000000000000000 + 19 0 19 0000000000000000000100000000000000000000000000000000000000000000 + 20 0 20 0000000000000000000010000000000000000000000000000000000000000000 + 21 0 21 0000000000000000000001000000000000000000000000000000000000000000 + 22 0 22 0000000000000000000000100000000000000000000000000000000000000000 + 23 0 23 0000000000000000000000010000000000000000000000000000000000000000 + 24 0 24 0000000000000000000000001000000000000000000000000000000000000000 + 25 0 25 0000000000000000000000000100000000000000000000000000000000000000 + 26 0 26 0000000000000000000000000010000000000000000000000000000000000000 + 27 0 27 0000000000000000000000000001000000000000000000000000000000000000 + 28 0 28 0000000000000000000000000000100000000000000000000000000000000000 + 29 0 29 0000000000000000000000000000010000000000000000000000000000000000 + 30 0 30 0000000000000000000000000000001000000000000000000000000000000000 + 31 0 31 0000000000000000000000000000000100000000000000000000000000000000 + 32 0 32 0000000000000000000000000000000010000000000000000000000000000000 + 33 0 33 0000000000000000000000000000000001000000000000000000000000000000 + 34 0 34 0000000000000000000000000000000000100000000000000000000000000000 + 35 0 35 0000000000000000000000000000000000010000000000000000000000000000 + 36 0 36 0000000000000000000000000000000000001000000000000000000000000000 + 37 0 37 0000000000000000000000000000000000000100000000000000000000000000 + 38 0 38 0000000000000000000000000000000000000010000000000000000000000000 + 39 0 39 0000000000000000000000000000000000000001000000000000000000000000 + 40 0 40 0000000000000000000000000000000000000000100000000000000000000000 + 41 0 41 0000000000000000000000000000000000000000010000000000000000000000 + 42 0 42 0000000000000000000000000000000000000000001000000000000000000000 + 43 0 43 0000000000000000000000000000000000000000000100000000000000000000 + 44 0 44 0000000000000000000000000000000000000000000010000000000000000000 + 45 0 45 0000000000000000000000000000000000000000000001000000000000000000 + 46 0 46 0000000000000000000000000000000000000000000000100000000000000000 + 47 0 47 0000000000000000000000000000000000000000000000010000000000000000 + 48 0 48 0000000000000000000000000000000000000000000000001000000000000000 + 49 0 49 0000000000000000000000000000000000000000000000000100000000000000 + 50 0 50 0000000000000000000000000000000000000000000000000010000000000000 + 51 0 51 0000000000000000000000000000000000000000000000000001000000000000 + 52 0 52 0000000000000000000000000000000000000000000000000000100000000000 + 53 0 53 0000000000000000000000000000000000000000000000000000010000000000 + 54 0 54 0000000000000000000000000000000000000000000000000000001000000000 + 55 0 55 0000000000000000000000000000000000000000000000000000000100000000 + 56 0 56 0000000000000000000000000000000000000000000000000000000010000000 + 57 0 57 0000000000000000000000000000000000000000000000000000000001000000 + 58 0 58 0000000000000000000000000000000000000000000000000000000000100000 + 59 0 59 0000000000000000000000000000000000000000000000000000000000010000 + 60 0 60 0000000000000000000000000000000000000000000000000000000000001000 + 61 0 61 0000000000000000000000000000000000000000000000000000000000000100 + 62 0 62 0000000000000000000000000000000000000000000000000000000000000010 + 63 0 63 0000000000000000000000000000000000000000000000000000000000000001 diff --git a/src/regress/include/bitstring/good/67 b/src/regress/include/bitstring/good/67 new file mode 100644 index 000000000..e5decc3b4 --- /dev/null +++ b/src/regress/include/bitstring/good/67 @@ -0,0 +1,583 @@ +Testing with TEST_LENGTH = 67 + +test _bit_byte, _bit_mask, and bitstr_size + i _bit_byte(i) _bit_mask(i) bitstr_size(i) + 0 0 1 0 + 1 0 2 1 + 2 0 4 1 + 3 0 8 1 + 4 0 16 1 + 5 0 32 1 + 6 0 64 1 + 7 0 128 1 + 8 1 1 1 + 9 1 2 2 + 10 1 4 2 + 11 1 8 2 + 12 1 16 2 + 13 1 32 2 + 14 1 64 2 + 15 1 128 2 + 16 2 1 2 + 17 2 2 3 + 18 2 4 3 + 19 2 8 3 + 20 2 16 3 + 21 2 32 3 + 22 2 64 3 + 23 2 128 3 + 24 3 1 3 + 25 3 2 4 + 26 3 4 4 + 27 3 8 4 + 28 3 16 4 + 29 3 32 4 + 30 3 64 4 + 31 3 128 4 + 32 4 1 4 + 33 4 2 5 + 34 4 4 5 + 35 4 8 5 + 36 4 16 5 + 37 4 32 5 + 38 4 64 5 + 39 4 128 5 + 40 5 1 5 + 41 5 2 6 + 42 5 4 6 + 43 5 8 6 + 44 5 16 6 + 45 5 32 6 + 46 5 64 6 + 47 5 128 6 + 48 6 1 6 + 49 6 2 7 + 50 6 4 7 + 51 6 8 7 + 52 6 16 7 + 53 6 32 7 + 54 6 64 7 + 55 6 128 7 + 56 7 1 7 + 57 7 2 8 + 58 7 4 8 + 59 7 8 8 + 60 7 16 8 + 61 7 32 8 + 62 7 64 8 + 63 7 128 8 + 64 8 1 8 + 65 8 2 9 + 66 8 4 9 + +test bit_alloc, clearbits, bit_ffc, bit_ffs +be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000 +is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000 + +test bit_set +be: 1 0 1001001001001001001001001001001001001001001001001001001001001001001 +is: 1 0 1001001001001001001001001001001001001001001001001001001001001001001 + +test bit_clear +be: 0 3 0001000001000001000001000001000001000001000001000001000001000001000 +is: 0 3 0001000001000001000001000001000001000001000001000001000001000001000 + +test bit_test using previous bitstring + i bit_test(i) + 0 0 + 1 0 + 2 0 + 3 8 + 4 0 + 5 0 + 6 0 + 7 0 + 8 0 + 9 2 + 10 0 + 11 0 + 12 0 + 13 0 + 14 0 + 15 128 + 16 0 + 17 0 + 18 0 + 19 0 + 20 0 + 21 32 + 22 0 + 23 0 + 24 0 + 25 0 + 26 0 + 27 8 + 28 0 + 29 0 + 30 0 + 31 0 + 32 0 + 33 2 + 34 0 + 35 0 + 36 0 + 37 0 + 38 0 + 39 128 + 40 0 + 41 0 + 42 0 + 43 0 + 44 0 + 45 32 + 46 0 + 47 0 + 48 0 + 49 0 + 50 0 + 51 8 + 52 0 + 53 0 + 54 0 + 55 0 + 56 0 + 57 2 + 58 0 + 59 0 + 60 0 + 61 0 + 62 0 + 63 128 + 64 0 + 65 0 + 66 0 + +test clearbits +be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000 +is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000 + +test bit_nset and bit_nclear +be: 0 1 0111111111111111111111111111111111111111111111111111111111111111110 +is: 0 1 0111111111111111111111111111111111111111111111111111111111111111110 +be: 0 1 0100000000000000000000000000000000000000000000000000000000000000010 +is: 0 1 0100000000000000000000000000000000000000000000000000000000000000010 +be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000 +is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000 +be: 66 0 1111111111111111111111111111111111111111111111111111111111111111110 +is: 66 0 1111111111111111111111111111111111111111111111111111111111111111110 +be: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000 +is: 0 -1 0000000000000000000000000000000000000000000000000000000000000000000 + +first 1 bit should move right 1 position each line + 0 -1 0 1111111111111111111111111111111111111111111111111111111111111111111 + 1 0 1 0111111111111111111111111111111111111111111111111111111111111111111 + 2 0 2 0011111111111111111111111111111111111111111111111111111111111111111 + 3 0 3 0001111111111111111111111111111111111111111111111111111111111111111 + 4 0 4 0000111111111111111111111111111111111111111111111111111111111111111 + 5 0 5 0000011111111111111111111111111111111111111111111111111111111111111 + 6 0 6 0000001111111111111111111111111111111111111111111111111111111111111 + 7 0 7 0000000111111111111111111111111111111111111111111111111111111111111 + 8 0 8 0000000011111111111111111111111111111111111111111111111111111111111 + 9 0 9 0000000001111111111111111111111111111111111111111111111111111111111 + 10 0 10 0000000000111111111111111111111111111111111111111111111111111111111 + 11 0 11 0000000000011111111111111111111111111111111111111111111111111111111 + 12 0 12 0000000000001111111111111111111111111111111111111111111111111111111 + 13 0 13 0000000000000111111111111111111111111111111111111111111111111111111 + 14 0 14 0000000000000011111111111111111111111111111111111111111111111111111 + 15 0 15 0000000000000001111111111111111111111111111111111111111111111111111 + 16 0 16 0000000000000000111111111111111111111111111111111111111111111111111 + 17 0 17 0000000000000000011111111111111111111111111111111111111111111111111 + 18 0 18 0000000000000000001111111111111111111111111111111111111111111111111 + 19 0 19 0000000000000000000111111111111111111111111111111111111111111111111 + 20 0 20 0000000000000000000011111111111111111111111111111111111111111111111 + 21 0 21 0000000000000000000001111111111111111111111111111111111111111111111 + 22 0 22 0000000000000000000000111111111111111111111111111111111111111111111 + 23 0 23 0000000000000000000000011111111111111111111111111111111111111111111 + 24 0 24 0000000000000000000000001111111111111111111111111111111111111111111 + 25 0 25 0000000000000000000000000111111111111111111111111111111111111111111 + 26 0 26 0000000000000000000000000011111111111111111111111111111111111111111 + 27 0 27 0000000000000000000000000001111111111111111111111111111111111111111 + 28 0 28 0000000000000000000000000000111111111111111111111111111111111111111 + 29 0 29 0000000000000000000000000000011111111111111111111111111111111111111 + 30 0 30 0000000000000000000000000000001111111111111111111111111111111111111 + 31 0 31 0000000000000000000000000000000111111111111111111111111111111111111 + 32 0 32 0000000000000000000000000000000011111111111111111111111111111111111 + 33 0 33 0000000000000000000000000000000001111111111111111111111111111111111 + 34 0 34 0000000000000000000000000000000000111111111111111111111111111111111 + 35 0 35 0000000000000000000000000000000000011111111111111111111111111111111 + 36 0 36 0000000000000000000000000000000000001111111111111111111111111111111 + 37 0 37 0000000000000000000000000000000000000111111111111111111111111111111 + 38 0 38 0000000000000000000000000000000000000011111111111111111111111111111 + 39 0 39 0000000000000000000000000000000000000001111111111111111111111111111 + 40 0 40 0000000000000000000000000000000000000000111111111111111111111111111 + 41 0 41 0000000000000000000000000000000000000000011111111111111111111111111 + 42 0 42 0000000000000000000000000000000000000000001111111111111111111111111 + 43 0 43 0000000000000000000000000000000000000000000111111111111111111111111 + 44 0 44 0000000000000000000000000000000000000000000011111111111111111111111 + 45 0 45 0000000000000000000000000000000000000000000001111111111111111111111 + 46 0 46 0000000000000000000000000000000000000000000000111111111111111111111 + 47 0 47 0000000000000000000000000000000000000000000000011111111111111111111 + 48 0 48 0000000000000000000000000000000000000000000000001111111111111111111 + 49 0 49 0000000000000000000000000000000000000000000000000111111111111111111 + 50 0 50 0000000000000000000000000000000000000000000000000011111111111111111 + 51 0 51 0000000000000000000000000000000000000000000000000001111111111111111 + 52 0 52 0000000000000000000000000000000000000000000000000000111111111111111 + 53 0 53 0000000000000000000000000000000000000000000000000000011111111111111 + 54 0 54 0000000000000000000000000000000000000000000000000000001111111111111 + 55 0 55 0000000000000000000000000000000000000000000000000000000111111111111 + 56 0 56 0000000000000000000000000000000000000000000000000000000011111111111 + 57 0 57 0000000000000000000000000000000000000000000000000000000001111111111 + 58 0 58 0000000000000000000000000000000000000000000000000000000000111111111 + 59 0 59 0000000000000000000000000000000000000000000000000000000000011111111 + 60 0 60 0000000000000000000000000000000000000000000000000000000000001111111 + 61 0 61 0000000000000000000000000000000000000000000000000000000000000111111 + 62 0 62 0000000000000000000000000000000000000000000000000000000000000011111 + 63 0 63 0000000000000000000000000000000000000000000000000000000000000001111 + 64 0 64 0000000000000000000000000000000000000000000000000000000000000000111 + 65 0 65 0000000000000000000000000000000000000000000000000000000000000000011 + 66 0 66 0000000000000000000000000000000000000000000000000000000000000000001 + +first 0 bit should move right 1 position each line + 0 0 -1 0000000000000000000000000000000000000000000000000000000000000000000 + 1 1 0 1000000000000000000000000000000000000000000000000000000000000000000 + 2 2 0 1100000000000000000000000000000000000000000000000000000000000000000 + 3 3 0 1110000000000000000000000000000000000000000000000000000000000000000 + 4 4 0 1111000000000000000000000000000000000000000000000000000000000000000 + 5 5 0 1111100000000000000000000000000000000000000000000000000000000000000 + 6 6 0 1111110000000000000000000000000000000000000000000000000000000000000 + 7 7 0 1111111000000000000000000000000000000000000000000000000000000000000 + 8 8 0 1111111100000000000000000000000000000000000000000000000000000000000 + 9 9 0 1111111110000000000000000000000000000000000000000000000000000000000 + 10 10 0 1111111111000000000000000000000000000000000000000000000000000000000 + 11 11 0 1111111111100000000000000000000000000000000000000000000000000000000 + 12 12 0 1111111111110000000000000000000000000000000000000000000000000000000 + 13 13 0 1111111111111000000000000000000000000000000000000000000000000000000 + 14 14 0 1111111111111100000000000000000000000000000000000000000000000000000 + 15 15 0 1111111111111110000000000000000000000000000000000000000000000000000 + 16 16 0 1111111111111111000000000000000000000000000000000000000000000000000 + 17 17 0 1111111111111111100000000000000000000000000000000000000000000000000 + 18 18 0 1111111111111111110000000000000000000000000000000000000000000000000 + 19 19 0 1111111111111111111000000000000000000000000000000000000000000000000 + 20 20 0 1111111111111111111100000000000000000000000000000000000000000000000 + 21 21 0 1111111111111111111110000000000000000000000000000000000000000000000 + 22 22 0 1111111111111111111111000000000000000000000000000000000000000000000 + 23 23 0 1111111111111111111111100000000000000000000000000000000000000000000 + 24 24 0 1111111111111111111111110000000000000000000000000000000000000000000 + 25 25 0 1111111111111111111111111000000000000000000000000000000000000000000 + 26 26 0 1111111111111111111111111100000000000000000000000000000000000000000 + 27 27 0 1111111111111111111111111110000000000000000000000000000000000000000 + 28 28 0 1111111111111111111111111111000000000000000000000000000000000000000 + 29 29 0 1111111111111111111111111111100000000000000000000000000000000000000 + 30 30 0 1111111111111111111111111111110000000000000000000000000000000000000 + 31 31 0 1111111111111111111111111111111000000000000000000000000000000000000 + 32 32 0 1111111111111111111111111111111100000000000000000000000000000000000 + 33 33 0 1111111111111111111111111111111110000000000000000000000000000000000 + 34 34 0 1111111111111111111111111111111111000000000000000000000000000000000 + 35 35 0 1111111111111111111111111111111111100000000000000000000000000000000 + 36 36 0 1111111111111111111111111111111111110000000000000000000000000000000 + 37 37 0 1111111111111111111111111111111111111000000000000000000000000000000 + 38 38 0 1111111111111111111111111111111111111100000000000000000000000000000 + 39 39 0 1111111111111111111111111111111111111110000000000000000000000000000 + 40 40 0 1111111111111111111111111111111111111111000000000000000000000000000 + 41 41 0 1111111111111111111111111111111111111111100000000000000000000000000 + 42 42 0 1111111111111111111111111111111111111111110000000000000000000000000 + 43 43 0 1111111111111111111111111111111111111111111000000000000000000000000 + 44 44 0 1111111111111111111111111111111111111111111100000000000000000000000 + 45 45 0 1111111111111111111111111111111111111111111110000000000000000000000 + 46 46 0 1111111111111111111111111111111111111111111111000000000000000000000 + 47 47 0 1111111111111111111111111111111111111111111111100000000000000000000 + 48 48 0 1111111111111111111111111111111111111111111111110000000000000000000 + 49 49 0 1111111111111111111111111111111111111111111111111000000000000000000 + 50 50 0 1111111111111111111111111111111111111111111111111100000000000000000 + 51 51 0 1111111111111111111111111111111111111111111111111110000000000000000 + 52 52 0 1111111111111111111111111111111111111111111111111111000000000000000 + 53 53 0 1111111111111111111111111111111111111111111111111111100000000000000 + 54 54 0 1111111111111111111111111111111111111111111111111111110000000000000 + 55 55 0 1111111111111111111111111111111111111111111111111111111000000000000 + 56 56 0 1111111111111111111111111111111111111111111111111111111100000000000 + 57 57 0 1111111111111111111111111111111111111111111111111111111110000000000 + 58 58 0 1111111111111111111111111111111111111111111111111111111111000000000 + 59 59 0 1111111111111111111111111111111111111111111111111111111111100000000 + 60 60 0 1111111111111111111111111111111111111111111111111111111111110000000 + 61 61 0 1111111111111111111111111111111111111111111111111111111111111000000 + 62 62 0 1111111111111111111111111111111111111111111111111111111111111100000 + 63 63 0 1111111111111111111111111111111111111111111111111111111111111110000 + 64 64 0 1111111111111111111111111111111111111111111111111111111111111111000 + 65 65 0 1111111111111111111111111111111111111111111111111111111111111111100 + 66 66 0 1111111111111111111111111111111111111111111111111111111111111111110 + +first 0 bit should move left 1 position each line + 0 -1 0 1111111111111111111111111111111111111111111111111111111111111111111 + 1 66 0 1111111111111111111111111111111111111111111111111111111111111111110 + 2 65 0 1111111111111111111111111111111111111111111111111111111111111111100 + 3 64 0 1111111111111111111111111111111111111111111111111111111111111111000 + 4 63 0 1111111111111111111111111111111111111111111111111111111111111110000 + 5 62 0 1111111111111111111111111111111111111111111111111111111111111100000 + 6 61 0 1111111111111111111111111111111111111111111111111111111111111000000 + 7 60 0 1111111111111111111111111111111111111111111111111111111111110000000 + 8 59 0 1111111111111111111111111111111111111111111111111111111111100000000 + 9 58 0 1111111111111111111111111111111111111111111111111111111111000000000 + 10 57 0 1111111111111111111111111111111111111111111111111111111110000000000 + 11 56 0 1111111111111111111111111111111111111111111111111111111100000000000 + 12 55 0 1111111111111111111111111111111111111111111111111111111000000000000 + 13 54 0 1111111111111111111111111111111111111111111111111111110000000000000 + 14 53 0 1111111111111111111111111111111111111111111111111111100000000000000 + 15 52 0 1111111111111111111111111111111111111111111111111111000000000000000 + 16 51 0 1111111111111111111111111111111111111111111111111110000000000000000 + 17 50 0 1111111111111111111111111111111111111111111111111100000000000000000 + 18 49 0 1111111111111111111111111111111111111111111111111000000000000000000 + 19 48 0 1111111111111111111111111111111111111111111111110000000000000000000 + 20 47 0 1111111111111111111111111111111111111111111111100000000000000000000 + 21 46 0 1111111111111111111111111111111111111111111111000000000000000000000 + 22 45 0 1111111111111111111111111111111111111111111110000000000000000000000 + 23 44 0 1111111111111111111111111111111111111111111100000000000000000000000 + 24 43 0 1111111111111111111111111111111111111111111000000000000000000000000 + 25 42 0 1111111111111111111111111111111111111111110000000000000000000000000 + 26 41 0 1111111111111111111111111111111111111111100000000000000000000000000 + 27 40 0 1111111111111111111111111111111111111111000000000000000000000000000 + 28 39 0 1111111111111111111111111111111111111110000000000000000000000000000 + 29 38 0 1111111111111111111111111111111111111100000000000000000000000000000 + 30 37 0 1111111111111111111111111111111111111000000000000000000000000000000 + 31 36 0 1111111111111111111111111111111111110000000000000000000000000000000 + 32 35 0 1111111111111111111111111111111111100000000000000000000000000000000 + 33 34 0 1111111111111111111111111111111111000000000000000000000000000000000 + 34 33 0 1111111111111111111111111111111110000000000000000000000000000000000 + 35 32 0 1111111111111111111111111111111100000000000000000000000000000000000 + 36 31 0 1111111111111111111111111111111000000000000000000000000000000000000 + 37 30 0 1111111111111111111111111111110000000000000000000000000000000000000 + 38 29 0 1111111111111111111111111111100000000000000000000000000000000000000 + 39 28 0 1111111111111111111111111111000000000000000000000000000000000000000 + 40 27 0 1111111111111111111111111110000000000000000000000000000000000000000 + 41 26 0 1111111111111111111111111100000000000000000000000000000000000000000 + 42 25 0 1111111111111111111111111000000000000000000000000000000000000000000 + 43 24 0 1111111111111111111111110000000000000000000000000000000000000000000 + 44 23 0 1111111111111111111111100000000000000000000000000000000000000000000 + 45 22 0 1111111111111111111111000000000000000000000000000000000000000000000 + 46 21 0 1111111111111111111110000000000000000000000000000000000000000000000 + 47 20 0 1111111111111111111100000000000000000000000000000000000000000000000 + 48 19 0 1111111111111111111000000000000000000000000000000000000000000000000 + 49 18 0 1111111111111111110000000000000000000000000000000000000000000000000 + 50 17 0 1111111111111111100000000000000000000000000000000000000000000000000 + 51 16 0 1111111111111111000000000000000000000000000000000000000000000000000 + 52 15 0 1111111111111110000000000000000000000000000000000000000000000000000 + 53 14 0 1111111111111100000000000000000000000000000000000000000000000000000 + 54 13 0 1111111111111000000000000000000000000000000000000000000000000000000 + 55 12 0 1111111111110000000000000000000000000000000000000000000000000000000 + 56 11 0 1111111111100000000000000000000000000000000000000000000000000000000 + 57 10 0 1111111111000000000000000000000000000000000000000000000000000000000 + 58 9 0 1111111110000000000000000000000000000000000000000000000000000000000 + 59 8 0 1111111100000000000000000000000000000000000000000000000000000000000 + 60 7 0 1111111000000000000000000000000000000000000000000000000000000000000 + 61 6 0 1111110000000000000000000000000000000000000000000000000000000000000 + 62 5 0 1111100000000000000000000000000000000000000000000000000000000000000 + 63 4 0 1111000000000000000000000000000000000000000000000000000000000000000 + 64 3 0 1110000000000000000000000000000000000000000000000000000000000000000 + 65 2 0 1100000000000000000000000000000000000000000000000000000000000000000 + 66 1 0 1000000000000000000000000000000000000000000000000000000000000000000 + +first 1 bit should move left 1 position each line + 0 0 -1 0000000000000000000000000000000000000000000000000000000000000000000 + 1 0 66 0000000000000000000000000000000000000000000000000000000000000000001 + 2 0 65 0000000000000000000000000000000000000000000000000000000000000000011 + 3 0 64 0000000000000000000000000000000000000000000000000000000000000000111 + 4 0 63 0000000000000000000000000000000000000000000000000000000000000001111 + 5 0 62 0000000000000000000000000000000000000000000000000000000000000011111 + 6 0 61 0000000000000000000000000000000000000000000000000000000000000111111 + 7 0 60 0000000000000000000000000000000000000000000000000000000000001111111 + 8 0 59 0000000000000000000000000000000000000000000000000000000000011111111 + 9 0 58 0000000000000000000000000000000000000000000000000000000000111111111 + 10 0 57 0000000000000000000000000000000000000000000000000000000001111111111 + 11 0 56 0000000000000000000000000000000000000000000000000000000011111111111 + 12 0 55 0000000000000000000000000000000000000000000000000000000111111111111 + 13 0 54 0000000000000000000000000000000000000000000000000000001111111111111 + 14 0 53 0000000000000000000000000000000000000000000000000000011111111111111 + 15 0 52 0000000000000000000000000000000000000000000000000000111111111111111 + 16 0 51 0000000000000000000000000000000000000000000000000001111111111111111 + 17 0 50 0000000000000000000000000000000000000000000000000011111111111111111 + 18 0 49 0000000000000000000000000000000000000000000000000111111111111111111 + 19 0 48 0000000000000000000000000000000000000000000000001111111111111111111 + 20 0 47 0000000000000000000000000000000000000000000000011111111111111111111 + 21 0 46 0000000000000000000000000000000000000000000000111111111111111111111 + 22 0 45 0000000000000000000000000000000000000000000001111111111111111111111 + 23 0 44 0000000000000000000000000000000000000000000011111111111111111111111 + 24 0 43 0000000000000000000000000000000000000000000111111111111111111111111 + 25 0 42 0000000000000000000000000000000000000000001111111111111111111111111 + 26 0 41 0000000000000000000000000000000000000000011111111111111111111111111 + 27 0 40 0000000000000000000000000000000000000000111111111111111111111111111 + 28 0 39 0000000000000000000000000000000000000001111111111111111111111111111 + 29 0 38 0000000000000000000000000000000000000011111111111111111111111111111 + 30 0 37 0000000000000000000000000000000000000111111111111111111111111111111 + 31 0 36 0000000000000000000000000000000000001111111111111111111111111111111 + 32 0 35 0000000000000000000000000000000000011111111111111111111111111111111 + 33 0 34 0000000000000000000000000000000000111111111111111111111111111111111 + 34 0 33 0000000000000000000000000000000001111111111111111111111111111111111 + 35 0 32 0000000000000000000000000000000011111111111111111111111111111111111 + 36 0 31 0000000000000000000000000000000111111111111111111111111111111111111 + 37 0 30 0000000000000000000000000000001111111111111111111111111111111111111 + 38 0 29 0000000000000000000000000000011111111111111111111111111111111111111 + 39 0 28 0000000000000000000000000000111111111111111111111111111111111111111 + 40 0 27 0000000000000000000000000001111111111111111111111111111111111111111 + 41 0 26 0000000000000000000000000011111111111111111111111111111111111111111 + 42 0 25 0000000000000000000000000111111111111111111111111111111111111111111 + 43 0 24 0000000000000000000000001111111111111111111111111111111111111111111 + 44 0 23 0000000000000000000000011111111111111111111111111111111111111111111 + 45 0 22 0000000000000000000000111111111111111111111111111111111111111111111 + 46 0 21 0000000000000000000001111111111111111111111111111111111111111111111 + 47 0 20 0000000000000000000011111111111111111111111111111111111111111111111 + 48 0 19 0000000000000000000111111111111111111111111111111111111111111111111 + 49 0 18 0000000000000000001111111111111111111111111111111111111111111111111 + 50 0 17 0000000000000000011111111111111111111111111111111111111111111111111 + 51 0 16 0000000000000000111111111111111111111111111111111111111111111111111 + 52 0 15 0000000000000001111111111111111111111111111111111111111111111111111 + 53 0 14 0000000000000011111111111111111111111111111111111111111111111111111 + 54 0 13 0000000000000111111111111111111111111111111111111111111111111111111 + 55 0 12 0000000000001111111111111111111111111111111111111111111111111111111 + 56 0 11 0000000000011111111111111111111111111111111111111111111111111111111 + 57 0 10 0000000000111111111111111111111111111111111111111111111111111111111 + 58 0 9 0000000001111111111111111111111111111111111111111111111111111111111 + 59 0 8 0000000011111111111111111111111111111111111111111111111111111111111 + 60 0 7 0000000111111111111111111111111111111111111111111111111111111111111 + 61 0 6 0000001111111111111111111111111111111111111111111111111111111111111 + 62 0 5 0000011111111111111111111111111111111111111111111111111111111111111 + 63 0 4 0000111111111111111111111111111111111111111111111111111111111111111 + 64 0 3 0001111111111111111111111111111111111111111111111111111111111111111 + 65 0 2 0011111111111111111111111111111111111111111111111111111111111111111 + 66 0 1 0111111111111111111111111111111111111111111111111111111111111111111 + +0 bit should move right 1 position each line + 0 0 1 0111111111111111111111111111111111111111111111111111111111111111111 + 1 1 0 1011111111111111111111111111111111111111111111111111111111111111111 + 2 2 0 1101111111111111111111111111111111111111111111111111111111111111111 + 3 3 0 1110111111111111111111111111111111111111111111111111111111111111111 + 4 4 0 1111011111111111111111111111111111111111111111111111111111111111111 + 5 5 0 1111101111111111111111111111111111111111111111111111111111111111111 + 6 6 0 1111110111111111111111111111111111111111111111111111111111111111111 + 7 7 0 1111111011111111111111111111111111111111111111111111111111111111111 + 8 8 0 1111111101111111111111111111111111111111111111111111111111111111111 + 9 9 0 1111111110111111111111111111111111111111111111111111111111111111111 + 10 10 0 1111111111011111111111111111111111111111111111111111111111111111111 + 11 11 0 1111111111101111111111111111111111111111111111111111111111111111111 + 12 12 0 1111111111110111111111111111111111111111111111111111111111111111111 + 13 13 0 1111111111111011111111111111111111111111111111111111111111111111111 + 14 14 0 1111111111111101111111111111111111111111111111111111111111111111111 + 15 15 0 1111111111111110111111111111111111111111111111111111111111111111111 + 16 16 0 1111111111111111011111111111111111111111111111111111111111111111111 + 17 17 0 1111111111111111101111111111111111111111111111111111111111111111111 + 18 18 0 1111111111111111110111111111111111111111111111111111111111111111111 + 19 19 0 1111111111111111111011111111111111111111111111111111111111111111111 + 20 20 0 1111111111111111111101111111111111111111111111111111111111111111111 + 21 21 0 1111111111111111111110111111111111111111111111111111111111111111111 + 22 22 0 1111111111111111111111011111111111111111111111111111111111111111111 + 23 23 0 1111111111111111111111101111111111111111111111111111111111111111111 + 24 24 0 1111111111111111111111110111111111111111111111111111111111111111111 + 25 25 0 1111111111111111111111111011111111111111111111111111111111111111111 + 26 26 0 1111111111111111111111111101111111111111111111111111111111111111111 + 27 27 0 1111111111111111111111111110111111111111111111111111111111111111111 + 28 28 0 1111111111111111111111111111011111111111111111111111111111111111111 + 29 29 0 1111111111111111111111111111101111111111111111111111111111111111111 + 30 30 0 1111111111111111111111111111110111111111111111111111111111111111111 + 31 31 0 1111111111111111111111111111111011111111111111111111111111111111111 + 32 32 0 1111111111111111111111111111111101111111111111111111111111111111111 + 33 33 0 1111111111111111111111111111111110111111111111111111111111111111111 + 34 34 0 1111111111111111111111111111111111011111111111111111111111111111111 + 35 35 0 1111111111111111111111111111111111101111111111111111111111111111111 + 36 36 0 1111111111111111111111111111111111110111111111111111111111111111111 + 37 37 0 1111111111111111111111111111111111111011111111111111111111111111111 + 38 38 0 1111111111111111111111111111111111111101111111111111111111111111111 + 39 39 0 1111111111111111111111111111111111111110111111111111111111111111111 + 40 40 0 1111111111111111111111111111111111111111011111111111111111111111111 + 41 41 0 1111111111111111111111111111111111111111101111111111111111111111111 + 42 42 0 1111111111111111111111111111111111111111110111111111111111111111111 + 43 43 0 1111111111111111111111111111111111111111111011111111111111111111111 + 44 44 0 1111111111111111111111111111111111111111111101111111111111111111111 + 45 45 0 1111111111111111111111111111111111111111111110111111111111111111111 + 46 46 0 1111111111111111111111111111111111111111111111011111111111111111111 + 47 47 0 1111111111111111111111111111111111111111111111101111111111111111111 + 48 48 0 1111111111111111111111111111111111111111111111110111111111111111111 + 49 49 0 1111111111111111111111111111111111111111111111111011111111111111111 + 50 50 0 1111111111111111111111111111111111111111111111111101111111111111111 + 51 51 0 1111111111111111111111111111111111111111111111111110111111111111111 + 52 52 0 1111111111111111111111111111111111111111111111111111011111111111111 + 53 53 0 1111111111111111111111111111111111111111111111111111101111111111111 + 54 54 0 1111111111111111111111111111111111111111111111111111110111111111111 + 55 55 0 1111111111111111111111111111111111111111111111111111111011111111111 + 56 56 0 1111111111111111111111111111111111111111111111111111111101111111111 + 57 57 0 1111111111111111111111111111111111111111111111111111111110111111111 + 58 58 0 1111111111111111111111111111111111111111111111111111111111011111111 + 59 59 0 1111111111111111111111111111111111111111111111111111111111101111111 + 60 60 0 1111111111111111111111111111111111111111111111111111111111110111111 + 61 61 0 1111111111111111111111111111111111111111111111111111111111111011111 + 62 62 0 1111111111111111111111111111111111111111111111111111111111111101111 + 63 63 0 1111111111111111111111111111111111111111111111111111111111111110111 + 64 64 0 1111111111111111111111111111111111111111111111111111111111111111011 + 65 65 0 1111111111111111111111111111111111111111111111111111111111111111101 + 66 66 0 1111111111111111111111111111111111111111111111111111111111111111110 + +1 bit should move right 1 position each line + 0 1 0 1000000000000000000000000000000000000000000000000000000000000000000 + 1 0 1 0100000000000000000000000000000000000000000000000000000000000000000 + 2 0 2 0010000000000000000000000000000000000000000000000000000000000000000 + 3 0 3 0001000000000000000000000000000000000000000000000000000000000000000 + 4 0 4 0000100000000000000000000000000000000000000000000000000000000000000 + 5 0 5 0000010000000000000000000000000000000000000000000000000000000000000 + 6 0 6 0000001000000000000000000000000000000000000000000000000000000000000 + 7 0 7 0000000100000000000000000000000000000000000000000000000000000000000 + 8 0 8 0000000010000000000000000000000000000000000000000000000000000000000 + 9 0 9 0000000001000000000000000000000000000000000000000000000000000000000 + 10 0 10 0000000000100000000000000000000000000000000000000000000000000000000 + 11 0 11 0000000000010000000000000000000000000000000000000000000000000000000 + 12 0 12 0000000000001000000000000000000000000000000000000000000000000000000 + 13 0 13 0000000000000100000000000000000000000000000000000000000000000000000 + 14 0 14 0000000000000010000000000000000000000000000000000000000000000000000 + 15 0 15 0000000000000001000000000000000000000000000000000000000000000000000 + 16 0 16 0000000000000000100000000000000000000000000000000000000000000000000 + 17 0 17 0000000000000000010000000000000000000000000000000000000000000000000 + 18 0 18 0000000000000000001000000000000000000000000000000000000000000000000 + 19 0 19 0000000000000000000100000000000000000000000000000000000000000000000 + 20 0 20 0000000000000000000010000000000000000000000000000000000000000000000 + 21 0 21 0000000000000000000001000000000000000000000000000000000000000000000 + 22 0 22 0000000000000000000000100000000000000000000000000000000000000000000 + 23 0 23 0000000000000000000000010000000000000000000000000000000000000000000 + 24 0 24 0000000000000000000000001000000000000000000000000000000000000000000 + 25 0 25 0000000000000000000000000100000000000000000000000000000000000000000 + 26 0 26 0000000000000000000000000010000000000000000000000000000000000000000 + 27 0 27 0000000000000000000000000001000000000000000000000000000000000000000 + 28 0 28 0000000000000000000000000000100000000000000000000000000000000000000 + 29 0 29 0000000000000000000000000000010000000000000000000000000000000000000 + 30 0 30 0000000000000000000000000000001000000000000000000000000000000000000 + 31 0 31 0000000000000000000000000000000100000000000000000000000000000000000 + 32 0 32 0000000000000000000000000000000010000000000000000000000000000000000 + 33 0 33 0000000000000000000000000000000001000000000000000000000000000000000 + 34 0 34 0000000000000000000000000000000000100000000000000000000000000000000 + 35 0 35 0000000000000000000000000000000000010000000000000000000000000000000 + 36 0 36 0000000000000000000000000000000000001000000000000000000000000000000 + 37 0 37 0000000000000000000000000000000000000100000000000000000000000000000 + 38 0 38 0000000000000000000000000000000000000010000000000000000000000000000 + 39 0 39 0000000000000000000000000000000000000001000000000000000000000000000 + 40 0 40 0000000000000000000000000000000000000000100000000000000000000000000 + 41 0 41 0000000000000000000000000000000000000000010000000000000000000000000 + 42 0 42 0000000000000000000000000000000000000000001000000000000000000000000 + 43 0 43 0000000000000000000000000000000000000000000100000000000000000000000 + 44 0 44 0000000000000000000000000000000000000000000010000000000000000000000 + 45 0 45 0000000000000000000000000000000000000000000001000000000000000000000 + 46 0 46 0000000000000000000000000000000000000000000000100000000000000000000 + 47 0 47 0000000000000000000000000000000000000000000000010000000000000000000 + 48 0 48 0000000000000000000000000000000000000000000000001000000000000000000 + 49 0 49 0000000000000000000000000000000000000000000000000100000000000000000 + 50 0 50 0000000000000000000000000000000000000000000000000010000000000000000 + 51 0 51 0000000000000000000000000000000000000000000000000001000000000000000 + 52 0 52 0000000000000000000000000000000000000000000000000000100000000000000 + 53 0 53 0000000000000000000000000000000000000000000000000000010000000000000 + 54 0 54 0000000000000000000000000000000000000000000000000000001000000000000 + 55 0 55 0000000000000000000000000000000000000000000000000000000100000000000 + 56 0 56 0000000000000000000000000000000000000000000000000000000010000000000 + 57 0 57 0000000000000000000000000000000000000000000000000000000001000000000 + 58 0 58 0000000000000000000000000000000000000000000000000000000000100000000 + 59 0 59 0000000000000000000000000000000000000000000000000000000000010000000 + 60 0 60 0000000000000000000000000000000000000000000000000000000000001000000 + 61 0 61 0000000000000000000000000000000000000000000000000000000000000100000 + 62 0 62 0000000000000000000000000000000000000000000000000000000000000010000 + 63 0 63 0000000000000000000000000000000000000000000000000000000000000001000 + 64 0 64 0000000000000000000000000000000000000000000000000000000000000000100 + 65 0 65 0000000000000000000000000000000000000000000000000000000000000000010 + 66 0 66 0000000000000000000000000000000000000000000000000000000000000000001 diff --git a/src/regress/include/bitstring/good/8 b/src/regress/include/bitstring/good/8 new file mode 100644 index 000000000..aba64404b --- /dev/null +++ b/src/regress/include/bitstring/good/8 @@ -0,0 +1,111 @@ +Testing with TEST_LENGTH = 8 + +test _bit_byte, _bit_mask, and bitstr_size + i _bit_byte(i) _bit_mask(i) bitstr_size(i) + 0 0 1 0 + 1 0 2 1 + 2 0 4 1 + 3 0 8 1 + 4 0 16 1 + 5 0 32 1 + 6 0 64 1 + 7 0 128 1 + +test bit_alloc, clearbits, bit_ffc, bit_ffs +be: 0 -1 00000000 +is: 0 -1 00000000 + +test bit_set +be: 1 0 10010010 +is: 1 0 10010010 + +test bit_clear +be: 0 3 00010000 +is: 0 3 00010000 + +test bit_test using previous bitstring + i bit_test(i) + 0 0 + 1 0 + 2 0 + 3 8 + 4 0 + 5 0 + 6 0 + 7 0 + +test clearbits +be: 0 -1 00000000 +is: 0 -1 00000000 + +test bit_nset and bit_nclear +be: 0 1 01111110 +is: 0 1 01111110 +be: 0 1 01000010 +is: 0 1 01000010 +be: 0 -1 00000000 +is: 0 -1 00000000 +be: 7 0 11111110 +is: 7 0 11111110 +be: 0 -1 00000000 +is: 0 -1 00000000 + +first 1 bit should move right 1 position each line + 0 -1 0 11111111 + 1 0 1 01111111 + 2 0 2 00111111 + 3 0 3 00011111 + 4 0 4 00001111 + 5 0 5 00000111 + 6 0 6 00000011 + 7 0 7 00000001 + +first 0 bit should move right 1 position each line + 0 0 -1 00000000 + 1 1 0 10000000 + 2 2 0 11000000 + 3 3 0 11100000 + 4 4 0 11110000 + 5 5 0 11111000 + 6 6 0 11111100 + 7 7 0 11111110 + +first 0 bit should move left 1 position each line + 0 -1 0 11111111 + 1 7 0 11111110 + 2 6 0 11111100 + 3 5 0 11111000 + 4 4 0 11110000 + 5 3 0 11100000 + 6 2 0 11000000 + 7 1 0 10000000 + +first 1 bit should move left 1 position each line + 0 0 -1 00000000 + 1 0 7 00000001 + 2 0 6 00000011 + 3 0 5 00000111 + 4 0 4 00001111 + 5 0 3 00011111 + 6 0 2 00111111 + 7 0 1 01111111 + +0 bit should move right 1 position each line + 0 0 1 01111111 + 1 1 0 10111111 + 2 2 0 11011111 + 3 3 0 11101111 + 4 4 0 11110111 + 5 5 0 11111011 + 6 6 0 11111101 + 7 7 0 11111110 + +1 bit should move right 1 position each line + 0 1 0 10000000 + 1 0 1 01000000 + 2 0 2 00100000 + 3 0 3 00010000 + 4 0 4 00001000 + 5 0 5 00000100 + 6 0 6 00000010 + 7 0 7 00000001 diff --git a/src/regress/include/bitstring/good/CVS/Entries b/src/regress/include/bitstring/good/CVS/Entries new file mode 100644 index 000000000..473ffdc83 --- /dev/null +++ b/src/regress/include/bitstring/good/CVS/Entries @@ -0,0 +1,7 @@ +/27/1.1.1.1/Wed Oct 18 08:49:30 1995// +/32/1.1.1.1/Wed Oct 18 08:49:30 1995// +/49/1.1.1.1/Wed Oct 18 08:49:30 1995// +/64/1.1.1.1/Wed Oct 18 08:49:30 1995// +/67/1.1.1.1/Wed Oct 18 08:49:30 1995// +/8/1.1.1.1/Wed Oct 18 08:49:30 1995// +D diff --git a/src/regress/include/bitstring/good/CVS/Repository b/src/regress/include/bitstring/good/CVS/Repository new file mode 100644 index 000000000..d824b8c43 --- /dev/null +++ b/src/regress/include/bitstring/good/CVS/Repository @@ -0,0 +1 @@ +src/regress/include/bitstring/good diff --git a/src/regress/include/bitstring/good/CVS/Root b/src/regress/include/bitstring/good/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/include/bitstring/good/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/include/bitstring/obj b/src/regress/include/bitstring/obj new file mode 120000 index 000000000..74fdec62f --- /dev/null +++ b/src/regress/include/bitstring/obj @@ -0,0 +1 @@ +/usr/obj/regress/include/bitstring \ No newline at end of file diff --git a/src/regress/lib/CVS/Entries b/src/regress/lib/CVS/Entries new file mode 100644 index 000000000..a023ee7a9 --- /dev/null +++ b/src/regress/lib/CVS/Entries @@ -0,0 +1,10 @@ +/Makefile/1.14/Thu Jul 31 15:56:51 2003// +D/csu//// +D/libc//// +D/libevent//// +D/libm//// +D/libpthread//// +D/libskey//// +D/libsndio//// +D/libssl//// +D/libutil//// diff --git a/src/regress/lib/CVS/Repository b/src/regress/lib/CVS/Repository new file mode 100644 index 000000000..c5633676a --- /dev/null +++ b/src/regress/lib/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib diff --git a/src/regress/lib/CVS/Root b/src/regress/lib/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/Makefile b/src/regress/lib/Makefile new file mode 100644 index 000000000..aaae16d95 --- /dev/null +++ b/src/regress/lib/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.14 2003/07/31 15:56:51 deraadt Exp $ + +SUBDIR+= libc libpthread csu libssl libskey libm libevent libutil + +install: + +.include diff --git a/src/regress/lib/csu/CVS/Entries b/src/regress/lib/csu/CVS/Entries new file mode 100644 index 000000000..7d1a0e5cd --- /dev/null +++ b/src/regress/lib/csu/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Sat Feb 23 01:25:10 2002// +D/ctors//// +D/dtors//// diff --git a/src/regress/lib/csu/CVS/Repository b/src/regress/lib/csu/CVS/Repository new file mode 100644 index 000000000..e218ab196 --- /dev/null +++ b/src/regress/lib/csu/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/csu diff --git a/src/regress/lib/csu/CVS/Root b/src/regress/lib/csu/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/csu/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/csu/Makefile b/src/regress/lib/csu/Makefile new file mode 100644 index 000000000..2f68d7f8d --- /dev/null +++ b/src/regress/lib/csu/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.3 2002/02/23 01:25:10 art Exp $ + +SUBDIR+= ctors dtors + +install: + +.include diff --git a/src/regress/lib/csu/ctors/CVS/Entries b/src/regress/lib/csu/ctors/CVS/Entries new file mode 100644 index 000000000..7166c9fab --- /dev/null +++ b/src/regress/lib/csu/ctors/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Jan 31 15:33:36 2002// +/ctors.c/1.3/Thu Jul 31 21:48:02 2003// +D diff --git a/src/regress/lib/csu/ctors/CVS/Repository b/src/regress/lib/csu/ctors/CVS/Repository new file mode 100644 index 000000000..25ad56a35 --- /dev/null +++ b/src/regress/lib/csu/ctors/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/csu/ctors diff --git a/src/regress/lib/csu/ctors/CVS/Root b/src/regress/lib/csu/ctors/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/csu/ctors/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/csu/ctors/Makefile b/src/regress/lib/csu/ctors/Makefile new file mode 100644 index 000000000..69f1b2cf3 --- /dev/null +++ b/src/regress/lib/csu/ctors/Makefile @@ -0,0 +1,4 @@ +# $OpenBSD: Makefile,v 1.1 2002/01/31 15:33:36 art Exp $ +PROG=ctors + +.include diff --git a/src/regress/lib/csu/ctors/ctors.c b/src/regress/lib/csu/ctors/ctors.c new file mode 100644 index 000000000..e5c04b6c8 --- /dev/null +++ b/src/regress/lib/csu/ctors/ctors.c @@ -0,0 +1,19 @@ +/* $OpenBSD: ctors.c,v 1.3 2003/07/31 21:48:02 deraadt Exp $ */ +/* + * Written by Artur Grabowski , 2002 Public Domain. + */ +void foo(void) __attribute__((constructor)); + +int constructed = 0; + +void +foo(void) +{ + constructed = 1; +} + +int +main(int argc, char *argv[]) +{ + return !constructed; +} diff --git a/src/regress/lib/csu/ctors/obj b/src/regress/lib/csu/ctors/obj new file mode 120000 index 000000000..f40b82b6c --- /dev/null +++ b/src/regress/lib/csu/ctors/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/csu/ctors \ No newline at end of file diff --git a/src/regress/lib/csu/dtors/CVS/Entries b/src/regress/lib/csu/dtors/CVS/Entries new file mode 100644 index 000000000..a7aec5561 --- /dev/null +++ b/src/regress/lib/csu/dtors/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Mon Sep 2 20:01:43 2002// +/dtors.c/1.5/Tue Sep 2 23:52:16 2003// +D diff --git a/src/regress/lib/csu/dtors/CVS/Repository b/src/regress/lib/csu/dtors/CVS/Repository new file mode 100644 index 000000000..14ff3fb20 --- /dev/null +++ b/src/regress/lib/csu/dtors/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/csu/dtors diff --git a/src/regress/lib/csu/dtors/CVS/Root b/src/regress/lib/csu/dtors/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/csu/dtors/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/csu/dtors/Makefile b/src/regress/lib/csu/dtors/Makefile new file mode 100644 index 000000000..a6884a861 --- /dev/null +++ b/src/regress/lib/csu/dtors/Makefile @@ -0,0 +1,13 @@ +# $OpenBSD: Makefile,v 1.3 2002/09/02 20:01:43 avsm Exp $ + +PROG=dtors + +REGRESS_TARGETS=dtor-exit dtor-return + +dtor-exit: dtors + ./dtors + +dtor-return: dtors + ./dtors -f + +.include diff --git a/src/regress/lib/csu/dtors/dtors.c b/src/regress/lib/csu/dtors/dtors.c new file mode 100644 index 000000000..f0787ac39 --- /dev/null +++ b/src/regress/lib/csu/dtors/dtors.c @@ -0,0 +1,78 @@ +/* $OpenBSD: dtors.c,v 1.5 2003/09/02 23:52:16 david Exp $ */ +/* + * Written by Artur Grabowski , 2002 Public Domain. + */ +#include +#include +#include + +#include +#include +#include +#include +#include + +void zap(void) __attribute__((destructor)); + +void *destarea; + +#define MAGIC "destructed" + +void +zap(void) +{ + memcpy(destarea, MAGIC, sizeof(MAGIC)); +} + +/* + * XXX - horrible abuse of exit(3), minherit(2) and fork(2). + */ +int +main(int argc, char **argv) +{ + int status, ch; + int fallthru = 0; + + while ((ch = getopt(argc, argv, "f")) != -1) { + switch(ch) { + case 'f': + fallthru = 1; + break; + default: + fprintf(stderr, "Usage: dtors [-f]\n"); + exit(1); + } + } + + destarea = mmap(NULL, getpagesize(), PROT_READ|PROT_WRITE, MAP_ANON, + -1, 0); + if (destarea == MAP_FAILED) + err(1, "mmap"); + + if (minherit(destarea, getpagesize(), MAP_INHERIT_SHARE) != 0) + err(1, "minherit"); + + memset(destarea, 0, sizeof(MAGIC)); + + switch(fork()) { + case -1: + err(1, "fork"); + case 0: + /* + * Yes, it's exit(), not _exit(). We _want_ to run the + * destructors in the child. + */ + if (fallthru) + return (0); + else + exit(0); + } + + if (wait(&status) < 0) + err(1, "wait"); /* XXX uses exit() */ + + if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) + err(1, "child error"); /* XXX uses exit() */ + + _exit(memcmp(destarea, MAGIC, sizeof(MAGIC)) != 0); +} diff --git a/src/regress/lib/csu/dtors/obj b/src/regress/lib/csu/dtors/obj new file mode 120000 index 000000000..d4dba6498 --- /dev/null +++ b/src/regress/lib/csu/dtors/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/csu/dtors \ No newline at end of file diff --git a/src/regress/lib/libc/CVS/Entries b/src/regress/lib/libc/CVS/Entries new file mode 100644 index 000000000..ab23fb5b2 --- /dev/null +++ b/src/regress/lib/libc/CVS/Entries @@ -0,0 +1,40 @@ +D/_setjmp//// +D/alloca//// +D/arch//// +D/atexit//// +D/basename//// +D/cxa-atexit//// +D/db//// +D/dirname//// +D/fnmatch//// +D/fpclassify//// +D/getaddrinfo//// +D/getcap//// +D/getopt_long//// +D/glob//// +D/hsearch//// +D/ieeefp//// +D/locale//// +D/longjmp//// +D/malloc//// +D/netdb//// +D/popen//// +D/printf//// +D/regex//// +D/setjmp//// +D/setjmp-signal//// +D/sigreturn//// +D/sigsetjmp//// +D/sprintf//// +D/strerror//// +D/strtod//// +D/strtonum//// +D/telldir//// +D/time//// +D/vis//// +D/orientation//// +D/sleep//// +D/stdio_threading//// +/Makefile/1.31/Fri Feb 12 07:49:36 2010// +D/mkstemp//// +D/strnlen//// diff --git a/src/regress/lib/libc/CVS/Repository b/src/regress/lib/libc/CVS/Repository new file mode 100644 index 000000000..d6895d2bf --- /dev/null +++ b/src/regress/lib/libc/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc diff --git a/src/regress/lib/libc/CVS/Root b/src/regress/lib/libc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/Makefile b/src/regress/lib/libc/Makefile new file mode 100644 index 000000000..ddbb9505f --- /dev/null +++ b/src/regress/lib/libc/Makefile @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile,v 1.31 2010/02/11 07:35:38 guenther Exp $ + +SUBDIR+= _setjmp alloca atexit basename cxa-atexit db dirname fnmatch +SUBDIR+= fpclassify getaddrinfo getcap getopt_long glob hsearch longjmp +SUBDIR+= locale malloc netdb popen printf regex setjmp setjmp-signal +SUBDIR+= sigreturn sigsetjmp sprintf strerror strtod strtonum telldir time vis +SUBDIR+= orientation stdio_threading mkstemp + +.if (${MACHINE_ARCH} != "vax") +SUBDIR+= ieeefp +.endif + +.if exists(arch/${MACHINE_ARCH}) +SUBDIR+= arch/${MACHINE_ARCH} +.endif + +install: + +.include diff --git a/src/regress/lib/libc/_setjmp/CVS/Entries b/src/regress/lib/libc/_setjmp/CVS/Entries new file mode 100644 index 000000000..eb1eea766 --- /dev/null +++ b/src/regress/lib/libc/_setjmp/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.3/Tue Jan 1 23:00:51 2002// +D diff --git a/src/regress/lib/libc/_setjmp/CVS/Repository b/src/regress/lib/libc/_setjmp/CVS/Repository new file mode 100644 index 000000000..98f61d055 --- /dev/null +++ b/src/regress/lib/libc/_setjmp/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/_setjmp diff --git a/src/regress/lib/libc/_setjmp/CVS/Root b/src/regress/lib/libc/_setjmp/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/_setjmp/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/_setjmp/Makefile b/src/regress/lib/libc/_setjmp/Makefile new file mode 100644 index 000000000..5d5824252 --- /dev/null +++ b/src/regress/lib/libc/_setjmp/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.3 2002/01/01 23:00:51 art Exp $ +# $NetBSD: Makefile,v 1.2 1995/04/20 22:38:44 cgd Exp $ + +PROG= _setjmptest +SRCS= jmptest.c + +CFLAGS+= -DTEST_U_SETJMP + +.PATH: ${.CURDIR}/../setjmp + +.include diff --git a/src/regress/lib/libc/_setjmp/obj b/src/regress/lib/libc/_setjmp/obj new file mode 120000 index 000000000..68cace9f3 --- /dev/null +++ b/src/regress/lib/libc/_setjmp/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/_setjmp \ No newline at end of file diff --git a/src/regress/lib/libc/alloca/CVS/Entries b/src/regress/lib/libc/alloca/CVS/Entries new file mode 100644 index 000000000..15b911793 --- /dev/null +++ b/src/regress/lib/libc/alloca/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Feb 12 06:49:04 2003// +/alloca.c/1.7/Wed Mar 10 01:17:45 2004// +D diff --git a/src/regress/lib/libc/alloca/CVS/Repository b/src/regress/lib/libc/alloca/CVS/Repository new file mode 100644 index 000000000..cef75ec9f --- /dev/null +++ b/src/regress/lib/libc/alloca/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/alloca diff --git a/src/regress/lib/libc/alloca/CVS/Root b/src/regress/lib/libc/alloca/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/alloca/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/alloca/Makefile b/src/regress/lib/libc/alloca/Makefile new file mode 100644 index 000000000..f31417cda --- /dev/null +++ b/src/regress/lib/libc/alloca/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2003/02/12 06:49:04 mickey Exp $ + +PROG= alloca + +.include diff --git a/src/regress/lib/libc/alloca/alloca.c b/src/regress/lib/libc/alloca/alloca.c new file mode 100644 index 000000000..54fa90eda --- /dev/null +++ b/src/regress/lib/libc/alloca/alloca.c @@ -0,0 +1,21 @@ +/* $OpenBSD: alloca.c,v 1.7 2004/03/10 01:17:45 deraadt Exp $ */ + +/* Written by Michael Shalayeff, 2003, Public Domain. */ + +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + char *q, *p; + + p = alloca(41); + strlcpy(p, "hellow world", 41); + + q = alloca(53); + strlcpy(q, "hellow world", 53); + + exit(strcmp(p, q)); +} diff --git a/src/regress/lib/libc/alloca/obj b/src/regress/lib/libc/alloca/obj new file mode 120000 index 000000000..9504baf60 --- /dev/null +++ b/src/regress/lib/libc/alloca/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/alloca \ No newline at end of file diff --git a/src/regress/lib/libc/arch/CVS/Entries b/src/regress/lib/libc/arch/CVS/Entries new file mode 100644 index 000000000..b08f025c9 --- /dev/null +++ b/src/regress/lib/libc/arch/CVS/Entries @@ -0,0 +1 @@ +D/alpha//// diff --git a/src/regress/lib/libc/arch/CVS/Repository b/src/regress/lib/libc/arch/CVS/Repository new file mode 100644 index 000000000..2e1363eae --- /dev/null +++ b/src/regress/lib/libc/arch/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/arch diff --git a/src/regress/lib/libc/arch/CVS/Root b/src/regress/lib/libc/arch/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/arch/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/arch/alpha/CVS/Entries b/src/regress/lib/libc/arch/alpha/CVS/Entries new file mode 100644 index 000000000..42ab518e6 --- /dev/null +++ b/src/regress/lib/libc/arch/alpha/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.3/Sat Feb 23 01:25:11 2002// +D/divremtest//// diff --git a/src/regress/lib/libc/arch/alpha/CVS/Repository b/src/regress/lib/libc/arch/alpha/CVS/Repository new file mode 100644 index 000000000..a4e246fe7 --- /dev/null +++ b/src/regress/lib/libc/arch/alpha/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/arch/alpha diff --git a/src/regress/lib/libc/arch/alpha/CVS/Root b/src/regress/lib/libc/arch/alpha/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/arch/alpha/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/arch/alpha/Makefile b/src/regress/lib/libc/arch/alpha/Makefile new file mode 100644 index 000000000..8c4dfb735 --- /dev/null +++ b/src/regress/lib/libc/arch/alpha/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.3 2002/02/23 01:25:11 art Exp $ +# $NetBSD: Makefile,v 1.1 1995/04/24 05:53:31 cgd Exp $ + +# do nothing here; none of the tests here can be run automatically +SUBDIR= + +install: + +.include diff --git a/src/regress/lib/libc/arch/alpha/divremtest/CVS/Entries b/src/regress/lib/libc/arch/alpha/divremtest/CVS/Entries new file mode 100644 index 000000000..a61c44c41 --- /dev/null +++ b/src/regress/lib/libc/arch/alpha/divremtest/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.2/Mon Jan 29 02:05:39 2001// +/divremtest.c/1.2/Mon Jan 29 02:05:39 2001// +/mkcases.c/1.2/Mon Jan 29 02:05:39 2001// +/mktestcases.c/1.2/Mon Jan 29 02:05:40 2001// +D diff --git a/src/regress/lib/libc/arch/alpha/divremtest/CVS/Repository b/src/regress/lib/libc/arch/alpha/divremtest/CVS/Repository new file mode 100644 index 000000000..179043e13 --- /dev/null +++ b/src/regress/lib/libc/arch/alpha/divremtest/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/arch/alpha/divremtest diff --git a/src/regress/lib/libc/arch/alpha/divremtest/CVS/Root b/src/regress/lib/libc/arch/alpha/divremtest/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/arch/alpha/divremtest/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/arch/alpha/divremtest/Makefile b/src/regress/lib/libc/arch/alpha/divremtest/Makefile new file mode 100644 index 000000000..1da3ac849 --- /dev/null +++ b/src/regress/lib/libc/arch/alpha/divremtest/Makefile @@ -0,0 +1,30 @@ +# $OpenBSD: Makefile,v 1.2 2001/01/29 02:05:39 niklas Exp $ +# $NetBSD: Makefile,v 1.1 1995/04/24 05:53:34 cgd Exp $ + +PROG= divremtest +NOMAN= + +CLEANFILES+= mkcases cases.c mktestcases testcases + +divremtest.c: cases.c + +cases.c: mkcases + /bin/rm -f cases.c + mkcases > cases.c + +# a typical strategy to use this: +# compile a NetBSD divremtest binary, an OSF/1 divremtest binary, and an +# OSF/1 mktestcases binary. You then run mktestecases | divremtest -g +# on an OSF/1 machine, and pipe the output to an rsh to a NetBSD machine +# which then runs divremtest. You can test an infinite number of random +# values that way; I like to put a 'dd' in, so I can see how much I've done. + +testcases: mktestcases divremtest + /bin/rm -f testcases + mktestcases | divremtest -g > testcases + +regress: + @echo THIS TEST CANNOT BE RUN AUTOMATICALLY. + @false + +.include diff --git a/src/regress/lib/libc/arch/alpha/divremtest/divremtest.c b/src/regress/lib/libc/arch/alpha/divremtest/divremtest.c new file mode 100644 index 000000000..3d9e8a6de --- /dev/null +++ b/src/regress/lib/libc/arch/alpha/divremtest/divremtest.c @@ -0,0 +1,184 @@ +/* $OpenBSD: divremtest.c,v 1.2 2001/01/29 02:05:39 niklas Exp $ */ +/* $NetBSD: divremtest.c,v 1.1 1995/04/24 05:53:35 cgd Exp $ */ + +/* + * Copyright (c) 1995 Christopher G. Demetriou + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Christopher G. Demetriou + * for the NetBSD Project. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include + +void testfile(); +void usage(); + +int generate; + +int +main(argc, argv) + int argc; + char **argv; +{ + int c; + + signal(SIGFPE, SIG_IGN); + + while ((c = getopt(argc, argv, "g")) != -1) + switch (c) { + case 'g': + generate = 1; + break; + + default: + usage(); + break; + } + + argc -= optind; + argv += optind; + + if (argc == 0) + testfile(); + else + for (; argc != 0; argc--, argv++) { + if (freopen(argv[0], "r", stdin) == NULL) { + fprintf(stderr, + "divremtest: couldn't open %s\n", + argv[0]); + exit(1); + } + + testfile(); + } + + exit(0); +} + +void +testfile() +{ + union operand { + unsigned long input; + int op_int; + unsigned int op_u_int; + long op_long; + unsigned long op_u_long; + } op1, op2, divres, modres, divwant, modwant; + char opspec[6]; + int encoded, i; + + while (scanf("%6c %lx %lx %lx %lx\n", opspec, &op1.input, + &op2.input, &divwant.input, &modwant.input) != EOF) { + + encoded = 0; + + for (i = 0; i < 6; i += 2) { + int posval; + + switch (opspec[i]) { + case '.': + posval = 0; + break; + case '-': + posval = 1; + break; + default: + fprintf(stderr, + "unknown signedness spec %c\n", + opspec[i]); + exit(1); + } + encoded |= posval << ((5 - i) * 4); + } + + for (i = 1; i < 6; i += 2) { + int posval; + + switch (opspec[i]) { + case 'i': + posval = 0; + break; + case 'l': + posval = 1; + break; + default: + fprintf(stderr, "unknown length spec %c\n", + opspec[i]); + exit(1); + } + encoded |= posval << ((5 - i) * 4); + } + + /* KILL ME!!! */ + switch (encoded) { + +#define TRY_IT(a, b, c) \ + divres.a = op1.b / op2.c; \ + modres.a = op1.b % op2.c; \ + if (generate) { \ + printf("%6s 0x%016lx 0x%016lx 0x%016lx 0x%016lx\n", \ + opspec, op1.input, op2.input, \ + divres.a, modres.a); \ + } else { \ + if ((divres.a != divwant.a) || \ + (modres.a != modwant.a)) { \ + fprintf(stderr, "%6s 0x%016lx 0x%016lx\n", \ + opspec, op1.input, op2.input); \ + fprintf(stderr, "FAILED:\n"); \ + fprintf(stderr, \ + "div:\twanted 0x%16lx, got 0x%16lx\n", \ + divwant.a, divres.a); \ + fprintf(stderr, \ + "mod:\twanted 0x%16lx, got 0x%16lx\n", \ + modwant.a, modres.a); \ + \ + exit(1); \ + } \ + } + +#include "cases.c" + +#undef TRY_IT + + default: + fprintf(stderr, + "INTERNAL ERROR: unknown encoding %x\n", encoded); + exit(1); + } + } +} + +void +usage() +{ + + fprintf(stderr, "usage: divremtest [-v] [testfile ...]\n"); + exit(1); +} diff --git a/src/regress/lib/libc/arch/alpha/divremtest/mkcases.c b/src/regress/lib/libc/arch/alpha/divremtest/mkcases.c new file mode 100644 index 000000000..fcb4765b8 --- /dev/null +++ b/src/regress/lib/libc/arch/alpha/divremtest/mkcases.c @@ -0,0 +1,64 @@ +/* $OpenBSD: mkcases.c,v 1.2 2001/01/29 02:05:39 niklas Exp $ */ +/* $NetBSD: mkcases.c,v 1.1 1995/04/24 05:53:36 cgd Exp $ */ + +/* + * Copyright (c) 1995 Christopher G. Demetriou + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Christopher G. Demetriou + * for the NetBSD Project. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +char *tab[4] = { "u_int", "int", "u_long", "long" }; + +int +main() +{ + int i; + + for (i = 0; i < 64; i++) { + printf( +" case 0x%d%d%d%d%d%d: /* %s <= %s op %s */\n", + (i >> 5) & 1, + (i >> 4) & 1, + (i >> 3) & 1, + (i >> 2) & 1, + (i >> 1) & 1, + (i >> 0) & 1, + tab[(i >> 4) & 0x3], + tab[(i >> 2) & 0x3], + tab[(i >> 0) & 0x3]); + printf( +" TRY_IT(op_%s, op_%s, op_%s);\n", + tab[(i >> 4) & 0x3], + tab[(i >> 2) & 0x3], + tab[(i >> 0) & 0x3]); + printf( +" break;\n\n"); + } + + exit(0); +} diff --git a/src/regress/lib/libc/arch/alpha/divremtest/mktestcases.c b/src/regress/lib/libc/arch/alpha/divremtest/mktestcases.c new file mode 100644 index 000000000..3b01653f3 --- /dev/null +++ b/src/regress/lib/libc/arch/alpha/divremtest/mktestcases.c @@ -0,0 +1,68 @@ +/* $OpenBSD: mktestcases.c,v 1.2 2001/01/29 02:05:40 niklas Exp $ */ +/* $NetBSD: mktestcases.c,v 1.1 1995/04/24 05:53:37 cgd Exp $ */ + +/* + * Copyright (c) 1995 Christopher G. Demetriou + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Christopher G. Demetriou + * for the NetBSD Project. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +int +main() +{ + int i, j; + unsigned long n1, n2; + + srandom(time(NULL)); + + for (i = 1; /* i < 10240 */ 1; i++) { + n1 = (unsigned) + (random() & ((random() & random()) | 0x80000000)); + n1 <<= 32; + n1 |= (unsigned)(random() & random() & random()); + + n2 = (unsigned) + (random() & ((random() & random()) | 0x80000000)); + n2 <<= 32; + n2 |= (unsigned)(random() & random() & random()); + + for (j = 0; j < 64; j++) { + char *tab[] = { ".i", ".l", "-i", "-l" }; + + printf("%s%s%s 0x%lx 0x%lx 0 0\n", + tab[(j >> 4) & 0x3], + tab[(j >> 2) & 0x3], + tab[(j >> 0) & 0x3], + n1, n2); + } + } + + exit(0); +} diff --git a/src/regress/lib/libc/atexit/CVS/Entries b/src/regress/lib/libc/atexit/CVS/Entries new file mode 100644 index 000000000..18b48de53 --- /dev/null +++ b/src/regress/lib/libc/atexit/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.5/Thu Jul 31 22:46:59 2003// +/atexit_test.c/1.6/Mon Sep 3 14:42:44 2007// +/invalid.ok/1.1/Mon Jul 29 19:51:41 2002// +/valid.ok/1.1/Mon Jul 29 19:51:41 2002// +D diff --git a/src/regress/lib/libc/atexit/CVS/Repository b/src/regress/lib/libc/atexit/CVS/Repository new file mode 100644 index 000000000..bbfd41210 --- /dev/null +++ b/src/regress/lib/libc/atexit/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/atexit diff --git a/src/regress/lib/libc/atexit/CVS/Root b/src/regress/lib/libc/atexit/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/atexit/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/atexit/Makefile b/src/regress/lib/libc/atexit/Makefile new file mode 100644 index 000000000..c14b3c7ac --- /dev/null +++ b/src/regress/lib/libc/atexit/Makefile @@ -0,0 +1,16 @@ +# $OpenBSD: Makefile,v 1.5 2003/07/31 22:46:59 david Exp $ + +NOMAN= +PROG=atexit_test +CPPFLAGS+=-I${.CURDIR}/../../../../lib/libc +CLEANFILES+= invalid.out valid.out + +run-regress-atexit_test: ${PROG} + ./${PROG} -valid 2>${.OBJDIR}/valid.out + cmp -s ${.OBJDIR}/valid.out ${.CURDIR}/valid.ok + ./${PROG} -invalid-atexit 2>${.OBJDIR}/invalid.out + cmp -s ${.OBJDIR}/invalid.out ${.CURDIR}/invalid.ok + ./${PROG} -invalid-cleanup 2>${.OBJDIR}/invalid.out + cmp -s ${.OBJDIR}/invalid.out ${.CURDIR}/invalid.ok + +.include diff --git a/src/regress/lib/libc/atexit/atexit_test.c b/src/regress/lib/libc/atexit/atexit_test.c new file mode 100644 index 000000000..3dd0b62c3 --- /dev/null +++ b/src/regress/lib/libc/atexit/atexit_test.c @@ -0,0 +1,140 @@ +/* $OpenBSD: atexit_test.c,v 1.6 2007/09/03 14:42:44 millert Exp $ */ + +/* + * Copyright (c) 2002 Daniel Hartmeier + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * Effort sponsored in part by the Defense Advanced Research Projects + * Agency (DARPA) and Air Force Research Laboratory, Air Force + * Materiel Command, USAF, under agreement number F30602-01-2-0537. + * + */ + +#include +#include +#include +#include +#include "stdlib/atexit.h" + +void handle_first(void); +void handle_middle(void); +void handle_last(void); +void handle_invalid(void); +void handle_cleanup(void); +void handle_signal(int); + +static int counter; + +int +main(int argc, char *argv[]) +{ + int i; + + if (argc != 2 || (strcmp(argv[1], "-valid") && + strcmp(argv[1], "-invalid-atexit") && + strcmp(argv[1], "-invalid-cleanup"))) { + fprintf(stderr, "%s -valid/-invalid-atexit/-invalid-cleanup\n", + argv[0]); + return (1); + } + fprintf(stderr, "main()\n"); + if (atexit(handle_last)) { + perror("atexit(handle_last) failed"); + return (1); + } + for (i = 0; i < 65535; ++i) { + if (atexit(handle_middle)) { + perror("atexit(handle_middle) failed"); + return (1); + } + } + if (atexit(handle_first)) { + perror("atexit(handle_first) failed"); + return (1); + } + /* this is supposed to segfault */ + if (!strcmp(argv[1], "-invalid-atexit")) { + signal(SIGSEGV, handle_signal); + __atexit->fns[0].fn_ptr.std_func = handle_invalid; + } else if (!strcmp(argv[1], "-invalid-cleanup")) { + struct atexit *p = __atexit; + + signal(SIGSEGV, handle_signal); + while (p != NULL && p->next != NULL) + p = p->next; + if (p == NULL) + fprintf(stderr, "p == NULL, no page found\n"); + p->fns[0].fn_ptr.std_func = handle_invalid; + } + __atexit_register_cleanup(handle_cleanup); + counter = 0; + fprintf(stderr, "main() returns\n"); + return (0); +} + +void +handle_first(void) +{ + fprintf(stderr, "handle_first() counter == %i\n", counter); +} + +void +handle_middle(void) +{ + counter++; +} + +void +handle_last(void) +{ + fprintf(stderr, "handle_last() counter == %i\n", counter); +} + +void +handle_cleanup(void) +{ + fprintf(stderr, "handle_cleanup()\n"); +} + +void +handle_invalid(void) +{ + fprintf(stderr, "handle_invalid() THIS SHOULD HAVE SEGFAULTED INSTEAD!\n"); +} + +void +handle_signal(int sigraised) +{ + switch (sigraised) { + case SIGSEGV: + fprintf(stderr, "SIGSEGV\n"); + exit(0); + default: + fprintf(stderr, "unexpected signal caught\n"); + exit(1); + } +} diff --git a/src/regress/lib/libc/atexit/invalid.ok b/src/regress/lib/libc/atexit/invalid.ok new file mode 100644 index 000000000..98cbf8c1d --- /dev/null +++ b/src/regress/lib/libc/atexit/invalid.ok @@ -0,0 +1,4 @@ +main() +SIGSEGV +handle_first() counter == 0 +handle_last() counter == 65535 diff --git a/src/regress/lib/libc/atexit/obj b/src/regress/lib/libc/atexit/obj new file mode 120000 index 000000000..7db89df4f --- /dev/null +++ b/src/regress/lib/libc/atexit/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/atexit \ No newline at end of file diff --git a/src/regress/lib/libc/atexit/valid.ok b/src/regress/lib/libc/atexit/valid.ok new file mode 100644 index 000000000..6509e827a --- /dev/null +++ b/src/regress/lib/libc/atexit/valid.ok @@ -0,0 +1,5 @@ +main() +main() returns +handle_first() counter == 0 +handle_last() counter == 65535 +handle_cleanup() diff --git a/src/regress/lib/libc/basename/CVS/Entries b/src/regress/lib/libc/basename/CVS/Entries new file mode 100644 index 000000000..9a6598967 --- /dev/null +++ b/src/regress/lib/libc/basename/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu May 17 03:02:32 2007// +/basename_test.c/1.1/Thu May 17 03:02:32 2007// +D diff --git a/src/regress/lib/libc/basename/CVS/Repository b/src/regress/lib/libc/basename/CVS/Repository new file mode 100644 index 000000000..13167c5cc --- /dev/null +++ b/src/regress/lib/libc/basename/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/basename diff --git a/src/regress/lib/libc/basename/CVS/Root b/src/regress/lib/libc/basename/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/basename/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/basename/Makefile b/src/regress/lib/libc/basename/Makefile new file mode 100644 index 000000000..958b06fd1 --- /dev/null +++ b/src/regress/lib/libc/basename/Makefile @@ -0,0 +1,3 @@ +PROG=basename_test + +.include diff --git a/src/regress/lib/libc/basename/basename_test.c b/src/regress/lib/libc/basename/basename_test.c new file mode 100644 index 000000000..34e138c72 --- /dev/null +++ b/src/regress/lib/libc/basename/basename_test.c @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2007 Bret S. Lambert + * + * Public domain. + */ + +#include + +#include +#include +#include +#include +#include + +int +main(void) +{ + char path[2 * MAXPATHLEN]; + const char *dir = "junk/"; + const char *fname = "file.name.ext"; + char *str; + int i; + + /* Test normal functioning */ + strlcpy(path, "/", sizeof(path)); + strlcat(path, dir, sizeof(path)); + strlcat(path, fname, sizeof(path)); + str = basename(path); + if (strcmp(str, fname) != 0) + goto fail; + + /* + * There are four states that require special handling: + * + * 1) path is NULL + * 2) path is the empty string + * 3) path is composed entirely of slashes + * 4) the resulting name is larger than MAXPATHLEN + * + * The first two cases require that a pointer + * to the string "." be returned. + * + * The third case requires that a pointer + * to the string "/" be returned. + * + * The final case requires that NULL be returned + * and errno * be set to ENAMETOOLONG. + */ + /* Case 1 */ + str = basename(NULL); + if (strcmp(str, ".") != 0) + goto fail; + + /* Case 2 */ + strlcpy(path, "", sizeof(path)); + str = basename(path); + if (strcmp(str, ".") != 0) + goto fail; + + /* Case 3 */ + for (i = 0; i < MAXPATHLEN - 1; i++) + strlcat(path, "/", sizeof(path)); /* path cleared above */ + str = basename(path); + if (strcmp(str, "/") != 0) + goto fail; + + /* Case 4 */ + strlcpy(path, "/", sizeof(path)); + strlcat(path, dir, sizeof(path)); + for (i = 0; i <= MAXPATHLEN; i += sizeof(fname)) + strlcat(path, fname, sizeof(path)); + str = basename(path); + if (str != NULL || errno != ENAMETOOLONG) + goto fail; + + return (0); +fail: + return (1); +} diff --git a/src/regress/lib/libc/basename/obj b/src/regress/lib/libc/basename/obj new file mode 120000 index 000000000..c6423f69a --- /dev/null +++ b/src/regress/lib/libc/basename/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/basename \ No newline at end of file diff --git a/src/regress/lib/libc/cxa-atexit/CVS/Entries b/src/regress/lib/libc/cxa-atexit/CVS/Entries new file mode 100644 index 000000000..7fb95a535 --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/CVS/Entries @@ -0,0 +1,4 @@ +D/libgd1//// +D/libgd2//// +D/test1//// +/Makefile/1.2/Mon May 31 05:18:47 2010// diff --git a/src/regress/lib/libc/cxa-atexit/CVS/Repository b/src/regress/lib/libc/cxa-atexit/CVS/Repository new file mode 100644 index 000000000..a7bd2db98 --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/cxa-atexit diff --git a/src/regress/lib/libc/cxa-atexit/CVS/Root b/src/regress/lib/libc/cxa-atexit/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/cxa-atexit/Makefile b/src/regress/lib/libc/cxa-atexit/Makefile new file mode 100644 index 000000000..5061ca04a --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/Makefile @@ -0,0 +1,12 @@ +# $OpenBSD: Makefile,v 1.2 2010/05/10 18:20:31 drahn Exp $ + +.include + + +.if ${COMPILER_VERSION:L} == "gcc3" || ${COMPILER_VERSION:L} == "gcc4" +SUBDIR+= libgd1 libgd2 test1 +.endif + +install: + +.include diff --git a/src/regress/lib/libc/cxa-atexit/libgd1/CVS/Entries b/src/regress/lib/libc/cxa-atexit/libgd1/CVS/Entries new file mode 100644 index 000000000..a730b98ee --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd1/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Mon Sep 3 14:42:44 2007// +/gd1.C/1.1/Mon Sep 3 14:42:44 2007// +/shlib_version/1.1/Mon Sep 3 14:42:44 2007// +D diff --git a/src/regress/lib/libc/cxa-atexit/libgd1/CVS/Repository b/src/regress/lib/libc/cxa-atexit/libgd1/CVS/Repository new file mode 100644 index 000000000..ca7002c5e --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd1/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/cxa-atexit/libgd1 diff --git a/src/regress/lib/libc/cxa-atexit/libgd1/CVS/Root b/src/regress/lib/libc/cxa-atexit/libgd1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/cxa-atexit/libgd1/Makefile b/src/regress/lib/libc/cxa-atexit/libgd1/Makefile new file mode 100644 index 000000000..958b726d2 --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd1/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2007/09/03 14:42:44 millert Exp $ + +LIB=gd1 +SRCS= gd1.C +NOPROFILE=yes + +regress: all + +.include diff --git a/src/regress/lib/libc/cxa-atexit/libgd1/gd1.C b/src/regress/lib/libc/cxa-atexit/libgd1/gd1.C new file mode 100644 index 000000000..b3ecd56d9 --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd1/gd1.C @@ -0,0 +1,32 @@ +/* $OpenBSD: gd1.C,v 1.1 2007/09/03 14:42:44 millert Exp $ */ + +/* + * Copyright (c) 2007 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include + +extern int check1; + +struct global_destructor_test_obj1 { + inline ~global_destructor_test_obj1() { + check1 = 0; + } +}; + +extern "C" void gd_test1() +{ + static global_destructor_test_obj1 gdt; +} diff --git a/src/regress/lib/libc/cxa-atexit/libgd1/obj b/src/regress/lib/libc/cxa-atexit/libgd1/obj new file mode 120000 index 000000000..15223842e --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd1/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/cxa-atexit/libgd1 \ No newline at end of file diff --git a/src/regress/lib/libc/cxa-atexit/libgd1/shlib_version b/src/regress/lib/libc/cxa-atexit/libgd1/shlib_version new file mode 100644 index 000000000..97c9f92d6 --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd1/shlib_version @@ -0,0 +1,2 @@ +major=0 +minor=0 diff --git a/src/regress/lib/libc/cxa-atexit/libgd2/CVS/Entries b/src/regress/lib/libc/cxa-atexit/libgd2/CVS/Entries new file mode 100644 index 000000000..a0881913b --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd2/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Mon Sep 3 14:42:44 2007// +/gd2.C/1.1/Mon Sep 3 14:42:44 2007// +/shlib_version/1.1/Mon Sep 3 14:42:44 2007// +D diff --git a/src/regress/lib/libc/cxa-atexit/libgd2/CVS/Repository b/src/regress/lib/libc/cxa-atexit/libgd2/CVS/Repository new file mode 100644 index 000000000..e3bc2526f --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd2/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/cxa-atexit/libgd2 diff --git a/src/regress/lib/libc/cxa-atexit/libgd2/CVS/Root b/src/regress/lib/libc/cxa-atexit/libgd2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/cxa-atexit/libgd2/Makefile b/src/regress/lib/libc/cxa-atexit/libgd2/Makefile new file mode 100644 index 000000000..7ca21d8bd --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd2/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2007/09/03 14:42:44 millert Exp $ + +LIB=gd2 +SRCS= gd2.C +NOPROFILE=yes + +regress: all + +.include diff --git a/src/regress/lib/libc/cxa-atexit/libgd2/gd2.C b/src/regress/lib/libc/cxa-atexit/libgd2/gd2.C new file mode 100644 index 000000000..69e7ffb22 --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd2/gd2.C @@ -0,0 +1,32 @@ +/* $OpenBSD: gd2.C,v 1.1 2007/09/03 14:42:44 millert Exp $ */ + +/* + * Copyright (c) 2007 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include + +extern int check2; + +struct global_destructor_test_obj2 { + inline ~global_destructor_test_obj2() { + check2 = 0; + } +}; + +extern "C" void gd_test2() +{ + static global_destructor_test_obj2 gdt; +} diff --git a/src/regress/lib/libc/cxa-atexit/libgd2/obj b/src/regress/lib/libc/cxa-atexit/libgd2/obj new file mode 120000 index 000000000..7e3c2bb8f --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd2/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/cxa-atexit/libgd2 \ No newline at end of file diff --git a/src/regress/lib/libc/cxa-atexit/libgd2/shlib_version b/src/regress/lib/libc/cxa-atexit/libgd2/shlib_version new file mode 100644 index 000000000..97c9f92d6 --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/libgd2/shlib_version @@ -0,0 +1,2 @@ +major=0 +minor=0 diff --git a/src/regress/lib/libc/cxa-atexit/test1/CVS/Entries b/src/regress/lib/libc/cxa-atexit/test1/CVS/Entries new file mode 100644 index 000000000..9e9577aea --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/test1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Sep 3 14:42:44 2007// +/test1.C/1.1/Mon Sep 3 14:42:44 2007// +D diff --git a/src/regress/lib/libc/cxa-atexit/test1/CVS/Repository b/src/regress/lib/libc/cxa-atexit/test1/CVS/Repository new file mode 100644 index 000000000..72e1d894f --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/test1/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/cxa-atexit/test1 diff --git a/src/regress/lib/libc/cxa-atexit/test1/CVS/Root b/src/regress/lib/libc/cxa-atexit/test1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/test1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/cxa-atexit/test1/Makefile b/src/regress/lib/libc/cxa-atexit/test1/Makefile new file mode 100644 index 000000000..533392d14 --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/test1/Makefile @@ -0,0 +1,29 @@ +# $OpenBSD: Makefile,v 1.1 2007/09/03 14:42:44 millert Exp $ + +.include + +GD1_DIR=${.CURDIR}/../libgd1 +GD1_OBJDIR!= if [ -d $(GD1_DIR)/${__objdir} ]; then \ + echo "$(GD1_DIR)/${__objdir}"; \ + else \ + echo "$(GD1_DIR)"; \ + fi + +GD2_DIR=${.CURDIR}/../libgd2 +GD2_OBJDIR!= if [ -d $(GD2_DIR)/${__objdir} ]; then \ + echo "$(GD2_DIR)/${__objdir}"; \ + else \ + echo "$(GD2_DIR)"; \ + fi + +PROG= test1 + +SRCS= test1.C + +CFLAGS+= -DLIBGD1="\"$(GD1_OBJDIR)/libgd1.so\"" +CFLAGS+= -DLIBGD2="\"$(GD2_OBJDIR)/libgd2.so\"" +LDFLAGS+= -Wl,-E + +NOMAN= + +.include diff --git a/src/regress/lib/libc/cxa-atexit/test1/obj b/src/regress/lib/libc/cxa-atexit/test1/obj new file mode 120000 index 000000000..6d740feb6 --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/test1/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/cxa-atexit/test1 \ No newline at end of file diff --git a/src/regress/lib/libc/cxa-atexit/test1/test1.C b/src/regress/lib/libc/cxa-atexit/test1/test1.C new file mode 100644 index 000000000..75fb967a9 --- /dev/null +++ b/src/regress/lib/libc/cxa-atexit/test1/test1.C @@ -0,0 +1,63 @@ +/* $OpenBSD: test1.C,v 1.1 2007/09/03 14:42:44 millert Exp $ */ + +/* + * Copyright (c) 2007 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include + +int check1, check2; + +int +main() +{ + void *libgd1, *libgd2; + void (*gd_test)(); + int i; + + for (i=0; i < 50; i++) { + check1 = check2 = 1; + + libgd1 = dlopen(LIBGD1, RTLD_LAZY); + if (libgd1 == NULL) + errx(1, "dlopen(%s, RTLD_LAZY) FAILED\n", LIBGD1); + + gd_test = (void (*)())dlsym(libgd1, "gd_test1"); + if (gd_test == NULL) + errx(1, "dlsym(libgd1, \"gd_test1\") FAILED\n"); + + (*gd_test)(); + + libgd2 = dlopen(LIBGD2, RTLD_LAZY); + if (libgd2 == NULL) + errx(1, "dlopen(%s, RTLD_LAZY) FAILED\n", LIBGD2); + + gd_test = (void (*)())dlsym(libgd2, "gd_test2"); + if (gd_test == NULL) + errx(1, "dlsym(libgd2, \"gd_test2\") FAILED\n"); + + (*gd_test)(); + + dlclose(libgd1); + dlclose(libgd2); + + if (check1 || check2) + errx(1, "global destructors not called\n"); + } + + return (0); +} diff --git a/src/regress/lib/libc/db/CVS/Entries b/src/regress/lib/libc/db/CVS/Entries new file mode 100644 index 000000000..caca33369 --- /dev/null +++ b/src/regress/lib/libc/db/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.10/Mon Sep 2 20:01:43 2002// +/README/1.3/Mon Jan 29 02:05:40 2001// +/dbtest.c/1.12/Tue Oct 27 23:59:32 2009// +/run.test/1.3/Mon Jan 29 02:05:41 2001// +D diff --git a/src/regress/lib/libc/db/CVS/Repository b/src/regress/lib/libc/db/CVS/Repository new file mode 100644 index 000000000..0c33126a9 --- /dev/null +++ b/src/regress/lib/libc/db/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/db diff --git a/src/regress/lib/libc/db/CVS/Root b/src/regress/lib/libc/db/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/db/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/db/Makefile b/src/regress/lib/libc/db/Makefile new file mode 100644 index 000000000..7d2882594 --- /dev/null +++ b/src/regress/lib/libc/db/Makefile @@ -0,0 +1,22 @@ +# $OpenBSD: Makefile,v 1.10 2002/09/02 20:01:43 avsm Exp $ +# $NetBSD: Makefile,v 1.11 1995/12/12 01:54:15 cgd Exp $ + +PROG= dbtest + +# add -DSTATISTICS to CFLAGS to get usage statistics. Note that +# for this to work, libc must be compiled with -DSTATISTICS as well +CFLAGS+= -g -D__DBINTERFACE_PRIVATE -DDEBUG +CLEANFILES+= t1 t2 t3 log + +DBTARGETS=1 2 3 4 5 6 7 8 9 10 11 12 13 20 + +.for DT in ${DBTARGETS} +db-${DT}: ${PROG} + sh ${.CURDIR}/run.test ${DT} +REGRESS_TARGETS+=db-${DT} +.PHONY: db-${DT} +.endfor + +REGRESS_SLOW_TARGETS+=db-3 db-12 db-20 + +.include diff --git a/src/regress/lib/libc/db/README b/src/regress/lib/libc/db/README new file mode 100644 index 000000000..23a1b7722 --- /dev/null +++ b/src/regress/lib/libc/db/README @@ -0,0 +1,69 @@ +# $OpenBSD: README,v 1.3 2001/01/29 02:05:40 niklas Exp $ +# $NetBSD: README,v 1.5 1996/05/03 21:54:19 cgd Exp $ +# @(#)README 8.8 (Berkeley) 7/31/94 + +To run the tests, enter "make regress". + +Fairly large files (the command files) are built in this directory during +the test runs, and even larger files (the database files) are created in +"/var/tmp". If the latter directory doesn't exist, set the environmental +variable TMPDIR to a directory where the files can be built. + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +The script file consists of lines with an initial character which is +the command for that line, or an initial character indicating a key +or data entry for a previous command. + +Legal command characters are as follows: + +c: compare a record + + must be followed by [kK][dD]; the data value in the database + associated with the specified key is compared to the specified + data value. +e: echo a string + + writes out the rest of the line into the output file; if the + last character is not a carriage-return, a newline is appended. +f: set the flags for the next command + + no value zero's the flags +g: do a get command + + must be followed by [kK] + + writes out the retrieved data DBT. +o [r]: dump [reverse] + + dump the database out, if 'r' is set, in reverse order. +p: do a put command + + must be followed by [kK][dD] +r: do a del command + + must be followed by [kK] unless R_CURSOR flag set. +S: sync the database +s: do a seq command + + must be followed by [kK] if R_CURSOR flag set. + + writes out the retrieved data DBT. + +Legal key/data characters are as follows: + +D [file]: data file + + set the current data value to the contents of the file +d [data]: + + set the current key value to the contents of the line. +K [file]: key file + + set the current key value to the contents of the file +k [data]: + + set the current key value to the contents of the line. + +Blank lines, lines with leading white space, and lines with leading +hash marks (#) are ignored. + +Options to dbtest are as follows: + + -d: Set the DB_LOCK flag. + -f: Use the file argument as the database file. + -i: Use the rest of the argument to set elements in the info + structure. If the type is btree, then "-i cachesize=10240" + will set BTREEINFO.cachesize to 10240. + -o: The rest of the argument is the output file instead of + using stdout. + -s: Don't delete the database file before opening it, i.e. + use the database file from a previous run. + +Dbtest requires two arguments, the type of access "hash", "recno" +or "btree", and the script name or "-" to indicate stdin. diff --git a/src/regress/lib/libc/db/dbtest.c b/src/regress/lib/libc/db/dbtest.c new file mode 100644 index 000000000..c28ec0db5 --- /dev/null +++ b/src/regress/lib/libc/db/dbtest.c @@ -0,0 +1,733 @@ +/* $OpenBSD: dbtest.c,v 1.12 2009/10/27 23:59:32 deraadt Exp $ */ +/* $NetBSD: dbtest.c,v 1.8 1996/05/03 21:57:48 cgd Exp $ */ + +/*- + * Copyright (c) 1992, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +enum S { COMMAND, COMPARE, GET, PUT, REMOVE, SEQ, SEQFLAG, KEY, DATA }; + +void compare(DBT *, DBT *); +DBTYPE dbtype(char *); +void dump(DB *, int); +void dberr(const char *, ...); +void get(DB *, DBT *); +void getdata(DB *, DBT *, DBT *); +void put(DB *, DBT *, DBT *); +void rem(DB *, DBT *); +char *sflags(int); +void synk(DB *); +void *rfile(char *, size_t *); +void seq(DB *, DBT *); +u_int setflags(char *); +void *setinfo(DBTYPE, char *); +void usage(void); +void *xmalloc(char *, size_t); + +DBTYPE type; /* Database type. */ +void *infop; /* Iflags. */ +u_long lineno; /* Current line in test script. */ +u_int flags; /* Current DB flags. */ +int ofd = STDOUT_FILENO; /* Standard output fd. */ + +DB *XXdbp; /* Global for gdb. */ +int XXlineno; /* Fast breakpoint for gdb. */ + +int +main(int argc, char *argv[]) +{ + extern int optind; + extern char *optarg; + enum S command, state; + DB *dbp; + DBT data, key, keydata; + size_t len; + int ch, oflags, sflag; + char *fname, *infoarg, *p, *t, buf[8 * 1024]; + + infoarg = NULL; + fname = NULL; + oflags = O_CREAT | O_RDWR; + sflag = 0; + while ((ch = getopt(argc, argv, "f:i:lo:s")) != -1) + switch (ch) { + case 'f': + fname = optarg; + break; + case 'i': + infoarg = optarg; + break; + case 'l': + oflags |= DB_LOCK; + break; + case 'o': + if ((ofd = open(optarg, + O_WRONLY|O_CREAT|O_TRUNC, 0666)) < 0) + dberr("%s: %s", optarg, strerror(errno)); + break; + case 's': + sflag = 1; + break; + case '?': + default: + usage(); + } + argc -= optind; + argv += optind; + + if (argc != 2) + usage(); + + /* Set the type. */ + type = dbtype(*argv++); + + /* Open the descriptor file. */ + if (strcmp(*argv, "-") && freopen(*argv, "r", stdin) == NULL) + dberr("%s: %s", *argv, strerror(errno)); + + /* Set up the db structure as necessary. */ + if (infoarg == NULL) + infop = NULL; + else + for (p = strtok(infoarg, ",\t "); p != NULL; + p = strtok(0, ",\t ")) + if (*p != '\0') + infop = setinfo(type, p); + + /* + * Open the DB. Delete any preexisting copy, you almost never + * want it around, and it often screws up tests. + */ + if (fname == NULL) { + p = getenv("TMPDIR"); + if (p == NULL) + p = "/var/tmp"; + (void)snprintf(buf, sizeof buf, "%s/__dbtest", p); + fname = buf; + (void)unlink(buf); + } else if (!sflag) + (void)unlink(fname); + + if ((dbp = dbopen(fname, + oflags, S_IRUSR | S_IWUSR, type, infop)) == NULL) + dberr("dbopen: %s", strerror(errno)); + XXdbp = dbp; + + state = COMMAND; + for (lineno = 1; + (p = fgets(buf, sizeof(buf), stdin)) != NULL; ++lineno) { + /* Delete the newline, displaying the key/data is easier. */ + if (ofd == STDOUT_FILENO && (t = strchr(p, '\n')) != NULL) + *t = '\0'; + if ((len = strlen(buf)) == 0 || isspace(*p) || *p == '#') + continue; + + /* Convenient gdb break point. */ + if (XXlineno == lineno) + XXlineno = 1; + switch (*p) { + case 'c': /* compare */ + if (state != COMMAND) + dberr("line %lu: not expecting command", + lineno); + state = KEY; + command = COMPARE; + break; + case 'e': /* echo */ + if (state != COMMAND) + dberr("line %lu: not expecting command", + lineno); + /* Don't display the newline, if CR at EOL. */ + if (p[len - 2] == '\r') + --len; + if (write(ofd, p + 1, len - 1) != len - 1 || + write(ofd, "\n", 1) != 1) + dberr("write: %s", strerror(errno)); + break; + case 'g': /* get */ + if (state != COMMAND) + dberr("line %lu: not expecting command", + lineno); + state = KEY; + command = GET; + break; + case 'p': /* put */ + if (state != COMMAND) + dberr("line %lu: not expecting command", + lineno); + state = KEY; + command = PUT; + break; + case 'r': /* remove */ + if (state != COMMAND) + dberr("line %lu: not expecting command", + lineno); + if (flags == R_CURSOR) { + rem(dbp, &key); + state = COMMAND; + } else { + state = KEY; + command = REMOVE; + } + break; + case 'S': /* sync */ + if (state != COMMAND) + dberr("line %lu: not expecting command", + lineno); + synk(dbp); + state = COMMAND; + break; + case 's': /* seq */ + if (state != COMMAND) + dberr("line %lu: not expecting command", + lineno); + if (flags == R_CURSOR) { + state = KEY; + command = SEQ; + } else + seq(dbp, &key); + break; + case 'f': + flags = setflags(p + 1); + break; + case 'D': /* data file */ + if (state != DATA) + dberr("line %lu: not expecting data", lineno); + data.data = rfile(p + 1, &data.size); + goto ldata; + case 'd': /* data */ + if (state != DATA) + dberr("line %lu: not expecting data", lineno); + data.data = xmalloc(p + 1, len - 1); + data.size = len - 1; +ldata: switch (command) { + case COMPARE: + compare(&keydata, &data); + break; + case PUT: + put(dbp, &key, &data); + break; + default: + dberr("line %lu: command doesn't take data", + lineno); + } + if (type != DB_RECNO) + free(key.data); + free(data.data); + state = COMMAND; + break; + case 'K': /* key file */ + if (state != KEY) + dberr("line %lu: not expecting a key", lineno); + if (type == DB_RECNO) + dberr("line %lu: 'K' not available for recno", + lineno); + key.data = rfile(p + 1, &key.size); + goto lkey; + case 'k': /* key */ + if (state != KEY) + dberr("line %lu: not expecting a key", lineno); + if (type == DB_RECNO) { + static recno_t recno; + recno = atoi(p + 1); + key.data = &recno; + key.size = sizeof(recno); + } else { + key.data = xmalloc(p + 1, len - 1); + key.size = len - 1; + } +lkey: switch (command) { + case COMPARE: + getdata(dbp, &key, &keydata); + state = DATA; + break; + case GET: + get(dbp, &key); + if (type != DB_RECNO) + free(key.data); + state = COMMAND; + break; + case PUT: + state = DATA; + break; + case REMOVE: + rem(dbp, &key); + if ((type != DB_RECNO) && (flags != R_CURSOR)) + free(key.data); + state = COMMAND; + break; + case SEQ: + seq(dbp, &key); + if ((type != DB_RECNO) && (flags != R_CURSOR)) + free(key.data); + state = COMMAND; + break; + default: + dberr("line %lu: command doesn't take a key", + lineno); + } + break; + case 'o': + dump(dbp, p[1] == 'r'); + break; + default: + dberr("line %lu: %s: unknown command character", + lineno, p); + } + } +#ifdef STATISTICS + /* + * -l must be used (DB_LOCK must be set) for this to be + * used, otherwise a page will be locked and it will fail. + */ + if (type == DB_BTREE && oflags & DB_LOCK) + __bt_stat(dbp); +#endif + if (dbp->close(dbp)) + dberr("db->close: %s", strerror(errno)); + (void)close(ofd); + exit(0); +} + +#define NOOVERWRITE "put failed, would overwrite key\n" + +void +compare(db1, db2) + DBT *db1, *db2; +{ + register size_t len; + register u_char *p1, *p2; + + if (db1->size != db2->size) + printf("compare failed: key->data len %lu != data len %lu\n", + db1->size, db2->size); + + len = MIN(db1->size, db2->size); + for (p1 = db1->data, p2 = db2->data; len--;) + if (*p1++ != *p2++) { + printf("compare failed at offset %d\n", + p1 - (u_char *)db1->data); + break; + } +} + +void +get(dbp, kp) + DB *dbp; + DBT *kp; +{ + DBT data; + + switch (dbp->get(dbp, kp, &data, flags)) { + case 0: + (void)write(ofd, data.data, data.size); + if (ofd == STDOUT_FILENO) + (void)write(ofd, "\n", 1); + break; + case -1: + dberr("line %lu: get: %s", lineno, strerror(errno)); + /* NOTREACHED */ + case 1: +#define NOSUCHKEY "get failed, no such key\n" + if (ofd != STDOUT_FILENO) + (void)write(ofd, NOSUCHKEY, sizeof(NOSUCHKEY) - 1); + else + (void)fprintf(stderr, "%d: %.*s: %s", + lineno, MIN(kp->size, 20), kp->data, NOSUCHKEY); +#undef NOSUCHKEY + break; + } +} + +void +getdata(dbp, kp, dp) + DB *dbp; + DBT *kp, *dp; +{ + switch (dbp->get(dbp, kp, dp, flags)) { + case 0: + return; + case -1: + dberr("line %lu: getdata: %s", lineno, strerror(errno)); + /* NOTREACHED */ + case 1: + dberr("line %lu: getdata failed, no such key", lineno); + /* NOTREACHED */ + } +} + +void +put(dbp, kp, dp) + DB *dbp; + DBT *kp, *dp; +{ + switch (dbp->put(dbp, kp, dp, flags)) { + case 0: + break; + case -1: + dberr("line %lu: put: %s", lineno, strerror(errno)); + /* NOTREACHED */ + case 1: + (void)write(ofd, NOOVERWRITE, sizeof(NOOVERWRITE) - 1); + break; + } +} + +void +rem(dbp, kp) + DB *dbp; + DBT *kp; +{ + switch (dbp->del(dbp, kp, flags)) { + case 0: + break; + case -1: + dberr("line %lu: rem: %s", lineno, strerror(errno)); + /* NOTREACHED */ + case 1: +#define NOSUCHKEY "rem failed, no such key\n" + if (ofd != STDOUT_FILENO) + (void)write(ofd, NOSUCHKEY, sizeof(NOSUCHKEY) - 1); + else if (flags != R_CURSOR) + (void)fprintf(stderr, "%d: %.*s: %s", + lineno, MIN(kp->size, 20), kp->data, NOSUCHKEY); + else + (void)fprintf(stderr, + "%d: rem of cursor failed\n", lineno); +#undef NOSUCHKEY + break; + } +} + +void +synk(dbp) + DB *dbp; +{ + switch (dbp->sync(dbp, flags)) { + case 0: + break; + case -1: + dberr("line %lu: synk: %s", lineno, strerror(errno)); + /* NOTREACHED */ + } +} + +void +seq(dbp, kp) + DB *dbp; + DBT *kp; +{ + DBT data; + + switch (dbp->seq(dbp, kp, &data, flags)) { + case 0: + (void)write(ofd, data.data, data.size); + if (ofd == STDOUT_FILENO) + (void)write(ofd, "\n", 1); + break; + case -1: + dberr("line %lu: seq: %s", lineno, strerror(errno)); + /* NOTREACHED */ + case 1: +#define NOSUCHKEY "seq failed, no such key\n" + if (ofd != STDOUT_FILENO) + (void)write(ofd, NOSUCHKEY, sizeof(NOSUCHKEY) - 1); + else if (flags == R_CURSOR) + (void)fprintf(stderr, "%d: %.*s: %s", + lineno, MIN(kp->size, 20), kp->data, NOSUCHKEY); + else + (void)fprintf(stderr, + "%d: seq (%s) failed\n", lineno, sflags(flags)); +#undef NOSUCHKEY + break; + } +} + +void +dump(dbp, rev) + DB *dbp; + int rev; +{ + DBT key, data; + int flags, nflags; + + if (rev) { + flags = R_LAST; + nflags = R_PREV; + } else { + flags = R_FIRST; + nflags = R_NEXT; + } + for (;; flags = nflags) + switch (dbp->seq(dbp, &key, &data, flags)) { + case 0: + (void)write(ofd, data.data, data.size); + if (ofd == STDOUT_FILENO) + (void)write(ofd, "\n", 1); + break; + case 1: + goto done; + case -1: + dberr("line %lu: (dump) seq: %s", + lineno, strerror(errno)); + /* NOTREACHED */ + } +done: return; +} + +u_int +setflags(s) + char *s; +{ + char *p; + + for (; isspace(*s); ++s); + if (*s == '\n' || *s == '\0') + return (0); + if ((p = strchr(s, '\n')) != NULL) + *p = '\0'; + if (!strcmp(s, "R_CURSOR")) return (R_CURSOR); + if (!strcmp(s, "R_FIRST")) return (R_FIRST); + if (!strcmp(s, "R_IAFTER")) return (R_IAFTER); + if (!strcmp(s, "R_IBEFORE")) return (R_IBEFORE); + if (!strcmp(s, "R_LAST")) return (R_LAST); + if (!strcmp(s, "R_NEXT")) return (R_NEXT); + if (!strcmp(s, "R_NOOVERWRITE")) return (R_NOOVERWRITE); + if (!strcmp(s, "R_PREV")) return (R_PREV); + if (!strcmp(s, "R_SETCURSOR")) return (R_SETCURSOR); + + dberr("line %lu: %s: unknown flag", lineno, s); + /* NOTREACHED */ +} + +char * +sflags(flags) + int flags; +{ + switch (flags) { + case R_CURSOR: return ("R_CURSOR"); + case R_FIRST: return ("R_FIRST"); + case R_IAFTER: return ("R_IAFTER"); + case R_IBEFORE: return ("R_IBEFORE"); + case R_LAST: return ("R_LAST"); + case R_NEXT: return ("R_NEXT"); + case R_NOOVERWRITE: return ("R_NOOVERWRITE"); + case R_PREV: return ("R_PREV"); + case R_SETCURSOR: return ("R_SETCURSOR"); + } + + return ("UNKNOWN!"); +} + +DBTYPE +dbtype(s) + char *s; +{ + if (!strcmp(s, "btree")) + return (DB_BTREE); + if (!strcmp(s, "hash")) + return (DB_HASH); + if (!strcmp(s, "recno")) + return (DB_RECNO); + dberr("%s: unknown type (use btree, hash or recno)", s); + /* NOTREACHED */ +} + +void * +setinfo(type, s) + DBTYPE type; + char *s; +{ + static BTREEINFO ib; + static HASHINFO ih; + static RECNOINFO rh; + char *eq; + + if ((eq = strchr(s, '=')) == NULL) + dberr("%s: illegal structure set statement", s); + *eq++ = '\0'; + if (!isdigit(*eq)) + dberr("%s: structure set statement must be a number", s); + + switch (type) { + case DB_BTREE: + if (!strcmp("flags", s)) { + ib.flags = atoi(eq); + return (&ib); + } + if (!strcmp("cachesize", s)) { + ib.cachesize = atoi(eq); + return (&ib); + } + if (!strcmp("maxkeypage", s)) { + ib.maxkeypage = atoi(eq); + return (&ib); + } + if (!strcmp("minkeypage", s)) { + ib.minkeypage = atoi(eq); + return (&ib); + } + if (!strcmp("lorder", s)) { + ib.lorder = atoi(eq); + return (&ib); + } + if (!strcmp("psize", s)) { + ib.psize = atoi(eq); + return (&ib); + } + break; + case DB_HASH: + if (!strcmp("bsize", s)) { + ih.bsize = atoi(eq); + return (&ih); + } + if (!strcmp("ffactor", s)) { + ih.ffactor = atoi(eq); + return (&ih); + } + if (!strcmp("nelem", s)) { + ih.nelem = atoi(eq); + return (&ih); + } + if (!strcmp("cachesize", s)) { + ih.cachesize = atoi(eq); + return (&ih); + } + if (!strcmp("lorder", s)) { + ih.lorder = atoi(eq); + return (&ih); + } + break; + case DB_RECNO: + if (!strcmp("flags", s)) { + rh.flags = atoi(eq); + return (&rh); + } + if (!strcmp("cachesize", s)) { + rh.cachesize = atoi(eq); + return (&rh); + } + if (!strcmp("lorder", s)) { + rh.lorder = atoi(eq); + return (&rh); + } + if (!strcmp("reclen", s)) { + rh.reclen = atoi(eq); + return (&rh); + } + if (!strcmp("bval", s)) { + rh.bval = atoi(eq); + return (&rh); + } + if (!strcmp("psize", s)) { + rh.psize = atoi(eq); + return (&rh); + } + break; + } + dberr("%s: unknown structure value", s); + /* NOTREACHED */ +} + +void * +rfile(name, lenp) + char *name; + size_t *lenp; +{ + struct stat sb; + void *p; + int fd; + char *np; + + for (; isspace(*name); ++name); + if ((np = strchr(name, '\n')) != NULL) + *np = '\0'; + if ((fd = open(name, O_RDONLY, 0)) < 0 || + fstat(fd, &sb)) + dberr("%s: %s\n", name, strerror(errno)); +#ifdef NOT_PORTABLE + if (sb.st_size > (off_t)SIZE_T_MAX) + dberr("%s: %s\n", name, strerror(E2BIG)); +#endif + if ((p = (void *)malloc((u_int)sb.st_size)) == NULL) + dberr("%s", strerror(errno)); + (void)read(fd, p, (int)sb.st_size); + *lenp = sb.st_size; + (void)close(fd); + return (p); +} + +void * +xmalloc(text, len) + char *text; + size_t len; +{ + void *p; + + if ((p = (void *)malloc(len)) == NULL) + dberr("%s", strerror(errno)); + memmove(p, text, len); + return (p); +} + +void +usage() +{ + (void)fprintf(stderr, + "usage: dbtest [-l] [-f file] [-i info] [-o file] type script\n"); + exit(1); +} + +void +dberr(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + (void)fprintf(stderr, "dbtest: "); + (void)vfprintf(stderr, fmt, ap); + va_end(ap); + (void)fprintf(stderr, "\n"); + exit(1); + /* NOTREACHED */ +} diff --git a/src/regress/lib/libc/db/obj b/src/regress/lib/libc/db/obj new file mode 120000 index 000000000..619857b44 --- /dev/null +++ b/src/regress/lib/libc/db/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/db \ No newline at end of file diff --git a/src/regress/lib/libc/db/run.test b/src/regress/lib/libc/db/run.test new file mode 100644 index 000000000..0d6837e36 --- /dev/null +++ b/src/regress/lib/libc/db/run.test @@ -0,0 +1,707 @@ +#!/bin/sh - +# +# $OpenBSD: run.test,v 1.3 2001/01/29 02:05:41 niklas Exp $ +# $NetBSD: run.test,v 1.8 1996/05/03 21:57:51 cgd Exp $ +# @(#)run.test 8.10 (Berkeley) 7/26/94 +# + +# db regression tests +main() +{ + + PROG=./dbtest + TMP1=t1 + TMP2=t2 + TMP3=t3 + + if [ -f /usr/share/dict/words ]; then + DICT=/usr/share/dict/words + elif [ -f /usr/dict/words ]; then + DICT=/usr/dict/words + else + echo 'run.test: no dictionary' + exit 1 + fi + + if [ $# -eq 0 ]; then + for t in 1 2 3 4 5 6 7 8 9 10 11 12 13 20; do + test$t + done + else + while [ $# -gt 0 ] + do case "$1" in + test*) + $1;; + [0-9]*) + test$1;; + btree) + for t in 1 2 3 7 8 9 10 12 13; do + test$t + done;; + hash) + for t in 1 2 3 8 13 20; do + test$t + done;; + recno) + for t in 1 2 3 4 5 6 7 10 11; do + test$t + done;; + *) + echo "run.test: unknown test $1" + echo "usage: run.test test# | type" + exit 1 + esac + shift + done + fi + rm -f $TMP1 $TMP2 $TMP3 + exit 0 +} + +# Take the first hundred entries in the dictionary, and make them +# be key/data pairs. +test1() +{ + echo "Test 1: btree, hash: small key, small data pairs" + sed 200q $DICT > $TMP1 + for type in btree hash; do + rm -f $TMP2 $TMP3 + for i in `sed 200q $DICT`; do + echo p + echo k$i + echo d$i + echo g + echo k$i + done > $TMP2 + $PROG -o $TMP3 $type $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test1: type $type: failed" + exit 1 + fi + done + echo "Test 1: recno: small key, small data pairs" + rm -f $TMP2 $TMP3 + sed 200q $DICT | + awk '{ + ++i; + printf("p\nk%d\nd%s\ng\nk%d\n", i, $0, i); + }' > $TMP2 + $PROG -o $TMP3 recno $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test1: type recno: failed" + exit 1 + fi +} + +# Take the first 200 entries in the dictionary, and give them +# each a medium size data entry. +test2() +{ + echo "Test 2: btree, hash: small key, medium data pairs" + mdata=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz + echo $mdata | + awk '{ for (i = 1; i < 201; ++i) print $0 }' > $TMP1 + for type in hash btree; do + rm -f $TMP2 $TMP3 + for i in `sed 200q $DICT`; do + echo p + echo k$i + echo d$mdata + echo g + echo k$i + done > $TMP2 + $PROG -o $TMP3 $type $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test2: type $type: failed" + exit 1 + fi + done + echo "Test 2: recno: small key, medium data pairs" + rm -f $TMP2 $TMP3 + echo $mdata | + awk '{ for (i = 1; i < 201; ++i) + printf("p\nk%d\nd%s\ng\nk%d\n", i, $0, i); + }' > $TMP2 + $PROG -o $TMP3 recno $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test2: type recno: failed" + exit 1 + fi +} + +# Insert the programs in /bin with their paths as their keys. +test3() +{ + echo "Test 3: hash: small key, big data pairs" + rm -f $TMP1 + (find /bin -type f -print | xargs cat) > $TMP1 + for type in hash; do + rm -f $TMP2 $TMP3 + for i in `find /bin -type f -print`; do + echo p + echo k$i + echo D$i + echo g + echo k$i + done > $TMP2 + $PROG -o $TMP3 $type $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test3: $type: failed" + exit 1 + fi + done + echo "Test 3: btree: small key, big data pairs" + for psize in 512 16384 65536; do + echo " page size $psize" + for type in btree; do + rm -f $TMP2 $TMP3 + for i in `find /bin -type f -print`; do + echo p + echo k$i + echo D$i + echo g + echo k$i + done > $TMP2 + $PROG -i psize=$psize -o $TMP3 $type $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test3: $type: page size $psize: failed" + exit 1 + fi + done + done + echo "Test 3: recno: big data pairs" + rm -f $TMP2 $TMP3 + find /bin -type f -print | + awk '{ + ++i; + printf("p\nk%d\nD%s\ng\nk%d\n", i, $0, i); + }' > $TMP2 + for psize in 512 16384 65536; do + echo " page size $psize" + $PROG -i psize=$psize -o $TMP3 recno $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test3: recno: page size $psize: failed" + exit 1 + fi + done +} + +# Do random recno entries. +test4() +{ + echo "Test 4: recno: random entries" + echo "abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg" | + awk '{ + for (i = 37; i <= 37 + 88 * 17; i += 17) { + if (i % 41) + s = substr($0, 1, i % 41); + else + s = substr($0, 1); + printf("input key %d: %s\n", i, s); + } + for (i = 1; i <= 15; ++i) { + if (i % 41) + s = substr($0, 1, i % 41); + else + s = substr($0, 1); + printf("input key %d: %s\n", i, s); + } + for (i = 19234; i <= 19234 + 61 * 27; i += 27) { + if (i % 41) + s = substr($0, 1, i % 41); + else + s = substr($0, 1); + printf("input key %d: %s\n", i, s); + } + exit + }' > $TMP1 + rm -f $TMP2 $TMP3 + cat $TMP1 | + awk 'BEGIN { + i = 37; + incr = 17; + } + { + printf("p\nk%d\nd%s\n", i, $0); + if (i == 19234 + 61 * 27) + exit; + if (i == 37 + 88 * 17) { + i = 1; + incr = 1; + } else if (i == 15) { + i = 19234; + incr = 27; + } else + i += incr; + } + END { + for (i = 37; i <= 37 + 88 * 17; i += 17) + printf("g\nk%d\n", i); + for (i = 1; i <= 15; ++i) + printf("g\nk%d\n", i); + for (i = 19234; i <= 19234 + 61 * 27; i += 27) + printf("g\nk%d\n", i); + }' > $TMP2 + $PROG -o $TMP3 recno $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test4: type recno: failed" + exit 1 + fi +} + +# Do reverse order recno entries. +test5() +{ + echo "Test 5: recno: reverse order entries" + echo "abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg" | + awk ' { + for (i = 1500; i; --i) { + if (i % 34) + s = substr($0, 1, i % 34); + else + s = substr($0, 1); + printf("input key %d: %s\n", i, s); + } + exit; + }' > $TMP1 + rm -f $TMP2 $TMP3 + cat $TMP1 | + awk 'BEGIN { + i = 1500; + } + { + printf("p\nk%d\nd%s\n", i, $0); + --i; + } + END { + for (i = 1500; i; --i) + printf("g\nk%d\n", i); + }' > $TMP2 + $PROG -o $TMP3 recno $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test5: type recno: failed" + exit 1 + fi +} + +# Do alternating order recno entries. +test6() +{ + echo "Test 6: recno: alternating order entries" + echo "abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg" | + awk ' { + for (i = 1; i < 1200; i += 2) { + if (i % 34) + s = substr($0, 1, i % 34); + else + s = substr($0, 1); + printf("input key %d: %s\n", i, s); + } + for (i = 2; i < 1200; i += 2) { + if (i % 34) + s = substr($0, 1, i % 34); + else + s = substr($0, 1); + printf("input key %d: %s\n", i, s); + } + exit; + }' > $TMP1 + rm -f $TMP2 $TMP3 + cat $TMP1 | + awk 'BEGIN { + i = 1; + even = 0; + } + { + printf("p\nk%d\nd%s\n", i, $0); + i += 2; + if (i >= 1200) { + if (even == 1) + exit; + even = 1; + i = 2; + } + } + END { + for (i = 1; i < 1200; ++i) + printf("g\nk%d\n", i); + }' > $TMP2 + $PROG -o $TMP3 recno $TMP2 + sort -o $TMP1 $TMP1 + sort -o $TMP3 $TMP3 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test6: type recno: failed" + exit 1 + fi +} + +# Delete cursor record +test7() +{ + echo "Test 7: btree, recno: delete cursor record" + echo "abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg" | + awk '{ + for (i = 1; i <= 120; ++i) + printf("%05d: input key %d: %s\n", i, i, $0); + printf("%05d: input key %d: %s\n", 120, 120, $0); + printf("seq failed, no such key\n"); + printf("%05d: input key %d: %s\n", 1, 1, $0); + printf("%05d: input key %d: %s\n", 2, 2, $0); + exit; + }' > $TMP1 + rm -f $TMP2 $TMP3 + + for type in btree recno; do + cat $TMP1 | + awk '{ + if (i == 120) + exit; + printf("p\nk%d\nd%s\n", ++i, $0); + } + END { + printf("fR_NEXT\n"); + for (i = 1; i <= 120; ++i) + printf("s\n"); + printf("fR_CURSOR\ns\nk120\n"); + printf("r\n"); + printf("fR_NEXT\ns\n"); + printf("fR_CURSOR\ns\nk1\n"); + printf("r\n"); + printf("fR_FIRST\ns\n"); + }' > $TMP2 + $PROG -o $TMP3 recno $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test7: type $type: failed" + exit 1 + fi + done +} + +# Make sure that overflow pages are reused. +test8() +{ + echo "Test 8: btree, hash: repeated small key, big data pairs" + rm -f $TMP1 + echo "" | + awk 'BEGIN { + for (i = 1; i <= 10; ++i) { + printf("p\nkkey1\nD/bin/sh\n"); + printf("p\nkkey2\nD/bin/csh\n"); + if (i % 8 == 0) { + printf("c\nkkey2\nD/bin/csh\n"); + printf("c\nkkey1\nD/bin/sh\n"); + printf("e\t%d of 10 (comparison)\n", i); + } else + printf("e\t%d of 10 \n", i); + printf("r\nkkey1\nr\nkkey2\n"); + } + }' > $TMP1 + $PROG btree $TMP1 +# $PROG hash $TMP1 + # No explicit test for success. +} + +# Test btree duplicate keys +test9() +{ + echo "Test 9: btree: duplicate keys" + echo "abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg" | + awk '{ + for (i = 1; i <= 543; ++i) + printf("%05d: input key %d: %s\n", i, i, $0); + exit; + }' > $TMP1 + rm -f $TMP2 $TMP3 + + for type in btree; do + cat $TMP1 | + awk '{ + if (i++ % 2) + printf("p\nkduplicatekey\nd%s\n", $0); + else + printf("p\nkunique%dkey\nd%s\n", i, $0); + } + END { + printf("o\n"); + }' > $TMP2 + $PROG -iflags=1 -o $TMP3 $type $TMP2 + sort -o $TMP3 $TMP3 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test9: type $type: failed" + exit 1 + fi + done +} + +# Test use of cursor flags without initialization +test10() +{ + echo "Test 10: btree, recno: test cursor flag use" + echo "abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg" | + awk '{ + for (i = 1; i <= 20; ++i) + printf("%05d: input key %d: %s\n", i, i, $0); + exit; + }' > $TMP1 + rm -f $TMP2 $TMP3 + + # Test that R_CURSOR doesn't succeed before cursor initialized + for type in btree recno; do + cat $TMP1 | + awk '{ + if (i == 10) + exit; + printf("p\nk%d\nd%s\n", ++i, $0); + } + END { + printf("fR_CURSOR\nr\n"); + printf("eR_CURSOR SHOULD HAVE FAILED\n"); + }' > $TMP2 + $PROG -o $TMP3 $type $TMP2 > /dev/null 2>&1 + if [ -s $TMP3 ] ; then + echo "Test 10: delete: R_CURSOR SHOULD HAVE FAILED" + exit 1 + fi + done + for type in btree recno; do + cat $TMP1 | + awk '{ + if (i == 10) + exit; + printf("p\nk%d\nd%s\n", ++i, $0); + } + END { + printf("fR_CURSOR\np\nk1\ndsome data\n"); + printf("eR_CURSOR SHOULD HAVE FAILED\n"); + }' > $TMP2 + $PROG -o $TMP3 $type $TMP2 > /dev/null 2>&1 + if [ -s $TMP3 ] ; then + echo "Test 10: put: R_CURSOR SHOULD HAVE FAILED" + exit 1 + fi + done +} + +# Test insert in reverse order. +test11() +{ + echo "Test 11: recno: reverse order insert" + echo "abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg" | + awk '{ + for (i = 1; i <= 779; ++i) + printf("%05d: input key %d: %s\n", i, i, $0); + exit; + }' > $TMP1 + rm -f $TMP2 $TMP3 + + for type in recno; do + cat $TMP1 | + awk '{ + if (i == 0) { + i = 1; + printf("p\nk1\nd%s\n", $0); + printf("%s\n", "fR_IBEFORE"); + } else + printf("p\nk1\nd%s\n", $0); + } + END { + printf("or\n"); + }' > $TMP2 + $PROG -o $TMP3 $type $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test11: type $type: failed" + exit 1 + fi + done +} + +# Take the first 20000 entries in the dictionary, reverse them, and give +# them each a small size data entry. Use a small page size to make sure +# the btree split code gets hammered. +test12() +{ + echo "Test 12: btree: lots of keys, small page size" + mdata=abcdefghijklmnopqrstuvwxy + echo $mdata | + awk '{ for (i = 1; i < 20001; ++i) print $0 }' > $TMP1 + for type in btree; do + rm -f $TMP2 $TMP3 + for i in `sed 20000q $DICT | rev`; do + echo p + echo k$i + echo d$mdata + echo g + echo k$i + done > $TMP2 + $PROG -i psize=512 -o $TMP3 $type $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test12: type $type: failed" + exit 1 + fi + done +} + +# Test different byte orders. +test13() +{ + echo "Test 13: btree, hash: differing byte orders" + sed 50q $DICT > $TMP1 + for order in 1234 4321; do + for type in btree hash; do + rm -f byte.file $TMP2 $TMP3 + for i in `sed 50q $DICT`; do + echo p + echo k$i + echo d$i + echo g + echo k$i + done > $TMP2 + $PROG -ilorder=$order -f byte.file -o $TMP3 $type $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test13: $type/$order put failed" + exit 1 + fi + for i in `sed 50q $DICT`; do + echo g + echo k$i + done > $TMP2 + $PROG -s \ + -ilorder=$order -f byte.file -o $TMP3 $type $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test13: $type/$order get failed" + exit 1 + fi + done + done + rm -f byte.file +} + +# Try a variety of bucketsizes and fill factors for hashing +test20() +{ + echo\ + "Test 20: hash: bucketsize, fill factor; nelem 25000 cachesize 65536" + echo "abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg" | + awk '{ + for (i = 1; i <= 10000; ++i) { + if (i % 34) + s = substr($0, 1, i % 34); + else + s = substr($0, 1); + printf("%s\n", s); + } + exit; + }' > $TMP1 + sed 10000q $DICT | + awk 'BEGIN { + ds="abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg" + } + { + if (++i % 34) + s = substr(ds, 1, i % 34); + else + s = substr(ds, 1); + printf("p\nk%s\nd%s\n", $0, s); + }' > $TMP2 + sed 10000q $DICT | + awk '{ + ++i; + printf("g\nk%s\n", $0); + }' >> $TMP2 + bsize=256 + for ffactor in 11 14 21; do + echo " bucketsize $bsize, fill factor $ffactor" + $PROG -o$TMP3 \ + -ibsize=$bsize,ffactor=$ffactor,nelem=25000,cachesize=65536\ + hash $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test20: type hash:\ +bsize=$bsize ffactor=$ffactor nelem=25000 cachesize=65536 failed" + exit 1 + fi + done + bsize=512 + for ffactor in 21 28 43; do + echo " bucketsize $bsize, fill factor $ffactor" + $PROG -o$TMP3 \ + -ibsize=$bsize,ffactor=$ffactor,nelem=25000,cachesize=65536\ + hash $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test20: type hash:\ +bsize=$bsize ffactor=$ffactor nelem=25000 cachesize=65536 failed" + exit 1 + fi + done + bsize=1024 + for ffactor in 43 57 85; do + echo " bucketsize $bsize, fill factor $ffactor" + $PROG -o$TMP3 \ + -ibsize=$bsize,ffactor=$ffactor,nelem=25000,cachesize=65536\ + hash $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test20: type hash:\ +bsize=$bsize ffactor=$ffactor nelem=25000 cachesize=65536 failed" + exit 1 + fi + done + bsize=2048 + for ffactor in 85 114 171; do + echo " bucketsize $bsize, fill factor $ffactor" + $PROG -o$TMP3 \ + -ibsize=$bsize,ffactor=$ffactor,nelem=25000,cachesize=65536\ + hash $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test20: type hash:\ +bsize=$bsize ffactor=$ffactor nelem=25000 cachesize=65536 failed" + exit 1 + fi + done + bsize=4096 + for ffactor in 171 228 341; do + echo " bucketsize $bsize, fill factor $ffactor" + $PROG -o$TMP3 \ + -ibsize=$bsize,ffactor=$ffactor,nelem=25000,cachesize=65536\ + hash $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test20: type hash:\ +bsize=$bsize ffactor=$ffactor nelem=25000 cachesize=65536 failed" + exit 1 + fi + done + bsize=8192 + for ffactor in 341 455 683; do + echo " bucketsize $bsize, fill factor $ffactor" + $PROG -o$TMP3 \ + -ibsize=$bsize,ffactor=$ffactor,nelem=25000,cachesize=65536\ + hash $TMP2 + if (cmp -s $TMP1 $TMP3) ; then : + else + echo "test20: type hash:\ +bsize=$bsize ffactor=$ffactor nelem=25000 cachesize=65536 failed" + exit 1 + fi + done +} + +main $* diff --git a/src/regress/lib/libc/dirname/CVS/Entries b/src/regress/lib/libc/dirname/CVS/Entries new file mode 100644 index 000000000..5534f230c --- /dev/null +++ b/src/regress/lib/libc/dirname/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu May 17 03:02:32 2007// +/dirname_test.c/1.3/Sat Oct 20 12:37:09 2007// +D diff --git a/src/regress/lib/libc/dirname/CVS/Repository b/src/regress/lib/libc/dirname/CVS/Repository new file mode 100644 index 000000000..b5ec32d1a --- /dev/null +++ b/src/regress/lib/libc/dirname/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/dirname diff --git a/src/regress/lib/libc/dirname/CVS/Root b/src/regress/lib/libc/dirname/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/dirname/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/dirname/Makefile b/src/regress/lib/libc/dirname/Makefile new file mode 100644 index 000000000..fc152df95 --- /dev/null +++ b/src/regress/lib/libc/dirname/Makefile @@ -0,0 +1,3 @@ +PROG=dirname_test + +.include diff --git a/src/regress/lib/libc/dirname/dirname_test.c b/src/regress/lib/libc/dirname/dirname_test.c new file mode 100644 index 000000000..add76980c --- /dev/null +++ b/src/regress/lib/libc/dirname/dirname_test.c @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2007 Bret S. Lambert + * + * Public domain. + */ + +#include + +#include +#include +#include +#include +#include + +int +main(void) +{ + char path[2 * MAXPATHLEN]; + char dname[128]; + const char *dir = "junk"; + const char *fname = "/file.name.ext"; + char *str; + int i; + + /* Test normal functioning */ + strlcpy(path, "/", sizeof(path)); + strlcpy(dname, "/", sizeof(dname)); + strlcat(path, dir, sizeof(path)); + strlcat(dname, dir, sizeof(dname)); + strlcat(path, fname, sizeof(path)); + str = dirname(path); + if (strcmp(str, dname) != 0) + errx(1, "0: dirname(%s) = %s != %s", path, str, dname); + + /* + * There are four states that require special handling: + * + * 1) path is NULL + * 2) path is the empty string + * 3) path is composed entirely of slashes + * 4) the resulting name is larger than MAXPATHLEN + * + * The first two cases require that a pointer + * to the string "." be returned. + * + * The third case requires that a pointer + * to the string "/" be returned. + * + * The final case requires that NULL be returned + * and errno * be set to ENAMETOOLONG. + */ + /* Case 1 */ + str = dirname(NULL); + if (strcmp(str, ".") != 0) + errx(1, "1: dirname(NULL) = %s != .", str); + + /* Case 2 */ + strlcpy(path, "", sizeof(path)); + str = dirname(path); + if (strcmp(str, ".") != 0) + errx(1, "2: dirname(%s) = %s != .", path, str); + + /* Case 3 */ + for (i = 0; i < MAXPATHLEN - 1; i++) + strlcat(path, "/", sizeof(path)); /* path cleared above */ + str = dirname(path); + if (strcmp(str, "/") != 0) + errx(1, "3: dirname(%s) = %s != /", path, str); + + /* Case 4 */ + strlcpy(path, "/", sizeof(path)); /* reset path */ + for (i = 0; i <= MAXPATHLEN; i += strlen(dir)) + strlcat(path, dir, sizeof(path)); + strlcat(path, fname, sizeof(path)); + str = dirname(path); + if (str != NULL) + errx(1, "4: dirname(%s) = %s != NULL", path, str); + if (errno != ENAMETOOLONG) + errx(1, "4: dirname(%s) sets errno to %d", path, errno); + + return (0); +} diff --git a/src/regress/lib/libc/dirname/obj b/src/regress/lib/libc/dirname/obj new file mode 120000 index 000000000..596d28252 --- /dev/null +++ b/src/regress/lib/libc/dirname/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/dirname \ No newline at end of file diff --git a/src/regress/lib/libc/fnmatch/CVS/Entries b/src/regress/lib/libc/fnmatch/CVS/Entries new file mode 100644 index 000000000..17181f893 --- /dev/null +++ b/src/regress/lib/libc/fnmatch/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Wed Oct 1 23:04:58 2008// +/fnm_test.c/1.1/Wed Oct 1 23:04:58 2008// +/fnm_test.in/1.1/Wed Oct 1 23:04:58 2008// +D diff --git a/src/regress/lib/libc/fnmatch/CVS/Repository b/src/regress/lib/libc/fnmatch/CVS/Repository new file mode 100644 index 000000000..8cbda1440 --- /dev/null +++ b/src/regress/lib/libc/fnmatch/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/fnmatch diff --git a/src/regress/lib/libc/fnmatch/CVS/Root b/src/regress/lib/libc/fnmatch/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/fnmatch/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/fnmatch/Makefile b/src/regress/lib/libc/fnmatch/Makefile new file mode 100644 index 000000000..b2f357105 --- /dev/null +++ b/src/regress/lib/libc/fnmatch/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1 2008/10/01 23:04:58 millert Exp $ + +PROG= fnm_test + +run-regress-${PROG}: + ./${PROG} ${.CURDIR}/${PROG}.in + +.include diff --git a/src/regress/lib/libc/fnmatch/fnm_test.c b/src/regress/lib/libc/fnmatch/fnm_test.c new file mode 100644 index 000000000..e98701009 --- /dev/null +++ b/src/regress/lib/libc/fnmatch/fnm_test.c @@ -0,0 +1,45 @@ +/* $OpenBSD: fnm_test.c,v 1.1 2008/10/01 23:04:58 millert Exp $ */ + +/* + * Public domain, 2008, Todd C. Miller + */ + +#include +#include +#include +#include + +int +main(int argc, char **argv) +{ + FILE *fp = stdin; + char pattern[1024], string[1024]; + int errors = 0, flags, got, want; + + if (argc > 1) { + if ((fp = fopen(argv[1], "r")) == NULL) + err(1, "%s", argv[1]); + } + + /* + * Read in test file, which is formatted thusly: + * + * pattern string flags expected_result + * + */ + for (;;) { + got = fscanf(fp, "%s %s 0x%x %d\n", pattern, string, &flags, + &want); + if (got == EOF) + break; + if (got == 4) { + got = fnmatch(pattern, string, flags); + if (got != want) { + warnx("%s %s %d: want %d, got %d", pattern, + string, flags, want, got); + errors++; + } + } + } + exit(errors); +} diff --git a/src/regress/lib/libc/fnmatch/fnm_test.in b/src/regress/lib/libc/fnmatch/fnm_test.in new file mode 100644 index 000000000..3c707f8a1 --- /dev/null +++ b/src/regress/lib/libc/fnmatch/fnm_test.in @@ -0,0 +1,5 @@ +/bin/[[:alpha:][:alnum:]]* /bin/ls 0x2 0 +/bin/[[:upper:]][[:alnum:]] /bin/ls 0x10 0 +/bin/[[:opper:][:alnum:]]* /bin/ls 0x0 1 +[[:alpha:][:alnum:]]*.c foo1.c 0x4 0 +[[:upper:]]* FOO 0x0 0 diff --git a/src/regress/lib/libc/fnmatch/obj b/src/regress/lib/libc/fnmatch/obj new file mode 120000 index 000000000..476629153 --- /dev/null +++ b/src/regress/lib/libc/fnmatch/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/fnmatch \ No newline at end of file diff --git a/src/regress/lib/libc/fpclassify/CVS/Entries b/src/regress/lib/libc/fpclassify/CVS/Entries new file mode 100644 index 000000000..b73f8fe65 --- /dev/null +++ b/src/regress/lib/libc/fpclassify/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Sep 7 20:36:10 2008// +/fpclassify.c/1.1/Sun Sep 7 20:36:10 2008// +D diff --git a/src/regress/lib/libc/fpclassify/CVS/Repository b/src/regress/lib/libc/fpclassify/CVS/Repository new file mode 100644 index 000000000..f559101a8 --- /dev/null +++ b/src/regress/lib/libc/fpclassify/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/fpclassify diff --git a/src/regress/lib/libc/fpclassify/CVS/Root b/src/regress/lib/libc/fpclassify/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/fpclassify/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/fpclassify/Makefile b/src/regress/lib/libc/fpclassify/Makefile new file mode 100644 index 000000000..96916d20e --- /dev/null +++ b/src/regress/lib/libc/fpclassify/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2008/09/07 20:36:10 martynas Exp $ + +PROG= fpclassify + +.include diff --git a/src/regress/lib/libc/fpclassify/fpclassify.c b/src/regress/lib/libc/fpclassify/fpclassify.c new file mode 100644 index 000000000..174c04d98 --- /dev/null +++ b/src/regress/lib/libc/fpclassify/fpclassify.c @@ -0,0 +1,76 @@ +/* $OpenBSD: fpclassify.c,v 1.1 2008/09/07 20:36:10 martynas Exp $ */ +/*- + * Copyright (c) 2003 Mike Barcroft + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: src/tools/regression/lib/libc/gen/test-fpclassify.c,v 1.3 2003/03/27 05:32:28 das Exp $ + */ + +#include +#include +#include +#include + +int +main(void) +{ + + assert(fpclassify((float)0) == FP_ZERO); + assert(fpclassify((float)-0.0) == FP_ZERO); + assert(fpclassify((float)1) == FP_NORMAL); + assert(fpclassify((float)1000) == FP_NORMAL); +#ifndef __alpha__ + assert(fpclassify(0x1.2p-150f) == FP_SUBNORMAL); +#endif /* !__alpha__ */ + assert(fpclassify(HUGE_VALF) == FP_INFINITE); + assert(fpclassify((float)HUGE_VAL) == FP_INFINITE); + assert(fpclassify((float)HUGE_VALL) == FP_INFINITE); + assert(fpclassify(NAN) == FP_NAN); + + assert(fpclassify((double)0) == FP_ZERO); + assert(fpclassify((double)-0) == FP_ZERO); + assert(fpclassify((double)1) == FP_NORMAL); + assert(fpclassify((double)1000) == FP_NORMAL); +#ifndef __alpha__ + assert(fpclassify(0x1.2p-1075) == FP_SUBNORMAL); +#endif /* !__alpha__ */ + assert(fpclassify(HUGE_VAL) == FP_INFINITE); + assert(fpclassify((double)HUGE_VALF) == FP_INFINITE); + assert(fpclassify((double)HUGE_VALL) == FP_INFINITE); + assert(fpclassify((double)NAN) == FP_NAN); + + assert(fpclassify((long double)0) == FP_ZERO); + assert(fpclassify((long double)-0.0) == FP_ZERO); + assert(fpclassify((long double)1) == FP_NORMAL); + assert(fpclassify((long double)1000) == FP_NORMAL); +#if (LDBL_MANT_DIG > DBL_MANT_DIG) + assert(fpclassify(0x1.2p-16383L) == FP_SUBNORMAL); +#endif /* (LDBL_MANT_DIG > DBL_MANT_DIG) */ + assert(fpclassify(HUGE_VALL) == FP_INFINITE); + assert(fpclassify((long double)HUGE_VALF) == FP_INFINITE); + assert(fpclassify((long double)HUGE_VAL) == FP_INFINITE); + assert(fpclassify((long double)NAN) == FP_NAN); + + return (0); +} diff --git a/src/regress/lib/libc/fpclassify/obj b/src/regress/lib/libc/fpclassify/obj new file mode 120000 index 000000000..ab6b35493 --- /dev/null +++ b/src/regress/lib/libc/fpclassify/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/fpclassify \ No newline at end of file diff --git a/src/regress/lib/libc/getaddrinfo/CVS/Entries b/src/regress/lib/libc/getaddrinfo/CVS/Entries new file mode 100644 index 000000000..b0912b42a --- /dev/null +++ b/src/regress/lib/libc/getaddrinfo/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.3/Mon Sep 2 20:01:43 2002// +/answer/1.7/Mon Sep 14 13:40:35 2009// +/gaitest.c/1.6/Tue Jun 9 18:15:08 2009// +/testsuite.sh/1.1/Fri Jul 5 15:54:30 2002// +D diff --git a/src/regress/lib/libc/getaddrinfo/CVS/Repository b/src/regress/lib/libc/getaddrinfo/CVS/Repository new file mode 100644 index 000000000..229e2f176 --- /dev/null +++ b/src/regress/lib/libc/getaddrinfo/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/getaddrinfo diff --git a/src/regress/lib/libc/getaddrinfo/CVS/Root b/src/regress/lib/libc/getaddrinfo/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/getaddrinfo/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/getaddrinfo/Makefile b/src/regress/lib/libc/getaddrinfo/Makefile new file mode 100644 index 000000000..4d4978a6a --- /dev/null +++ b/src/regress/lib/libc/getaddrinfo/Makefile @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile,v 1.3 2002/09/02 20:01:43 avsm Exp $ + +PROG= gaitest +SRCS= gaitest.c +NOMAN= # defined +CLEANFILES+= out + +REGRESS_TARGETS=do-test + +do-test: ${PROG} + sh ${.CURDIR}/testsuite.sh >out 2>&1 + @if diff -u out ${.CURDIR}/answer; then \ + echo SUCCESS; \ + else \ + echo FAIL; \ + exit 1; \ + fi + +.include diff --git a/src/regress/lib/libc/getaddrinfo/answer b/src/regress/lib/libc/getaddrinfo/answer new file mode 100644 index 000000000..778fc64ba --- /dev/null +++ b/src/regress/lib/libc/getaddrinfo/answer @@ -0,0 +1,110 @@ +== basic ones +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host ::1 serv http +ai1: flags 0x2 family 24 socktype 1 protocol 6 addrlen 28 host ::1 serv 80 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host 127.0.0.1 serv http +ai1: flags 0x2 family 2 socktype 1 protocol 6 addrlen 16 host 127.0.0.1 serv 80 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host localhost serv http +ai1: flags 0x2 family 2 socktype 1 protocol 6 addrlen 16 host 127.0.0.1 serv 80 +ai2: flags 0x2 family 24 socktype 1 protocol 6 addrlen 28 host ::1 serv 80 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host ::1 serv tftp +ai1: flags 0x2 family 24 socktype 2 protocol 17 addrlen 28 host ::1 serv 69 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host 127.0.0.1 serv tftp +ai1: flags 0x2 family 2 socktype 2 protocol 17 addrlen 16 host 127.0.0.1 serv 69 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host localhost serv tftp +ai1: flags 0x2 family 2 socktype 2 protocol 17 addrlen 16 host 127.0.0.1 serv 69 +ai2: flags 0x2 family 24 socktype 2 protocol 17 addrlen 28 host ::1 serv 69 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host ::1 serv echo +ai1: flags 0x2 family 24 socktype 2 protocol 17 addrlen 28 host ::1 serv 7 +ai2: flags 0x2 family 24 socktype 1 protocol 6 addrlen 28 host ::1 serv 7 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host 127.0.0.1 serv echo +ai1: flags 0x2 family 2 socktype 2 protocol 17 addrlen 16 host 127.0.0.1 serv 7 +ai2: flags 0x2 family 2 socktype 1 protocol 6 addrlen 16 host 127.0.0.1 serv 7 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host localhost serv echo +ai1: flags 0x2 family 2 socktype 2 protocol 17 addrlen 16 host 127.0.0.1 serv 7 +ai2: flags 0x2 family 24 socktype 2 protocol 17 addrlen 28 host ::1 serv 7 +ai3: flags 0x2 family 2 socktype 1 protocol 6 addrlen 16 host 127.0.0.1 serv 7 +ai4: flags 0x2 family 24 socktype 1 protocol 6 addrlen 28 host ::1 serv 7 + +== specific address family +arg: flags 0x2 family 2 socktype 0 protocol 0 addrlen 0 host localhost serv http +ai1: flags 0x2 family 2 socktype 1 protocol 6 addrlen 16 host 127.0.0.1 serv 80 +arg: flags 0x2 family 24 socktype 0 protocol 0 addrlen 0 host localhost serv http +ai1: flags 0x2 family 24 socktype 1 protocol 6 addrlen 28 host ::1 serv 80 + +== empty hostname +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host (empty) serv http +ai1: flags 0x2 family 24 socktype 1 protocol 6 addrlen 28 host ::1 serv 80 +ai2: flags 0x2 family 2 socktype 1 protocol 6 addrlen 16 host 127.0.0.1 serv 80 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host (empty) serv echo +ai1: flags 0x2 family 24 socktype 2 protocol 17 addrlen 28 host ::1 serv 7 +ai2: flags 0x2 family 24 socktype 1 protocol 6 addrlen 28 host ::1 serv 7 +ai3: flags 0x2 family 2 socktype 2 protocol 17 addrlen 16 host 127.0.0.1 serv 7 +ai4: flags 0x2 family 2 socktype 1 protocol 6 addrlen 16 host 127.0.0.1 serv 7 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host (empty) serv tftp +ai1: flags 0x2 family 24 socktype 2 protocol 17 addrlen 28 host ::1 serv 69 +ai2: flags 0x2 family 2 socktype 2 protocol 17 addrlen 16 host 127.0.0.1 serv 69 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host (empty) serv 80 +ai1: flags 0x2 family 24 socktype 2 protocol 17 addrlen 28 host ::1 serv 80 +ai2: flags 0x2 family 24 socktype 1 protocol 6 addrlen 28 host ::1 serv 80 +ai3: flags 0x2 family 2 socktype 2 protocol 17 addrlen 16 host 127.0.0.1 serv 80 +ai4: flags 0x2 family 2 socktype 1 protocol 6 addrlen 16 host 127.0.0.1 serv 80 +arg: flags 0x3 family 0 socktype 0 protocol 0 addrlen 0 host (empty) serv http +ai1: flags 0x3 family 24 socktype 1 protocol 6 addrlen 28 host :: serv 80 +ai2: flags 0x3 family 2 socktype 1 protocol 6 addrlen 16 host 0.0.0.0 serv 80 +arg: flags 0x3 family 0 socktype 0 protocol 0 addrlen 0 host (empty) serv echo +ai1: flags 0x3 family 24 socktype 2 protocol 17 addrlen 28 host :: serv 7 +ai2: flags 0x3 family 24 socktype 1 protocol 6 addrlen 28 host :: serv 7 +ai3: flags 0x3 family 2 socktype 2 protocol 17 addrlen 16 host 0.0.0.0 serv 7 +ai4: flags 0x3 family 2 socktype 1 protocol 6 addrlen 16 host 0.0.0.0 serv 7 +arg: flags 0x3 family 0 socktype 0 protocol 0 addrlen 0 host (empty) serv tftp +ai1: flags 0x3 family 24 socktype 2 protocol 17 addrlen 28 host :: serv 69 +ai2: flags 0x3 family 2 socktype 2 protocol 17 addrlen 16 host 0.0.0.0 serv 69 +arg: flags 0x3 family 0 socktype 0 protocol 0 addrlen 0 host (empty) serv 80 +ai1: flags 0x3 family 24 socktype 2 protocol 17 addrlen 28 host :: serv 80 +ai2: flags 0x3 family 24 socktype 1 protocol 6 addrlen 28 host :: serv 80 +ai3: flags 0x3 family 2 socktype 2 protocol 17 addrlen 16 host 0.0.0.0 serv 80 +ai4: flags 0x3 family 2 socktype 1 protocol 6 addrlen 16 host 0.0.0.0 serv 80 +arg: flags 0x2 family 0 socktype 1 protocol 0 addrlen 0 host (empty) serv 80 +ai1: flags 0x2 family 24 socktype 1 protocol 6 addrlen 28 host ::1 serv 80 +ai2: flags 0x2 family 2 socktype 1 protocol 6 addrlen 16 host 127.0.0.1 serv 80 +arg: flags 0x2 family 0 socktype 2 protocol 0 addrlen 0 host (empty) serv 80 +ai1: flags 0x2 family 24 socktype 2 protocol 17 addrlen 28 host ::1 serv 80 +ai2: flags 0x2 family 2 socktype 2 protocol 17 addrlen 16 host 127.0.0.1 serv 80 + +== empty servname +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host ::1 serv (empty) +ai1: flags 0x2 family 24 socktype 2 protocol 17 addrlen 28 host ::1 serv 0 +ai2: flags 0x2 family 24 socktype 1 protocol 6 addrlen 28 host ::1 serv 0 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host 127.0.0.1 serv (empty) +ai1: flags 0x2 family 2 socktype 2 protocol 17 addrlen 16 host 127.0.0.1 serv 0 +ai2: flags 0x2 family 2 socktype 1 protocol 6 addrlen 16 host 127.0.0.1 serv 0 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host localhost serv (empty) +ai1: flags 0x2 family 2 socktype 2 protocol 17 addrlen 16 host 127.0.0.1 serv 0 +ai2: flags 0x2 family 24 socktype 2 protocol 17 addrlen 28 host ::1 serv 0 +ai3: flags 0x2 family 2 socktype 1 protocol 6 addrlen 16 host 127.0.0.1 serv 0 +ai4: flags 0x2 family 24 socktype 1 protocol 6 addrlen 28 host ::1 serv 0 +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host (empty) serv (empty) +name or service is not known + +== sock_raw +arg: flags 0x2 family 0 socktype 3 protocol 0 addrlen 0 host localhost serv (empty) +ai1: flags 0x2 family 2 socktype 3 protocol 0 addrlen 16 host 127.0.0.1 serv 0 +ai2: flags 0x2 family 24 socktype 3 protocol 0 addrlen 28 host ::1 serv 0 +arg: flags 0x2 family 0 socktype 3 protocol 59 addrlen 0 host localhost serv (empty) +ai1: flags 0x2 family 2 socktype 3 protocol 59 addrlen 16 host 127.0.0.1 serv 0 +ai2: flags 0x2 family 24 socktype 3 protocol 59 addrlen 28 host ::1 serv 0 +arg: flags 0x2 family 0 socktype 3 protocol 59 addrlen 0 host localhost serv 80 +service not supported for ai_socktype +arg: flags 0x2 family 0 socktype 3 protocol 59 addrlen 0 host localhost serv www +service not supported for ai_socktype +arg: flags 0x2 family 0 socktype 3 protocol 59 addrlen 0 host ::1 serv (empty) +ai1: flags 0x2 family 24 socktype 3 protocol 59 addrlen 28 host ::1 serv 0 + +== unsupported family +arg: flags 0x2 family 99 socktype 0 protocol 0 addrlen 0 host localhost serv (empty) +ai_family not supported + +== the following items are specified in jinmei scopeaddr format doc. +arg: flags 0x2 family 0 socktype 0 protocol 0 addrlen 0 host fe80::1%lo0 serv http +ai1: flags 0x2 family 24 socktype 1 protocol 6 addrlen 28 host fe80::1%lo0 serv 80 + diff --git a/src/regress/lib/libc/getaddrinfo/gaitest.c b/src/regress/lib/libc/getaddrinfo/gaitest.c new file mode 100644 index 000000000..12a449845 --- /dev/null +++ b/src/regress/lib/libc/getaddrinfo/gaitest.c @@ -0,0 +1,195 @@ +/* $OpenBSD: gaitest.c,v 1.6 2009/06/09 18:15:08 phessler Exp $ */ +/* $NetBSD: gaitest.c,v 1.3 2002/07/05 15:47:43 itojun Exp $ */ + +/* + * Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, and 2002 WIDE Project. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Please note: the order of the responses (and the regress test) + * is dependent on the "family" keywords in resolv.conf. + * + * This expects the default behaviour of "family inet4 inet6" + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct addrinfo ai; + +char host[NI_MAXHOST]; +char serv[NI_MAXSERV]; +int vflag = 0; + +static void usage(void); +static void print1(const char *, const struct addrinfo *, char *, char *); +int main(int, char *[]); + +static void +usage() +{ + fprintf(stderr, "usage: test [-f family] [-s socktype] [-p proto] [-DPRSv46] host serv\n"); +} + +static void +print1(title, res, h, s) + const char *title; + const struct addrinfo *res; + char *h; + char *s; +{ + char *start, *end; + int error; + const int niflag = NI_NUMERICHOST | NI_NUMERICSERV; + + if (res->ai_addr) { + error = getnameinfo(res->ai_addr, res->ai_addr->sa_len, + host, sizeof(host), serv, sizeof(serv), + niflag); + h = host; + s = serv; + } else + error = 0; + + if (vflag) { + start = "\t"; + end = "\n"; + } else { + start = " "; + end = ""; + } + printf("%s%s", title, end); + printf("%sflags 0x%x%s", start, res->ai_flags, end); + printf("%sfamily %d%s", start, res->ai_family, end); + printf("%ssocktype %d%s", start, res->ai_socktype, end); + printf("%sprotocol %d%s", start, res->ai_protocol, end); + printf("%saddrlen %d%s", start, res->ai_addrlen, end); + if (error) + printf("%serror %d%s", start, error, end); + else { + printf("%shost %s%s", start, h, end); + printf("%sserv %s%s", start, s, end); + } +#if 0 + if (res->ai_canonname) + printf("%scname \"%s\"%s", start, res->ai_canonname, end); +#endif + if (!vflag) + printf("\n"); + +} + +int +main(argc, argv) + int argc; + char *argv[]; +{ + struct addrinfo *res; + int error, i; + char *p, *q; + extern int optind; + extern char *optarg; + int c; + char nbuf[10]; + + memset(&ai, 0, sizeof(ai)); + ai.ai_family = PF_UNSPEC; + ai.ai_flags |= AI_CANONNAME; + while ((c = getopt(argc, argv, "Df:p:PRs:Sv46")) != -1) { + switch (c) { + case 'D': + ai.ai_socktype = SOCK_DGRAM; + break; + case 'f': + ai.ai_family = atoi(optarg); + break; + case 'p': + ai.ai_protocol = atoi(optarg); + break; + case 'P': + ai.ai_flags |= AI_PASSIVE; + break; + case 'R': + ai.ai_socktype = SOCK_RAW; + break; + case 's': + ai.ai_socktype = atoi(optarg); + break; + case 'S': + ai.ai_socktype = SOCK_STREAM; + break; + case 'v': + vflag++; + break; + case '4': + ai.ai_family = PF_INET; + break; + case '6': + ai.ai_family = PF_INET6; + break; + default: + usage(); + exit(1); + } + } + argc -= optind; + argv += optind; + + if (argc != 2){ + usage(); + exit(1); + } + + p = *argv[0] ? argv[0] : NULL; + q = *argv[1] ? argv[1] : NULL; + + print1("arg:", &ai, p ? p : "(empty)", q ? q : "(empty)"); + + error = getaddrinfo(p, q, &ai, &res); + if (error) { + printf("%s\n", gai_strerror(error)); + exit(1); + } + + i = 1; + do { + snprintf(nbuf, sizeof(nbuf), "ai%d:", i); + print1(nbuf, res, NULL, NULL); + + i++; + } while ((res = res->ai_next) != NULL); + + exit(0); +} diff --git a/src/regress/lib/libc/getaddrinfo/obj b/src/regress/lib/libc/getaddrinfo/obj new file mode 120000 index 000000000..a57455527 --- /dev/null +++ b/src/regress/lib/libc/getaddrinfo/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/getaddrinfo \ No newline at end of file diff --git a/src/regress/lib/libc/getaddrinfo/testsuite.sh b/src/regress/lib/libc/getaddrinfo/testsuite.sh new file mode 100644 index 000000000..1e4e52405 --- /dev/null +++ b/src/regress/lib/libc/getaddrinfo/testsuite.sh @@ -0,0 +1,89 @@ +# $OpenBSD: testsuite.sh,v 1.1 2002/07/05 15:54:30 itojun Exp $ +# $NetBSD: testsuite.sh,v 1.3 2002/07/05 15:49:11 itojun Exp $ + +# +# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, and 2002 WIDE Project. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the project nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# + +TEST=./gaitest +#TEST='./test -v' +#IF=`ifconfig -a | grep -v '^ ' | sed -e 's/:.*//' | head -1 | awk '{print $1}'` + +echo '== basic ones' +$TEST ::1 http +$TEST 127.0.0.1 http +$TEST localhost http +$TEST ::1 tftp +$TEST 127.0.0.1 tftp +$TEST localhost tftp +$TEST ::1 echo +$TEST 127.0.0.1 echo +$TEST localhost echo +echo + +echo '== specific address family' +$TEST -4 localhost http +$TEST -6 localhost http +echo + +echo '== empty hostname' +$TEST '' http +$TEST '' echo +$TEST '' tftp +$TEST '' 80 +$TEST -P '' http +$TEST -P '' echo +$TEST -P '' tftp +$TEST -P '' 80 +$TEST -S '' 80 +$TEST -D '' 80 +echo + +echo '== empty servname' +$TEST ::1 '' +$TEST 127.0.0.1 '' +$TEST localhost '' +$TEST '' '' +echo + +echo '== sock_raw' +$TEST -R -p 0 localhost '' +$TEST -R -p 59 localhost '' +$TEST -R -p 59 localhost 80 +$TEST -R -p 59 localhost www +$TEST -R -p 59 ::1 '' +echo + +echo '== unsupported family' +$TEST -f 99 localhost '' +echo + +echo '== the following items are specified in jinmei scopeaddr format doc.' +$TEST fe80::1%lo0 http +#$TEST fe80::1%$IF http +echo diff --git a/src/regress/lib/libc/getcap/CVS/Entries b/src/regress/lib/libc/getcap/CVS/Entries new file mode 100644 index 000000000..0d9be6e12 --- /dev/null +++ b/src/regress/lib/libc/getcap/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.2/Tue Jun 9 18:16:40 2009// +/getcaptest.c/1.1/Fri Mar 10 05:28:57 2006// +/shortcap.in/1.1/Fri Mar 10 05:28:57 2006// +D diff --git a/src/regress/lib/libc/getcap/CVS/Repository b/src/regress/lib/libc/getcap/CVS/Repository new file mode 100644 index 000000000..dd099a01f --- /dev/null +++ b/src/regress/lib/libc/getcap/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/getcap diff --git a/src/regress/lib/libc/getcap/CVS/Root b/src/regress/lib/libc/getcap/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/getcap/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/getcap/Makefile b/src/regress/lib/libc/getcap/Makefile new file mode 100644 index 000000000..7b7ae394f --- /dev/null +++ b/src/regress/lib/libc/getcap/Makefile @@ -0,0 +1,10 @@ +# $OpenBSD: Makefile,v 1.2 2009/06/09 18:16:40 phessler Exp $ + +PROG= getcaptest + +REGRESS_TARGETS=shortcap + +shortcap: getcaptest + ./getcaptest ${.CURDIR}/shortcap.in + +.include diff --git a/src/regress/lib/libc/getcap/getcaptest.c b/src/regress/lib/libc/getcap/getcaptest.c new file mode 100644 index 000000000..0f4464b6c --- /dev/null +++ b/src/regress/lib/libc/getcap/getcaptest.c @@ -0,0 +1,26 @@ +/* $OpenBSD: getcaptest.c,v 1.1 2006/03/10 05:28:57 ray Exp $ */ + +/* + * Written by Raymond Lai . + * Public domain. + */ + +#include +#include + +int +main(int argc, char *argv[]) +{ + char *buf, *db_array[2]; + + if (argc != 2) + return (1); + + db_array[0] = argv[1]; + db_array[1] = NULL; + + while (cgetnext(&buf, db_array) > 0) + puts(buf); + + return (0); +} diff --git a/src/regress/lib/libc/getcap/obj b/src/regress/lib/libc/getcap/obj new file mode 120000 index 000000000..d6c88acab --- /dev/null +++ b/src/regress/lib/libc/getcap/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/getcap \ No newline at end of file diff --git a/src/regress/lib/libc/getcap/shortcap.in b/src/regress/lib/libc/getcap/shortcap.in new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/src/regress/lib/libc/getcap/shortcap.in @@ -0,0 +1 @@ +0 diff --git a/src/regress/lib/libc/getopt_long/CVS/Entries b/src/regress/lib/libc/getopt_long/CVS/Entries new file mode 100644 index 000000000..37593b085 --- /dev/null +++ b/src/regress/lib/libc/getopt_long/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.4/Sun Dec 8 19:25:08 2002// +/getopt_long_test.c/1.6/Tue Jun 17 21:56:24 2003// +/test.ok/1.4/Sun Dec 8 19:25:08 2002// +D diff --git a/src/regress/lib/libc/getopt_long/CVS/Repository b/src/regress/lib/libc/getopt_long/CVS/Repository new file mode 100644 index 000000000..22903fca1 --- /dev/null +++ b/src/regress/lib/libc/getopt_long/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/getopt_long diff --git a/src/regress/lib/libc/getopt_long/CVS/Root b/src/regress/lib/libc/getopt_long/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/getopt_long/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/getopt_long/Makefile b/src/regress/lib/libc/getopt_long/Makefile new file mode 100644 index 000000000..13a187e19 --- /dev/null +++ b/src/regress/lib/libc/getopt_long/Makefile @@ -0,0 +1,32 @@ +# $OpenBSD: Makefile,v 1.4 2002/12/08 19:25:08 millert Exp $ + +NOMAN= +PROG=getopt_long_test +CLEANFILES+=test.out + +# test getopt_long and getopt_long_only +run-regress-${PROG}: ${PROG} + @( test -n "$$POSIXLY_CORRECT" && unset POSIXLY_CORRECT; \ + test -n "$$LONG_ONLY" && unset LONG_ONLY; \ + ./${PROG} myfile --force -f infile -9 ; \ + ./${PROG} onefile twofile --best -Williterate -i foo.in threefile ; \ + ./${PROG} -1bfast - ; \ + ./${PROG} --fast --drinking=guiness -i foo.in somefile ; \ + export POSIXLY_CORRECT=1 ; \ + ./${PROG} myfile --force -f infile -9 ; \ + ./${PROG} onefile twofile --best -Williterate -i foo.in threefile ; \ + ./${PROG} -1bfast - ; \ + ./${PROG} --fast --drinking=guiness -i foo.in somefile ; \ + unset POSIXLY_CORRECT ; export LONG_ONLY=1 ; \ + ./${PROG} myfile -force -f infile -9 ; \ + ./${PROG} onefile twofile -best -Williterate -i foo.in threefile ; \ + ./${PROG} -1bfast - ; \ + ./${PROG} --fast -drinking=guiness -i foo.in somefile ; \ + export POSIXLY_CORRECT=1 ; \ + ./${PROG} myfile -force -f infile -9 ; \ + ./${PROG} onefile twofile -best -Williterate -i foo.in threefile ; \ + ./${PROG} -1bfast - ; \ + ./${PROG} --fast -drinking=guiness -i foo.in somefile ) >test.out 2>&1 + cmp -s ${.OBJDIR}/test.out ${.CURDIR}/test.ok + +.include diff --git a/src/regress/lib/libc/getopt_long/getopt_long_test.c b/src/regress/lib/libc/getopt_long/getopt_long_test.c new file mode 100644 index 000000000..9f6f60370 --- /dev/null +++ b/src/regress/lib/libc/getopt_long/getopt_long_test.c @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2002 Todd C. Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Sponsored in part by the Defense Advanced Research Projects + * Agency (DARPA) and Air Force Research Laboratory, Air Force + * Materiel Command, USAF, under agreement number F39502-99-1-0512. + */ + +#include +#include +#include + +/* + * Simple getopt_long() and getopt_long_only() excerciser. + * ENVIRONMENT: + * LONG_ONLY : use getopt_long_only() (default is getopt_long()) + * POSIXLY_CORRECT : don't permute args + */ + +int +main(int argc, char **argv) +{ + int ch, idx, goggles; + int (*gl)(int, char * const *, const char *, const struct option *, int *); + struct option longopts[] = { + { "force", no_argument, 0, 0 }, + { "fast", no_argument, 0, '1' }, + { "best", no_argument, 0, '9' }, + { "input", required_argument, 0, 'i' }, + { "illiterate", no_argument, 0, 0 }, + { "drinking", required_argument, &goggles, 42 }, + { "help", no_argument, 0, 'h' }, + { 0, 0, 0, 0 }, + }; + + if (getenv("LONG_ONLY")) { + gl = getopt_long_only; + printf("getopt_long_only"); + } else { + gl = getopt_long; + printf("getopt_long"); + } + if (getenv("POSIXLY_CORRECT")) + printf(" (POSIXLY_CORRECT)"); + printf(": "); + for (idx = 1; idx < argc; idx++) + printf("%s ", argv[idx]); + printf("\n"); + + goggles = 0; + for (;;) { + idx = -1; + ch = gl(argc, argv, "19bf:i:hW;-", longopts, &idx); + if (ch == -1) + break; + switch (ch) { + case 0: + case '1': + case '9': + case 'h': + case 'b': + case '-': + if (idx != -1) { + if (goggles == 42) + printf("option %s, arg %s\n", + longopts[idx].name, optarg); + else + printf("option %s\n", + longopts[idx].name); + } else + printf("option %c\n", ch); + break; + case 'f': + case 'i': + if (idx != -1) + printf("option %s, arg %s\n", + longopts[idx].name, optarg); + else + printf("option %c, arg %s\n", ch, optarg); + break; + + case '?': + break; + + default: + printf("unexpected return value: %c\n", ch); + break; + } + } + argc -= optind; + argv += optind; + + if (argc > 0) { + printf("remaining ARGV: "); + while (argc--) + printf("%s ", *argv++); + printf("\n"); + } + printf("\n"); + + exit (0); +} diff --git a/src/regress/lib/libc/getopt_long/obj b/src/regress/lib/libc/getopt_long/obj new file mode 120000 index 000000000..964685ea0 --- /dev/null +++ b/src/regress/lib/libc/getopt_long/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/getopt_long \ No newline at end of file diff --git a/src/regress/lib/libc/getopt_long/test.ok b/src/regress/lib/libc/getopt_long/test.ok new file mode 100644 index 000000000..9782087f4 --- /dev/null +++ b/src/regress/lib/libc/getopt_long/test.ok @@ -0,0 +1,84 @@ +getopt_long: myfile --force -f infile -9 +option force +option f, arg infile +option 9 +remaining ARGV: myfile + +getopt_long: onefile twofile --best -Williterate -i foo.in threefile +option best +option illiterate +option i, arg foo.in +remaining ARGV: onefile twofile threefile + +getopt_long: -1bfast - +option 1 +option b +option f, arg ast +option - + +getopt_long: --fast --drinking=guiness -i foo.in somefile +option fast +option drinking, arg guiness +option i, arg foo.in +remaining ARGV: somefile + +getopt_long (POSIXLY_CORRECT): myfile --force -f infile -9 +remaining ARGV: myfile --force -f infile -9 + +getopt_long (POSIXLY_CORRECT): onefile twofile --best -Williterate -i foo.in threefile +remaining ARGV: onefile twofile --best -Williterate -i foo.in threefile + +getopt_long (POSIXLY_CORRECT): -1bfast - +option 1 +option b +option f, arg ast +option - + +getopt_long (POSIXLY_CORRECT): --fast --drinking=guiness -i foo.in somefile +option fast +option drinking, arg guiness +option i, arg foo.in +remaining ARGV: somefile + +getopt_long_only: myfile -force -f infile -9 +option force +option f, arg infile +option 9 +remaining ARGV: myfile + +getopt_long_only: onefile twofile -best -Williterate -i foo.in threefile +option best +option illiterate +option i, arg foo.in +remaining ARGV: onefile twofile threefile + +getopt_long_only: -1bfast - +option 1 +option b +option fast +option - + +getopt_long_only: --fast -drinking=guiness -i foo.in somefile +option fast +option drinking, arg guiness +option i, arg foo.in +remaining ARGV: somefile + +getopt_long_only (POSIXLY_CORRECT): myfile -force -f infile -9 +remaining ARGV: myfile -force -f infile -9 + +getopt_long_only (POSIXLY_CORRECT): onefile twofile -best -Williterate -i foo.in threefile +remaining ARGV: onefile twofile -best -Williterate -i foo.in threefile + +getopt_long_only (POSIXLY_CORRECT): -1bfast - +option 1 +option b +option fast +option - + +getopt_long_only (POSIXLY_CORRECT): --fast -drinking=guiness -i foo.in somefile +option fast +option drinking, arg guiness +option i, arg foo.in +remaining ARGV: somefile + diff --git a/src/regress/lib/libc/glob/CVS/Entries b/src/regress/lib/libc/glob/CVS/Entries new file mode 100644 index 000000000..305351d61 --- /dev/null +++ b/src/regress/lib/libc/glob/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.2/Wed Feb 18 15:17:55 2009// +/files/1.1/Wed Oct 1 23:04:36 2008// +/globtest.c/1.1/Wed Oct 1 23:04:36 2008// +/globtest.in/1.2/Wed Feb 18 15:24:55 2009// +D diff --git a/src/regress/lib/libc/glob/CVS/Repository b/src/regress/lib/libc/glob/CVS/Repository new file mode 100644 index 000000000..147878ea6 --- /dev/null +++ b/src/regress/lib/libc/glob/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/glob diff --git a/src/regress/lib/libc/glob/CVS/Root b/src/regress/lib/libc/glob/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/glob/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/glob/Makefile b/src/regress/lib/libc/glob/Makefile new file mode 100644 index 000000000..6b93edfc3 --- /dev/null +++ b/src/regress/lib/libc/glob/Makefile @@ -0,0 +1,13 @@ +# $OpenBSD: Makefile,v 1.2 2009/02/18 15:17:55 millert Exp $ + +PROG= globtest + +run-regress-${PROG}: + mkdir -p `sed 's@/[^/]*$$@@' ${.CURDIR}/files | sort -u` + touch `cat ${.CURDIR}/files` + ./${PROG} ${.CURDIR}/${PROG}.in + +clean: + rm -rf fake ${PROG} ${OBJS} *.core + +.include diff --git a/src/regress/lib/libc/glob/files b/src/regress/lib/libc/glob/files new file mode 100644 index 000000000..c5e92aacd --- /dev/null +++ b/src/regress/lib/libc/glob/files @@ -0,0 +1,47 @@ +fake/bin/[ +fake/bin/cat +fake/bin/chgrp +fake/bin/chio +fake/bin/chmod +fake/bin/cksum +fake/bin/cp +fake/bin/cpio +fake/bin/csh +fake/bin/date +fake/bin/dd +fake/bin/df +fake/bin/domainname +fake/bin/echo +fake/bin/ed +fake/bin/eject +fake/bin/expr +fake/bin/hostname +fake/bin/kill +fake/bin/ksh +fake/bin/ln +fake/bin/ls +fake/bin/md5 +fake/bin/mkdir +fake/bin/mt +fake/bin/mv +fake/bin/pax +fake/bin/ps +fake/bin/pwd +fake/bin/rcp +fake/bin/rksh +fake/bin/rm +fake/bin/rmail +fake/bin/rmd160 +fake/bin/rmdir +fake/bin/sh +fake/bin/sha1 +fake/bin/sha256 +fake/bin/sha384 +fake/bin/sha512 +fake/bin/sleep +fake/bin/stty +fake/bin/sum +fake/bin/sync +fake/bin/systrace +fake/bin/tar +fake/bin/test diff --git a/src/regress/lib/libc/glob/globtest.c b/src/regress/lib/libc/glob/globtest.c new file mode 100644 index 000000000..f8f93573c --- /dev/null +++ b/src/regress/lib/libc/glob/globtest.c @@ -0,0 +1,123 @@ +/* $OpenBSD: globtest.c,v 1.1 2008/10/01 23:04:36 millert Exp $ */ + +/* + * Public domain, 2008, Todd C. Miller + */ + +#include +#include +#include +#include +#include + +#define MAX_RESULTS 256 + +struct gl_entry { + int flags; + int nresults; + char pattern[1024]; + char *results[MAX_RESULTS]; +}; + +int test_glob(struct gl_entry *); + +int +main(int argc, char **argv) +{ + FILE *fp = stdin; + char *buf, *cp, *want, *got, *last; + const char *errstr; + int errors = 0, i, lineno; + struct gl_entry entry; + size_t len; + + if (argc > 1) { + if ((fp = fopen(argv[1], "r")) == NULL) + err(1, "%s", argv[1]); + } + + /* + * Read in test file, which is formatted thusly: + * + * [pattern] + * result1 + * result2 + * result3 + * ... + * + */ + lineno = 0; + memset(&entry, 0, sizeof(entry)); + while ((buf = fgetln(fp, &len)) != NULL) { + lineno++; + if (buf[len - 1] != '\n') + errx(1, "missing newline at EOF"); + buf[--len] = '\0'; + if (len == 0) + continue; /* blank line */ + + if (buf[0] == '[') { + /* check previous pattern */ + if (entry.pattern[0]) + errors += test_glob(&entry); + + /* start new entry */ + if ((cp = strrchr(buf + 1, ']')) == NULL) + errx(1, "invalid entry on line %d", lineno); + len = cp - buf - 1; + if (len >= sizeof(entry.pattern)) + errx(1, "pattern too big on line %d", lineno); + memcpy(entry.pattern, buf + 1, len); + entry.pattern[len] = '\0'; + + buf = cp + 2; + if (*buf++ != '<') + errx(1, "invalid entry on line %d", lineno); + if ((cp = strchr(buf, '>')) == NULL) + errx(1, "invalid entry on line %d", lineno); + entry.flags = (int)strtol(buf, &cp, 0); + if (*cp != '>' || entry.flags < 0 || entry.flags > 0x2000) + errx(1, "invalid flags: %s", buf); + entry.nresults = 0; + continue; + } + if (!entry.pattern[0]) + errx(1, "missing entry on line %d", lineno); + + if (entry.nresults + 1 > MAX_RESULTS) { + errx(1, "too many results for %s, max %d", + entry.pattern, MAX_RESULTS); + } + entry.results[entry.nresults++] = strdup(buf); + } + if (entry.pattern[0]) + errors += test_glob(&entry); /* test last pattern */ + exit(errors); +} + +int test_glob(struct gl_entry *entry) +{ + glob_t gl; + int i; + + if (glob(entry->pattern, entry->flags, NULL, &gl) != 0) + errx(1, "glob failed: %s", entry->pattern); + + if (gl.gl_matchc != entry->nresults) + goto mismatch; + + for (i = 0; i < gl.gl_matchc; i++) { + if (strcmp(gl.gl_pathv[i], entry->results[i]) != 0) + goto mismatch; + free(entry->results[i]); + } + return (0); +mismatch: + warnx("mismatch for pattern %s, flags 0x%x", entry->pattern, + entry->flags); + while (i < gl.gl_matchc) { + free(entry->results[i++]); + } + return (0); + return (1); +} diff --git a/src/regress/lib/libc/glob/globtest.in b/src/regress/lib/libc/glob/globtest.in new file mode 100644 index 000000000..5995fa4b3 --- /dev/null +++ b/src/regress/lib/libc/glob/globtest.in @@ -0,0 +1,64 @@ +[fake/bin/[[:alpha:]]*] <0x0> +fake/bin/cat +fake/bin/chgrp +fake/bin/chio +fake/bin/chmod +fake/bin/cksum +fake/bin/cp +fake/bin/cpio +fake/bin/csh +fake/bin/date +fake/bin/dd +fake/bin/df +fake/bin/domainname +fake/bin/echo +fake/bin/ed +fake/bin/eject +fake/bin/expr +fake/bin/hostname +fake/bin/kill +fake/bin/ksh +fake/bin/ln +fake/bin/ls +fake/bin/md5 +fake/bin/mkdir +fake/bin/mt +fake/bin/mv +fake/bin/pax +fake/bin/ps +fake/bin/pwd +fake/bin/rcp +fake/bin/rksh +fake/bin/rm +fake/bin/rmail +fake/bin/rmd160 +fake/bin/rmdir +fake/bin/sh +fake/bin/sha1 +fake/bin/sha256 +fake/bin/sha384 +fake/bin/sha512 +fake/bin/sleep +fake/bin/stty +fake/bin/sum +fake/bin/sync +fake/bin/systrace +fake/bin/tar +fake/bin/test + +[fake/bin/rm{,dir,ail}] <0x80> +fake/bin/rm +fake/bin/rmdir +fake/bin/rmail + +[fake/bin/sha[[:digit:]]] <0x0> +fake/bin/sha1 + +[fake/bin/sha[[:digit:]]*] <0x0> +fake/bin/sha1 +fake/bin/sha256 +fake/bin/sha384 +fake/bin/sha512 + +[fake/bin/ca[a-z]] <0x0> +fake/bin/cat diff --git a/src/regress/lib/libc/glob/obj b/src/regress/lib/libc/glob/obj new file mode 120000 index 000000000..06aa6547a --- /dev/null +++ b/src/regress/lib/libc/glob/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/glob \ No newline at end of file diff --git a/src/regress/lib/libc/hsearch/CVS/Entries b/src/regress/lib/libc/hsearch/CVS/Entries new file mode 100644 index 000000000..13984236a --- /dev/null +++ b/src/regress/lib/libc/hsearch/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Jun 24 04:33:07 2004// +/hsearchtest.c/1.2/Tue Oct 27 23:59:32 2009// +D diff --git a/src/regress/lib/libc/hsearch/CVS/Repository b/src/regress/lib/libc/hsearch/CVS/Repository new file mode 100644 index 000000000..4b60a15be --- /dev/null +++ b/src/regress/lib/libc/hsearch/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/hsearch diff --git a/src/regress/lib/libc/hsearch/CVS/Root b/src/regress/lib/libc/hsearch/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/hsearch/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/hsearch/Makefile b/src/regress/lib/libc/hsearch/Makefile new file mode 100644 index 000000000..cddc8ac0c --- /dev/null +++ b/src/regress/lib/libc/hsearch/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2004/06/24 04:33:07 millert Exp $ + +PROG= hsearchtest + +.include diff --git a/src/regress/lib/libc/hsearch/hsearchtest.c b/src/regress/lib/libc/hsearch/hsearchtest.c new file mode 100644 index 000000000..8659ef7e7 --- /dev/null +++ b/src/regress/lib/libc/hsearch/hsearchtest.c @@ -0,0 +1,122 @@ +/* $OpenBSD: hsearchtest.c,v 1.2 2009/10/27 23:59:32 deraadt Exp $ */ +/* $NetBSD: hsearchtest.c,v 1.5 2003/07/26 19:38:46 salo Exp $ */ + +/* + * Copyright (c) 2001 Christopher G. Demetriou + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed for the + * NetBSD Project. See http://www.NetBSD.org/ for + * information about NetBSD. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * <> + */ + +/* + * Test program for hsearch() et al. + */ + +#include +#include +#include +#include + +#define TEST(e) ((e) ? (void)0 : testfail(__FILE__, __LINE__, #e)) + +static void +testfail(const char *file, unsigned long line, const char *expression) +{ + + fprintf(stderr, "TEST FAILED: %s: file %s, line %ld\n", + expression, file, line); + exit(1); +} + +int +main(int argc, char *argv[]) +{ + ENTRY e, *ep, *ep2; + int created_ok; + char ch[2]; + int i; + + created_ok = hcreate(16); + TEST(created_ok); + + /* ch[1] should be constant from here on down. */ + ch[1] = '\0'; + + /* Basic insertions. Check enough that there'll be collisions. */ + for (i = 0; i < 26; i++) { + ch[0] = 'a' + i; + e.key = strdup(ch); /* ptr to provided key is kept! */ + TEST(e.key != NULL); + e.data = (void *)(long)i; + ep = hsearch(e, ENTER); + TEST(ep != NULL); + TEST(strcmp(ep->key, ch) == 0); + TEST((long)ep->data == i); + } + + /* e.key should be constant from here on down. */ + e.key = ch; + + /* Basic lookups. */ + for (i = 0; i < 26; i++) { + ch[0] = 'a' + i; + ep = hsearch(e, FIND); + TEST(ep != NULL); + TEST(strcmp(ep->key, ch) == 0); + TEST((long)ep->data == i); + } + + /* Check duplicate entry. Should _not_ overwrite existing data. */ + ch[0] = 'a'; + e.data = (void *)(long)12345; + ep = hsearch(e, FIND); + TEST(ep != NULL); + TEST(strcmp(ep->key, ch) == 0); + TEST((long)ep->data == 0); + + /* Check for something that's not there. */ + ch[0] = 'A'; + ep = hsearch(e, FIND); + TEST(ep == NULL); + + /* Check two at once. */ + ch[0] = 'a'; + ep = hsearch(e, FIND); + ch[0] = 'b'; + ep2 = hsearch(e, FIND); + TEST(ep != NULL); + TEST(strcmp(ep->key, "a") == 0 && (long)ep->data == 0); + TEST(ep2 != NULL); + TEST(strcmp(ep2->key, "b") == 0 && (long)ep2->data == 1); + + hdestroy(); + + exit(0); +} diff --git a/src/regress/lib/libc/hsearch/obj b/src/regress/lib/libc/hsearch/obj new file mode 120000 index 000000000..6174b06dd --- /dev/null +++ b/src/regress/lib/libc/hsearch/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/hsearch \ No newline at end of file diff --git a/src/regress/lib/libc/ieeefp/CVS/Entries b/src/regress/lib/libc/ieeefp/CVS/Entries new file mode 100644 index 000000000..c56e78990 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.6/Thu Jan 15 18:53:23 2004// +D/except//// +D/inf//// +D/infinity//// +D/round//// diff --git a/src/regress/lib/libc/ieeefp/CVS/Repository b/src/regress/lib/libc/ieeefp/CVS/Repository new file mode 100644 index 000000000..a32db53fd --- /dev/null +++ b/src/regress/lib/libc/ieeefp/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/ieeefp diff --git a/src/regress/lib/libc/ieeefp/CVS/Root b/src/regress/lib/libc/ieeefp/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/ieeefp/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/ieeefp/Makefile b/src/regress/lib/libc/ieeefp/Makefile new file mode 100644 index 000000000..89ff51a2e --- /dev/null +++ b/src/regress/lib/libc/ieeefp/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.6 2004/01/15 18:53:23 miod Exp $ +# $NetBSD: Makefile,v 1.5 1996/04/09 16:54:18 phil Exp $ + +SUBDIR+= except inf infinity round + +install: + +.include diff --git a/src/regress/lib/libc/ieeefp/except/CVS/Entries b/src/regress/lib/libc/ieeefp/except/CVS/Entries new file mode 100644 index 000000000..a1d39fce6 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/except/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.5/Thu Jul 22 19:29:42 2004// +/except.c/1.12/Mon May 31 05:18:48 2010// +D diff --git a/src/regress/lib/libc/ieeefp/except/CVS/Repository b/src/regress/lib/libc/ieeefp/except/CVS/Repository new file mode 100644 index 000000000..74f389bff --- /dev/null +++ b/src/regress/lib/libc/ieeefp/except/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/ieeefp/except diff --git a/src/regress/lib/libc/ieeefp/except/CVS/Root b/src/regress/lib/libc/ieeefp/except/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/ieeefp/except/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/ieeefp/except/Makefile b/src/regress/lib/libc/ieeefp/except/Makefile new file mode 100644 index 000000000..205331548 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/except/Makefile @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile,v 1.5 2004/07/22 19:29:42 kettenis Exp $ + +PROG=except + +REGRESS_TARGETS+= fltdiv fltinv fltovf fltund + +fltdiv: ${PROG} + ./${PROG} fltdiv + +fltinv: ${PROG} + ./${PROG} fltinv + +fltovf: ${PROG} + ./${PROG} fltovf + +fltund: ${PROG} + ./${PROG} fltund + +.include diff --git a/src/regress/lib/libc/ieeefp/except/except.c b/src/regress/lib/libc/ieeefp/except/except.c new file mode 100644 index 000000000..cc3dcf8e4 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/except/except.c @@ -0,0 +1,110 @@ +/* $OpenBSD: except.c,v 1.12 2010/05/08 19:16:33 naddy Exp $ */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +volatile sig_atomic_t signal_status; + +volatile const double one = 1.0; +volatile const double zero = 0.0; +volatile const double huge = DBL_MAX; +volatile const double tiny = DBL_MIN; + +void +sigfpe(int sig, siginfo_t *si, void *v) +{ + char buf[132]; + + if (si) { + snprintf(buf, sizeof(buf), "sigfpe: addr=%p, code=%d\n", + si->si_addr, si->si_code); + write(1, buf, strlen(buf)); + } + _exit(signal_status); +} + + +int +main(int argc, char *argv[]) +{ + struct sigaction sa; + volatile double x; + + if (argc != 2) { + fprintf(stderr, "usage: %s condition\n", argv[0]); + exit(1); + } + + /* + * check to make sure that all exceptions are masked and + * that the accumulated exception status is clear. + */ + assert(fpgetmask() == 0); + assert(fpgetsticky() == 0); + + memset(&sa, 0, sizeof(sa)); + sa.sa_sigaction = sigfpe; + sa.sa_flags = SA_SIGINFO; + sigaction(SIGFPE, &sa, NULL); + signal_status = 1; + + if (strcmp(argv[1], "fltdiv") == 0) { + /* trip divide by zero */ + x = one / zero; + assert(fpgetsticky() & FP_X_DZ); + fpsetsticky(0); + + /* and now unmask to get a signal */ + signal_status = 0; + fpsetmask(FP_X_DZ); + x = one / zero; + } else if (strcmp(argv[1], "fltinv") == 0) { + /* trip invalid operation */ + x = zero / zero; + assert(fpgetsticky() & FP_X_INV); + fpsetsticky(0); + + /* and now unmask to get a signal */ + signal_status = 0; + fpsetmask(FP_X_INV); + x = zero / zero; + } else if (strcmp(argv[1], "fltovf") == 0) { + /* trip overflow */ + x = huge * huge; + assert(fpgetsticky() & FP_X_OFL); + fpsetsticky(0); + + /* and now unmask to get a signal */ + signal_status = 0; + fpsetmask(FP_X_OFL); + x = huge * huge; + } else if (strcmp(argv[1], "fltund") == 0) { + /* trip underflow */ + x = tiny * tiny; + assert(fpgetsticky() & FP_X_UFL); + fpsetsticky(0); + + /* and now unmask to get a signal */ + signal_status = 0; + fpsetmask(FP_X_UFL); + x = tiny * tiny; + } else { + errx(1, "unrecognized condition %s", argv[1]); + } + + /* + * attempt to trigger the exception on machines where + * floating-point exceptions are deferred. + */ + x = one * one; + + errx(1, "signal wasn't caught"); +} diff --git a/src/regress/lib/libc/ieeefp/except/obj b/src/regress/lib/libc/ieeefp/except/obj new file mode 120000 index 000000000..32121d993 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/except/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/ieeefp/except \ No newline at end of file diff --git a/src/regress/lib/libc/ieeefp/inf/CVS/Entries b/src/regress/lib/libc/ieeefp/inf/CVS/Entries new file mode 100644 index 000000000..fec6abd9b --- /dev/null +++ b/src/regress/lib/libc/ieeefp/inf/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Feb 16 17:22:16 2002// +/inf.c/1.3/Thu Jul 31 21:48:03 2003// +D diff --git a/src/regress/lib/libc/ieeefp/inf/CVS/Repository b/src/regress/lib/libc/ieeefp/inf/CVS/Repository new file mode 100644 index 000000000..7ab62c99c --- /dev/null +++ b/src/regress/lib/libc/ieeefp/inf/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/ieeefp/inf diff --git a/src/regress/lib/libc/ieeefp/inf/CVS/Root b/src/regress/lib/libc/ieeefp/inf/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/ieeefp/inf/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/ieeefp/inf/Makefile b/src/regress/lib/libc/ieeefp/inf/Makefile new file mode 100644 index 000000000..b9a50e0ce --- /dev/null +++ b/src/regress/lib/libc/ieeefp/inf/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/16 17:22:16 pvalchev Exp $ + +PROG= inf +SRCS= inf.c + +LDADD+= -lm +DPADD+= ${LIBM} + +.include diff --git a/src/regress/lib/libc/ieeefp/inf/inf.c b/src/regress/lib/libc/ieeefp/inf/inf.c new file mode 100644 index 000000000..a1956145a --- /dev/null +++ b/src/regress/lib/libc/ieeefp/inf/inf.c @@ -0,0 +1,16 @@ +/* $OpenBSD: inf.c,v 1.3 2003/07/31 21:48:03 deraadt Exp $ */ + +/* + * Peter Valchev Public Domain, 2002. + */ + +#include + +int +main(int argc, char *argv[]) +{ + if (isinf(HUGE_VAL)) + return 0; + + return 1; +} diff --git a/src/regress/lib/libc/ieeefp/inf/obj b/src/regress/lib/libc/ieeefp/inf/obj new file mode 120000 index 000000000..ff0540d0e --- /dev/null +++ b/src/regress/lib/libc/ieeefp/inf/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/ieeefp/inf \ No newline at end of file diff --git a/src/regress/lib/libc/ieeefp/infinity/CVS/Entries b/src/regress/lib/libc/ieeefp/infinity/CVS/Entries new file mode 100644 index 000000000..01b53b0f3 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/infinity/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Fri Jan 16 19:34:37 2004// +/infinity.c/1.2/Fri Jan 16 19:34:37 2004// +D diff --git a/src/regress/lib/libc/ieeefp/infinity/CVS/Repository b/src/regress/lib/libc/ieeefp/infinity/CVS/Repository new file mode 100644 index 000000000..770638ee8 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/infinity/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/ieeefp/infinity diff --git a/src/regress/lib/libc/ieeefp/infinity/CVS/Root b/src/regress/lib/libc/ieeefp/infinity/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/ieeefp/infinity/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/ieeefp/infinity/Makefile b/src/regress/lib/libc/ieeefp/infinity/Makefile new file mode 100644 index 000000000..ac102d8a6 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/infinity/Makefile @@ -0,0 +1,22 @@ +# $OpenBSD: Makefile,v 1.2 2004/01/16 19:34:37 miod Exp $ + +PROG= infinity + +DPADD+= ${LIBM} +LDADD+= -lm + +REGRESS_TARGETS+= add mult neg pumpkin + +add: ${PROG} + ./${PROG} -a + +mult: ${PROG} + ./${PROG} -m + +neg: ${PROG} + ./${PROG} -n + +pumpkin: ${PROG} + ./${PROG} -p + +.include diff --git a/src/regress/lib/libc/ieeefp/infinity/infinity.c b/src/regress/lib/libc/ieeefp/infinity/infinity.c new file mode 100644 index 000000000..3b1b71ec9 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/infinity/infinity.c @@ -0,0 +1,77 @@ +/* $OpenBSD: infinity.c,v 1.2 2004/01/16 19:34:37 miod Exp $ */ +/* + * Written by Miodrag Vallat, 2004 - Public Domain + * Inspired from Perl's t/op/arith test #134 + */ + +#include +#include +#include + +void +sigfpe(int signum) +{ + /* looks like we don't handle fp overflow correctly... */ + _exit(1); +} + +int +main(int argc, char *argv[]) +{ + int opt; + double d, two; + int i; + char method = 'a'; + + while ((opt = getopt(argc, argv, "amnp")) != -1) + method = (char)opt; + + signal(SIGFPE, sigfpe); + + switch (method) { + case 'a': + /* try to produce +Inf through addition */ + d = 1.0; + for (i = 2000; i != 0; i--) { + d = d + d; + } + /* result should be _positive_ infinity */ + if (!isinf(d) || copysign(1.0, d) < 0.0) + return (1); + break; + case 'm': + /* try to produce +Inf through multiplication */ + d = 1.0; + two = 2.0; + for (i = 2000; i != 0; i--) { + d = d * two; + } + /* result should be _positive_ infinity */ + if (!isinf(d) || copysign(1.0, d) < 0.0) + return (1); + break; + case 'n': + /* try to produce -Inf through subtraction */ + d = -1.0; + for (i = 2000; i != 0; i--) { + d = d + d; + } + /* result should be _negative_ infinity */ + if (!isinf(d) || copysign(1.0, d) > 0.0) + return (1); + break; + case 'p': + /* try to produce -Inf through multiplication */ + d = -1.0; + two = 2.0; + for (i = 2000; i != 0; i--) { + d = d * two; + } + /* result should be _negative_ infinity */ + if (!isinf(d) || copysign(1.0, d) > 0.0) + return (1); + break; + } + + return (0); +} diff --git a/src/regress/lib/libc/ieeefp/infinity/obj b/src/regress/lib/libc/ieeefp/infinity/obj new file mode 120000 index 000000000..27eaf6cbe --- /dev/null +++ b/src/regress/lib/libc/ieeefp/infinity/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/ieeefp/infinity \ No newline at end of file diff --git a/src/regress/lib/libc/ieeefp/round/CVS/Entries b/src/regress/lib/libc/ieeefp/round/CVS/Entries new file mode 100644 index 000000000..d1a914200 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/round/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.4/Mon Feb 18 11:25:34 2002// +/round.c/1.3/Thu Jul 31 21:48:03 2003// +D diff --git a/src/regress/lib/libc/ieeefp/round/CVS/Repository b/src/regress/lib/libc/ieeefp/round/CVS/Repository new file mode 100644 index 000000000..1e717108c --- /dev/null +++ b/src/regress/lib/libc/ieeefp/round/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/ieeefp/round diff --git a/src/regress/lib/libc/ieeefp/round/CVS/Root b/src/regress/lib/libc/ieeefp/round/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/ieeefp/round/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/ieeefp/round/Makefile b/src/regress/lib/libc/ieeefp/round/Makefile new file mode 100644 index 000000000..9ea6dd8c3 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/round/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.4 2002/02/18 11:25:34 art Exp $ + +PROG= round + +.include diff --git a/src/regress/lib/libc/ieeefp/round/obj b/src/regress/lib/libc/ieeefp/round/obj new file mode 120000 index 000000000..cc2a55896 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/round/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/ieeefp/round \ No newline at end of file diff --git a/src/regress/lib/libc/ieeefp/round/round.c b/src/regress/lib/libc/ieeefp/round/round.c new file mode 100644 index 000000000..807941ea5 --- /dev/null +++ b/src/regress/lib/libc/ieeefp/round/round.c @@ -0,0 +1,45 @@ +/* $OpenBSD: round.c,v 1.3 2003/07/31 21:48:03 deraadt Exp $ */ +/* $NetBSD: round.c,v 1.1 1995/04/26 00:27:28 jtc Exp $ */ + +/* + * Written by J.T. Conklin, Apr 18, 1995 + * Public domain. + */ + +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + /* + * This test would be better if it actually performed some + * calculations to verify the selected rounding mode. But + * this is probably acceptable since the fp{get,set}round + * functions usually just get or set the processors fpu + * control word. + */ + + assert(fpgetround() == FP_RN); + assert(FLT_ROUNDS == 1); + + assert(fpsetround(FP_RP) == FP_RN); + assert(fpgetround() == FP_RP); + assert(FLT_ROUNDS == 2); + + assert(fpsetround(FP_RM) == FP_RP); + assert(fpgetround() == FP_RM); + assert(FLT_ROUNDS == 3); + + assert(fpsetround(FP_RZ) == FP_RM); + assert(fpgetround() == FP_RZ); + assert(FLT_ROUNDS == 0); + + assert(fpsetround(FP_RN) == FP_RZ); + assert(fpgetround() == FP_RN); + assert(FLT_ROUNDS == 1); + + exit(0); +} diff --git a/src/regress/lib/libc/locale/CVS/Entries b/src/regress/lib/libc/locale/CVS/Entries new file mode 100644 index 000000000..cabdf37d2 --- /dev/null +++ b/src/regress/lib/libc/locale/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.1/Thu Aug 11 21:57:02 2005// +D/check_isw//// diff --git a/src/regress/lib/libc/locale/CVS/Repository b/src/regress/lib/libc/locale/CVS/Repository new file mode 100644 index 000000000..51a2a0f81 --- /dev/null +++ b/src/regress/lib/libc/locale/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/locale diff --git a/src/regress/lib/libc/locale/CVS/Root b/src/regress/lib/libc/locale/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/locale/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/locale/Makefile b/src/regress/lib/libc/locale/Makefile new file mode 100644 index 000000000..c182172ba --- /dev/null +++ b/src/regress/lib/libc/locale/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.1 2005/08/11 21:57:02 espie Exp $ + +SUBDIR+= check_isw + +install: + +.include diff --git a/src/regress/lib/libc/locale/check_isw/CVS/Entries b/src/regress/lib/libc/locale/check_isw/CVS/Entries new file mode 100644 index 000000000..675e8584c --- /dev/null +++ b/src/regress/lib/libc/locale/check_isw/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Aug 11 21:57:02 2005// +/check_isw.c/1.1/Thu Aug 11 21:57:02 2005// +D diff --git a/src/regress/lib/libc/locale/check_isw/CVS/Repository b/src/regress/lib/libc/locale/check_isw/CVS/Repository new file mode 100644 index 000000000..c883a5d3e --- /dev/null +++ b/src/regress/lib/libc/locale/check_isw/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/locale/check_isw diff --git a/src/regress/lib/libc/locale/check_isw/CVS/Root b/src/regress/lib/libc/locale/check_isw/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/locale/check_isw/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/locale/check_isw/Makefile b/src/regress/lib/libc/locale/check_isw/Makefile new file mode 100644 index 000000000..0885968fd --- /dev/null +++ b/src/regress/lib/libc/locale/check_isw/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2005/08/11 21:57:02 espie Exp $ + +NOMAN= +PROG=check_isw + +run-regress-check_isw: ${PROG} + ./${PROG} >/dev/null + +.include diff --git a/src/regress/lib/libc/locale/check_isw/check_isw.c b/src/regress/lib/libc/locale/check_isw/check_isw.c new file mode 100644 index 000000000..9386267f6 --- /dev/null +++ b/src/regress/lib/libc/locale/check_isw/check_isw.c @@ -0,0 +1,147 @@ +/* $OpenBSD: check_isw.c,v 1.1 2005/08/11 21:57:02 espie Exp $ */ +/* + * Copyright (c) 2005 Marc Espie + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This checks consistency of the isw* functions with the default + * functions. + */ + +#include +#include +#include +#include +#include + +int bad = 0; + +void +check_bool(int v1, int v2, char msg) +{ + if (!v1 != !v2) { + printf("%c", msg); + bad++; + } +} + +void +check_value(int v1, int v2, char msg) +{ + if (v1 != v2) { + printf("%c", msg); + bad++; + } +} + +void +test1() +{ + int i; + + for (i = 0; i < 256; i++) { + printf(" %02x: ", i); + check_bool(isalnum(i), iswalnum(i), '1'); + check_bool(isalpha(i), iswalpha(i), '2'); + check_bool(isblank(i), iswblank(i), '3'); + check_bool(iscntrl(i), iswcntrl(i), '4'); + check_bool(isdigit(i), iswdigit(i), '5'); + check_bool(isgraph(i), iswgraph(i), '6'); + check_bool(islower(i), iswlower(i), '6'); + check_bool(isprint(i), iswprint(i), '7'); + check_bool(ispunct(i), iswpunct(i), '8'); + check_bool(isspace(i), iswspace(i), '9'); + check_bool(isupper(i), iswupper(i), 'a'); + check_bool(isxdigit(i), iswxdigit(i), 'b'); + check_value(tolower(i), towlower(i), 'c'); + check_value(toupper(i), towupper(i), 'd'); + if (i % 8 == 7) + printf("\n"); + } + printf("%\n"); +} + +void +test2() +{ + unsigned char *s; + unsigned char *buf; + int i, j; + size_t n; + wchar_t c, d; + mbstate_t state; + + s = malloc(256); + if (!s) { + bad++; + return; + } + buf = malloc(MB_CUR_MAX); + if (!buf) { + bad++; + free(s); + return; + } + for (i = 0; i < 256; i++) + s[i] = i+1; + + j = 0; + mbrtowc(NULL, NULL, 1, &state); + printf(" %02x: ", 0); + + while ((n = mbrtowc(&c, s+j, 256-j, &state)) == 1) { + printf(" %02x: ", s[j]); + check_bool(isalnum(s[j]), iswalnum(c), '1'); + check_bool(isalpha(s[j]), iswalpha(c), '2'); + check_bool(isblank(s[j]), iswblank(c), '3'); + check_bool(iscntrl(s[j]), iswcntrl(c), '4'); + check_bool(isdigit(s[j]), iswdigit(c), '5'); + check_bool(isgraph(s[j]), iswgraph(c), '6'); + check_bool(islower(s[j]), iswlower(c), '6'); + check_bool(isprint(s[j]), iswprint(c), '7'); + check_bool(ispunct(s[j]), iswpunct(c), '8'); + check_bool(isspace(s[j]), iswspace(c), '9'); + check_bool(isupper(s[j]), iswupper(c), 'a'); + check_bool(isxdigit(s[j]), iswxdigit(c), 'b'); + d = towlower(c); + if (wctomb(buf, d) == 1) { + check_value(tolower(s[j]), buf[0], 'c'); + } else { + bad++; + } + d = towupper(c); + if (wctomb(buf, d) == 1) { + check_value(toupper(s[j]), buf[0], 'c'); + } else { + bad++; + } + if (s[j] % 8 == 7) + printf("\n"); + j++; + } + if (n != 0 || j != 255) { + bad++; + } + free(s); + free(buf); +} + + +int +main() +{ + test1(); + test2(); + return bad !=0; +} diff --git a/src/regress/lib/libc/locale/check_isw/obj b/src/regress/lib/libc/locale/check_isw/obj new file mode 120000 index 000000000..b381dd43f --- /dev/null +++ b/src/regress/lib/libc/locale/check_isw/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/locale/check_isw \ No newline at end of file diff --git a/src/regress/lib/libc/longjmp/CVS/Entries b/src/regress/lib/libc/longjmp/CVS/Entries new file mode 100644 index 000000000..0f73954ef --- /dev/null +++ b/src/regress/lib/libc/longjmp/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.4/Mon Sep 2 20:01:43 2002// +/longjmp.c/1.4/Mon Feb 18 11:27:45 2002// +D diff --git a/src/regress/lib/libc/longjmp/CVS/Repository b/src/regress/lib/libc/longjmp/CVS/Repository new file mode 100644 index 000000000..e985b3dd3 --- /dev/null +++ b/src/regress/lib/libc/longjmp/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/longjmp diff --git a/src/regress/lib/libc/longjmp/CVS/Root b/src/regress/lib/libc/longjmp/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/longjmp/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/longjmp/Makefile b/src/regress/lib/libc/longjmp/Makefile new file mode 100644 index 000000000..825e0f86d --- /dev/null +++ b/src/regress/lib/libc/longjmp/Makefile @@ -0,0 +1,13 @@ +# $OpenBSD: Makefile,v 1.4 2002/09/02 20:01:43 avsm Exp $ +PROG= longjmp + +do-longjmp: ${PROG} + ./longjmp + +do-_longjmp: ${PROG} + ./longjmp -_ + +REGRESS_TARGETS=do-longjmp do-_longjmp +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/lib/libc/longjmp/longjmp.c b/src/regress/lib/libc/longjmp/longjmp.c new file mode 100644 index 000000000..7dea5bd97 --- /dev/null +++ b/src/regress/lib/libc/longjmp/longjmp.c @@ -0,0 +1,71 @@ +/* $OpenBSD: longjmp.c,v 1.4 2002/02/18 11:27:45 art Exp $ */ +/* + * Artur Grabowski , 2002 Public Domain. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + + +jmp_buf buf; + +/* + * When longjmp is passed the incorrect arg (0), it should translate it into + * something better. + * + * The rlimit is here in case we start spinning. + */ +int +main(int argc, char **argv) +{ + struct rlimit rl; + volatile int i, expect; + int (*sj)(jmp_buf); + void (*lj)(jmp_buf, int); + int ch; + extern char *__progname; + + sj = setjmp; + lj = longjmp; + + while ((ch = getopt(argc, argv, "_")) != -1) { + switch (ch) { + case '_': + sj = _setjmp; + lj = _longjmp; + break; + default: + fprintf(stderr, "Usage: %s [-_]\n", __progname); + exit(1); + } + } + + rl.rlim_cur = 2; + rl.rlim_max = 2; + if (setrlimit(RLIMIT_CPU, &rl) < 0) + err(1, "setrlimit"); + + expect = 0; + i = (*sj)(buf); + if (i == 0 && expect != 0) + errx(1, "setjmp returns 0 on longjmp(.., 0)"); + if (expect == 0) { + expect = -1; + (*lj)(buf, 0); + } + + expect = 0; + i = (*sj)(buf); + if (i != expect) + errx(1, "bad return from setjmp %d/%d", expect, i); + if (expect < 1000) + (*lj)(buf, expect += 2); + + return 0; +} diff --git a/src/regress/lib/libc/longjmp/obj b/src/regress/lib/libc/longjmp/obj new file mode 120000 index 000000000..a56afbb2a --- /dev/null +++ b/src/regress/lib/libc/longjmp/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/longjmp \ No newline at end of file diff --git a/src/regress/lib/libc/malloc/CVS/Entries b/src/regress/lib/libc/malloc/CVS/Entries new file mode 100644 index 000000000..25c2fe746 --- /dev/null +++ b/src/regress/lib/libc/malloc/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.5/Tue Apr 18 19:04:39 2006// +D/malloc0test//// +D/malloc_errno//// +D/malloc_ulimit1//// +D/malloc_ulimit2//// diff --git a/src/regress/lib/libc/malloc/CVS/Repository b/src/regress/lib/libc/malloc/CVS/Repository new file mode 100644 index 000000000..0973b09a3 --- /dev/null +++ b/src/regress/lib/libc/malloc/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/malloc diff --git a/src/regress/lib/libc/malloc/CVS/Root b/src/regress/lib/libc/malloc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/malloc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/malloc/Makefile b/src/regress/lib/libc/malloc/Makefile new file mode 100644 index 000000000..7c919d1bc --- /dev/null +++ b/src/regress/lib/libc/malloc/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.5 2006/04/18 19:04:39 otto Exp $ + +SUBDIR+= malloc0test malloc_errno malloc_ulimit1 malloc_ulimit2 + +install: + +.include diff --git a/src/regress/lib/libc/malloc/malloc0test/CVS/Entries b/src/regress/lib/libc/malloc/malloc0test/CVS/Entries new file mode 100644 index 000000000..da3ca4ac4 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc0test/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Jul 15 10:09:37 2003// +/malloc0test.c/1.5/Sun Apr 13 00:22:17 2008// +D diff --git a/src/regress/lib/libc/malloc/malloc0test/CVS/Repository b/src/regress/lib/libc/malloc/malloc0test/CVS/Repository new file mode 100644 index 000000000..6b34c5d91 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc0test/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/malloc/malloc0test diff --git a/src/regress/lib/libc/malloc/malloc0test/CVS/Root b/src/regress/lib/libc/malloc/malloc0test/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc0test/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/malloc/malloc0test/Makefile b/src/regress/lib/libc/malloc/malloc0test/Makefile new file mode 100644 index 000000000..8ed8163a7 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc0test/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2003/07/15 10:09:37 otto Exp $ + +PROG= malloc0test + +.include diff --git a/src/regress/lib/libc/malloc/malloc0test/malloc0test.c b/src/regress/lib/libc/malloc/malloc0test/malloc0test.c new file mode 100644 index 000000000..06ff0996e --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc0test/malloc0test.c @@ -0,0 +1,120 @@ +/* $OpenBSD: malloc0test.c,v 1.5 2008/04/13 00:22:17 djm Exp $ */ +/* + * Public domain. 2001, Theo de Raadt + */ +#include +#include +#include +#include +#include +#include +#include +#include + +volatile sig_atomic_t got; +jmp_buf jmp; + +static void +catch(int signo) +{ + got++; + longjmp(jmp, 1); +} + +static int +test(char *p, int size) +{ + signal(SIGSEGV, catch); + got = 0; + if (setjmp(jmp) == 0) + *p = 0; + if (setjmp(jmp) == 0) + *(p+size-1) = 0; + return (got); +} + +char *prot_table[] = { + "unprotected", + "fuckup", + "protected" +}; + +#define SIZE 10 + +/* + * Do random memory allocations. + * + * For each one, ensure that it is at least 16 bytes in size (that + * being what our current malloc returns for the minsize of an + * object, alignment wise); + * + * For zero-byte allocations, check that they are still aligned. + * + * For each object, ensure that they are correctly protected or not + * protected. + * + * Does not regress test malloc + free combinations ... it should. + */ +int +main(int argc, char *argv[]) +{ + caddr_t blob; + int size, tsize; + int prot; + int rval = 0, fuckup = 0; + long limit = 200000, count; + int ch, silent = 0; + char *ep; + extern char *__progname; + + while ((ch = getopt(argc, argv, "sn:")) != -1) { + switch (ch) { + case 's': + silent = 1; + break; + case 'n': + errno = 0; + limit = strtol(optarg, &ep, 10); + if (optarg[0] == '\0' || *ep != '\0' || + (errno == ERANGE && + (limit == LONG_MAX || limit == LONG_MIN))) + goto usage; + break; + default: +usage: + fprintf(stderr, "Usage: %s [-s][-n ]\n", + __progname); + exit(1); + } + } + + if (limit == 0) + limit = LONG_MAX; + + for (count = 0; count < limit; count++) { + size = arc4random_uniform(SIZE); + blob = malloc(size); + if (blob == NULL) { + fprintf(stderr, "success: out of memory\n"); + exit(rval); + } + + tsize = size == 0 ? 16 : size; + fuckup = 0; + prot = test(blob, tsize); + + if (size == 0 && prot < 2) + fuckup = 1; + + if (fuckup) { + printf("%8p %6d %20s %10s\n", blob, size, + prot_table[prot], fuckup ? "fuckup" : ""); + rval = 1; + } + + if (!silent && count % 100000 == 0 && count != 0) + fprintf(stderr, "count = %ld\n", count); + } + + return rval; +} diff --git a/src/regress/lib/libc/malloc/malloc0test/obj b/src/regress/lib/libc/malloc/malloc0test/obj new file mode 120000 index 000000000..4f7569ad1 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc0test/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/malloc/malloc0test \ No newline at end of file diff --git a/src/regress/lib/libc/malloc/malloc_errno/CVS/Entries b/src/regress/lib/libc/malloc/malloc_errno/CVS/Entries new file mode 100644 index 000000000..551d6de00 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_errno/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Jul 15 10:06:31 2003// +/malloc_errno.c/1.4/Thu Dec 25 18:49:57 2003// +D diff --git a/src/regress/lib/libc/malloc/malloc_errno/CVS/Repository b/src/regress/lib/libc/malloc/malloc_errno/CVS/Repository new file mode 100644 index 000000000..d01da1075 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_errno/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/malloc/malloc_errno diff --git a/src/regress/lib/libc/malloc/malloc_errno/CVS/Root b/src/regress/lib/libc/malloc/malloc_errno/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_errno/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/malloc/malloc_errno/Makefile b/src/regress/lib/libc/malloc/malloc_errno/Makefile new file mode 100644 index 000000000..73ebe3749 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_errno/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2003/07/15 10:06:31 otto Exp $ + +PROG= malloc_errno + +.include diff --git a/src/regress/lib/libc/malloc/malloc_errno/malloc_errno.c b/src/regress/lib/libc/malloc/malloc_errno/malloc_errno.c new file mode 100644 index 000000000..896ea3c90 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_errno/malloc_errno.c @@ -0,0 +1,46 @@ +/* $OpenBSD: malloc_errno.c,v 1.4 2003/12/25 18:49:57 miod Exp $ */ +/* + * Public domain. 2003, Otto Moerbeek + */ +#include +#include +#include +#include + +static void +testerrno(size_t sz) +{ + void *p; + + errno = -1; + p = malloc(sz); + + if (p == NULL && errno != ENOMEM) + errx(1, "fail: %lx %p %d", (unsigned long)sz, p, errno); + + /* if alloc succeeded, test if errno did not change */ + if (p != NULL && errno != -1) + errx(1, "fail: %lx %p %d", (unsigned long)sz, p, errno); + + free(p); +} + +/* + * Provide some (silly) arguments to malloc(), and check if ERRNO is set + * correctly. + */ +int +main(int argc, char *argv[]) +{ + size_t i; + + testerrno(1); + testerrno(100000); + testerrno(-1); + testerrno(-1000); + testerrno(-10000); + testerrno(-10000000); + for (i = 0; i < 0x10; i++) + testerrno(i * 0x10000000); + return 0; +} diff --git a/src/regress/lib/libc/malloc/malloc_errno/obj b/src/regress/lib/libc/malloc/malloc_errno/obj new file mode 120000 index 000000000..836b8c063 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_errno/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/malloc/malloc_errno \ No newline at end of file diff --git a/src/regress/lib/libc/malloc/malloc_ulimit1/CVS/Entries b/src/regress/lib/libc/malloc/malloc_ulimit1/CVS/Entries new file mode 100644 index 000000000..14637628d --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_ulimit1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Apr 18 19:03:30 2006// +/malloc_ulimit1.c/1.2/Tue May 16 05:47:13 2006// +D diff --git a/src/regress/lib/libc/malloc/malloc_ulimit1/CVS/Repository b/src/regress/lib/libc/malloc/malloc_ulimit1/CVS/Repository new file mode 100644 index 000000000..ec0496262 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_ulimit1/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/malloc/malloc_ulimit1 diff --git a/src/regress/lib/libc/malloc/malloc_ulimit1/CVS/Root b/src/regress/lib/libc/malloc/malloc_ulimit1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_ulimit1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/malloc/malloc_ulimit1/Makefile b/src/regress/lib/libc/malloc/malloc_ulimit1/Makefile new file mode 100644 index 000000000..46ced27a9 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_ulimit1/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2006/04/18 19:03:30 otto Exp $ + +PROG= malloc_ulimit1 + +.include diff --git a/src/regress/lib/libc/malloc/malloc_ulimit1/malloc_ulimit1.c b/src/regress/lib/libc/malloc/malloc_ulimit1/malloc_ulimit1.c new file mode 100644 index 000000000..99e805e8e --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_ulimit1/malloc_ulimit1.c @@ -0,0 +1,44 @@ +/* $OpenBSD: malloc_ulimit1.c,v 1.2 2006/05/16 05:47:13 otto Exp $ */ + +/* Public Domain, 2006, Otto Moerbeek */ + +#include +#include +#include +#include +#include +#include + +/* + * This code tries to trigger the case present in -current as of April + * 2006) where the allocation of the region itself succeeds, but the + * page dir entry pages fails. + * This in turn trips a "hole in directories" error. + * Having a large (512M) ulimit -m helps a lot in triggering the + * problem. Note that you may need to run this test multiple times to + * see the error. +*/ + +#define STARTI 1300 +#define FACTOR 1024 + +main() +{ + struct rlimit lim; + size_t sz; + int i; + void *p; + + if (getrlimit(RLIMIT_DATA, &lim) == -1) + err(1, "getrlimit"); + + sz = lim.rlim_cur / FACTOR; + + for (i = STARTI; i >= 0; i--) { + size_t len = (sz-i) * FACTOR; + p = malloc(len); + free(p); + free(malloc(4096)); + } + return (0); +} diff --git a/src/regress/lib/libc/malloc/malloc_ulimit1/obj b/src/regress/lib/libc/malloc/malloc_ulimit1/obj new file mode 120000 index 000000000..5cb742ea3 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_ulimit1/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/malloc/malloc_ulimit1 \ No newline at end of file diff --git a/src/regress/lib/libc/malloc/malloc_ulimit2/CVS/Entries b/src/regress/lib/libc/malloc/malloc_ulimit2/CVS/Entries new file mode 100644 index 000000000..582d78412 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_ulimit2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Apr 18 19:04:03 2006// +/malloc_ulimit2.c/1.2/Tue May 16 05:47:13 2006// +D diff --git a/src/regress/lib/libc/malloc/malloc_ulimit2/CVS/Repository b/src/regress/lib/libc/malloc/malloc_ulimit2/CVS/Repository new file mode 100644 index 000000000..3d44d23f6 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_ulimit2/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/malloc/malloc_ulimit2 diff --git a/src/regress/lib/libc/malloc/malloc_ulimit2/CVS/Root b/src/regress/lib/libc/malloc/malloc_ulimit2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_ulimit2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/malloc/malloc_ulimit2/Makefile b/src/regress/lib/libc/malloc/malloc_ulimit2/Makefile new file mode 100644 index 000000000..bc8366641 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_ulimit2/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2006/04/18 19:04:03 otto Exp $ + +PROG= malloc_ulimit2 + +.include diff --git a/src/regress/lib/libc/malloc/malloc_ulimit2/malloc_ulimit2.c b/src/regress/lib/libc/malloc/malloc_ulimit2/malloc_ulimit2.c new file mode 100644 index 000000000..ca8e8f438 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_ulimit2/malloc_ulimit2.c @@ -0,0 +1,42 @@ +/* $OpenBSD: malloc_ulimit2.c,v 1.2 2006/05/16 05:47:13 otto Exp $ */ + +/* Public Domain, 2006, Otto Moerbeek */ + +#include +#include +#include +#include +#include +#include + +#define FACTOR 1024 + +main() +{ + struct rlimit lim; + size_t sz; + int i; + void *p; + + if (getrlimit(RLIMIT_DATA, &lim) == -1) + err(1, "getrlimit"); + + sz = lim.rlim_cur / FACTOR; + + for (i = 0; ; i++) { + size_t len = (sz-i) * FACTOR; + p = malloc(len); + if (p != NULL) { + free(p); + break; + } + } + i += 10; + for (; i >= 0; i--) { + size_t len = (sz-i) * FACTOR; + p = malloc(len); + free(p); + free(malloc(4096)); + } + return (0); +} diff --git a/src/regress/lib/libc/malloc/malloc_ulimit2/obj b/src/regress/lib/libc/malloc/malloc_ulimit2/obj new file mode 120000 index 000000000..a106b2861 --- /dev/null +++ b/src/regress/lib/libc/malloc/malloc_ulimit2/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/malloc/malloc_ulimit2 \ No newline at end of file diff --git a/src/regress/lib/libc/mkstemp/CVS/Entries b/src/regress/lib/libc/mkstemp/CVS/Entries new file mode 100644 index 000000000..9c70ab1b8 --- /dev/null +++ b/src/regress/lib/libc/mkstemp/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Feb 11 07:35:38 2010// +/mkstemp_test.c/1.2/Thu Feb 11 16:39:05 2010// +D diff --git a/src/regress/lib/libc/mkstemp/CVS/Repository b/src/regress/lib/libc/mkstemp/CVS/Repository new file mode 100644 index 000000000..2c064a252 --- /dev/null +++ b/src/regress/lib/libc/mkstemp/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/mkstemp diff --git a/src/regress/lib/libc/mkstemp/CVS/Root b/src/regress/lib/libc/mkstemp/CVS/Root new file mode 100644 index 000000000..eb7bf5034 --- /dev/null +++ b/src/regress/lib/libc/mkstemp/CVS/Root @@ -0,0 +1 @@ +syuu@cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/mkstemp/Makefile b/src/regress/lib/libc/mkstemp/Makefile new file mode 100644 index 000000000..dc7eb281a --- /dev/null +++ b/src/regress/lib/libc/mkstemp/Makefile @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile,v 1.1 2010/02/11 07:35:38 guenther Exp $ + +PROG=mkstemp_test +CLEANFILES+= ; rm -rf output + +O = output + +# The ktrace/kdump/perl combo verifies that all open() calls that +# were passed O_CREAT were also passed O_EXCL +run-regress-${PROG}: ${PROG} + mkdir -p $O && cd $O && ktrace ../${PROG} + cd $O && kdump | perl -mFcntl -nl \ + -e '/ open\([^,]*,([^,]+)/ or next;' \ + -e '$$f = oct($$1);' \ + -e 'if ($$f & O_CREAT && !($$f & O_EXCL)) {' \ + -e ' print "FAIL"; exit 1' \ + -e '}' + +.include diff --git a/src/regress/lib/libc/mkstemp/mkstemp_test.c b/src/regress/lib/libc/mkstemp/mkstemp_test.c new file mode 100644 index 000000000..fd133d836 --- /dev/null +++ b/src/regress/lib/libc/mkstemp/mkstemp_test.c @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2010 Philip Guenther + * + * Public domain. + * + * Verify that mkstemp() and mkstemps() doesn't overrun or underrun + * the template buffer and that it can generate names that don't + * contain any X's + */ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#define MAX_TEMPLATE_LEN 10 +#define MAX_TRIES 100 + +#define SUFFIX ".suff" +#define SLEN (sizeof SUFFIX - 1) + +long pg; + +/* + * verify that a path generated by mkstemp() or mkstemp() looks like a + * reasonable expansion of the template and matches the fd. Returns true + * if all the X's were replaced with non-X's + */ +int +check(int fd, char const *path, char const *prefix, size_t plen, + char const *suffix, size_t slen, int tlen) +{ + struct stat sb, fsb; + char const *p; + + if (fd < 0) + err(1, "mkstemp"); + if (stat(path, &sb)) + err(1, "stat(%s)", path); + if (fstat(fd, &fsb)) + err(1, "fstat(%d==%s)", fd, path); + if (sb.st_dev != fsb.st_dev || sb.st_ino != fsb.st_ino) + errx(1, "stat mismatch"); + close(fd); + if (memcmp(path, prefix, plen) != 0) + errx(1, "prefix changed! %s vs %s", prefix, path); + if (memcmp(path + plen + tlen, suffix, slen + 1) != 0) + errx(1, "suffix changed! %s vs %s", suffix, path); + for (p = path + plen; p < path + plen + tlen; p++) + if (*p == '\0') + errx(1, "unexpected truncation"); + else if (*p == 'X') + return 0; + return 1; +} + + +void +try_mkstemp(char *p, char const *prefix, int len) +{ + char *q; + size_t plen = strlen(prefix); + int tries, fd; + + for (tries = 0; tries < MAX_TRIES; tries++) { + memcpy(p, prefix, plen); + memset(p + plen, 'X', len); + p[plen + len] = '\0'; + fd = mkstemp(p); + if (check(fd, p, prefix, plen, "", 0, len)) + return; + } + errx(1, "exceeded MAX_TRIES"); +} + +void +try_mkstemps(char *p, char const *prefix, int len, char const *suffix) +{ + char *q; + size_t plen = strlen(prefix); + size_t slen = strlen(suffix); + int tries, fd; + + for (tries = 0; tries < MAX_TRIES; tries++) { + memcpy(p, prefix, plen); + memset(p + plen, 'X', len); + memcpy(p + plen + len, suffix, slen + 1); + fd = mkstemps(p, slen); + if (check(fd, p, prefix, plen, suffix, slen, len)) + return; + } + errx(1, "exceeded MAX_TRIES"); +} + +int +main(void) +{ + struct stat sb, fsb; + char cwd[MAXPATHLEN + 1]; + char *p; + size_t clen; + int i; + + pg = sysconf(_SC_PAGESIZE); + if (getcwd(cwd, sizeof cwd - 1) == NULL) + err(1, "getcwd"); + clen = strlen(cwd); + cwd[clen++] = '/'; + cwd[clen] = '\0'; + p = mmap(NULL, pg * 3, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); + if (p == NULL) + err(1, "mmap"); + if (mprotect(p, pg, PROT_NONE) || mprotect(p + pg * 2, pg, PROT_NONE)) + err(1, "mprotect"); + p += pg; + + i = MAX_TEMPLATE_LEN + 1; + while (i-- > 1) { + /* try first at the start of a page, no prefix */ + try_mkstemp(p, "", i); + /* now at the end of the page, no prefix */ + try_mkstemp(p + pg - i - 1, "", i); + /* start of the page, prefixed with the cwd */ + try_mkstemp(p, cwd, i); + /* how about at the end of the page, prefixed with cwd? */ + try_mkstemp(p + pg - clen - i - 1, cwd, i); + + /* again, with mkstemps() and an empty suffix */ + /* try first at the start of a page, no prefix */ + try_mkstemps(p, "", i, ""); + /* now at the end of the page, no prefix */ + try_mkstemps(p + pg - i - 1, "", i, ""); + /* start of the page, prefixed with the cwd */ + try_mkstemps(p, cwd, i, ""); + /* how about at the end of the page, prefixed with cwd? */ + try_mkstemps(p + pg - clen - i - 1, cwd, i, ""); + + /* mkstemps() and a non-empty suffix */ + /* try first at the start of a page, no prefix */ + try_mkstemps(p, "", i, SUFFIX); + /* now at the end of the page, no prefix */ + try_mkstemps(p + pg - i - SLEN - 1, "", i, SUFFIX); + /* start of the page, prefixed with the cwd */ + try_mkstemps(p, cwd, i, SUFFIX); + /* how about at the end of the page, prefixed with cwd? */ + try_mkstemps(p + pg - clen - i - SLEN - 1, cwd, i, SUFFIX); + + } + + return 0; +} diff --git a/src/regress/lib/libc/netdb/CVS/Entries b/src/regress/lib/libc/netdb/CVS/Entries new file mode 100644 index 000000000..366160202 --- /dev/null +++ b/src/regress/lib/libc/netdb/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Oct 25 15:10:36 2004// +/netdb.c/1.1/Mon Oct 25 15:10:36 2004// +D diff --git a/src/regress/lib/libc/netdb/CVS/Repository b/src/regress/lib/libc/netdb/CVS/Repository new file mode 100644 index 000000000..cbc5b3b83 --- /dev/null +++ b/src/regress/lib/libc/netdb/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/netdb diff --git a/src/regress/lib/libc/netdb/CVS/Root b/src/regress/lib/libc/netdb/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/netdb/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/netdb/Makefile b/src/regress/lib/libc/netdb/Makefile new file mode 100644 index 000000000..825460722 --- /dev/null +++ b/src/regress/lib/libc/netdb/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2004/10/25 15:10:36 otto Exp $ + +PROG= netdb + +.include diff --git a/src/regress/lib/libc/netdb/netdb.c b/src/regress/lib/libc/netdb/netdb.c new file mode 100644 index 000000000..0082c1bd1 --- /dev/null +++ b/src/regress/lib/libc/netdb/netdb.c @@ -0,0 +1,182 @@ +/* $OpenBSD: netdb.c,v 1.1 2004/10/25 15:10:36 otto Exp $ */ + +/* + * Public domain, 2004, Otto Moerbeek + */ + +#include +#include +#include + +int ret = 0; + +void +checkp(int n, struct protoent *p, int proto, const char *name, ...) +{ + va_list va; + char *a; + int i; + + if (p == NULL) { + warnx("%d proto struct is NULL", n); + ret = 1; + return; + } + if (p->p_proto != proto) { + warnx("%d proto num mismatch %d %d", n, p->p_proto, proto); + ret = 1; + } + if (strcmp(p->p_name, name) != 0) { + warnx("%d proto name mismatch %s %s", n, p->p_name, name); + ret = 1; + } + va_start(va, name); + a = va_arg(va, char *); + i = 0; + while (a != NULL) { + if (strcmp(p->p_aliases[i], a) != 0) { + warnx("%d proto alias mismatch %s %s", n, + p->p_aliases[i], a); + ret = 1; + } + i++; + a = va_arg(va, char *); + } + if (p->p_aliases[i] != NULL) { + warnx("%d proto alias list does not end with NULL", n); + ret = 1; + } + va_end(va); +} + + +void +checks(int n, struct servent *s, int port, const char *proto, + const char *name, ...) +{ + va_list va; + char *a; + int i; + + if (s == NULL) { + warnx("%d serv struct is NULL", n); + ret = 1; + return; + } + if (s->s_port != ntohs(port)) { + warnx("%d port num mismatch %d %d", n, s->s_port, port); + ret = 1; + } + if (strcmp(s->s_name, name) != 0) { + warnx("%d serv name mismatch %s %s", n, s->s_name, name); + ret = 1; + } + if (strcmp(s->s_proto, proto) != 0) { + warnx("%d serv proto mismatch %s %s", n, s->s_proto, proto); + ret = 1; + } + va_start(va, name); + a = va_arg(va, char *); + i = 0; + while (a != NULL) { + if (strcmp(s->s_aliases[i], a) != 0) { + warnx("%d serv alias mismatch %s %s", n, + s->s_aliases[i], a); + ret = 1; + } + i++; + a = va_arg(va, char *); + } + if (s->s_aliases[i] != NULL) { + warnx("%d serv alias list does not end with NULL", n); + ret = 1; + } + va_end(va); +} + +int +main() +{ + struct protoent *p; + struct protoent protoent; + struct protoent_data protoent_data; + struct servent *s; + struct servent servent; + struct servent_data servent_data; + int r; + + p = getprotobynumber(35); + checkp(1, p, 35, "idpr", "IDPR", (char *)NULL); + + p = getprotobyname("igp"); + checkp(2, p, 9, "igp", "IGP", (char *) NULL); + + p = getprotobyname("RDP"); + checkp(3, p, 27, "rdp", "RDP", (char *) NULL); + + p = getprotobyname("vrrp"); + checkp(4, p, 112, "carp", "CARP", "vrrp", (char *) NULL); + + p = getprotobyname("nonexistent"); + if (p != NULL) + err(1, "nonexistent proto found"); + + memset(&protoent_data, 0, sizeof(protoent_data)); + r = getprotobynumber_r(35, &protoent, &protoent_data); + if (r != 0) + err(1, "proto not found"); + + checkp(5, &protoent, 35, "idpr", "IDPR", (char *)NULL); + + r = getprotobyname_r("vrrp", &protoent, &protoent_data); + if (r != 0) + err(1, "proto not found"); + checkp(6, &protoent, 112, "carp", "CARP", "vrrp", (char *) NULL); + + r = getprotobyname_r("nonexistent", &protoent, &protoent_data); + if (r != -1) + err(1, "nonexistent proto found"); + + r = getprotobyname_r("", &protoent, &protoent_data); + if (r != -1) + err(1, "nonexistent proto found"); + + + r = getprotobynumber_r(256, &protoent, &protoent_data); + if (r != -1) + err(1, "nonexistent proto found"); + + s = getservbyname("zip", NULL); + checks(7, s, 6, "ddp", "zip", (char *)NULL); + + s = getservbyname("nicname", "tcp"); + checks(8, s, 43, "tcp", "whois", "nicname", (char *)NULL); + + s = getservbyport(htons(42), "tcp"); + checks(9, s, 42, "tcp", "nameserver", "name", (char *)NULL); + + memset(&servent_data, 0, sizeof(servent_data)); + r = getservbyname_r("zip", "ddp", &servent, &servent_data); + if (r != 0) + err(1, "servent not found"); + checks(10, &servent, 6, "ddp", "zip", (char *)NULL); + + r = getservbyport_r(htons(520), NULL, &servent, &servent_data); + if (r != 0) + err(1, "servent not found"); + checks(11, &servent, 520, "udp", "route", "router", "routed", (char *)NULL); + + r = getservbyname_r("nonexistent", NULL, &servent, &servent_data); + if (r != -1) + err(1, "nonexiststent servent found"); + + r = getservbyport_r(htons(50000), NULL, &servent, &servent_data); + if (r != -1) + err(1, "nonexistent servent found"); + + r = getservbyport_r(htons(520), "tcp", &servent, &servent_data); + if (r != -1) + err(1, "nonexistent servent found"); + + return ret; +} diff --git a/src/regress/lib/libc/netdb/obj b/src/regress/lib/libc/netdb/obj new file mode 120000 index 000000000..37201bda4 --- /dev/null +++ b/src/regress/lib/libc/netdb/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/netdb \ No newline at end of file diff --git a/src/regress/lib/libc/orientation/CVS/Entries b/src/regress/lib/libc/orientation/CVS/Entries new file mode 100644 index 000000000..b1c503892 --- /dev/null +++ b/src/regress/lib/libc/orientation/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Nov 21 09:56:10 2009// +/orientation_test.c/1.1/Sat Nov 21 09:56:10 2009// +D diff --git a/src/regress/lib/libc/orientation/CVS/Repository b/src/regress/lib/libc/orientation/CVS/Repository new file mode 100644 index 000000000..ed94229d1 --- /dev/null +++ b/src/regress/lib/libc/orientation/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/orientation diff --git a/src/regress/lib/libc/orientation/CVS/Root b/src/regress/lib/libc/orientation/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/orientation/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/orientation/Makefile b/src/regress/lib/libc/orientation/Makefile new file mode 100644 index 000000000..b116a04b0 --- /dev/null +++ b/src/regress/lib/libc/orientation/Makefile @@ -0,0 +1,10 @@ +# $OpenBSD: Makefile,v 1.1 2009/11/21 09:56:10 guenther Exp $ + +NOMAN= +PROG=orientation_test +CPPFLAGS+=-I${.CURDIR}/../../../../lib/libc + +run-regress-atexit_test: ${PROG} + ./${PROG} + +.include diff --git a/src/regress/lib/libc/orientation/obj b/src/regress/lib/libc/orientation/obj new file mode 120000 index 000000000..529ff2aeb --- /dev/null +++ b/src/regress/lib/libc/orientation/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/orientation \ No newline at end of file diff --git a/src/regress/lib/libc/orientation/orientation_test.c b/src/regress/lib/libc/orientation/orientation_test.c new file mode 100644 index 000000000..4af6a3407 --- /dev/null +++ b/src/regress/lib/libc/orientation/orientation_test.c @@ -0,0 +1,252 @@ +/* $OpenBSD: orientation_test.c,v 1.1 2009/11/21 09:56:10 guenther Exp $ */ + +/* + * Copyright (c) 2009 Philip Guenther + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Test whether the various stdio functions set the stream orientation + * ("width") as they should + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +char filename[] = "/tmp/fwide.XXXXXXXXXX"; + +FILE *dup_stdout = NULL; +int failures = 0; + +void +fail(int line, int r, char const *expect, char const *test) +{ + failures++; + fprintf(dup_stdout, + "FAIL: %d: fwide returned %d, expected %s 0 after %s\n", + line, r, expect, test); +} + +FILE * +setup(int line) +{ + FILE *f; + int r; + + if ((f = fopen(filename, "r+")) == NULL) + err(2, "fopen"); + if ((r = fwide(f, 0)) != 0) + fail(line, r, "==", "fopen"); + return (f); +} + +FILE * +setup_std(FILE *std, int line) +{ + int r; + + if (freopen(filename, "r+", std) == NULL) + err(2, "freopen"); + if ((r = fwide(std, 0)) != 0) + fail(line, r, "==", "freopen"); + return (std); +} + +#define TEST_(x, op) \ + do { \ + f = setup(__LINE__); \ + x; \ + if (!((r = fwide(f, 0)) op 0)) \ + fail(__LINE__, r, #op, #x); \ + fclose(f); \ + } while (0) + +#define TEST_STD_(std, x, op) \ + do { \ + f = setup_std(std, __LINE__); \ + x; \ + if (!((r = fwide(f, 0)) op 0)) \ + fail(__LINE__, r, #op, #x); \ + } while (0) + +#define TEST_UNCHANGED(x) TEST_(x, ==) +#define TEST_NARROW(x) TEST_(x, <) +#define TEST_WIDE(x) TEST_(x, >) +#define TEST_UNCHANGED_STD(std, x) TEST_STD_(std, x, ==) +#define TEST_NARROW_STD(std, x) TEST_STD_(std, x, <) +#define TEST_WIDE_STD(std, x) TEST_STD_(std, x, >) + +int +main(int argc, char *argv[]) +{ + char buffer[BUFSIZ]; + wchar_t wbuffer[BUFSIZ]; + FILE *f; + off_t off; + fpos_t pos; + size_t size; + int fd, r; + char c; + wchar_t wc; + + if ((fd = dup(1)) == -1) + err(2, "dup"); + if ((dup_stdout = fdopen(fd, "w")) == NULL) + err(2, "fdopen"); + if ((fd = mkstemp(filename)) == -1) + err(2, "mkstemp"); + if (write(fd, "0123456789\n\n", 12) != 12 || close(fd)) + err(2, "write + close"); + + /* status */ + TEST_UNCHANGED(fwide(f, 0)); + TEST_NARROW(fwide(f, -1)); + TEST_WIDE(fwide(f, 1)); + TEST_UNCHANGED(feof(f)); + TEST_UNCHANGED(ferror(f)); + TEST_UNCHANGED(fileno(f)); + TEST_UNCHANGED(clearerr(f)); + + /* flush and purge */ + TEST_UNCHANGED(fflush(f)); + TEST_UNCHANGED(fpurge(f)); + + /* positioning */ + TEST_UNCHANGED(fgetpos(f, &pos)); + TEST_UNCHANGED(fgetpos(f, &pos); fsetpos(f, &pos)); + TEST_UNCHANGED(ftell(f)); + TEST_UNCHANGED(ftello(f)); + TEST_UNCHANGED(fseek(f, 1, SEEK_CUR)); + TEST_UNCHANGED(fseek(f, 1, SEEK_SET)); + TEST_UNCHANGED(fseek(f, 1, SEEK_END)); + TEST_UNCHANGED(fseeko(f, 1, SEEK_CUR)); + TEST_UNCHANGED(fseeko(f, 1, SEEK_SET)); + TEST_UNCHANGED(fseeko(f, 1, SEEK_END)); + TEST_UNCHANGED(rewind(f)); + + /* buffering */ + TEST_UNCHANGED(setbuf(f, NULL)); + TEST_UNCHANGED(setbuf(f, buffer)); + TEST_UNCHANGED(setvbuf(f, buffer, _IONBF, BUFSIZ)); + TEST_UNCHANGED(setvbuf(f, buffer, _IOLBF, BUFSIZ)); + TEST_UNCHANGED(setvbuf(f, buffer, _IOFBF, BUFSIZ)); + TEST_UNCHANGED(setvbuf(f, NULL, _IONBF, 0)); + TEST_UNCHANGED(setvbuf(f, NULL, _IOLBF, 0)); + TEST_UNCHANGED(setvbuf(f, NULL, _IOFBF, 0)); + TEST_UNCHANGED(setbuffer(f, NULL, 0)); + TEST_UNCHANGED(setbuffer(f, buffer, BUFSIZ)); + TEST_UNCHANGED(setlinebuf(f)); + + /* locking */ + TEST_UNCHANGED(flockfile(f);funlockfile(f)); + TEST_UNCHANGED(ftrylockfile(f);funlockfile(f)); + + /* input */ + TEST_NARROW(getc(f)); + TEST_NARROW(getc_unlocked(f)); + TEST_NARROW(fgetc(f)); + TEST_NARROW(c = fgetc(f); ungetc(c, f)); + TEST_NARROW(fgets(buffer, BUFSIZ, f)); + TEST_NARROW(fscanf(f, "%s\n", buffer)); + TEST_NARROW(fgetln(f, &size)); + + /* output */ + TEST_NARROW(putc('c', f)); + TEST_NARROW(putc_unlocked('c', f)); + TEST_NARROW(fputc('c', f)); + TEST_NARROW(fputs("foo", f)); + TEST_NARROW(fprintf(f, "%s\n", "foo")); + + /* input from stdin */ + TEST_NARROW_STD(stdin, getchar()); + TEST_NARROW_STD(stdin, getchar_unlocked()); + TEST_NARROW_STD(stdin, gets(buffer)); + TEST_NARROW_STD(stdin, scanf("%s\n", buffer)); + + /* output to stdout */ + TEST_NARROW_STD(stdout, putchar('c')); + TEST_NARROW_STD(stdout, putchar_unlocked('c')); + TEST_NARROW_STD(stdout, puts("foo")); + TEST_NARROW_STD(stdout, printf("foo")); + + /* word-size ops */ + /* + * fread and fwrite are specified as being implemented in + * terms of fgetc() and fputc() and therefore must set the + * stream orientation to narrow. + */ + TEST_NARROW(fread(buffer, 4, BUFSIZ / 4, f)); + TEST_NARROW(fwrite(buffer, 4, BUFSIZ / 4, f)); + + /* + * getw() and putw() aren't specified anywhere but logically + * should behave the same as fread/fwrite. Not all OSes agree: + * Solaris 10 has them not changing the orientation. + */ + TEST_NARROW(getw(f)); + TEST_NARROW(putw(1234, f)); + + + /* WIDE CHAR TIME! */ + /* the four functions prefixed with "//X" are unimplemented */ + + /* input */ + TEST_WIDE(getwc(f)); + TEST_WIDE(fgetwc(f)); + TEST_WIDE(wc = fgetwc(f); ungetwc(wc, f)); + TEST_WIDE(fgetws(wbuffer, BUFSIZ, f)); +//X TEST_WIDE(fwscanf(f, L"%s\n", wbuffer)); + + /* output */ + TEST_WIDE(putwc(L'c', f)); + TEST_WIDE(fputwc(L'c', f)); + TEST_WIDE(fputws(L"foo", f)); +//X TEST_WIDE(fwprintf(f, L"%s\n", L"foo")); + + /* input from stdin */ + TEST_WIDE_STD(stdin, getwchar()); +//X TEST_WIDE_STD(stdin, wscanf(L"%s\n", wbuffer)); + + /* output to stdout */ + TEST_WIDE_STD(stdout, putwchar(L'c')); +//X TEST_WIDE_STD(stdout, wprintf(L"foo")); + + + TEST_UNCHANGED_STD(stderr, perror("foo")); + + remove(filename); + if (failures) + exit(1); + exit(0); +} + diff --git a/src/regress/lib/libc/popen/CVS/Entries b/src/regress/lib/libc/popen/CVS/Entries new file mode 100644 index 000000000..71314d636 --- /dev/null +++ b/src/regress/lib/libc/popen/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Feb 16 01:55:09 2002// +/popen.c/1.3/Thu Jun 26 05:42:05 2008// +D diff --git a/src/regress/lib/libc/popen/CVS/Repository b/src/regress/lib/libc/popen/CVS/Repository new file mode 100644 index 000000000..6438ec113 --- /dev/null +++ b/src/regress/lib/libc/popen/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/popen diff --git a/src/regress/lib/libc/popen/CVS/Root b/src/regress/lib/libc/popen/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/popen/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/popen/Makefile b/src/regress/lib/libc/popen/Makefile new file mode 100644 index 000000000..25b8668a7 --- /dev/null +++ b/src/regress/lib/libc/popen/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/16 01:55:09 art Exp $ + +PROG=popen + +.include diff --git a/src/regress/lib/libc/popen/obj b/src/regress/lib/libc/popen/obj new file mode 120000 index 000000000..c9c7350da --- /dev/null +++ b/src/regress/lib/libc/popen/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/popen \ No newline at end of file diff --git a/src/regress/lib/libc/popen/popen.c b/src/regress/lib/libc/popen/popen.c new file mode 100644 index 000000000..916cb71b0 --- /dev/null +++ b/src/regress/lib/libc/popen/popen.c @@ -0,0 +1,98 @@ +/* $NetBSD: popen.c,v 1.1 1999/09/30 09:23:23 tron Exp $ */ + +/*- + * Copyright (c) 1999 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Matthias Scheler. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#define _PATH_CAT "/bin/cat" +#define BUFSIZE (640*1024) + /* 640KB ought to be enough for everyone. */ +#define DATAFILE "popen.data" + +int +main(int argc, char **argv) +{ + char *buffer, command[MAXPATHLEN]; + int index, in; + FILE *pipe; + + if ((buffer = malloc(BUFSIZE*sizeof(char))) == NULL) + err(1, NULL); + + for (index=0; index%s", + _PATH_CAT, DATAFILE); + if ((pipe = popen(command, "w")) == NULL) + err(1, "popen write"); + + if (fwrite(buffer, sizeof(char), BUFSIZE, pipe) != BUFSIZE) + err(1, "write"); + + if (pclose(pipe) == -1) + err(1, "pclose"); + + (void)snprintf(command, sizeof(command), "%s %s", + _PATH_CAT, DATAFILE); + if ((pipe = popen(command, "r")) == NULL) + err(1, "popen read"); + + index = 0; + while ((in = fgetc(pipe)) != EOF) + if (index == BUFSIZE) { + errno = EFBIG; + err(1, "read"); + } + else + if ((char)in != buffer[index++]) { + errno = EINVAL; + err(1, "read"); + } + + if (index < BUFSIZE) { + errno = EIO; + err(1, "read"); + } + + if (pclose(pipe) == -1) + err(1, "pclose"); + + (void)unlink(DATAFILE); + return 0; +} diff --git a/src/regress/lib/libc/printf/CVS/Entries b/src/regress/lib/libc/printf/CVS/Entries new file mode 100644 index 000000000..19945a543 --- /dev/null +++ b/src/regress/lib/libc/printf/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Sep 7 20:36:10 2008// +/fp.c/1.1/Sun Sep 7 20:36:10 2008// +D diff --git a/src/regress/lib/libc/printf/CVS/Repository b/src/regress/lib/libc/printf/CVS/Repository new file mode 100644 index 000000000..4fe1781be --- /dev/null +++ b/src/regress/lib/libc/printf/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/printf diff --git a/src/regress/lib/libc/printf/CVS/Root b/src/regress/lib/libc/printf/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/printf/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/printf/Makefile b/src/regress/lib/libc/printf/Makefile new file mode 100644 index 000000000..c2e2732d6 --- /dev/null +++ b/src/regress/lib/libc/printf/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2008/09/07 20:36:10 martynas Exp $ + +PROG= fp + +.include diff --git a/src/regress/lib/libc/printf/fp.c b/src/regress/lib/libc/printf/fp.c new file mode 100644 index 000000000..6ed52fdb4 --- /dev/null +++ b/src/regress/lib/libc/printf/fp.c @@ -0,0 +1,217 @@ +/* $OpenBSD: fp.c,v 1.1 2008/09/07 20:36:10 martynas Exp $ */ +/*- + * Copyright (c) 2002, 2005 David Schultz + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Test for printf() floating point formats. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define testfmt(result, fmt, ...) \ + _testfmt((result), __LINE__, #__VA_ARGS__, fmt, __VA_ARGS__) +void _testfmt(const char *, int, const char *, const char *, ...); +void smash_stack(void); + +int +main(int argc, char *argv[]) +{ + /* + * Basic tests of decimal output functionality. + */ + testfmt(" 1.000000E+00", "%13E", 1.0); + testfmt(" 1.000000", "%13f", 1.0); + testfmt(" 1", "%13G", 1.0); + testfmt(" 1.000000E+00", "%13LE", 1.0L); + testfmt(" 1.000000", "%13Lf", 1.0L); + testfmt(" 1", "%13LG", 1.0L); + + testfmt("2.718282", "%.*f", -2, 2.7182818); + + testfmt("1.234568e+06", "%e", 1234567.8); + testfmt("1234567.800000", "%f", 1234567.8); + testfmt("1.23457E+06", "%G", 1234567.8); + testfmt("1.234568e+06", "%Le", 1234567.8L); + testfmt("1234567.800000", "%Lf", 1234567.8L); + testfmt("1.23457E+06", "%LG", 1234567.8L); + +#if (LDBL_MANT_DIG > DBL_MANT_DIG) && !defined(__i386__) + testfmt("123456789.864210", "%Lf", 123456789.8642097531L); + testfmt("-1.23457E+08", "%LG", -123456789.8642097531L); + testfmt("123456789.8642097531", "%.10Lf", 123456789.8642097531L); + testfmt(" 3.141592653589793238e-4000", "%L27.18Le", + 3.14159265358979323846e-4000L); +#endif /* (LDBL_MANT_DIG > DBL_MANT_DIG) && !defined(__i386__) */ + + /* + * Infinities and NaNs + */ +#ifdef NAN + testfmt("nan", "%e", NAN); + testfmt("NAN", "%F", NAN); + testfmt("nan", "%g", NAN); + testfmt("NAN", "%LE", (long double)NAN); + testfmt(" nan", "%05e", NAN); +#endif /* NAN */ + + testfmt("INF", "%E", HUGE_VAL); + testfmt("-inf", "%f", -HUGE_VAL); + testfmt("+inf", "%+g", HUGE_VAL); + testfmt(" inf", "%4.2Le", HUGE_VALL); + testfmt("-inf", "%Lf", -HUGE_VALL); + testfmt(" inf", "%05e", HUGE_VAL); + testfmt(" -inf", "%05e", -HUGE_VAL); + + /* + * Padding + */ + testfmt("0.000000e+00", "%e", 0.0); + testfmt("0.000000", "%F", (double)0.0); + testfmt("0", "%G", 0.0); + testfmt(" 0", "%3.0Lg", 0.0L); + testfmt(" 0", "%5.0f", 0.001); + + /* + * Precision specifiers + */ + testfmt("1.0123e+00", "%.4e", 1.0123456789); + testfmt("1.0123", "%.4f", 1.0123456789); + testfmt("1.012", "%.4g", 1.0123456789); + testfmt("1.2346e-02", "%.4e", 0.0123456789); + testfmt("0.0123", "%.4f", 0.0123456789); + testfmt("0.01235", "%.4g", 0.0123456789); + + /* + * Signed conversions + */ + testfmt("+2.500000e-01", "%+e", 0.25); + testfmt("+0.000000", "%+F", 0.0); + testfmt("-1", "%+g", -1.0); + + testfmt("-1.000000e+00", "% e", -1.0); + testfmt("+1.000000", "% +f", 1.0); + testfmt(" 1", "% g", 1.0); + testfmt(" 0", "% g", 0.0); + + /* + * ``Alternate form'' + */ + testfmt("1.250e+00", "%#.3e", 1.25); + testfmt("123.000000", "%#f", 123.0); + testfmt(" 12345.", "%#7.5g", 12345.0); + testfmt(" 1.00000", "%#8g", 1.0); + testfmt("0.0", "%#.2g", 0.0); + + /* + * Padding and decimal point placement + */ + testfmt("03.2E+00", "%08.1E", 3.25); + testfmt("003.25", "%06.2F", 3.25); + testfmt("0003.25", "%07.4G", 3.25); + + testfmt("3.14159e-05", "%g", 3.14159e-5); + testfmt("0.000314159", "%g", 3.14159e-4); + testfmt("3.14159e+06", "%g", 3.14159e6); + testfmt("314159", "%g", 3.14159e5); + testfmt("314159.", "%#g", 3.14159e5); + + testfmt(" 9.000000e+03", "%13e", 9000.0); + testfmt(" 9000.000000", "%12f", 9000.0); + testfmt(" 9000", "%5g", 9000.0); + testfmt(" 900000.", "%#8g", 900000.0); + testfmt(" 9e+06", "%6g", 9000000.0); + testfmt(" 9.000000e-04", "%13e", 0.0009); + testfmt(" 0.000900", "%9f", 0.0009); + testfmt(" 0.0009", "%7g", 0.0009); + testfmt(" 9e-05", "%6g", 0.00009); + testfmt(" 9.00000e-05", "%#12g", 0.00009); + testfmt(" 9.e-05", "%#7.1g", 0.00009); + + testfmt(" 0.0", "%4.1f", 0.0); + testfmt("90.0", "%4.1f", 90.0); + testfmt(" 100", "%4.0f", 100.0); + testfmt("9.0e+01", "%4.1e", 90.0); + testfmt("1e+02", "%4.0e", 100.0); + + /* + * Hexadecimal floating point (%a, %A) tests. Some of these + * are only valid if the implementation converts to hex digits + * on nibble boundaries. + */ + testfmt("0x0p+0", "%a", 0x0.0p0); + testfmt("0X0.P+0", "%#LA", 0x0.0p0L); +#ifdef NAN + testfmt("inf", "%La", (long double)INFINITY); + testfmt("+INF", "%+A", INFINITY); + testfmt("nan", "%La", (long double)NAN); + testfmt("NAN", "%A", NAN); +#endif /* NAN */ + + testfmt(" 0x1.23p+0", "%10a", 0x1.23p0); + testfmt(" 0x1.23p-500", "%12a", 0x1.23p-500); + testfmt(" 0x1.2p+40", "%10.1a", 0x1.23p40); + testfmt(" 0X1.230000000000000000000000P-4", "%32.24A", 0x1.23p-4); + testfmt("0x1p-1074", "%a", 0x1p-1074); + testfmt("0x1.2345p-1024", "%a", 0x1.2345p-1024); + + return (0); +} + +void +smash_stack(void) +{ + static uint32_t junk = 0xdeadbeef; + uint32_t buf[512]; + int i; + + for (i = 0; i < sizeof(buf) / sizeof(buf[0]); i++) + buf[i] = junk; +} + +void +_testfmt(const char *result, int line, const char *argstr, const char *fmt,...) +{ + char s[100]; + va_list ap; + + va_start(ap, fmt); + smash_stack(); + vsnprintf(s, sizeof(s), fmt, ap); + if (strcmp(result, s) != 0) { + fprintf(stderr, + "%d: printf(\"%s\", %s) ==> [%s], expected [%s]\n", + line, fmt, argstr, s, result); + abort(); + } +} diff --git a/src/regress/lib/libc/printf/obj b/src/regress/lib/libc/printf/obj new file mode 120000 index 000000000..03592ec61 --- /dev/null +++ b/src/regress/lib/libc/printf/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/printf \ No newline at end of file diff --git a/src/regress/lib/libc/regex/CVS/Entries b/src/regress/lib/libc/regex/CVS/Entries new file mode 100644 index 000000000..f31354820 --- /dev/null +++ b/src/regress/lib/libc/regex/CVS/Entries @@ -0,0 +1,8 @@ +/Makefile/1.6/Fri Aug 13 14:54:12 2004// +/debug.c/1.4/Thu Jul 31 21:48:03 2003// +/debug.ih/1.3/Sat Feb 16 21:27:32 2002// +/main.c/1.7/Wed Sep 12 19:32:35 2007// +/main.ih/1.3/Sat Feb 16 21:27:32 2002// +/split.c/1.5/Sun Sep 9 23:25:12 2007// +/tests/1.5/Mon Nov 29 16:50:31 2004// +D diff --git a/src/regress/lib/libc/regex/CVS/Repository b/src/regress/lib/libc/regex/CVS/Repository new file mode 100644 index 000000000..2c6f341cd --- /dev/null +++ b/src/regress/lib/libc/regex/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/regex diff --git a/src/regress/lib/libc/regex/CVS/Root b/src/regress/lib/libc/regex/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/regex/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/regex/Makefile b/src/regress/lib/libc/regex/Makefile new file mode 100644 index 000000000..271debb5d --- /dev/null +++ b/src/regress/lib/libc/regex/Makefile @@ -0,0 +1,21 @@ +# $OpenBSD: Makefile,v 1.6 2004/08/13 14:54:12 millert Exp $ +# $NetBSD: Makefile,v 1.2 1995/02/16 19:38:45 cgd Exp $ + +PROG= re +SRCS= main.c split.c debug.c regcomp.c regerror.c regexec.c regfree.c +.PATH: ${.CURDIR}/../../../../lib/libc/regex + +CFLAGS+= -I${.CURDIR}/../../../../lib/libc/regex -DREDEBUG -DPOSIX_MISTAKE + +TESTS= ${.CURDIR}/tests + +REGRESS_TARGETS=do-reg do-reg-long do-reg-backref + +do-reg: ${PROG} + ./re < ${TESTS} +do-reg-long: ${PROG} + ./re -el < ${TESTS} +do-reg-backref: ${PROG} + ./re -er < ${TESTS} + +.include diff --git a/src/regress/lib/libc/regex/debug.c b/src/regress/lib/libc/regex/debug.c new file mode 100644 index 000000000..11129e724 --- /dev/null +++ b/src/regress/lib/libc/regex/debug.c @@ -0,0 +1,245 @@ +/* $OpenBSD: debug.c,v 1.4 2003/07/31 21:48:03 deraadt Exp $ */ +/* $NetBSD: debug.c,v 1.2 1995/04/20 22:39:42 cgd Exp $ */ + +#include +#include +#include +#include +#include +#include +#include + +#include "utils.h" +#include "regex2.h" +#include "debug.ih" + +/* + - regprint - print a regexp for debugging + == void regprint(regex_t *r, FILE *d); + */ +void +regprint(r, d) +regex_t *r; +FILE *d; +{ + register struct re_guts *g = r->re_g; + register int i; + register int c; + register int last; + int nincat[NC]; + + fprintf(d, "%ld states, %d categories", (long)g->nstates, + g->ncategories); + fprintf(d, ", first %ld last %ld", (long)g->firststate, + (long)g->laststate); + if (g->iflags&USEBOL) + fprintf(d, ", USEBOL"); + if (g->iflags&USEEOL) + fprintf(d, ", USEEOL"); + if (g->iflags&BAD) + fprintf(d, ", BAD"); + if (g->nsub > 0) + fprintf(d, ", nsub=%ld", (long)g->nsub); + if (g->must != NULL) + fprintf(d, ", must(%ld) `%*s'", (long)g->mlen, (int)g->mlen, + g->must); + if (g->backrefs) + fprintf(d, ", backrefs"); + if (g->nplus > 0) + fprintf(d, ", nplus %ld", (long)g->nplus); + fprintf(d, "\n"); + s_print(g, d); + for (i = 0; i < g->ncategories; i++) { + nincat[i] = 0; + for (c = CHAR_MIN; c <= CHAR_MAX; c++) + if (g->categories[c] == i) + nincat[i]++; + } + fprintf(d, "cc0#%d", nincat[0]); + for (i = 1; i < g->ncategories; i++) + if (nincat[i] == 1) { + for (c = CHAR_MIN; c <= CHAR_MAX; c++) + if (g->categories[c] == i) + break; + fprintf(d, ", %d=%s", i, regchar(c)); + } + fprintf(d, "\n"); + for (i = 1; i < g->ncategories; i++) + if (nincat[i] != 1) { + fprintf(d, "cc%d\t", i); + last = -1; + for (c = CHAR_MIN; c <= CHAR_MAX+1; c++) /* +1 does flush */ + if (c <= CHAR_MAX && g->categories[c] == i) { + if (last < 0) { + fprintf(d, "%s", regchar(c)); + last = c; + } + } else { + if (last >= 0) { + if (last != c-1) + fprintf(d, "-%s", + regchar(c-1)); + last = -1; + } + } + fprintf(d, "\n"); + } +} + +/* + - s_print - print the strip for debugging + == static void s_print(register struct re_guts *g, FILE *d); + */ +static void +s_print(g, d) +register struct re_guts *g; +FILE *d; +{ + register sop *s; + register cset *cs; + register int i; + register int done = 0; + register sop opnd; + register int col = 0; + register int last; + register sopno offset = 2; +# define GAP() { if (offset % 5 == 0) { \ + if (col > 40) { \ + fprintf(d, "\n\t"); \ + col = 0; \ + } else { \ + fprintf(d, " "); \ + col++; \ + } \ + } else \ + col++; \ + offset++; \ + } + + if (OP(g->strip[0]) != OEND) + fprintf(d, "missing initial OEND!\n"); + for (s = &g->strip[1]; !done; s++) { + opnd = OPND(*s); + switch (OP(*s)) { + case OEND: + fprintf(d, "\n"); + done = 1; + break; + case OCHAR: + if (strchr("\\|()^$.[+*?{}!<> ", (char)opnd) != NULL) + fprintf(d, "\\%c", (char)opnd); + else + fprintf(d, "%s", regchar((char)opnd)); + break; + case OBOL: + fprintf(d, "^"); + break; + case OEOL: + fprintf(d, "$"); + break; + case OBOW: + fprintf(d, "\\{"); + break; + case OEOW: + fprintf(d, "\\}"); + break; + case OANY: + fprintf(d, "."); + break; + case OANYOF: + fprintf(d, "[(%ld)", (long)opnd); + cs = &g->sets[opnd]; + last = -1; + for (i = 0; i < g->csetsize+1; i++) /* +1 flushes */ + if (CHIN(cs, i) && i < g->csetsize) { + if (last < 0) { + fprintf(d, "%s", regchar(i)); + last = i; + } + } else { + if (last >= 0) { + if (last != i-1) + fprintf(d, "-%s", + regchar(i-1)); + last = -1; + } + } + fprintf(d, "]"); + break; + case OBACK_: + fprintf(d, "(\\<%ld>", (long)opnd); + break; + case O_BACK: + fprintf(d, "<%ld>\\)", (long)opnd); + break; + case OPLUS_: + fprintf(d, "(+"); + if (OP(*(s+opnd)) != O_PLUS) + fprintf(d, "<%ld>", (long)opnd); + break; + case O_PLUS: + if (OP(*(s-opnd)) != OPLUS_) + fprintf(d, "<%ld>", (long)opnd); + fprintf(d, "+)"); + break; + case OQUEST_: + fprintf(d, "(?"); + if (OP(*(s+opnd)) != O_QUEST) + fprintf(d, "<%ld>", (long)opnd); + break; + case O_QUEST: + if (OP(*(s-opnd)) != OQUEST_) + fprintf(d, "<%ld>", (long)opnd); + fprintf(d, "?)"); + break; + case OLPAREN: + fprintf(d, "((<%ld>", (long)opnd); + break; + case ORPAREN: + fprintf(d, "<%ld>))", (long)opnd); + break; + case OCH_: + fprintf(d, "<"); + if (OP(*(s+opnd)) != OOR2) + fprintf(d, "<%ld>", (long)opnd); + break; + case OOR1: + if (OP(*(s-opnd)) != OOR1 && OP(*(s-opnd)) != OCH_) + fprintf(d, "<%ld>", (long)opnd); + fprintf(d, "|"); + break; + case OOR2: + fprintf(d, "|"); + if (OP(*(s+opnd)) != OOR2 && OP(*(s+opnd)) != O_CH) + fprintf(d, "<%ld>", (long)opnd); + break; + case O_CH: + if (OP(*(s-opnd)) != OOR1) + fprintf(d, "<%ld>", (long)opnd); + fprintf(d, ">"); + break; + default: + fprintf(d, "!%ld(%ld)!", (long)OP(*s), (long)opnd); + break; + } + if (!done) + GAP(); + } +} + +/* + - regchar - make a character printable + == static char *regchar(int ch); + */ +static char * /* -> representation */ +regchar(ch) +int ch; +{ + static char buf[10]; + + if (isprint(ch) || ch == ' ') + snprintf(buf, sizeof buf, "%c", ch); + else + snprintf(buf, sizeof buf, "\\%o", ch); + return(buf); +} diff --git a/src/regress/lib/libc/regex/debug.ih b/src/regress/lib/libc/regex/debug.ih new file mode 100644 index 000000000..9eb313af2 --- /dev/null +++ b/src/regress/lib/libc/regex/debug.ih @@ -0,0 +1,17 @@ +/* $OpenBSD: debug.ih,v 1.3 2002/02/16 21:27:32 millert Exp $ */ +/* $NetBSD: debug.ih,v 1.2 1995/04/20 22:39:47 cgd Exp $ */ + +/* ========= begin header generated by ./mkh ========= */ +#ifdef __cplusplus +extern "C" { +#endif + +/* === debug.c === */ +void regprint(regex_t *r, FILE *d); +static void s_print(register struct re_guts *g, FILE *d); +static char *regchar(int ch); + +#ifdef __cplusplus +} +#endif +/* ========= end header generated by ./mkh ========= */ diff --git a/src/regress/lib/libc/regex/main.c b/src/regress/lib/libc/regex/main.c new file mode 100644 index 000000000..e0ed86f5e --- /dev/null +++ b/src/regress/lib/libc/regex/main.c @@ -0,0 +1,516 @@ +/* $OpenBSD: main.c,v 1.7 2007/09/12 19:32:35 otto Exp $ */ +/* $NetBSD: main.c,v 1.2 1995/04/20 22:39:51 cgd Exp $ */ + +#include +#include +#include +#include +#include +#include +#include + +#include "main.ih" + +char *progname; +int debug = 0; +int line = 0; +int status = 0; + +int copts = REG_EXTENDED; +int eopts = 0; +regoff_t startoff = 0; +regoff_t endoff = 0; + + +extern int split(char *, char *[], int, char *); +extern void regprint(regex_t *, FILE *); + +/* + - main - do the simple case, hand off to regress() for regression + */ +int +main(int argc, char *argv[]) + +{ + regex_t re; +# define NS 10 + regmatch_t subs[NS]; + char erbuf[100]; + int err; + size_t len; + int c; + int errflg = 0; + register int i; + extern int optind; + extern char *optarg; + + progname = argv[0]; + + while ((c = getopt(argc, argv, "c:e:S:E:x")) != -1) + switch (c) { + case 'c': /* compile options */ + copts = options('c', optarg); + break; + case 'e': /* execute options */ + eopts = options('e', optarg); + break; + case 'S': /* start offset */ + startoff = (regoff_t)atoi(optarg); + break; + case 'E': /* end offset */ + endoff = (regoff_t)atoi(optarg); + break; + case 'x': /* Debugging. */ + debug++; + break; + case '?': + default: + errflg++; + break; + } + if (errflg) { + fprintf(stderr, "usage: %s ", progname); + fprintf(stderr, "[-c copt][-C][-d] [re]\n"); + exit(2); + } + + if (optind >= argc) { + regress(stdin); + exit(status); + } + + err = regcomp(&re, argv[optind++], copts); + if (err) { + len = regerror(err, &re, erbuf, sizeof(erbuf)); + fprintf(stderr, "error %s, %zu/%zu `%s'\n", + eprint(err), len, sizeof(erbuf), erbuf); + exit(status); + } + regprint(&re, stdout); + + if (optind >= argc) { + regfree(&re); + exit(status); + } + + if (eopts®_STARTEND) { + subs[0].rm_so = startoff; + subs[0].rm_eo = strlen(argv[optind]) - endoff; + } + err = regexec(&re, argv[optind], (size_t)NS, subs, eopts); + if (err) { + len = regerror(err, &re, erbuf, sizeof(erbuf)); + fprintf(stderr, "error %s, %zu/%zu `%s'\n", + eprint(err), len, sizeof(erbuf), erbuf); + exit(status); + } + if (!(copts®_NOSUB)) { + len = (size_t)(subs[0].rm_eo - subs[0].rm_so); + if (subs[0].rm_so != -1) { + if (len != 0) + printf("match `%.*s'\n", (int)len, + argv[optind] + subs[0].rm_so); + else + printf("match `'@%.1s\n", + argv[optind] + subs[0].rm_so); + } + for (i = 1; i < NS; i++) + if (subs[i].rm_so != -1) + printf("(%d) `%.*s'\n", i, + (int)(subs[i].rm_eo - subs[i].rm_so), + argv[optind] + subs[i].rm_so); + } + exit(status); +} + +/* + - regress - main loop of regression test + == void regress(FILE *in); + */ +void +regress(in) +FILE *in; +{ + char inbuf[1000]; +# define MAXF 10 + char *f[MAXF]; + int nf; + int i; + char erbuf[100]; + size_t ne; + char *badpat = "invalid regular expression"; +# define SHORT 10 + char *bpname = "REG_BADPAT"; + regex_t re; + + while (fgets(inbuf, sizeof(inbuf), in) != NULL) { + line++; + if (inbuf[0] == '#' || inbuf[0] == '\n') + continue; /* NOTE CONTINUE */ + inbuf[strcspn(inbuf, "\n")] = '\0'; /* get rid of stupid \n */ + if (debug) + fprintf(stdout, "%d:\n", line); + nf = split(inbuf, f, MAXF, "\t\t"); + if (nf < 3) { + fprintf(stderr, "bad input, line %d\n", line); + exit(1); + } + for (i = 0; i < nf; i++) + if (strcmp(f[i], "\"\"") == 0) + f[i] = ""; + if (nf <= 3) + f[3] = NULL; + if (nf <= 4) + f[4] = NULL; + try(f[0], f[1], f[2], f[3], f[4], options('c', f[1])); + if (opt('&', f[1])) /* try with either type of RE */ + try(f[0], f[1], f[2], f[3], f[4], + options('c', f[1]) &~ REG_EXTENDED); + } + + ne = regerror(REG_BADPAT, (regex_t *)NULL, erbuf, sizeof(erbuf)); + if (strcmp(erbuf, badpat) != 0 || ne != strlen(badpat)+1) { + fprintf(stderr, "end: regerror() test gave `%s' not `%s'\n", + erbuf, badpat); + status = 1; + } + ne = regerror(REG_BADPAT, (regex_t *)NULL, erbuf, (size_t)SHORT); + if (strncmp(erbuf, badpat, SHORT-1) != 0 || erbuf[SHORT-1] != '\0' || + ne != strlen(badpat)+1) { + fprintf(stderr, "end: regerror() short test gave `%s' not `%.*s'\n", + erbuf, SHORT-1, badpat); + status = 1; + } + ne = regerror(REG_ITOA|REG_BADPAT, (regex_t *)NULL, erbuf, sizeof(erbuf)); + if (strcmp(erbuf, bpname) != 0 || ne != strlen(bpname)+1) { + fprintf(stderr, "end: regerror() ITOA test gave `%s' not `%s'\n", + erbuf, bpname); + status = 1; + } + re.re_endp = bpname; + ne = regerror(REG_ATOI, &re, erbuf, sizeof(erbuf)); + if (atoi(erbuf) != (int)REG_BADPAT) { + fprintf(stderr, "end: regerror() ATOI test gave `%s' not `%ld'\n", + erbuf, (long)REG_BADPAT); + status = 1; + } else if (ne != strlen(erbuf)+1) { + fprintf(stderr, "end: regerror() ATOI test len(`%s') = %ld\n", + erbuf, (long)REG_BADPAT); + status = 1; + } +} + +/* + - try - try it, and report on problems + == void try(char *f0, char *f1, char *f2, char *f3, char *f4, int opts); + */ +void +try(f0, f1, f2, f3, f4, opts) +char *f0; +char *f1; +char *f2; +char *f3; +char *f4; +int opts; /* may not match f1 */ +{ + regex_t re; +# define NSUBS 10 + regmatch_t subs[NSUBS]; +# define NSHOULD 15 + char *should[NSHOULD]; + int nshould; + char erbuf[100]; + int err; + int len; + char *type = (opts & REG_EXTENDED) ? "ERE" : "BRE"; + register int i; + char *grump; + char f0copy[1000]; + char f2copy[1000]; + + strlcpy(f0copy, f0, sizeof f0copy); + re.re_endp = (opts®_PEND) ? f0copy + strlen(f0copy) : NULL; + fixstr(f0copy); + err = regcomp(&re, f0copy, opts); + if (err != 0 && (!opt('C', f1) || err != efind(f2))) { + /* unexpected error or wrong error */ + len = regerror(err, &re, erbuf, sizeof(erbuf)); + fprintf(stderr, "%d: %s error %s, %d/%zu `%s'\n", + line, type, eprint(err), len, + sizeof(erbuf), erbuf); + status = 1; + } else if (err == 0 && opt('C', f1)) { + /* unexpected success */ + fprintf(stderr, "%d: %s should have given REG_%s\n", + line, type, f2); + status = 1; + err = 1; /* so we won't try regexec */ + } + + if (err != 0) { + regfree(&re); + return; + } + + strlcpy(f2copy, f2, sizeof f2copy); + fixstr(f2copy); + + if (options('e', f1)®_STARTEND) { + if (strchr(f2, '(') == NULL || strchr(f2, ')') == NULL) + fprintf(stderr, "%d: bad STARTEND syntax\n", line); + subs[0].rm_so = strchr(f2, '(') - f2 + 1; + subs[0].rm_eo = strchr(f2, ')') - f2; + } + err = regexec(&re, f2copy, NSUBS, subs, options('e', f1)); + + if (err != 0 && (f3 != NULL || err != REG_NOMATCH)) { + /* unexpected error or wrong error */ + len = regerror(err, &re, erbuf, sizeof(erbuf)); + fprintf(stderr, "%d: %s exec error %s, %d/%zu `%s'\n", + line, type, eprint(err), len, + sizeof(erbuf), erbuf); + status = 1; + } else if (err != 0) { + /* nothing more to check */ + } else if (f3 == NULL) { + /* unexpected success */ + fprintf(stderr, "%d: %s exec should have failed\n", + line, type); + status = 1; + err = 1; /* just on principle */ + } else if (opts®_NOSUB) { + /* nothing more to check */ + } else if ((grump = check(f2, subs[0], f3)) != NULL) { + fprintf(stderr, "%d: %s %s\n", line, type, grump); + status = 1; + err = 1; + } + + if (err != 0 || f4 == NULL) { + regfree(&re); + return; + } + + for (i = 1; i < NSHOULD; i++) + should[i] = NULL; + nshould = split(f4, should+1, NSHOULD-1, ","); + if (nshould == 0) { + nshould = 1; + should[1] = ""; + } + for (i = 1; i < NSUBS; i++) { + grump = check(f2, subs[i], should[i]); + if (grump != NULL) { + fprintf(stderr, "%d: %s $%d %s\n", line, + type, i, grump); + status = 1; + err = 1; + } + } + + regfree(&re); +} + +/* + - options - pick options out of a regression-test string + == int options(int type, char *s); + */ +int +options(type, s) +int type; /* 'c' compile, 'e' exec */ +char *s; +{ + register char *p; + register int o = (type == 'c') ? copts : eopts; + register char *legal = (type == 'c') ? "bisnmp" : "^$#tl"; + + for (p = s; *p != '\0'; p++) + if (strchr(legal, *p) != NULL) + switch (*p) { + case 'b': + o &= ~REG_EXTENDED; + break; + case 'i': + o |= REG_ICASE; + break; + case 's': + o |= REG_NOSUB; + break; + case 'n': + o |= REG_NEWLINE; + break; + case 'm': + o &= ~REG_EXTENDED; + o |= REG_NOSPEC; + break; + case 'p': + o |= REG_PEND; + break; + case '^': + o |= REG_NOTBOL; + break; + case '$': + o |= REG_NOTEOL; + break; + case '#': + o |= REG_STARTEND; + break; + case 't': /* trace */ + o |= REG_TRACE; + break; + case 'l': /* force long representation */ + o |= REG_LARGE; + break; + case 'r': /* force backref use */ + o |= REG_BACKR; + break; + } + return(o); +} + +/* + - opt - is a particular option in a regression string? + == int opt(int c, char *s); + */ +int /* predicate */ +opt(c, s) +int c; +char *s; +{ + return(strchr(s, c) != NULL); +} + +/* + - fixstr - transform magic characters in strings + == void fixstr(register char *p); + */ +void +fixstr(p) +register char *p; +{ + if (p == NULL) + return; + + for (; *p != '\0'; p++) + if (*p == 'N') + *p = '\n'; + else if (*p == 'T') + *p = '\t'; + else if (*p == 'S') + *p = ' '; + else if (*p == 'Z') + *p = '\0'; +} + +/* + - check - check a substring match + == char *check(char *str, regmatch_t sub, char *should); + */ +char * /* NULL or complaint */ +check(str, sub, should) +char *str; +regmatch_t sub; +char *should; +{ + register int len; + register int shlen; + register char *p; + static char grump[500]; + register char *at = NULL; + + if (should != NULL && strcmp(should, "-") == 0) + should = NULL; + if (should != NULL && should[0] == '@') { + at = should + 1; + should = ""; + } + + /* check rm_so and rm_eo for consistency */ + if (sub.rm_so > sub.rm_eo || (sub.rm_so == -1 && sub.rm_eo != -1) || + (sub.rm_so != -1 && sub.rm_eo == -1) || + (sub.rm_so != -1 && sub.rm_so < 0) || + (sub.rm_eo != -1 && sub.rm_eo < 0) ) { + snprintf(grump, sizeof grump, + "start %ld end %ld", (long)sub.rm_so, + (long)sub.rm_eo); + return(grump); + } + + /* check for no match */ + if (sub.rm_so == -1 && should == NULL) + return(NULL); + if (sub.rm_so == -1) + return("did not match"); + + /* check for in range */ + if (sub.rm_eo > strlen(str)) { + snprintf(grump, sizeof grump, + "start %ld end %ld, past end of string", + (long)sub.rm_so, (long)sub.rm_eo); + return(grump); + } + + len = (int)(sub.rm_eo - sub.rm_so); + shlen = (int)strlen(should); + p = str + sub.rm_so; + + /* check for not supposed to match */ + if (should == NULL) { + snprintf(grump, sizeof grump, "matched `%.*s'", len, p); + return(grump); + } + + /* check for wrong match */ + if (len != shlen || strncmp(p, should, (size_t)shlen) != 0) { + snprintf(grump, sizeof grump, "matched `%.*s' instead", len, p); + return(grump); + } + if (shlen > 0) + return(NULL); + + /* check null match in right place */ + if (at == NULL) + return(NULL); + shlen = strlen(at); + if (shlen == 0) + shlen = 1; /* force check for end-of-string */ + if (strncmp(p, at, shlen) != 0) { + snprintf(grump, sizeof grump, "matched null at `%.20s'", p); + return(grump); + } + return(NULL); +} + +/* + - eprint - convert error number to name + == static char *eprint(int err); + */ +static char * +eprint(err) +int err; +{ + static char epbuf[100]; + size_t len; + + len = regerror(REG_ITOA|err, (regex_t *)NULL, epbuf, sizeof(epbuf)); + assert(len <= sizeof(epbuf)); + return(epbuf); +} + +/* + - efind - convert error name to number + == static int efind(char *name); + */ +static int +efind(name) +char *name; +{ + static char efbuf[100]; + regex_t re; + + snprintf(efbuf, sizeof efbuf, "REG_%s", name); + assert(strlen(efbuf) < sizeof(efbuf)); + re.re_endp = efbuf; + (void) regerror(REG_ATOI, &re, efbuf, sizeof(efbuf)); + return(atoi(efbuf)); +} diff --git a/src/regress/lib/libc/regex/main.ih b/src/regress/lib/libc/regex/main.ih new file mode 100644 index 000000000..0860e2633 --- /dev/null +++ b/src/regress/lib/libc/regex/main.ih @@ -0,0 +1,22 @@ +/* $OpenBSD: main.ih,v 1.3 2002/02/16 21:27:32 millert Exp $ */ +/* $NetBSD: main.ih,v 1.2 1995/04/20 22:39:55 cgd Exp $ */ + +/* ========= begin header generated by ./mkh ========= */ +#ifdef __cplusplus +extern "C" { +#endif + +/* === main.c === */ +void regress(FILE *in); +void try(char *f0, char *f1, char *f2, char *f3, char *f4, int opts); +int options(int type, char *s); +int opt(int c, char *s); +void fixstr(register char *p); +char *check(char *str, regmatch_t sub, char *should); +static char *eprint(int err); +static int efind(char *name); + +#ifdef __cplusplus +} +#endif +/* ========= end header generated by ./mkh ========= */ diff --git a/src/regress/lib/libc/regex/obj b/src/regress/lib/libc/regex/obj new file mode 120000 index 000000000..188e66cb9 --- /dev/null +++ b/src/regress/lib/libc/regex/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/regex \ No newline at end of file diff --git a/src/regress/lib/libc/regex/split.c b/src/regress/lib/libc/regex/split.c new file mode 100644 index 000000000..fcd81a350 --- /dev/null +++ b/src/regress/lib/libc/regex/split.c @@ -0,0 +1,317 @@ +/* $OpenBSD: split.c,v 1.5 2007/09/09 23:25:12 chl Exp $ */ +/* $NetBSD: split.c,v 1.2 1995/04/20 22:39:57 cgd Exp $ */ + +#include +#include + +int split(char *string, char *fields[], int nfields, char *sep); + +/* + - split - divide a string into fields, like awk split() + = int split(char *string, char *fields[], int nfields, char *sep); + */ +int /* number of fields, including overflow */ +split(char *string, char *fields[], int nfields, char *sep) +{ + register char *p = string; + register char c; /* latest character */ + register char sepc = sep[0]; + register char sepc2; + register int fn; + register char **fp = fields; + register char *sepp; + register int trimtrail; + + /* white space */ + if (sepc == '\0') { + while ((c = *p++) == ' ' || c == '\t') + continue; + p--; + trimtrail = 1; + sep = " \t"; /* note, code below knows this is 2 long */ + sepc = ' '; + } else + trimtrail = 0; + sepc2 = sep[1]; /* now we can safely pick this up */ + + /* catch empties */ + if (*p == '\0') + return(0); + + /* single separator */ + if (sepc2 == '\0') { + fn = nfields; + for (;;) { + *fp++ = p; + fn--; + if (fn == 0) + break; + while ((c = *p++) != sepc) + if (c == '\0') + return(nfields - fn); + *(p-1) = '\0'; + } + /* we have overflowed the fields vector -- just count them */ + fn = nfields; + for (;;) { + while ((c = *p++) != sepc) + if (c == '\0') + return(fn); + fn++; + } + /* not reached */ + } + + /* two separators */ + if (sep[2] == '\0') { + fn = nfields; + for (;;) { + *fp++ = p; + fn--; + while ((c = *p++) != sepc && c != sepc2) + if (c == '\0') { + if (trimtrail && **(fp-1) == '\0') + fn++; + return(nfields - fn); + } + if (fn == 0) + break; + *(p-1) = '\0'; + while ((c = *p++) == sepc || c == sepc2) + continue; + p--; + } + /* we have overflowed the fields vector -- just count them */ + fn = nfields; + while (c != '\0') { + while ((c = *p++) == sepc || c == sepc2) + continue; + p--; + fn++; + while ((c = *p++) != '\0' && c != sepc && c != sepc2) + continue; + } + /* might have to trim trailing white space */ + if (trimtrail) { + p--; + while ((c = *--p) == sepc || c == sepc2) + continue; + p++; + if (*p != '\0') { + if (fn == nfields+1) + *p = '\0'; + fn--; + } + } + return(fn); + } + + /* n separators */ + fn = 0; + for (;;) { + if (fn < nfields) + *fp++ = p; + fn++; + for (;;) { + c = *p++; + if (c == '\0') + return(fn); + sepp = sep; + while ((sepc = *sepp++) != '\0' && sepc != c) + continue; + if (sepc != '\0') /* it was a separator */ + break; + } + if (fn < nfields) + *(p-1) = '\0'; + for (;;) { + c = *p++; + sepp = sep; + while ((sepc = *sepp++) != '\0' && sepc != c) + continue; + if (sepc == '\0') /* it wasn't a separator */ + break; + } + p--; + } + + /* not reached */ +} + +#ifdef TEST_SPLIT + + +/* + * test program + * pgm runs regression + * pgm sep splits stdin lines by sep + * pgm str sep splits str by sep + * pgm str sep n splits str by sep n times + */ +int +main(argc, argv) +int argc; +char *argv[]; +{ + char buf[512]; + register int n; +# define MNF 10 + char *fields[MNF]; + + if (argc > 4) + for (n = atoi(argv[3]); n > 0; n--) { + (void) strlcpy(buf, argv[1], sizeof buf); + } + else if (argc > 3) + for (n = atoi(argv[3]); n > 0; n--) { + (void) strlcpy(buf, argv[1], sizeof buf); + (void) split(buf, fields, MNF, argv[2]); + } + else if (argc > 2) + dosplit(argv[1], argv[2]); + else if (argc > 1) + while (fgets(buf, sizeof(buf), stdin) != NULL) { + buf[strcspn(buf, "\n")] = '\0'; /* stomp newline */ + dosplit(buf, argv[1]); + } + else + regress(); + + exit(0); +} + +dosplit(string, seps) +char *string; +char *seps; +{ +# define NF 5 + char *fields[NF]; + register int nf; + + nf = split(string, fields, NF, seps); + print(nf, NF, fields); +} + +print(nf, nfp, fields) +int nf; +int nfp; +char *fields[]; +{ + register int fn; + register int bound; + + bound = (nf > nfp) ? nfp : nf; + printf("%d:\t", nf); + for (fn = 0; fn < bound; fn++) + printf("\"%s\"%s", fields[fn], (fn+1 < nf) ? ", " : "\n"); +} + +#define RNF 5 /* some table entries know this */ +struct { + char *str; + char *seps; + int nf; + char *fi[RNF]; +} tests[] = { + "", " ", 0, { "" }, + " ", " ", 2, { "", "" }, + "x", " ", 1, { "x" }, + "xy", " ", 1, { "xy" }, + "x y", " ", 2, { "x", "y" }, + "abc def g ", " ", 5, { "abc", "def", "", "g", "" }, + " a bcd", " ", 4, { "", "", "a", "bcd" }, + "a b c d e f", " ", 6, { "a", "b", "c", "d", "e f" }, + " a b c d ", " ", 6, { "", "a", "b", "c", "d " }, + + "", " _", 0, { "" }, + " ", " _", 2, { "", "" }, + "x", " _", 1, { "x" }, + "x y", " _", 2, { "x", "y" }, + "ab _ cd", " _", 2, { "ab", "cd" }, + " a_b c ", " _", 5, { "", "a", "b", "c", "" }, + "a b c_d e f", " _", 6, { "a", "b", "c", "d", "e f" }, + " a b c d ", " _", 6, { "", "a", "b", "c", "d " }, + + "", " _~", 0, { "" }, + " ", " _~", 2, { "", "" }, + "x", " _~", 1, { "x" }, + "x y", " _~", 2, { "x", "y" }, + "ab _~ cd", " _~", 2, { "ab", "cd" }, + " a_b c~", " _~", 5, { "", "a", "b", "c", "" }, + "a b_c d~e f", " _~", 6, { "a", "b", "c", "d", "e f" }, + "~a b c d ", " _~", 6, { "", "a", "b", "c", "d " }, + + "", " _~-", 0, { "" }, + " ", " _~-", 2, { "", "" }, + "x", " _~-", 1, { "x" }, + "x y", " _~-", 2, { "x", "y" }, + "ab _~- cd", " _~-", 2, { "ab", "cd" }, + " a_b c~", " _~-", 5, { "", "a", "b", "c", "" }, + "a b_c-d~e f", " _~-", 6, { "a", "b", "c", "d", "e f" }, + "~a-b c d ", " _~-", 6, { "", "a", "b", "c", "d " }, + + "", " ", 0, { "" }, + " ", " ", 2, { "", "" }, + "x", " ", 1, { "x" }, + "xy", " ", 1, { "xy" }, + "x y", " ", 2, { "x", "y" }, + "abc def g ", " ", 4, { "abc", "def", "g", "" }, + " a bcd", " ", 3, { "", "a", "bcd" }, + "a b c d e f", " ", 6, { "a", "b", "c", "d", "e f" }, + " a b c d ", " ", 6, { "", "a", "b", "c", "d " }, + + "", "", 0, { "" }, + " ", "", 0, { "" }, + "x", "", 1, { "x" }, + "xy", "", 1, { "xy" }, + "x y", "", 2, { "x", "y" }, + "abc def g ", "", 3, { "abc", "def", "g" }, + "\t a bcd", "", 2, { "a", "bcd" }, + " a \tb\t c ", "", 3, { "a", "b", "c" }, + "a b c d e ", "", 5, { "a", "b", "c", "d", "e" }, + "a b\tc d e f", "", 6, { "a", "b", "c", "d", "e f" }, + " a b c d e f ", "", 6, { "a", "b", "c", "d", "e f " }, + + NULL, NULL, 0, { NULL }, +}; + +regress() +{ + char buf[512]; + register int n; + char *fields[RNF+1]; + register int nf; + register int i; + register int printit; + register char *f; + + for (n = 0; tests[n].str != NULL; n++) { + (void) strlcpy(buf, tests[n].str, sizeof buf); + fields[RNF] = NULL; + nf = split(buf, fields, RNF, tests[n].seps); + printit = 0; + if (nf != tests[n].nf) { + printf("split `%s' by `%s' gave %d fields, not %d\n", + tests[n].str, tests[n].seps, nf, tests[n].nf); + printit = 1; + } else if (fields[RNF] != NULL) { + printf("split() went beyond array end\n"); + printit = 1; + } else { + for (i = 0; i < nf && i < RNF; i++) { + f = fields[i]; + if (f == NULL) + f = "(NULL)"; + if (strcmp(f, tests[n].fi[i]) != 0) { + printf("split `%s' by `%s', field %d is `%s', not `%s'\n", + tests[n].str, tests[n].seps, + i, fields[i], tests[n].fi[i]); + printit = 1; + } + } + } + if (printit) + print(nf, RNF, fields); + } +} +#endif diff --git a/src/regress/lib/libc/regex/tests b/src/regress/lib/libc/regex/tests new file mode 100644 index 000000000..c827c868b --- /dev/null +++ b/src/regress/lib/libc/regex/tests @@ -0,0 +1,503 @@ +# $OpenBSD: tests,v 1.5 2004/11/29 16:50:31 otto Exp $ +# $NetBSD: tests,v 1.5 1995/04/20 22:40:00 cgd Exp $ + +# regular expression test set +# Lines are at least three fields, separated by one or more tabs. "" stands +# for an empty field. First field is an RE. Second field is flags. If +# C flag given, regcomp() is expected to fail, and the third field is the +# error name (minus the leading REG_). +# +# Otherwise it is expected to succeed, and the third field is the string to +# try matching it against. If there is no fourth field, the match is +# expected to fail. If there is a fourth field, it is the substring that +# the RE is expected to match. If there is a fifth field, it is a comma- +# separated list of what the subexpressions should match, with - indicating +# no match for that one. In both the fourth and fifth fields, a (sub)field +# starting with @ indicates that the (sub)expression is expected to match +# a null string followed by the stuff after the @; this provides a way to +# test where null strings match. The character `N' in REs and strings +# is newline, `S' is space, `T' is tab, `Z' is NUL. +# +# The full list of flags: +# - placeholder, does nothing +# b RE is a BRE, not an ERE +# & try it as both an ERE and a BRE +# C regcomp() error expected, third field is error name +# i REG_ICASE +# m ("mundane") REG_NOSPEC +# s REG_NOSUB (not really testable) +# n REG_NEWLINE +# ^ REG_NOTBOL +# $ REG_NOTEOL +# # REG_STARTEND (see below) +# p REG_PEND +# +# For REG_STARTEND, the start/end offsets are those of the substring +# enclosed in (). + +# basics +a & a a +abc & abc abc +abc|de - abc abc +a|b|c - abc a + +# parentheses and perversions thereof +a(b)c - abc abc +a\(b\)c b abc abc +a( C EPAREN +a( b a( a( +a\( - a( a( +a\( bC EPAREN +a\(b bC EPAREN +a(b C EPAREN +a(b b a(b a(b +# gag me with a right parenthesis -- 1003.2 goofed here (my fault, partly) +a) - a) a) +) - ) ) +# end gagging (in a just world, those *should* give EPAREN) +a) b a) a) +a\) bC EPAREN +\) bC EPAREN +a()b - ab ab +a\(\)b b ab ab + +# anchoring and REG_NEWLINE +^abc$ & abc abc +a^b - a^b +a^b b a^b a^b +a$b - a$b +a$b b a$b a$b +^ & abc @abc +$ & abc @ +^$ & "" @ +$^ - "" @ +\($\)\(^\) b "" @ +# stop retching, those are legitimate (although disgusting) +^^ - "" @ +$$ - "" @ +b$ & abNc +b$ &n abNc b +^b$ & aNbNc +^b$ &n aNbNc b +^$ &n aNNb @Nb +^$ n abc +^$ n abcN @ +$^ n aNNb @Nb +\($\)\(^\) bn aNNb @Nb +^^ n^ aNNb @Nb +$$ n aNNb @NN +^a ^ a +a$ $ a +^a ^n aNb +^b ^n aNb b +a$ $n bNa +b$ $n bNa b +a*(^b$)c* - b b +a*\(^b$\)c* b b b + +# certain syntax errors and non-errors +| C EMPTY +| b | | +* C BADRPT +* b * * ++ C BADRPT +? C BADRPT +"" &C EMPTY +() - abc @abc +\(\) b abc @abc +a||b C EMPTY +|ab C EMPTY +ab| C EMPTY +(|a)b C EMPTY +(a|)b C EMPTY +(*a) C BADRPT +(+a) C BADRPT +(?a) C BADRPT +({1}a) C BADRPT +\(\{1\}a\) bC BADRPT +(a|*b) C BADRPT +(a|+b) C BADRPT +(a|?b) C BADRPT +(a|{1}b) C BADRPT +^* C BADRPT +^* b * * +^+ C BADRPT +^? C BADRPT +^{1} C BADRPT +^\{1\} bC BADRPT + +# metacharacters, backslashes +a.c & abc abc +a[bc]d & abd abd +a\*c & a*c a*c +a\\b & a\b a\b +a\\\*b & a\*b a\*b +a\bc & abc abc +a\ &C EESCAPE +a\\bc & a\bc a\bc +\{ bC BADRPT +a\[b & a[b a[b +a[b &C EBRACK +# trailing $ is a peculiar special case for the BRE code +a$ & a a +a$ & a$ +a\$ & a +a\$ & a$ a$ +a\\$ & a +a\\$ & a$ +a\\$ & a\$ +a\\$ & a\ a\ + +# back references, ugh +a\(b\)\2c bC ESUBREG +a\(b\1\)c bC ESUBREG +a\(b*\)c\1d b abbcbbd abbcbbd bb +a\(b*\)c\1d b abbcbd +a\(b*\)c\1d b abbcbbbd +^\(.\)\1 b abc +a\([bc]\)\1d b abcdabbd abbd b +a\(\([bc]\)\2\)*d b abbccd abbccd +a\(\([bc]\)\2\)*d b abbcbd +# actually, this next one probably ought to fail, but the spec is unclear +a\(\(b\)*\2\)*d b abbbd abbbd +# here is a case that no NFA implementation does right +\(ab*\)[ab]*\1 b ababaaa ababaaa a +# check out normal matching in the presence of back refs +\(a\)\1bcd b aabcd aabcd +\(a\)\1bc*d b aabcd aabcd +\(a\)\1bc*d b aabd aabd +\(a\)\1bc*d b aabcccd aabcccd +\(a\)\1bc*[ce]d b aabcccd aabcccd +^\(a\)\1b\(c\)*cd$ b aabcccd aabcccd +\(b*\)\(a*\1\)* b ab a +\([^_]*\)\(_*\1\)* b foo_foo_bar_bar_bar_baz foo_foo foo,_foo +\([^_]*\)\(_*\1\)* b bar_bar_bar_baz bar_bar_bar bar,_bar +\([^_]*\)\(_*\1\)* b foo_bar_baz foo foo +\(.*\)\1 b "" "" +\(.*\)\1 b a "" +\(.*\)\1 b aa aa +\(.*\)\1 b aaa aa +\(.*\)\1 b aaaa aaaa +\([^_]*\)\1 b "" "" +\([^_]*\)\1 b a "" +\([^_]*\)\1 b aa aa +\([^_]*\)\1 b aaa aa +\([^_]*\)\1 b aaaa aaaa +foo\(.*\)bar\1 b foolbarl foolbarl l +foo\(.*\)bar\1 b foobar foobar "" +\(\(.\)b\)*\1 b aba +\(\(.\)b\)*\1 b abba +\(\(.\)b\)*\1 b abbba +\(\(.\)b\)*\1 b abbbba bbbb bb,b +\(\(.\)b\)*\1 b abbbbba abbbbb bb,b +\(\(.\)b\)*\1 b abbbbbba abbbbb bb,b +\(\(.\)b\)*\1 b abbbbbbbbbbbbbba abbbbbbbbbbbbb bb,b +\(\(.\)b\)*\1 b abbbbbbbbbbbbbbba abbbbbbbbbbbbbbb bb,b + +# ordinary repetitions +ab*c & abc abc +ab+c - abc abc +ab?c - abc abc +a\(*\)b b a*b a*b +a\(**\)b b ab ab +a\(***\)b bC BADRPT +*a b *a *a +**a b a a +***a bC BADRPT + +# the dreaded bounded repetitions +{ & { { +{abc & {abc {abc +{1 C BADRPT +{1} C BADRPT +a{b & a{b a{b +a{1}b - ab ab +a\{1\}b b ab ab +a{1,}b - ab ab +a\{1,\}b b ab ab +a{1,2}b - aab aab +a\{1,2\}b b aab aab +a{1 C EBRACE +a\{1 bC EBRACE +a{1a C EBRACE +a\{1a bC EBRACE +a{1a} C BADBR +a\{1a\} bC BADBR +a{,2} - a{,2} a{,2} +a\{,2\} bC BADBR +a{,} - a{,} a{,} +a\{,\} bC BADBR +a{1,x} C BADBR +a\{1,x\} bC BADBR +a{1,x C EBRACE +a\{1,x bC EBRACE +a{300} C BADBR +a\{300\} bC BADBR +a{1,0} C BADBR +a\{1,0\} bC BADBR +ab{0,0}c - abcac ac +ab\{0,0\}c b abcac ac +ab{0,1}c - abcac abc +ab\{0,1\}c b abcac abc +ab{0,3}c - abbcac abbc +ab\{0,3\}c b abbcac abbc +ab{1,1}c - acabc abc +ab\{1,1\}c b acabc abc +ab{1,3}c - acabc abc +ab\{1,3\}c b acabc abc +ab{2,2}c - abcabbc abbc +ab\{2,2\}c b abcabbc abbc +ab{2,4}c - abcabbc abbc +ab\{2,4\}c b abcabbc abbc +((a{1,10}){1,10}){1,10} - a a a,a + +# multiple repetitions +a** &C BADRPT +a++ C BADRPT +a?? C BADRPT +a*+ C BADRPT +a*? C BADRPT +a+* C BADRPT +a+? C BADRPT +a?* C BADRPT +a?+ C BADRPT +a{1}{1} C BADRPT +a*{1} C BADRPT +a+{1} C BADRPT +a?{1} C BADRPT +a{1}* C BADRPT +a{1}+ C BADRPT +a{1}? C BADRPT +a*{b} - a{b} a{b} +a\{1\}\{1\} bC BADRPT +a*\{1\} bC BADRPT +a\{1\}* bC BADRPT + +# brackets, and numerous perversions thereof +a[b]c & abc abc +a[ab]c & abc abc +a[^ab]c & adc adc +a[]b]c & a]c a]c +a[[b]c & a[c a[c +a[-b]c & a-c a-c +a[^]b]c & adc adc +a[^-b]c & adc adc +a[b-]c & a-c a-c +a[b &C EBRACK +a[] &C EBRACK +a[1-3]c & a2c a2c +a[3-1]c &C ERANGE +a[1-3-5]c &C ERANGE +a[[.-.]--]c & a-c a-c +a[1- &C ERANGE +a[[. &C EBRACK +a[[.x &C EBRACK +a[[.x. &C EBRACK +a[[.x.] &C EBRACK +a[[.x.]] & ax ax +a[[.x,.]] &C ECOLLATE +a[[.one.]]b & a1b a1b +a[[.notdef.]]b &C ECOLLATE +a[[.].]]b & a]b a]b +a[[:alpha:]]c & abc abc +a[[:notdef:]]c &C ECTYPE +a[[: &C EBRACK +a[[:alpha &C EBRACK +a[[:alpha:] &C EBRACK +a[[:alpha,:] &C ECTYPE +a[[:]:]]b &C ECTYPE +a[[:-:]]b &C ECTYPE +a[[:alph:]] &C ECTYPE +a[[:alphabet:]] &C ECTYPE +[[:alnum:]]+ - -%@a0X- a0X +[[:alpha:]]+ - -%@aX0- aX +[[:blank:]]+ - aSSTb SST +[[:cntrl:]]+ - aNTb NT +[[:digit:]]+ - a019b 019 +[[:graph:]]+ - Sa%bS a%b +[[:lower:]]+ - AabC ab +[[:print:]]+ - NaSbN aSb +[[:punct:]]+ - S%-&T %-& +[[:space:]]+ - aSNTb SNT +[[:upper:]]+ - aBCd BC +[[:xdigit:]]+ - p0f3Cq 0f3C +a[[=b=]]c & abc abc +a[[= &C EBRACK +a[[=b &C EBRACK +a[[=b= &C EBRACK +a[[=b=] &C EBRACK +a[[=b,=]] &C ECOLLATE +a[[=one=]]b & a1b a1b + +# complexities +a(((b)))c - abc abc +a(b|(c))d - abd abd +a(b*|c)d - abbd abbd +# just gotta have one DFA-buster, of course +a[ab]{20} - aaaaabaaaabaaaabaaaab aaaaabaaaabaaaabaaaab +# and an inline expansion in case somebody gets tricky +a[ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab] - aaaaabaaaabaaaabaaaab aaaaabaaaabaaaabaaaab +# and in case somebody just slips in an NFA... +a[ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab](wee|week)(knights|night) - aaaaabaaaabaaaabaaaabweeknights aaaaabaaaabaaaabaaaabweeknights +# fish for anomalies as the number of states passes 32 +12345678901234567890123456789 - a12345678901234567890123456789b 12345678901234567890123456789 +123456789012345678901234567890 - a123456789012345678901234567890b 123456789012345678901234567890 +1234567890123456789012345678901 - a1234567890123456789012345678901b 1234567890123456789012345678901 +12345678901234567890123456789012 - a12345678901234567890123456789012b 12345678901234567890123456789012 +123456789012345678901234567890123 - a123456789012345678901234567890123b 123456789012345678901234567890123 +# and one really big one, beyond any plausible word width +1234567890123456789012345678901234567890123456789012345678901234567890 - a1234567890123456789012345678901234567890123456789012345678901234567890b 1234567890123456789012345678901234567890123456789012345678901234567890 +# fish for problems as brackets go past 8 +[ab][cd][ef][gh][ij][kl][mn] - xacegikmoq acegikm +[ab][cd][ef][gh][ij][kl][mn][op] - xacegikmoq acegikmo +[ab][cd][ef][gh][ij][kl][mn][op][qr] - xacegikmoqy acegikmoq +[ab][cd][ef][gh][ij][kl][mn][op][q] - xacegikmoqy acegikmoq + +# subtleties of matching +abc & xabcy abc +a\(b\)?c\1d b acd +aBc i Abc Abc +a[Bc]*d i abBCcd abBCcd +0[[:upper:]]1 &i 0a1 0a1 +0[[:lower:]]1 &i 0A1 0A1 +a[^b]c &i abc +a[^b]c &i aBc +a[^b]c &i adc adc +[a]b[c] - abc abc +[a]b[a] - aba aba +[abc]b[abc] - abc abc +[abc]b[abd] - abd abd +a(b?c)+d - accd accd +(wee|week)(knights|night) - weeknights weeknights +(we|wee|week|frob)(knights|night|day) - weeknights weeknights +a[bc]d - xyzaaabcaababdacd abd +a[ab]c - aaabc abc +abc s abc abc +a* & b @b + +# Let's have some fun -- try to match a C comment. +# first the obvious, which looks okay at first glance... +/\*.*\*/ - /*x*/ /*x*/ +# but... +/\*.*\*/ - /*x*/y/*z*/ /*x*/y/*z*/ +# okay, we must not match */ inside; try to do that... +/\*([^*]|\*[^/])*\*/ - /*x*/ /*x*/ +/\*([^*]|\*[^/])*\*/ - /*x*/y/*z*/ /*x*/ +# but... +/\*([^*]|\*[^/])*\*/ - /*x**/y/*z*/ /*x**/y/*z*/ +# and a still fancier version, which does it right (I think)... +/\*([^*]|\*+[^*/])*\*+/ - /*x*/ /*x*/ +/\*([^*]|\*+[^*/])*\*+/ - /*x*/y/*z*/ /*x*/ +/\*([^*]|\*+[^*/])*\*+/ - /*x**/y/*z*/ /*x**/ +/\*([^*]|\*+[^*/])*\*+/ - /*x****/y/*z*/ /*x****/ +/\*([^*]|\*+[^*/])*\*+/ - /*x**x*/y/*z*/ /*x**x*/ +/\*([^*]|\*+[^*/])*\*+/ - /*x***x/y/*z*/ /*x***x/y/*z*/ + +# subexpressions +a(b)(c)d - abcd abcd b,c +a(((b)))c - abc abc b,b,b +a(b|(c))d - abd abd b,- +a(b*|c|e)d - abbd abbd bb +a(b*|c|e)d - acd acd c +a(b*|c|e)d - ad ad @d +a(b?)c - abc abc b +a(b?)c - ac ac @c +a(b+)c - abc abc b +a(b+)c - abbbc abbbc bbb +a(b*)c - ac ac @c +(a|ab)(bc([de]+)f|cde) - abcdef abcdef a,bcdef,de +# the regression tester only asks for 9 subexpressions +a(b)(c)(d)(e)(f)(g)(h)(i)(j)k - abcdefghijk abcdefghijk b,c,d,e,f,g,h,i,j +a(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)l - abcdefghijkl abcdefghijkl b,c,d,e,f,g,h,i,j,k +a([bc]?)c - abc abc b +a([bc]?)c - ac ac @c +a([bc]+)c - abc abc b +a([bc]+)c - abcc abcc bc +a([bc]+)bc - abcbc abcbc bc +a(bb+|b)b - abb abb b +a(bbb+|bb+|b)b - abb abb b +a(bbb+|bb+|b)b - abbb abbb bb +a(bbb+|bb+|b)bb - abbb abbb b +(.*).* - abcdef abcdef abcdef +(a*)* - bc @b @b + +# do we get the right subexpression when it is used more than once? +a(b|c)*d - ad ad - +a(b|c)*d - abcd abcd c +a(b|c)+d - abd abd b +a(b|c)+d - abcd abcd c +a(b|c?)+d - ad ad @d +a(b|c?)+d - abcd abcd @d +a(b|c){0,0}d - ad ad - +a(b|c){0,1}d - ad ad - +a(b|c){0,1}d - abd abd b +a(b|c){0,2}d - ad ad - +a(b|c){0,2}d - abcd abcd c +a(b|c){0,}d - ad ad - +a(b|c){0,}d - abcd abcd c +a(b|c){1,1}d - abd abd b +a(b|c){1,1}d - acd acd c +a(b|c){1,2}d - abd abd b +a(b|c){1,2}d - abcd abcd c +a(b|c){1,}d - abd abd b +a(b|c){1,}d - abcd abcd c +a(b|c){2,2}d - acbd acbd b +a(b|c){2,2}d - abcd abcd c +a(b|c){2,4}d - abcd abcd c +a(b|c){2,4}d - abcbd abcbd b +a(b|c){2,4}d - abcbcd abcbcd c +a(b|c){2,}d - abcd abcd c +a(b|c){2,}d - abcbd abcbd b +a(b+|((c)*))+d - abd abd @d,@d,- +a(b+|((c)*))+d - abcd abcd @d,@d,- + +# check out the STARTEND option +[abc] &# a(b)c b +[abc] &# a(d)c +[abc] &# a(bc)d b +[abc] &# a(dc)d c +. &# a()c +b.*c &# b(bc)c bc +b.* &# b(bc)c bc +.*c &# b(bc)c bc + +# plain strings, with the NOSPEC flag +abc m abc abc +abc m xabcy abc +abc m xyz +a*b m aba*b a*b +a*b m ab +"" mC EMPTY + +# cases involving NULs +aZb & a a +aZb &p a +aZb &p# (aZb) aZb +aZ*b &p# (ab) ab +a.b &# (aZb) aZb +a.* &# (aZb)c aZb + +# word boundaries (ick) +[[:<:]]a & a a +[[:<:]]a & ba +[[:<:]]a & -a a +a[[:>:]] & a a +a[[:>:]] & ab +a[[:>:]] & a- a +[[:<:]]a.c[[:>:]] & axcd-dayc-dazce-abc abc +[[:<:]]a.c[[:>:]] & axcd-dayc-dazce-abc-q abc +[[:<:]]a.c[[:>:]] & axc-dayc-dazce-abc axc +[[:<:]]b.c[[:>:]] & a_bxc-byc_d-bzc-q bzc +[[:<:]].x..[[:>:]] & y_xa_-_xb_y-_xc_-axdc _xc_ +[[:<:]]a_b[[:>:]] & x_a_b + +# past problems, and suspected problems +(A[1])|(A[2])|(A[3])|(A[4])|(A[5])|(A[6])|(A[7])|(A[8])|(A[9])|(A[A]) - A1 A1 +abcdefghijklmnop i abcdefghijklmnop abcdefghijklmnop +abcdefghijklmnopqrstuv i abcdefghijklmnopqrstuv abcdefghijklmnopqrstuv +(ALAK)|(ALT[AB])|(CC[123]1)|(CM[123]1)|(GAMC)|(LC[23][EO ])|(SEM[1234])|(SL[ES][12])|(SLWW)|(SLF )|(SLDT)|(VWH[12])|(WH[34][EW])|(WP1[ESN]) - CC11 CC11 +CC[13]1|a{21}[23][EO][123][Es][12]a{15}aa[34][EW]aaaaaaa[X]a - CC11 CC11 +Char \([a-z0-9_]*\)\[.* b Char xyz[k Char xyz[k xyz +a?b - ab ab +-\{0,1\}[0-9]*$ b -5 -5 + diff --git a/src/regress/lib/libc/setjmp-signal/CVS/Entries b/src/regress/lib/libc/setjmp-signal/CVS/Entries new file mode 100644 index 000000000..a0e9687ca --- /dev/null +++ b/src/regress/lib/libc/setjmp-signal/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Jul 31 05:18:24 2002// +/setjmp-signal.c/1.3/Fri Jan 3 20:46:05 2003// +D diff --git a/src/regress/lib/libc/setjmp-signal/CVS/Repository b/src/regress/lib/libc/setjmp-signal/CVS/Repository new file mode 100644 index 000000000..dd032c246 --- /dev/null +++ b/src/regress/lib/libc/setjmp-signal/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/setjmp-signal diff --git a/src/regress/lib/libc/setjmp-signal/CVS/Root b/src/regress/lib/libc/setjmp-signal/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/setjmp-signal/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/setjmp-signal/Makefile b/src/regress/lib/libc/setjmp-signal/Makefile new file mode 100644 index 000000000..a9649a8ab --- /dev/null +++ b/src/regress/lib/libc/setjmp-signal/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/07/31 05:18:24 art Exp $ + +PROG= setjmp-signal + +.include diff --git a/src/regress/lib/libc/setjmp-signal/obj b/src/regress/lib/libc/setjmp-signal/obj new file mode 120000 index 000000000..0f341cd5d --- /dev/null +++ b/src/regress/lib/libc/setjmp-signal/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/setjmp-signal \ No newline at end of file diff --git a/src/regress/lib/libc/setjmp-signal/setjmp-signal.c b/src/regress/lib/libc/setjmp-signal/setjmp-signal.c new file mode 100644 index 000000000..310e4052e --- /dev/null +++ b/src/regress/lib/libc/setjmp-signal/setjmp-signal.c @@ -0,0 +1,26 @@ +/* $OpenBSD: setjmp-signal.c,v 1.3 2003/01/03 20:46:05 miod Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ + +#include +#include + +jmp_buf jb; + +void +segv_handler(int signum) +{ + longjmp(jb, 1); +} + +int +main() +{ + signal(SIGSEGV, segv_handler); + if (setjmp(jb) == 0) { + *((int *)0L) = 0; + return (1); + } + return (0); +} diff --git a/src/regress/lib/libc/setjmp/CVS/Entries b/src/regress/lib/libc/setjmp/CVS/Entries new file mode 100644 index 000000000..e9697351d --- /dev/null +++ b/src/regress/lib/libc/setjmp/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Tue Jan 1 23:00:51 2002// +/jmptest.c/1.7/Tue Sep 2 23:52:16 2003// +D diff --git a/src/regress/lib/libc/setjmp/CVS/Repository b/src/regress/lib/libc/setjmp/CVS/Repository new file mode 100644 index 000000000..1f4e79ded --- /dev/null +++ b/src/regress/lib/libc/setjmp/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/setjmp diff --git a/src/regress/lib/libc/setjmp/CVS/Root b/src/regress/lib/libc/setjmp/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/setjmp/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/setjmp/Makefile b/src/regress/lib/libc/setjmp/Makefile new file mode 100644 index 000000000..fc68e8d44 --- /dev/null +++ b/src/regress/lib/libc/setjmp/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.3 2002/01/01 23:00:51 art Exp $ +# $NetBSD: Makefile,v 1.2 1995/04/20 22:40:13 cgd Exp $ + +PROG= setjmptest +SRCS= jmptest.c + +CFLAGS+= -DTEST_SETJMP + +.include diff --git a/src/regress/lib/libc/setjmp/jmptest.c b/src/regress/lib/libc/setjmp/jmptest.c new file mode 100644 index 000000000..9512c9ee3 --- /dev/null +++ b/src/regress/lib/libc/setjmp/jmptest.c @@ -0,0 +1,136 @@ +/* $OpenBSD: jmptest.c,v 1.7 2003/09/02 23:52:16 david Exp $ */ +/* $NetBSD: jmptest.c,v 1.2 1995/01/01 20:55:35 jtc Exp $ */ + +/* + * Copyright (c) 1994 Christopher G. Demetriou + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Christopher G. Demetriou + * for the NetBSD Project. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#if (TEST_SETJMP + TEST_U_SETJMP + TEST_SIGSETJMP) != 1 +#error one of TEST_SETJMP, TEST_U_SETJMP, or TEST_SIGSETJMP must be defined +#endif + +#ifdef TEST_SETJMP +#define BUF jmp_buf +#define SET(b, m) setjmp(b) +#define JMP(b, v) longjmp(b, v) +#endif + +#ifdef TEST_U_SETJMP +#define BUF jmp_buf +#define SET(b, m) _setjmp(b) +#define JMP(b, v) _longjmp(b, v) +#endif + +#ifdef TEST_SIGSETJMP +#define BUF sigjmp_buf +#define SET(b, m) sigsetjmp(b, m) +#define JMP(b, v) siglongjmp(b, v) +#endif + +int expectsignal; + +static void +aborthandler(int signo) +{ + + if (expectsignal) + _exit(0); + else { + warnx("kill(SIGABRT) succeeded"); + _exit(1); + } +} + +int +main(int argc, char *argv[]) +{ + struct sigaction sa; + BUF jb; + sigset_t ss; + int i, x; + + i = getpid(); + +#ifdef TEST_SETJMP + expectsignal = 0; +#endif +#ifdef TEST_U_SETJMP + expectsignal = 1; +#endif +#ifdef TEST_SIGSETJMP + if (argc != 2 || + (strcmp(argv[1], "save") && strcmp(argv[1], "nosave"))) { + fprintf(stderr, "usage: %s [save|nosave]\n", argv[0]); + exit(1); + } + expectsignal = (strcmp(argv[1], "save") != 0); +#endif + + sa.sa_handler = aborthandler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + if (sigaction(SIGABRT, &sa, NULL) == -1) + err(1, "sigaction failed"); + + if (sigemptyset(&ss) == -1) + err(1, "sigemptyset failed"); + if (sigaddset(&ss, SIGABRT) == -1) + err(1, "sigaddset failed"); + if (sigprocmask(SIG_BLOCK, &ss, NULL) == -1) + err(1, "sigprocmask (1) failed"); + + x = SET(jb, !expectsignal); + if (x != 0) { + if (x != i) + errx(1, "setjmp returned wrong value"); + + kill(i, SIGABRT); + if (expectsignal) + errx(1, "kill(SIGABRT) failed"); + else + exit(0); + } + + if (sigprocmask(SIG_UNBLOCK, &ss, NULL) == -1) + err(1, "sigprocmask (2) failed"); + + JMP(jb, i); + + errx(1, "jmp failed"); +} diff --git a/src/regress/lib/libc/setjmp/obj b/src/regress/lib/libc/setjmp/obj new file mode 120000 index 000000000..dcdba9684 --- /dev/null +++ b/src/regress/lib/libc/setjmp/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/setjmp \ No newline at end of file diff --git a/src/regress/lib/libc/sigreturn/CVS/Entries b/src/regress/lib/libc/sigreturn/CVS/Entries new file mode 100644 index 000000000..b30dfda41 --- /dev/null +++ b/src/regress/lib/libc/sigreturn/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.5/Mon Sep 2 20:01:43 2002// +/sigret.c/1.5/Thu Jul 31 21:48:04 2003// +D diff --git a/src/regress/lib/libc/sigreturn/CVS/Repository b/src/regress/lib/libc/sigreturn/CVS/Repository new file mode 100644 index 000000000..11af637a5 --- /dev/null +++ b/src/regress/lib/libc/sigreturn/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/sigreturn diff --git a/src/regress/lib/libc/sigreturn/CVS/Root b/src/regress/lib/libc/sigreturn/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/sigreturn/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/sigreturn/Makefile b/src/regress/lib/libc/sigreturn/Makefile new file mode 100644 index 000000000..9891ba9e0 --- /dev/null +++ b/src/regress/lib/libc/sigreturn/Makefile @@ -0,0 +1,18 @@ +# $OpenBSD: Makefile,v 1.5 2002/09/02 20:01:43 avsm Exp $ + +PROG= sigret + +DEBUG+= -ggdb + +REGRESS_TARGETS+= sigret-normal sigret-indirect sigret-altstack + +sigret-normal: ${PROG} + ./${PROG} + +sigret-indirect: ${PROG} + ./${PROG} -i + +sigret-altstack: ${PROG} + ./${PROG} -a + +.include diff --git a/src/regress/lib/libc/sigreturn/obj b/src/regress/lib/libc/sigreturn/obj new file mode 120000 index 000000000..0ffa08fb1 --- /dev/null +++ b/src/regress/lib/libc/sigreturn/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/sigreturn \ No newline at end of file diff --git a/src/regress/lib/libc/sigreturn/sigret.c b/src/regress/lib/libc/sigreturn/sigret.c new file mode 100644 index 000000000..72945fa50 --- /dev/null +++ b/src/regress/lib/libc/sigreturn/sigret.c @@ -0,0 +1,181 @@ +/* + * $OpenBSD: sigret.c,v 1.5 2003/07/31 21:48:04 deraadt Exp $ + * + * Public Domain + * + * Playing games with sigreturn. Check if calling sigreturn from a + * signal handler screws anything up. + * + * Run with: + * -a: use an alternate signal stack + * + * -b: call sigreturn from outside of a signal handler + * An error is OK + * + * -c: clobber the sigcontext before calling sigreturn + * the program should die + * + * -f: don't use sigreturn -- fall through the signal handler + * -c, and -i options ignored when used + * + * -i: call sigreturn from a function called by the signal handler + * + */ + +#include + +#include +#include +#include +#include +#include +#include +#include + +/* + * sigalarm occurs 50 times/second. Stop running after 10 seconds + * (100 interrupts). + */ +#define MAX_INTERRUPTS 500 + +int failed; +int altstack; +int badcall; +int clobbercall; +int fallthru; +int indirect; + +volatile int count; +struct sigcontext gscp; +int gscp_loaded; + +static void +usage(const char * err, ...) +{ + extern const char * __progname; + + if (err) { + va_list ap; + va_start(ap, err); + vwarnx(err, ap); + va_end(ap); + } + fprintf(stderr, "usage: %s [-abcfi]\n", __progname); + exit(1); +} + +static void +indirect_return(struct sigcontext * scp) +{ + sigreturn(scp); +} + +static void +sig_handler(int sig, siginfo_t *blah, void *x) +{ + struct sigcontext * scp = x; + + count++; + + if (!fallthru) { + if (clobbercall) + memset(scp, 0, sizeof *scp); + if (indirect) + indirect_return(scp); + else if (badcall) { + gscp = *scp; + gscp_loaded = 1; + } else + sigreturn(scp); + } +} + +static void +test2(char *fmt) +{ + char *ofmt = fmt; + + if (gscp_loaded) { + gscp_loaded = 0; + sigreturn(&gscp); + } + + for (; *fmt; fmt++) + switch (*fmt) { + case 'i': + case 'c': + case 'l': + case 'p': + break; + default: + failed = 1; + fprintf(stderr, + "unexpected character 0x%02x `%c' in %s: count %d\n", + *fmt, *fmt, ofmt, count); + } +} + +int +main(int argc, char * argv[]) +{ + extern char *optarg; + extern int optind; + + int opt; + + struct sigaction act; + struct sigaltstack ss; + + while ((opt = getopt(argc, argv, "abcfi")) != -1) { + switch (opt) { + case 'a': + /* use sigaltstack */ + altstack = 1; + break; + case 'b': + /* call outside of sig_handler */ + badcall = 1; + break; + case 'c': + /* force error by munging sigcontext */ + clobbercall = 1; + break; + case 'f': + /* don't use sigreturn */ + fallthru = 1; + break; + case 'i': + /* call sigreturn indirectly */ + indirect = 1; + break; + } + } + + /* make sure there is no other cruft left on the command line */ + if (optind != argc) + usage("unknown argument -- %s", argv[ optind ]); + + if (altstack) { + if ((ss.ss_sp = malloc(SIGSTKSZ)) == NULL) + errx(1, "ss_sp malloc"); + + ss.ss_size = SIGSTKSZ; + ss.ss_flags = 0; + if (sigaltstack(&ss,0) == -1) + err(1, "sigaltstack"); + } + + sigfillset(&act.sa_mask); + act.sa_sigaction = sig_handler; + act.sa_flags = SA_RESTART; + if (altstack) + act.sa_flags |= SA_ONSTACK; + sigaction(SIGALRM, &act, NULL); + + ualarm(10000, 10000); + + while (count < MAX_INTERRUPTS) + test2("iclp"); + + return failed; +} diff --git a/src/regress/lib/libc/sigsetjmp/CVS/Entries b/src/regress/lib/libc/sigsetjmp/CVS/Entries new file mode 100644 index 000000000..a767fc310 --- /dev/null +++ b/src/regress/lib/libc/sigsetjmp/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.5/Mon Sep 2 20:01:43 2002// +D diff --git a/src/regress/lib/libc/sigsetjmp/CVS/Repository b/src/regress/lib/libc/sigsetjmp/CVS/Repository new file mode 100644 index 000000000..82b36a2e5 --- /dev/null +++ b/src/regress/lib/libc/sigsetjmp/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/sigsetjmp diff --git a/src/regress/lib/libc/sigsetjmp/CVS/Root b/src/regress/lib/libc/sigsetjmp/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/sigsetjmp/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/sigsetjmp/Makefile b/src/regress/lib/libc/sigsetjmp/Makefile new file mode 100644 index 000000000..f88bea3b4 --- /dev/null +++ b/src/regress/lib/libc/sigsetjmp/Makefile @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile,v 1.5 2002/09/02 20:01:43 avsm Exp $ + +PROG= sigsetjmptest +SRCS= jmptest.c + +CFLAGS+= -DTEST_SIGSETJMP + +.PATH: ${.CURDIR}/../setjmp + +REGRESS_TARGETS=sigsetjmp-save sigsetjmp-nosave + +sigsetjmp-save: ${PROG} + ./${PROG} save +sigsetjmp-nosave: ${PROG} + ./${PROG} nosave + +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/lib/libc/sigsetjmp/obj b/src/regress/lib/libc/sigsetjmp/obj new file mode 120000 index 000000000..5d0a07e91 --- /dev/null +++ b/src/regress/lib/libc/sigsetjmp/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/sigsetjmp \ No newline at end of file diff --git a/src/regress/lib/libc/sleep/CVS/Entries b/src/regress/lib/libc/sleep/CVS/Entries new file mode 100644 index 000000000..0e0cc4fa6 --- /dev/null +++ b/src/regress/lib/libc/sleep/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Dec 14 05:08:19 2009// +/sleep_test.c/1.1/Mon Dec 14 05:08:19 2009// +D diff --git a/src/regress/lib/libc/sleep/CVS/Repository b/src/regress/lib/libc/sleep/CVS/Repository new file mode 100644 index 000000000..36b727c22 --- /dev/null +++ b/src/regress/lib/libc/sleep/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/sleep diff --git a/src/regress/lib/libc/sleep/CVS/Root b/src/regress/lib/libc/sleep/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/sleep/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/sleep/Makefile b/src/regress/lib/libc/sleep/Makefile new file mode 100644 index 000000000..3700b1662 --- /dev/null +++ b/src/regress/lib/libc/sleep/Makefile @@ -0,0 +1,13 @@ +# $OpenBSD: Makefile,v 1.1 2009/12/14 05:08:19 guenther Exp $ + +NOMAN= +PROG=sleep_test +CPPFLAGS+=-I${.CURDIR}/../../../../lib/libc + +run-regress-${PROG}: ${PROG} + [ x$$(./${PROG} 1) = x0 ] || exit 1 + file=$$(mktemp -t sleep.XXXXXXXXXX); ./${PROG} 4 >$$file & pid=$$!; \ + sleep 1; kill $$pid; sleep 1; v=$$(cat $$file); rm -f $$file; \ + { [ $$v -gt 0 ] && [ $$v -lt 4 ] ; } || exit 2 + +.include diff --git a/src/regress/lib/libc/sleep/sleep_test.c b/src/regress/lib/libc/sleep/sleep_test.c new file mode 100644 index 000000000..c9ab0d095 --- /dev/null +++ b/src/regress/lib/libc/sleep/sleep_test.c @@ -0,0 +1,84 @@ +/* $OpenBSD: sleep_test.c,v 1.1 2009/12/14 05:08:19 guenther Exp $ */ + +/* + * Copyright (c) 2009 Philip Guenther + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Test whether sleep returns the correct value + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static void +handler(int sig) +{ + return; +} + +static void * +garbage(void) +{ + char buf[20]; + strlcpy(buf, "012354678901235467890123546789", sizeof buf); + return buf; +} + +int +main(int argc, char *argv[]) +{ + struct sigaction sa; + char const *errstr; + int i; + + if (argc != 2) + return (1); + errno = 0; + i = strtonum(argv[1], 0, INT_MAX, &errstr); + if (i == 0 && errno != 0) { + fprintf(stderr, "%s\n", errstr); + return (1); + } + + memset(&sa, 0, sizeof sa); + sa.sa_handler = &handler; + if (sigaction(SIGTERM, &sa, NULL)) + err(3, "sigaction"); + garbage(); + printf("%d\n", sleep(i)); + return (0); +} + diff --git a/src/regress/lib/libc/sprintf/CVS/Entries b/src/regress/lib/libc/sprintf/CVS/Entries new file mode 100644 index 000000000..aa79bb62f --- /dev/null +++ b/src/regress/lib/libc/sprintf/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu May 15 04:23:49 2003// +/sprintf_test.c/1.4/Sat Sep 18 19:31:32 2004// +D diff --git a/src/regress/lib/libc/sprintf/CVS/Repository b/src/regress/lib/libc/sprintf/CVS/Repository new file mode 100644 index 000000000..0ba8a001e --- /dev/null +++ b/src/regress/lib/libc/sprintf/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/sprintf diff --git a/src/regress/lib/libc/sprintf/CVS/Root b/src/regress/lib/libc/sprintf/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/sprintf/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/sprintf/Makefile b/src/regress/lib/libc/sprintf/Makefile new file mode 100644 index 000000000..47bab9cdd --- /dev/null +++ b/src/regress/lib/libc/sprintf/Makefile @@ -0,0 +1,10 @@ +# $OpenBSD: Makefile,v 1.1 2003/05/15 04:23:49 deraadt Exp $ + +NOMAN= +PROG=sprintf_test +CPPFLAGS+=-I${.CURDIR}/../../../../lib/libc + +run-regress-atexit_test: ${PROG} + ./${PROG} + +.include diff --git a/src/regress/lib/libc/sprintf/obj b/src/regress/lib/libc/sprintf/obj new file mode 120000 index 000000000..bd76a9927 --- /dev/null +++ b/src/regress/lib/libc/sprintf/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/sprintf \ No newline at end of file diff --git a/src/regress/lib/libc/sprintf/sprintf_test.c b/src/regress/lib/libc/sprintf/sprintf_test.c new file mode 100644 index 000000000..61c58f2f0 --- /dev/null +++ b/src/regress/lib/libc/sprintf/sprintf_test.c @@ -0,0 +1,102 @@ +/* $OpenBSD: sprintf_test.c,v 1.4 2004/09/18 19:31:32 otto Exp $ */ + +/* + * Copyright (c) 2003 Theo de Raadt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include + +char correct[] = + "|xx 01 02 03 04\n" + "|xx 05 06 07 08\n" + "|xx 09 10 11 12\n" + "|xx 13 14 15 16\n" + "|xx 17 18 19 20\n" + "|xx 21 22 23 24\n" + "|xx 25 26 27 28\n" + "|xx 29 30 31 32\n" + "|xx 33 34 35 36\n" + "|xx 37 38 39 40\n" + "|xx 41 42 43 44\n" + "|xx 45 -1 1 -1 1\n"; + +char correct2[] = + "1 0 -1 1 1 2 1 3 -1 4 1 \n" + "1 -1 1 1 -1 1 \n"; + +int +main(int argc, char *argv[]) +{ + char buf[1024]; + size_t sz1, sz2, sz3, sz4; + ptrdiff_t p1, p2, p3, p4; + + /* Test positional arguments */ + snprintf(buf, sizeof buf, + "|xx %1$s %2$s %3$s %4$s\n" + "|xx %5$s %6$s %7$s %8$s\n" + "|xx %9$s %10$s %11$s %12$s\n" + "|xx %13$s %14$s %15$s %16$s\n" + "|xx %17$s %18$s %19$s %20$s\n" + "|xx %21$s %22$s %23$s %24$s\n" + "|xx %25$s %26$s %27$s %28$s\n" + "|xx %29$s %30$s %31$s %32$s\n" + "|xx %33$s %34$s %35$s %36$s\n" + "|xx %37$s %38$s %39$s %40$s\n" + "|xx %41$s %42$s %43$s %44$s\n" + "|xx %45$d %46$ld %47$lld %48$d %49$lld\n", + "01", "02", "03", "04", "05", "06", + "07", "08", "09", "10", "11", "12", + "13", "14", "15", "16", "17", "18", + "19", "20", "21", "22", "23", "24", + "25", "26", "27", "28", "29", "30", + "31", "32", "33", "34", "35", "36", + "37", "38", "39", "40", "41", "42", + "43", "44", 45, -1L, 1LL, -1, 1LL + ); + + if (strcmp(buf, correct) != 0) + exit(1); + + sz1 = (size_t)1; + sz2 = (size_t)-1; + p1 = (ptrdiff_t)1; + p2 = (ptrdiff_t)-1; + snprintf(buf, sizeof buf, + "%zx %d %zd %d %zu %d %tx %d %td %d %tu %zn %tn\n" + "%1$zx %3$zd %5$zu %7$tx %9$td %11$tu %14$zn %15$tn\n", + sz1, 0, sz2, 1, sz1, 2, p1, 3, p2, 4, p1, &sz3, &p3, &sz4, &p4); + if (strcmp(buf, correct2) != 0 || sz3 != 24 || p3 != 25 || + sz4 != 40 || p4 != 41) + exit(1); + exit(0); +} diff --git a/src/regress/lib/libc/stdio_threading/CVS/Entries b/src/regress/lib/libc/stdio_threading/CVS/Entries new file mode 100644 index 000000000..442bb5f97 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/CVS/Entries @@ -0,0 +1,8 @@ +/Makefile/1.1/Thu Nov 19 08:06:06 2009// +D/fgetln//// +D/fgets//// +D/fopen//// +D/fputs//// +D/fread//// +D/fwrite//// +D/include//// diff --git a/src/regress/lib/libc/stdio_threading/CVS/Repository b/src/regress/lib/libc/stdio_threading/CVS/Repository new file mode 100644 index 000000000..a4b1dcdf4 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/stdio_threading diff --git a/src/regress/lib/libc/stdio_threading/CVS/Root b/src/regress/lib/libc/stdio_threading/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/stdio_threading/Makefile b/src/regress/lib/libc/stdio_threading/Makefile new file mode 100644 index 000000000..e42481afc --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/Makefile @@ -0,0 +1,3 @@ +SUBDIR += fopen fread fwrite fgetln fgets fputs + +.include diff --git a/src/regress/lib/libc/stdio_threading/fgetln/CVS/Entries b/src/regress/lib/libc/stdio_threading/fgetln/CVS/Entries new file mode 100644 index 000000000..4f08001bc --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fgetln/CVS/Entries @@ -0,0 +1,3 @@ +/fgetln_test.c/1.1/Thu Nov 19 08:06:06 2009// +/Makefile/1.2/Mon May 31 05:18:48 2010// +D diff --git a/src/regress/lib/libc/stdio_threading/fgetln/CVS/Repository b/src/regress/lib/libc/stdio_threading/fgetln/CVS/Repository new file mode 100644 index 000000000..5f2656f7c --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fgetln/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/stdio_threading/fgetln diff --git a/src/regress/lib/libc/stdio_threading/fgetln/CVS/Root b/src/regress/lib/libc/stdio_threading/fgetln/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fgetln/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/stdio_threading/fgetln/Makefile b/src/regress/lib/libc/stdio_threading/fgetln/Makefile new file mode 100644 index 000000000..cad51e2b2 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fgetln/Makefile @@ -0,0 +1,6 @@ +TOPDIR=${.CURDIR} +PROG=fgetln_test +CFLAGS+=-I${TOPDIR}/../include/ +LDFLAGS+=-lpthread + +.include diff --git a/src/regress/lib/libc/stdio_threading/fgetln/fgetln_test.c b/src/regress/lib/libc/stdio_threading/fgetln/fgetln_test.c new file mode 100755 index 000000000..d5c4db2ed --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fgetln/fgetln_test.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2008 Bret S. Lambert + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "local.h" + +void +fgetln_thread(void *v) +{ + FILE *file = v; + size_t len; + char *buf; + int i; + + for (i = 0; i < 4096; i++) { + if ((buf = fgetln(file, &len)) == NULL) { + + if (feof(file)) + break; + + printf("OMG!!!\n"); + fflush(stdout); + break; + } + if (strncmp(buf, TEXT_N, sizeof(TEXT_N))) + err(1, "fgetln not atomic!!!"); + } +} + +int +main(void) +{ + char sfn[24]; + char buf[sizeof(TEXT_N)]; + FILE *sfp; + int fd, i; + + strlcpy(sfn, "/tmp/barnacles.XXXXXXXX", sizeof(sfn)); + if ((fd = mkstemp(sfn)) == -1 || + (sfp = fdopen(fd, "w+")) == NULL) { + if (fd != -1) { + unlink(sfn); + close(fd); + } + err(1, "could not open temporary file"); + } + + for (i = 0; i < 4096 * THREAD_COUNT; i++) + if (fwrite(TEXT_N, sizeof(char), strlen(TEXT_N), sfp) == 0) + err(1, "Could not populate test file"); + + run_threads(fgetln_thread, sfp); + + unlink(sfn); + close(fd); + + exit(0); +} diff --git a/src/regress/lib/libc/stdio_threading/fgetln/obj b/src/regress/lib/libc/stdio_threading/fgetln/obj new file mode 120000 index 000000000..aab5a8746 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fgetln/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/stdio_threading/fgetln \ No newline at end of file diff --git a/src/regress/lib/libc/stdio_threading/fgets/CVS/Entries b/src/regress/lib/libc/stdio_threading/fgets/CVS/Entries new file mode 100644 index 000000000..6e65f8f21 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fgets/CVS/Entries @@ -0,0 +1,3 @@ +/fgets_test.c/1.1/Thu Nov 19 08:06:06 2009// +/Makefile/1.2/Mon May 31 05:18:48 2010// +D diff --git a/src/regress/lib/libc/stdio_threading/fgets/CVS/Repository b/src/regress/lib/libc/stdio_threading/fgets/CVS/Repository new file mode 100644 index 000000000..b8c1bdac1 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fgets/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/stdio_threading/fgets diff --git a/src/regress/lib/libc/stdio_threading/fgets/CVS/Root b/src/regress/lib/libc/stdio_threading/fgets/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fgets/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/stdio_threading/fgets/Makefile b/src/regress/lib/libc/stdio_threading/fgets/Makefile new file mode 100644 index 000000000..52310fd42 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fgets/Makefile @@ -0,0 +1,6 @@ +TOPDIR=${.CURDIR} +PROG=fgets_test +CFLAGS+=-I${TOPDIR}/../include/ +LDFLAGS+=-lpthread + +.include diff --git a/src/regress/lib/libc/stdio_threading/fgets/fgets_test.c b/src/regress/lib/libc/stdio_threading/fgets/fgets_test.c new file mode 100755 index 000000000..685d4c825 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fgets/fgets_test.c @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2008 Bret S. Lambert + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "local.h" + +void +fgets_thread(void *v) +{ + char buf[sizeof(TEXT_N) + 1]; + FILE *file = v; + int i; + + for (i = 0; i < 4096; i++) { + if (fgets(buf, sizeof(buf), file) == NULL) { + + if (feof(file)) + break; + + printf("OMG!!!\n"); + fflush(stdout); + break; + } + if (strncmp(buf, TEXT, sizeof(TEXT))) + err(1, "Read not atomic!!!"); + } +} + +int +main(void) +{ + char sfn[24]; + char buf[sizeof(TEXT)]; + FILE *sfp; + int fd, i; + + strlcpy(sfn, "/tmp/barnacles.XXXXXXXX", sizeof(sfn)); + if ((fd = mkstemp(sfn)) == -1 || + (sfp = fdopen(fd, "w+")) == NULL) { + if (fd != -1) { + unlink(sfn); + close(fd); + } + err(1, "could not open temporary file"); + } + + for (i = 0; i < 4096 * THREAD_COUNT; i++) + if (fwrite(TEXT_N, sizeof(char), strlen(TEXT_N), sfp) == 0) + err(1, "Could not populate test file"); + + run_threads(fgets_thread, sfp); + + unlink(sfn); + close(fd); + + exit(0); +} diff --git a/src/regress/lib/libc/stdio_threading/fgets/obj b/src/regress/lib/libc/stdio_threading/fgets/obj new file mode 120000 index 000000000..ff94bb00d --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fgets/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/stdio_threading/fgets \ No newline at end of file diff --git a/src/regress/lib/libc/stdio_threading/fopen/CVS/Entries b/src/regress/lib/libc/stdio_threading/fopen/CVS/Entries new file mode 100644 index 000000000..79787b4b7 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fopen/CVS/Entries @@ -0,0 +1,3 @@ +/fopen_test.c/1.1/Thu Nov 19 08:06:06 2009// +/Makefile/1.2/Mon May 31 05:18:48 2010// +D diff --git a/src/regress/lib/libc/stdio_threading/fopen/CVS/Repository b/src/regress/lib/libc/stdio_threading/fopen/CVS/Repository new file mode 100644 index 000000000..071016739 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fopen/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/stdio_threading/fopen diff --git a/src/regress/lib/libc/stdio_threading/fopen/CVS/Root b/src/regress/lib/libc/stdio_threading/fopen/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fopen/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/stdio_threading/fopen/Makefile b/src/regress/lib/libc/stdio_threading/fopen/Makefile new file mode 100644 index 000000000..e51deeff1 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fopen/Makefile @@ -0,0 +1,6 @@ +TOPDIR=${.CURDIR} +PROG=fopen_test +CFLAGS+=-I${TOPDIR}/../include/ +LDFLAGS+=-lpthread + +.include diff --git a/src/regress/lib/libc/stdio_threading/fopen/fopen_test.c b/src/regress/lib/libc/stdio_threading/fopen/fopen_test.c new file mode 100755 index 000000000..72359bb32 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fopen/fopen_test.c @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2008 Bret S. Lambert + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include "local.h" + +int +writefn(void *cookie, const char *buf, int size) +{ + return 0; +} + +void +fopen_thread(void *v) +{ + FILE *file; + int i; + + for (i = 0; i < 4096; i++) { + file = fwopen(&i, writefn); + if (file != NULL) { + fputc('0', file); + pthread_yield(); + fclose(file); + } + } +} + +int +main(void) +{ + run_threads(fopen_thread, NULL); + exit(0); +} diff --git a/src/regress/lib/libc/stdio_threading/fopen/obj b/src/regress/lib/libc/stdio_threading/fopen/obj new file mode 120000 index 000000000..dafe7349f --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fopen/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/stdio_threading/fopen \ No newline at end of file diff --git a/src/regress/lib/libc/stdio_threading/fputs/CVS/Entries b/src/regress/lib/libc/stdio_threading/fputs/CVS/Entries new file mode 100644 index 000000000..91c81cdae --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fputs/CVS/Entries @@ -0,0 +1,3 @@ +/fputs_test.c/1.1/Thu Nov 19 08:06:06 2009// +/Makefile/1.2/Mon May 31 05:18:48 2010// +D diff --git a/src/regress/lib/libc/stdio_threading/fputs/CVS/Repository b/src/regress/lib/libc/stdio_threading/fputs/CVS/Repository new file mode 100644 index 000000000..12ebc0adb --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fputs/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/stdio_threading/fputs diff --git a/src/regress/lib/libc/stdio_threading/fputs/CVS/Root b/src/regress/lib/libc/stdio_threading/fputs/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fputs/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/stdio_threading/fputs/Makefile b/src/regress/lib/libc/stdio_threading/fputs/Makefile new file mode 100644 index 000000000..e56174558 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fputs/Makefile @@ -0,0 +1,6 @@ +TOPDIR=${.CURDIR} +PROG=fputs_test +CFLAGS+=-I${TOPDIR}/../include/ +LDFLAGS+=-lpthread + +.include diff --git a/src/regress/lib/libc/stdio_threading/fputs/fputs_test.c b/src/regress/lib/libc/stdio_threading/fputs/fputs_test.c new file mode 100755 index 000000000..c0a617510 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fputs/fputs_test.c @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2008 Bret S. Lambert + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "local.h" + +void +fputs_thread(void *v) +{ + FILE *file = v; + int i; + + for (i = 0; i < 4096; i++) { + if (fputs(TEXT, file) != 0) { + + if (feof(file)) + break; + + printf("OMG!!!\n"); + fflush(stdout); + break; + } + } +} + +int +main(void) +{ + char sfn[24]; + char buf[sizeof(TEXT)]; + FILE *sfp; + int fd, i; + + strlcpy(sfn, "/tmp/barnacles.XXXXXXXX", sizeof(sfn)); + if ((fd = mkstemp(sfn)) == -1 || + (sfp = fdopen(fd, "w+")) == NULL) { + if (fd != -1) { + unlink(sfn); + close(fd); + } + err(1, "could not open temporary file"); + } + + run_threads(fputs_thread, sfp); + + while (fgets(buf, sizeof(buf), sfp) != NULL) /* verify */ + if (strcmp(buf, TEXT)) + err(1, "Thread writes were not atomic!!!"); + + unlink(sfn); + close(fd); + + exit(0); +} diff --git a/src/regress/lib/libc/stdio_threading/fputs/obj b/src/regress/lib/libc/stdio_threading/fputs/obj new file mode 120000 index 000000000..74c8c492a --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fputs/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/stdio_threading/fputs \ No newline at end of file diff --git a/src/regress/lib/libc/stdio_threading/fread/CVS/Entries b/src/regress/lib/libc/stdio_threading/fread/CVS/Entries new file mode 100644 index 000000000..1720fe9f4 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fread/CVS/Entries @@ -0,0 +1,3 @@ +/fread_test.c/1.1/Thu Nov 19 08:06:06 2009// +/Makefile/1.2/Mon May 31 05:18:48 2010// +D diff --git a/src/regress/lib/libc/stdio_threading/fread/CVS/Repository b/src/regress/lib/libc/stdio_threading/fread/CVS/Repository new file mode 100644 index 000000000..3538bd08d --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fread/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/stdio_threading/fread diff --git a/src/regress/lib/libc/stdio_threading/fread/CVS/Root b/src/regress/lib/libc/stdio_threading/fread/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fread/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/stdio_threading/fread/Makefile b/src/regress/lib/libc/stdio_threading/fread/Makefile new file mode 100644 index 000000000..25196dd7a --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fread/Makefile @@ -0,0 +1,6 @@ +TOPDIR=${.CURDIR} +PROG=fread_test +CFLAGS+=-I${TOPDIR}/../include/ +LDFLAGS+=-lpthread + +.include diff --git a/src/regress/lib/libc/stdio_threading/fread/fread_test.c b/src/regress/lib/libc/stdio_threading/fread/fread_test.c new file mode 100755 index 000000000..b2372f5ab --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fread/fread_test.c @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2008 Bret S. Lambert + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include "local.h" + +void +fread_thread(void *v) +{ + char buf[sizeof(TEXT)]; + FILE *file = v; + int i; + + for (i = 0; i < 4096; i++) { + if (fread(buf, sizeof(char), strlen(TEXT), file) == 0) { + + if (feof(file)) + break; + + printf("OMG!!!\n"); + fflush(stdout); + break; + } + if (strncmp(buf, TEXT, sizeof(TEXT))) + err(1, "Read not atomic!!!"); + } +} + +int +main(void) +{ + char sfn[24]; + char buf[sizeof(TEXT)]; + FILE *sfp; + int fd, i; + + strlcpy(sfn, "/tmp/barnacles.XXXXXXXX", sizeof(sfn)); + if ((fd = mkstemp(sfn)) == -1 || + (sfp = fdopen(fd, "w+")) == NULL) { + if (fd != -1) { + unlink(sfn); + close(fd); + } + err(1, "could not open temporary file"); + } + + for (i = 0; i < 4096 * THREAD_COUNT; i++) + if (fwrite(TEXT, sizeof(char), strlen(TEXT), sfp) == 0) + err(1, "Could not populate test file"); + + run_threads(fread_thread, sfp); + + unlink(sfn); + close(fd); + + exit(0); +} diff --git a/src/regress/lib/libc/stdio_threading/fread/obj b/src/regress/lib/libc/stdio_threading/fread/obj new file mode 120000 index 000000000..8b00f34c6 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fread/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/stdio_threading/fread \ No newline at end of file diff --git a/src/regress/lib/libc/stdio_threading/fwrite/CVS/Entries b/src/regress/lib/libc/stdio_threading/fwrite/CVS/Entries new file mode 100644 index 000000000..68835c242 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fwrite/CVS/Entries @@ -0,0 +1,3 @@ +/fwrite_test.c/1.1/Thu Nov 19 08:06:06 2009// +/Makefile/1.2/Mon May 31 05:18:48 2010// +D diff --git a/src/regress/lib/libc/stdio_threading/fwrite/CVS/Repository b/src/regress/lib/libc/stdio_threading/fwrite/CVS/Repository new file mode 100644 index 000000000..680048e7c --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fwrite/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/stdio_threading/fwrite diff --git a/src/regress/lib/libc/stdio_threading/fwrite/CVS/Root b/src/regress/lib/libc/stdio_threading/fwrite/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fwrite/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/stdio_threading/fwrite/Makefile b/src/regress/lib/libc/stdio_threading/fwrite/Makefile new file mode 100644 index 000000000..e79899c47 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fwrite/Makefile @@ -0,0 +1,6 @@ +TOPDIR=${.CURDIR} +PROG=fwrite_test +CFLAGS+=-I${TOPDIR}/../include/ +LDFLAGS+=-lpthread + +.include diff --git a/src/regress/lib/libc/stdio_threading/fwrite/fwrite_test.c b/src/regress/lib/libc/stdio_threading/fwrite/fwrite_test.c new file mode 100755 index 000000000..39bfb51ef --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fwrite/fwrite_test.c @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2008 Bret S. Lambert + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "local.h" + +void +fwrite_thread(void *v) +{ + FILE *file = v; + int i; + + for (i = 0; i < 4096; i++) { + if (fwrite(TEXT, sizeof(char), strlen(TEXT), file) == 0) { + + if (feof(file)) + break; + + printf("OMG!!!\n"); + fflush(stdout); + break; + } + } +} + +int +main(void) +{ + char sfn[24]; + char buf[sizeof(TEXT)]; + FILE *sfp; + int fd, i; + + strlcpy(sfn, "/tmp/barnacles.XXXXXXXX", sizeof(sfn)); + if ((fd = mkstemp(sfn)) == -1 || + (sfp = fdopen(fd, "w+")) == NULL) { + if (fd != -1) { + unlink(sfn); + close(fd); + } + err(1, "could not open temporary file"); + } + + run_threads(fwrite_thread, sfp); + + while (fread(buf, sizeof(char), strlen(TEXT), sfp)) /* verify */ + if (strncmp(buf, TEXT, sizeof(TEXT))) + err(1, "Thread writes were not atomic!!!"); + + unlink(sfn); + close(fd); + + exit(0); +} diff --git a/src/regress/lib/libc/stdio_threading/fwrite/obj b/src/regress/lib/libc/stdio_threading/fwrite/obj new file mode 120000 index 000000000..f5ca1e19e --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/fwrite/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/stdio_threading/fwrite \ No newline at end of file diff --git a/src/regress/lib/libc/stdio_threading/include/CVS/Entries b/src/regress/lib/libc/stdio_threading/include/CVS/Entries new file mode 100644 index 000000000..169400e8a --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/include/CVS/Entries @@ -0,0 +1,2 @@ +/local.h/1.2/Mon May 31 05:18:48 2010// +D diff --git a/src/regress/lib/libc/stdio_threading/include/CVS/Repository b/src/regress/lib/libc/stdio_threading/include/CVS/Repository new file mode 100644 index 000000000..334020831 --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/include/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/stdio_threading/include diff --git a/src/regress/lib/libc/stdio_threading/include/CVS/Root b/src/regress/lib/libc/stdio_threading/include/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/include/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/stdio_threading/include/local.h b/src/regress/lib/libc/stdio_threading/include/local.h new file mode 100644 index 000000000..e2ad4e31e --- /dev/null +++ b/src/regress/lib/libc/stdio_threading/include/local.h @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2008 Bret S. Lambert + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include +#include +#include + +#define THREAD_COUNT 64 + +#define TEXT "barnacles" +#define TEXT_N "barnacles\n" + +void run_threads(void (*)(void *), void *); + +static pthread_rwlock_t start; +static void (*real_func)(void *); + +static void * +thread(void *arg) +{ + int r; + + if ((r = pthread_rwlock_rdlock(&start))) + errx(1, "could not obtain lock in thread: %s", strerror(r)); + real_func(arg); + if ((r = pthread_rwlock_unlock(&start))) + errx(1, "could not release lock in thread: %s", strerror(r)); + return NULL; +} + +void +run_threads(void (*func)(void *), void *arg) +{ + pthread_t self, pthread[THREAD_COUNT]; + int i, r; + + self = pthread_self(); + real_func = func; + if ((r = pthread_rwlock_init(&start, NULL))) + errx(1, "could not initialize lock: %s", strerror(r)); + + if ((r = pthread_rwlock_wrlock(&start))) /* block */ + errx(1, "could not lock lock: %s", strerror(r)); + + for (i = 0; i < THREAD_COUNT; i++) + if ((r = pthread_create(&pthread[i], NULL, thread, arg))) { + warnx("could not create thread: %s", strerror(r)); + pthread[i] = self; + } + + + if ((r = pthread_rwlock_unlock(&start))) /* unleash */ + errx(1, "could not release lock: %s", strerror(r)); + + sleep(1); + + if ((r = pthread_rwlock_wrlock(&start))) /* sync */ + errx(1, "parent could not sync with children: %s", + strerror(r)); + + for (i = 0; i < THREAD_COUNT; i++) + if (! pthread_equal(pthread[i], self) && + (r = pthread_join(pthread[i], NULL))) + warnx("could not join thread: %s", strerror(r)); +} + diff --git a/src/regress/lib/libc/strerror/CVS/Entries b/src/regress/lib/libc/strerror/CVS/Entries new file mode 100644 index 000000000..364db0d78 --- /dev/null +++ b/src/regress/lib/libc/strerror/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Fri Apr 30 17:15:12 2004// +/strerror_test.c/1.4/Fri May 13 07:06:20 2005// +/valid.ok/1.5/Mon Apr 5 23:11:46 2010// +D diff --git a/src/regress/lib/libc/strerror/CVS/Repository b/src/regress/lib/libc/strerror/CVS/Repository new file mode 100644 index 000000000..79e6c29b8 --- /dev/null +++ b/src/regress/lib/libc/strerror/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/strerror diff --git a/src/regress/lib/libc/strerror/CVS/Root b/src/regress/lib/libc/strerror/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/strerror/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/strerror/Makefile b/src/regress/lib/libc/strerror/Makefile new file mode 100644 index 000000000..448b6da90 --- /dev/null +++ b/src/regress/lib/libc/strerror/Makefile @@ -0,0 +1,12 @@ +# $OpenBSD: Makefile,v 1.1 2004/04/30 17:15:12 espie Exp $ + +NOMAN= +PROG=strerror_test +CPPFLAGS+=-I${.CURDIR}/../../../../lib/libc +CLEANFILES+= invalid.out valid.out + +run-regress-strerror_test: ${PROG} + ./${PROG} >${.OBJDIR}/valid.out + cmp -s ${.OBJDIR}/valid.out ${.CURDIR}/valid.ok + +.include diff --git a/src/regress/lib/libc/strerror/obj b/src/regress/lib/libc/strerror/obj new file mode 120000 index 000000000..7e4b3b84b --- /dev/null +++ b/src/regress/lib/libc/strerror/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/strerror \ No newline at end of file diff --git a/src/regress/lib/libc/strerror/strerror_test.c b/src/regress/lib/libc/strerror/strerror_test.c new file mode 100644 index 000000000..700080cd3 --- /dev/null +++ b/src/regress/lib/libc/strerror/strerror_test.c @@ -0,0 +1,71 @@ +/* $OpenBSD: strerror_test.c,v 1.4 2005/05/13 07:06:20 otto Exp $ */ +/* + * Copyright (c) 2004 Marc Espie + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ +#include +#include +#include +#include +#include + +void +check_strerror_r(int val) +{ + char buffer[NL_TEXTMAX + 1]; + int i, r; + + memset(buffer, 'X', sizeof(buffer) - 1); + buffer[sizeof(buffer) - 1] = '\0'; + (void)strerror_r(val, NULL, 0); /* XXX */ + for (i = 0; i < 25; i++) { + r = strerror_r(val, buffer, i); + printf("%d %d %zu: %s\n", i, r, strlen(buffer), buffer); + } +} + +void +check_strsignal(int val) +{ + char buffer[NL_TEXTMAX + 1]; + int i, r; + + memset(buffer, 'X', sizeof(buffer) - 1); + buffer[sizeof(buffer) - 1] = '\0'; + (void)__strsignal(val, buffer); + printf("%s\n", buffer); +} + +int +main() +{ + printf("%s\n", strerror(21345)); + printf("%s\n", strerror(-21345)); + printf("%s\n", strerror(0)); + printf("%s\n", strerror(INT_MAX)); + printf("%s\n", strerror(INT_MIN)); + printf("%s\n", strerror(EPERM)); + check_strerror_r(EPERM); + check_strerror_r(21345); + check_strsignal(-1); + check_strsignal(0); + check_strsignal(10); + check_strsignal(NSIG-1); + check_strsignal(NSIG); + check_strsignal(100); + check_strsignal(INT_MAX); + check_strsignal(INT_MIN); + check_strsignal(UINT_MAX); + return 0; +} diff --git a/src/regress/lib/libc/strerror/valid.ok b/src/regress/lib/libc/strerror/valid.ok new file mode 100644 index 000000000..cbc365c59 --- /dev/null +++ b/src/regress/lib/libc/strerror/valid.ok @@ -0,0 +1,65 @@ +Unknown error: 21345 +Unknown error: -21345 +Undefined error: 0 +Unknown error: 2147483647 +Unknown error: -2147483648 +Operation not permitted +0 34 255: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +1 34 0: +2 34 1: O +3 34 2: Op +4 34 3: Ope +5 34 4: Oper +6 34 5: Opera +7 34 6: Operat +8 34 7: Operati +9 34 8: Operatio +10 34 9: Operation +11 34 10: Operation +12 34 11: Operation n +13 34 12: Operation no +14 34 13: Operation not +15 34 14: Operation not +16 34 15: Operation not p +17 34 16: Operation not pe +18 34 17: Operation not per +19 34 18: Operation not perm +20 34 19: Operation not permi +21 34 20: Operation not permit +22 34 21: Operation not permitt +23 34 22: Operation not permitte +24 0 23: Operation not permitted +0 34 255: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +1 34 0: +2 34 1: U +3 34 2: Un +4 34 3: Unk +5 34 4: Unkn +6 34 5: Unkno +7 34 6: Unknow +8 34 7: Unknown +9 34 8: Unknown +10 34 9: Unknown e +11 34 10: Unknown er +12 34 11: Unknown err +13 34 12: Unknown erro +14 34 13: Unknown error +15 34 14: Unknown error: +16 34 15: Unknown error: +17 34 15: Unknown error: +18 34 15: Unknown error: +19 34 15: Unknown error: +20 34 15: Unknown error: +21 22 20: Unknown error: 21345 +22 22 20: Unknown error: 21345 +23 22 20: Unknown error: 21345 +24 22 20: Unknown error: 21345 +Unknown signal: 4294967295 +Signal 0 +Bus error +Thread AST +Unknown signal: 33 +Unknown signal: 100 +Unknown signal: 2147483647 +Unknown signal: 2147483648 +Unknown signal: 4294967295 diff --git a/src/regress/lib/libc/strnlen/CVS/Entries b/src/regress/lib/libc/strnlen/CVS/Entries new file mode 100644 index 000000000..ddf4d37e4 --- /dev/null +++ b/src/regress/lib/libc/strnlen/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Jun 2 12:20:47 2010// +/strnlentest.c/1.1/Wed Jun 2 12:20:47 2010// +D diff --git a/src/regress/lib/libc/strnlen/CVS/Repository b/src/regress/lib/libc/strnlen/CVS/Repository new file mode 100644 index 000000000..ac6f18405 --- /dev/null +++ b/src/regress/lib/libc/strnlen/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/strnlen diff --git a/src/regress/lib/libc/strnlen/CVS/Root b/src/regress/lib/libc/strnlen/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/strnlen/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/strnlen/Makefile b/src/regress/lib/libc/strnlen/Makefile new file mode 100644 index 000000000..e7c74972e --- /dev/null +++ b/src/regress/lib/libc/strnlen/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2010/06/02 12:20:47 millert Exp $ + +PROG= strnlentest + +.include diff --git a/src/regress/lib/libc/strnlen/strnlentest.c b/src/regress/lib/libc/strnlen/strnlentest.c new file mode 100644 index 000000000..e67e6adfb --- /dev/null +++ b/src/regress/lib/libc/strnlen/strnlentest.c @@ -0,0 +1,69 @@ +/* $OpenBSD: strnlentest.c,v 1.1 2010/06/02 12:20:47 millert Exp $ */ + +/* + * Copyright (c) 2010 Todd C. Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include + +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + char *buf; + int failures = 0; + size_t len, bufsize; + + /* Enable malloc security options. */ + setenv("MALLOC_OPTIONS", "S", 0); + + bufsize = getpagesize(); /* trigger guard pages easily */ + buf = malloc(bufsize); + if (buf == NULL) { + fprintf(stderr, "unable to allocate memory\n"); + return 1; + } + memset(buf, 'a', bufsize); + + len = strnlen(buf, bufsize); + if (len != bufsize) { + fprintf(stderr, "strnlen: failed unterminated buffer test (1)"); + failures++; + } + + len = strnlen(buf, bufsize / 2); + if (len != bufsize / 2) { + fprintf(stderr, "strnlen: failed unterminated buffer test (2)"); + failures++; + } + + buf[bufsize - 1] = '\0'; + len = strnlen(buf, bufsize); + if (len != bufsize - 1) { + fprintf(stderr, "strnlen: failed NUL-terminated buffer test (1)"); + failures++; + } + + len = strnlen(buf, (size_t)-1); + if (len != bufsize - 1) { + fprintf(stderr, "strnlen: failed NUL-terminated buffer test (2)"); + failures++; + } + + return failures; +} diff --git a/src/regress/lib/libc/strtod/CVS/Entries b/src/regress/lib/libc/strtod/CVS/Entries new file mode 100644 index 000000000..4fdadd672 --- /dev/null +++ b/src/regress/lib/libc/strtod/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Sep 29 11:00:24 2006// +/strtodtest.c/1.1/Fri Sep 29 11:00:24 2006// +D diff --git a/src/regress/lib/libc/strtod/CVS/Repository b/src/regress/lib/libc/strtod/CVS/Repository new file mode 100644 index 000000000..d052138de --- /dev/null +++ b/src/regress/lib/libc/strtod/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/strtod diff --git a/src/regress/lib/libc/strtod/CVS/Root b/src/regress/lib/libc/strtod/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/strtod/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/strtod/Makefile b/src/regress/lib/libc/strtod/Makefile new file mode 100644 index 000000000..030c0e7f5 --- /dev/null +++ b/src/regress/lib/libc/strtod/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2006/09/29 11:00:24 otto Exp $ + +PROG= strtodtest + +.include diff --git a/src/regress/lib/libc/strtod/obj b/src/regress/lib/libc/strtod/obj new file mode 120000 index 000000000..2f879bc55 --- /dev/null +++ b/src/regress/lib/libc/strtod/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/strtod \ No newline at end of file diff --git a/src/regress/lib/libc/strtod/strtodtest.c b/src/regress/lib/libc/strtod/strtodtest.c new file mode 100644 index 000000000..0291365a7 --- /dev/null +++ b/src/regress/lib/libc/strtod/strtodtest.c @@ -0,0 +1,22 @@ +/* $OpenBSD: strtodtest.c,v 1.1 2006/09/29 11:00:24 otto Exp $ */ +/* Public domain, Otto Moerbeek , 2006. */ + +#include +#include +#include + +/* + * Checks if strtod() reports underflow. + */ + +int +main() +{ + char *tmp="0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002"; + double d; + + d = strtod(tmp, NULL); + if (errno != ERANGE) + errx(1, "errno = %d", errno); + return (0); +} diff --git a/src/regress/lib/libc/strtonum/CVS/Entries b/src/regress/lib/libc/strtonum/CVS/Entries new file mode 100644 index 000000000..fe4c81426 --- /dev/null +++ b/src/regress/lib/libc/strtonum/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Aug 3 20:38:36 2004// +/strtonumtest.c/1.1/Tue Aug 3 20:38:36 2004// +D diff --git a/src/regress/lib/libc/strtonum/CVS/Repository b/src/regress/lib/libc/strtonum/CVS/Repository new file mode 100644 index 000000000..1c8457ad6 --- /dev/null +++ b/src/regress/lib/libc/strtonum/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/strtonum diff --git a/src/regress/lib/libc/strtonum/CVS/Root b/src/regress/lib/libc/strtonum/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/strtonum/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/strtonum/Makefile b/src/regress/lib/libc/strtonum/Makefile new file mode 100644 index 000000000..e0e8ecd13 --- /dev/null +++ b/src/regress/lib/libc/strtonum/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2004/08/03 20:38:36 otto Exp $ + +PROG= strtonumtest + +.include diff --git a/src/regress/lib/libc/strtonum/obj b/src/regress/lib/libc/strtonum/obj new file mode 120000 index 000000000..1634dacf1 --- /dev/null +++ b/src/regress/lib/libc/strtonum/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/strtonum \ No newline at end of file diff --git a/src/regress/lib/libc/strtonum/strtonumtest.c b/src/regress/lib/libc/strtonum/strtonumtest.c new file mode 100644 index 000000000..7e82a007f --- /dev/null +++ b/src/regress/lib/libc/strtonum/strtonumtest.c @@ -0,0 +1,64 @@ +/* $OpenBSD: strtonumtest.c,v 1.1 2004/08/03 20:38:36 otto Exp $ */ +/* + * Copyright (c) 2004 Otto Moerbeek + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include + +int fail; + +void +test(const char *p, long long lb, long long ub, int ok) +{ + long long val; + const char *q; + + val = strtonum(p, lb, ub, &q); + if (ok && q != NULL) { + fprintf(stderr, "%s [%lld-%lld] ", p, lb, ub); + fprintf(stderr, "NUMBER NOT ACCEPTED %s\n", q); + fail = 1; + } else if (!ok && q == NULL) { + fprintf(stderr, "%s [%lld-%lld] %lld ", p, lb, ub, val); + fprintf(stderr, "NUMBER ACCEPTED\n"); + fail = 1; + } +} + +int main(int argc, char *argv[]) +{ + test("1", 0, 10, 1); + test("0", -2, 5, 1); + test("0", 2, 5, 0); + test("0", 2, LLONG_MAX, 0); + test("-2", 0, LLONG_MAX, 0); + test("0", -5, LLONG_MAX, 1); + test("-3", -3, LLONG_MAX, 1); + test("-9223372036854775808", LLONG_MIN, LLONG_MAX, 1); + test("9223372036854775807", LLONG_MIN, LLONG_MAX, 1); + test("-9223372036854775809", LLONG_MIN, LLONG_MAX, 0); + test("9223372036854775808", LLONG_MIN, LLONG_MAX, 0); + test("1000000000000000000000000", LLONG_MIN, LLONG_MAX, 0); + test("-1000000000000000000000000", LLONG_MIN, LLONG_MAX, 0); + test("-2", 10, -1, 0); + test("-2", -10, -1, 1); + test("-20", -10, -1, 0); + test("20", -10, -1, 0); + + return (fail); +} + diff --git a/src/regress/lib/libc/telldir/CVS/Entries b/src/regress/lib/libc/telldir/CVS/Entries new file mode 100644 index 000000000..ca52ff86a --- /dev/null +++ b/src/regress/lib/libc/telldir/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Mar 25 20:27:11 2006// +/telldir.c/1.2/Sat Apr 1 18:24:53 2006// +D diff --git a/src/regress/lib/libc/telldir/CVS/Repository b/src/regress/lib/libc/telldir/CVS/Repository new file mode 100644 index 000000000..475482522 --- /dev/null +++ b/src/regress/lib/libc/telldir/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/telldir diff --git a/src/regress/lib/libc/telldir/CVS/Root b/src/regress/lib/libc/telldir/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/telldir/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/telldir/Makefile b/src/regress/lib/libc/telldir/Makefile new file mode 100644 index 000000000..092777966 --- /dev/null +++ b/src/regress/lib/libc/telldir/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2006/03/25 20:27:11 otto Exp $ + +PROG= telldir + +.include diff --git a/src/regress/lib/libc/telldir/obj b/src/regress/lib/libc/telldir/obj new file mode 120000 index 000000000..b47a7a6ef --- /dev/null +++ b/src/regress/lib/libc/telldir/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/telldir \ No newline at end of file diff --git a/src/regress/lib/libc/telldir/telldir.c b/src/regress/lib/libc/telldir/telldir.c new file mode 100644 index 000000000..fc1ca3e89 --- /dev/null +++ b/src/regress/lib/libc/telldir/telldir.c @@ -0,0 +1,106 @@ +/* $OpenBSD: telldir.c,v 1.2 2006/04/01 18:24:53 otto Exp $ */ + +/* Written by Otto Moerbeek, 2006, Public domain. */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define NFILES 1000 + +void +createfiles(void) +{ + int i, fd; + char file[PATH_MAX]; + + mkdir("d", 0755); + for (i = 0; i < NFILES; i++) { + snprintf(file, sizeof file, "d/%d", i); + if ((fd = open(file, O_CREAT | O_WRONLY, 0600)) == -1) + err(1, "open %s", file); + close(fd); + } +} + +void +delfiles(void) +{ + DIR *dp; + struct dirent *f; + char file[PATH_MAX]; + + dp = opendir("d"); + if (dp == NULL) + err(1, "opendir"); + while (f = readdir(dp)) { + if (strcmp(f->d_name, ".") == 0 || + strcmp(f->d_name, "..") == 0) + continue; + snprintf(file, sizeof file, "d/%s", f->d_name); + if (unlink(file) == -1) + err(1, "unlink %s", f->d_name); + } + closedir(dp); + if (rmdir("d") == -1) + err(1, "rmdir"); +} + +void +loop(DIR *dp, int i) +{ + struct dirent *f; + char file[PATH_MAX]; + long pos, remember = -1; + + rewinddir(dp); + snprintf(file, sizeof file, "%d", i); + for (;;) { + pos = telldir(dp); + f = readdir(dp); + if (f == NULL) + break; + if (strcmp(file, f->d_name) == 0) + remember = pos; + } + if (remember == -1) + errx(1, "remember"); + seekdir(dp, remember); + if (telldir(dp) != remember) + errx(1, "tell after seek"); + if (telldir(dp) != remember) + errx(1, "tell after tell"); + f = readdir(dp); + if (f == NULL) + err(1, "seek to %s %ld", file, remember); + + if (strcmp(f->d_name, file) != 0) + err(1, "name mismatch: %s != %s\n", f->d_name, file); +} + +int +main(void) +{ + DIR *dp; + int i; + + createfiles(); + + dp = opendir("d"); + if (dp == NULL) + err(1, "opendir"); + + for (i = 0; i < NFILES; i++) + loop(dp, (i + NFILES/2) % NFILES); + + closedir(dp); + delfiles(); + return 0; +} diff --git a/src/regress/lib/libc/time/CVS/Entries b/src/regress/lib/libc/time/CVS/Entries new file mode 100644 index 000000000..90d5d72b6 --- /dev/null +++ b/src/regress/lib/libc/time/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.1/Tue Jan 20 16:47:55 2004// +D/strptime//// diff --git a/src/regress/lib/libc/time/CVS/Repository b/src/regress/lib/libc/time/CVS/Repository new file mode 100644 index 000000000..7b6eae67b --- /dev/null +++ b/src/regress/lib/libc/time/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/time diff --git a/src/regress/lib/libc/time/CVS/Root b/src/regress/lib/libc/time/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/time/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/time/Makefile b/src/regress/lib/libc/time/Makefile new file mode 100644 index 000000000..28b555602 --- /dev/null +++ b/src/regress/lib/libc/time/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2004/01/20 16:47:55 millert Exp $ + +SUBDIR+=strptime + +.include diff --git a/src/regress/lib/libc/time/strptime/CVS/Entries b/src/regress/lib/libc/time/strptime/CVS/Entries new file mode 100644 index 000000000..df1462180 --- /dev/null +++ b/src/regress/lib/libc/time/strptime/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.2/Wed Jan 21 18:13:48 2004// +/expected/1.1/Tue Jan 20 16:47:56 2004// +/main.c/1.2/Thu Jun 26 05:42:05 2008// +/tests/1.1/Tue Jan 20 16:47:56 2004// +D diff --git a/src/regress/lib/libc/time/strptime/CVS/Repository b/src/regress/lib/libc/time/strptime/CVS/Repository new file mode 100644 index 000000000..1b67b859d --- /dev/null +++ b/src/regress/lib/libc/time/strptime/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/time/strptime diff --git a/src/regress/lib/libc/time/strptime/CVS/Root b/src/regress/lib/libc/time/strptime/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/time/strptime/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/time/strptime/Makefile b/src/regress/lib/libc/time/strptime/Makefile new file mode 100644 index 000000000..f2c9ebaf2 --- /dev/null +++ b/src/regress/lib/libc/time/strptime/Makefile @@ -0,0 +1,12 @@ +# $OpenBSD: Makefile,v 1.2 2004/01/21 18:13:48 david Exp $ + +PROG= strptime_test +SRCS= main.c +CLEANFILES+= got + +REGRESS_TARGETS=do-reg +do-reg: ${PROG} + ./${PROG} < ${.CURDIR}/tests > got + diff ${.CURDIR}/expected got + +.include diff --git a/src/regress/lib/libc/time/strptime/expected b/src/regress/lib/libc/time/strptime/expected new file mode 100644 index 000000000..d038d319a --- /dev/null +++ b/src/regress/lib/libc/time/strptime/expected @@ -0,0 +1,346 @@ +--- ctime --- 1 +succeeded +46 27 23 20 0 98 2 -1 + +--- ctime --- 2 +succeeded +46 27 23 20 0 98 2 -1 + +--- ctime --- 3 +succeeded +46 27 23 20 0 98 2 -1 + +--- %a --- 1 +succeeded +-1 -1 -1 -1 -1 -1 0 -1 + +--- %a --- 2 +succeeded +-1 -1 -1 -1 -1 -1 0 -1 + +--- %a --- 3 +succeeded +-1 -1 -1 -1 -1 -1 1 -1 + +--- %a --- 4 +succeeded +-1 -1 -1 -1 -1 -1 1 -1 + +--- %a --- 5 +succeeded +-1 -1 -1 -1 -1 -1 2 -1 + +--- %a --- 6 +succeeded +-1 -1 -1 -1 -1 -1 2 -1 + +--- %a --- 7 +succeeded +-1 -1 -1 -1 -1 -1 3 -1 + +--- %a --- 8 +succeeded +-1 -1 -1 -1 -1 -1 3 -1 + +--- %a --- 9 +succeeded +-1 -1 -1 -1 -1 -1 4 -1 + +--- %a --- 10 +succeeded +-1 -1 -1 -1 -1 -1 4 -1 + +--- %a --- 11 +succeeded +-1 -1 -1 -1 -1 -1 5 -1 + +--- %a --- 12 +succeeded +-1 -1 -1 -1 -1 -1 5 -1 + +--- %a --- 13 +succeeded +-1 -1 -1 -1 -1 -1 6 -1 + +--- %a --- 14 +succeeded +-1 -1 -1 -1 -1 -1 6 -1 + +--- %a --- 15 +succeeded +-1 -1 -1 -1 -1 -1 6 -1 +urn + +--- %a --- 16 +failed +--- %A --- 1 +succeeded +-1 -1 -1 -1 -1 -1 0 -1 + +--- %A --- 2 +succeeded +-1 -1 -1 -1 -1 -1 0 -1 + +--- %A --- 3 +succeeded +-1 -1 -1 -1 -1 -1 1 -1 + +--- %A --- 4 +succeeded +-1 -1 -1 -1 -1 -1 1 -1 + +--- %A --- 5 +succeeded +-1 -1 -1 -1 -1 -1 2 -1 + +--- %A --- 6 +succeeded +-1 -1 -1 -1 -1 -1 2 -1 + +--- %A --- 7 +succeeded +-1 -1 -1 -1 -1 -1 3 -1 + +--- %A --- 8 +succeeded +-1 -1 -1 -1 -1 -1 3 -1 + +--- %A --- 9 +succeeded +-1 -1 -1 -1 -1 -1 4 -1 + +--- %A --- 10 +succeeded +-1 -1 -1 -1 -1 -1 4 -1 + +--- %A --- 11 +succeeded +-1 -1 -1 -1 -1 -1 5 -1 + +--- %A --- 12 +succeeded +-1 -1 -1 -1 -1 -1 5 -1 + +--- %A --- 13 +succeeded +-1 -1 -1 -1 -1 -1 6 -1 + +--- %A --- 14 +succeeded +-1 -1 -1 -1 -1 -1 6 -1 + +--- %A --- 15 +succeeded +-1 -1 -1 -1 -1 -1 6 -1 +urn + +--- %A --- 16 +failed +--- %b --- 1 +succeeded +-1 -1 -1 -1 0 -1 -1 -1 + +--- %b --- 2 +succeeded +-1 -1 -1 -1 0 -1 -1 -1 + +--- %b --- 3 +succeeded +-1 -1 -1 -1 1 -1 -1 -1 + +--- %b --- 4 +succeeded +-1 -1 -1 -1 1 -1 -1 -1 + +--- %b --- 5 +succeeded +-1 -1 -1 -1 2 -1 -1 -1 + +--- %b --- 6 +succeeded +-1 -1 -1 -1 2 -1 -1 -1 + +--- %b --- 7 +succeeded +-1 -1 -1 -1 3 -1 -1 -1 + +--- %b --- 8 +succeeded +-1 -1 -1 -1 3 -1 -1 -1 + +--- %b --- 9 +succeeded +-1 -1 -1 -1 4 -1 -1 -1 + +--- %b --- 10 +succeeded +-1 -1 -1 -1 5 -1 -1 -1 + +--- %b --- 11 +succeeded +-1 -1 -1 -1 5 -1 -1 -1 + +--- %b --- 12 +succeeded +-1 -1 -1 -1 6 -1 -1 -1 + +--- %b --- 13 +succeeded +-1 -1 -1 -1 6 -1 -1 -1 + +--- %b --- 14 +succeeded +-1 -1 -1 -1 7 -1 -1 -1 + +--- %b --- 15 +succeeded +-1 -1 -1 -1 7 -1 -1 -1 + +--- %b --- 16 +succeeded +-1 -1 -1 -1 8 -1 -1 -1 + +--- %b --- 17 +succeeded +-1 -1 -1 -1 8 -1 -1 -1 + +--- %b --- 18 +succeeded +-1 -1 -1 -1 9 -1 -1 -1 + +--- %b --- 19 +succeeded +-1 -1 -1 -1 9 -1 -1 -1 + +--- %b --- 20 +succeeded +-1 -1 -1 -1 10 -1 -1 -1 + +--- %b --- 21 +succeeded +-1 -1 -1 -1 10 -1 -1 -1 + +--- %b --- 22 +succeeded +-1 -1 -1 -1 11 -1 -1 -1 + +--- %b --- 23 +succeeded +-1 -1 -1 -1 11 -1 -1 -1 + +--- %b --- 25 +succeeded +-1 -1 -1 -1 4 -1 -1 -1 +or + +--- %b --- 24 +succeeded +-1 -1 -1 -1 2 -1 -1 -1 +s + +--- %b --- 26 +failed +--- %B --- 1 +succeeded +-1 -1 -1 -1 0 -1 -1 -1 + +--- %B --- 2 +succeeded +-1 -1 -1 -1 0 -1 -1 -1 + +--- %B --- 3 +succeeded +-1 -1 -1 -1 1 -1 -1 -1 + +--- %B --- 4 +succeeded +-1 -1 -1 -1 1 -1 -1 -1 + +--- %B --- 5 +succeeded +-1 -1 -1 -1 2 -1 -1 -1 + +--- %B --- 6 +succeeded +-1 -1 -1 -1 2 -1 -1 -1 + +--- %B --- 7 +succeeded +-1 -1 -1 -1 3 -1 -1 -1 + +--- %B --- 8 +succeeded +-1 -1 -1 -1 3 -1 -1 -1 + +--- %B --- 9 +succeeded +-1 -1 -1 -1 4 -1 -1 -1 + +--- %B --- 10 +succeeded +-1 -1 -1 -1 5 -1 -1 -1 + +--- %B --- 11 +succeeded +-1 -1 -1 -1 5 -1 -1 -1 + +--- %B --- 12 +succeeded +-1 -1 -1 -1 6 -1 -1 -1 + +--- %B --- 13 +succeeded +-1 -1 -1 -1 6 -1 -1 -1 + +--- %B --- 14 +succeeded +-1 -1 -1 -1 7 -1 -1 -1 + +--- %B --- 15 +succeeded +-1 -1 -1 -1 7 -1 -1 -1 + +--- %B --- 16 +succeeded +-1 -1 -1 -1 8 -1 -1 -1 + +--- %B --- 17 +succeeded +-1 -1 -1 -1 8 -1 -1 -1 + +--- %B --- 18 +succeeded +-1 -1 -1 -1 9 -1 -1 -1 + +--- %B --- 19 +succeeded +-1 -1 -1 -1 9 -1 -1 -1 + +--- %B --- 20 +succeeded +-1 -1 -1 -1 10 -1 -1 -1 + +--- %B --- 21 +succeeded +-1 -1 -1 -1 10 -1 -1 -1 + +--- %B --- 22 +succeeded +-1 -1 -1 -1 11 -1 -1 -1 + +--- %B --- 23 +succeeded +-1 -1 -1 -1 11 -1 -1 -1 + +--- %B --- 25 +succeeded +-1 -1 -1 -1 4 -1 -1 -1 +or + +--- %B --- 24 +succeeded +-1 -1 -1 -1 2 -1 -1 -1 +s + +--- %B --- 26 +failed diff --git a/src/regress/lib/libc/time/strptime/main.c b/src/regress/lib/libc/time/strptime/main.c new file mode 100644 index 000000000..c4e06a9b5 --- /dev/null +++ b/src/regress/lib/libc/time/strptime/main.c @@ -0,0 +1,110 @@ +/* $OpenBSD: main.c,v 1.2 2008/06/26 05:42:05 ray Exp $ */ +/* $NetBSD: main.c,v 1.4 2002/02/21 07:38:18 itojun Exp $ */ + +/*- + * Copyright (c) 1998 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include +#include +#include +#include + +int main(int, char *[]); +void die(void); + +void +die(void) +{ + + if (ferror(stdin)) + err(1, "fgetln"); + else + errx(1, "input is truncated"); +} + +int +main(int argc, char *argv[]) +{ + char *p, *title, *buf, *format; + size_t len; + struct tm tm; + + for (;;) { + p = fgetln(stdin, &len); + if (p == 0) + die(); + title = malloc(len + 1); + memcpy(title, p, len); + title[len] = '\0'; + + if (!strcmp(title, "EOF\n")) + return(0); + if (title[0] == '#' || title[0] == '\n') { + free(title); + continue; + } + + p = fgetln(stdin, &len); + if (p == 0) + die(); + buf = malloc(len + 1); + memcpy(buf, p, len); + buf[len] = '\0'; + + p = fgetln(stdin, &len); + if (p == 0) + die(); + format = malloc(len + 1); + memcpy(format, p, len); + format[len] = '\0'; + + tm.tm_sec = -1; + tm.tm_min = -1; + tm.tm_hour = -1; + tm.tm_mday = -1; + tm.tm_mon = -1; + tm.tm_year = -1; + tm.tm_wday = -1; + tm.tm_yday = -1; + + p = strptime(buf, format, &tm); + + printf("%s", title); + if (p) { + printf("succeeded\n"); + printf("%d %d %d %d %d %d %d %d\n", + tm.tm_sec, tm.tm_min, tm.tm_hour, tm.tm_mday, + tm.tm_mon, tm.tm_year, tm.tm_wday, tm.tm_yday); + printf("%s\n", p); + } else { + printf("failed\n"); + } + + free(title); + free(buf); + free(format); + } +} diff --git a/src/regress/lib/libc/time/strptime/obj b/src/regress/lib/libc/time/strptime/obj new file mode 120000 index 000000000..fcad5ad40 --- /dev/null +++ b/src/regress/lib/libc/time/strptime/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/time/strptime \ No newline at end of file diff --git a/src/regress/lib/libc/time/strptime/tests b/src/regress/lib/libc/time/strptime/tests new file mode 100644 index 000000000..d96393b2b --- /dev/null +++ b/src/regress/lib/libc/time/strptime/tests @@ -0,0 +1,267 @@ +# some intial checks to make sure common things work +--- ctime --- 1 +Tue Jan 20 23:27:46 1998 +%a %b %d %T %Y +--- ctime --- 2 +Tue Jan 20 23:27:46 1998 +%a %b %d %H:%M:%S %Y +--- ctime --- 3 +Tue Jan 20 23:27:46 1998 +%c + +# test some valid and invalid day names +--- %a --- 1 +Sun +%a +--- %a --- 2 +Sunday +%a +--- %a --- 3 +Mon +%a +--- %a --- 4 +Monday +%a +--- %a --- 5 +Tue +%a +--- %a --- 6 +Tuesday +%a +--- %a --- 7 +Wed +%a +--- %a --- 8 +Wednesday +%a +--- %a --- 9 +Thu +%a +--- %a --- 10 +Thursday +%a +--- %a --- 11 +Fri +%a +--- %a --- 12 +Friday +%a +--- %a --- 13 +Sat +%a +--- %a --- 14 +Saturday +%a +--- %a --- 15 +Saturn +%a +--- %a --- 16 +Moon +%a +--- %A --- 1 +Sun +%A +--- %A --- 2 +Sunday +%A +--- %A --- 3 +Mon +%A +--- %A --- 4 +Monday +%A +--- %A --- 5 +Tue +%A +--- %A --- 6 +Tuesday +%A +--- %A --- 7 +Wed +%A +--- %A --- 8 +Wednesday +%A +--- %A --- 9 +Thu +%A +--- %A --- 10 +Thursday +%A +--- %A --- 11 +Fri +%A +--- %A --- 12 +Friday +%A +--- %A --- 13 +Sat +%A +--- %A --- 14 +Saturday +%A +--- %A --- 15 +Saturn +%A +--- %A --- 16 +Moon +%A + +# test some valid and invalid month names +--- %b --- 1 +Jan +%b +--- %b --- 2 +January +%b +--- %b --- 3 +Feb +%b +--- %b --- 4 +February +%b +--- %b --- 5 +Mar +%b +--- %b --- 6 +March +%b +--- %b --- 7 +Apr +%b +--- %b --- 8 +April +%b +--- %b --- 9 +May +%b +--- %b --- 10 +Jun +%b +--- %b --- 11 +June +%b +--- %b --- 12 +Jul +%b +--- %b --- 13 +July +%b +--- %b --- 14 +Aug +%b +--- %b --- 15 +August +%b +--- %b --- 16 +Sep +%b +--- %b --- 17 +September +%b +--- %b --- 18 +Oct +%b +--- %b --- 19 +October +%b +--- %b --- 20 +Nov +%b +--- %b --- 21 +November +%b +--- %b --- 22 +Dec +%b +--- %b --- 23 +December +%b +--- %b --- 25 +Mayor +%b +--- %b --- 24 +Mars +%b +--- %b --- 26 +Rover +%b +--- %B --- 1 +Jan +%B +--- %B --- 2 +January +%B +--- %B --- 3 +Feb +%B +--- %B --- 4 +February +%B +--- %B --- 5 +Mar +%B +--- %B --- 6 +March +%B +--- %B --- 7 +Apr +%B +--- %B --- 8 +April +%B +--- %B --- 9 +May +%B +--- %B --- 10 +Jun +%B +--- %B --- 11 +June +%B +--- %B --- 12 +Jul +%B +--- %B --- 13 +July +%B +--- %B --- 14 +Aug +%B +--- %B --- 15 +August +%B +--- %B --- 16 +Sep +%B +--- %B --- 17 +September +%B +--- %B --- 18 +Oct +%B +--- %B --- 19 +October +%B +--- %B --- 20 +Nov +%B +--- %B --- 21 +November +%B +--- %B --- 22 +Dec +%B +--- %B --- 23 +December +%B +--- %B --- 25 +Mayor +%B +--- %B --- 24 +Mars +%B +--- %B --- 26 +Rover +%B +EOF diff --git a/src/regress/lib/libc/vis/CVS/Entries b/src/regress/lib/libc/vis/CVS/Entries new file mode 100644 index 000000000..43b567979 --- /dev/null +++ b/src/regress/lib/libc/vis/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Mon Aug 29 18:41:56 2005// +/valid.ok/1.1/Mon Aug 29 18:41:56 2005// +/vis_test.c/1.2/Sun Jun 21 00:38:22 2009// +D diff --git a/src/regress/lib/libc/vis/CVS/Repository b/src/regress/lib/libc/vis/CVS/Repository new file mode 100644 index 000000000..6a7473562 --- /dev/null +++ b/src/regress/lib/libc/vis/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libc/vis diff --git a/src/regress/lib/libc/vis/CVS/Root b/src/regress/lib/libc/vis/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libc/vis/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libc/vis/Makefile b/src/regress/lib/libc/vis/Makefile new file mode 100644 index 000000000..13e560bbf --- /dev/null +++ b/src/regress/lib/libc/vis/Makefile @@ -0,0 +1,10 @@ +# $OpenBSD: Makefile,v 1.1 2005/08/29 18:41:56 otto Exp $ + +PROG= vis_test +CLEANFILES+= valid.out + +run-regress-vis_test: ${PROG} + ./${PROG} >${.OBJDIR}/valid.out + cmp -s ${.OBJDIR}/valid.out ${.CURDIR}/valid.ok + +.include diff --git a/src/regress/lib/libc/vis/obj b/src/regress/lib/libc/vis/obj new file mode 120000 index 000000000..e4ecf300c --- /dev/null +++ b/src/regress/lib/libc/vis/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libc/vis \ No newline at end of file diff --git a/src/regress/lib/libc/vis/valid.ok b/src/regress/lib/libc/vis/valid.ok new file mode 100644 index 000000000..f8c0efa50 --- /dev/null +++ b/src/regress/lib/libc/vis/valid.ok @@ -0,0 +1,2 @@ +\^@\^A\^B\^C\^D\^E\^F\^G\^H +\^K\^L\^M\^N\^O\^P\^Q\^R\^S\^T\^U\^V\^W\^X\^Y\^Z\^[\^\\^]\^^\^_ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\^?\M^@\M^A\M^B\M^C\M^D\M^E\M^F\M^G\M^H\M^I\M^J\M^K\M^L\M^M\M^N\M^O\M^P\M^Q\M^R\M^S\M^T\M^U\M^V\M^W\M^X\M^Y\M^Z\M^[\M^\\M^]\M^^\M^_\240\M-!\M-"\M-#\M-$\M-%\M-&\M-'\M-(\M-)\M-*\M-+\M-,\M--\M-.\M-/\M-0\M-1\M-2\M-3\M-4\M-5\M-6\M-7\M-8\M-9\M-:\M-;\M-<\M-=\M->\M-?\M-@\M-A\M-B\M-C\M-D\M-E\M-F\M-G\M-H\M-I\M-J\M-K\M-L\M-M\M-N\M-O\M-P\M-Q\M-R\M-S\M-T\M-U\M-V\M-W\M-X\M-Y\M-Z\M-[\M-\\M-]\M-^\M-_\M-`\M-a\M-b\M-c\M-d\M-e\M-f\M-g\M-h\M-i\M-j\M-k\M-l\M-m\M-n\M-o\M-p\M-q\M-r\M-s\M-t\M-u\M-v\M-w\M-x\M-y\M-z\M-{\M-|\M-}\M-~\M^? diff --git a/src/regress/lib/libc/vis/vis_test.c b/src/regress/lib/libc/vis/vis_test.c new file mode 100644 index 000000000..054befd44 --- /dev/null +++ b/src/regress/lib/libc/vis/vis_test.c @@ -0,0 +1,23 @@ +/* $OpenBSD: vis_test.c,v 1.2 2009/06/21 00:38:22 martynas Exp $ */ + +/* Public domain. 2005, Otto Moerbeek */ + +#include +#include +#include +#include + +int +main() +{ + char inp[UCHAR_MAX + 1]; + char out[4 * UCHAR_MAX + 1]; + int i; + + for (i = 0; i <= UCHAR_MAX; i++) { + inp[i] = i; + } + strvisx(out, inp, UCHAR_MAX + 1, 0); + printf("%s\n", out); + exit(0); +} diff --git a/src/regress/lib/libevent/CVS/Entries b/src/regress/lib/libevent/CVS/Entries new file mode 100644 index 000000000..53cba6c52 --- /dev/null +++ b/src/regress/lib/libevent/CVS/Entries @@ -0,0 +1,7 @@ +/Makefile/1.7/Sun Jun 27 18:30:00 2010// +/event_regress.c/1.1/Sat Jun 26 23:31:11 2010// +/test-eof.c/1.1/Sat Jun 26 23:31:11 2010// +/test-init.c/1.1/Sat Jun 26 23:31:11 2010// +/test-time.c/1.1/Sat Jun 26 23:31:11 2010// +/test-weof.c/1.1/Sat Jun 26 23:31:11 2010// +D diff --git a/src/regress/lib/libevent/CVS/Repository b/src/regress/lib/libevent/CVS/Repository new file mode 100644 index 000000000..0fd5180bb --- /dev/null +++ b/src/regress/lib/libevent/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libevent diff --git a/src/regress/lib/libevent/CVS/Root b/src/regress/lib/libevent/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libevent/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libevent/Makefile b/src/regress/lib/libevent/Makefile new file mode 100644 index 000000000..698042910 --- /dev/null +++ b/src/regress/lib/libevent/Makefile @@ -0,0 +1,42 @@ +# $OpenBSD: Makefile,v 1.7 2010/06/26 23:31:11 nicm Exp $ + +REGRESS_TARGETS= run-regress run-test-eof run-test-init run-test-time +REGRESS_TARGETS+= run-test-weof + +CFLAGS+= -I${.CURDIR}/../../../lib/libevent \ + -DHAVE_FCNTL \ + -DHAVE_SIGACTION \ + -DHAVE_SYS_SOCKET_H \ + -DHAVE_SYS_TIME_H \ + -DHAVE_UNISTD_H +LDFLAGS+= -levent +CLEANFILES= event_regress test-eof test-init test-time test-weof + +.PHONY: ${REGRESS_TARGETS} + +run-regress: event_regress + EVENT_NOPOLL=1 EVENT_NOSELECT=1 ./event_regress + EVENT_NOKQUEUE=1 EVENT_NOSELECT=1 ./event_regress + EVENT_NOKQUEUE=1 EVENT_NOPOLL=1 ./event_regress + +run-test-eof: test-eof + EVENT_NOPOLL=1 EVENT_NOSELECT=1 ./test-eof + EVENT_NOKQUEUE=1 EVENT_NOSELECT=1 ./test-eof + EVENT_NOKQUEUE=1 EVENT_NOPOLL=1 ./test-eof + +run-test-init: test-init + EVENT_NOPOLL=1 EVENT_NOSELECT=1 ./test-init + EVENT_NOKQUEUE=1 EVENT_NOSELECT=1 ./test-init + EVENT_NOKQUEUE=1 EVENT_NOPOLL=1 ./test-init + +run-test-time: test-time + EVENT_NOPOLL=1 EVENT_NOSELECT=1 ./test-time + EVENT_NOKQUEUE=1 EVENT_NOSELECT=1 ./test-time + EVENT_NOKQUEUE=1 EVENT_NOPOLL=1 ./test-time + +run-test-weof: test-weof + EVENT_NOPOLL=1 EVENT_NOSELECT=1 ./test-weof + EVENT_NOKQUEUE=1 EVENT_NOSELECT=1 ./test-weof + EVENT_NOKQUEUE=1 EVENT_NOPOLL=1 ./test-weof + +.include diff --git a/src/regress/lib/libevent/event_regress.c b/src/regress/lib/libevent/event_regress.c new file mode 100644 index 000000000..79e41b641 --- /dev/null +++ b/src/regress/lib/libevent/event_regress.c @@ -0,0 +1,1914 @@ +/* + * Copyright (c) 2003, 2004 Niels Provos + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifdef WIN32 +#include +#include +#endif + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#ifdef HAVE_SYS_TIME_H +#include +#endif +#include +#ifndef WIN32 +#include +#include +#include +#include +#include +#endif +#include +#include +#include +#include +#include +#include +#include + +#include "event.h" +#include "evutil.h" +#include "event-internal.h" +#include "log.h" + +#if 0 +#include "regress.h" +#ifndef WIN32 +#include "regress.gen.h" +#endif +#endif + +int pair[2]; +int test_ok; +static int called; +static char wbuf[4096]; +static char rbuf[4096]; +static int woff; +static int roff; +static int usepersist; +static struct timeval tset; +static struct timeval tcalled; +static struct event_base *global_base; + +#define TEST1 "this is a test" +#define SECONDS 1 + +#ifndef SHUT_WR +#define SHUT_WR 1 +#endif + +#ifdef WIN32 +#define write(fd,buf,len) send((fd),(buf),(len),0) +#define read(fd,buf,len) recv((fd),(buf),(len),0) +#endif + +static void +simple_read_cb(int fd, short event, void *arg) +{ + char buf[256]; + int len; + + if (arg == NULL) + return; + + len = read(fd, buf, sizeof(buf)); + + if (len) { + if (!called) { + if (event_add(arg, NULL) == -1) + exit(1); + } + } else if (called == 1) + test_ok = 1; + + called++; +} + +static void +simple_write_cb(int fd, short event, void *arg) +{ + int len; + + if (arg == NULL) + return; + + len = write(fd, TEST1, strlen(TEST1) + 1); + if (len == -1) + test_ok = 0; + else + test_ok = 1; +} + +static void +multiple_write_cb(int fd, short event, void *arg) +{ + struct event *ev = arg; + int len; + + len = 128; + if (woff + len >= sizeof(wbuf)) + len = sizeof(wbuf) - woff; + + len = write(fd, wbuf + woff, len); + if (len == -1) { + fprintf(stderr, "%s: write\n", __func__); + if (usepersist) + event_del(ev); + return; + } + + woff += len; + + if (woff >= sizeof(wbuf)) { + shutdown(fd, SHUT_WR); + if (usepersist) + event_del(ev); + return; + } + + if (!usepersist) { + if (event_add(ev, NULL) == -1) + exit(1); + } +} + +static void +multiple_read_cb(int fd, short event, void *arg) +{ + struct event *ev = arg; + int len; + + len = read(fd, rbuf + roff, sizeof(rbuf) - roff); + if (len == -1) + fprintf(stderr, "%s: read\n", __func__); + if (len <= 0) { + if (usepersist) + event_del(ev); + return; + } + + roff += len; + if (!usepersist) { + if (event_add(ev, NULL) == -1) + exit(1); + } +} + +static void +timeout_cb(int fd, short event, void *arg) +{ + struct timeval tv; + int diff; + + evutil_gettimeofday(&tcalled, NULL); + if (evutil_timercmp(&tcalled, &tset, >)) + evutil_timersub(&tcalled, &tset, &tv); + else + evutil_timersub(&tset, &tcalled, &tv); + + diff = tv.tv_sec*1000 + tv.tv_usec/1000 - SECONDS * 1000; + if (diff < 0) + diff = -diff; + + if (diff < 100) + test_ok = 1; +} + +#ifndef WIN32 +static void +signal_cb_sa(int sig) +{ + test_ok = 2; +} + +static void +signal_cb(int fd, short event, void *arg) +{ + struct event *ev = arg; + + signal_del(ev); + test_ok = 1; +} +#endif + +struct both { + struct event ev; + int nread; +}; + +static void +combined_read_cb(int fd, short event, void *arg) +{ + struct both *both = arg; + char buf[128]; + int len; + + len = read(fd, buf, sizeof(buf)); + if (len == -1) + fprintf(stderr, "%s: read\n", __func__); + if (len <= 0) + return; + + both->nread += len; + if (event_add(&both->ev, NULL) == -1) + exit(1); +} + +static void +combined_write_cb(int fd, short event, void *arg) +{ + struct both *both = arg; + char buf[128]; + int len; + + len = sizeof(buf); + if (len > both->nread) + len = both->nread; + + len = write(fd, buf, len); + if (len == -1) + fprintf(stderr, "%s: write\n", __func__); + if (len <= 0) { + shutdown(fd, SHUT_WR); + return; + } + + both->nread -= len; + if (event_add(&both->ev, NULL) == -1) + exit(1); +} + +/* Test infrastructure */ + +static int +setup_test(const char *name) +{ + fprintf(stdout, "%s", name); + + if (evutil_socketpair(AF_UNIX, SOCK_STREAM, 0, pair) == -1) { + fprintf(stderr, "%s: socketpair\n", __func__); + exit(1); + } + +#ifdef HAVE_FCNTL + if (fcntl(pair[0], F_SETFL, O_NONBLOCK) == -1) + fprintf(stderr, "fcntl(O_NONBLOCK)"); + + if (fcntl(pair[1], F_SETFL, O_NONBLOCK) == -1) + fprintf(stderr, "fcntl(O_NONBLOCK)"); +#endif + + test_ok = 0; + called = 0; + return (0); +} + +static int +cleanup_test(void) +{ +#ifndef WIN32 + close(pair[0]); + close(pair[1]); +#else + CloseHandle((HANDLE)pair[0]); + CloseHandle((HANDLE)pair[1]); +#endif + if (test_ok) + fprintf(stdout, "OK\n"); + else { + fprintf(stdout, "FAILED\n"); + exit(1); + } + test_ok = 0; + return (0); +} + +static void +test_registerfds(void) +{ + int i, j; + int pair[2]; + struct event read_evs[512]; + struct event write_evs[512]; + + struct event_base *base = event_base_new(); + + fprintf(stdout, "Testing register fds: "); + + for (i = 0; i < 512; ++i) { + if (evutil_socketpair(AF_UNIX, SOCK_STREAM, 0, pair) == -1) { + /* run up to the limit of file descriptors */ + break; + } + event_set(&read_evs[i], pair[0], + EV_READ|EV_PERSIST, simple_read_cb, NULL); + event_base_set(base, &read_evs[i]); + event_add(&read_evs[i], NULL); + event_set(&write_evs[i], pair[1], + EV_WRITE|EV_PERSIST, simple_write_cb, NULL); + event_base_set(base, &write_evs[i]); + event_add(&write_evs[i], NULL); + + /* just loop once */ + event_base_loop(base, EVLOOP_ONCE); + } + + /* now delete everything */ + for (j = 0; j < i; ++j) { + event_del(&read_evs[j]); + event_del(&write_evs[j]); +#ifndef WIN32 + close(read_evs[j].ev_fd); + close(write_evs[j].ev_fd); +#else + CloseHandle((HANDLE)read_evs[j].ev_fd); + CloseHandle((HANDLE)write_evs[j].ev_fd); +#endif + + /* just loop once */ + event_base_loop(base, EVLOOP_ONCE); + } + + event_base_free(base); + + fprintf(stdout, "OK\n"); +} + +static void +test_simpleread(void) +{ + struct event ev; + + /* Very simple read test */ + setup_test("Simple read: "); + + write(pair[0], TEST1, strlen(TEST1)+1); + shutdown(pair[0], SHUT_WR); + + event_set(&ev, pair[1], EV_READ, simple_read_cb, &ev); + if (event_add(&ev, NULL) == -1) + exit(1); + event_dispatch(); + + cleanup_test(); +} + +static void +test_simplewrite(void) +{ + struct event ev; + + /* Very simple write test */ + setup_test("Simple write: "); + + event_set(&ev, pair[0], EV_WRITE, simple_write_cb, &ev); + if (event_add(&ev, NULL) == -1) + exit(1); + event_dispatch(); + + cleanup_test(); +} + +static void +test_multiple(void) +{ + struct event ev, ev2; + int i; + + /* Multiple read and write test */ + setup_test("Multiple read/write: "); + memset(rbuf, 0, sizeof(rbuf)); + for (i = 0; i < sizeof(wbuf); i++) + wbuf[i] = i; + + roff = woff = 0; + usepersist = 0; + + event_set(&ev, pair[0], EV_WRITE, multiple_write_cb, &ev); + if (event_add(&ev, NULL) == -1) + exit(1); + event_set(&ev2, pair[1], EV_READ, multiple_read_cb, &ev2); + if (event_add(&ev2, NULL) == -1) + exit(1); + event_dispatch(); + + if (roff == woff) + test_ok = memcmp(rbuf, wbuf, sizeof(wbuf)) == 0; + + cleanup_test(); +} + +static void +test_persistent(void) +{ + struct event ev, ev2; + int i; + + /* Multiple read and write test with persist */ + setup_test("Persist read/write: "); + memset(rbuf, 0, sizeof(rbuf)); + for (i = 0; i < sizeof(wbuf); i++) + wbuf[i] = i; + + roff = woff = 0; + usepersist = 1; + + event_set(&ev, pair[0], EV_WRITE|EV_PERSIST, multiple_write_cb, &ev); + if (event_add(&ev, NULL) == -1) + exit(1); + event_set(&ev2, pair[1], EV_READ|EV_PERSIST, multiple_read_cb, &ev2); + if (event_add(&ev2, NULL) == -1) + exit(1); + event_dispatch(); + + if (roff == woff) + test_ok = memcmp(rbuf, wbuf, sizeof(wbuf)) == 0; + + cleanup_test(); +} + +static void +test_combined(void) +{ + struct both r1, r2, w1, w2; + + setup_test("Combined read/write: "); + memset(&r1, 0, sizeof(r1)); + memset(&r2, 0, sizeof(r2)); + memset(&w1, 0, sizeof(w1)); + memset(&w2, 0, sizeof(w2)); + + w1.nread = 4096; + w2.nread = 8192; + + event_set(&r1.ev, pair[0], EV_READ, combined_read_cb, &r1); + event_set(&w1.ev, pair[0], EV_WRITE, combined_write_cb, &w1); + event_set(&r2.ev, pair[1], EV_READ, combined_read_cb, &r2); + event_set(&w2.ev, pair[1], EV_WRITE, combined_write_cb, &w2); + if (event_add(&r1.ev, NULL) == -1) + exit(1); + if (event_add(&w1.ev, NULL)) + exit(1); + if (event_add(&r2.ev, NULL)) + exit(1); + if (event_add(&w2.ev, NULL)) + exit(1); + + event_dispatch(); + + if (r1.nread == 8192 && r2.nread == 4096) + test_ok = 1; + + cleanup_test(); +} + +static void +test_simpletimeout(void) +{ + struct timeval tv; + struct event ev; + + setup_test("Simple timeout: "); + + tv.tv_usec = 0; + tv.tv_sec = SECONDS; + evtimer_set(&ev, timeout_cb, NULL); + evtimer_add(&ev, &tv); + + evutil_gettimeofday(&tset, NULL); + event_dispatch(); + + cleanup_test(); +} + +#ifndef WIN32 +extern struct event_base *current_base; + +static void +child_signal_cb(int fd, short event, void *arg) +{ + struct timeval tv; + int *pint = arg; + + *pint = 1; + + tv.tv_usec = 500000; + tv.tv_sec = 0; + event_loopexit(&tv); +} + +static void +test_fork(void) +{ + int status, got_sigchld = 0; + struct event ev, sig_ev; + pid_t pid; + + setup_test("After fork: "); + + write(pair[0], TEST1, strlen(TEST1)+1); + + event_set(&ev, pair[1], EV_READ, simple_read_cb, &ev); + if (event_add(&ev, NULL) == -1) + exit(1); + + signal_set(&sig_ev, SIGCHLD, child_signal_cb, &got_sigchld); + signal_add(&sig_ev, NULL); + + if ((pid = fork()) == 0) { + /* in the child */ + if (event_reinit(current_base) == -1) { + fprintf(stderr, "FAILED (reinit)\n"); + exit(1); + } + + signal_del(&sig_ev); + + called = 0; + + event_dispatch(); + + /* we do not send an EOF; simple_read_cb requires an EOF + * to set test_ok. we just verify that the callback was + * called. */ + exit(test_ok != 0 || called != 2 ? -2 : 76); + } + + /* wait for the child to read the data */ + sleep(1); + + write(pair[0], TEST1, strlen(TEST1)+1); + + if (waitpid(pid, &status, 0) == -1) { + fprintf(stderr, "FAILED (fork)\n"); + exit(1); + } + + if (WEXITSTATUS(status) != 76) { + fprintf(stderr, "FAILED (exit): %d\n", WEXITSTATUS(status)); + exit(1); + } + + /* test that the current event loop still works */ + write(pair[0], TEST1, strlen(TEST1)+1); + shutdown(pair[0], SHUT_WR); + + event_dispatch(); + + if (!got_sigchld) { + fprintf(stdout, "FAILED (sigchld)\n"); + exit(1); + } + + signal_del(&sig_ev); + + cleanup_test(); +} + +static void +test_simplesignal(void) +{ + struct event ev; + struct itimerval itv; + + setup_test("Simple signal: "); + signal_set(&ev, SIGALRM, signal_cb, &ev); + signal_add(&ev, NULL); + /* find bugs in which operations are re-ordered */ + signal_del(&ev); + signal_add(&ev, NULL); + + memset(&itv, 0, sizeof(itv)); + itv.it_value.tv_sec = 1; + if (setitimer(ITIMER_REAL, &itv, NULL) == -1) + goto skip_simplesignal; + + event_dispatch(); + skip_simplesignal: + if (signal_del(&ev) == -1) + test_ok = 0; + + cleanup_test(); +} + +static void +test_multiplesignal(void) +{ + struct event ev_one, ev_two; + struct itimerval itv; + + setup_test("Multiple signal: "); + + signal_set(&ev_one, SIGALRM, signal_cb, &ev_one); + signal_add(&ev_one, NULL); + + signal_set(&ev_two, SIGALRM, signal_cb, &ev_two); + signal_add(&ev_two, NULL); + + memset(&itv, 0, sizeof(itv)); + itv.it_value.tv_sec = 1; + if (setitimer(ITIMER_REAL, &itv, NULL) == -1) + goto skip_simplesignal; + + event_dispatch(); + + skip_simplesignal: + if (signal_del(&ev_one) == -1) + test_ok = 0; + if (signal_del(&ev_two) == -1) + test_ok = 0; + + cleanup_test(); +} + +static void +test_immediatesignal(void) +{ + struct event ev; + + test_ok = 0; + printf("Immediate signal: "); + signal_set(&ev, SIGUSR1, signal_cb, &ev); + signal_add(&ev, NULL); + raise(SIGUSR1); + event_loop(EVLOOP_NONBLOCK); + signal_del(&ev); + cleanup_test(); +} + +static void +test_signal_dealloc(void) +{ + /* make sure that signal_event is event_del'ed and pipe closed */ + struct event ev; + struct event_base *base = event_init(); + printf("Signal dealloc: "); + signal_set(&ev, SIGUSR1, signal_cb, &ev); + signal_add(&ev, NULL); + signal_del(&ev); + event_base_free(base); + /* If we got here without asserting, we're fine. */ + test_ok = 1; + cleanup_test(); +} + +static void +test_signal_pipeloss(void) +{ + /* make sure that the base1 pipe is closed correctly. */ + struct event_base *base1, *base2; + int pipe1; + test_ok = 0; + printf("Signal pipeloss: "); + base1 = event_init(); + pipe1 = base1->sig.ev_signal_pair[0]; + base2 = event_init(); + event_base_free(base2); + event_base_free(base1); + if (close(pipe1) != -1 || errno!=EBADF) { + /* fd must be closed, so second close gives -1, EBADF */ + printf("signal pipe not closed. "); + test_ok = 0; + } else { + test_ok = 1; + } + cleanup_test(); +} + +/* + * make two bases to catch signals, use both of them. this only works + * for event mechanisms that use our signal pipe trick. kqueue handles + * signals internally, and all interested kqueues get all the signals. + */ +static void +test_signal_switchbase(void) +{ + struct event ev1, ev2; + struct event_base *base1, *base2; + int is_kqueue; + test_ok = 0; + printf("Signal switchbase: "); + base1 = event_init(); + base2 = event_init(); + is_kqueue = !strcmp(event_get_method(),"kqueue"); + signal_set(&ev1, SIGUSR1, signal_cb, &ev1); + signal_set(&ev2, SIGUSR1, signal_cb, &ev2); + if (event_base_set(base1, &ev1) || + event_base_set(base2, &ev2) || + event_add(&ev1, NULL) || + event_add(&ev2, NULL)) { + fprintf(stderr, "%s: cannot set base, add\n", __func__); + exit(1); + } + + test_ok = 0; + /* can handle signal before loop is called */ + raise(SIGUSR1); + event_base_loop(base2, EVLOOP_NONBLOCK); + if (is_kqueue) { + if (!test_ok) + goto done; + test_ok = 0; + } + event_base_loop(base1, EVLOOP_NONBLOCK); + if (test_ok && !is_kqueue) { + test_ok = 0; + + /* set base1 to handle signals */ + event_base_loop(base1, EVLOOP_NONBLOCK); + raise(SIGUSR1); + event_base_loop(base1, EVLOOP_NONBLOCK); + event_base_loop(base2, EVLOOP_NONBLOCK); + } + done: + event_base_free(base1); + event_base_free(base2); + cleanup_test(); +} + +/* + * assert that a signal event removed from the event queue really is + * removed - with no possibility of it's parent handler being fired. + */ +static void +test_signal_assert(void) +{ + struct event ev; + struct event_base *base = event_init(); + test_ok = 0; + printf("Signal handler assert: "); + /* use SIGCONT so we don't kill ourselves when we signal to nowhere */ + signal_set(&ev, SIGCONT, signal_cb, &ev); + signal_add(&ev, NULL); + /* + * if signal_del() fails to reset the handler, it's current handler + * will still point to evsignal_handler(). + */ + signal_del(&ev); + + raise(SIGCONT); + /* only way to verify we were in evsignal_handler() */ + if (base->sig.evsignal_caught) + test_ok = 0; + else + test_ok = 1; + + event_base_free(base); + cleanup_test(); + return; +} + +/* + * assert that we restore our previous signal handler properly. + */ +static void +test_signal_restore(void) +{ + struct event ev; + struct event_base *base = event_init(); +#ifdef HAVE_SIGACTION + struct sigaction sa; +#endif + + test_ok = 0; + printf("Signal handler restore: "); +#ifdef HAVE_SIGACTION + sa.sa_handler = signal_cb_sa; + sa.sa_flags = 0x0; + sigemptyset(&sa.sa_mask); + if (sigaction(SIGUSR1, &sa, NULL) == -1) + goto out; +#else + if (signal(SIGUSR1, signal_cb_sa) == SIG_ERR) + goto out; +#endif + signal_set(&ev, SIGUSR1, signal_cb, &ev); + signal_add(&ev, NULL); + signal_del(&ev); + + raise(SIGUSR1); + /* 1 == signal_cb, 2 == signal_cb_sa, we want our previous handler */ + if (test_ok != 2) + test_ok = 0; +out: + event_base_free(base); + cleanup_test(); + return; +} + +static void +signal_cb_swp(int sig, short event, void *arg) +{ + called++; + if (called < 5) + raise(sig); + else + event_loopexit(NULL); +} +static void +timeout_cb_swp(int fd, short event, void *arg) +{ + if (called == -1) { + struct timeval tv = {5, 0}; + + called = 0; + evtimer_add((struct event *)arg, &tv); + raise(SIGUSR1); + return; + } + test_ok = 0; + event_loopexit(NULL); +} + +static void +test_signal_while_processing(void) +{ + struct event_base *base = event_init(); + struct event ev, ev_timer; + struct timeval tv = {0, 0}; + + setup_test("Receiving a signal while processing other signal: "); + + called = -1; + test_ok = 1; + signal_set(&ev, SIGUSR1, signal_cb_swp, NULL); + signal_add(&ev, NULL); + evtimer_set(&ev_timer, timeout_cb_swp, &ev_timer); + evtimer_add(&ev_timer, &tv); + event_dispatch(); + + event_base_free(base); + cleanup_test(); + return; +} +#endif + +static void +test_free_active_base(void) +{ + struct event_base *base1; + struct event ev1; + setup_test("Free active base: "); + base1 = event_init(); + event_set(&ev1, pair[1], EV_READ, simple_read_cb, &ev1); + event_base_set(base1, &ev1); + event_add(&ev1, NULL); + /* event_del(&ev1); */ + event_base_free(base1); + test_ok = 1; + cleanup_test(); +} + +static void +test_event_base_new(void) +{ + struct event_base *base; + struct event ev1; + setup_test("Event base new: "); + + write(pair[0], TEST1, strlen(TEST1)+1); + shutdown(pair[0], SHUT_WR); + + base = event_base_new(); + event_set(&ev1, pair[1], EV_READ, simple_read_cb, &ev1); + event_base_set(base, &ev1); + event_add(&ev1, NULL); + + event_base_dispatch(base); + + event_base_free(base); + test_ok = 1; + cleanup_test(); +} + +static void +test_loopexit(void) +{ + struct timeval tv, tv_start, tv_end; + struct event ev; + + setup_test("Loop exit: "); + + tv.tv_usec = 0; + tv.tv_sec = 60*60*24; + evtimer_set(&ev, timeout_cb, NULL); + evtimer_add(&ev, &tv); + + tv.tv_usec = 0; + tv.tv_sec = 1; + event_loopexit(&tv); + + evutil_gettimeofday(&tv_start, NULL); + event_dispatch(); + evutil_gettimeofday(&tv_end, NULL); + evutil_timersub(&tv_end, &tv_start, &tv_end); + + evtimer_del(&ev); + + if (tv.tv_sec < 2) + test_ok = 1; + + cleanup_test(); +} + +static void +test_loopexit_multiple(void) +{ + struct timeval tv; + struct event_base *base; + + setup_test("Loop Multiple exit: "); + + base = event_base_new(); + + tv.tv_usec = 0; + tv.tv_sec = 1; + event_base_loopexit(base, &tv); + + tv.tv_usec = 0; + tv.tv_sec = 2; + event_base_loopexit(base, &tv); + + event_base_dispatch(base); + + event_base_free(base); + + test_ok = 1; + + cleanup_test(); +} + +static void +break_cb(int fd, short events, void *arg) +{ + test_ok = 1; + event_loopbreak(); +} + +static void +fail_cb(int fd, short events, void *arg) +{ + test_ok = 0; +} + +static void +test_loopbreak(void) +{ + struct event ev1, ev2; + struct timeval tv; + + setup_test("Loop break: "); + + tv.tv_sec = 0; + tv.tv_usec = 0; + evtimer_set(&ev1, break_cb, NULL); + evtimer_add(&ev1, &tv); + evtimer_set(&ev2, fail_cb, NULL); + evtimer_add(&ev2, &tv); + + event_dispatch(); + + evtimer_del(&ev1); + evtimer_del(&ev2); + + cleanup_test(); +} + +static void +test_evbuffer(void) { + + struct evbuffer *evb = evbuffer_new(); + setup_test("Testing Evbuffer: "); + + evbuffer_add_printf(evb, "%s/%d", "hello", 1); + + if (EVBUFFER_LENGTH(evb) == 7 && + strcmp((char*)EVBUFFER_DATA(evb), "hello/1") == 0) + test_ok = 1; + + evbuffer_free(evb); + + cleanup_test(); +} + +static void +test_evbuffer_readln(void) +{ + struct evbuffer *evb = evbuffer_new(); + struct evbuffer *evb_tmp = evbuffer_new(); + const char *s; + char *cp = NULL; + size_t sz; + +#define tt_line_eq(content) \ + if (!cp || sz != strlen(content) || strcmp(cp, content)) { \ + fprintf(stdout, "FAILED\n"); \ + exit(1); \ + } +#define tt_assert(expression) \ + if (!(expression)) { \ + fprintf(stdout, "FAILED\n"); \ + exit(1); \ + } \ + + /* Test EOL_ANY. */ + fprintf(stdout, "Testing evbuffer_readln EOL_ANY: "); + + s = "complex silly newline\r\n\n\r\n\n\rmore\0\n"; + evbuffer_add(evb, s, strlen(s)+2); + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_ANY); + tt_line_eq("complex silly newline"); + free(cp); + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_ANY); + if (!cp || sz != 5 || memcmp(cp, "more\0\0", 6)) { + fprintf(stdout, "FAILED\n"); + exit(1); + } + if (evb->totallen == 0) { + fprintf(stdout, "FAILED\n"); + exit(1); + } + s = "\nno newline"; + evbuffer_add(evb, s, strlen(s)); + free(cp); + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_ANY); + tt_line_eq(""); + free(cp); + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_ANY); + tt_assert(!cp); + evbuffer_drain(evb, EVBUFFER_LENGTH(evb)); + tt_assert(EVBUFFER_LENGTH(evb) == 0); + + fprintf(stdout, "OK\n"); + + /* Test EOL_CRLF */ + fprintf(stdout, "Testing evbuffer_readln EOL_CRLF: "); + + s = "Line with\rin the middle\nLine with good crlf\r\n\nfinal\n"; + evbuffer_add(evb, s, strlen(s)); + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF); + tt_line_eq("Line with\rin the middle"); + free(cp); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF); + tt_line_eq("Line with good crlf"); + free(cp); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF); + tt_line_eq(""); + free(cp); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF); + tt_line_eq("final"); + s = "x"; + evbuffer_add(evb, s, 1); + free(cp); + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF); + tt_assert(!cp); + + fprintf(stdout, "OK\n"); + + /* Test CRLF_STRICT */ + fprintf(stdout, "Testing evbuffer_readln CRLF_STRICT: "); + + s = " and a bad crlf\nand a good one\r\n\r\nMore\r"; + evbuffer_add(evb, s, strlen(s)); + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT); + tt_line_eq("x and a bad crlf\nand a good one"); + free(cp); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT); + tt_line_eq(""); + free(cp); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT); + tt_assert(!cp); + evbuffer_add(evb, "\n", 1); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT); + tt_line_eq("More"); + free(cp); + tt_assert(EVBUFFER_LENGTH(evb) == 0); + + s = "An internal CR\r is not an eol\r\nNor is a lack of one"; + evbuffer_add(evb, s, strlen(s)); + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT); + tt_line_eq("An internal CR\r is not an eol"); + free(cp); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT); + tt_assert(!cp); + + evbuffer_add(evb, "\r\n", 2); + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT); + tt_line_eq("Nor is a lack of one"); + free(cp); + tt_assert(EVBUFFER_LENGTH(evb) == 0); + + fprintf(stdout, "OK\n"); + + /* Test LF */ + fprintf(stdout, "Testing evbuffer_readln LF: "); + + s = "An\rand a nl\n\nText"; + evbuffer_add(evb, s, strlen(s)); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_LF); + tt_line_eq("An\rand a nl"); + free(cp); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_LF); + tt_line_eq(""); + free(cp); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_LF); + tt_assert(!cp); + free(cp); + evbuffer_add(evb, "\n", 1); + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_LF); + tt_line_eq("Text"); + free(cp); + + fprintf(stdout, "OK\n"); + + /* Test CRLF_STRICT - across boundaries */ + fprintf(stdout, + "Testing evbuffer_readln CRLF_STRICT across boundaries: "); + + s = " and a bad crlf\nand a good one\r"; + evbuffer_add(evb_tmp, s, strlen(s)); + evbuffer_add_buffer(evb, evb_tmp); + s = "\n\r"; + evbuffer_add(evb_tmp, s, strlen(s)); + evbuffer_add_buffer(evb, evb_tmp); + s = "\nMore\r"; + evbuffer_add(evb_tmp, s, strlen(s)); + evbuffer_add_buffer(evb, evb_tmp); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT); + tt_line_eq(" and a bad crlf\nand a good one"); + free(cp); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT); + tt_line_eq(""); + free(cp); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT); + tt_assert(!cp); + free(cp); + evbuffer_add(evb, "\n", 1); + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_CRLF_STRICT); + tt_line_eq("More"); + free(cp); cp = NULL; + if (EVBUFFER_LENGTH(evb) != 0) { + fprintf(stdout, "FAILED\n"); + exit(1); + } + + fprintf(stdout, "OK\n"); + + /* Test memory problem */ + fprintf(stdout, "Testing evbuffer_readln memory problem: "); + + s = "one line\ntwo line\nblue line"; + evbuffer_add(evb_tmp, s, strlen(s)); + evbuffer_add_buffer(evb, evb_tmp); + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_LF); + tt_line_eq("one line"); + free(cp); cp = NULL; + + cp = evbuffer_readln(evb, &sz, EVBUFFER_EOL_LF); + tt_line_eq("two line"); + free(cp); cp = NULL; + + fprintf(stdout, "OK\n"); + + test_ok = 1; + evbuffer_free(evb); + evbuffer_free(evb_tmp); + if (cp) free(cp); +} + +static void +test_evbuffer_find(void) +{ + u_char* p; + const char* test1 = "1234567890\r\n"; + const char* test2 = "1234567890\r"; +#define EVBUFFER_INITIAL_LENGTH 256 + char test3[EVBUFFER_INITIAL_LENGTH]; + unsigned int i; + struct evbuffer * buf = evbuffer_new(); + + /* make sure evbuffer_find doesn't match past the end of the buffer */ + fprintf(stdout, "Testing evbuffer_find 1: "); + evbuffer_add(buf, (u_char*)test1, strlen(test1)); + evbuffer_drain(buf, strlen(test1)); + evbuffer_add(buf, (u_char*)test2, strlen(test2)); + p = evbuffer_find(buf, (u_char*)"\r\n", 2); + if (p == NULL) { + fprintf(stdout, "OK\n"); + } else { + fprintf(stdout, "FAILED\n"); + exit(1); + } + + /* + * drain the buffer and do another find; in r309 this would + * read past the allocated buffer causing a valgrind error. + */ + fprintf(stdout, "Testing evbuffer_find 2: "); + evbuffer_drain(buf, strlen(test2)); + for (i = 0; i < EVBUFFER_INITIAL_LENGTH; ++i) + test3[i] = 'a'; + test3[EVBUFFER_INITIAL_LENGTH - 1] = 'x'; + evbuffer_add(buf, (u_char *)test3, EVBUFFER_INITIAL_LENGTH); + p = evbuffer_find(buf, (u_char *)"xy", 2); + if (p == NULL) { + printf("OK\n"); + } else { + fprintf(stdout, "FAILED\n"); + exit(1); + } + + /* simple test for match at end of allocated buffer */ + fprintf(stdout, "Testing evbuffer_find 3: "); + p = evbuffer_find(buf, (u_char *)"ax", 2); + if (p != NULL && strncmp((char*)p, "ax", 2) == 0) { + printf("OK\n"); + } else { + fprintf(stdout, "FAILED\n"); + exit(1); + } + + evbuffer_free(buf); +} + +/* + * simple bufferevent test + */ + +static void +readcb(struct bufferevent *bev, void *arg) +{ + if (EVBUFFER_LENGTH(bev->input) == 8333) { + bufferevent_disable(bev, EV_READ); + test_ok++; + } +} + +static void +writecb(struct bufferevent *bev, void *arg) +{ + if (EVBUFFER_LENGTH(bev->output) == 0) + test_ok++; +} + +static void +errorcb(struct bufferevent *bev, short what, void *arg) +{ + test_ok = -2; +} + +static void +test_bufferevent(void) +{ + struct bufferevent *bev1, *bev2; + char buffer[8333]; + int i; + + setup_test("Bufferevent: "); + + bev1 = bufferevent_new(pair[0], readcb, writecb, errorcb, NULL); + bev2 = bufferevent_new(pair[1], readcb, writecb, errorcb, NULL); + + bufferevent_disable(bev1, EV_READ); + bufferevent_enable(bev2, EV_READ); + + for (i = 0; i < sizeof(buffer); i++) + buffer[i] = i; + + bufferevent_write(bev1, buffer, sizeof(buffer)); + + event_dispatch(); + + bufferevent_free(bev1); + bufferevent_free(bev2); + + if (test_ok != 2) + test_ok = 0; + + cleanup_test(); +} + +/* + * test watermarks and bufferevent + */ + +static void +wm_readcb(struct bufferevent *bev, void *arg) +{ + int len = EVBUFFER_LENGTH(bev->input); + static int nread; + + assert(len >= 10 && len <= 20); + + evbuffer_drain(bev->input, len); + + nread += len; + if (nread == 65000) { + bufferevent_disable(bev, EV_READ); + test_ok++; + } +} + +static void +wm_writecb(struct bufferevent *bev, void *arg) +{ + if (EVBUFFER_LENGTH(bev->output) == 0) + test_ok++; +} + +static void +wm_errorcb(struct bufferevent *bev, short what, void *arg) +{ + test_ok = -2; +} + +static void +test_bufferevent_watermarks(void) +{ + struct bufferevent *bev1, *bev2; + char buffer[65000]; + int i; + + setup_test("Bufferevent Watermarks: "); + + bev1 = bufferevent_new(pair[0], NULL, wm_writecb, wm_errorcb, NULL); + bev2 = bufferevent_new(pair[1], wm_readcb, NULL, wm_errorcb, NULL); + + bufferevent_disable(bev1, EV_READ); + bufferevent_enable(bev2, EV_READ); + + for (i = 0; i < sizeof(buffer); i++) + buffer[i] = i; + + bufferevent_write(bev1, buffer, sizeof(buffer)); + + /* limit the reading on the receiving bufferevent */ + bufferevent_setwatermark(bev2, EV_READ, 10, 20); + + event_dispatch(); + + bufferevent_free(bev1); + bufferevent_free(bev2); + + if (test_ok != 2) + test_ok = 0; + + cleanup_test(); +} + +struct test_pri_event { + struct event ev; + int count; +}; + +static void +test_priorities_cb(int fd, short what, void *arg) +{ + struct test_pri_event *pri = arg; + struct timeval tv; + + if (pri->count == 3) { + event_loopexit(NULL); + return; + } + + pri->count++; + + evutil_timerclear(&tv); + event_add(&pri->ev, &tv); +} + +static void +test_priorities(int npriorities) +{ + char buf[32]; + struct test_pri_event one, two; + struct timeval tv; + + evutil_snprintf(buf, sizeof(buf), "Testing Priorities %d: ", npriorities); + setup_test(buf); + + event_base_priority_init(global_base, npriorities); + + memset(&one, 0, sizeof(one)); + memset(&two, 0, sizeof(two)); + + evtimer_set(&one.ev, test_priorities_cb, &one); + if (event_priority_set(&one.ev, 0) == -1) { + fprintf(stderr, "%s: failed to set priority", __func__); + exit(1); + } + + evtimer_set(&two.ev, test_priorities_cb, &two); + if (event_priority_set(&two.ev, npriorities - 1) == -1) { + fprintf(stderr, "%s: failed to set priority", __func__); + exit(1); + } + + evutil_timerclear(&tv); + + if (event_add(&one.ev, &tv) == -1) + exit(1); + if (event_add(&two.ev, &tv) == -1) + exit(1); + + event_dispatch(); + + event_del(&one.ev); + event_del(&two.ev); + + if (npriorities == 1) { + if (one.count == 3 && two.count == 3) + test_ok = 1; + } else if (npriorities == 2) { + /* Two is called once because event_loopexit is priority 1 */ + if (one.count == 3 && two.count == 1) + test_ok = 1; + } else { + if (one.count == 3 && two.count == 0) + test_ok = 1; + } + + cleanup_test(); +} + +static void +test_multiple_cb(int fd, short event, void *arg) +{ + if (event & EV_READ) + test_ok |= 1; + else if (event & EV_WRITE) + test_ok |= 2; +} + +static void +test_multiple_events_for_same_fd(void) +{ + struct event e1, e2; + + setup_test("Multiple events for same fd: "); + + event_set(&e1, pair[0], EV_READ, test_multiple_cb, NULL); + event_add(&e1, NULL); + event_set(&e2, pair[0], EV_WRITE, test_multiple_cb, NULL); + event_add(&e2, NULL); + event_loop(EVLOOP_ONCE); + event_del(&e2); + write(pair[1], TEST1, strlen(TEST1)+1); + event_loop(EVLOOP_ONCE); + event_del(&e1); + + if (test_ok != 3) + test_ok = 0; + + cleanup_test(); +} + +int evtag_decode_int(uint32_t *pnumber, struct evbuffer *evbuf); +int evtag_encode_tag(struct evbuffer *evbuf, uint32_t number); +int evtag_decode_tag(uint32_t *pnumber, struct evbuffer *evbuf); + +static void +read_once_cb(int fd, short event, void *arg) +{ + char buf[256]; + int len; + + len = read(fd, buf, sizeof(buf)); + + if (called) { + test_ok = 0; + } else if (len) { + /* Assumes global pair[0] can be used for writing */ + write(pair[0], TEST1, strlen(TEST1)+1); + test_ok = 1; + } + + called++; +} + +static void +test_want_only_once(void) +{ + struct event ev; + struct timeval tv; + + /* Very simple read test */ + setup_test("Want read only once: "); + + write(pair[0], TEST1, strlen(TEST1)+1); + + /* Setup the loop termination */ + evutil_timerclear(&tv); + tv.tv_sec = 1; + event_loopexit(&tv); + + event_set(&ev, pair[1], EV_READ, read_once_cb, &ev); + if (event_add(&ev, NULL) == -1) + exit(1); + event_dispatch(); + + cleanup_test(); +} + +#define TEST_MAX_INT 6 + +static void +evtag_int_test(void) +{ + struct evbuffer *tmp = evbuffer_new(); + uint32_t integers[TEST_MAX_INT] = { + 0xaf0, 0x1000, 0x1, 0xdeadbeef, 0x00, 0xbef000 + }; + uint32_t integer; + int i; + + for (i = 0; i < TEST_MAX_INT; i++) { + int oldlen, newlen; + oldlen = EVBUFFER_LENGTH(tmp); + encode_int(tmp, integers[i]); + newlen = EVBUFFER_LENGTH(tmp); + fprintf(stdout, "\t\tencoded 0x%08x with %d bytes\n", + integers[i], newlen - oldlen); + } + + for (i = 0; i < TEST_MAX_INT; i++) { + if (evtag_decode_int(&integer, tmp) == -1) { + fprintf(stderr, "decode %d failed", i); + exit(1); + } + if (integer != integers[i]) { + fprintf(stderr, "got %x, wanted %x", + integer, integers[i]); + exit(1); + } + } + + if (EVBUFFER_LENGTH(tmp) != 0) { + fprintf(stderr, "trailing data"); + exit(1); + } + evbuffer_free(tmp); + + fprintf(stdout, "\t%s: OK\n", __func__); +} + +static void +evtag_fuzz(void) +{ + u_char buffer[4096]; + struct evbuffer *tmp = evbuffer_new(); + struct timeval tv; + int i, j; + + int not_failed = 0; + for (j = 0; j < 100; j++) { + for (i = 0; i < sizeof(buffer); i++) + buffer[i] = rand(); + evbuffer_drain(tmp, -1); + evbuffer_add(tmp, buffer, sizeof(buffer)); + + if (evtag_unmarshal_timeval(tmp, 0, &tv) != -1) + not_failed++; + } + + /* The majority of decodes should fail */ + if (not_failed >= 10) { + fprintf(stderr, "evtag_unmarshal should have failed"); + exit(1); + } + + /* Now insert some corruption into the tag length field */ + evbuffer_drain(tmp, -1); + evutil_timerclear(&tv); + tv.tv_sec = 1; + evtag_marshal_timeval(tmp, 0, &tv); + evbuffer_add(tmp, buffer, sizeof(buffer)); + + EVBUFFER_DATA(tmp)[1] = 0xff; + if (evtag_unmarshal_timeval(tmp, 0, &tv) != -1) { + fprintf(stderr, "evtag_unmarshal_timeval should have failed"); + exit(1); + } + + evbuffer_free(tmp); + + fprintf(stdout, "\t%s: OK\n", __func__); +} + +static void +evtag_tag_encoding(void) +{ + struct evbuffer *tmp = evbuffer_new(); + uint32_t integers[TEST_MAX_INT] = { + 0xaf0, 0x1000, 0x1, 0xdeadbeef, 0x00, 0xbef000 + }; + uint32_t integer; + int i; + + for (i = 0; i < TEST_MAX_INT; i++) { + int oldlen, newlen; + oldlen = EVBUFFER_LENGTH(tmp); + evtag_encode_tag(tmp, integers[i]); + newlen = EVBUFFER_LENGTH(tmp); + fprintf(stdout, "\t\tencoded 0x%08x with %d bytes\n", + integers[i], newlen - oldlen); + } + + for (i = 0; i < TEST_MAX_INT; i++) { + if (evtag_decode_tag(&integer, tmp) == -1) { + fprintf(stderr, "decode %d failed", i); + exit(1); + } + if (integer != integers[i]) { + fprintf(stderr, "got %x, wanted %x", + integer, integers[i]); + exit(1); + } + } + + if (EVBUFFER_LENGTH(tmp) != 0) { + fprintf(stderr, "trailing data"); + exit(1); + } + evbuffer_free(tmp); + + fprintf(stdout, "\t%s: OK\n", __func__); +} + +static void +evtag_test(void) +{ + fprintf(stdout, "Testing Tagging:\n"); + + evtag_init(); + evtag_int_test(); + evtag_fuzz(); + + evtag_tag_encoding(); + + fprintf(stdout, "OK\n"); +} + +#if 0 +#ifndef WIN32 +static void +rpc_test(void) +{ + struct msg *msg, *msg2; + struct kill *attack; + struct run *run; + struct evbuffer *tmp = evbuffer_new(); + struct timeval tv_start, tv_end; + uint32_t tag; + int i; + + fprintf(stdout, "Testing RPC: "); + + msg = msg_new(); + EVTAG_ASSIGN(msg, from_name, "niels"); + EVTAG_ASSIGN(msg, to_name, "phoenix"); + + if (EVTAG_GET(msg, attack, &attack) == -1) { + fprintf(stderr, "Failed to set kill message.\n"); + exit(1); + } + + EVTAG_ASSIGN(attack, weapon, "feather"); + EVTAG_ASSIGN(attack, action, "tickle"); + + evutil_gettimeofday(&tv_start, NULL); + for (i = 0; i < 1000; ++i) { + run = EVTAG_ADD(msg, run); + if (run == NULL) { + fprintf(stderr, "Failed to add run message.\n"); + exit(1); + } + EVTAG_ASSIGN(run, how, "very fast but with some data in it"); + EVTAG_ASSIGN(run, fixed_bytes, + (unsigned char*)"012345678901234567890123"); + } + + if (msg_complete(msg) == -1) { + fprintf(stderr, "Failed to make complete message.\n"); + exit(1); + } + + evtag_marshal_msg(tmp, 0xdeaf, msg); + + if (evtag_peek(tmp, &tag) == -1) { + fprintf(stderr, "Failed to peak tag.\n"); + exit (1); + } + + if (tag != 0xdeaf) { + fprintf(stderr, "Got incorrect tag: %0x.\n", tag); + exit (1); + } + + msg2 = msg_new(); + if (evtag_unmarshal_msg(tmp, 0xdeaf, msg2) == -1) { + fprintf(stderr, "Failed to unmarshal message.\n"); + exit(1); + } + + evutil_gettimeofday(&tv_end, NULL); + evutil_timersub(&tv_end, &tv_start, &tv_end); + fprintf(stderr, "(%.1f us/add) ", + (float)tv_end.tv_sec/(float)i * 1000000.0 + + tv_end.tv_usec / (float)i); + + if (!EVTAG_HAS(msg2, from_name) || + !EVTAG_HAS(msg2, to_name) || + !EVTAG_HAS(msg2, attack)) { + fprintf(stderr, "Missing data structures.\n"); + exit(1); + } + + if (EVTAG_LEN(msg2, run) != i) { + fprintf(stderr, "Wrong number of run messages.\n"); + exit(1); + } + + msg_free(msg); + msg_free(msg2); + + evbuffer_free(tmp); + + fprintf(stdout, "OK\n"); +} +#endif +#endif + +static void +test_evutil_strtoll(void) +{ + const char *s; + char *endptr; + setup_test("evutil_stroll: "); + test_ok = 0; + + if (evutil_strtoll("5000000000", NULL, 10) != ((ev_int64_t)5000000)*1000) + goto err; + if (evutil_strtoll("-5000000000", NULL, 10) != ((ev_int64_t)5000000)*-1000) + goto err; + s = " 99999stuff"; + if (evutil_strtoll(s, &endptr, 10) != (ev_int64_t)99999) + goto err; + if (endptr != s+6) + goto err; + if (evutil_strtoll("foo", NULL, 10) != 0) + goto err; + + test_ok = 1; + err: + cleanup_test(); +} + + +int +main (int argc, char **argv) +{ +#ifdef WIN32 + WORD wVersionRequested; + WSADATA wsaData; + int err; + + wVersionRequested = MAKEWORD( 2, 2 ); + + err = WSAStartup( wVersionRequested, &wsaData ); +#endif + +#ifndef WIN32 + if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) + return (1); +#endif + setvbuf(stdout, NULL, _IONBF, 0); + + /* Initalize the event library */ + global_base = event_init(); + + test_registerfds(); + + test_evutil_strtoll(); + + /* use the global event base and need to be called first */ + test_priorities(1); + test_priorities(2); + test_priorities(3); + + test_evbuffer(); + test_evbuffer_find(); + test_evbuffer_readln(); + + test_bufferevent(); + test_bufferevent_watermarks(); + + test_free_active_base(); + global_base = event_init(); + + test_event_base_new(); + + +#if 0 + http_suite(); +#endif + +#if 0 +#ifndef WIN32 + rpc_suite(); +#endif +#endif + +#if 0 + dns_suite(); +#endif + +#ifndef WIN32 + test_fork(); +#endif + + test_simpleread(); + + test_simplewrite(); + + test_multiple(); + + test_persistent(); + + test_combined(); + + test_simpletimeout(); +#ifndef WIN32 + test_simplesignal(); + test_multiplesignal(); + test_immediatesignal(); +#endif + test_loopexit(); + test_loopbreak(); + + test_loopexit_multiple(); + + test_multiple_events_for_same_fd(); + + test_want_only_once(); + + evtag_test(); + +#if 0 + rpc_test(); +#endif + + test_signal_dealloc(); + test_signal_pipeloss(); + test_signal_switchbase(); + test_signal_restore(); + test_signal_assert(); + test_signal_while_processing(); + + return (0); +} + diff --git a/src/regress/lib/libevent/obj b/src/regress/lib/libevent/obj new file mode 120000 index 000000000..96f370e86 --- /dev/null +++ b/src/regress/lib/libevent/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libevent \ No newline at end of file diff --git a/src/regress/lib/libevent/test-eof.c b/src/regress/lib/libevent/test-eof.c new file mode 100644 index 000000000..3264a7b7c --- /dev/null +++ b/src/regress/lib/libevent/test-eof.c @@ -0,0 +1,86 @@ +/* + * Compile with: + * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + + +#ifdef WIN32 +#include +#endif +#include +#include +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H +#include +#endif +#include + +#include +#include + +int test_okay = 1; +int called = 0; + +static void +read_cb(int fd, short event, void *arg) +{ + char buf[256]; + int len; + + len = recv(fd, buf, sizeof(buf), 0); + + printf("%s: read %d%s\n", __func__, + len, len ? "" : " - means EOF"); + + if (len) { + if (!called) + event_add(arg, NULL); + } else if (called == 1) + test_okay = 0; + + called++; +} + +#ifndef SHUT_WR +#define SHUT_WR 1 +#endif + +int +main (int argc, char **argv) +{ + struct event ev; + const char *test = "test string"; + int pair[2]; + + if (evutil_socketpair(AF_UNIX, SOCK_STREAM, 0, pair) == -1) + return (1); + + + send(pair[0], test, strlen(test)+1, 0); + shutdown(pair[0], SHUT_WR); + + /* Initalize the event library */ + event_init(); + + /* Initalize one event */ + event_set(&ev, pair[1], EV_READ, read_cb, &ev); + + event_add(&ev, NULL); + + event_dispatch(); + + return (test_okay); +} + diff --git a/src/regress/lib/libevent/test-init.c b/src/regress/lib/libevent/test-init.c new file mode 100644 index 000000000..d60aa36bd --- /dev/null +++ b/src/regress/lib/libevent/test-init.c @@ -0,0 +1,40 @@ +/* + * Compile with: + * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef WIN32 +#include +#endif + +#include +#include +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H +#include +#endif +#include + +#include + +int +main(int argc, char **argv) +{ + /* Initalize the event library */ + event_init(); + + return (0); +} + diff --git a/src/regress/lib/libevent/test-time.c b/src/regress/lib/libevent/test-time.c new file mode 100644 index 000000000..703bc32b5 --- /dev/null +++ b/src/regress/lib/libevent/test-time.c @@ -0,0 +1,89 @@ +/* + * Compile with: + * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef WIN32 +#include +#endif + +#include +#include +#ifdef HAVE_SYS_TIME_H +#include +#endif +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H +#include +#endif +#include + +#include + +int called = 0; + +#define NEVENT 20000 + +struct event *ev[NEVENT]; + +static int +rand_int(int n) +{ +#ifdef WIN32 + return (int)(rand() * n); +#else + return (int)(random() % n); +#endif +} + +static void +time_cb(int fd, short event, void *arg) +{ + struct timeval tv; + int i, j; + + called++; + + if (called < 10*NEVENT) { + for (i = 0; i < 10; i++) { + j = rand_int(NEVENT); + tv.tv_sec = 0; + tv.tv_usec = rand_int(50000); + if (tv.tv_usec % 2) + evtimer_add(ev[j], &tv); + else + evtimer_del(ev[j]); + } + } +} + +int +main (int argc, char **argv) +{ + struct timeval tv; + int i; + + /* Initalize the event library */ + event_init(); + + for (i = 0; i < NEVENT; i++) { + ev[i] = malloc(sizeof(struct event)); + + /* Initalize one event */ + evtimer_set(ev[i], time_cb, ev[i]); + tv.tv_sec = 0; + tv.tv_usec = rand_int(50000); + evtimer_add(ev[i], &tv); + } + + event_dispatch(); + + return (called < NEVENT); +} + diff --git a/src/regress/lib/libevent/test-weof.c b/src/regress/lib/libevent/test-weof.c new file mode 100644 index 000000000..7fd6c8b1f --- /dev/null +++ b/src/regress/lib/libevent/test-weof.c @@ -0,0 +1,84 @@ +/* + * Compile with: + * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + + +#ifdef WIN32 +#include +#endif +#include +#include +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#include +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H +#include +#endif +#include + +#include +#include + +int pair[2]; +int test_okay = 1; +int called = 0; + +static void +write_cb(int fd, short event, void *arg) +{ + const char *test = "test string"; + int len; + + len = send(fd, test, strlen(test) + 1, 0); + + printf("%s: write %d%s\n", __func__, + len, len ? "" : " - means EOF"); + + if (len > 0) { + if (!called) + event_add(arg, NULL); + EVUTIL_CLOSESOCKET(pair[0]); + } else if (called == 1) + test_okay = 0; + + called++; +} + +int +main (int argc, char **argv) +{ + struct event ev; + +#ifndef WIN32 + if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) + return (1); +#endif + + if (evutil_socketpair(AF_UNIX, SOCK_STREAM, 0, pair) == -1) + return (1); + + /* Initalize the event library */ + event_init(); + + /* Initalize one event */ + event_set(&ev, pair[1], EV_WRITE, write_cb, &ev); + + event_add(&ev, NULL); + + event_dispatch(); + + return (test_okay); +} + diff --git a/src/regress/lib/libm/CVS/Entries b/src/regress/lib/libm/CVS/Entries new file mode 100644 index 000000000..08cf2c7ae --- /dev/null +++ b/src/regress/lib/libm/CVS/Entries @@ -0,0 +1,8 @@ +/Makefile/1.9/Thu Apr 9 01:26:41 2009// +D/exp//// +D/floor//// +D/fpaccuracy//// +D/rint//// +D/tgamma//// +D/toint//// +D/trivial1//// diff --git a/src/regress/lib/libm/CVS/Repository b/src/regress/lib/libm/CVS/Repository new file mode 100644 index 000000000..7b9d9025c --- /dev/null +++ b/src/regress/lib/libm/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libm diff --git a/src/regress/lib/libm/CVS/Root b/src/regress/lib/libm/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libm/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libm/Makefile b/src/regress/lib/libm/Makefile new file mode 100644 index 000000000..71f6abaf5 --- /dev/null +++ b/src/regress/lib/libm/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.9 2009/04/09 01:26:41 martynas Exp $ + +SUBDIR+= exp floor fpaccuracy rint tgamma toint trivial1 + +install: + +.include diff --git a/src/regress/lib/libm/exp/CVS/Entries b/src/regress/lib/libm/exp/CVS/Entries new file mode 100644 index 000000000..40c277caa --- /dev/null +++ b/src/regress/lib/libm/exp/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Mar 15 21:44:06 2006// +/exp.c/1.1/Wed Mar 15 21:44:06 2006// +D diff --git a/src/regress/lib/libm/exp/CVS/Repository b/src/regress/lib/libm/exp/CVS/Repository new file mode 100644 index 000000000..57359de33 --- /dev/null +++ b/src/regress/lib/libm/exp/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libm/exp diff --git a/src/regress/lib/libm/exp/CVS/Root b/src/regress/lib/libm/exp/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libm/exp/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libm/exp/Makefile b/src/regress/lib/libm/exp/Makefile new file mode 100644 index 000000000..ebfd5904d --- /dev/null +++ b/src/regress/lib/libm/exp/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1 2006/03/15 21:44:06 otto Exp $ + +PROG=exp + +LDADD=-lm +DPADD=${LIBM} + +.include diff --git a/src/regress/lib/libm/exp/exp.c b/src/regress/lib/libm/exp/exp.c new file mode 100644 index 000000000..0d8ee8979 --- /dev/null +++ b/src/regress/lib/libm/exp/exp.c @@ -0,0 +1,28 @@ +/* $OpenBSD: exp.c,v 1.1 2006/03/15 21:44:06 otto Exp $ */ + +/* Written by Otto Moerbeek, 2006, Public domain. */ + +#include +#include + +int +main(void) +{ + double rd, bigd = HUGE_VAL; + float rf, bigf = HUGE_VAL; + + rd = exp(bigd); + if (!isinf(rd)) + errx(1, "exp(bigd) = %f", rd); + rd = exp(-bigd); + if (rd != 0.0) + errx(1, "exp(-bigd) = %f", rd); + + rf = expf(bigf); + if (!isinff(rf)) + errx(1, "exp(bigf) = %f", rf); + rf = expf(-bigf); + if (rf != 0.0F) + errx(1, "exp(-bigf) = %f", rf); + return (0); +} diff --git a/src/regress/lib/libm/exp/obj b/src/regress/lib/libm/exp/obj new file mode 120000 index 000000000..7050b2dc4 --- /dev/null +++ b/src/regress/lib/libm/exp/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libm/exp \ No newline at end of file diff --git a/src/regress/lib/libm/floor/CVS/Entries b/src/regress/lib/libm/floor/CVS/Entries new file mode 100644 index 000000000..496f91bfb --- /dev/null +++ b/src/regress/lib/libm/floor/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Nov 1 00:50:44 2003// +/floor.c/1.1/Sat Nov 1 00:50:44 2003// +D diff --git a/src/regress/lib/libm/floor/CVS/Repository b/src/regress/lib/libm/floor/CVS/Repository new file mode 100644 index 000000000..089d6eaef --- /dev/null +++ b/src/regress/lib/libm/floor/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libm/floor diff --git a/src/regress/lib/libm/floor/CVS/Root b/src/regress/lib/libm/floor/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libm/floor/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libm/floor/Makefile b/src/regress/lib/libm/floor/Makefile new file mode 100644 index 000000000..37340dcae --- /dev/null +++ b/src/regress/lib/libm/floor/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.1 2003/11/01 00:50:44 mickey Exp $ + +PROG=floor +LDADD=-lm +DPADD=${LIBM} + +.include diff --git a/src/regress/lib/libm/floor/floor.c b/src/regress/lib/libm/floor/floor.c new file mode 100644 index 000000000..239683f28 --- /dev/null +++ b/src/regress/lib/libm/floor/floor.c @@ -0,0 +1,39 @@ +/* $OpenBSD: floor.c,v 1.1 2003/11/01 00:50:44 mickey Exp $ */ + +/* Written by Michael Shalayeff, 2003, Public domain. */ + +#include +#include +#include +#include +#include +#include + +static void +sigfpe(int sig, siginfo_t *si, void *v) +{ + char buf[132]; + + if (si) { + snprintf(buf, sizeof(buf), "sigfpe: addr=%p, code=%d\n", + si->si_addr, si->si_code); + write(1, buf, strlen(buf)); + } + _exit(1); +} + +int +main(int argc, char *argv[]) +{ + struct sigaction sa; + + memset(&sa, 0, sizeof(sa)); + sa.sa_sigaction = sigfpe; + sa.sa_flags = SA_SIGINFO; + sigaction(SIGFPE, &sa, NULL); + + if (floor(4294967295.7) != 4294967295.) + exit(1); + + exit(0); +} diff --git a/src/regress/lib/libm/floor/obj b/src/regress/lib/libm/floor/obj new file mode 120000 index 000000000..fc7958fc1 --- /dev/null +++ b/src/regress/lib/libm/floor/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libm/floor \ No newline at end of file diff --git a/src/regress/lib/libm/fpaccuracy/CVS/Entries b/src/regress/lib/libm/fpaccuracy/CVS/Entries new file mode 100644 index 000000000..fa52d56b2 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/CVS/Entries @@ -0,0 +1,34 @@ +/Gamma.c/1.1/Thu Apr 9 01:24:43 2009// +/INV.c/1.1/Thu Apr 9 01:24:43 2009// +/Makefile/1.1/Thu Apr 9 01:24:43 2009// +/Pix.c/1.1/Thu Apr 9 01:24:43 2009// +/acos.c/1.1/Thu Apr 9 01:24:43 2009// +/acosh.c/1.1/Thu Apr 9 01:24:43 2009// +/asin.c/1.1/Thu Apr 9 01:24:43 2009// +/asinh.c/1.1/Thu Apr 9 01:24:43 2009// +/atan.c/1.1/Thu Apr 9 01:24:43 2009// +/atanh.c/1.1/Thu Apr 9 01:24:43 2009// +/cos.c/1.1/Thu Apr 9 01:24:43 2009// +/cosh.c/1.1/Thu Apr 9 01:24:43 2009// +/erf.c/1.1/Thu Apr 9 01:24:43 2009// +/erfc.c/1.1/Thu Apr 9 01:24:43 2009// +/exp.c/1.1/Thu Apr 9 01:24:43 2009// +/fpaccuracy.c/1.1/Thu Apr 9 01:24:43 2009// +/fpaccuracy.h/1.1/Thu Apr 9 01:24:43 2009// +/header.h/1.1/Thu Apr 9 01:24:43 2009// +/j0.c/1.1/Thu Apr 9 01:24:43 2009// +/j1.c/1.1/Thu Apr 9 01:24:43 2009// +/lgamma.c/1.1/Thu Apr 9 01:24:43 2009// +/log.c/1.1/Thu Apr 9 01:24:43 2009// +/log10.c/1.1/Thu Apr 9 01:24:43 2009// +/pow2_x.c/1.1/Thu Apr 9 01:24:43 2009// +/powx_275.c/1.1/Thu Apr 9 01:24:43 2009// +/sin.c/1.1/Thu Apr 9 01:24:43 2009// +/sinh.c/1.1/Thu Apr 9 01:24:43 2009// +/sqrt.c/1.1/Thu Apr 9 01:24:43 2009// +/tan.c/1.1/Thu Apr 9 01:24:43 2009// +/tanh.c/1.1/Thu Apr 9 01:24:43 2009// +/trailer.h/1.1/Thu Apr 9 01:24:43 2009// +/y0.c/1.1/Thu Apr 9 01:24:43 2009// +/y1.c/1.1/Thu Apr 9 01:24:43 2009// +D diff --git a/src/regress/lib/libm/fpaccuracy/CVS/Repository b/src/regress/lib/libm/fpaccuracy/CVS/Repository new file mode 100644 index 000000000..904d85090 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libm/fpaccuracy diff --git a/src/regress/lib/libm/fpaccuracy/CVS/Root b/src/regress/lib/libm/fpaccuracy/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libm/fpaccuracy/Gamma.c b/src/regress/lib/libm/fpaccuracy/Gamma.c new file mode 100644 index 000000000..56c26ab03 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/Gamma.c @@ -0,0 +1,1611 @@ +/* $OpenBSD: Gamma.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:34:22. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1575 +#define F Gamma +#define Fs "Gamma" +#define Fn fpaccuracy_Gamma + /* 7 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -9006975766953817.,4503599782335386.,-.165909509306689863425,-50,55, + -9006975766950283.,4503599711150482.,.058647544095066217376,-50,55, + -9006975766946160.,4503599628101430.,.499339654884418859858,-50,55, + -9006975766946137.,4503599627638145.,-.493973132431544616138,-50,55, + -9006975766946124.,4503599627376287.,.205500951056902375259,-50,55, + -9006975766946123.,9007199254712289.,-.327538022950629076291,-50,56, + -9006975766946122.,9007199254672003.,-.066077587496541319949,-50,56, + -9006975766937172.,9007198894114657.,.445649906089996690062,-50,56, + -9006975766904471.,9007197576731020.,-.255219489877336858041,-50,56, + -8787764928623999.,4525746181089650.,.499812249694538444312,-51,53, + -8787764928622433.,4525746181063039.,.499686505655961802605,-51,53, + -8787764928622432.,4525746181063023.,-.493289308869585997072,-51,53, + -8787764928622391.,4525746181062326.,-.205297704278782667136,-51,53, + -8787764928618162.,4525746180990462.,.499984131343262975424,-51,53, + -8787764928570612.,4525746180182447.,-.499782409036201250587,-51,53, + -8567486922694175.,5473024246066011.,-.469182675871536836136,-51,54, + -8567486922694168.,5473024246065959.,.490127988382703164396,-51,54, + -8567486922694120.,5473024246065609.,.496829686180983704151,-51,54, + -8567486922694096.,5473024246065435.,-.499819464883928038704,-51,54, + -8567486922692007.,5473024246050203.,-.499822563665629766224,-51,54, + -8567486922610536.,5473024245456155.,-.499801793631530937154,-51,54, + -8567486922577112.,5473024245212443.,-.499713382964991048053,-51,54, + -8532219487169212.,5239935512739282.,-.499947513810664626600,-51,54, + -8532219487126104.,5239935512481742.,.499994664172565488061,-51,54, + -8532219487114948.,5239935512415094.,-.499824573845822196227,-51,54, + -8532219487114637.,5239935512413236.,-.499012734141955079410,-51,54, + -8532219487114598.,5239935512413003.,-.495695493564476815710,-51,54, + -8532219487114522.,5239935512412548.,.459486821553493881800,-51,54, + -8532219487114520.,5239935512412537.,-.489061012256576679175,-51,54, + -8532219487113743.,5239935512407895.,-.499894437324987145185,-51,54, + -8532219487112538.,5239935512400696.,-.499964252134867839488,-51,54, + -8454022241351303.,4861922272409608.,-.499985179771822461804,-51,54, + -8454022241314167.,4861922272267026.,.498913493527112182901,-51,54, + -8454022241314030.,4861922272266500.,.497266876479243501700,-51,54, + -8454022241314024.,4861922272266477.,.460698411508596548659,-51,54, + -8454022241313675.,4861922272265138.,-.499700632904774861719,-51,54, + -8454022241313046.,4861922272262723.,-.499961367993484000319,-51,54, + -8454022241289966.,4861922272174109.,-.499983520844708972756,-51,54, + -8261235592156986.,8891405556875581.,.499999270986404991689,-51,55, + -8261235592143297.,8891405556853365.,.499960153480572664167,-51,55, + -8261235592143000.,8891405556852883.,.496014579635246565253,-51,55, + -8261235592142939.,8891405556852784.,.498571212869036142196,-51,55, + -7999612650152607.,4583829140061488.,-.499994689432467844951,-51,54, + -7999612650132474.,4583829140097493.,-.499980894829830803015,-51,54, + -7999612650123747.,4583829140113099.,.495258008475234767303,-51,54, + -7999612650123700.,4583829140113184.,-.451943063392359642790,-51,54, + -7999612650123695.,4583829140113192.,.489844056622979969133,-51,54, + -7999612650123610.,4583829140113345.,-.499774903079352712245,-51,54, + -7999612650114557.,4583829140129534.,.499984999590984005695,-51,54, + -7983592410865269.,4613721479760075.,-.499999990479368085427,-51,54, + -7983592410851539.,4613721479786762.,.496659558749736255327,-51,54, + -7983592410851503.,4613721479786832.,.472470176155411531270,-51,54, + -7983592410851486.,4613721479786866.,-.483397032287511214310,-51,54, + -7983592410851379.,4613721479787074.,-.499737697128212662318,-51,54, + -7983592410849725.,4613721479790289.,-.499994315123496906885,-51,54, + -7935921591115811.,4717637240688719.,-.499963329155696727091,-51,54, + -7935921591057323.,4717637240830249.,-.499983471935830513553,-51,54, + -7935921591046754.,4717637240855823.,.499503702016077780958,-51,54, + -7935921591046742.,4717637240855853.,-.462744963613293394379,-51,54, + -7935921591046542.,4717637240856336.,.499777276114429257884,-51,54, + -7935921591046330.,4717637240856850.,-.499949149326665713813,-51,54, + -7318770392321303.,4826087249279983.,-.445205134887098219470,-51,53, + -7318770392321296.,4826087249280050.,-.494522915286379831048,-51,53, + -7318770392321133.,4826087249281608.,.499934484506606931199,-51,53, + -7318770392292989.,4826087249550789.,-.499995009300168772689,-51,53, + -7318770392285953.,4826087249618084.,-.499972745621357605244,-51,53, + -7104888953234444.,8255620415516838.,-.499920954261744455138,-51,53, + -7104888953214615.,8255620416041967.,-.499996196180084276344,-51,53, + -7104888953202262.,8255620416369109.,.499483968642958881787,-51,53, + -7104888953202233.,8255620416369878.,-.497036287603969250855,-51,53, + -7104888953202204.,8255620416370646.,-.493556543718253622376,-51,53, + -7104888953202200.,8255620416370751.,.437957903724668495505,-51,53, + -7104888953201970.,8255620416376843.,-.499961364063024813413,-51,53, + -7079054564210276.,8996636548064398.,-.499989822757264492549,-51,53, + -7079054564198979.,8996636548415281.,.499974046206275903433,-51,53, + -7079054564197611.,8996636548457771.,.480674233851868359219,-51,53, + -7079054564197594.,8996636548458299.,.499440247295021227770,-51,53, + -7079054564197327.,8996636548466593.,-.499940592857858049178,-51,53, + -7079054564163436.,8996636549519245.,-.499885697810396011468,-51,53, + -7070269942068926.,4638684064675705.,.498845772750962841793,-51,52, + -7070269942068844.,4638684064677054.,-.441992712743076341411,-51,52, + -7070269942068843.,4638684064677070.,-.002246840610475747874,-51,52, + -7070269942068835.,4638684064677202.,-.484279863545785497753,-51,52, + -7070269942068785.,4638684064678024.,-.496986256734972055368,-51,52, + -7070269942068619.,4638684064680753.,-.499171480188091516991,-51,52, + -7070269942066727.,4638684064711857.,-.499981166286158871188,-51,52, + -7070269942017303.,4638684065524375.,-.499853771695823132823,-51,52, + -7033805263259288.,5319333224023844.,.499063439076221235209,-51,52, + -7033805263259223.,5319333224025221.,.491851179648837534801,-51,52, + -7033805263259185.,5319333224026027.,-.496980602479819549180,-51,52, + -7033805263259017.,5319333224029585.,.499763100286993817449,-51,52, + -7033805263257494.,5319333224061850.,-.499994678763944207440,-51,52, + -7033805263220335.,5319333224849045.,-.499881919401011871977,-51,52, + -6989023373138971.,6454801558582690.,-.499959836672420107337,-51,52, + -6989023373136928.,6454801558644649.,-.443143159624202218943,-51,52, + -6989023373136919.,6454801558644922.,-.495756299571985944400,-51,52, + -6989023373136861.,6454801558646680.,.498514576834351776944,-51,52, + -6989023373136348.,6454801558662238.,.499565643125108105304,-51,52, + -6989023373136177.,6454801558667424.,.499916014034497736606,-51,52, + -6989023373121865.,6454801559101472.,-.499971709455248282353,-51,52, + -6704453698402744.,-8539781053597143.,-.498115102915360944899,-51,50, + -6704453698402734.,-8539781053595517.,-.464650030244968426951,-51,50, + -6704453698402386.,-8539781053538932.,.499934100550912920146,-51,50, + -6704453698401370.,-8539781053373727.,.499979892809784025934,-51,50, + -6704453698362404.,-8539781047037725.,.494788917130877225594,-51,50, + -6676877748512274.,-5632553004994357.,.499980501022219557253,-51,50, + -6676877748507523.,-5632553004669730.,.499982531084256229180,-51,50, + -6676877748507395.,-5632553004660983.,-.497913139310400379565,-51,50, + -6676877748507139.,-5632553004643491.,-.493704565907596233426,-51,50, + -6436965607955267.,-6534245612969624.,.498710432748119237295,-51,52, + -6436965607809097.,-6534245610685614.,.499964786503179013595,-51,52, + -6436965607802757.,-6534245610586546.,-.499963561644056668135,-51,52, + -6436965607800820.,-6534245610556280.,.499899752331748162418,-51,52, + -6436965607800291.,-6534245610548013.,-.499621383767914473251,-51,52, + -6436965607800160.,-6534245610545967.,.468361090240717097078,-51,52, + -6436965607800144.,-6534245610545717.,.479717728163107178056,-51,52, + -6436965607800120.,-6534245610545342.,.496752684995889979793,-51,52, + -6198632597785141.,-4548592586026255.,-.499960521413211114903,-51,52, + -6198632597783838.,-4548592586020957.,-.499824042190251613055,-51,52, + -6198632597782535.,-4548592586015659.,-.499687599264526405828,-51,52, + -6198632597782338.,-4548592586014858.,-.497364594551905043730,-51,52, + -6198632597782232.,-4548592586014428.,.498809204594811637728,-51,52, + -6198632597777823.,-4548592585996500.,-.499961947461189199949,-51,52, + -6198632597616827.,-4548592585341891.,.499717018477259861703,-51,52, + -6095089651952909.,-8452837910841520.,.499976272268286823881,-51,53, + -6095089651950949.,-8452837910832566.,-.499012269803272239970,-51,53, + -6095089651950521.,-8452837910830611.,-.455934271817918641788,-51,53, + -6095089651950507.,-8452837910830548.,.494072952328934397020,-51,53, + -6095089651950389.,-8452837910830008.,-.498723301507707496744,-51,53, + -6095089651939027.,-8452837910778109.,.499994912240701269429,-51,53, + -5543628548527250.,-8942373178906406.,.499982028308333351436,-51,53, + -5543628548487634.,-8942373179137460.,-.499978047147781916083,-51,53, + -5543628548487461.,-8942373179138469.,-.499245917172840682014,-51,53, + -5543628548487354.,-8942373179139094.,.437623087759113928607,-51,53, + -5543628548487324.,-8942373179139269.,.466651780687798074027,-51,53, + -5543628548487288.,-8942373179139478.,-.498513787822576860666,-51,53, + -5543628548468515.,-8942373179248969.,-.499995740708484229629,-51,53, + -5144474452550338.,-6870936806860475.,.499916299183777310895,-51,52, + -5144474452499736.,-6870936807409013.,.499982823839253351052,-51,52, + -5144474452489871.,-6870936807515952.,.498166163774815077787,-51,52, + -5144474452489733.,-6870936807517447.,-.455432514589589361570,-51,52, + -5144474452489727.,-6870936807517512.,-.496893326709074444380,-51,52, + -5144474452489220.,-6870936807523009.,.499668044171762827193,-51,52, + -5144474452488400.,-6870936807531897.,-.499976307961293075952,-51,52, + -5012999668843285.,-8715068799494526.,.499949265661639104999,-51,52, + -5012999668810105.,-8715068800092727.,-.499819935579589567243,-51,52, + -5012999668808967.,-8715068800113244.,-.494268004821713071627,-51,52, + -5012999668808691.,-8715068800118220.,-.496436444282082896504,-51,52, + -5012999668808277.,-8715068800125684.,-.499689114403936241166,-51,52, + -5012999668804552.,-8715068800192842.,-.499970371552280239099,-51,52, + -5012999668797171.,-8715068800325914.,-.499993900093798840836,-51,52, + -7917008035367244.,6339832640337091.,-.499977613148852661741,-52,51, + -7917008035360914.,6339832640314994.,-.499058375220883403449,-52,51, + -7917008035360859.,6339832640314802.,-.495100939630341808689,-52,51, + -7917008035360423.,6339832640313279.,.499907096119051286377,-52,51, + -7917008035355621.,6339832640296516.,.499972768289302502702,-52,51, + -7917008035322771.,6339832640181843.,-.499989347964715797020,-52,51, + -7709021669218195.,5766443545974895.,.499684813495241539238,-52,51, + -7709021669218063.,5766443545974615.,-.498582174686046381989,-52,51, + -7709021669217931.,5766443545974334.,-.496849162776863002081,-52,51, + -7709021669216440.,5766443545971159.,.499998728025227994615,-52,51, + -6796847593345512.,5289389046771801.,.499621444225680697226,-52,51, + -6796847593345385.,5289389046771894.,-.498964678774413663052,-52,51, + -6796847593345269.,5289389046771978.,-.466177200533865087995,-52,51, + -6796847593345258.,5289389046771986.,-.497550801733412657734,-52,51, + -6796847593344779.,5289389046772332.,.499907837239844967232,-52,51, + -6796847593341241.,5289389046774895.,.499925944463249571284,-52,51, + -6796847593327089.,5289389046785147.,.499998692291047113275,-52,51, + -5808188779617816.,7727223521966491.,.499895688032227051160,-52,51, + -5808188779616758.,7727223521972003.,.494744599689645827590,-52,51, + -5808188779616744.,7727223521972076.,.432294585358200135591,-52,51, + -5808188779616615.,7727223521972748.,.499719453390282310236,-52,51, + -5808188779612788.,7727223521992686.,.499990609019411648425,-52,51, + -5808188779601531.,7727223522051334.,-.499994906383951625548,-52,51, + -5769709794716922.,7934806763509855.,-.498356955917597784703,-52,51, + -5769709794716910.,7934806763509922.,-.477992032022839394090,-52,51, + -5769709794716481.,7934806763512318.,-.499946001822037605476,-52,51, + -5769709794705138.,7934806763575668.,.499999014985637922660,-52,51, + -5605742380305599.,9007199254735294.,-.499985223101397001313,-52,51, + -5605742380304853.,9007199254740989.,-.406614417967007988268,-52,51, + -5605742380304852.,4503599627370498.,.113779500674266971216,-52,50, + -5605742380304850.,4503599627370506.,-.252047080010168165113,-52,50, + -5605742380304727.,4503599627370975.,.249618207955836691555,-52,50, + -5605742380304686.,4503599627371132.,-.249826696029794805552,-52,50, + -5605742380296592.,4503599627402027.,.250001534670952381398,-52,50, + -5149970467360783.,7589964985100854.,.499990331105980387497,-52,50, + -5149970467357824.,7589964985135764.,-.499842956776377382419,-52,50, + -5149970467357612.,7589964985138265.,-.415680949229290899214,-52,50, + -5149970467357582.,7589964985138619.,-.488676891421169294057,-52,50, + -5149970467357577.,7589964985138677.,.499157118216804653179,-52,50, + -5149970467306780.,7589964985737959.,-.499956894720163948582,-52,50, + -5000432434651116.,4950240061674897.,-.499980758351209185932,-52,49, + -5000432434622206.,4950240061966938.,.496801081332605711435,-52,49, + -5000432434622147.,4950240061967535.,-.499123818356557381251,-52,49, + -5000432434621921.,4950240061969817.,.499536736707958939525,-52,49, + -5000432434619710.,4950240061992152.,.499707145648636151772,-52,49, + -5000432434616025.,4950240062029377.,.499991609684170909836,-52,49, + -4855233725970976.,7032764154779293.,-.499996195394947579197,-52,49, + -4855233725964282.,7032764154915411.,.499916891490279731329,-52,49, + -4855233725962536.,7032764154950915.,.499596306096858906016,-52,49, + -4855233725962360.,7032764154954494.,.367834342413185356076,-52,49, + -4855233725962294.,7032764154955836.,.443423606963089826790,-52,49, + -4855233725962246.,7032764154956812.,.498397617863895343948,-52,49, + -4855233725958461.,7032764155033778.,.499994948352652453853,-52,49, + -8242701861718929.,-4921301278127749.,-.499967997623172256653,-105,0, + -8242701861718048.,-4921301278128276.,.499395467543762781877,-105,0, + -8242701861718033.,-4921301278128284.,-.456347492755163025142,-105,0, + -8242701861717641.,-4921301278128518.,-.499763521911980480134,-105,0, + -8242701861714184.,-4921301278130582.,-.499991106536798164128,-105,0, + -8242701861670191.,-4921301278156848.,-.499994766678124268924,-105,0, + -8178102513339758.,-4960174947811648.,-.499997812679812368919,-105,0, + -8178102513303403.,-4960174947833698.,-.499974500722594037814,-105,0, + -8178102513290579.,-4960174947841477.,.499758610324234691639,-105,0, + -8178102513290523.,-4960174947841510.,-.465308057366608257072,-105,0, + -8178102513290518.,-4960174947841513.,-.497903295553313283162,-105,0, + -8178102513289720.,-4960174947841998.,.499896689801040843594,-105,0, + -8178102513288861.,-4960174947842518.,-.499965230831601102140,-105,0, + -8003544517566814.,-5068356790952867.,.499993673518534442208,-105,0, + -8003544517559599.,-5068356790957435.,-.499924612076208837699,-105,0, + -8003544517553352.,-5068356790961392.,.499730332051434448897,-105,0, + -8003544517553232.,-5068356790961467.,-.491952300745481397904,-105,0, + -8003544517553202.,-5068356790961486.,-.489872958945066412862,-105,0, + -8003544517553194.,-5068356790961492.,.444014865535020196440,-105,0, + -8003544517552384.,-5068356790962004.,-.499842905908635893372,-105,0, + -8003544517529302.,-5068356790976621.,-.499997369867010890425,-105,0, + -6848882081661015.,-5922838022853712.,-.499988927813752238809,-105,0, + -6848882081660660.,-5922838022854020.,.499909005420200726795,-105,0, + -6848882081658885.,-5922838022855555.,.499398671112580917726,-105,0, + -6848882081658567.,-5922838022855830.,.496490340713147470945,-105,0, + -6848882081658552.,-5922838022855842.,-.475344957891230094312,-105,0, + -6848882081658530.,-5922838022855862.,.499296604155580028495,-105,0, + -6848882081602218.,-5922838022904559.,-.499992797309673111747,-105,0, + -5840746347509201.,-6945143102234238.,.467468438227496751784,-105,0, + -5840746347509180.,-6945143102234263.,.496686200934021428390,-105,0, + -5840746347509143.,-6945143102234306.,-.499453931440633890675,-105,0, + -5840746347508630.,-6945143102234916.,-.499991442530458438053,-105,0, + -5840746347467696.,-6945143102283590.,-.499996620192948783160,-105,0, + -5301224375154094.,-7651971759094657.,.499708343684271958608,-105,0, + -5301224375153927.,-7651971759094898.,.446096321894894327141,-105,0, + -5301224375153900.,-7651971759094937.,.473356653699975915365,-105,0, + -5301224375153873.,-7651971759094975.,-.499383014495339485444,-105,0, + -5301224375152883.,-7651971759096404.,-.499837515264380497830,-105,0, + -5301224375128672.,-7651971759131351.,-.499841639091904034220,-105,0, + -5301224374428754.,-7651971760141638.,.499901143213633549975,-105,0, + -4827510902892659.,-8402843623407827.,-.499999255375331751498,-105,0, + -4827510902874277.,-8402843623439824.,.493240093439360593629,-105,0, + -4827510902874250.,-8402843623439871.,.496603027784027736331,-105,0, + -4827510902874223.,-8402843623439918.,.499965962128169179878,-105,0, + -4508444030599755.,-8997520859077192.,.499986373263698658528,-105,0, + -4508444030595332.,-8997520859086018.,-.499858724828819915657,-105,0, + -4508444030594634.,-8997520859087412.,.498583082662262223692,-105,0, + -4508444030594633.,-8997520859087413.,-.497121155436197507212,-105,0, + -4508444030594629.,-8997520859087421.,-.479938107830045284010,-105,0, + -4508444030594401.,-8997520859087877.,.499495605697216537299,-105,0, + -4508444030592073.,-8997520859092522.,-.499970690395253176212,-105,0, + -4508444030573450.,-8997520859129688.,-.499996993747865137812,-105,0, + -5441089836987497.,-7455274664195285.,-.499999745776940429579,-106,-1, + -5441089836930957.,-7455274664272755.,-.499971545578535977422,-106,-1, + -5441089836919649.,-7455274664288249.,-.499966098742228514927,-106,-1, + -5441089836918093.,-7455274664290382.,.499327181968667646901,-106,-1, + -5441089836917731.,-7455274664290878.,.494021376920652360694,-106,-1, + -5441089836917704.,-7455274664290915.,.499150501955862698733,-106,-1, + -5137347928758422.,-7896062281517873.,.499988938857163698784,-106,-1, + -5137347928742824.,-7896062281541847.,.499945446512226854085,-106,-1, + -5137347928742405.,-7896062281542490.,-.499671059104565255138,-106,-1, + -5137347928742297.,-7896062281542656.,-.494798941237616173021,-106,-1, + -5137347928742243.,-7896062281542739.,-.492362882306758858894,-106,-1, + -5137347928714088.,-7896062281586014.,.499993161526931965626,-106,-1, + -5130840493925071.,-7906076841666039.,.499999720947642998969,-106,-1, + -5130840493911120.,-7906076841687535.,-.499984779750118461874,-106,-1, + -5130840493893795.,-7906076841714231.,-.473372618961592253808,-106,-1, + -5130840493893782.,-7906076841714252.,.495016758061063828181,-106,-1, + -5130840493893721.,-7906076841714345.,-.499463857449367123102,-106,-1, + -5130840493893183.,-7906076841715174.,-.499965023851261115333,-106,-1, + -5010504701062453.,-8095954724621208.,-.499999496457031995812,-106,-1, + -5010504700981725.,-8095954724751648.,-.499962207735902931413,-106,-1, + -5010504700961543.,-8095954724784258.,-.499953542310837046569,-106,-1, + -5010504700961478.,-8095954724784364.,.473289969466356184546,-106,-1, + -5010504700961465.,-8095954724784385.,.467938671821467834289,-106,-1, + -7922455085984451.,-5120233408336543.,.499999846009225425718,-108,-3, + -7922455085972687.,-5120233408344145.,-.499974533239134191476,-108,-3, + -7922455085970380.,-5120233408345636.,-.499714496183610047907,-108,-3, + -7922455085968073.,-5120233408347127.,-.499454459996437031045,-108,-3, + -7922455085967844.,-5120233408347276.,.499270961840393078363,-108,-3, + -7922455085967697.,-5120233408347371.,.494085970613237954595,-108,-3, + -7922455085967683.,-5120233408347380.,.445973114305705971971,-108,-3, + -7922455085967680.,-5120233408347381.,-.492908212045912184756,-108,-3, + -5061503531596942.,-8014381290870074.,-.499738462448533837409,-110,-5, + -5061503531596930.,-8014381290870094.,.499469600911651330134,-110,-5, + -5061503531596642.,-8014381290870550.,.480463121529066682493,-110,-5, + -5061503531596522.,-8014381290870740.,.472543755104340167061,-110,-5, + -5061503531595677.,-8014381290872077.,-.499888450391533260505,-110,-5, + -5061503531594412.,-8014381290874081.,.499961560664264739371,-110,-5, + -5061503531588099.,-8014381290884076.,-.499996462368576162830,-110,-5, + -4503599627370497.,-9007199254740990.,-.000000000000000444089,-1074,-969, + -4503599627370496.,-4503599627370496.,0.000000000000000000000,-1074,-970, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,-970, + 4503599627370497.,9007199254740990.,.000000000000000444089,-1074,-969, + 6842111560931387.,5928698888648555.,-.498901377461963650246,-109,-4, + 6842111560931784.,5928698888648211.,-.499936413631629791758,-109,-4, + 6842111560946301.,5928698888635631.,.499999079593211298783,-109,-4, + 5635416615578790.,7198193492059521.,.499994553380192815613,-108,-3, + 5635416615602002.,7198193492029872.,.499976506470022395045,-108,-3, + 5635416615605114.,7198193492025898.,-.499508920506809173089,-108,-3, + 5635416615605132.,7198193492025875.,-.491151188387864110627,-108,-3, + 5635416615605139.,7198193492025866.,-.432345403674901365593,-108,-3, + 5635416615605233.,7198193492025746.,-.499810580384392610638,-108,-3, + 5635416615605352.,7198193492025593.,.499887759744443365721,-108,-3, + 5635416615611933.,7198193492017188.,-.499988058934949086621,-108,-3, + 6916394610439791.,5865023829911862.,-.499997714724408021575,-108,-3, + 6916394610473499.,5865023829883278.,-.499956203867710073651,-108,-3, + 6916394610524061.,5865023829840402.,-.499893415177462434185,-108,-3, + 6916394610526620.,5865023829838231.,.497261790687703595704,-108,-3, + 6916394610526745.,5865023829838125.,.498685941073951389507,-108,-3, + 6916394610526870.,5865023829838020.,-.499889908535969392161,-108,-3, + 5804122653800451.,6988966572017928.,.499967995161255077448,-107,-2, + 5804122653802484.,6988966572015480.,.486738708230559763332,-107,-2, + 5804122653802494.,6988966572015468.,.445355386607003362736,-107,-2, + 5804122653802528.,6988966572015428.,-.495347906912778035253,-107,-2, + 5804122653802626.,6988966572015309.,.499095541179947553698,-107,-2, + 5804122653802964.,6988966572014903.,-.499660729653343904446,-107,-2, + 5804122653803689.,6988966572014030.,-.499951547109245562064,-107,-2, + 5804122653814128.,6988966572001459.,.499999037865675855362,-107,-2, + 4994576600369067.,8121773365995800.,.499996857356650715928,-106,-1, + 4994576600382031.,8121773365974719.,.499875902966669738787,-106,-1, + 4994576600383149.,8121773365972901.,.499402657011915495734,-106,-1, + 4994576600383676.,8121773365972045.,-.465042244868766826638,-106,-1, + 4994576600383692.,8121773365972019.,-.482938105264592706770,-106,-1, + 4994576600383708.,8121773365971992.,.499166034339748108442,-106,-1, + 4994576600390301.,8121773365961271.,.499953074239839744726,-106,-1, + 4994576600394436.,8121773365954547.,.499991676576783195448,-106,-1, + 7984456451841239.,5080473473926828.,.499998678423261484912,-106,-1, + 7984456451885250.,5080473473898825.,-.499949019847534890085,-106,-1, + 7984456451885316.,5080473473898783.,-.495450065901539731121,-106,-1, + 7984456451885349.,5080473473898762.,-.493200588928281798625,-106,-1, + 7984456451887917.,5080473473897128.,-.499968562113373845081,-106,-1, + 7984456451893251.,5080473473893733.,.499992356755980547668,-106,-1, + 4747578892790121.,8544317034711488.,.431593254153056161614,-105,0, + 4747578892790141.,8544317034711452.,.437174929953228523009,-105,0, + 4747578892790336.,8544317034711101.,.491596269020802052528,-105,0, + 4747578892790366.,8544317034711047.,.499968782726064474837,-105,0, + 4747578892803982.,8544317034686542.,.499973740189399466607,-105,0, + 4747578892872062.,8544317034564018.,-.499999364092438449492,-105,0, + 5359027492623074.,7569436667966812.,-.499992279553796559680,-105,0, + 5359027492704681.,7569436667851545.,-.499275951295196118770,-105,0, + 5359027492704698.,7569436667851520.,.488825709192585236146,-105,0, + 5359027492704715.,7569436667851496.,.476927369680518932984,-105,0, + 5359027492705018.,7569436667851069.,-.499848916891342628448,-105,0, + 5359027492710313.,7569436667843590.,-.499949362537603983564,-105,0, + 5359027492712078.,7569436667841097.,-.499982841135404865241,-105,0, + 5488415439804934.,7390989193912965.,-.499995794494312793152,-105,0, + 5488415439807787.,7390989193909122.,.499995005733500669051,-105,0, + 5488415439822052.,7390989193889912.,.499949066787270938132,-105,0, + 5488415439822978.,7390989193888665.,.499595579915292087075,-105,0, + 5488415439823128.,7390989193888464.,-.498301853123720651447,-105,0, + 5488415439823275.,7390989193888266.,-.456241337491240843341,-105,0, + 5488415439823278.,7390989193888262.,-.496199286151692066678,-105,0, + 5668948148568679.,7155616552524885.,-.499995303730008490933,-105,0, + 5668948148601522.,7155616552483429.,-.499992860614446696931,-105,0, + 5668948148616321.,7155616552464748.,.496841816838898221982,-105,0, + 5668948148616325.,7155616552464743.,.447851164693815816027,-105,0, + 5668948148616382.,7155616552464671.,.499734371627165719783,-105,0, + 5668948148617423.,7155616552463357.,.499917151138113019903,-105,0, + 5668948148617770.,7155616552462919.,.499978077749003163518,-105,0, + 5708579506482179.,7105939255333375.,-.499983778992389108542,-105,0, + 5708579506482322.,7105939255333196.,.496134106587700486698,-105,0, + 5708579506482330.,7105939255333187.,-.462125032680282839197,-105,0, + 5708579506510257.,7105939255298424.,-.499997654688246752733,-105,0, + 6402079148349821.,6336194581061871.,.499994845932987540926,-105,0, + 6402079148375377.,6336194581036578.,.499867737415038228281,-105,0, + 6402079148375960.,6336194581036001.,.499590931809295056081,-105,0, + 6402079148376333.,6336194581035632.,.338178841828499187170,-105,0, + 6402079148376348.,6336194581035617.,.492545647862342777253,-105,0, + 6402079148376349.,6336194581035617.,-.497163231735398509940,-105,0, + 6402079148376446.,6336194581035521.,-.498924552714833818047,-105,0, + 6402079148378778.,6336194581033212.,.499968226263488306266,-105,0, + 6402079148389564.,6336194581022537.,.499992911112860911714,-105,0, + 6728987427111365.,6028369000046875.,.499998958525002202448,-105,0, + 6728987427118357.,6028369000040612.,-.496851215166020312914,-105,0, + 6728987427118367.,6028369000040603.,-.455656778906256123802,-105,0, + 6728987427118405.,6028369000040569.,-.499117921118909362378,-105,0, + 6728987427118866.,6028369000040155.,.499945590489792639372,-105,0, + 8108726220156393.,5002613000605286.,.499906892075138769467,-105,0, + 8108726220156936.,5002613000604952.,-.499547470572883709666,-105,0, + 8108726220156983.,5002613000604923.,-.495817001039387272380,-105,0, + 8108726220160147.,5002613000602970.,.499995884924714868484,-105,0, + 8488875008824083.,4778585992270671.,.499998422206230446497,-105,0, + 8488875008826888.,4778585992269092.,.499990248970206539763,-105,0, + 8488875008854938.,4778585992253302.,.499908574002784779034,-105,0, + 8488875008857743.,4778585992251723.,.499900412245324333599,-105,0, + 8488875008858482.,4778585992251307.,.499541755898941115800,-105,0, + 8488875008858633.,4778585992251222.,.498115291620567589645,-105,0, + 8488875008858681.,4778585992251195.,.477794296353903467342,-105,0, + 8488875008858688.,4778585992251192.,-.462669182122459519962,-105,0, + 8703077354434146.,4640926137462632.,.499948966743505691542,-60,45, + 8703077354444519.,4640926137457077.,.499568497850183065546,-60,45, + 8703077354446222.,4640926137456166.,-.499433519444534174887,-60,45, + 8703077354446235.,4640926137456159.,-.461257962323273770133,-60,45, + 8703077354446405.,4640926137456067.,.499499323110507453214,-60,45, + 8703077354461310.,4640926137448086.,-.499986901942099337024,-60,45, + 8703077354519410.,4640926137416972.,-.499996682900204150586,-60,45, + 7188956797750602.,5493469817321790.,.499995510972102344593,-57,48, + 7188956797842121.,5493469817250118.,.499901918270955439841,-57,48, + 7188956797842204.,5493469817250053.,.499453839814779393696,-57,48, + 7188956797842250.,5493469817250017.,.475109121634895916059,-57,48, + 7188956797842264.,5493469817250007.,-.488821879550194307664,-57,48, + 7188956797842287.,5493469817249988.,.499005761360107515648,-57,48, + 7188956797844339.,5493469817248381.,.499976159561442930846,-57,48, + 9006440473858389.,8715942681785648.,-.499987505953167609490,-57,49, + 9006440473864158.,8715942681779897.,.499580857312861949058,-57,49, + 9006440473864166.,8715942681779890.,-.474072020666730507497,-57,49, + 9006440473864245.,8715942681779811.,-.213894190714442905463,-57,49, + 9006440473865069.,8715942681778989.,.499859377478108059761,-57,49, + 9006440473897862.,8715942681746305.,-.499993944614279155531,-57,49, + 7591484324358175.,5072093829008956.,.499997208731586702227,-56,49, + 7591484324365188.,5072093829004066.,-.499994044040830549468,-56,49, + 7591484324372201.,5072093828999175.,-.499985287699949463157,-56,49, + 7591484324373133.,5072093828998525.,-.494565614846551381223,-56,49, + 7591484324373209.,5072093828998472.,-.498415512761279680229,-56,49, + 7591484324373751.,5072093828998094.,-.499555574174756254756,-56,49, + 8003388475031605.,4799733652977048.,.499310299022767365613,-56,49, + 8003388475031865.,4799733652976886.,-.491985296784527185750,-56,49, + 8003388475031873.,4799733652976880.,.492897915652340943863,-56,49, + 8003388475032200.,4799733652976675.,.499999224017986154014,-56,49, + 7429938090802710.,5003989832718538.,.499999955062768336898,-55,50, + 7429938090838044.,5003989832693362.,-.499994391164786892542,-55,50, + 7429938090846734.,5003989832687169.,.499950434286426647024,-55,50, + 7429938090848456.,5003989832685943.,-.499370048478734557769,-55,50, + 7429938090848950.,5003989832685591.,-.495690790813431629335,-55,50, + 7429938090848964.,5003989832685581.,-.471295022376872457520,-55,50, + 7429938090849030.,5003989832685534.,-.499143542604002105709,-55,50, + 4684840655099242.,7830837118606766.,-.499986082596863606675,-54,51, + 4684840655107189.,7830837118592738.,-.490327188673313130477,-54,51, + 4684840655107206.,7830837118592708.,-.498611547347269119032,-54,51, + 4684840655107453.,7830837118592271.,.498668653121378674861,-54,51, + 4684840655113245.,7830837118582047.,.499668347445082990817,-54,51, + 4684840655115055.,7830837118578852.,.499980757309991514472,-54,51, + 4684840655163218.,7830837118493836.,-.499992556257902956240,-54,51, + 5261029272897352.,6929456859649622.,-.499994770623560017390,-54,51, + 5261029272898135.,6929456859648537.,-.499919946972868811905,-54,51, + 5261029272899522.,6929456859646615.,-.460196088666600516482,-54,51, + 5261029272899548.,6929456859646579.,-.488290666655047748736,-54,51, + 5261029272899561.,6929456859646560.,.497662044350868536949,-54,51, + 5261029272899631.,6929456859646463.,.498945872845867135457,-54,51, + 5261029272899701.,6929456859646367.,-.499770298656430049560,-54,51, + 5357701474446649.,6798030536687548.,-.499973593740729530242,-54,51, + 5357701474447380.,6798030536686572.,.499867511052549723144,-54,51, + 5357701474447395.,6798030536686552.,.493024305271476590996,-54,51, + 5357701474447656.,6798030536686204.,.373952524699617819405,-54,51, + 5357701474447710.,6798030536686132.,.349316983896089561004,-54,51, + 5357701474465646.,6798030536662210.,-.499998855018877317137,-54,51, + 6544763739207486.,5515563606027211.,-.498329178497273122292,-54,51, + 6544763739207502.,5515563606027197.,-.470596999468437128777,-54,51, + 6544763739207557.,5515563606027148.,.499732365943743245082,-54,51, + 6544763739208062.,5515563606026708.,-.499970733413197385891,-54,51, + 6544763739214769.,5515563606020851.,-.499987929264607816202,-54,51, + 6544763739221476.,5515563606014993.,.499994887708609858898,-54,51, + 6750030179279476.,5342132932493626.,-.499997003104088607295,-54,51, + 6750030179306258.,5342132932471734.,-.499977230261600053441,-54,51, + 6750030179322256.,5342132932458656.,.499959992698200863320,-54,51, + 6750030179323795.,5342132932457398.,.498766308624241979885,-54,51, + 6750030179323828.,5342132932457372.,-.475918156329674104662,-54,51, + 6750030179323839.,5342132932457363.,-.467479644647583304036,-54,51, + 6750030179324507.,5342132932456816.,.499513610287355126473,-54,51, + 6750030179324863.,5342132932456525.,.499887261168267103995,-54,51, + 7262316160955302.,4955022833497053.,.498458928398999886042,-54,51, + 7262316160955345.,4955022833497023.,.471876349825965446149,-54,51, + 7262316160955355.,4955022833497016.,.488950168762524175810,-54,51, + 7262316160955713.,4955022833496767.,-.499807113294974155636,-54,51, + 7262316160956240.,4955022833496398.,.499983144730334147689,-54,51, + 7262316160975275.,4955022833483106.,.499997531669378118527,-54,51, + 7667186625692769.,4688439561715425.,.499998062291141253043,-54,51, + 7667186625728294.,4688439561693375.,-.499991065631085095957,-54,51, + 7667186625730746.,4688439561691852.,.499953394610708198341,-54,51, + 7667186625744232.,4688439561683481.,.499647944897155637371,-54,51, + 7667186625744849.,4688439561683099.,-.483237154622618718278,-54,51, + 7667186625744907.,4688439561683063.,-.484869789582126851327,-54,51, + 7667186625745371.,4688439561682775.,-.497930869236830423238,-54,51, + 7667186625745458.,4688439561682720.,.499620178332140452416,-54,51, + 7756304500083142.,4633814807756164.,.499995583580655366163,-54,51, + 7756304500086291.,4633814807754259.,-.499906658512063951110,-54,51, + 7756304500086557.,4633814807754097.,.497878671385338250764,-54,51, + 7756304500086709.,4633814807754005.,.496613145617835526553,-54,51, + 7756304500086732.,4633814807753992.,-.424630979991378064479,-54,51, + 7756304500086747.,4633814807753982.,.496296764176574652693,-54,51, + 7756304500124231.,4633814807731295.,-.499998956694833135505,-54,51, + 4889567999031506.,7370062493516001.,.499989341304264007195,-53,52, + 4889567999035892.,7370062493509663.,-.485600474442207894368,-53,52, + 4889567999035901.,7370062493509650.,-.493094844775836789225,-53,52, + 4889567999035910.,7370062493509636.,.499410784890588869186,-53,52, + 4889567999037911.,7370062493506744.,.499829115413633059716,-53,52, + 4889567999038578.,7370062493505780.,.499968559520577404073,-53,52, + 4889567999074605.,7370062493453712.,-.499995383850715066472,-53,52, + 4930099044519801.,7312032488161412.,.499995283130771766473,-53,52, + 4930099044600249.,7312032488047312.,-.499974637395797164990,-53,52, + 4930099044602324.,7312032488044368.,.486216031592600107733,-53,52, + 4930099044602336.,7312032488044351.,.466377134264853818602,-53,52, + 4930099044602367.,7312032488044307.,.498459982835280327594,-53,52, + 4930099044602618.,7312032488043952.,-.499836952909957068767,-53,52, + 4930099044606701.,7312032488038160.,.499978237571403395359,-53,52, + 5026050879177161.,7178907076907740.,.468617933674604031344,-53,52, + 5026050879177245.,7178907076907626.,.470849125643723373369,-53,52, + 5026050879178197.,7178907076906334.,.496135968265859424312,-53,52, + 5026050879178337.,7178907076906144.,.499854621639991342819,-53,52, + 5026050879183719.,7178907076898840.,.499953148412557261813,-53,52, + 5026050879186410.,7178907076895189.,-.499997581473061537395,-53,52, + 5035712052410340.,7165824592092468.,.499994146146324007282,-53,52, + 5035712052437263.,7165824592056091.,.499983756998089899310,-53,52, + 5035712052438835.,7165824592053967.,.492851715233883120489,-53,52, + 5035712052438872.,7165824592053918.,-.499682563084476105252,-53,52, + 5388947655827981.,6724418226618037.,.481610044383614701661,-53,52, + 5388947655827994.,6724418226618022.,.469092600558518163549,-53,52, + 5388947655828039.,6724418226617971.,-.497313935758469735821,-53,52, + 5388947655828123.,6724418226617873.,.498727196452534594008,-53,52, + 5388947655828601.,6724418226617322.,-.499991122565154963054,-53,52, + 5388947655855124.,6724418226586692.,.499996556232697428078,-53,52, + 5842346135940753.,6248294645466298.,-.499999260458577027497,-53,52, + 5842346135978745.,6248294645430067.,-.499991358506775488487,-53,52, + 5842346135983405.,6248294645425622.,.499693793731305197027,-53,52, + 5842346135984570.,6248294645424511.,.499615083121529058767,-53,52, + 5842346135984678.,6248294645424409.,-.494383629938082973492,-53,52, + 5842346135984721.,6248294645424367.,.498746512085752126825,-53,52, + 6083309738823773.,6029430789359405.,-.499995736244552465237,-53,52, + 6083309738833236.,6029430789351222.,-.499984383496654127195,-53,52, + 6083309738851992.,6029430789335003.,-.494783728188163737325,-53,52, + 6083309738852051.,6029430789334951.,.485772192172033929056,-53,52, + 6083309738852162.,6029430789334856.,-.499961584774150512856,-53,52, + 6466710109370726.,5721874207679279.,.499626913956093450181,-53,52, + 6466710109370952.,5721874207679112.,-.498693512339241936084,-53,52, + 6466710109371053.,5721874207679036.,.422411075914068495281,-53,52, + 6466710109371065.,5721874207679028.,-.497853725481382126280,-53,52, + 6466710109373134.,5721874207677489.,.499823434540947538321,-53,52, + 6466710109375542.,5721874207675700.,-.499980043200821351631,-53,52, + 6466710109416026.,5721874207645606.,-.499998062117324753345,-53,52, + 6683043781678042.,5567595326326129.,-.499976043847769164505,-53,52, + 6683043781678602.,5567595326325745.,.499974690511015531942,-53,52, + 6683043781679722.,5567595326324979.,.499876159474529662313,-53,52, + 6683043781680801.,5567595326324242.,-.459147335740659762723,-53,52, + 6683043781680804.,5567595326324239.,.489066686052493375706,-53,52, + 6683043781680842.,5567595326324213.,.499777628765970109317,-53,52, + 6683043781759454.,5567595326270449.,-.499994494867059177417,-53,52, + 7593583889909331.,5040275945893578.,.498594024880091475749,-53,52, + 7593583889909596.,5040275945893449.,.499784668881108880045,-53,52, + 7593583889913002.,5040275945891791.,.499993475536821476920,-53,52, + 7618936725668269.,5027991782294659.,-.499982924618220834604,-53,52, + 7618936725669059.,5027991782294278.,-.497846645056914182717,-53,52, + 7618936725669061.,5027991782294277.,-.462398198779403517577,-53,52, + 7618936725669200.,5027991782294210.,-.498731182490676732677,-53,52, + 7618936725669341.,5027991782294142.,-.499615719920918223168,-53,52, + 7618936725681838.,5027991782288115.,-.499999140443764099980,-53,52, + 8259236168379158.,4752752985379129.,.499997903710113904435,-53,52, + 8259236168418772.,4752752985364022.,-.499978943973147172071,-53,52, + 8259236168421554.,4752752985362960.,.499972203023065833875,-53,52, + 8259236168422220.,4752752985362707.,-.499320584774531126872,-53,52, + 8259236168422886.,4752752985362453.,-.498613372509972941282,-53,52, + 8259236168422928.,4752752985362436.,.483413208445731286106,-53,52, + 8259236168422936.,4752752985362433.,.432370652437322021924,-53,52, + 8460168363172937.,4678886097764196.,.499959434702373020513,-53,52, + 8460168363172985.,4678886097764179.,.499680637989064310731,-53,52, + 8460168363173016.,4678886097764169.,-.479666084888120678326,-53,52, + 8460168363173033.,4678886097764162.,.499401841276057067154,-53,52, + 8460168363176520.,4678886097762927.,.499981755868816600868,-53,52, + 8460168363180103.,4678886097761659.,-.499995921284969997549,-53,52, + 8791115980693168.,4568584440249643.,-.499997087159749962413,-53,52, + 8791115980767970.,4568584440226219.,-.499980964612938727378,-53,52, + 8791115980768647.,4568584440226006.,.499698337269778191427,-53,52, + 8791115980769078.,4568584440225872.,-.466532417338143771373,-53,52, + 8791115980769094.,4568584440225867.,-.476879730733841521814,-53,52, + 8791115980769126.,4568584440225857.,-.497574357525146820874,-53,52, + 8791115980769225.,4568584440225826.,-.499098359159985983435,-53,52, + 8837821264166987.,4554086307494884.,-.494534772068169788015,-53,52, + 8837821264167000.,4554086307494880.,-.494654139950139257273,-53,52, + 8837821264167260.,4554086307494800.,-.497041497585421393838,-53,52, + 8837821264167572.,4554086307494704.,-.499906326737433161257,-53,52, + 8837821264167585.,4554086307494699.,.499974305381477494183,-53,52, + 8837821264175960.,4554086307492122.,.499996924513897282773,-53,52, + 9007199154131661.,4503599656407137.,.499979358469842369918,-53,52, + 9007199154132451.,4503599656406909.,.499782994765767201059,-53,52, + 9007199154136401.,4503599656405769.,.498801177273352182665,-53,52, + 9007199154136491.,4503599656405744.,-.475904737535625956017,-53,52, + 9007199154136498.,4503599656405742.,-.496159642020731420566,-53,52, + 9007199154141782.,4503599656404216.,.499995316757491436935,-53,52, + 9007199154386266.,4503599656333656.,.499989006640854763950,-53,52, + 9007199154386661.,4503599656333542.,.499890835823456158621,-53,52, + 9007199154389821.,4503599656332630.,.499105469901043811480,-53,52, + 9007199154389949.,4503599656332594.,-.442698494265111495846,-53,52, + 9007199154389970.,4503599656332587.,.496536792864050442531,-53,52, + 9007199154396387.,4503599656330736.,-.499994752113822658572,-53,52, + 9007199155170718.,4503599656107257.,.499996714516788655843,-53,52, + 9007199155180839.,4503599656104337.,-.499986172429743343824,-53,52, + 9007199155190960.,4503599656101416.,-.499969048128206323648,-53,52, + 9007199155191355.,4503599656101301.,.499932815957091639367,-53,52, + 9007199155191386.,4503599656101293.,-.446910328886121944059,-53,52, + 9007199155191400.,4503599656101289.,-.487420136234635424701,-53,52, + 9007199158352170.,4503599655189066.,-.499998260884186499395,-53,52, + 9007199158372412.,4503599655183224.,-.499956952055678481157,-53,52, + 9007199158373202.,4503599655182995.,.499847052115849520135,-53,52, + 9007199158376362.,4503599655182083.,.499063069487268741682,-53,52, + 9007199158376556.,4503599655182028.,-.490858478777622180623,-53,52, + 9007199158376608.,4503599655182013.,-.498466316456168966473,-53,52, + 9007199158393049.,4503599655177267.,.499986404720277199711,-53,52, + 9007199164858892.,4503599653311175.,-.499321905217686152384,-53,52, + 9007199164858989.,4503599653311147.,-.494282610303238372831,-53,52, + 9007199164858996.,4503599653311144.,.485462493453514323377,-53,52, + 9007199164859041.,4503599653311131.,.498109589032767273515,-53,52, + 9007199164859287.,4503599653311061.,-.499419621796719600534,-53,52, + 9007199164861262.,4503599653310491.,-.499908204434896635652,-53,52, + 9007199164861657.,4503599653310376.,.499994079088865998450,-53,52, + 9007199178627073.,4503599649337569.,.499998023715475235817,-53,52, + 9007199178668347.,4503599649325657.,.499976581914464259718,-53,52, + 9007199178669137.,4503599649325429.,.499782346712660045696,-53,52, + 9007199178669286.,4503599649325386.,.497214066916457076357,-53,52, + 9007199178669324.,4503599649325376.,-.469883883635204542382,-53,52, + 9007199178669331.,4503599649325374.,-.490138769263124914346,-53,52, + 9007199178669532.,4503599649325315.,.499685229137456959140,-53,52, + 9007199184586426.,4503599647617654.,-.499998557152820481296,-53,52, + 9007199184604984.,4503599647612298.,-.484296120781294934953,-53,52, + 9007199184604991.,4503599647612295.,.495448998153235297364,-53,52, + 9007199184605088.,4503599647612268.,-.499511496610577615490,-53,52, + 9007199184606668.,4503599647611812.,-.499898936947827438736,-53,52, + 9007199184607063.,4503599647611698.,-.499995796989308193867,-53,52, + 9007199193451698.,4503599645059067.,-.499983444757222429585,-53,52, + 9007199193458264.,4503599645057172.,-.499055503370565061007,-53,52, + 9007199193458316.,4503599645057156.,.493336859266682316008,-53,52, + 9007199193458330.,4503599645057152.,.452827110745991956165,-53,52, + 9007199193458659.,4503599645057058.,-.499151979484035789299,-53,52, + 9007199193461424.,4503599645056260.,-.499827311798615841025,-53,52, + 9007199193462214.,4503599645056031.,.499979736265698266227,-53,52, + 9007199193482851.,4503599645050076.,-.499997390211896476353,-53,52, + 9007199193503488.,4503599645044120.,-.499974469924135071402,-53,52, + 9007199193504278.,4503599645043891.,.499832581789136306790,-53,52, + 9007199193507043.,4503599645043093.,.499157263325265557563,-53,52, + 9007199193507095.,4503599645043078.,.491549626241039968409,-53,52, + 9007199193507116.,4503599645043072.,.430785003572494570836,-53,52, + 9007199193507140.,4503599645043066.,-.495803136620069444747,-53,52, + 9007199193514004.,4503599645041084.,.499988770902423935144,-53,52, + 9007199194115242.,4503599644867562.,.499999359449894578982,-53,52, + 9007199194133114.,4503599644862405.,-.499301159667185074962,-53,52, + 9007199194133242.,4503599644862368.,-.441104565228186320727,-53,52, + 9007199194133263.,4503599644862361.,.498130813547133705872,-53,52, + 9007199194133509.,4503599644862291.,-.499397606509796944640,-53,52, + 9007199194135484.,4503599644861721.,-.499879840465866089701,-53,52, + 9007199194135879.,4503599644861607.,-.499976287205681878046,-53,52, + 9007199198619541.,4503599643567587.,-.499972658231510156041,-53,52, + 9007199198619936.,4503599643567472.,.499931089519597160632,-53,52, + 9007199198620972.,4503599643567174.,-.497789713765723317576,-53,52, + 9007199198621003.,4503599643567165.,-.444632710773410102788,-53,52, + 9007199198621017.,4503599643567161.,-.485142451357492126173,-53,52, + 9007199198621121.,4503599643567130.,.499642332875715191843,-53,52, + 9007199198630057.,4503599643564551.,.499996490271877368530,-53,52, + 9007199204486970.,4503599641874201.,-.499989560910024376633,-53,52, + 9007199204492500.,4503599641872604.,.498666472068308352757,-53,52, + 9007199204492531.,4503599641872596.,-.448176504952547131328,-53,52, + 9007199204492545.,4503599641872592.,-.488686236510318244526,-53,52, + 9007199204492746.,4503599641872534.,-.498861668158802280450,-53,52, + 9007199204496696.,4503599641871394.,-.499821642440228981075,-53,52, + 9007199204497486.,4503599641871165.,.499986362909077840816,-53,52, + 9007199234694050.,4503599633156200.,.499950899746007794475,-53,52, + 9007199234694445.,4503599633156086.,.499856212188311607823,-53,52, + 9007199234698790.,4503599633154832.,.498814650184410435300,-53,52, + 9007199234699022.,4503599633154766.,-.458202988971306646611,-53,52, + 9007199234699036.,4503599633154762.,-.498712674092583244462,-53,52, + 9007199234725598.,4503599633147095.,.499983350996752184456,-53,52, + 9007199234746630.,4503599633141026.,-.499994954120208025595,-53,52, + 9007199239631487.,4503599631731217.,.499988361013002205964,-53,52, + 9007199239632523.,4503599631730919.,-.497727776784457138376,-53,52, + 9007199239632554.,4503599631730910.,-.444570634187777422501,-53,52, + 9007199239632568.,4503599631730906.,-.485080311724726187330,-53,52, + 9007199239632672.,4503599631730875.,.499704940858613908515,-53,52, + 9007199239642003.,4503599631728183.,-.499995132623680174361,-53,52, + 9007199245036517.,4503599630171283.,.499993302316558885461,-53,52, + 9007199245089492.,4503599630155995.,-.499987074278799776619,-53,52, + 9007199245089537.,4503599630155982.,-.487339582254398697883,-53,52, + 9007199245089544.,4503599630155979.,.492405583171639232622,-53,52, + 9007199250380575.,4503599628628946.,.499995369435173592555,-53,52, + 9007199250389712.,4503599628626309.,.490225896520027256845,-53,52, + 9007199250389733.,4503599628626303.,.429461405020110339160,-53,52, + 9007199250389757.,4503599628626297.,-.497126585265449699411,-53,52, + 9007199250389906.,4503599628626254.,-.499693691620219687815,-53,52, + 9007199250391091.,4503599628625912.,-.499975711871699951765,-53,52, + 9007199254740966.,4503599627370504.,-.496196356280035697257,-53,52, + 9007199254740991.,4503599627370496.,.288607832450766485207,-53,52, + 4503599627370497.,9007199254740991.,-.154431329803065281984,-52,53, + 4503599627370502.,9007199254740985.,.073412021181621484969,-52,53, + 4503599627370509.,9007199254740977.,-.007607287439780146052,-52,53, + 4503599627370632.,9007199254740835.,-.002660853208814103622,-52,53, + 4503599627371150.,9007199254740237.,.001910308982883638477,-52,53, + 4503599627373125.,9007199254737957.,.000033950776012755550,-52,53, + 4503599627399810.,9007199254707151.,-.000001469634335838280,-52,53, + 4503599629161347.,9007199252673577.,.499999522359025713762,-52,53, + 4503599629182774.,9007199252648841.,.499929742420532296829,-52,53, + 4503599629183169.,9007199252648385.,.499555099122231855803,-52,53, + 4503599629183305.,9007199252648228.,.496894462474030059620,-52,53, + 4503599629183318.,9007199252648213.,.489287195736449792330,-52,53, + 4503599629185403.,9007199252645806.,.499967878592024545553,-52,53, + 4503599629188032.,9007199252642772.,-.499993979164895563273,-52,53, + 4503599630045371.,9007199251653032.,.499835689545883112952,-52,53, + 4503599630045766.,9007199251652576.,.499461345560965307914,-52,53, + 4503599630046161.,9007199251652120.,.499087001713108941891,-52,53, + 4503599630046284.,9007199251651979.,-.495966274950770149797,-52,53, + 4503599630046297.,9007199251651963.,.496426468166832194300,-52,53, + 4503599630053258.,9007199251643927.,.499956092691955304536,-52,53, + 4503599630055887.,9007199251640892.,.499996239217154646871,-52,53, + 4503599638086557.,9007199242370035.,.499957647487482020781,-52,53, + 4503599638087347.,9007199242369123.,.499214540092793110787,-52,53, + 4503599638087729.,9007199242368683.,-.493549848349513107569,-52,53, + 4503599638087742.,9007199242368667.,.498842986601040813302,-52,53, + 4503599638089186.,9007199242367001.,-.499983653351795297516,-52,53, + 4503599638105355.,9007199242348334.,.499997121735680478530,-52,53, + 4503599645526952.,9007199233780611.,-.499795952392458216436,-52,53, + 4503599645526978.,9007199233780580.,.484989887420002425719,-52,53, + 4503599645527347.,9007199233780154.,.499835075591636760094,-52,53, + 4503599645532605.,9007199233774084.,.499986848496092699290,-52,53, + 4503599645546145.,9007199233758453.,.499997421516846676341,-52,53, + 4503599651533752.,9007199226846172.,.499997683370504207303,-52,53, + 4503599651566485.,9007199226808384.,.499974514310342163560,-52,53, + 4503599651585678.,9007199226786227.,.499869716242865600436,-52,53, + 4503599651585814.,9007199226786070.,.497211756029426368454,-52,53, + 4503599651585840.,9007199226786040.,.481997734225765959969,-52,53, + 4503599651585859.,9007199226786019.,-.452197127861148797669,-52,53, + 4503599651588307.,9007199226783192.,.499959591172117560008,-52,53, + 4503599651999901.,9007199226308036.,-.499968573882548241838,-52,53, + 4503599652000277.,9007199226307601.,.433859555326138313891,-52,53, + 4503599652000283.,9007199226307595.,-.492728293674844017361,-52,53, + 4503599652000296.,9007199226307579.,.499664700156469421179,-52,53, + 4503599652010812.,9007199226295440.,-.499971933511390164843,-52,53, + 4503599652087189.,9007199226207268.,-.499992522662737283247,-52,53, + 4503599656387975.,9007199221242306.,-.499665449861071364790,-52,53, + 4503599656388001.,9007199221242275.,.485120638016205721862,-52,53, + 4503599656388014.,9007199221242260.,.477513681955066954336,-52,53, + 4503599656388370.,9007199221241849.,.499969346800042671949,-52,53, + 4503599656399281.,9007199221229254.,-.499991949980265536355,-52,53, + 4503599656448578.,9007199221172344.,-.499999082515988693524,-52,53, + 4503599657174493.,9007199220334325.,-.499998937080875586919,-52,53, + 4503599657185404.,9007199220321729.,-.499952698984527362162,-52,53, + 4503599657185799.,9007199220321272.,.499682374377256208666,-52,53, + 4503599657186058.,9007199220320974.,-.498025260989605432254,-52,53, + 4503599657186110.,9007199220320913.,.471546951221834439514,-52,53, + 4503599657186129.,9007199220320892.,-.462647817392623856531,-52,53, + 4503599657186194.,9007199220320816.,.499317447876101216235,-52,53, + 4503599657240354.,9007199220258292.,.499915152494735068613,-52,53, + 4503599657240749.,9007199220257836.,.499550244923672940247,-52,53, + 4503599657241390.,9007199220257097.,-.490915338969584359932,-52,53, + 4503599657241403.,9007199220257082.,-.498522285285058060599,-52,53, + 4503599657242983.,9007199220255258.,-.499981913290963805421,-52,53, + 4503599657281369.,9007199220210944.,-.499999771501579375055,-52,53, + 4503599664800855.,9007199211530213.,.499997765251856005160,-52,53, + 4503599664817419.,9007199211511091.,.499995668748909946489,-52,53, + 4503599664820048.,9007199211508057.,-.499883898058727063850,-52,53, + 4503599664820838.,9007199211507144.,.499391547107082315911,-52,53, + 4503599664821492.,9007199211506390.,-.498676628252247702183,-52,53, + 4503599669085291.,9007199206584127.,-.499999139376099430256,-52,53, + 4503599669086871.,9007199206582302.,.498557671507108278783,-52,53, + 4503599669086884.,9007199206582287.,.490950860466509147444,-52,53, + 4503599669086897.,9007199206582272.,.483344049426058475536,-52,53, + 4503599669087525.,9007199206581548.,-.499508052966593962613,-52,53, + 4503599674707513.,9007199200093658.,-.499998777295855351597,-52,53, + 4503599674710142.,9007199200090623.,-.499855503262479125295,-52,53, + 4503599674710537.,9007199200090166.,.499785651025268836696,-52,53, + 4503599674710563.,9007199200090136.,.484572157388257516747,-52,53, + 4503599674710576.,9007199200090121.,.476965410569974545917,-52,53, + 4503599674721448.,9007199200077570.,.499999969597372068277,-52,53, + 4503599680960281.,9007199192875266.,.499996292877240370737,-52,53, + 4503599681002332.,9007199192826722.,-.489872870098765004826,-52,53, + 4503599681002345.,9007199192826707.,-.497479545065322017773,-52,53, + 4503599681002481.,9007199192826549.,.499866009139597461801,-52,53, + 4503599681005110.,9007199192823515.,-.499976178809231915562,-52,53, + 4503599681010763.,9007199192816988.,.499982803917180260964,-52,53, + 4867368130172119.,8641416407060471.,-.499997603741129610436,-52,53, + 4867368130222202.,8641416407017067.,-.499825215936074962863,-52,53, + 4867368130222277.,8641416407017002.,-.497928105214479832309,-52,53, + 4867368130222727.,8641416407016612.,-.486545440800663375077,-52,53, + 4867368130222757.,8641416407016586.,-.485786596501273970185,-52,53, + 4867368130227466.,8641416407012504.,.499993338317316097970,-52,53, + 5048327701410322.,8495904644850646.,-.499994129162368582455,-52,53, + 5048327701441063.,8495904644827790.,-.499990450637639082767,-52,53, + 5048327701447488.,8495904644823012.,.498611612355168397548,-52,53, + 5048327701447492.,8495904644823010.,-.475397040048624708117,-52,53, + 5048327701447796.,8495904644822783.,.499945377293506905053,-52,53, + 5095760958847080.,8461362892587297.,-.499935318098684657545,-52,53, + 5095760958848892.,8461362892586004.,.448566380020571713166,-52,53, + 5095760958848913.,8461362892585989.,.474459611633503085851,-52,53, + 5095760958848934.,8461362892585975.,-.499647156753285735903,-52,53, + 5095760958853684.,8461362892582588.,-.499987618004245358304,-52,53, + 5095760958874423.,8461362892567799.,.499999744244750468510,-52,53, + 5106532173940334.,8453719189965205.,.499984124101668470980,-52,53, + 5106532173942322.,8453719189963802.,-.498225557494629409050,-52,53, + 5106532173942339.,8453719189963789.,.495753534776118454698,-52,53, + 5106532173942390.,8453719189963753.,.477690811589456467505,-52,53, + 5106532173942659.,8453719189963564.,-.499934140093419328792,-52,53, + 5106532174014077.,8453719189913125.,.499997589752635722978,-52,53, + 5221791327360291.,8376434886266668.,-.499999451899145066783,-52,53, + 5221791327409718.,8376434886235259.,-.499972059719197813268,-52,53, + 5221791327429085.,8376434886222951.,.499755825412182348592,-52,53, + 5221791327429288.,8376434886222823.,-.499111072730648955917,-52,53, + 5221791327429310.,8376434886222809.,-.479283840015585329866,-52,53, + 5221791327429329.,8376434886222796.,.446930588238565987053,-52,53, + 5221791327429993.,8376434886222374.,.499897975782290833872,-52,53, + 5221791327430901.,8376434886221798.,-.499959873354973841149,-52,53, + 5241359265598586.,8364114247649115.,.496272743924034234303,-52,53, + 5241359265598610.,8364114247649101.,-.475480901067374681232,-52,53, + 5241359265598626.,8364114247649091.,-.456649997728124474493,-52,53, + 5241359265598695.,8364114247649047.,.499558272924128483101,-52,53, + 5241359265599014.,8364114247648848.,.499999408295102349236,-52,53, + 5358638315492395.,8294953777786168.,-.499906113638020694272,-52,53, + 5358638315493979.,8294953777785287.,-.499759081164847508996,-52,53, + 5358638315493997.,8294953777785276.,.488878953303175179210,-52,53, + 5358638315498028.,8294953777783034.,.499985454587991672806,-52,53, + 5358638315552596.,8294953777752685.,-.499998871158448436484,-52,53, + 5361875182247093.,8293156417076757.,-.499973456109739166280,-52,53, + 5361875182248592.,8293156417075926.,-.499907021176551695200,-52,53, + 5361875182249862.,8293156417075221.,.450783021414405922879,-52,53, + 5361875182249889.,8293156417075206.,.482805565636792828315,-52,53, + 5361875182249907.,8293156417075197.,-.495846071548055353577,-52,53, + 5361875182250091.,8293156417075095.,-.499840584982744042604,-52,53, + 5361875182261614.,8293156417068707.,-.499996950989160683738,-52,53, + 5438257954988356.,8252430871884379.,.499997403061864924404,-52,53, + 5438257955007186.,8252430871874734.,.499859143143886051643,-52,53, + 5438257955007268.,8252430871874692.,.498265339140398676205,-52,53, + 5438257955007272.,8252430871874690.,.449407104798858535384,-52,53, + 5438257955013449.,8252430871871527.,-.499921266759324482863,-52,53, + 5438257955024747.,8252430871865739.,.499995908118223461933,-52,53, + 5627653235355482.,8164909855333633.,-.499997252956828802667,-52,53, + 5627653235357367.,8164909855332854.,-.490382677633548533252,-52,53, + 5627653235357413.,8164909855332834.,.499772373033290997140,-52,53, + 5648553535553859.,8156382247270651.,.499981724383482929677,-52,53, + 5648553535554075.,8156382247270564.,.498690746959131242196,-52,53, + 5648553535554080.,8156382247270562.,.484771974333843318515,-52,53, + 5648553535554105.,8156382247270552.,.415178111207590876210,-52,53, + 5648553535560828.,8156382247267844.,.499996450617892726042,-52,53, + 5679432883882450.,8144181595598072.,-.499925817594767300994,-52,53, + 5679432883882801.,8144181595597936.,-.498481248265282540252,-52,53, + 5679432883882850.,8144181595597917.,-.484034570490804393881,-52,53, + 5679432883882881.,8144181595597905.,-.495302998836951345304,-52,53, + 5679432883883072.,8144181595597830.,.499785071685957909297,-52,53, + 5679432883903216.,8144181595590026.,-.499931619865533101452,-52,53, + 5679432884114337.,8144181595508225.,-.499978532982617052808,-52,53, + 5794885835816194.,8102690205053684.,-.499997046617467500933,-52,53, + 5794885835817409.,8102690205053281.,-.499844573709738257355,-52,53, + 5794885835818597.,8102690205052886.,.455860067142069482303,-52,53, + 5794885835818615.,8102690205052880.,.485491955644959681476,-52,53, + 5794885835818624.,8102690205052878.,-.499692100103537731589,-52,53, + 6190687021033866.,8006895930470292.,.499936310336399311180,-52,53, + 6190687021033943.,8006895930470280.,.488062460115214480591,-52,53, + 6190687021033975.,8006895930470275.,.496114885998048428447,-52,53, + 6190687021063174.,8006895930465720.,.499952044147884473118,-52,53, + 6190687021151098.,8006895930452005.,-.499998600295442198753,-52,53, + 6234082493727617.,8000518310028686.,.499997812248469915344,-52,53, + 6234082493747600.,8000518310025929.,.499974714474336601107,-52,53, + 6234082493773280.,8000518310022387.,-.499604343281397346493,-52,53, + 6234082493773309.,8000518310022382.,.499344730366556392122,-52,53, + 6234082493773512.,8000518310022354.,.491988245911959652475,-52,53, + 6234082493773541.,8000518310022350.,.490937319562692559675,-52,53, + 6234082493774244.,8000518310022253.,.499944174029846060167,-52,53, + 6350411099494716.,7987235521167476.,.499993458094116243539,-52,53, + 6350411099499946.,7987235521167002.,.479461508189841586134,-52,53, + 6350411099499957.,7987235521167001.,.482477597790509971915,-52,53, + 6350411099500012.,7987235521166996.,.497558045794579583092,-52,53, + 6350411099500023.,7987235521166996.,-.499425864604460958218,-52,53, + 6350411099501347.,7987235521166875.,.499965284083531939023,-52,53, + 6350411099527540.,7987235521164502.,-.499995026428416096330,-52,53, + 6671477663178710.,7978298518450168.,.499998349105224737683,-52,53, + 6671477663230132.,7978298518451893.,-.499949961842891749632,-52,53, + 6671477663237380.,7978298518452136.,-.499825915099734428407,-52,53, + 6671477663238603.,7978298518452177.,-.496907630992439793142,-52,53, + 6671477663238663.,7978298518452179.,-.485317200032468903847,-52,53, + 6671477663238752.,7978298518452181.,.498541939227301241044,-52,53, + 6671477663238931.,7978298518452187.,.499786724938507012222,-52,53, + 6671477663251011.,7978298518452592.,.499993520182697610873,-52,53, + 6676648134730706.,7978476864280845.,.499947353269759432575,-52,53, + 6676648134730988.,7978476864280855.,.499519013819569563950,-52,53, + 6676648134731946.,7978476864280889.,.469695080732002541783,-52,53, + 6676648134731947.,7978476864280890.,-.494845445294005724379,-52,53, + 6676648134731975.,7978476864280890.,.498019825977914531869,-52,53, + 6676648134735331.,7978476864281010.,-.499985515165830670641,-52,53, + 6676648134749347.,7978476864281507.,-.499998241268878280956,-52,53, + 6863840991767760.,7991589374334322.,-.499996519830083570938,-52,53, + 6863840991822741.,7991589374340055.,-.499972887332378042690,-52,53, + 6863840991833578.,7991589374341184.,.499868206921476729171,-52,53, + 6863840991833789.,7991589374341207.,-.498658463240022162058,-52,53, + 6863840991833933.,7991589374341222.,-.483434958506863932288,-52,53, + 6863840991833952.,7991589374341223.,.497740365034877196593,-52,53, + 6863840991834959.,7991589374341329.,-.499967487065846331704,-52,53, + 6932976942189702.,7999660452895062.,-.499998139304002989113,-52,53, + 6932976942200974.,7999660452896517.,.499974358249869817255,-52,53, + 6932976942262970.,7999660452904525.,.499823908584412901639,-52,53, + 6932976942266864.,7999660452905028.,.486329763781369974961,-52,53, + 6932976942266872.,7999660452905030.,-.480313264759114594773,-52,53, + 6932976942266926.,7999660452905036.,.494846292593214376639,-52,53, + 6932976942266957.,7999660452905040.,.499104556999653086661,-52,53, + 6932976942267197.,7999660452905071.,.499813700803089009290,-52,53, + 6997291737940033.,8008706836437976.,-.499999718011226655361,-52,53, + 6997291737940388.,8008706836438030.,-.499975127816480649842,-52,53, + 6997291737952103.,8008706836439812.,-.499163626277486355507,-52,53, + 6997291737957428.,8008706836440622.,-.498794745826686096252,-52,53, + 6997291737957691.,8008706836440662.,-.493142723864542040778,-52,53, + 6997291737957737.,8008706836440669.,-.495956438651908815593,-52,53, + 6997291737957783.,8008706836440676.,-.498770153438523995372,-52,53, + 7143909179123988.,8034803912959924.,-.499965686778581678578,-52,53, + 7143909179127959.,8034803912960733.,-.499904405594215530929,-52,53, + 7143909179128764.,8034803912960897.,-.499640156282125611518,-52,53, + 7143909179128980.,8034803912960941.,-.494600307981008162843,-52,53, + 7143909179128985.,8034803912960942.,-.475965126307178307091,-52,53, + 7143909179139067.,8034803912962996.,-.499984781445420277251,-52,53, + 7143909179154146.,8034803912966067.,.499996203264796479510,-52,53, + 7408864542532035.,8100933864604146.,.499998814576577583827,-52,53, + 7408864542578255.,8100933864617787.,-.499755610458977405555,-52,53, + 7408864542578848.,8100933864617962.,-.499319741896457281461,-52,53, + 7408864542578882.,8100933864617972.,-.465567938299014690575,-52,53, + 7408864542578892.,8100933864617974.,.485535533347367056774,-52,53, + 7408864542579973.,8100933864618293.,.499820818522539093483,-52,53, + 7408864542586906.,8100933864620339.,.499857721733714475242,-52,53, + 7408864542612327.,8100933864627841.,.499993173894428058243,-52,53, + 7417783623948815.,8103579553549447.,-.499993062298845852364,-52,53, + 7417783623950928.,8103579553550076.,.499964544147146545257,-52,53, + 7417783623952937.,8103579553550675.,.491878805545646314103,-52,53, + 7417783623952954.,8103579553550681.,-.439498724342069708094,-52,53, + 7417783623952984.,8103579553550690.,-.494870835908386858052,-52,53, + 7417783623953041.,8103579553550706.,.499922152116456528222,-52,53, + 7417783623972437.,8103579553556490.,-.499993647905374377605,-52,53, + 7602884003716311.,8164593146581734.,.499995609257527305628,-52,53, + 7602884003731527.,8164593146587228.,-.499938160475440011031,-52,53, + 7602884003734189.,8164593146588188.,.486272172556556083977,-52,53, + 7602884003734200.,8164593146588192.,.457289570631907896442,-52,53, + 7602884003734250.,8164593146588211.,-.492631347206886331727,-52,53, + 7602884003734322.,8164593146588236.,.499482531106735239395,-52,53, + 7602884003735840.,8164593146588784.,.499883465960368318637,-52,53, + 8248300471480546.,8467857921814170.,.499999523481881050414,-52,53, + 8248300471499734.,8467857921825280.,.499978554511702237857,-52,53, + 8248300471509328.,8467857921830835.,.499968117043329664307,-52,53, + 8248300471512758.,8467857921832821.,.496420511504218271244,-52,53, + 8248300471512777.,8467857921832832.,.497567040814139006911,-52,53, + 8248300471512815.,8467857921832854.,.499860099434349277529,-52,53, + 8270159510149196.,8480595862151568.,.499994598212426510802,-52,53, + 8270159510155014.,8480595862154981.,-.499977394975516106033,-52,53, + 8270159510157894.,8480595862156669.,.492817497506980917874,-52,53, + 8270159510157923.,8480595862156687.,-.499963387241835283911,-52,53, + 8581012629572230.,8679480156671333.,-.499999984012202251953,-52,53, + 8581012629600757.,8679480156691117.,.499980681558447593851,-52,53, + 8581012629616626.,8679480156702124.,-.499924787409157500036,-52,53, + 8581012629616874.,8679480156702296.,-.498662990524840871143,-52,53, + 8581012629616936.,8679480156702339.,-.498347541300409979053,-52,53, + 8581012629616949.,8679480156702348.,-.482152366462859279958,-52,53, + 8581012629619775.,8679480156704307.,.499967949622278247971,-52,53, + 8772953774110694.,8819065678005073.,-.499987177843573940186,-52,53, + 8772953774119795.,8819065678011999.,.499231906089222693095,-52,53, + 8772953774119837.,8819065678012031.,.466484647782056343419,-52,53, + 8772953774119841.,8819065678012035.,-.489015091104307740838,-52,53, + 8772953774120222.,8819065678012324.,.499634779995590439123,-52,53, + 8772953774120649.,8819065678012650.,-.499962346033214044000,-52,53, + 8772953774185143.,8819065678061737.,.499998477708432988807,-52,53, + 9007199188959698.,9007199199118392.,-.499999226129136208610,-52,53, + 9007199188967585.,9007199199125060.,.499912851571194216672,-52,53, + 9007199188975077.,9007199199131396.,-.499790273529213192888,-52,53, + 9007199188975103.,9007199199131417.,.484994526125782484421,-52,53, + 9007199188975116.,9007199199131428.,.477386925953373050255,-52,53, + 9007199188975472.,9007199199131729.,.499824952025263443273,-52,53, + 9007199195407605.,9007199204570539.,.499998722617531323220,-52,53, + 9007199195446205.,9007199204603178.,.449830844668449953287,-52,53, + 9007199195446211.,9007199204603184.,-.476757264285757643986,-52,53, + 9007199195446250.,9007199204603217.,-.499579972487786047564,-52,53, + 9007199195446645.,9007199204603551.,-.499963811938515104695,-52,53, + 9007199195449274.,9007199204605774.,-.499986883689470440275,-52,53, + 9007199195451903.,9007199204607996.,.499990047087767426454,-52,53, + 9007199197192275.,9007199206079601.,-.499511836602388508526,-52,53, + 9007199197192482.,9007199206079776.,-.466801463305921820142,-52,53, + 9007199197192495.,9007199206079787.,-.474409024402722091817,-52,53, + 9007199197192534.,9007199206079820.,-.497231707692751998121,-52,53, + 9007199197192670.,9007199206079935.,-.499895423776708541452,-52,53, + 9007199197197928.,9007199206084381.,-.499938206600150947611,-52,53, + 9007199197205815.,9007199206091049.,.499997638126134464844,-52,53, + 9007199203255597.,9007199211206556.,-.499908775672416094721,-52,53, + 9007199203255610.,9007199211206566.,.492483692062350520132,-52,53, + 9007199203255616.,9007199211206572.,-.434104399752351730806,-52,53, + 9007199203260855.,9007199211211002.,-.499939897597541910746,-52,53, + 9007199203271371.,9007199211219893.,.499997888890524916189,-52,53, + 9007199218997304.,9007199224517250.,-.496426884720721123609,-52,53, + 9007199218997317.,9007199224517260.,.495965657869640170139,-52,53, + 9007199218997440.,9007199224517365.,-.499089516080035833072,-52,53, + 9007199218997835.,9007199224517699.,-.499469952710272632725,-52,53, + 9007199218998230.,9007199224518033.,-.499850389283437407716,-52,53, + 9007199219021891.,9007199224538040.,-.499854107353539366257,-52,53, + 9007199219665996.,9007199225082675.,-.499876656752356019637,-52,53, + 9007199221812445.,9007199226897645.,-.499997425599175790301,-52,53, + 9007199221849251.,9007199226928767.,-.499965232488850660828,-52,53, + 9007199221880346.,9007199226955059.,.457460601824106264665,-52,53, + 9007199221880365.,9007199226955076.,-.476734892814454373139,-52,53, + 9007199221880404.,9007199226955109.,-.499557223914244081698,-52,53, + 9007199221880799.,9007199226955443.,-.499937243996145330191,-52,53, + 9007199222088885.,9007199227131393.,.499876111154970249165,-52,53, + 9007199222089280.,9007199227131727.,.499496121195683629836,-52,53, + 9007199222089526.,9007199227131936.,-.490613948471639883433,-52,53, + 9007199222089539.,9007199227131947.,-.498221391177020850879,-52,53, + 9007199222089675.,9007199227132061.,.499116131293469035194,-52,53, + 9007199222091514.,9007199227133616.,.499878660069735972065,-52,53, + 9007199222151981.,9007199227184745.,.499937982890673890753,-52,53, + 9007199222215077.,9007199227238098.,-.499998689134332806891,-52,53, + 9007199223122872.,9007199228005701.,-.499687104971631430824,-52,53, + 9007199223122911.,9007199228005733.,.477490581653835819843,-52,53, + 9007199223122924.,9007199228005744.,.469883143862448539639,-52,53, + 9007199223123267.,9007199228006034.,.499933054465870794483,-52,53, + 9007199223154815.,9007199228032710.,.499975744937742333316,-52,53, + 9007199223173218.,9007199228048272.,-.499999184162150700978,-52,53, + 9007199225153386.,9007199229722640.,-.499620726793240810638,-52,53, + 9007199225153522.,9007199229722754.,.497716948094832316048,-52,53, + 9007199225153561.,9007199229722787.,.474894663688983889643,-52,53, + 9007199225153574.,9007199229722798.,.467287235553824717081,-52,53, + 9007199225153781.,9007199229722973.,.499999726025388416660,-52,53, + 9007199225608993.,9007199230107887.,-.499391282770623651149,-52,53, + 9007199225609116.,9007199230107991.,-.494446159248525797677,-52,53, + 9007199225609129.,9007199230108001.,.497946414782588388685,-52,53, + 9007199225609388.,9007199230108221.,-.499770764123098315811,-52,53, + 9007199225609783.,9007199230108554.,.499849754581499044240,-52,53, + 9007199225612412.,9007199230110777.,.499855689388399792349,-52,53, + 9007199225664992.,9007199230155237.,.499974916446989353602,-52,53, + 9007199225675508.,9007199230164129.,.499998883211981460276,-52,53, + 9007199229504666.,9007199233401946.,-.499996320281384699894,-52,53, + 9007199229507295.,9007199233404169.,-.499986639937486573447,-52,53, + 9007199229538843.,9007199233430845.,-.499870278611638389563,-52,53, + 9007199229544101.,9007199233435291.,-.499850849662625367426,-52,53, + 9007199229544360.,9007199233435510.,-.497567655772951100958,-52,53, + 9007199229544399.,9007199233435542.,.479610122459665983186,-52,53, + 9007199229544405.,9007199233435548.,-.446977911658343545608,-52,53, + 9007199229544496.,9007199233435624.,.499770237553459671677,-52,53, + 9007199231904697.,9007199235431337.,-.499996422238948873445,-52,53, + 9007199231915213.,9007199235440229.,-.499948453678848647301,-52,53, + 9007199231917842.,9007199235442452.,-.499936455218340554584,-52,53, + 9007199231918101.,9007199235442671.,-.497653036442788239966,-52,53, + 9007199231918237.,9007199235442785.,.499684974970415639037,-52,53, + 9007199234817260.,9007199237894109.,-.499999461144724516998,-52,53, + 9007199234840921.,9007199237914116.,-.499866267051071163262,-52,53, + 9007199234848277.,9007199237920336.,-.496781834309058766730,-52,53, + 9007199234848413.,9007199237920451.,-.499443677128019560149,-52,53, + 9007199234848808.,9007199237920785.,-.499821823512375500624,-52,53, + 9007199239869855.,9007199242166425.,-.496959321527022029487,-52,53, + 9007199239869894.,9007199242166457.,.480218604006215816524,-52,53, + 9007199239869900.,9007199242166463.,-.446369407450159748905,-52,53, + 9007199239869991.,9007199242166540.,-.499620914536908087261,-52,53, + 9007199239870386.,9007199242166874.,-.499998335372848435211,-52,53, + 9007199242858154.,9007199244693236.,.499999349370382064695,-52,53, + 9007199242895355.,9007199244724692.,.499937900917654676140,-52,53, + 9007199242895614.,9007199244724912.,-.497777640308051796750,-52,53, + 9007199242895666.,9007199244724955.,.471792984622563350220,-52,53, + 9007199242895672.,9007199244724961.,-.454795020193071254994,-52,53, + 9007199242895750.,9007199244725026.,.499560917204877197706,-52,53, + 9007199242897984.,9007199244726915.,.499960458495895165062,-52,53, + 9007199242903242.,9007199244731362.,-.499994418763044202682,-52,53, + 9007199245003716.,9007199246507456.,.498680473244360733898,-52,53, + 9007199245003813.,9007199246507539.,-.481158863143539195552,-52,53, + 9007199245003826.,9007199246507550.,-.488766196885985895319,-52,53, + 9007199245003839.,9007199246507561.,-.496373530628370776966,-52,53, + 9007199245004370.,9007199246508010.,-.499411547283721802246,-52,53, + 9007199245005160.,9007199246508677.,.499835094794663577482,-52,53, + 9007199245013047.,9007199246515346.,.499908861832899657249,-52,53, + 9007199245023563.,9007199246524239.,-.499992746721413839257,-52,53, + 9007199245063393.,9007199246557917.,.499999910949034262850,-52,53, + 9007199251482738.,9007199251985914.,.499997799254323752732,-52,53, + 9007199251487996.,9007199251990361.,-.499940566846871623902,-52,53, + 9007199251495430.,9007199251996646.,.457544841509572165007,-52,53, + 9007199251495449.,9007199251996663.,-.476650447305156653659,-52,53, + 9007199251495488.,9007199251996696.,-.499472355924449470303,-52,53, + 9007199251495883.,9007199251997030.,-.499848097037215531331,-52,53, + 9007199254722194.,9007199254725097.,.000137702657675733292,-52,53, + 9007199254737968.,9007199254738435.,.000341326143227631309,-52,53, + 9007199254739548.,9007199254739771.,-.001159763991740023994,-52,53, + 9007199254740856.,9007199254740877.,.002660853220320889564,-52,53, + 9007199254740960.,9007199254740965.,-.058197446301709637884,-52,53, + 9007199254740986.,9007199254740987.,-.073412021181599088543,-52,53, + 9007199254740991.,9007199254740991.,.154431329803065904107,-52,53, + 4503599627370497.,4503599627370497.,-.154431329803065355425,-51,52, + 4503599627370564.,4503599627370553.,.498669573393222359811,-51,52, + 4503599627385153.,4503599627382889.,.499999155047034483074,-51,52, + 4503599630237029.,4503599629794346.,.499891310274715978322,-51,52, + 4503599630237424.,4503599629794680.,.499516866469399808303,-51,52, + 4503599630238078.,4503599629795234.,-.498571452896556235631,-51,52, + 4503599630238117.,4503599629795266.,.478606766600681153464,-51,52, + 4503599630238136.,4503599629795283.,-.455588459797697533296,-51,52, + 4503599630238214.,4503599629795348.,.498767979201199618117,-51,52, + 4503599630242287.,4503599629798792.,.499970242340812597654,-51,52, + 4503599630244916.,4503599629801016.,-.499990284041559420670,-51,52, + 4503599632664056.,4503599631846565.,-.499942295214851458545,-51,52, + 4503599632669314.,4503599631851011.,-.499854027289922073549,-51,52, + 4503599632669670.,4503599631851312.,-.477406057106358961041,-51,52, + 4503599632669683.,4503599631851323.,-.485013294148462927857,-51,52, + 4503599632669709.,4503599631851344.,.499772231767700047233,-51,52, + 4503599632682854.,4503599631862459.,.499992993865327008050,-51,52, + 4503599635996942.,4503599634664748.,.499965962894914969366,-51,52, + 4503599635997732.,4503599634665416.,.499220404308794713570,-51,52, + 4503599635998127.,4503599634665750.,.498847625186950660860,-51,52, + 4503599635998153.,4503599634665772.,.483633214413314204939,-51,52, + 4503599635998159.,4503599634665778.,-.442954726534377822882,-51,52, + 4503599635999571.,4503599634666972.,-.499983495492182395250,-51,52, + 4503599636018369.,4503599634682866.,.499997664104489626670,-51,52, + 4503599638940341.,4503599637153594.,.499999470226702258126,-51,52, + 4503599638974369.,4503599637182368.,-.489002624677301276883,-51,52, + 4503599638974382.,4503599637182379.,-.496609801758691112132,-51,52, + 4503599638974518.,4503599637182494.,-.499269500448895528276,-51,52, + 4503599638974913.,4503599637182828.,-.499641419362105332143,-51,52, + 4503599638975308.,4503599637183161.,.499986661838828914204,-51,52, + 4503599640398439.,4503599638386516.,.499995615844967253457,-51,52, + 4503599640400673.,4503599638388406.,-.499573870297504491750,-51,52, + 4503599640400777.,4503599638388493.,.439568821573524777737,-51,52, + 4503599640400783.,4503599638388499.,-.487019100049059036837,-51,52, + 4503599640400809.,4503599638388520.,.497766572920048768705,-51,52, + 4503599640401068.,4503599638388740.,-.499945377091453626603,-51,52, + 4503599641300484.,4503599639149257.,.499998366410934852859,-51,52, + 4503599641305742.,4503599639153704.,-.499880144578113626661,-51,52, + 4503599641307322.,4503599639155039.,.498634875090361070159,-51,52, + 4503599641307361.,4503599639155072.,.475813410409071519866,-51,52, + 4503599641307380.,4503599639155089.,-.458381662127563880954,-51,52, + 4503599641307976.,4503599639155593.,-.499448147879524842783,-51,52, + 4503599642464652.,4503599640133642.,-.499996216028187111571,-51,52, + 4503599642496990.,4503599640160986.,-.499981912259373128311,-51,52, + 4503599642505136.,4503599640167874.,-.497504318733244506718,-51,52, + 4503599642505162.,4503599640167895.,.487281394262677854889,-51,52, + 4503599642505272.,4503599640167988.,.499836333866283107146,-51,52, + 4503599642510530.,4503599640172434.,.499962457242951381011,-51,52, + 4503599651767409.,4503599647999762.,-.499959440478577187149,-51,52, + 4503599651767804.,4503599648000095.,.499672337399086824637,-51,52, + 4503599651768199.,4503599648000429.,.499304115390894887023,-51,52, + 4503599651768238.,4503599648000462.,.476482949173492575223,-51,52, + 4503599651768251.,4503599648000473.,.468875893767939077105,-51,52, + 4503599651778320.,4503599648008987.,.499995863322796780288,-51,52, + 4503599652221067.,4503599648383360.,.499997011643206333254,-51,52, + 4503599652229349.,4503599648390363.,.499874175050886483086,-51,52, + 4503599652229744.,4503599648390697.,.499506086416405526003,-51,52, + 4503599652230398.,4503599648391251.,-.498571710717332214549,-51,52, + 4503599652231978.,4503599648392586.,.499955936642135947827,-51,52, + 4503599653629104.,4503599649573952.,.499998497281025195066,-51,52, + 4503599653639879.,4503599649583064.,-.497373098902665406270,-51,52, + 4503599653639931.,4503599649583107.,.472198750676680385047,-51,52, + 4503599653639944.,4503599649583118.,.464591713071825923479,-51,52, + 4503599653640015.,4503599649583178.,.499968661539802345048,-51,52, + 4503599654924353.,4503599650669174.,.499998006626628938670,-51,52, + 4503599654934040.,4503599650677366.,-.476098493476847832209,-51,52, + 4503599654934053.,4503599650677377.,-.483705518774104392244,-51,52, + 4503599654934079.,4503599650677399.,-.498919569368246603589,-51,52, + 4503599654934474.,4503599650677733.,-.499286876410732303263,-51,52, + 4503599654935264.,4503599650678400.,.499978509846728449476,-51,52, + 4503599656139152.,4503599651696371.,-.499988038931484675149,-51,52, + 4503599656141781.,4503599651698594.,-.499898757570349895268,-51,52, + 4503599656142571.,4503599651699261.,.499367326443624450668,-51,52, + 4503599656142966.,4503599651699595.,.499000368621827699733,-51,52, + 4503599656143089.,4503599651699700.,-.496050608094312073508,-51,52, + 4503599656150063.,4503599651705597.,-.499997838919587137618,-51,52, + 6755399441041087.,9007199254686891.,.000002084900656440112,-51,52, + 6755399441046345.,9007199254706299.,.000137735830496602575,-51,52, + 6755399441054232.,9007199254735411.,.000341327001692815562,-51,52, + 6755399441055741.,9007199254740981.,-.073412021181595708972,-51,52, + 6755399441055743.,9007199254740988.,.308862659606132549509,-51,52, + 6755399441055745.,4503599627370498.,-.154431329803065167671,-51,51, + 6755399441055760.,4503599627370526.,-.470901276848909832745,-51,51, + 6755399441055812.,4503599627370621.,.498669573394090534128,-51,51, + 6755399441056466.,4503599627371829.,-.499420117524898307636,-51,51, + 9007199254711678.,6755399440945279.,-.499996163756607950676,-51,50, + 9007199254739984.,6755399441051946.,-.499829336504597333044,-51,50, + 9007199254740774.,6755399441054922.,.499044845661425874150,-51,50, + 9007199254740964.,6755399441055638.,.486115851729732538009,-51,50, + 9007199254740990.,6755399441055736.,.463293989409202124083,-51,50, + 9007199254740991.,6755399441055740.,.231646994704599821931,-51,50, + 4503599627370497.,6755399441055752.,-.463293989409192203195,-50,50, + 4503599627370564.,6755399441056256.,.496008720197529966505,-50,50, + 4503599627376258.,6755399441099171.,-.499966811104115058266,-50,50, + 4755234334792167.,9007199254611589.,-.499996900967328446744,-50,50, + 4755234334803676.,9007199254732906.,-.499989066763963704433,-50,50, + 4755234334804358.,9007199254740094.,.499403236990076002688,-50,50, + 4755234334804419.,9007199254740738.,-.496252289770961606948,-50,50, + 4755234334804443.,9007199254740990.,.489063568567082429351,-50,50, + 4755234334804444.,4503599627370501.,-.484940802000993910488,-50,49, + 5629499534075445.,6755399439811616.,-.499882346597371779826,-50,48, + 5629499534207358.,6755399441003674.,.499967196044775405697,-50,48, + 5629499534212943.,6755399441054145.,-.496963874364267670971,-50,48, + 5629499534213079.,6755399441055373.,.495053565788235344027,-50,48, + 5629499534213106.,6755399441055617.,.486115851730060541051,-50,48, + 5629499534213119.,6755399441055735.,-.036706010590796202432,-50,48, + 5629499534213121.,6755399441055753.,.036706010590809470290,-50,48, + 5629499534213133.,6755399441055861.,.477178137681558006711,-50,48, + 5629499534213624.,6755399441060298.,.499829339449753661303,-50,48, + 5629499534218882.,6755399441107814.,-.499966755543338369657,-50,48, + 6755399440986017.,8444249300427462.,-.499950509075854698287,-50,46, + 6755399441044645.,8444249301177658.,.499986834555777787111,-50,46, + 6755399441048628.,8444249301228625.,-.499963683677933723871,-50,46, + 6755399441054894.,8444249301308803.,.499863754712987275986,-50,46, + 6755399441055477.,8444249301316263.,.499368966053756151856,-50,46, + 6755399441055722.,8444249301319398.,.490584708757906698262,-50,46, + 6755399441055742.,8444249301319654.,.408234973523034104950,-50,46, + 6755399441055743.,8444249301319667.,.204117486761506753512,-50,46, + 6755399441055745.,8444249301319693.,-.204117486761486155586,-50,46, + 6755399441056011.,8444249301323097.,-.499368964585350577225,-50,46, + 7881299347897409.,6333186975979657.,.499002361616670404020,-50,43, + 7881299347898339.,6333186975989455.,-.497944662929761294094,-50,43, + 7881299347898367.,6333186975989749.,.465588115071131485762,-50,43, + 7881299347898369.,6333186975989771.,-.465588115071113196061,-50,43, + 7881299347898382.,6333186975989907.,.481766389006079617981,-50,43, + 7881299347898397.,6333186975990065.,.497944662945142933032,-50,43, + 7881299347900315.,6333186976010270.,.499939991191184718928,-50,43, + 7881299347915397.,6333186976169150.,.499991105744033003265,-50,43, + 9007199254740991.,5541538603991030.,.079264600687241219597,-50,40, + 4503599627370497.,5541538603991060.,-.158529201374427411399,-49,40, + 4503599627370499.,5541538603991100.,-.475587604123062123020,-49,40, + 4503599627370537.,5541538603991854.,-.499697256291360145553,-49,40, + 4503599627372114.,5541538604023143.,.499752272156147354582,-49,40, + 4503599627378750.,5541538604154811.,.499974354481324798000,-49,40, + 4503599627380409.,5541538604187729.,-.499969620097538053241,-49,40, + 4503599627507578.,5541538606710949.,-.499293445349537371314,-49,40, + 5066549580718559.,5541538602447542.,-.499776802172668343876,-49,37, + 5066549580770700.,5541538603546254.,-.499974079862791541205,-49,37, + 5066549580790550.,5541538603964532.,-.499952105895206768791,-49,37, + 5066549580790689.,5541538603967460.,.499645139477731212298,-49,37, + 5066549580791662.,5541538603987963.,.496825901547651466647,-49,37, + 5066549580791801.,5541538603990892.,.496423159623262129668,-49,37, + 5066549580791807.,5541538603991019.,-.071939548625494812517,-49,37, + 5066549580791809.,5541538603991061.,.071939548625576994292,-49,37, + 5162565563412506.,7997068501964759.,-.499917149571513688540,-49,37, + 5162565563447547.,7997068503040205.,.499984559004616949740,-49,37, + 5162565563448570.,7997068503071603.,-.499901932161327055310,-49,37, + 5162565563449525.,7997068503100913.,-.494908268864561698305,-49,37, + 5162565563449538.,7997068503101311.,.489452902180555559108,-49,37, + 5162565563449593.,7997068503103000.,-.499788297018251915520,-49,37, + 5162565563456563.,7997068503316917.,-.499988222475486852573,-49,37, + 5629499534034761.,6234230925042289.,-.498359291382575629674,-49,34, + 5629499534209936.,6234230929410523.,-.499962660590294166208,-49,34, + 5629499534210675.,6234230929428951.,-.499814383796401746157,-49,34, + 5629499534212892.,6234230929484235.,-.499369219803653441651,-49,34, + 5629499534213065.,6234230929488548.,.497959178948957108522,-49,34, + 5629499534213112.,6234230929489721.,-.491205937626565136451,-49,34, + 5629499534213119.,6234230929489895.,.063599257796323014829,-49,34, + 5629499534213121.,6234230929489945.,-.063599257796221202511,-49,34, + 6192449487548020.,7792788659049277.,-.499480768241824350756,-49,31, + 6192449487630215.,7792788661725117.,-.499969705099853013920,-49,31, + 6192449487630644.,7792788661739082.,.499908532860475770760,-49,31, + 6192449487634076.,7792788661850810.,.498935353107378480625,-49,31, + 6192449487634359.,7792788661860024.,-.498813819471564793648,-49,31, + 6192449487634404.,7792788661861488.,.466208397923752842201,-49,31, + 6192449487634431.,7792788661862367.,.445221728495409305530,-49,31, + 6192449487634433.,7792788661862433.,-.445221728495270966145,-49,31, + 6755399441044695.,5357542204773549.,-.499996962229879032227,-49,27, + 6755399441051500.,5357542204931742.,-.499955057973581141565,-49,27, + 6755399441054866.,5357542205009989.,.499773519632144238936,-49,27, + 6755399441055377.,5357542205021869.,-.496108344783911935289,-49,27, + 6755399441055742.,5357542205030354.,-.493166803006202639344,-49,27, + 6755399441055743.,5357542205030377.,-.246583401503152488142,-49,27, + 6755399441055745.,5357542205030423.,.246583401503254825082,-49,27, + 6755399441056549.,5357542205049113.,.499638243237391274413,-49,27, + 7318349394477055.,8036313307545564.,-.059488444539879820435,-49,24, + 7318349394477057.,8036313307545636.,.059488444540043649401,-49,24, + 7318349394477064.,8036313307545888.,.475907556324936406272,-49,24, + 7318349394477098.,8036313307547114.,.498514670822890015031,-49,24, + 7318349394477720.,8036313307569544.,-.499672789349640000764,-49,24, + 7318349394478073.,8036313307582272.,.499748181864333393579,-49,24, + 7318349394483116.,8036313307764120.,.499976920362831271384,-49,24, + 7318349394496917.,8036313308261778.,-.499970679888532921304,-49,24, + 7881299347834459.,6529504560451353.,-.499720098303819466873,-49,20, + 7881299347898019.,6529504562370264.,-.499984389408400260780,-49,20, + 7881299347898250.,6529504562377238.,-.484235411522696987357,-49,20, + 7881299347898360.,6529504562380558.,.475645056783826994239,-49,20, + 7881299347898365.,6529504562380709.,.428366896292876738963,-49,20, + 7881299347898367.,6529504562380770.,-.190544367902515538196,-49,20, + 7881299347898369.,6529504562380830.,.190544367902656656046,-49,20, + 7881299347898717.,6529504562391336.,.499984406596695529527,-49,20, + 8444249301304039.,5713316491658678.,-.499966091836793861104,-49,16, + 8444249301319267.,5713316492071990.,.499808682383377903770,-49,16, + 8444249301319679.,5713316492083173.,-.141646952369714833941,-49,16, + 8444249301319681.,5713316492083227.,.141646952369845015708,-49,16, + 8444249301319684.,5713316492083309.,-.433412190519838846571,-49,16, + 8444249301319712.,5713316492084069.,-.467297524100389341223,-49,16, + 8444249301319740.,5713316492084828.,.498817142421122668980,-49,16, + 8444249301322218.,5713316492152085.,.499965533780728239005,-49,16, + 8444249301348424.,5713316492863360.,-.499947303816706124202,-49,16, + 8868774900057824.,5470542578549607.,-.499961353258999410226,-49,13, + 8868774900082024.,5470542579190443.,-.465350790513717941725,-49,13, + 8868774900082026.,5470542579190495.,.496304965555031073738,-49,13, + 8868774900082078.,5470542579191872.,.499354623524063592337,-49,13, + 8868774900082417.,5470542579200850.,-.499994713069078829644,-49,13, + 9007199254692694.,5356234210068408.,-.499858083622203892204,-49,12, + 9007199254740991.,5356234211327974.,-.079599569494744597105,-49,12, + 4503599627370497.,5356234211328052.,.159199138989873410397,-48,12, + 4503599627370499.,5356234211328156.,.477597416971157095938,-48,12, + 4503599627370518.,5356234211329148.,-.497618942104446385729,-48,12, + 4503599627370920.,5356234211350116.,-.499565022353712966608,-48,12, + 4503599627373018.,5356234211459546.,-.499769838984648597611,-48,12, + 4503599627375116.,5356234211568976.,-.499972400725577842116,-48,12, + 4785074604060380.,5356234210219845.,-.499872391010596246037,-48,8, + 4785074604080746.,5356234211306341.,-.499951577800300928857,-48,8, + 4785074604081119.,5356234211326239.,.498772405405523972104,-48,8, + 4785074604081142.,5356234211327467.,-.485220483272024213642,-48,8, + 4785074604081151.,5356234211327947.,-.348522048329611953504,-48,8, + 4785074604081153.,5356234211328053.,.348522048330147405091,-48,8, + 4785074604081159.,5356234211328373.,.439654338322276318953,-48,8, + 4785074604081185.,5356234211329761.,-.498772404822417194277,-48,8, + 4785074604081558.,5356234211349659.,.499951666061998660639,-48,8, + 4785074604112107.,5356234212979404.,-.499737410499949191640,-48,8, + 5066549580783061.,5690998849029793.,-.499969366821141320197,-48,4, + 5066549580791765.,5690998849533511.,.498513815845205240380,-48,4, + 5066549580791807.,5690998849535942.,.127872414309536732129,-48,4, + 5066549580791809.,5690998849536058.,-.127872414308944123315,-48,4, + 5066549580791812.,5690998849536231.,.488510342767779159623,-48,4, + 5066549580791851.,5690998849538489.,-.498513814749471543691,-48,4, + 5066549580792156.,5690998849556140.,-.499600143732019954829,-48,4, + 5066549580793157.,5690998849614070.,-.499886363950281026915,-48,4, + 5066549580796856.,5690998849828139.,-.499939882526706036047,-48,4, + 5066549580849338.,5690998852865384.,-.499014531639447150616,-48,4, + 5348024557476627.,6402373704013204.,-.499763490955470936806,-48,0, + 5348024557501070.,6402373705635481.,-.499979683395842467788,-48,0, + 5348024557502463.,6402373705727934.,-.369799125075787140001,-48,0, + 5348024557502465.,6402373705728066.,.369799125076479525303,-48,0, + 5348024557502468.,6402373705728265.,.479196500310072413031,-48,0, + 5348024557502487.,6402373705729527.,-.494620123065797436382,-48,0, + 5348024557502560.,6402373705734372.,-.499283989500688589554,-48,0, + 5348024557503858.,6402373705820519.,.499981028863888972494,-48,0, + 5445230838667120.,8796967507726239.,-.499341869119839652430,-48,-1, + 5445230838690912.,8796967509909657.,-.499928248779493112931,-48,-1, + 5445230838702808.,8796967511001365.,.499983034389555723598,-48,-1, + 5445230838703590.,8796967511073130.,.499813853693192373645,-48,-1, + 5445230838704005.,8796967511111216.,-.493881827757133253148,-48,-1, + 5445230838704018.,8796967511112409.,-.469587954857720082159,-48,-1, + 5445230838704040.,8796967511114427.,.494601676573679760979,-48,-1, + 5445230838704289.,8796967511137278.,.498384355728925054919,-48,-1, + 5629499534210857.,7602818775370427.,-.499987305534308318783,-48,-4, + 5629499534212927.,7602818775536515.,-.499557196185169326371,-48,-4, + 5629499534213119.,7602818775551920.,-.235749001098264907264,-48,-4, + 5629499534213121.,7602818775552080.,.235749001099116588922,-48,-4, + 5629499534213122.,7602818775552160.,.471498002199084859504,-48,-4, + 5629499534213139.,7602818775553524.,.479231021028852753194,-48,-4, + 5629499534213190.,7602818775557617.,-.497569921005027569257,-48,-4, + 5629499534213313.,7602818775567485.,.499557227909459437570,-48,-4, + 5629499534215383.,7602818775733573.,.499991667140017585503,-48,-4, + 5629499534261678.,7602818779448088.,-.499000568470408775964,-48,-4, + 5910974510915204.,4751761734282902.,-.499977432919267319013,-48,-9, + 5910974510923601.,4751761734711077.,-.499474978475370113177,-48,-9, + 5910974510923718.,4751761734717042.,.497316862410187658707,-48,-9, + 5910974510923775.,4751761734719949.,.008574428646566281674,-48,-9, + 5910974510923777.,4751761734720051.,-.008574428646016164722,-48,-9, + 5910974510923801.,4751761734721275.,-.214360715985369032452,-48,-9, + 5910974510925817.,4751761734824073.,.499592278725480783645,-48,-9, + 5910974510932348.,4751761735157099.,-.499982144935996570425,-48,-9, + 6192449487570494.,6236687272473409.,-.498479528233541755752,-48,-13, + 6192449487629955.,6236687276515647.,.499999526237294715013,-48,-13, + 6192449487634405.,6236687276818165.,-.496426225837784630933,-48,-13, + 6192449487634431.,6236687276819932.,.018650880514845743013,-48,-13, + 6192449487634433.,6236687276820068.,-.018650880514101069772,-48,-13, + 6192449487634453.,6236687276821428.,-.391668490639741084515,-48,-13, + 6192449487634459.,6236687276821835.,.496426226380651423889,-48,-13, + 6192449487634566.,6236687276829110.,-.499217982253760095567,-48,-13, + 6192449487634995.,6236687276858273.,.499554388370638522682,-48,-13, + 6192449487635692.,6236687276905656.,.499891142885126944755,-48,-13, + 6192449487638909.,6236687277124353.,-.499984600357585875460,-48,-13, + 6473924464334312.,8575445004605298.,-.499930078451799785447,-48,-17, + 6473924464342315.,8575445005364455.,.499959896949641966221,-48,-17, + 6473924464344772.,8575445005597524.,.499814710669232259870,-48,-17, + 6473924464345063.,8575445005625129.,-.479445042547222291294,-48,-17, + 6473924464345084.,8575445005627121.,-.436711206851828417208,-48,-17, + 6473924464345087.,8575445005627405.,.140822198285461722462,-48,-17, + 6473924464345089.,8575445005627595.,-.140822198284407606972,-48,-17, + 6473924464345120.,8575445005630535.,.493689655421797860186,-48,-17, + 6473924464345333.,8575445005650740.,.498561451827648302765,-48,-17, + 6473924464345404.,8575445005657476.,-.499814605409475841202,-48,-17, + 6473924464355864.,8575445006649703.,-.499947515363688860281,-48,-17, + 6755399441015531.,6163601095014757.,-.499371160463771675401,-48,-22, + 6755399441055251.,6163601097760683.,.499850879594814894931,-48,-22, + 6755399441055743.,6163601097794696.,.492900305852240584517,-48,-22, + 6755399441055745.,6163601097794835.,-.242900305851461876040,-48,-22, + 6755399441056008.,6163601097813016.,.499319282247708228750,-48,-22, + 6755399441056818.,6163601097869014.,-.499928035777451449304,-48,-22, + 6755399441060709.,6163601098138006.,.499991043617585365846,-48,-22, + 7036874417761599.,4622700823093861.,.499996397683769177465,-48,-27, + 7036874417766393.,4622700823345706.,.485146308373255838588,-48,-27, + 7036874417766399.,4622700823346022.,-.314621955948475882648,-48,-27, + 7036874417766401.,4622700823346127.,-.247878044050924735584,-48,-27, + 7036874417766408.,4622700823346494.,.485725647609384804828,-48,-27, + 7036874417766453.,4622700823348858.,.487463666126937090146,-48,-27, + 7036874417766753.,4622700823364618.,.499050487261958811991,-48,-27, + 7036874417766783.,4622700823366195.,-.499790827657599264949,-48,-27, + 7036874417770229.,4622700823547224.,.499973721701945860330,-48,-27, + 7036874417803026.,4622700825270162.,-.499589395651034374406,-48,-27, + 7283736794698556.,4851555377924248.,.497239268973472863232,-48,-31, + 7283736794698583.,4851555377925753.,.484359015614294335720,-48,-31, + 7283736794698710.,4851555377932832.,.497848200544306257502,-48,-31, + 7283736794699249.,4851555377962876.,.499979581097749701379,-48,-31, + 7283736794709109.,4851555378512476.,-.499958869176964135798,-48,-31, + 7318349394477052.,7222970036477909.,-.472560961698152403892,-48,-31, + 7318349394477055.,7222970036478158.,-.143042584175977896247,-48,-31, + 7318349394477057.,7222970036478324.,.076636334176937759763,-48,-31, + 7318349394477070.,7222970036479405.,-.495450696435523783372,-48,-31, + 7318349394477161.,7222970036486967.,.499940093819319571979,-48,-31, + 7318349394489743.,7222970037532656.,-.499907303478649650485,-48,-31, + 7318349394540945.,7222970041788046.,-.498036812761934317660,-48,-31, + 7599824371174092.,5868663153707935.,-.499925202822400012531,-48,-36, + 7599824371187203.,5868663154603791.,.499962318295763807297,-48,-36, + 7599824371187702.,5868663154637887.,.498969214492947351421,-48,-36, + 7599824371187711.,5868663154638502.,.456867136289452190750,-48,-36, + 7599824371187713.,5868663154638639.,.114177785586346152448,-48,-36, + 7599824371188058.,5868663154662213.,-.499735162912617471687,-48,-36, + 7599824371197250.,5868663155290290.,-.499954728160080649703,-48,-36, + 7881299347887137.,4951684536071484.,-.499961132244616591308,-48,-41, + 7881299347895437.,4951684536555406.,-.499966003717496799181,-48,-41, + 7881299347898264.,4951684536720230.,.499320278529596167096,-48,-41, + 7881299347898343.,4951684536724837.,-.496101072794538074443,-48,-41, + 7881299347898366.,4951684536726177.,.492573724463329525142,-48,-41, + 7881299347898367.,4951684536726236.,-.203570849560671811970,-48,-41, + 7881299347898369.,4951684536726352.,.404140002393391836053,-48,-41, + 7881299347898705.,4951684536745942.,.499563169787432216758,-48,-41, + 7881299347899587.,4951684536797367.,-.499950645836478541646,-48,-41, + 8162774324574651.,8665447935726085.,-.499270454830580201676,-48,-45, + 8162774324578476.,8665447936120562.,-.499415428689665200653,-48,-45, + 8162774324609015.,8665447939270086.,.494321519602651722214,-48,-45, + 8162774324609023.,8665447939270912.,-.455743823401939379008,-48,-45, + 8162774324609025.,8665447939271118.,-.193260159140774686735,-48,-45, + 8162774324609076.,8665447939276378.,-.499926718817045040563,-48,-45, + 8444249301319674.,7853062194963791.,-.498805284301347252970,-48,-50, + 8444249301319679.,7853062194964263.,-.375075822044925684709,-48,-50, + 8444249301319681.,7853062194964451.,.474415962865613962366,-48,-50, + 8444249301319973.,7853062194992024.,-.499783391317304329128,-48,-50, + 8444249301321056.,7853062195094286.,-.499980833129124466269,-48,-50, + 8444249301326172.,7853062195577363.,-.499972113756429359876,-48,-50, + 5211934922339522.,5414484968077205.,-.499158753923983675542,-47,-86, + 5211934922339663.,5414484968096723.,.499966878519729085024,-47,-86, + 5211934922354526.,5414484970154248.,-.499607326029926478306,-47,-86, + 5381615355310981.,6606851059018090.,-.497320483393647374465,-47,-92, + 5381615355341407.,6606851064203961.,-.499943727400543198667,-47,-92, + 5381615355345275.,6606851064863231.,-.499722065186198397098,-47,-92, + 5381615355345845.,6606851064960382.,.491009036818418414605,-47,-92, + 5381615355345854.,6606851064961916.,.469810065697974294859,-47,-92, + 5381615355345888.,6606851064967712.,-.499163821980793469438,-47,-92, + 5381615355346596.,6606851065088384.,.499851674223611365546,-47,-92, + 5381615355348530.,6606851065418019.,.499998480757157728485,-47,-92, + 7246974269406481.,4504389924960573.,-.499817319965687210723,-47,-165, + 7246974269411809.,4504389925631030.,-.499924939843704529652,-47,-165, + 7246974269416342.,4504389926201446.,.463463068522111729698,-47,-165, + 7246974269416354.,4504389926202957.,-.498248581332241829178,-47,-165, + 7246974269416458.,4504389926216044.,-.499749525504714584842,-47,-165, + 7246974269417137.,4504389926301487.,-.499932638792117170322,-47,-165, + 7246974269477103.,4504389933847400.,-.493503757832168729659,-47,-165, + 7258154297613152.,6156104889478708.,-.499016618995238301962,-47,-165, + 7258154297628673.,6156104892149059.,-.499940010595325648983,-47,-165, + 7258154297633399.,6156104892962156.,-.481370902776813352076,-47,-165, + 7258154297634239.,6156104893106676.,-.486522989070433645718,-47,-165, + 7258154297636360.,6156104893471589.,-.499516889124536861345,-47,-165, + 7258154297636444.,6156104893486040.,.499968946832288287015,-47,-165, + 8873738654427478.,5646815506466445.,-.495449954722877893599,-47,-232, + 8873738654463768.,5646815512488736.,-.499893551408942466077,-47,-232, + 8873738654470500.,5646815513605905.,-.499955854809066585290,-47,-232, + 8873738654470638.,5646815513628805.,.468850886095038407082,-47,-232, + 8873738654470657.,5646815513631959.,-.499211946644681935415,-47,-232, + 4975357156842872.,7005109205538273.,-.364220579727815698826,-46,-278, + 4975357156936327.,7005109245090518.,-.498808089366518757032,-46,-278, + 4975357156945668.,7005109249043837.,.499436937298882182399,-46,-278, + 4975357156945677.,7005109249047647.,-.499386072812306176876,-46,-278, + 4975357156945749.,7005109249078119.,-.489970079082384254450,-46,-278, + 4975357156945884.,7005109249135254.,-.472314733287350997855,-46,-278, + 4975357156948218.,7005109250123054.,.499666977180953234706,-46,-278, + 4975357156954168.,7005109252641228.,-.499149164738208902983,-46,-278, + 5065447737842622.,6398090053869194.,-.497177758139424159774,-46,-286, + 5065447737858087.,6398090059872578.,-.464276215210192861891,-46,-286, + 5065447737858092.,6398090059874518.,.494028253308924022669,-46,-286, + 5065447737858139.,6398090059892764.,-.497909713807800759625,-46,-286, + 5065447737858499.,6398090060032513.,-.499986033007906607637,-46,-286, + 5114510755425658.,7874290297762950.,-.499952940811924037559,-46,-290, + 5114510755427337.,7874290298566928.,-.499633060393593587641,-46,-290, + 5114510755427356.,7874290298576026.,-.475805265884709278855,-46,-290, + 5114510755428218.,7874290298988788.,.499972055400983209080,-46,-290, + 5151902754096256.,4791338072485855.,-.496147974829758549483,-46,-294, + 5151902754109569.,4791338076371459.,-.499484877110979769514,-46,-294, + 5151902754117050.,4791338078554904.,-.482023723467855676941,-46,-294, + 5151902754117065.,4791338078559281.,.498897196254618217693,-46,-294, + 5151902754117117.,4791338078574458.,.499423082286802398297,-46,-294, + 5151902754117169.,4791338078589635.,.499949016429502498980,-46,-294, + 5953195199155228.,7483218029554071.,-.485760057569291882665,-46,-365, + 5953195199177051.,7483218039839538.,-.498744760426327446601,-46,-365, + 5953195199186104.,7483218044106335.,.499882460394787977196,-46,-365, + 5953195199186187.,7483218044145454.,.491817510658410842845,-46,-365, + 5953195199186203.,7483218044152996.,-.497688962151903456266,-46,-365, + 5953195199187343.,7483218044690292.,.499994421708633604373,-46,-365, + 6004623016718684.,5984395191567958.,-.497789490981604235304,-46,-370, + 6004623016727299.,5984395194821405.,-.499665697312390762757,-46,-370, + 6004623016732024.,5984395196605796.,.499476417470017149964,-46,-370, + 6004623016732252.,5984395196691900.,.494369120497601850341,-46,-370, + 6004623016734358.,5984395197487229.,.499884010174483040293,-46,-370, + 6004623016752366.,5984395204287935.,-.495174273646797321877,-46,-370, + 6169279465913266.,6139090319598831.,-.489035562695539676973,-46,-385, + 6169279465942628.,6139090331043698.,.499920664998162863865,-46,-385, + 6169279465943028.,6139090331199613.,-.488775256452805692370,-46,-385, + 6169279465943042.,6139090331205070.,-.498379541941649456728,-46,-385, + 6169279465943149.,6139090331246776.,.499645007836997518079,-46,-385, + 6169279465946168.,6139090332423538.,-.499900614407812471251,-46,-385, + 6169279465964389.,6139090339525811.,-.494353924829925802909,-46,-385, + 6453784654862612.,7022254451303851.,-.472465382725151239344,-46,-411, + 6453784654906256.,7022254470960385.,.492666416844229550801,-46,-411, + 6453784654906264.,7022254470963989.,-.439788415395704438526,-46,-411, + 6453784654906316.,7022254470987408.,.499255220131227830983,-46,-411, + 6453784654906775.,7022254471194134.,.499663007761341263523,-46,-411, + 6453784654907234.,7022254471400861.,-.499923115589583117067,-46,-411, + 6453784654909662.,7022254472494392.,-.499811161675475227414,-46,-411, + 6453784654912090.,7022254473587923.,-.499528827484226853558,-46,-411, + 6743637105588389.,6792996072179318.,-.498695076830012771385,-46,-438, + 6743637105596855.,6792996075903877.,.499767833700947446659,-46,-438, + 6743637105598019.,6792996076415972.,-.496031427176222561392,-46,-438, + 6743637105598037.,6792996076423890.,.483415279263430431848,-46,-438, + 6743637105598072.,6792996076439288.,.499006123780765093023,-46,-438, + 6743637105598266.,6792996076524637.,.499710295188293334379,-46,-438, + 6743637105613981.,6792996083438347.,-.496385706836993553817,-46,-438, + 6743637105639573.,6792996094697376.,-.475405671631175817422,-46,-438, + 7078377418878435.,4623456012968896.,-.498674218438211840730,-46,-470, + 7078377418882571.,4623456014220590.,-.499395041119554283012,-46,-470, + 7078377418888775.,4623456016098131.,-.499840599820293628854,-46,-470, + 7078377418889264.,4623456016246118.,.499673154120552515667,-46,-470, + 7078377418889865.,4623456016428002.,-.498872979920056318447,-46,-470, + 7078377418889966.,4623456016458568.,-.470341760755253731524,-46,-470, + 7078377418889977.,4623456016461897.,-.496937358340927207408,-46,-470, + 7078377418914080.,4623456023756283.,-.494240477608511174468,-46,-470, + 7243158468249813.,7008056604079788.,-.491804463560540948370,-46,-485, + 7243158468272957.,7008056614749728.,-.499009559362292859741,-46,-485, + 7243158468273040.,7008056614787992.,.494944764905371838966,-46,-485, + 7243158468273041.,7008056614788454.,-.481031687744740995119,-46,-485, + 7243158468273290.,7008056614903249.,-.499167453221318173560,-46,-485, + 7243158468274955.,7008056615670854.,-.499906453244160342189,-46,-485, + 7243158468306549.,7008056630236447.,-.482972669900970854805,-46,-485, + 7385373621708177.,5045068734610811.,.499838135797260977611,-46,-499, + 7385373621708715.,5045068734790121.,.472033904729935800185,-46,-499, + 7385373621708722.,5045068734792455.,-.498588041388746978366,-46,-499, + 7385373621708960.,5045068734871778.,-.499733567205707927897,-46,-499, + 7385373621710764.,5045068735473033.,-.499972526518500867116,-46,-499, + 7385373621717742.,5045068737798730.,-.499113252456420146819,-46,-499, + 7385373621724720.,5045068740124427.,-.497181393861580685511,-46,-499, + 7547906103970178.,7270741643370725.,-.499872859251130684298,-46,-514, + 7547906103972789.,7270741644630750.,-.499828409142418000512,-46,-514, + 7547906103972813.,7270741644642331.,.499407022639833738258,-46,-514, + 7547906103972981.,7270741644723405.,.494055561927865539594,-46,-514, + 7547906103972993.,7270741644729196.,.493673349342118009708,-46,-514, + 8568379155335284.,7672079692776489.,-.454648652832998458263,-46,-613, + 8568379155383415.,7672079717954184.,-.499891766017223708887,-46,-613, + 8568379155385607.,7672079719100836.,-.499402605231324071569,-46,-613, + 8568379155385672.,7672079719134837.,.498789699690211163158,-46,-613, + 8568379155385700.,7672079719149485.,-.486604337888254796524,-46,-613, + 8763424157586706.,4503672958211917.,-.491983142008212028296,-46,-633, + 8763424157614260.,4503672966712922.,.464800587431336332075,-46,-633, + 8763424157614262.,4503672966713540.,-.491868875425237576097,-46,-633, + 8763424157614285.,4503672966720636.,-.493567692197385630900,-46,-633, + 8763424157614377.,4503672966749019.,.499637152557536911127,-46,-633, + 8763424157629678.,4503672971469710.,-.497575965064661285470,-46,-633, + 8763424157634386.,4503672972922230.,-.495722628731064028668,-46,-633, + 8969286525227742.,5921979202321897.,-.483613562907153068568,-46,-653, + 8969286525229710.,5921979203124140.,-.485454233065755953081,-46,-653, + 8969286525257262.,5921979214355542.,-.499808506458797609020,-46,-653, + 8969286525261198.,5921979215960027.,.499880328212469580250,-46,-653, + 8969286525261577.,5921979216114525.,-.499618551487045060043,-46,-653, + 8969286525261883.,5921979216239264.,-.496572488747325413122,-46,-653, + 8969286525261897.,5921979216244971.,-.483361168098386758246,-46,-653, + 8969286525261911.,5921979216250678.,-.470149841947751450004,-46,-653, + 8969286525261956.,5921979216269022.,-.499113399200799656398,-46,-653, + 4716937883130901.,7713753656473040.,-.499883182795619460073,-45,-699, + 4716937883132324.,7713753658000030.,-.498246238989826110113,-45,-699, + 4716937883132362.,7713753658040806.,.465961844186560168143,-45,-699, + 4716937883132375.,7713753658054756.,.480033080037614373973,-45,-699, + 4716937883132465.,7713753658151334.,-.499473056564476645803,-45,-699, + 4716937883152079.,7713753679198686.,-.470988625679107447206,-45,-699, + 4716937883183846.,7713753713287155.,-.302071645128918346975,-45,-699, + 4771883193066457.,7933135432331189.,-.428679656263829481241,-45,-710, + 4771883193096544.,7933135465613959.,.499708586020140985178,-45,-710, + 4771883193096861.,7933135465964631.,-.499305231488685276475,-45,-710, + 4771883193097642.,7933135466828587.,-.499963966080759415465,-45,-710, + 5277488578028013.,6808938172791015.,-.499551186426373019586,-45,-813, + 5277488578028017.,6808938172794891.,-.441433432699446452331,-45,-813, + 5277488578029183.,6808938173924761.,.499985870429650833342,-45,-813, + 5277488578030766.,6808938175458712.,-.499485210924593686959,-45,-813, + 5771654237056016.,8885883684161956.,-.499368207225812798548,-45,-915, + 5771654237058152.,8885883686911570.,.499693639787778731177,-45,-915, + 5771654237058577.,8885883687458661.,.499140321253689688571,-45,-915, + 5771654237058588.,8885883687472822.,-.498520611462493133739,-45,-915, + 5771654237059863.,8885883689114095.,-.499975801843115341837,-45,-915, + 5771654237070979.,8885883703423421.,-.485699136937201090492,-45,-915, + 6038495938344507.,9007199254724763.,.486781457427835555049,-45,-971, + 6038495938344517.,9007199254737928.,.010469363473508905684,-45,-971, + 6038495938344518.,9007199254739244.,.462838155136547769076,-45,-971, + 6038495938344519.,9007199254740561.,-.084793053007963998746,-45,-971 }; +double exp( double x ), lgamma( double x ); +double Gamma( double x ) + { double t; extern int signgam; + t = exp(lgamma(x)); return(t*signgam); } +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/INV.c b/src/regress/lib/libm/fpaccuracy/INV.c new file mode 100644 index 000000000..0f165c52b --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/INV.c @@ -0,0 +1,686 @@ +/* $OpenBSD: INV.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:35:26. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 653 +#define F INV +#define Fs "INV" +#define Fn fpaccuracy_INV + /* 7 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -8871213671148155.,-4572634671085906.,-.499996844692675305924,-53,52, + -8871213671077783.,-4572634671122179.,-.490255522905749820786,-53,52, + -8871213671077779.,-4572634671122182.,.447959093193495935320,-53,52, + -8871213671077750.,-4572634671122196.,-.499984940087027937725,-53,52, + -8422041051801280.,-4816506943839637.,.499998015072924819739,-53,52, + -8422041051766527.,-4816506943859511.,-.499991939756751213963,-53,52, + -8422041051760991.,-4816506943862678.,.499952096260734190800,-53,52, + -8422041051758223.,-4816506943864261.,.499924112708663765867,-53,52, + -8422041051758001.,-4816506943864387.,-.460338247288924090548,-53,52, + -8422041051757987.,-4816506943864395.,-.466841279000708041010,-53,52, + -8422041051757917.,-4816506943864435.,-.499356437560027070796,-53,52, + -8245673680871110.,-4919527594380607.,-.499999152473458995565,-53,52, + -8245673680843838.,-4919527594396879.,.499989576423264399157,-53,52, + -8245673680827392.,-4919527594406691.,.499909392229819476454,-53,52, + -8245673680827179.,-4919527594406818.,.420010505968381485803,-53,52, + -8245673680827159.,-4919527594406830.,.487625634018613512267,-53,52, + -8245673680827154.,-4919527594406832.,-.495470583968837525546,-53,52, + -8245673680824789.,-4919527594408243.,-.499981692438734199323,-53,52, + -8108579655012636.,-5002703424418679.,.499958361308037804082,-53,52, + -8108579655011516.,-5002703424419369.,-.499954537859549524712,-53,52, + -8108579655010785.,-5002703424419821.,.499209453741509680716,-53,52, + -8108579655010738.,-5002703424419849.,-.498108319715103213457,-53,52, + -8108579655010712.,-5002703424419866.,.460822273691732472942,-53,52, + -8108579655010691.,-5002703424419878.,-.495426093172052263651,-53,52, + -8108579655010396.,-5002703424420060.,-.499867437218025994483,-53,52, + -8108579655000705.,-5002703424426040.,.499993351521909111058,-53,52, + -7881394195507974.,-5146909062158494.,.497067984303077532812,-53,52, + -7881394195507954.,-5146909062158507.,.436157859817732143072,-53,52, + -7881394195507827.,-5146909062158590.,.499378569334242021030,-53,52, + -7881394195507778.,-5146909062158621.,-.499851235656165595364,-53,52, + -7881394195501293.,-5146909062162856.,-.499959103713958822107,-53,52, + -7881394195498699.,-5146909062164551.,.499997747111514528619,-53,52, + -7834633035985900.,-5177628488913485.,.499998182339438670599,-53,52, + -7834633035950168.,-5177628488937098.,-.499574858207112945671,-53,52, + -7834633035949593.,-5177628488937478.,-.496489516251365183538,-53,52, + -7834633035949478.,-5177628488937554.,-.495872447866908934292,-53,52, + -7834633035948617.,-5177628488938123.,-.499948135946341958966,-53,52, + -7834633035924317.,-5177628488954182.,-.499993739587598347113,-53,52, + -7740586541127928.,-5240535583675859.,.499996696781864249501,-53,52, + -7740586541097601.,-5240535583696390.,-.499975439931308933749,-53,52, + -7740586541070590.,-5240535583714678.,.499950319528724781548,-53,52, + -7740586541070432.,-5240535583714784.,-.469284871324881080216,-53,52, + -7740586541070429.,-5240535583714787.,.499653701000641120471,-53,52, + -7552125243337432.,-5371311769900807.,.499994060727056457279,-53,52, + -7552125243331957.,-5371311769904700.,-.494211897686622475559,-53,52, + -7552125243331912.,-5371311769904732.,-.499643727505196811143,-53,52, + -7552125243331725.,-5371311769904865.,-.499993775866469242650,-53,52, + -7546489395525024.,-5375323157726530.,.499943333035347855480,-53,52, + -7546489395523804.,-5375323157727398.,-.499389829239726588112,-53,52, + -7546489395523731.,-5375323157727450.,-.496890911909357400722,-53,52, + -7546489395523710.,-5375323157727465.,-.455076154869300530824,-53,52, + -7546489395517419.,-5375323157731946.,-.499998228188850375608,-53,52, + -7532060552311700.,-5385620432227328.,.499995424281304878476,-53,52, + -7532060552272728.,-5385620432255194.,.499977483431262003601,-53,52, + -7532060552272342.,-5385620432255470.,.499874666501827551104,-53,52, + -7532060552269254.,-5385620432257678.,.499052130047959314092,-53,52, + -7532060552269075.,-5385620432257805.,-.490632855119356980510,-53,52, + -7532060552269068.,-5385620432257810.,-.495816066829934290540,-53,52, + -7532060552269061.,-5385620432257816.,.499000721459479096190,-53,52, + -7165093878940240.,-5661449785959137.,.499047055462965979658,-53,52, + -7165093878940078.,-5661449785959265.,.495858148040931036620,-53,52, + -7165093878940035.,-5661449785959298.,-.480296932325149093214,-53,52, + -7165093878940016.,-5661449785959313.,-.493016618998663242619,-53,52, + -7165093878939692.,-5661449785959569.,-.499394433864528222118,-53,52, + -7165093878937176.,-5661449785961557.,-.499538206882492542469,-53,52, + -7165093878929628.,-5661449785967521.,-.499969534313344878376,-53,52, + -7165093878928999.,-5661449785968019.,.499994521166894135959,-53,52, + -7109328173648589.,-5705858305663924.,-.499674695695709936781,-53,52, + -7109328173647738.,-5705858305664608.,.498317306045381363606,-53,52, + -7109328173647733.,-5705858305664612.,.485379538722577922448,-53,52, + -7109328173647713.,-5705858305664628.,.433628469431307711722,-53,52, + -7109328173646502.,-5705858305665599.,-.499898776323396548501,-53,52, + -7109328173606155.,-5705858305697981.,-.499918605965293766922,-53,52, + -7109328173444767.,-5705858305827510.,.499998399967765169538,-53,52, + -7017962821147378.,-5780141650945842.,.499985389657075978010,-53,52, + -7017962821146352.,-5780141650946687.,.464825613514854475718,-53,52, + -7017962821146346.,-5780141650946691.,-.476900467048107424599,-53,52, + -7017962821146227.,-5780141650946789.,-.487801064881930829152,-53,52, + -7017962821146091.,-5780141650946902.,.499741109018200984517,-53,52, + -7017962821135177.,-5780141650955890.,-.499999449649679695046,-53,52, + -7006352135983382.,-5789720302376700.,.499796717815964713004,-53,52, + -7006352135983048.,-5789720302376976.,.497885386179119124004,-53,52, + -7006352135983025.,-5789720302376995.,.491765743580403838768,-53,52, + -7006352135980278.,-5789720302379265.,.499997994045085341174,-53,52, + -6828286958436779.,-5940702178191698.,-.499968945021146556237,-53,52, + -6828286958433094.,-5940702178194904.,-.499901270640558184798,-53,52, + -6828286958433002.,-5940702178194985.,.458852114944208253722,-53,52, + -6828286958432994.,-5940702178194992.,.498743713690607752638,-53,52, + -6828286958423493.,-5940702178203257.,-.499996336627829525880,-53,52, + -6638553928855772.,-6110490272735517.,.499995289313587094697,-53,52, + -6638553928831685.,-6110490272757688.,.499988773873889789180,-53,52, + -6638553928831509.,-6110490272757850.,.499905693333390349291,-53,52, + -6638553928828165.,-6110490272760928.,.498327161431833876691,-53,52, + -6638553928827461.,-6110490272761576.,.497994838531111002058,-53,52, + -6638553928827436.,-6110490272761599.,.486619400925575427422,-53,52, + -6638553928827423.,-6110490272761610.,-.479295826629371565940,-53,52, + -6595469068459825.,-6150407012184813.,.499941342888549116914,-53,52, + -6595469068454579.,-6150407012189705.,.499865072084958618351,-53,52, + -6595469068453408.,-6150407012190796.,-.481089811385214130580,-53,52, + -6595469068453349.,-6150407012190851.,-.499771568974245102013,-53,52, + -6595469068437611.,-6150407012205528.,.499999566448238960906,-53,52, + -6320301642454119.,-6418177723484788.,.499998063485255626571,-53,52, + -6320301642430291.,-6418177723508984.,-.499994549171953088476,-53,52, + -6320301642428225.,-6418177723511082.,-.494034541725283063376,-53,52, + -6320301642428222.,-6418177723511086.,.459507510559460221220,-53,52, + -6320301642428160.,-6418177723511149.,.499376591110173934124,-53,52, + -6320301642427708.,-6418177723511608.,.499712468636113393188,-53,52, + -6320301642427256.,-6418177723512066.,-.499951653903598396666,-53,52, + -6277581004375918.,-6461855160296107.,.499970468750839571218,-53,52, + -6277581004373363.,-6461855160298737.,.499668910777139390692,-53,52, + -6277581004369275.,-6461855160302945.,.499186413566270237352,-53,52, + -6277581004369241.,-6461855160302979.,-.498860652235861326993,-53,52, + -6277581004369071.,-6461855160303154.,-.489095981252205735313,-53,52, + -6277581004369004.,-6461855160303223.,-.455835787396545201332,-53,52, + -6277581004369003.,-6461855160303224.,-.485190112861397239054,-53,52, + -6277581004359532.,-6461855160312974.,.499993394815040824725,-53,52, + -6277581004309863.,-6461855160364100.,-.499998677722964657697,-53,52, + -6150458818222996.,-6595413514047951.,-.473644980608536945724,-53,52, + -6150458818222982.,-6595413514047966.,-.486474417510512459045,-53,52, + -6150458818222968.,-6595413514047981.,-.499303854412556318362,-53,52, + -6150458818222733.,-6595413514048234.,.499630597578648119990,-53,52, + -6150458818221876.,-6595413514049152.,-.499999932982551353922,-53,52, + -6134432454505739.,-6612644202726284.,.499959701947513673006,-53,52, + -6134432454505662.,-6612644202726367.,.497398766429779706719,-53,52, + -6134432454495977.,-6612644202736807.,.499961600605055345062,-53,52, + -6134432454339785.,-6612644202905175.,.499987424288208614292,-53,52, + -6056160701857071.,-6698108125642121.,-.499995890524489076320,-53,52, + -6056160701828750.,-6698108125673444.,-.499758599692227199455,-53,52, + -6056160701828533.,-6698108125673685.,.498442433466247776715,-53,52, + -6056160701828467.,-6698108125673757.,-.497496422811544153422,-53,52, + -6056160701828458.,-6698108125673767.,-.451488085031366324051,-53,52, + -6056160701827033.,-6698108125675344.,.499832063123607391431,-53,52, + -6056160701820382.,-6698108125682700.,.499993671123883572140,-53,52, + -5587044502247494.,-7260514783976640.,-.499998828881375051171,-53,52, + -5587044502247070.,-7260514783977191.,-.499416708578110966658,-53,52, + -5587044502247000.,-7260514783977282.,-.466301735894577535483,-53,52, + -5587044502246983.,-7260514783977305.,.441740471756793716168,-53,52, + -5574097035247415.,-7277379448329393.,-.499997813669067216181,-53,52, + -5574097035238422.,-7277379448341135.,.499986382529440527887,-53,52, + -5574097035224026.,-7277379448359930.,.499849807331918585279,-53,52, + -5574097035223882.,-7277379448360118.,.497625601032371440443,-53,52, + -5574097035223558.,-7277379448360541.,.492621136822874954471,-53,52, + -5574097035223545.,-7277379448360557.,-.479801881803840841879,-53,52, + -5574097035220436.,-7277379448364617.,.499954661272015691468,-53,52, + -5292230209316522.,-7664976314879957.,-.485756468283809191934,-53,52, + -5292230209316513.,-7664976314879971.,.479136571992882867841,-53,52, + -5292230209316435.,-7664976314880083.,-.491790412277643098441,-53,52, + -5292230209316319.,-7664976314880251.,-.499835670942532779833,-53,52, + -5292230209315322.,-7664976314881696.,.499982234883997390699,-53,52, + -5292230209309853.,-7664976314889617.,.499986364589633580880,-53,52, + -5292230209293446.,-7664976314913380.,.499998655479638337582,-53,52, + -5268565944194452.,-7699404285145676.,-.499828841372719331790,-53,52, + -5268565944193947.,-7699404285146414.,-.499353794349911970969,-53,52, + -5268565944193921.,-7699404285146452.,-.495368940447616718622,-53,52, + -5268565944193856.,-7699404285146547.,-.485406805693519279651,-53,52, + -5268565944192445.,-7699404285148609.,-.499921081070712643158,-53,52, + -5268565944190438.,-7699404285151543.,.499986676996708297670,-53,52, + -5268565944179898.,-7699404285166945.,-.499999523098020671903,-53,52, + -5158589873364226.,-7863548024384537.,-.499976017189487809310,-53,52, + -5158589873358171.,-7863548024393767.,-.499734973110719403947,-53,52, + -5158589873357822.,-7863548024394300.,.498627391940399784785,-53,52, + -5158589873357801.,-7863548024394332.,.487067534247769952380,-53,52, + -5158589873357740.,-7863548024394424.,-.498892052384680505726,-53,52, + -5158589873344070.,-7863548024415262.,-.499999472860527825367,-53,52, + -4510984822795226.,-8992453045356823.,-.499958913682962880274,-53,52, + -4510984822793545.,-8992453045360175.,.499281149454982790509,-53,52, + -4510984822793544.,-8992453045360176.,-.494175578646213838806,-53,52, + -4510984822793529.,-8992453045360206.,-.396026500164269337316,-53,52, + -4510984822793392.,-8992453045360479.,-.499598250038378591824,-53,52, + -4510984822789877.,-8992453045367486.,-.499997531678210875982,-53,52, + -4504722288295063.,-9004954492467997.,.499949513842097783187,-53,52, + -4504722288288483.,-9004954492481150.,.058567680788965479450,-53,52, + -4504722288288264.,-9004954492481588.,.276856035532681958700,-53,52, + -4504722288288045.,-9004954492482026.,.495144390233832353422,-53,52, + -4504722288288040.,-9004954492482035.,-.499871857376227431093,-53,52, + -4504722288276001.,-9004954492506101.,-.499992917221966704034,-53,52, + -4504722288225838.,-9004954492606378.,.499999657361744355634,-53,52, + -8854767244077462.,-4581127667069425.,.499998092235408638346,-54,51, + -8854767244069514.,-4581127667073536.,-.499978220405018758276,-54,51, + -8854767244017852.,-4581127667100264.,-.499824432499807121326,-54,51, + -8854767244013878.,-4581127667102320.,-.499812615579140298012,-54,51, + -8854767244013590.,-4581127667102470.,.499684969470720655937,-54,51, + -8854767244013103.,-4581127667102721.,-.456025711387156784209,-54,51, + -8854767244013101.,-4581127667102722.,-.490751422602236010351,-54,51, + -8854767244013072.,-4581127667102737.,-.494274235220937315831,-54,51, + -8854767244013014.,-4581127667102768.,.498680139541365247507,-54,51, + -8644717199341872.,-4692440281376881.,-.499998230924183712536,-54,51, + -8644717199273769.,-4692440281413848.,-.499972441340477336384,-54,51, + -8644717199267684.,-4692440281417151.,-.499764594414925870418,-54,51, + -8644717199267614.,-4692440281417189.,-.496475432686056827428,-54,51, + -8644717199265862.,-4692440281418140.,-.499866699329658018068,-54,51, + -8644717199264040.,-4692440281419129.,-.499968804661282504589,-54,51, + -8607732457445840.,-4712602233845460.,-.499999464895393674126,-54,51, + -8607732457393718.,-4712602233873997.,.499974011748256319213,-54,51, + -8607732457385031.,-4712602233878753.,.499969557590282713555,-54,51, + -8607732457384315.,-4712602233879144.,-.499109893646855546224,-54,51, + -8607732457383104.,-4712602233879808.,.496860475690508646617,-54,51, + -8607732457383062.,-4712602233879830.,-.497498933468768134082,-54,51, + -7868743568098421.,-5155183779499671.,.499982459524756777072,-54,51, + -7868743567949140.,-5155183779597472.,.499969942091710119795,-54,51, + -7868743567942340.,-5155183779601926.,-.499662283778466947149,-54,51, + -7868743567942282.,-5155183779601964.,-.498188558679300762191,-54,51, + -7868743567941760.,-5155183779602306.,-.484925032812012718764,-54,51, + -7868743567941731.,-5155183779602325.,-.484188170265160451915,-54,51, + -7868743567941725.,-5155183779602329.,-.415070198703760226010,-54,51, + -7868743567939649.,-5155183779603690.,.499747961180851419151,-54,51, + -7868743567935569.,-5155183779606363.,.499968620134569427636,-54,51, + -7730960159919121.,-5247060955974156.,-.499980299520207837502,-54,51, + -7730960159917543.,-5247060955975228.,.499520764325599756249,-54,51, + -7730960159917325.,-5247060955975375.,-.458723068460112453831,-54,51, + -7730960159917322.,-5247060955975377.,-.494845690012267616182,-54,51, + -7730960159917294.,-5247060955975396.,-.498656824499125333913,-54,51, + -7730960159907051.,-5247060955982348.,-.499994353338222088982,-54,51, + -7730960159901016.,-5247060955986445.,.499998610160420211301,-54,51, + -7684108841897189.,-5279053178701199.,.485111765483169587009,-54,51, + -7684108841897173.,-5279053178701210.,.492965168251320317432,-54,51, + -7684108841897157.,-5279053178701220.,-.499181428980574728265,-54,51, + -7684108841896649.,-5279053178701569.,-.499835891117041720214,-54,51, + -7684108841894994.,-5279053178702706.,-.499999542688774807438,-54,51, + -7492339963744938.,-5414172261749266.,.499996749783230494504,-54,51, + -7492339963744801.,-5414172261749364.,-.499995702363068372273,-54,51, + -7492339963742883.,-5414172261750750.,-.499890032791404742184,-54,51, + -7492339963697399.,-5414172261783618.,-.497384362324560290791,-54,51, + -7492339963683151.,-5414172261793914.,-.496599535587539853691,-54,51, + -7492339963682931.,-5414172261794073.,-.474689607351428822473,-54,51, + -7492339963682877.,-5414172261794112.,-.496584443149446808573,-54,51, + -7489630554912764.,-5416130863850843.,-.499974665273138534655,-54,51, + -7489630554912551.,-5416130863850998.,.468946559613697114823,-54,51, + -7489630554912540.,-5416130863851005.,-.485710090744497637579,-54,51, + -7489630554912522.,-5416130863851019.,.497579026851133275707,-54,51, + -7489630554912345.,-5416130863851147.,.499922016538171376380,-54,51, + -7489630554902950.,-5416130863857941.,.499991997175679411509,-54,51, + -7489630554873927.,-5416130863878929.,.499995194258975954806,-54,51, + -7298995560623810.,-5557589242297945.,.499995862195936940836,-54,51, + -7298995560591209.,-5557589242322768.,.499983860584631598511,-54,51, + -7298995560586611.,-5557589242326269.,.498356433048711929132,-54,51, + -7298995560586569.,-5557589242326300.,-.481214761394520746718,-54,51, + -7298995560586565.,-5557589242326304.,.473111791515628375312,-54,51, + -7298995560586020.,-5557589242326718.,-.499895374507766286767,-54,51, + -7250793807593721.,-5594534927309614.,-.498367062852329019356,-54,51, + -7250793807593686.,-5594534927309642.,.496490100129201036928,-54,51, + -7250793807593673.,-5594534927309652.,.466008474950845799255,-54,51, + -7250793807593651.,-5594534927309669.,.491347263110470382447,-54,51, + -7250793807593130.,-5594534927310070.,-.499493253684888238119,-54,51, + -7250793807592933.,-5594534927310222.,-.499868650645593704078,-54,51, + -7250793807590210.,-5594534927312323.,-.499981371918097904129,-54,51, + -7250793807536932.,-5594534927353431.,-.499983732731441984365,-54,51, + -5733088875679035.,-7075560851566039.,-.499963509102268064630,-54,51, + -5733088875677946.,-7075560851567384.,.497538981340826926873,-54,51, + -5733088875677942.,-7075560851567388.,-.439109310706236933346,-54,51, + -5733088875677788.,-7075560851567579.,.499931445476566498445,-54,51, + -5733088875659809.,-7075560851589767.,-.499979303856097670473,-54,51, + -5733088875630970.,-7075560851625360.,.499996705617385894555,-54,51, + -5586017142903151.,-7261850110653455.,.499983765626817362547,-54,51, + -5586017142903091.,-7261850110653533.,.499684895658562242897,-54,51, + -5586017142901771.,-7261850110655249.,.493109755933018030520,-54,51, + -5586017142901431.,-7261850110655691.,.491416159205694618005,-54,51, + -5586017142883078.,-7261850110679550.,.499996724256620960569,-54,51, + -4924871031076378.,-8236727205917818.,-.499998992446841818010,-54,51, + -4924871031068861.,-8236727205930390.,-.499959252628764788847,-54,51, + -4924871031066980.,-8236727205933536.,-.426781827396479928898,-54,51, + -4924871031066968.,-8236727205933556.,-.496490424372409322745,-54,51, + -4924871031066910.,-8236727205933654.,.499918023575886506304,-54,51, + -4517699360174586.,-8979087799621911.,-.499951982535398589068,-54,51, + -4517699360174431.,-8979087799622220.,.432047474892048931496,-54,51, + -4517699360174426.,-8979087799622230.,.494370038034517863921,-54,51, + -4517699360166483.,-8979087799638017.,.499993818386564467879,-54,51, + -4514338150834418.,-8985773296536381.,-.499322377565829981158,-54,51, + -4514338150834313.,-8985773296536591.,.498568207580769965810,-54,51, + -4514338150834310.,-8985773296536596.,-.472920632843755753390,-54,51, + -4514338150833892.,-8985773296537429.,.499634267928067147794,-54,51, + -4514338150820634.,-8985773296563819.,.499952069398907641307,-54,51, + -4514338150818740.,-8985773296567589.,.499997456955336870831,-54,51, + -8612971451595068.,-4709735709131021.,-.458314749485969886637,-55,50, + -8612971451595046.,-4709735709131033.,-.488330892369392883968,-55,50, + -8612971451595035.,-4709735709131040.,.496661036188872571282,-55,50, + -8612971451594971.,-4709735709131074.,-.499749561290614976145,-55,50, + -8612971451593305.,-4709735709131986.,.499937072888491434867,-55,50, + -8612971451590240.,-4709735709133662.,.499960801715160722457,-55,50, + -8612971451584110.,-4709735709137013.,-.499991744210014776965,-55,50, + -8612971451542599.,-4709735709159712.,-.499996785572678225768,-55,50, + -8341071156516347.,-4863262576966825.,.499975867411013123455,-55,50, + -8341071156515462.,-4863262576967340.,-.499384389055023465388,-55,50, + -8341071156515239.,-4863262576967471.,.480437828789935417442,-55,50, + -8341071156515227.,-4863262576967478.,.483836333785879581490,-55,50, + -8341071156515179.,-4863262576967506.,.497430353769454922484,-55,50, + -8341071156515167.,-4863262576967512.,-.499171141234701571066,-55,50, + -8341071156506931.,-4863262576972314.,-.499997217169194223657,-55,50, + -6979532375146853.,-5811968055589088.,.499990075867311519905,-55,50, + -6979532375142579.,-5811968055592647.,.471944292167179990302,-55,50, + -6979532375142567.,-5811968055592657.,.479352680227398060667,-55,50, + -6979532375142537.,-5811968055592682.,.497873650377792908153,-55,50, + -6979532375142531.,-5811968055592686.,-.498422155592153892938,-55,50, + -6979532375141993.,-5811968055593134.,-.499612757598968582148,-55,50, + -6979532375141724.,-5811968055593359.,.499791941371724274995,-55,50, + -6979532375101499.,-5811968055626855.,.499992550365219024596,-55,50, + -6842835487549892.,-5928071671620408.,-.439061427480239469554,-55,50, + -6842835487549885.,-5928071671620415.,.496712452098895282601,-55,50, + -6842835487549870.,-5928071671620427.,-.498057805945857741508,-55,50, + -6842835487549683.,-5928071671620589.,-.499527022908561046846,-55,50, + -6842835487548920.,-5928071671621251.,.499825851103721499393,-55,50, + -6842835487547581.,-5928071671622410.,-.499999184242850985070,-55,50, + -6479813464899681.,-6260183171481365.,-.499998130220501079258,-55,50, + -6479813464895167.,-6260183171485727.,.499953155559206917565,-55,50, + -6479813464892718.,-6260183171488092.,-.492319620825812311182,-55,50, + -6479813464892482.,-6260183171488320.,-.493208300065597763316,-55,50, + -6479813464890830.,-6260183171489916.,-.499429055209118534396,-55,50, + -6479813464890653.,-6260183171490088.,.499904435262951670520,-55,50, + -6070752678073838.,-6682008205311037.,-.499991322523303697784,-55,50, + -6070752678072676.,-6682008205312317.,.499867127240911733394,-55,50, + -6070752678071673.,-6682008205313420.,-.490788617461315018082,-55,50, + -6070752678071663.,-6682008205313431.,-.497674517210930619808,-55,50, + -6070752678071514.,-6682008205313596.,.499725576515501497609,-55,50, + -6070752678059606.,-6682008205326703.,.499996128298406563875,-55,50, + -5777052993640591.,-7021714921424003.,.499999983229069456927,-55,50, + -5777052993629173.,-7021714921437880.,-.499918181550988756519,-55,50, + -5777052993623464.,-7021714921444819.,-.499877284512795970589,-55,50, + -5777052993623051.,-7021714921445321.,-.480431341713733137659,-55,50, + -5777052993623037.,-7021714921445338.,-.496721309755700599185,-55,50, + -5777052993622972.,-7021714921445418.,.499075267191227249081,-55,50, + -5360050515996384.,-7567991959449418.,-.499999053305438660268,-55,50, + -5360050515986506.,-7567991959463366.,.499995540484923097658,-55,50, + -5360050515984678.,-7567991959465946.,-.499802995476899714633,-55,50, + -5360050515984644.,-7567991959465995.,.494730292130766380704,-55,50, + -5360050515984559.,-7567991959466115.,.481063511147267161628,-55,50, + -5360050515984547.,-7567991959466131.,-.462042387344827580168,-55,50, + -5003579018671222.,-8107160705553514.,.499997657849812850123,-55,50, + -5003579018619743.,-8107160705636924.,.499994037129970272700,-55,50, + -5003579018617099.,-8107160705641208.,.499916103240614850745,-55,50, + -5003579018617057.,-8107160705641276.,.448477648883602326956,-55,50, + -5003579018617049.,-8107160705641289.,.486298895672613269545,-55,50, + -5003579018617020.,-8107160705641336.,.498400915282430474700,-55,50, + -4966294589248348.,-8168025170138539.,.499995417043386174804,-55,50, + -4966294589208408.,-8168025170204228.,.499990418927762482108,-55,50, + -4966294589201946.,-8168025170214855.,-.499960413919625619343,-55,50, + -4966294589198988.,-8168025170219720.,-.499009411628234588240,-55,50, + -4966294589198943.,-8168025170219795.,.489848869294934408168,-55,50, + -4966294589198715.,-8168025170220169.,-.499935840714956075557,-55,50, + -5370993780351701.,-7552572366718901.,.499998471689296768746,-57,48, + -5370993780330917.,-7552572366748126.,-.499972843534933396727,-57,48, + -5370993780293234.,-7552572366801115.,-.499055361830968644322,-57,48, + -5370993780293202.,-7552572366801160.,-.496745849650204793831,-57,48, + -5370993780293180.,-7552572366801191.,-.432658060026240676444,-57,48, + -5370993780293170.,-7552572366801205.,-.494436337469977129436,-57,48, + -5370993780292813.,-7552572366801707.,-.499920842245670535560,-57,48, + -5040083604724304.,-8048441730069726.,-.499925353101192340270,-57,48, + -5040083604723726.,-8048441730070650.,.499647507098824725820,-57,48, + -5040083604723689.,-8048441730070709.,.414845077727256323612,-57,48, + -5040083604723664.,-8048441730070749.,.492681274097327116176,-57,48, + -5040083604721863.,-8048441730073624.,-.499999140444732416483,-57,48, + -7518049176514085.,-5395657604106302.,.499999341509308030964,-58,47, + -7518049176513582.,-5395657604106663.,.499996396055503115922,-58,47, + -7518049176493965.,-5395657604120742.,.499881485678522787296,-58,47, + -7518049176486937.,-5395657604125785.,-.452445982375305270374,-58,47, + -7518049176486923.,-5395657604125796.,.499840217878124225453,-58,47, + -4503599627370497.,-9007199254740990.,-.000000000000000444089,-1074,-969, + -4503599627370496.,-4503599627370496.,0.000000000000000000000,-1074,-970, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,-970, + 4503599627370497.,9007199254740990.,.000000000000000444089,-1074,-969, + 7327657448597172.,5535850917139854.,.499923979167510260165,-58,47, + 7327657448597994.,5535850917139234.,-.499281539044181126866,-58,47, + 7327657448598407.,5535850917138921.,.490168729838783888644,-58,47, + 7327657448598419.,5535850917138912.,.424486897458185189897,-58,47, + 7327657448598452.,5535850917138887.,.493861858411691870222,-58,47, + 7327657448598542.,5535850917138820.,-.498751884441239514883,-58,47, + 7327657448600963.,5535850917136990.,.499938433441657997551,-58,47, + 7327657448616127.,5535850917125534.,.499996280172341483052,-58,47, + 6940259249803764.,5844856473978304.,.499636970929266476699,-57,48, + 6940259249803859.,5844856473978224.,.493783436908710172044,-57,48, + 6940259249803897.,5844856473978192.,.491442023301100928628,-57,48, + 6940259249804613.,5844856473977589.,.499956440654815594831,-57,48, + 6940259249814009.,5844856473969676.,.499958498909667644068,-57,48, + 6940259249973741.,5844856473835155.,.499996767400339751734,-57,48, + 8328945592792914.,4870342680879597.,-.499998329897503108128,-57,48, + 8328945592800743.,4870342680875019.,-.499989296888508486062,-57,48, + 8328945592819050.,4870342680864313.,.499904128873067504995,-57,48, + 8328945592820873.,4870342680863248.,-.497539157174392974403,-57,48, + 8328945592820914.,4870342680863224.,-.472248523448756438415,-57,48, + 8328945592820926.,4870342680863217.,-.489236630650964508035,-57,48, + 8328945592820991.,4870342680863179.,-.497922211329240166538,-57,48, + 8328945592821581.,4870342680862834.,-.499837482074149323083,-57,48, + 8328945592824230.,4870342680861285.,-.499962146223062300948,-57,48, + 5682480038754490.,7138576630388746.,.499989464146931500263,-56,49, + 5682480038755411.,7138576630387590.,-.499952770234401688871,-56,49, + 5682480038756172.,7138576630386633.,.499009184050532555039,-56,49, + 5682480038756211.,7138576630386585.,-.494473711846495806360,-56,49, + 5682480038756332.,7138576630386433.,-.499895004240688440700,-56,49, + 5682480038806507.,7138576630323400.,.499995257142156691048,-56,49, + 6175493946646193.,6568676053732254.,.498870347664436601721,-56,49, + 6175493946646303.,6568676053732137.,.495376837166825305152,-56,49, + 6175493946646727.,6568676053731687.,-.499907239621333035089,-56,49, + 6175493946651596.,6568676053726508.,-.499997258487951205961,-56,49, + 6823990675708843.,5944442355658651.,-.499985599295144070202,-56,49, + 6823990675709068.,5944442355658455.,-.499598374882547561441,-56,49, + 6823990675709440.,5944442355658130.,.447708502841295233708,-56,49, + 6823990675709456.,5944442355658117.,-.490041738976241632691,-56,49, + 6823990675709487.,5944442355658090.,-.494432832497533319529,-56,49, + 6823990675709518.,5944442355658063.,-.498823926018579655468,-56,49, + 6823990675716586.,5944442355651906.,-.499993242412013677377,-56,49, + 6823990675724329.,5944442355645160.,.499999129777859511850,-56,49, + 7740553500862013.,5240557952707892.,.499600566553124891757,-56,49, + 7740553500862137.,5240557952707809.,-.451655123805605426864,-56,49, + 7740553500862143.,5240557952707804.,.486187342790008102873,-56,49, + 7740553500862174.,5240557952707783.,.498373420200778328683,-56,49, + 7740553500862753.,5240557952707392.,-.499828553289750586462,-56,49, + 7740553500866035.,5240557952705170.,-.499999324195085155767,-56,49, + 8359220028905919.,4852703848807840.,.499863243043976063017,-56,49, + 8359220028906689.,4852703848807393.,.498593906824746327782,-56,49, + 8359220028906720.,4852703848807376.,-.497561092423913812342,-56,49, + 8359220028907223.,4852703848807084.,-.499688983439971567330,-56,49, + 8359220028912942.,4852703848803763.,.499974222369498626323,-56,49, + 8359220028915283.,4852703848802405.,-.499988782999641813798,-56,49, + 8359220028968859.,4852703848771303.,-.499996253573530069755,-56,49, + 8513798801093394.,4764596880313140.,.499225962049869128743,-56,49, + 8513798801093444.,4764596880313113.,-.482389481465274245831,-56,49, + 8513798801093453.,4764596880313107.,.480919738702034850642,-56,49, + 8513798801093503.,4764596880313079.,.499304295187279297145,-56,49, + 8513798801093830.,4764596880312896.,.499539294608881400084,-56,49, + 8513798801094484.,4764596880312531.,-.499990706505742204242,-56,49, + 8513798801132777.,4764596880291101.,-.499994175265107638922,-56,49, + 9007199254740991.,4503599627370497.,-.499999999999999944489,-56,49, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-55,49, + 4503599627370497.,9007199254740990.,.000000000000000444089,-55,50, + 5173600871714596.,7840732250738866.,-.499981896218220838646,-55,50, + 5173600871715401.,7840732250737646.,-.499285737374158657667,-55,50, + 5173600871716045.,7840732250736670.,-.498728810025555164096,-55,50, + 5173600871716107.,7840732250736576.,-.461408112038177832817,-55,50, + 5173600871716109.,7840732250736573.,-.492462283070805584556,-55,50, + 5173600871721777.,7840732250727983.,-.499982980123648348704,-55,50, + 5173600871800768.,7840732250608270.,-.499992909131963395740,-55,50, + 5852820566556913.,6930815449749340.,.499998551998348808838,-55,50, + 5852820566559872.,6930815449745837.,-.499941747300258617574,-55,50, + 5852820566564791.,6930815449740011.,.499819554136154840425,-55,50, + 5852820566564894.,6930815449739890.,-.471114494539844782373,-55,50, + 5852820566564905.,6930815449739877.,-.497136577407901703600,-55,50, + 5852820566565790.,6930815449738829.,-.499822335268407666562,-55,50, + 5852820566573668.,6930815449729499.,.499998695168073729144,-55,50, + 6216155809162387.,6525708243592009.,-.499985529547439928048,-55,50, + 6216155809169074.,6525708243584989.,-.499542254439281284250,-55,50, + 6216155809171805.,6525708243582122.,-.498015319585535259871,-55,50, + 6216155809171845.,6525708243582080.,-.489937297818683863215,-55,50, + 6216155809172046.,6525708243581869.,-.499345238432074772518,-55,50, + 6216155809182689.,6525708243570696.,-.499985576892763843356,-55,50, + 6575998564299761.,6168617406263507.,.499995790342804241812,-55,50, + 6575998564310964.,6168617406252999.,-.477481398498146702819,-55,50, + 6575998564310996.,6168617406252969.,-.495090902155057208707,-55,50, + 6575998564311012.,6168617406252953.,.496104346016597091693,-55,50, + 6575998564312255.,6168617406251787.,.499585188575225033602,-55,50, + 6575998564312368.,6168617406251681.,.499901628829685177529,-55,50, + 6575998564315548.,6168617406248698.,.499957205625960277153,-55,50, + 7082784227624794.,5727241986151358.,.499996706265521119327,-55,50, + 7082784227659828.,5727241986123029.,.499805051206910730117,-55,50, + 7082784227659964.,5727241986122920.,-.471766166637381499551,-55,50, + 7082784227659969.,5727241986122915.,.485161362118423537993,-55,50, + 7082784227659990.,5727241986122899.,-.495743017107132969581,-55,50, + 7082784227660037.,5727241986122860.,.499375753197938769565,-55,50, + 7082784227662080.,5727241986121208.,.499964003329276606053,-55,50, + 7082784227669045.,5727241986115577.,-.499988430934791237178,-55,50, + 8687303334617385.,4669437412834386.,.499939814909514319645,-55,50, + 8687303334618905.,4669437412833569.,.497862861460658326050,-55,50, + 8687303334621705.,4669437412832064.,.494036895329591215122,-55,50, + 8687303334621785.,4669437412832021.,.493927582025816049214,-55,50, + 8687303334626518.,4669437412829477.,.499960335100658964831,-55,50, + 8687303334644784.,4669437412819660.,-.499998593551932822017,-55,50, + 9007199254740991.,4503599627370497.,-.499999999999999944489,-55,50, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-54,50, + 4503599627370497.,9007199254740990.,.000000000000000444089,-54,51, + 5227720812172596.,7759561128981743.,-.499999644253477027763,-54,51, + 5227720812185086.,7759561128963203.,.461290583376355632950,-54,51, + 5227720812185088.,7759561128963200.,.492669492947521388962,-54,51, + 5227720812185216.,7759561128963011.,-.499080294493145619073,-54,51, + 5227720812185439.,7759561128962679.,.499668122722291437279,-54,51, + 5227720812186172.,7759561128961592.,-.499961519146388792282,-54,51, + 5299073463177514.,7655077720507619.,.499936778476799958775,-54,51, + 5299073463177550.,7655077720507567.,.494090878574305238785,-54,51, + 5299073463177649.,7655077720507424.,.478014653846088258082,-54,51, + 5299073463177658.,7655077720507411.,.476553178871060787056,-54,51, + 5299073463180935.,7655077720502677.,.499969460343859178103,-54,51, + 5299073463184356.,7655077720497736.,-.499997851408123872637,-54,51, + 5354986034451829.,7575149392794975.,-.499997906803379245894,-54,51, + 5354986034455816.,7575149392789335.,-.499884879946723773951,-54,51, + 5354986034456501.,7575149392788366.,-.499113014692782746794,-54,51, + 5354986034456665.,7575149392788134.,-.493088801660897404012,-54,51, + 5354986034456706.,7575149392788076.,-.491582748400705765372,-54,51, + 5354986034457145.,7575149392787455.,-.499847202461525663548,-54,51, + 6318840445925806.,6419661891203201.,.499899121349663449851,-54,51, + 6318840445925994.,6419661891203011.,-.499770181004011379340,-54,51, + 6318840445926182.,6419661891202820.,-.499439483346320851821,-54,51, + 6318840445926243.,6419661891202758.,-.472736437827287658886,-54,51, + 6318840445926245.,6419661891202755.,.495352186615979589576,-54,51, + 6318840445928877.,6419661891200081.,.499981955070329879412,-54,51, + 6318840446001453.,6419661891126347.,.499986660683774847032,-54,51, + 6779876501425781.,5983120665807514.,.499988133816408664462,-54,51, + 6779876501427602.,5983120665805907.,.499811929821064659417,-54,51, + 6779876501427619.,5983120665805892.,.497613689590139472611,-54,51, + 6779876501465358.,5983120665772589.,-.499997188174025754058,-54,51, + 7852441928002186.,5165885921759859.,.491859910449907983609,-54,51, + 7852441928002195.,5165885921759854.,-.428970032913633590743,-54,51, + 7852441928002224.,5165885921759834.,.492800149581713660840,-54,51, + 7852441928002490.,5165885921759659.,.499381823511128109200,-54,51, + 7852441928002528.,5165885921759635.,-.499677937355130582785,-54,51, + 7852441928003589.,5165885921758937.,-.499741260391663915100,-54,51, + 7852441928007833.,5165885921756145.,-.499994550651560901640,-54,51, + 7852441928023786.,5165885921745649.,.499995877021788666970,-54,51, + 8012612783806823.,5062620683390972.,.499994693424668988084,-54,51, + 8012612783817446.,5062620683384261.,-.445405723118578270284,-54,51, + 8012612783817454.,5062620683384255.,.499942746874728365592,-54,51, + 8012612783822248.,5062620683381227.,-.499986607820974869102,-54,51, + 8012612783863729.,5062620683355017.,.499999033294328025058,-54,51, + 8633994769867428.,4698267753053805.,-.497816782724030369840,-54,51, + 8633994769867496.,4698267753053767.,.499357095276624404598,-54,51, + 8633994769869251.,4698267753052812.,.499947623289281613938,-54,51, + 8633994769894727.,4698267753038949.,.499972904419855543596,-54,51, + 8633994769920203.,4698267753025086.,.499998267360483050390,-54,51, + 8717776617239249.,4653115236640398.,.499974953404029335244,-54,51, + 8717776617240849.,4653115236639544.,.499613909402703440426,-54,51, + 8717776617241175.,4653115236639370.,.497040346725875310918,-54,51, + 8717776617241205.,4653115236639354.,.484533577155041948068,-54,51, + 8717776617241323.,4653115236639292.,-.497993049822500037023,-54,51, + 8717776617244686.,4653115236637496.,.499998082034296000968,-54,51, + 8911976088171407.,4551719933488577.,-.499989194973264761307,-54,51, + 8911976088174293.,4551719933487102.,.498779419415360109823,-54,51, + 8911976088174340.,4551719933487078.,.493908360821827646759,-54,51, + 8911976088174346.,4551719933487075.,.429456736320543854656,-54,51, + 8911976088174898.,4551719933486793.,.499907282220087260198,-54,51, + 8911976088210413.,4551719933468654.,.499999996249173452763,-54,51, + 9007199254740991.,4503599627370497.,-.499999999999999944489,-54,51, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-53,51, + 4503599627370497.,9007199254740990.,.000000000000000444089,-53,52, + 4733303198944394.,8570086787668699.,.499638710610393101535,-53,52, + 4733303198944415.,8570086787668661.,.477180613867588642597,-53,52, + 4733303198944431.,8570086787668633.,-.492311269364797825394,-53,52, + 4733303198945017.,8570086787667572.,-.499951492616009117171,-53,52, + 4733303198947377.,8570086787663298.,.499995733809951792083,-53,52, + 5018163383767604.,8083598740232237.,-.499999761385671524111,-53,52, + 5018163383775830.,8083598740218985.,.499952664066458858986,-53,52, + 5018163383776899.,8083598740217263.,.482076317001827357879,-53,52, + 5018163383776971.,8083598740217147.,.499581371295127232083,-53,52, + 5949535300076261.,6818149176589201.,-.499998153880572595441,-53,52, + 5949535300099693.,6818149176562347.,.499986338842752283850,-53,52, + 5949535300105426.,6818149176555777.,.499598486821879908827,-53,52, + 5949535300107960.,6818149176552874.,-.456616896727331232042,-53,52, + 5949535300107974.,6818149176552857.,.499426112210207235002,-53,52, + 5971604121796708.,6792951840065780.,-.499996306517026891614,-53,52, + 5971604121818614.,6792951840040861.,-.499979038614728720609,-53,52, + 5971604121825710.,6792951840032789.,-.499608209078839321419,-53,52, + 5971604121828058.,6792951840030118.,-.448752693616010508147,-53,52, + 5971604121828073.,6792951840030100.,.488113930211841320663,-53,52, + 5971604121828102.,6792951840030067.,.499389402945931257361,-53,52, + 5971604121828371.,6792951840029762.,-.499469143057067738683,-53,52, + 5971604121839633.,6792951840016950.,.499992052365467274266,-53,52, + 6059040276408601.,6694924832443512.,-.468136195086648914454,-53,52, + 6059040276408611.,6694924832443500.,.482383149518517070655,-53,52, + 6059040276408668.,6694924832443438.,-.499656586231340367842,-53,52, + 6059040276409335.,6694924832442700.,.499983699029445298336,-53,52, + 6059040276423199.,6694924832427382.,-.499996901630001280953,-53,52, + 6179968525032139.,6563920033410265.,-.499997432417138982519,-53,52, + 6179968525055349.,6563920033385613.,-.499980569511756789321,-53,52, + 6179968525077046.,6563920033362568.,-.499706129134953101007,-53,52, + 6179968525077674.,6563920033361900.,.483663571783945924826,-53,52, + 6179968525077722.,6563920033361850.,-.498499253617950043040,-53,52, + 6179968525078559.,6563920033360961.,-.499963521436201872196,-53,52, + 6230674196535979.,6510502383490997.,-.499997260688262597805,-53,52, + 6230674196597144.,6510502383427084.,.495343001181078751257,-53,52, + 6230674196597233.,6510502383426991.,.498230033621640771526,-53,52, + 6230674196597656.,6510502383426550.,-.499284407663861690715,-53,52, + 6230674196598324.,6510502383425851.,.499912644990946380500,-53,52, + 6230674196600751.,6510502383423315.,.499989363006984917011,-53,52, + 7267747051691612.,5581484732309393.,.499998482310238434529,-53,52, + 7267747051743336.,5581484732269670.,.499976801515303761535,-53,52, + 7267747051744935.,5581484732268442.,.499879473358735677400,-53,52, + 7267747051745978.,5581484732267641.,.496689033832971095779,-53,52, + 7267747051745991.,5581484732267632.,-.487051594846148683568,-53,52, + 7267747051746103.,5581484732267545.,.499182988842914130540,-53,52, + 7267747051746534.,5581484732267214.,.499782145742519958763,-53,52, + 7267747051753361.,5581484732261971.,.499991998202638949857,-53,52, + 7302452754234816.,5554958117843229.,.499995341810842901595,-53,52, + 7302452754244678.,5554958117835728.,-.499511101603949195873,-53,52, + 7302452754244795.,5554958117835638.,.498872364966717666136,-53,52, + 7302452754244837.,5554958117835607.,-.450425877802090889003,-53,52, + 7302452754244841.,5554958117835604.,-.493216186637196345995,-53,52, + 7302452754246571.,5554958117834287.,.499975242492185195517,-53,52, + 7319052364911228.,5542359472898148.,.499996777521439923997,-53,52, + 7319052364942017.,5542359472874834.,-.499992625200617357844,-53,52, + 7319052364943603.,5542359472873632.,.499975446865672632099,-53,52, + 7319052364945189.,5542359472872431.,.499943519452463352371,-53,52, + 7319052364945741.,5542359472872013.,.497410339289516476577,-53,52, + 7319052364945774.,5542359472871989.,-.491871535609531907740,-53,52, + 7319052364945844.,5542359472871936.,-.499439149031009785179,-53,52, + 7511273082079468.,5400525152531549.,.499996347675908701603,-53,52, + 7511273082097357.,5400525152518687.,.499986801932798611691,-53,52, + 7511273082103887.,5400525152513992.,.499703831355550663239,-53,52, + 7511273082104798.,5400525152513338.,-.499569948423736202612,-53,52, + 7511273082104880.,5400525152513279.,-.456694481831860241604,-53,52, + 7511273082104887.,5400525152513274.,-.489619746878835586131,-53,52, + 7511273082104919.,5400525152513251.,-.497278101379174843703,-53,52, + 7913137471548954.,5126262415274709.,-.499996513804768059963,-53,52, + 7913137471604993.,5126262415238406.,-.498714835493524186183,-53,52, + 7913137471605010.,5126262415238394.,.488401668957003780867,-53,52, + 7913137471605030.,5126262415238382.,-.467931855218785088845,-53,52, + 7913137471605382.,5126262415238154.,-.499401880701949338175,-53,52, + 7913137471605771.,5126262415237901.,.499911074114401590777,-53,52, + 7913137471607168.,5126262415236997.,-.499985589232901720400,-53,52, + 8070217332251342.,5026484112787456.,.499940797093817829809,-53,52, + 8070217332255168.,5026484112785073.,.499902042159427807056,-53,52, + 8070217332256332.,5026484112784349.,-.490177704058167211793,-53,52, + 8070217332256340.,5026484112784344.,-.472927393034884105903,-53,52, + 8070217332256385.,5026484112784315.,.499105606471267434398,-53,52, + 8070217332256849.,5026484112784026.,.499623645841813144146,-53,52, + 8070217332272617.,5026484112774205.,.499986693170166303480,-53,52, + 8070217332322819.,5026484112742938.,-.499998737303990725739,-53,52, + 8145371468007456.,4980106722772512.,.499999528654870673544,-53,52, + 8145371468072490.,4980106722732750.,.499963276259052702801,-53,52, + 8145371468090555.,4980106722721705.,.499953318830085273554,-53,52, + 8145371468091502.,4980106722721127.,-.498940088602607114887,-53,52, + 8145371468091695.,4980106722721009.,-.499770529594022014625,-53,52, + 8344755511729995.,4861115361652296.,-.499995250355932682905,-53,52, + 8344755511738664.,4861115361647246.,-.499244585283157494494,-53,52, + 8344755511738688.,4861115361647232.,-.480093816326183850374,-53,52, + 8344755511738712.,4861115361647218.,-.460943047369129786790,-53,52, + 8344755511738767.,4861115361647185.,.499610798157755760458,-53,52, + 8344755511739603.,4861115361646699.,-.499970749781585198746,-53,52, + 8538353789951813.,4750894634401449.,-.496934117417140987820,-53,52, + 8538353789951831.,4750894634401438.,.487539995161355139165,-53,52, + 8538353789951840.,4750894634401433.,.479777051450619038216,-53,52, + 8538353789951946.,4750894634401374.,.499457936636077122741,-53,52, + 8538353789952203.,4750894634401232.,-.499995011540270488319,-53,52, + 8575032706768526.,4730573117847625.,-.499997592766552516286,-53,52, + 8575032706780245.,4730573117841160.,-.499988114321957756244,-53,52, + 8575032706791964.,4730573117834695.,-.499978618206681733630,-53,52, + 8575032706796280.,4730573117832313.,.499939552064759219063,-53,52, + 8575032706796909.,4730573117831967.,-.499377285292888624809,-53,52, + 8575032706797112.,4730573117831855.,-.488028029294109493687,-53,52, + 8575032706797170.,4730573117831823.,-.484785384722055850181,-53,52, + 8575032706797509.,4730573117831635.,.499684555112915982170,-53,52, + 8668443273592636.,4679596777299005.,.499552183451059585911,-53,52, + 8668443273592975.,4679596777298822.,.492839509097441663802,-53,52, + 8668443273592988.,4679596777298815.,.474882975862927135049,-53,52, + 8668443273593025.,4679596777298796.,-.499301003342883619340,-53,52, + 8668443273595309.,4679596777297562.,.499720388715046039514,-53,52, + 8668443273599764.,4679596777295158.,-.499999267200695499032,-53,52, + 9007199254740991.,4503599627370497.,-.499999999999999944489,-53,52, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-52,52, + 4503599627370497.,9007199254740990.,.000000000000000444089,-52,53, + 9007199254740991.,4503599627370497.,-.499999999999999944489,-52,53, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-51,53, + 4503599627370497.,9007199254740990.,.000000000000000444089,-51,54, + 9007199254740991.,4503599627370497.,-.499999999999999944489,-51,54, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-50,54, + 4503599627370497.,9007199254740990.,.000000000000000444089,-50,55, + 9007199254740991.,4503599627370497.,-.499999999999999944489,-50,55, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-49,55, + 4503599627370497.,9007199254740990.,.000000000000000444089,-49,56 }; +#define INV(x) (1.0/(x)) +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/Makefile b/src/regress/lib/libm/fpaccuracy/Makefile new file mode 100644 index 000000000..23592d9be --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/Makefile @@ -0,0 +1,12 @@ +# $OpenBSD: Makefile,v 1.1 2009/04/09 01:24:43 martynas Exp $ + +PROG = fpaccuracy +SRCS = Gamma.c INV.c Pix.c acos.c acosh.c asin.c asinh.c atan.c \ + atanh.c cos.c cosh.c erf.c erfc.c exp.c fpaccuracy.c j0.c \ + j1.c lgamma.c log.c log10.c pow2_x.c powx_275.c sin.c \ + sinh.c sqrt.c tan.c tanh.c y0.c y1.c +LDADD = -lm +DPADD = ${LIBM} +CLEANFILES += fpaccuracy.out + +.include diff --git a/src/regress/lib/libm/fpaccuracy/Pix.c b/src/regress/lib/libm/fpaccuracy/Pix.c new file mode 100644 index 000000000..53c1b6ed8 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/Pix.c @@ -0,0 +1,753 @@ +/* $OpenBSD: Pix.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:39:55. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 720 +#define F Pix +#define Fs "Pix" +#define Fn fpaccuracy_Pix + /* 9 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -8871213671086022.,-6967434924377296.,-.499987480878433032672,-53,51, + -8871213671085570.,-6967434924376942.,.499982374768189075098,-53,51, + -8871213671080146.,-6967434924372682.,.499620642527654368337,-53,51, + -8871213671077886.,-6967434924370907.,.499469920760764907186,-53,51, + -8871213671077774.,-6967434924370819.,.464064221274972155129,-53,51, + -8871213671077765.,-6967434924370811.,-.467352308147993333876,-53,51, + -8871213671077667.,-6967434924370734.,-.498332295198061991925,-53,51, + -8871213671019592.,-6967434924325122.,-.499992988389259096493,-53,51, + -8422041051813989.,-6614655574152621.,.499991261181706114769,-53,51, + -8422041051757997.,-6614655574108644.,-.486043788894256145738,-53,51, + -8422041051757955.,-6614655574108611.,-.499320926201428427760,-53,51, + -8422041051754791.,-6614655574106126.,-.499531936675073673371,-53,51, + -8422041051748011.,-6614655574100801.,-.499984101975742056823,-53,51, + -8422041051747559.,-6614655574100447.,.499985753670880050947,-53,51, + -8245673680839220.,-6476136964905800.,-.499993805121246026602,-53,51, + -8245673680838768.,-6476136964905446.,.499976050525376081168,-53,51, + -8245673680831084.,-6476136964899411.,.499463596517951913256,-53,51, + -8245673680827249.,-6476136964896398.,-.498579774267898123696,-53,51, + -8245673680827235.,-6476136964896388.,.496994513296377782297,-53,51, + -8245673680827193.,-6476136964896355.,.483717375989205500275,-53,51, + -8245673680827179.,-6476136964896344.,.479291663553481406268,-53,51, + -8245673680827016.,-6476136964896216.,.499192297337550883185,-53,51, + -8245673680806005.,-6476136964879713.,-.499996558876659058512,-53,51, + -8108579655010714.,-6368463568807330.,.450067324338521146387,-53,51, + -8108579655010705.,-6368463568807322.,-.481349205084444342617,-53,51, + -8108579655010649.,-6368463568807278.,-.499052054827340718646,-53,51, + -8108579655006129.,-6368463568803728.,-.499353498361119640947,-53,51, + -8108579654996637.,-6368463568796273.,-.499986529782055377780,-53,51, + -8108579654930207.,-6368463568744099.,-.499992037292881441601,-53,51, + -7881394195578848.,-6190032526218937.,.499994386130396151202,-53,51, + -7881394195512418.,-6190032526166763.,.499988878619570087380,-53,51, + -7881394195509254.,-6190032526164278.,.499777868145924841770,-53,51, + -7881394195507963.,-6190032526163264.,.448806814251653030112,-53,51, + -7881394195507954.,-6190032526163256.,-.482609715171312458892,-53,51, + -7881394195507898.,-6190032526163213.,.499687435085791165079,-53,51, + -7834633035957292.,-6153306397333831.,-.499988377953744844717,-53,51, + -7834633035956840.,-6153306397333477.,.499981477692877263053,-53,51, + -7834633035951868.,-6153306397329572.,.499649889805720448521,-53,51, + -7834633035949608.,-6153306397327797.,.499499168038830987371,-53,51, + -7834633035949473.,-6153306397327690.,-.471748773305651347698,-53,51, + -7834633035949389.,-6153306397327624.,-.498303047919995911741,-53,51, + -7834633035890862.,-6153306397281657.,-.499993885464570908539,-53,51, + -7740586541070435.,-6079442452975727.,.498194028778462971729,-53,51, + -7740586541070216.,-6079442452975554.,-.499608187180363927382,-53,51, + -7740586541068408.,-6079442452974134.,-.499728764593875496303,-53,51, + -7740586541064340.,-6079442452970940.,.499999936225723473626,-53,51, + -7552125243331951.,-5931425295860421.,-.495356908115508254298,-53,51, + -7552125243331937.,-5931425295860410.,-.499782620551232348305,-53,51, + -7552125243331033.,-5931425295859700.,-.499842909257988132765,-53,51, + -7552125243328773.,-5931425295857925.,-.499993631024877593916,-53,51, + -7552125243295558.,-5931425295831838.,-.499996384780290625827,-53,51, + -7546489395550760.,-5926998911363887.,.499996562346616713057,-53,51, + -7546489395523873.,-5926998911342769.,-.499584170461505827632,-53,51, + -7546489395523710.,-5926998911342641.,-.479683536677436350715,-53,51, + -7546489395523696.,-5926998911342630.,-.484109249113160444722,-53,51, + -7546489395523654.,-5926998911342597.,-.497386386420332726743,-53,51, + -7546489395522065.,-5926998911341349.,-.499704747875017396552,-53,51, + -7546489395517997.,-5926998911338154.,-.499976047055418426623,-53,51, + -7546489395517545.,-5926998911337800.,.499993808591203681146,-53,51, + -7532060552325985.,-5915666524395199.,.499992527634330663489,-53,51, + -7532060552269075.,-5915666524350501.,-.490528523584111475486,-53,51, + -7532060552269047.,-5915666524350479.,-.499379948455559663500,-53,51, + -7532060552266335.,-5915666524348349.,-.499560814575827016881,-53,51, + -7532060552260007.,-5915666524343379.,-.499982835523117508103,-53,51, + -7532060552259555.,-5915666524343025.,.499987020123504599667,-53,51, + -7165093879021491.,-5627451573153778.,.499992089182803134406,-53,51, + -7165093878955061.,-5627451573101604.,.499986581671977070584,-53,51, + -7165093878944665.,-5627451573093439.,.499293261544285549292,-53,51, + -7165093878940145.,-5627451573089889.,.498991818010506626990,-53,51, + -7165093878940033.,-5627451573089801.,.463586118524713874933,-53,51, + -7165093878940024.,-5627451573089793.,-.467830410898251614071,-53,51, + -7165093878939926.,-5627451573089716.,-.498810397948320272121,-53,51, + -7109328173686047.,-5583653290602757.,.499994226126150742573,-53,51, + -7109328173652832.,-5583653290576670.,.499991472370737710662,-53,51, + -7109328173649216.,-5583653290573830.,.499750317543714572821,-53,51, + -7109328173647860.,-5583653290572765.,.499659884483580896131,-53,51, + -7109328173647711.,-5583653290572647.,-.476013769296625532945,-53,51, + -7109328173647697.,-5583653290572636.,-.480439481732349626952,-53,51, + -7109328173647641.,-5583653290572592.,-.498142331475246002981,-53,51, + -7017962821194535.,-5511895110557763.,.499994615415555010429,-53,51, + -7017962821161320.,-5511895110531676.,.499991861660141978518,-53,51, + -7017962821150924.,-5511895110523511.,.499298541532450457225,-53,51, + -7017962821146404.,-5511895110519961.,.498997097998671534924,-53,51, + -7017962821146362.,-5511895110519928.,.485719960691499252903,-53,51, + -7017962821146348.,-5511895110519917.,.481294248255775158896,-53,51, + -7006352136048519.,-5502776099768296.,.499992512427080093573,-53,51, + -7006352135983021.,-5502776099716853.,-.491101281505541997774,-53,51, + -7006352135982993.,-5502776099716831.,-.499952706376990185788,-53,51, + -7006352135982089.,-5502776099716122.,.499987004916254029752,-53,51, + -6828286958444393.,-5362924036312974.,-.499998451009754596441,-53,51, + -6828286958443941.,-5362924036312620.,.499971404636867511329,-53,51, + -6828286958436709.,-5362924036306940.,.499489094982821235646,-53,51, + -6828286958433093.,-5362924036304100.,.499247940155798097805,-53,51, + -6828286958433009.,-5362924036304034.,.472693665541453533763,-53,51, + -6828286958433000.,-5362924036304026.,-.458722863881511955242,-53,51, + -6638553928868192.,-5213908063347993.,.499994732577732747814,-53,51, + -6638553928834977.,-5213908063321906.,.499991978822319715903,-53,51, + -6638553928830005.,-5213908063318001.,.499660390935162901371,-53,51, + -6638553928827512.,-5213908063316043.,.497281740773722447102,-53,51, + -6638553928827428.,-5213908063315977.,.470727466159377883059,-53,51, + -6638553928827293.,-5213908063315871.,.499479524814895547991,-53,51, + -6595469068453437.,-5180069293108009.,.498712575242771016804,-53,51, + -6595469068453409.,-5180069293107987.,.489861150371322828789,-53,51, + -6595469068453400.,-5180069293107979.,-.441555379051642660215,-53,51, + -6595469068453218.,-5180069293107836.,-.499089640716055882308,-53,51, + -6595469068449150.,-5180069293104641.,-.499360939896456912379,-53,51, + -6595469068439658.,-5180069293097186.,-.499993971317392649212,-53,51, + -6595469068406443.,-5180069293071099.,-.499996725072805681123,-53,51, + -6320301642428217.,-4963953302080998.,.498293878645587717813,-53,51, + -6320301642427998.,-4963953302080825.,-.499508337313239181299,-53,51, + -6320301642425738.,-4963953302079050.,-.499659059080128642449,-53,51, + -6320301642420766.,-4963953302075145.,-.499990646967285456981,-53,51, + -6320301642387551.,-4963953302049058.,-.499993400722698488892,-53,51, + -6277581004369018.,-4930400591410135.,-.477780295562224566197,-53,51, + -6277581004368948.,-4930400591410080.,-.499908857740845036233,-53,51, + -6277581004368496.,-4930400591409725.,-.499939002094222928463,-53,51, + -6277581004367592.,-4930400591409015.,-.499999290800978712923,-53,51, + -6150458818266508.,-4830559059918156.,.499997930032773041376,-53,51, + -6150458818233293.,-4830559059892069.,.499995176277360009465,-53,51, + -6150458818226061.,-4830559059886389.,.499512866623313733783,-53,51, + -6150458818222995.,-4830559059883980.,-.469718156800262853778,-53,51, + -6150458818222981.,-4830559059883969.,-.474143869235986947785,-53,51, + -6150458818222911.,-4830559059883914.,-.496272431414607417821,-53,51, + -6150458818222897.,-4830559059883904.,.499301856149668488172,-53,51, + -6134432454524600.,-4817971983269321.,-.499999224791999097306,-53,51, + -6134432454505658.,-4817971983254444.,-.487988150326698288950,-53,51, + -6134432454505630.,-4817971983254422.,-.496839575198146476964,-53,51, + -6134432454505616.,-4817971983254412.,.498734712366129429029,-53,51, + -6134432454505397.,-4817971983254239.,-.499067503592697470083,-53,51, + -6134432454501329.,-4817971983251044.,-.499338802773098500154,-53,51, + -6134432454491837.,-4817971983243589.,-.499971834194034236987,-53,51, + -6134432454491385.,-4817971983243235.,.499998021452587870783,-53,51, + -6056160701828513.,-4756497492455915.,-.499507710254536441141,-53,51, + -6056160701828457.,-4756497492455872.,.482789440002567182830,-53,51, + -6056160701826253.,-4756497492454140.,-.499658432021425902292,-53,51, + -6056160701821281.,-4756497492450235.,-.499990019908582716823,-53,51, + -6056160701788066.,-4756497492424148.,-.499992773663995748734,-53,51, + -5587044502255591.,-8776108981782703.,-.499988769426218837566,-53,52, + -5587044502255365.,-8776108981782349.,.499981086220403270204,-53,52, + -5587044502252427.,-8776108981777734.,.499589209626490671212,-53,52, + -5587044502247229.,-8776108981769569.,.498895889498799149919,-53,52, + -5587044502247003.,-8776108981769214.,.498865745145421257689,-53,52, + -5587044502246989.,-8776108981769192.,.490014320273973069675,-53,52, + -5587044502246982.,-8776108981769181.,.485588607838248975668,-53,52, + -5587044502189161.,-8776108981678355.,-.499999784447870965209,-53,52, + -5574097035275255.,-8755771148208694.,.499994241129902761145,-53,52, + -5574097035223543.,-8755771148127464.,-.480354541179289995512,-53,52, + -5574097035223536.,-8755771148127453.,-.484780253615014089519,-53,52, + -5574097035223515.,-8755771148127420.,-.498057390922186371540,-53,52, + -5574097035223289.,-8755771148127065.,-.498087535275564263770,-53,52, + -5574097035214249.,-8755771148112865.,-.499293309410679952975,-53,52, + -5574097035209051.,-8755771148104700.,-.499986629538371474268,-53,52, + -5292230209323446.,-8313015773358255.,-.499988833837452517628,-53,52, + -5292230209323220.,-8313015773357901.,.499981021809169590142,-53,52, + -5292230209320960.,-8313015773354351.,.499679578275390667841,-53,52, + -5292230209316666.,-8313015773347606.,.499106835561210715468,-53,52, + -5292230209316510.,-8313015773347360.,-.456666184434926236690,-53,52, + -5292230209316489.,-8313015773347327.,-.469943321742098518712,-53,52, + -5292230209316440.,-8313015773347251.,.499076691207832823238,-53,52, + -5292230209257016.,-8313015773253907.,-.499999848859104645271,-53,52, + -5268565944210192.,-8275844032642055.,-.499997928849182926569,-53,52, + -5268565944204316.,-8275844032632826.,.499218317962991875447,-53,52, + -5268565944194146.,-8275844032616851.,.497861822060986725091,-53,52, + -5268565944193920.,-8275844032616496.,.497831677707608832861,-53,52, + -5268565944193878.,-8275844032616430.,.471277403093264268819,-53,52, + -5268565944193857.,-8275844032616397.,.458000265786091986797,-53,52, + -5158589873357801.,-8103094024511784.,-.428699645102076587477,-53,52, + -5158589873357766.,-8103094024511729.,-.450828207280697057513,-53,52, + -5158589873357689.,-8103094024511608.,-.499511044073662091591,-53,52, + -5158589873355429.,-8103094024508058.,-.499812487607441013893,-53,52, + -5158589873354073.,-8103094024505928.,-.499993353727708367273,-53,52, + -5158589873320858.,-8103094024453754.,-.499998861238534431095,-53,52, + -4510984822806980.,-7085838389892731.,-.499990394919130665130,-53,52, + -4510984822806754.,-7085838389892377.,.499979460727491442640,-53,52, + -4510984822802008.,-7085838389884922.,.499346429306555705807,-53,52, + -4510984822793646.,-7085838389871787.,.498231088231573693292,-53,52, + -4510984822793525.,-7085838389871596.,-.435413369585942788831,-53,52, + -4510984822793497.,-7085838389871552.,-.453116219328839164859,-53,52, + -4510984822793427.,-7085838389871442.,-.497373343686080104931,-53,52, + -4510984822793420.,-7085838389871432.,.498200943878195801062,-53,52, + -4510984822773765.,-7085838389840557.,-.499995902429956728952,-53,52, + -4504722288340376.,-7076001223756164.,.499998362589494149688,-53,52, + -4504722288288487.,-7076001223674656.,-.449400577023007841149,-53,52, + -4504722288288466.,-7076001223674623.,-.462677714330180123170,-53,52, + -4504722288288410.,-7076001223674535.,-.498083413815972875227,-53,52, + -4504722288288184.,-7076001223674180.,-.498113558169350767457,-53,52, + -4504722288279144.,-7076001223659980.,-.499319332304466456662,-53,52, + -4504722288274172.,-7076001223652170.,-.499982508078780085725,-53,52, + -4504722288273946.,-7076001223651816.,.499987347567842022045,-53,52, + -8854767244029111.,-6954517930772349.,.499996472060156627037,-54,52, + -8854767244028659.,-6954517930771994.,.499966327706778734807,-54,52, + -8854767244018263.,-6954517930763829.,.499273007579087213514,-54,52, + -8854767244013291.,-6954517930759924.,.498941419691930398983,-54,52, + -8854767244013114.,-6954517930759784.,-.485583658959724218107,-54,52, + -8854767244013072.,-6954517930759751.,-.498860796266896500128,-54,52, + -8644717199278767.,-6789545011403876.,-.499995665675766254310,-54,52, + -8644717199278315.,-6789545011403522.,.499974189970855853460,-54,52, + -8644717199271083.,-6789545011397842.,.499491880316809577778,-54,52, + -8644717199267686.,-6789545011395174.,.497052941448613339048,-54,52, + -8644717199267616.,-6789545011395119.,.474924379269992869013,-54,52, + -8644717199267467.,-6789545011395002.,.499250725489786439937,-54,52, + -8644717199245552.,-6789545011377789.,-.499998419431179286221,-54,52, + -8607732457392748.,-6760497263052869.,.499999269959797487672,-54,52, + -8607732457385968.,-6760497263047544.,.499547104659129104220,-54,52, + -8607732457383256.,-6760497263045414.,.499366238538861750840,-54,52, + -8607732457383107.,-6760497263045296.,-.476307415241344678236,-54,52, + -8607732457383093.,-6760497263045285.,-.480733127677068772243,-54,52, + -8607732457383037.,-6760497263045241.,-.498435977419965148272,-54,52, + -7868743567941793.,-6180096746506969.,.497906962035924216536,-54,52, + -7868743567941723.,-6180096746506914.,.475778399857303746501,-54,52, + -7868743567941574.,-6180096746506796.,-.499895253922902682575,-54,52, + -7868743567941122.,-6180096746506441.,-.499925398276280574805,-54,52, + -7868743567940218.,-6180096746505731.,-.499985686983036359265,-54,52, + -7868743567873788.,-6180096746453557.,-.499991194493862423087,-54,52, + -7730960159951978.,-6071881910925127.,.499997043707141486379,-54,52, + -7730960159918763.,-6071881910899040.,.499994289951728454469,-54,52, + -7730960159917859.,-6071881910898330.,.499934001244972670008,-54,52, + -7730960159917407.,-6071881910897975.,.499903856891594777778,-54,52, + -7730960159917337.,-6071881910897920.,.477775294712974307743,-54,52, + -7730960159917328.,-6071881910897912.,-.453641234709991181262,-54,52, + -7684108841897217.,-6035084971772168.,.498530809240802064153,-54,52, + -7684108841897189.,-6035084971772146.,.489679384369353876139,-54,52, + -7684108841896998.,-6035084971771995.,-.499271406718024834959,-54,52, + -7684108841893834.,-6035084971769510.,-.499482417191670080570,-54,52, + -7684108841886150.,-6035084971763475.,-.499994871199094248482,-54,52, + -7684108841852935.,-6035084971737388.,-.499997624954507280393,-54,52, + -7492339963730572.,-5884470047063296.,.499996940335417860979,-54,52, + -7492339963697357.,-5884470047037209.,.499994186580004829068,-54,52, + -7492339963696905.,-5884470047036854.,.499964042226626936838,-54,52, + -7492339963687413.,-5884470047029399.,.499331010805691200005,-54,52, + -7492339963682935.,-5884470047025881.,-.487693295420915440275,-54,52, + -7492339963682893.,-5884470047025849.,.499029567271912277704,-54,52, + -7489630554940880.,-5882342082375979.,.499993305514308872262,-54,52, + -7489630554912637.,-5882342082353796.,-.499677860353947345118,-54,52, + -7489630554912623.,-5882342082353786.,.495896427210328560875,-54,52, + -7489630554912553.,-5882342082353731.,.473767865031708090839,-54,52, + -7489630554911281.,-5882342082352731.,-.499768293414081021808,-54,52, + -7489630554908117.,-5882342082350246.,-.499979303887726267419,-54,52, + -7489630554907665.,-5882342082349892.,.499990551758895840351,-54,52, + -7298995560587036.,-5732617707931186.,-.499995109529397296910,-54,52, + -7298995560586584.,-5732617707930832.,.499974746117224810860,-54,52, + -7298995560586556.,-5732617707930810.,.491123321245776622845,-54,52, + -7298995560553821.,-5732617707905099.,-.499997863284810328821,-54,52, + -7250793807615687.,-5694760139674952.,.499999998725864536198,-54,52, + -7250793807593772.,-5694760139657739.,-.499249146195101189960,-54,52, + -7250793807593758.,-5694760139657729.,.496325141369174716033,-54,52, + -7250793807593674.,-5694760139657663.,.469770866754830151990,-54,52, + -7250793807590156.,-5694760139654899.,-.499490301022124327801,-54,52, + -7250793807582924.,-5694760139649219.,-.499972610676170603483,-54,52, + -7250793807582472.,-5694760139648865.,.499997244970451504287,-54,52, + -5733088875677982.,-9005514947103657.,-.498672812000268805832,-54,53, + -5733088875677954.,-9005514947103614.,.483624338256834818139,-54,53, + -5733088875677940.,-9005514947103592.,.474772913385386630125,-54,53, + -5733088875677756.,-9005514947103302.,-.498702956353646698062,-54,53, + -5733088875671654.,-9005514947093717.,-.499516853894849788276,-54,53, + -5733088875668038.,-9005514947088037.,-.499999163548896063958,-54,53, + -5586017142948353.,-8774495209556596.,.499995970278343193627,-54,53, + -5586017142915138.,-8774495209504422.,.499990462767517129805,-54,53, + -5586017142910166.,-8774495209496612.,.499327286993203500742,-54,53, + -5586017142901578.,-8774495209483122.,.498181801564843595997,-54,53, + -5586017142901429.,-8774495209482887.,-.453165505995569262154,-54,53, + -5586017142901408.,-8774495209482854.,-.466442643302741544176,-54,53, + -5586017142901359.,-8774495209482777.,-.497422630352810202226,-54,53, + -5586017142901352.,-8774495209482767.,.498151657211465703767,-54,53, + -4924871031066986.,-7735969325538616.,-.499877479411448888413,-54,53, + -4924871031066308.,-7735969325537551.,-.499967912471582565104,-54,53, + -4924871031066082.,-7735969325537196.,-.499998056824960457334,-54,53, + -4517699360234927.,-7096385560620678.,.499996852674746250500,-54,53, + -4517699360174436.,-7096385560525658.,-.459398997237563833096,-54,53, + -4517699360174422.,-7096385560525636.,-.468250422109012021110,-54,53, + -4517699360174373.,-7096385560525559.,-.499230409159080679160,-54,53, + -4517699360170757.,-7096385560519879.,-.499712718813126954842,-54,53, + -4517699360168723.,-7096385560516684.,-.499984017993527984913,-54,53, + -4517699360168497.,-7096385560516330.,.499985837653094122857,-54,53, + -4514338150865804.,-7091105785290071.,.499997180476320579601,-54,53, + -4514338150834397.,-7091105785240736.,-.499767172207482346380,-54,53, + -4514338150834334.,-7091105785240638.,.460401415871000807556,-54,53, + -4514338150834306.,-7091105785240594.,.442698566128104431527,-54,53, + -4514338150834171.,-7091105785240381.,-.499797316560860238610,-54,53, + -4514338150833267.,-7091105785238961.,-.499917893974371807531,-54,53, + -4514338150832589.,-7091105785237897.,.499991672965494515779,-54,53, + -8612971451642090.,-6764611959514352.,.499992434752359216077,-55,53, + -8612971451608875.,-6764611959488265.,.499989680996946184166,-55,53, + -8612971451599383.,-6764611959480810.,.499356649576010447333,-55,53, + -8612971451595315.,-6764611959477615.,.499085350395609417262,-55,53, + -8612971451595096.,-6764611959477442.,-.498716865563217481849,-55,53, + -8612971451595068.,-6764611959477421.,.492431709565334330136,-55,53, + -8341071156515244.,-6551061967094502.,-.495266048651618717713,-55,53, + -8341071156515230.,-6551061967094491.,-.499691761087342811720,-55,53, + -8341071156513874.,-6551061967093426.,-.499782194147476488411,-55,53, + -8341071156510710.,-6551061967090941.,-.499993204621121734021,-55,53, + -8341071156477495.,-6551061967064854.,-.499995958376534765932,-55,53, + -6979532375151293.,-5481711908816855.,-.499999869258167528585,-55,53, + -6979532375145417.,-5481711908812241.,.499608254147919872423,-55,53, + -6979532375142705.,-5481711908810111.,.499427388027652519042,-55,53, + -6979532375142584.,-5481711908810015.,-.467394840881105722019,-55,53, + -6979532375142570.,-5481711908810004.,-.471820553316829816026,-55,53, + -6979532375142486.,-5481711908809938.,-.498374827931174380069,-55,53, + -6842835487566906.,-5374350424365931.,.499996213225374575018,-55,53, + -6842835487549963.,-5374350424352623.,-.498921343808434336609,-55,53, + -6842835487549949.,-5374350424352613.,.496652943755841569384,-55,53, + -6842835487549893.,-5374350424352569.,.478950094012945193356,-55,53, + -6842835487544991.,-5374350424348718.,-.499252931695591151140,-55,53, + -6842835487534143.,-5374350424340198.,-.499976396176660564663,-55,53, + -6842835487533691.,-5374350424339844.,.499993459469961543107,-55,53, + -6479813464907601.,-5089233594496486.,.499997783174518595217,-55,53, + -6479813464907149.,-5089233594496131.,.499967638821140702987,-55,53, + -6479813464897205.,-5089233594488321.,.499304463046827073924,-55,53, + -6479813464892713.,-5089233594484792.,-.492145555615503660363,-55,53, + -6479813464892685.,-5089233594484771.,.499003019513048151623,-55,53, + -6070752678085648.,-4767958003808609.,.499998685007497556398,-55,53, + -6070752678085196.,-4767958003808254.,.499968540654119664168,-55,53, + -6070752678076156.,-4767958003801154.,.499365653586561819566,-55,53, + -6070752678071673.,-4767958003797633.,.439332164347196574283,-55,53, + -6070752678071664.,-4767958003797625.,-.492084365075768914721,-55,53, + -6070752678071636.,-4767958003797604.,.499064210052782897264,-55,53, + -5777052993636915.,-4537286811052163.,-.499996993530083422286,-55,53, + -5777052993636463.,-4537286811051809.,.499972862116538685484,-55,53, + -5777052993627423.,-4537286811044709.,.499369975048980840882,-55,53, + -5777052993623136.,-4537286811041341.,-.498703540090247088301,-55,53, + -5777052993623122.,-4537286811041331.,.496870747474028817692,-55,53, + -5777052993623066.,-4537286811041287.,.479167897731132441663,-55,53, + -5777052993623052.,-4537286811041276.,.474742185295408347656,-55,53, + -5777052993622903.,-4537286811041159.,.499068531515201918580,-55,53, + -5777052993603700.,-4537286811026076.,-.499999747285496454197,-55,53, + -5360050516044502.,-8419547662037794.,.499995907541116224593,-55,54, + -5360050515984626.,-8419547661943740.,-.499140921232577028377,-55,54, + -5360050515984570.,-8419547661943653.,.465453379281630219566,-55,54, + -5360050515984549.,-8419547661943620.,.452176241974457937545,-55,54, + -5360050515984400.,-8419547661943385.,-.499171065585954920607,-55,54, + -5360050515980558.,-8419547661937350.,-.499683519593379088519,-55,54, + -5360050515978298.,-8419547661933800.,-.499984963127158010820,-55,54, + -5003579018670118.,-7859603543355035.,.499996732437377744418,-55,54, + -5003579018617057.,-7859603543271686.,-.476107203556358271612,-55,54, + -5003579018617043.,-7859603543271664.,-.484958628427806459626,-55,54, + -5003579018617022.,-7859603543271631.,-.498235765734978741648,-55,54, + -5003579018616796.,-7859603543271276.,-.498265910088356633878,-55,54, + -5003579018608660.,-7859603543258496.,-.499351106809960754163,-55,54, + -5003579018603914.,-7859603543251041.,-.499984138230896490995,-55,54, + -5003579018603688.,-7859603543250687.,.499985717415725616775,-55,54, + -4966294589214637.,-7801037298519721.,-.499999343866944556680,-55,54, + -4966294589208987.,-7801037298510847.,.499247047298608137567,-55,54, + -4966294589199269.,-7801037298495582.,.497950840103358771671,-55,54, + -4966294589199043.,-7801037298495227.,.497920695749980879441,-55,54, + -4966294589198973.,-7801037298495117.,.453663571392739939370,-55,54, + -4966294589198945.,-7801037298495073.,.435960721649843563341,-55,54, + -5370993780305881.,-8436737301342713.,-.499992289895166308611,-57,56, + -5370993780305655.,-8436737301342359.,.499977565751455799159,-57,56, + -5370993780301361.,-8436737301335614.,.499404823037275846787,-57,56, + -5370993780293451.,-8436737301323189.,.498349770669049618732,-57,56, + -5370993780293225.,-8436737301322834.,.498319626315671726502,-57,56, + -5370993780293197.,-8436737301322790.,.480616776572775350473,-57,56, + -5370993780293183.,-8436737301322768.,.471765351701327162459,-57,56, + -5370993780272666.,-8436737301290539.,-.499997797405992372433,-57,56, + -5040083604759785.,-7916944813095852.,.499999436631080484972,-57,56, + -5040083604726570.,-7916944813043678.,.499993929120254421150,-57,56, + -5040083604725666.,-7916944813042258.,.499873351706742852230,-57,56, + -5040083604723695.,-7916944813039161.,-.460566535552141331777,-57,56, + -5040083604723674.,-7916944813039128.,-.473843672859313613799,-57,56, + -5040083604723632.,-7916944813039063.,.499602052526341822158,-57,56, + -7518049176540144.,-5904662015586328.,.499995108278696420712,-58,56, + -7518049176487041.,-5904662015544621.,.498666002974656130675,-58,56, + -7518049176486957.,-5904662015544555.,.472111728360311566632,-58,56, + -7518049176486943.,-5904662015544544.,.467686015924587472625,-58,56, + -7518049176486822.,-5904662015544448.,-.499136212984170768436,-58,56, + -7518049176482754.,-5904662015541253.,-.499407512164571798507,-58,56, + -7518049176474166.,-5904662015534508.,-.499980254878751750880,-58,56, + -7518049176473714.,-5904662015534154.,.499989600767870356890,-58,56, + -4503599627370609.,-7074237752028617.,-.499984927823311053885,-1074,1073, + -4503599627370497.,-7074237752028442.,.429203673205103442001,-1074,1073, + -4503599627370496.,-7074237752028440.,-.000000000000000000000,-1074,1073, + 0.,0.,0.000000000000000000000,0,0, + 4503599627370496.,7074237752028440.,.000000000000000000000,-1074,1073, + 4503599627370497.,7074237752028442.,-.429203673205103442001,-1074,1073, + 4503599627370609.,7074237752028617.,.499984927823311053885,-1074,1073, + 7327657448542313.,5755128702090764.,.499991961609306478920,-58,56, + 7327657448598347.,5755128702134774.,-.499320225773828063609,-58,56, + 7327657448598361.,5755128702134784.,.496254061790447842384,-58,56, + 7327657448598417.,5755128702134828.,.478551212047551466355,-58,56, + 7327657448598426.,5755128702134836.,-.452865317375414022649,-58,56, + 7327657448601511.,5755128702137259.,-.499531236247473309220,-58,56, + 7327657448608291.,5755128702142584.,-.499983401548141692672,-58,56, + 7327657448608743.,5755128702142938.,.499986454098480415098,-58,56, + 5734161139222657.,9007199254740989.,.064137791945148237005,-57,56, + 5734161139222658.,9007199254740991.,-.365065881259955204996,-57,56, + 5734161139222659.,4503599627370496.,.102865222767470676501,-57,55, + 5734161139222671.,4503599627370506.,-.472356816463149975505,-57,55, + 5734161139222755.,4503599627370572.,-.498911091077494539547,-57,55, + 5734161139227727.,4503599627374477.,-.499242678964651354079,-57,55, + 5734161139238575.,4503599627382997.,-.499966143445720767602,-57,55, + 5734161139239027.,4503599627383352.,-.499996287799098659832,-57,55, + 6940259249728592.,5450866868238988.,.499991422593424772458,-57,55, + 6940259249795022.,5450866868291162.,.499985915082598708636,-57,55, + 6940259249800898.,5450866868295777.,.499594038488686109645,-57,55, + 6940259249803829.,5450866868298080.,-.498389043590408142848,-57,55, + 6940259249803843.,5450866868298090.,.497185243973867763145,-57,55, + 6940259249803885.,5450866868298123.,.483908106666695481124,-57,55, + 6940259249803899.,5450866868298134.,.479482394230971387117,-57,55, + 6940259249804062.,5450866868298262.,.499383028015040864034,-57,55, + 8328945592813027.,6541538571632623.,-.499986667189992850524,-57,55, + 8328945592813479.,6541538571632977.,.499983188456629257246,-57,55, + 8328945592818451.,6541538571636882.,.499651600569472442714,-57,55, + 8328945592820711.,6541538571638657.,.499500878802582981564,-57,55, + 8328945592820916.,6541538571638819.,-.493875624720519823541,-57,55, + 8328945592820930.,6541538571638830.,-.498301337156243917548,-57,55, + 8328945592879457.,6541538571684797.,-.499992174700818914346,-57,55, + 5682480038753320.,8926018771959037.,-.499994745595600420529,-56,55, + 5682480038754450.,8926018771960811.,.499854532637510118320,-56,55, + 5682480038756216.,8926018771963586.,-.473832347575168455478,-56,55, + 5682480038756223.,8926018771963597.,-.478258060010892549485,-56,55, + 5682480038756258.,8926018771963651.,.499613377810486980479,-56,55, + 5682480038786535.,8926018772011210.,.499999746893573515649,-56,55, + 5734161139222657.,9007199254740989.,.064137791945148237005,-56,55, + 5734161139222658.,9007199254740991.,-.365065881259955204996,-56,55, + 5734161139222659.,4503599627370496.,.102865222767470676501,-56,54, + 5734161139222671.,4503599627370506.,-.472356816463149975505,-56,54, + 5734161139222755.,4503599627370572.,-.498911091077494539547,-56,54, + 5734161139227727.,4503599627374477.,-.499242678964651354079,-56,54, + 5734161139238575.,4503599627382997.,-.499966143445720767602,-56,54, + 5734161139239027.,4503599627383352.,-.499996287799098659832,-56,54, + 6175493946621808.,4850221603748827.,.499995315306549059642,-56,54, + 6175493946646216.,4850221603767997.,.498367520224142879215,-56,54, + 6175493946646286.,4850221603768052.,.476238958045522409179,-56,54, + 6175493946646300.,4850221603768063.,.471813245609798315172,-56,54, + 6175493946646435.,4850221603768170.,-.499434695734684019897,-56,54, + 6175493946649147.,4850221603770300.,-.499615561854951373277,-56,54, + 6175493946654571.,4850221603774560.,-.499977294095486080039,-56,54, + 6175493946655023.,4850221603774914.,.499992561551136027731,-56,54, + 6823990675675427.,5359549743716792.,.499996372305823832960,-56,54, + 6823990675708642.,5359549743742879.,.499993618550410801049,-56,54, + 6823990675709094.,5359549743743234.,.499963474197032908819,-56,54, + 6823990675709439.,5359549743743505.,.462329846316689163643,-56,54, + 6823990675709448.,5359549743743513.,-.469086683106276325361,-56,54, + 6823990675709532.,5359549743743579.,-.495640957720620889404,-56,54, + 6823990675709546.,5359549743743589.,.499933329843655016589,-56,54, + 7740553500813505.,6079416503218615.,.499993126692035438907,-56,54, + 7740553500846720.,6079416503244702.,.499990372936622406996,-56,54, + 7740553500857568.,6079416503253222.,.499266908455552993473,-56,54, + 7740553500862088.,6079416503256772.,.498965464921774071172,-56,54, + 7740553500862130.,6079416503256805.,.485688327614601789151,-56,54, + 8359220028906631.,6565316058138433.,-.499814132210995687444,-56,54, + 8359220028906645.,6565316058138443.,.495760155353280218549,-56,54, + 8359220028906701.,6565316058138487.,.478057305610383842520,-56,54, + 8359220028906715.,6565316058138498.,.473631593174659748513,-56,54, + 8359220028907535.,6565316058139143.,-.499874420917751471904,-56,54, + 8359220028909343.,6565316058140563.,-.499994998331263040825,-56,54, + 8359220028942558.,6565316058166650.,-.499997752086676072736,-56,54, + 8513798801012748.,6686721941850809.,.499992369494894006721,-56,54, + 8513798801079178.,6686721941902983.,.499986861984067942899,-56,54, + 8513798801089122.,6686721941910793.,.499323686209754313836,-56,54, + 8513798801093190.,6686721941913988.,.499052387029353283765,-56,54, + 8513798801093409.,6686721941914161.,-.498749828929473615347,-56,54, + 8513798801093423.,6686721941914171.,.496824458634802290646,-56,54, + 8513798801093451.,6686721941914193.,.487973033763354102632,-56,54, + 5173600871676907.,8126673245532961.,-.499999813038071394544,-55,54, + 5173600871710122.,8126673245585134.,.499994679451102541634,-55,54, + 5173600871712156.,8126673245588329.,.499723380270701511563,-55,54, + 5173600871715998.,8126673245594364.,.499210926263277343651,-55,54, + 5173600871716075.,8126673245594485.,.450528089470312309572,-55,54, + 5173600871716103.,8126673245594529.,.432825239727415933544,-55,54, + 5734161139222657.,9007199254740989.,.064137791945148237005,-55,54, + 5734161139222658.,9007199254740991.,-.365065881259955204996,-55,54, + 5734161139222659.,4503599627370496.,.102865222767470676501,-55,53, + 5734161139222671.,4503599627370506.,-.472356816463149975505,-55,53, + 5734161139222755.,4503599627370572.,-.498911091077494539547,-55,53, + 5734161139227727.,4503599627374477.,-.499242678964651354079,-55,53, + 5734161139238575.,4503599627382997.,-.499966143445720767602,-55,53, + 5734161139239027.,4503599627383352.,-.499996287799098659832,-55,53, + 5852820566534167.,4596794523650747.,.499997050805551346286,-55,53, + 5852820566564889.,4596794523674877.,-.497627052788421231355,-55,53, + 5852820566564903.,4596794523674887.,.497947234775854674638,-55,53, + 5852820566565122.,4596794523675060.,-.499854981182972224474,-55,53, + 5852820566565574.,4596794523675415.,-.499885125536350116704,-55,53, + 5852820566567382.,4596794523676834.,.499994297050138314376,-55,53, + 6216155809148255.,4882157355897418.,.499994226556393250860,-55,53, + 6216155809171759.,4882157355915878.,.498426720180742854893,-55,53, + 6216155809171829.,4882157355915933.,.476298158002122384858,-55,53, + 6216155809171843.,4882157355915944.,.471872445566398290850,-55,53, + 6216155809171978.,4882157355916051.,-.499375495778084044218,-55,53, + 6216155809174690.,4882157355918181.,-.499556361898351397599,-55,53, + 6216155809181018.,4882157355923151.,-.499978382845641888821,-55,53, + 6216155809181470.,4882157355923505.,.499991472800980218949,-55,53, + 6575998564307615.,5164777194911457.,.499998429351362183581,-55,53, + 6575998564309875.,5164777194913232.,.499847707584472722431,-55,53, + 6575998564310779.,5164777194913942.,.499787418877716937970,-55,53, + 6575998564310956.,5164777194914082.,-.484737659773937679120,-55,53, + 6575998564310970.,5164777194914093.,-.489163372209661773127,-55,53, + 6575998564310998.,5164777194914115.,-.498014797081109961141,-55,53, + 7082784227659924.,5562805724144519.,-.499872213087147798660,-55,53, + 7082784227659966.,5562805724144551.,.486850649605679919318,-55,53, + 7082784227660376.,5562805724144874.,-.499902357440525690890,-55,53, + 7082784227661732.,5562805724145939.,-.499992790500659367581,-55,53, + 7082784227694947.,5562805724172026.,-.499995544256072399492,-55,53, + 8687303334621778.,6822992083888473.,-.499514222209606728597,-55,53, + 8687303334624038.,6822992083890248.,-.499664943976496189748,-55,53, + 8687303334629010.,6822992083894153.,-.499996531863653004280,-55,53, + 5227720812136349.,8211684649213011.,-.499999400762151324784,-54,53, + 5227720812169564.,8211684649265184.,.499995091727022611394,-54,53, + 5227720812175214.,8211684649274059.,.499241482892575305641,-54,53, + 5227720812184706.,8211684649288969.,.497975420050703831976,-54,53, + 5227720812185081.,8211684649289559.,-.453402031863086918406,-54,53, + 5227720812185102.,8211684649289592.,-.466679169170259200428,-54,53, + 5227720812185151.,8211684649289669.,-.497659156220327858478,-54,53, + 5227720812185158.,8211684649289679.,.497915131343948047515,-54,53, + 5299073463163106.,8323765131352919.,-.499999347112908054669,-54,53, + 5299073463168304.,8323765131361083.,.499307332759400424038,-54,53, + 5299073463177344.,8323765131375283.,.498101558624284734833,-54,53, + 5299073463177570.,8323765131375638.,.498071414270906842603,-54,53, + 5299073463177633.,8323765131375737.,.458240002349389996539,-54,53, + 5299073463177654.,8323765131375770.,.444962865042217714517,-54,53, + 5354986034445319.,8411592392944677.,-.499988805286440296527,-54,53, + 5354986034445545.,8411592392945031.,.499981050360181811243,-54,53, + 5354986034449387.,8411592392951066.,.499468596352757643331,-54,53, + 5354986034456619.,8411592392962426.,.498503977044665091967,-54,53, + 5354986034456682.,8411592392962525.,.458672565123148245902,-54,53, + 5354986034456710.,8411592392962569.,.440969715380251869874,-54,53, + 5354986034511749.,8411592393049025.,-.499999820308092424170,-54,53, + 5734161139222657.,9007199254740989.,.064137791945148237005,-54,53, + 5734161139222658.,9007199254740991.,-.365065881259955204996,-54,53, + 5734161139222659.,4503599627370496.,.102865222767470676501,-54,52, + 5734161139222671.,4503599627370506.,-.472356816463149975505,-54,52, + 5734161139222755.,4503599627370572.,-.498911091077494539547,-54,52, + 5734161139227727.,4503599627374477.,-.499242678964651354079,-54,52, + 5734161139238575.,4503599627382997.,-.499966143445720767602,-54,52, + 5734161139239027.,4503599627383352.,-.499996287799098659832,-54,52, + 6318840445926205.,4962805681031955.,-.498932839391081905944,-54,52, + 6318840445926233.,4962805681031976.,.492215735737469906041,-54,52, + 6318840445931177.,4962805681035860.,-.499264427278238720476,-54,52, + 6318840445942025.,4962805681044380.,-.499987891759308133999,-54,52, + 6318840446008455.,4962805681096554.,-.499993399270134197820,-54,52, + 6779876501427622.,5324902552282771.,.443579883549022113698,-54,52, + 6779876501427631.,5324902552282779.,-.487836645873943375307,-54,52, + 6779876501427659.,5324902552282801.,-.496688070745391563321,-54,52, + 6779876501427673.,5324902552282811.,.498886216818884342672,-54,52, + 6779876501427892.,5324902552282984.,-.498915999139942556440,-54,52, + 6779876501432864.,5324902552286889.,-.499247587027099370971,-54,52, + 6779876501443712.,5324902552295409.,-.499971051508168784494,-54,52, + 6779876501444164.,5324902552295763.,.499998804138453323276,-54,52, + 7852441927966586.,6167293468410074.,.499995281638957678183,-54,52, + 7852441927999801.,6167293468436161.,.499992527883544646272,-54,52, + 7852441928001609.,6167293468437581.,.499871950470033077352,-54,52, + 7852441928002061.,6167293468437936.,.499841806116655185122,-54,52, + 7852441928002201.,6167293468438046.,.455584681759414245050,-54,52, + 7852441928002210.,6167293468438054.,-.475831847663551243954,-54,52, + 7852441928002280.,6167293468438109.,-.497960409842171713990,-54,52, + 8012612783764184.,6293091364383305.,.499990386588144986035,-54,52, + 8012612783817450.,6293091364425141.,-.481438084931825827084,-54,52, + 8012612783817506.,6293091364425185.,-.499140934674722203113,-54,52, + 8012612783821574.,6293091364428380.,-.499412233855123233184,-54,52, + 8012612783830162.,6293091364435125.,-.499984976569303185556,-54,52, + 8633994769842333.,6781123635017342.,.499998719501710375823,-54,52, + 8633994769867412.,6781123635037040.,-.499461435892900595945,-54,52, + 8633994769867426.,6781123635037050.,.496112851671375310048,-54,52, + 8633994769870124.,6781123635039170.,-.499642302013167949326,-54,52, + 8633994769875096.,6781123635043075.,-.499973889900324763857,-54,52, + 8633994769875548.,6781123635043429.,.499995965746297343912,-54,52, + 8717776617241174.,6846925744090438.,-.499212130172336898681,-54,52, + 8717776617241202.,6846925744090459.,.491936444956214913304,-54,52, + 8717776617244790.,6846925744093278.,-.499453284999360036522,-54,52, + 8717776617252926.,6846925744099668.,-.499995883360162096665,-54,52, + 8911976088165993.,6999449651887546.,.499997047804266792070,-54,52, + 8911976088171869.,6999449651892161.,.499605171210354193079,-54,52, + 8911976088174129.,6999449651893936.,.499454449443464731928,-54,52, + 8911976088174348.,6999449651894109.,-.498347766515362167183,-54,52, + 4733303198944315.,7435055278508264.,-.498606904533259509549,-53,52, + 4733303198944322.,7435055278508274.,.496967383031016396444,-53,52, + 4733303198944392.,7435055278508384.,.452710258673775456373,-53,52, + 4733303198944420.,7435055278508428.,.435007408930879080344,-53,52, + 4733303198944541.,7435055278508619.,-.498637048886637401779,-53,52, + 4733303198951095.,7435055278518914.,-.499511235134596276453,-53,52, + 4733303198954711.,7435055278524594.,-.499993544788642552135,-53,52, + 4733303198987926.,7435055278576768.,-.499999052299468615956,-53,52, + 5018163383776846.,7882512610493319.,-.498091465898294671888,-53,52, + 5018163383776853.,7882512610493329.,.497482821665981234105,-53,52, + 5018163383776888.,7882512610493384.,.475354259487360764069,-53,52, + 5018163383776902.,7882512610493406.,.466502834615912576055,-53,52, + 5018163383777072.,7882512610493674.,-.498121610251672564118,-53,52, + 5018163383786112.,7882512610507874.,-.499327384386788253323,-53,52, + 5018163383791084.,7882512610515684.,-.499990560161101882386,-53,52, + 5018163383824299.,7882512610567858.,-.499996067671927946208,-53,52, + 5734161139222657.,9007199254740989.,.064137791945148237005,-53,52, + 5734161139222658.,9007199254740991.,-.365065881259955204996,-53,52, + 5734161139222659.,4503599627370496.,.102865222767470676501,-53,51, + 5734161139222671.,4503599627370506.,-.472356816463149975505,-53,51, + 5734161139222755.,4503599627370572.,-.498911091077494539547,-53,51, + 5734161139227727.,4503599627374477.,-.499242678964651354079,-53,51, + 5734161139238575.,4503599627382997.,-.499966143445720767602,-53,51, + 5734161139239027.,4503599627383352.,-.499996287799098659832,-53,51, + 5949535300084850.,4672754097754927.,.499995993082526624107,-53,51, + 5949535300107902.,4672754097773032.,.498458631060254120371,-53,51, + 5949535300107958.,4672754097773076.,.480755781317357744342,-53,51, + 5949535300108121.,4672754097773205.,-.499343584898572778741,-53,51, + 5949535300110833.,4672754097775335.,-.499524451018840132122,-53,51, + 5949535300117613.,4672754097780660.,-.499976616319508515573,-53,51, + 5949535300118065.,4672754097781014.,.499993239327113592196,-53,51, + 5971604121753111.,4690086909761525.,.499992133089937063062,-53,51, + 5971604121819541.,4690086909813699.,.499986625579110999240,-53,51, + 5971604121825417.,4690086909818314.,.499594748985198400248,-53,51, + 5971604121828059.,4690086909820390.,-.478457554956448483097,-53,51, + 5971604121828073.,4690086909820401.,-.482883267392172577104,-53,51, + 5971604121828115.,4690086909820434.,-.496160404699344859125,-53,51, + 5971604121828129.,4690086909820444.,.499413882864931046868,-53,51, + 6059040276344273.,4758759104991959.,.499992129858827460964,-53,51, + 6059040276408443.,4758759105042359.,-.499862655885109141707,-53,51, + 6059040276408597.,4758759105042479.,.451454507321925824215,-53,51, + 6059040276408606.,4758759105042487.,-.479962022101039664790,-53,51, + 6059040276408662.,4758759105042531.,-.497664871843936040818,-53,51, + 6059040276409347.,4758759105043069.,-.499922944591864926167,-53,51, + 6059040276410251.,4758759105043779.,-.499983233298620710627,-53,51, + 6059040276410703.,4758759105044133.,.499986622348001397143,-53,51, + 6179968525071178.,4853735929444941.,-.499993424376471651271,-53,51, + 6179968525071630.,4853735929445295.,.499976431270150456498,-53,51, + 6179968525075698.,4853735929448490.,.499705132089749426427,-53,51, + 6179968525077506.,4853735929449910.,.499584554676237857507,-53,51, + 6179968525077669.,4853735929450039.,-.480514811539692665576,-53,51, + 6179968525077683.,4853735929450050.,-.484940523975416759583,-53,51, + 6179968525077725.,4853735929450083.,-.498217661282589041605,-53,51, + 6179968525104393.,4853735929471028.,-.499996178131884683182,-53,51, + 6230674196572694.,4893560070716065.,.499995474687695562466,-53,51, + 6230674196597102.,4893560070735235.,.498367679605289382039,-53,51, + 6230674196597144.,4893560070735268.,.485090542298117100017,-53,51, + 6230674196597321.,4893560070735408.,-.499434536353537517073,-53,51, + 6230674196600033.,4893560070737538.,-.499615402473804870453,-53,51, + 6230674196605457.,4893560070741798.,-.499977134714339577215,-53,51, + 6230674196605909.,4893560070742152.,.499992720932282530555,-53,51, + 7267747051745918.,5708075186478463.,.497868672805504175471,-53,51, + 7267747051745988.,5708075186478518.,.475740110626883705436,-53,51, + 7267747051746137.,5708075186478636.,-.499933543153322723640,-53,51, + 7267747051747041.,5708075186479346.,-.499993831860078508100,-53,51, + 7267747051780256.,5708075186505433.,-.499996585615491540011,-53,51, + 7302452754234209.,5735332981472186.,-.499996454588708338918,-53,51, + 7302452754234661.,5735332981472540.,.499973401057913768852,-53,51, + 7302452754241441.,5735332981477865.,.499521235757245385400,-53,51, + 7302452754244605.,5735332981480350.,.499310225283600139790,-53,51, + 7302452754244824.,5735332981480523.,-.498491990675226759322,-53,51, + 7302452754267424.,5735332981498273.,-.499999208344121370828,-53,51, + 7319052364938238.,5748370285232243.,-.499991349735699586176,-53,51, + 7319052364938690.,5748370285232597.,.499978505910922521593,-53,51, + 7319052364943662.,5748370285236502.,.499646918023765707062,-53,51, + 7319052364945703.,5748370285238105.,.497298412215703145023,-53,51, + 7319052364945759.,5748370285238149.,.479595562472806768994,-53,51, + 7319052364945773.,5748370285238160.,.475169850037082674987,-53,51, + 7319052364945922.,5748370285238277.,.499496196256876245911,-53,51, + 7319052364971453.,5748370285258330.,-.499994103491112618087,-53,51, + 7511273082077718.,5899340083440530.,.499999024527371105364,-53,51, + 7511273082104838.,5899340083461830.,.498190363324697571556,-53,51, + 7511273082104880.,5899340083461863.,.484913226017525289535,-53,51, + 7511273082105057.,5899340083462003.,-.499611852634129327555,-53,51, + 7511273082106865.,5899340083463423.,-.499732430047640896476,-53,51, + 7511273082110933.,5899340083466617.,.499996270771958073453,-53,51, + 7913137471605028.,6214963636910117.,-.477660635091996965684,-53,51, + 7913137471605042.,6214963636910128.,-.482086347527721059691,-53,51, + 7913137471605098.,6214963636910172.,-.499789197270617435720,-53,51, + 7913137471606002.,6214963636910882.,-.499849485977373220180,-53,51, + 7913137471608262.,6214963636912656.,.499999792255737318669,-53,51, + 8070217332256338.,6338333870972383.,-.499835762087920798535,-53,51, + 8070217332257242.,6338333870973093.,-.499896050794676582996,-53,51, + 8070217332258598.,6338333870974158.,-.499986483854810259686,-53,51, + 8070217332325028.,6338333871026332.,-.499991991365636323508,-53,51, + 8145371468079802.,6397359791219854.,-.499996400336742752302,-53,51, + 8145371468080254.,6397359791220208.,.499973455309879355468,-53,51, + 8145371468087938.,6397359791226243.,.499461001302455187556,-53,51, + 8145371468091498.,6397359791229040.,-.483077303781671574257,-53,51, + 8145371468091512.,6397359791229051.,-.487503016217395668264,-53,51, + 8145371468091554.,6397359791229083.,.499219846475432049715,-53,51, + 8145371468113017.,6397359791245941.,-.499999154092155784213,-53,51, + 8344755511673594.,6553955652869174.,.499994007755772074120,-53,51, + 8344755511738668.,6553955652920284.,-.499921066694920313012,-53,51, + 8344755511738710.,6553955652920316.,.486801795997907404967,-53,51, + 8344755511739120.,6553955652920639.,-.499951211048298205242,-53,51, + 8344755511740024.,6553955652921348.,.499988500244946010298,-53,51, + 8538353789951656.,6706007385065673.,-.499487005986118504097,-53,51, + 8538353789951838.,6706007385065815.,.442978732349468273810,-53,51, + 8538353789951847.,6706007385065823.,-.488437797073497215194,-53,51, + 8538353789951875.,6706007385065845.,-.497289221944945403209,-53,51, + 8538353789951889.,6706007385065855.,.498285065619330502784,-53,51, + 8538353789954368.,6706007385067803.,-.499667872106385857478,-53,51, + 8538353789959340.,6706007385071708.,-.499999459993542672009,-53,51, + 8575032706797158.,6734814938991537.,.498501630218230573632,-53,51, + 8575032706797172.,6734814938991548.,.494075917782506479625,-53,51, + 8575032706797377.,6734814938991710.,-.499300585740596325479,-53,51, + 8575032706800541.,6734814938994195.,-.499511596214241571090,-53,51, + 8575032706807773.,6734814938999875.,-.499993905868287846772,-53,51, + 8575032706840988.,6734814939025962.,-.499996659623700878683,-53,51, + 8668443273579575.,6808179426584363.,-.499990360136048472839,-53,51, + 8668443273580027.,6808179426584717.,.499979495510573634931,-53,51, + 8668443273589067.,6808179426591817.,.499376608443015790328,-53,51, + 8668443273592902.,6808179426594830.,-.498666762342834246624,-53,51, + 8668443273592916.,6808179426594840.,.496907525221441659369,-53,51, + 8668443273592986.,6808179426594895.,.474778963042821189333,-53,51, + 8668443273593135.,6808179426595012.,.499105309262614760257,-53,51, + 8668443273646005.,6808179426636537.,-.499995867646874536661,-53,51, + 9007199254740766.,7074237752028263.,-.499984927823311053885,-53,51, + 9007199254740991.,7074237752028439.,.214601836602551721001,-53,51, + 4503599627370497.,7074237752028442.,-.429203673205103442001,-52,51, + 4503599627370525.,7074237752028486.,-.446906522947999818030,-52,51, + 4503599627370609.,7074237752028617.,.499984927823311053885,-52,51, + 4503599627436813.,7074237752132611.,-.499995942844963181528,-52,51, + 5734161139222657.,9007199254740989.,.064137791945148237005,-52,51, + 5734161139222658.,9007199254740991.,-.365065881259955204996,-52,51, + 5734161139222659.,4503599627370496.,.102865222767470676501,-52,50, + 5734161139222671.,4503599627370506.,-.472356816463149975505,-52,50, + 5734161139222755.,4503599627370572.,-.498911091077494539547,-52,50, + 5734161139227727.,4503599627374477.,-.499242678964651354079,-52,50, + 5734161139238575.,4503599627382997.,-.499966143445720767602,-52,50, + 5734161139239027.,4503599627383352.,-.499996287799098659832,-52,50, + 9007199254740766.,7074237752028263.,-.499984927823311053885,-52,50, + 9007199254740991.,7074237752028439.,.214601836602551721001,-52,50, + 4503599627370497.,7074237752028442.,-.429203673205103442001,-51,50, + 4503599627370525.,7074237752028486.,-.446906522947999818030,-51,50, + 4503599627370609.,7074237752028617.,.499984927823311053885,-51,50, + 4503599627436813.,7074237752132611.,-.499995942844963181528,-51,50, + 5734161139222657.,9007199254740989.,.064137791945148237005,-51,50, + 5734161139222658.,9007199254740991.,-.365065881259955204996,-51,50, + 5734161139222659.,4503599627370496.,.102865222767470676501,-51,49, + 5734161139222671.,4503599627370506.,-.472356816463149975505,-51,49, + 5734161139222755.,4503599627370572.,-.498911091077494539547,-51,49, + 5734161139227727.,4503599627374477.,-.499242678964651354079,-51,49, + 5734161139238575.,4503599627382997.,-.499966143445720767602,-51,49, + 5734161139239027.,4503599627383352.,-.499996287799098659832,-51,49 }; +#define Pix(x) (scalb(7074237752028440.,-51)*x) +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/acos.c b/src/regress/lib/libm/fpaccuracy/acos.c new file mode 100644 index 000000000..dea4ef7ce --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/acos.c @@ -0,0 +1,1340 @@ +/* $OpenBSD: acos.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:24:00. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1308 +#define F acos +#define Fs "acos" +#define Fn fpaccuracy_acos + /* 4 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -9007199254740990.,7074237704575307.,.463640166092412231616,-53,51, + -8871213671122623.,6682455968179043.,-.499996981706058630852,-53,51, + -8871213671077798.,6682455968114307.,.498789515324033175026,-53,51, + -8871213671077789.,6682455968114295.,-.498756739530856373118,-53,51, + -8871213671077771.,6682455968114269.,-.493849249239354949478,-53,51, + -8871213671077386.,6682455968113713.,-.499994595373436495785,-53,51, + -8826946188860616.,6622986774046590.,-.499973645142609017154,-53,51, + -8826946188860405.,6622986774046325.,-.499289031548223669247,-53,51, + -8826946188860362.,6622986774046270.,.496111150387948112111,-53,51, + -8826946188860319.,6622986774046216.,.491511332330496281274,-53,51, + -8826946188850398.,6622986774033757.,-.499995356474851993134,-53,51, + -8422041051758179.,6258094789752480.,-.499246303611522175402,-53,51, + -8422041051758023.,6258094789752370.,-.495653370975826770120,-53,51, + -8422041051758006.,6258094789752358.,-.482441320623644770430,-53,51, + -8422041051757996.,6258094789752350.,.466506944289482070242,-53,51, + -8422041051757650.,6258094789752107.,-.499883089680468803574,-53,51, + -8422041051755985.,6258094789750933.,-.499996980497483769005,-53,51, + -8245673680829802.,6141626747015635.,-.499962033273990183576,-53,51, + -8245673680829171.,6141626747015242.,.499936084795723901512,-53,51, + -8245673680827278.,6141626747014066.,.499630439936289283183,-53,51, + -8245673680827212.,6141626747014025.,.498034997509976678743,-53,51, + -8245673680827183.,6141626747014007.,.482182454626224874327,-53,51, + -8245673680827175.,6141626747014003.,-.487707902031304127290,-53,51, + -8245673680819772.,6141626747009404.,-.499996683296937390879,-53,51, + -8242701861768125.,6139782263421385.,-.499992749620176518313,-53,51, + -8242701861718038.,6139782263390326.,.499721934605182802702,-53,51, + -8242701861718030.,6139782263390322.,-.460926582547697772826,-53,51, + -8242701861717301.,6139782263389869.,.499977292000176498673,-53,51, + -8242701861705459.,6139782263382527.,-.499990193011698843027,-53,51, + -8178102513296246.,6100501092320932.,-.499999588194415839498,-53,51, + -8178102513291083.,6100501092317851.,.499986399591623075351,-53,51, + -8178102513290793.,6100501092317678.,.499791926970230325104,-53,51, + -8178102513290523.,6100501092317517.,.430645349038267641476,-53,51, + -8178102513290503.,6100501092317505.,.499597454377633747493,-53,51, + -8108579655010922.,6059820946763683.,-.499502230344921213886,-53,51, + -8108579655010713.,6059820946763562.,.498137614489961456216,-53,51, + -8108579655009621.,6059820946762936.,-.499839846731896146400,-53,51, + -8108579654959199.,6059820946733985.,-.499857356288298473517,-53,51, + -8108579654591415.,6059820946522813.,-.499961793810932629832,-53,51, + -8003544517599782.,6001089345048996.,-.499999329865330612272,-53,51, + -8003544517553222.,6001089345023622.,-.499654478559183309550,-53,51, + -8003544517553200.,6001089345023610.,-.489087305173793578162,-53,51, + -8003544517553033.,6001089345023519.,-.499781943562485180992,-53,51, + -8003544517552655.,6001089345023312.,.499963126458288686857,-53,51, + -8003544517544895.,6001089345019084.,-.499979343355343039003,-53,51, + -7958411719130475.,5976747501631272.,-.499994661188168376956,-53,51, + -7958411719107964.,5976747501619255.,-.499852548562393544147,-53,51, + -7958411719107698.,5976747501619113.,-.498073959506346481658,-53,51, + -7958411719107668.,5976747501619096.,.487089039260433228418,-53,51, + -7958411719101224.,5976747501615657.,-.499898820654831649874,-53,51, + -7958411719087744.,5976747501608461.,-.499991332300146270140,-53,51, + -7881394195509590.,5936316029185311.,.499976667811184898143,-53,51, + -7881394195509255.,5936316029185138.,.499919255062005530440,-53,51, + -7881394195507950.,5936316029184465.,-.425677531687068872476,-53,51, + -7881394195507949.,5936316029184464.,.057904386484144418865,-53,51, + -7881394195507946.,5936316029184463.,-.491349859002214422716,-53,51, + -7881394195507915.,5936316029184446.,.499689604305523693759,-53,51, + -7881394195492292.,5936316029176378.,.499997219410576044183,-53,51, + -7834633035963912.,5912396887014834.,-.499991609286987139185,-53,51, + -7834633035949476.,5912396887007519.,-.482533779680787188302,-53,51, + -7834633035949474.,5912396887007518.,-.495969986684035163419,-53,51, + -7834633035949399.,5912396887007480.,-.499827749305253759552,-53,51, + -7834633035948878.,5912396887007216.,-.499959673616107605273,-53,51, + -7834633035903255.,5912396886984098.,-.499995513515328300304,-53,51, + -7740586541108747.,5865595869965877.,-.499998842346086928746,-53,51, + -7740586541070429.,5865595869947142.,.436341455218439904314,-53,51, + -7740586541070423.,5865595869947140.,-.497120154401808010518,-53,51, + -7740586541070333.,5865595869947096.,-.499044298704756032679,-53,51, + -7740586541070288.,5865595869947073.,.499993629144311854898,-53,51, + -7724029849706565.,5857525421962364.,-.499991197302807311760,-53,51, + -7724029849679342.,5857525421949134.,-.499891704533189604043,-53,51, + -7724029849673990.,5857525421946533.,-.497557909572267410634,-53,51, + -7724029849673955.,5857525421946515.,.492928204574191904103,-53,51, + -7724029849673951.,5857525421946514.,-.451016239523341964789,-53,51, + -7724029849673883.,5857525421946481.,-.498071789180989712677,-53,51, + -7724029849673455.,5857525421946272.,.499872692404139209571,-53,51, + -7724029849638454.,5857525421929263.,-.499999161894584145040,-53,51, + -7552125243371966.,5776400417968249.,-.499997855377174641323,-53,51, + -7552125243347948.,5776400417957230.,.499977557907868143043,-53,51, + -7552125243335939.,5776400417951721.,.499965295654111431041,-53,51, + -7552125243332449.,5776400417950120.,.499878465063222192529,-53,51, + -7552125243332037.,5776400417949931.,.499295148788124347641,-53,51, + -7552125243331952.,5776400417949893.,-.493543642187924317272,-53,51, + -7552125243331928.,5776400417949881.,.496713640360202951331,-53,51, + -7546489395523706.,5773817312067479.,-.466591709514848156204,-53,51, + -7546489395523695.,5773817312067473.,.496163081595778863148,-53,51, + -7546489395523481.,5773817312067375.,.498847199569599806291,-53,51, + -7546489395523374.,5773817312067327.,-.499810741441035321558,-53,51, + -7546489395522649.,5773817312066994.,.499936854558045654962,-53,51, + -7546489395518917.,5773817312065286.,-.499983105262208857507,-53,51, + -7546489395506996.,5773817312059827.,-.499995375158786074166,-53,51, + -7532060552282910.,5767224693073906.,-.499994835874804819361,-53,51, + -7532060552271848.,5767224693068862.,.499989008430027483452,-53,51, + -7532060552269071.,5767224693067597.,-.492692679732096699782,-53,51, + -7532060552268867.,5767224693067504.,-.493235374822566467169,-53,51, + -7532060552266691.,5767224693066512.,-.499024122089803981145,-53,51, + -7532060552266351.,5767224693066357.,-.499928613790112163336,-53,51, + -7165093878940586.,5608342105971359.,-.499754182149952117792,-53,51, + -7165093878940140.,5608342105971174.,.498645468269008446133,-53,51, + -7165093878940043.,5608342105971134.,.480360190447942614320,-53,51, + -7165093878940031.,5608342105971130.,-.470355514024701667384,-53,51, + -7165093878939997.,5608342105971116.,-.497383343363782871337,-53,51, + -7165093878939328.,5608342105970840.,-.499783867688841612529,-53,51, + -7165093878931780.,5608342105967726.,-.499961977624539442269,-53,51, + -7165093878930522.,5608342105967207.,-.499991662064215890780,-53,51, + -7165093878896779.,5608342105953286.,-.499992908754316978106,-53,51, + -7109328173647905.,5585487288913270.,.499787664832863358994,-53,51, + -7109328173647738.,5585487288913203.,-.495240821048888337652,-53,51, + -7109328173647711.,5585487288913192.,-.488449019364851841147,-53,51, + -7109328173644076.,5585487288911712.,-.499997199421189728797,-53,51, + -7017962821286607.,5548672552178282.,-.499988739581893161095,-53,51, + -7017962821148412.,5548672552123166.,-.499973051783138938561,-53,51, + -7017962821146366.,5548672552122349.,.498464184282152594085,-53,51, + -7017962821146361.,5548672552122348.,-.495674532149300199983,-53,51, + -7017962821146351.,5548672552122344.,-.483951965012199202921,-53,51, + -7017962821145852.,5548672552122145.,-.498995864859708908971,-53,51, + -7017962821144488.,5548672552121600.,.499962292782905777019,-53,51, + -7006352136013292.,5544047788697820.,.499998177108054558651,-53,51, + -7006352135984668.,5544047788686434.,-.499986010138974241462,-53,51, + -7006352135983205.,5544047788685851.,.499560635642857730962,-53,51, + -7006352135983024.,5544047788685779.,.495403385407346134797,-53,51, + -7006352135982931.,5544047788685742.,.498792201585788295303,-53,51, + -7006352135982016.,5544047788685378.,.499875715639609737064,-53,51, + -6910250106365564.,5506208872453591.,-.499986885051574466629,-53,51, + -6910250106361872.,5506208872452152.,-.499951823563327615416,-53,51, + -6910250106360661.,5506208872451679.,.498705397548998669781,-53,51, + -6910250106360620.,5506208872451664.,-.481521732039677288952,-53,51, + -6910250106360602.,5506208872451657.,-.497231203566370228162,-53,51, + -6910250106360153.,5506208872451481.,.499793645581804678040,-53,51, + -6910250106338001.,5506208872442848.,-.499995959318024707124,-53,51, + -6848882081658557.,5482439577831442.,-.466314261183146940344,-53,51, + -6848882081658544.,5482439577831437.,-.470317309184496123085,-53,51, + -6848882081658453.,5482439577831402.,-.498338645193575877109,-53,51, + -6848882081657949.,5482439577831208.,-.499687583078467105191,-53,51, + -6848882081648955.,5482439577827746.,-.499950173710196514924,-53,51, + -6848882081647456.,5482439577827169.,-.499993938209650138451,-53,51, + -6848882081601491.,5482439577809475.,.499998383836038943522,-53,51, + -6828286958458430.,5474528288941476.,.499997062341336972671,-53,51, + -6828286958440209.,5474528288934491.,.499990456006163486915,-53,51, + -6828286958433771.,5474528288932023.,.499878364361282034680,-53,51, + -6828286958433004.,5474528288931729.,.471284705935981319542,-53,51, + -6828286958432991.,5474528288931724.,.487749220200343903185,-53,51, + -6828286958432978.,5474528288931720.,-.495786265535280692183,-53,51, + -6828286958432798.,5474528288931651.,-.498585298796457334707,-53,51, + -6828286958432738.,5474528288931628.,-.499518309882969995910,-53,51, + -6751453641087072.,5445294094719003.,.499997697349534106455,-53,51, + -6751453641065260.,5445294094710766.,-.478655170447351224105,-53,51, + -6751453641065252.,5445294094710762.,.499896579836629378684,-53,51, + -6751453641062035.,5445294094709548.,-.499980836845566984146,-53,51, + -6734444337967962.,5438880338167354.,.499998878886143873566,-53,51, + -6734444337931611.,5438880338153670.,-.499972589753084960156,-53,51, + -6734444337906241.,5438880338144118.,.498699409846474039185,-53,51, + -6734444337906233.,5438880338144115.,.486952834213021044534,-53,51, + -6734444337906217.,5438880338144109.,.463459682946128661177,-53,51, + -6734444337906156.,5438880338144086.,.498892043741267874446,-53,51, + -6734444337905731.,5438880338143926.,.499855213222916969672,-53,51, + -6734444337905646.,5438880338143895.,-.499952152879217227498,-53,51, + -6680661016289231.,5418733822528261.,.449584333162106231774,-53,51, + -6680661016289215.,5418733822528255.,.485925262497389056100,-53,51, + -6680661016289207.,5418733822528253.,-.495904272834962982216,-53,51, + -6680661016287337.,5418733822527556.,-.498558156652455046102,-53,51, + -6680661016286347.,5418733822527187.,-.499963153871012925369,-53,51, + -6680661016279908.,5418733822524786.,.499989598174594557963,-53,51, + -6680661016260701.,5418733822517628.,-.499996018111369797450,-53,51, + -6638553928828764.,5403099197270603.,.499988374855774266306,-53,51, + -6638553928827588.,5403099197270169.,-.499599388958787813667,-53,51, + -6638553928827442.,5403099197270114.,.495349749213485975536,-53,51, + -6638553928827423.,5403099197270107.,.467295185003132319193,-53,51, + -6638553928827415.,5403099197270105.,-.491885684138062064123,-53,51, + -6638553928792335.,5403099197257129.,-.499996827495481473712,-53,51, + -6595469068473703.,5387223109946858.,-.499996393031397033767,-53,51, + -6595469068453427.,5387223109939414.,.495812337221585199918,-53,51, + -6595469068453397.,5387223109939403.,.483279010249053512186,-53,51, + -6595469068453269.,5387223109939356.,.496470148500235588462,-53,51, + -6595469068452479.,5387223109939066.,.499759204917580454932,-53,51, + -6595469068452400.,5387223109939038.,-.499911889438476540411,-53,51, + -6595469068449368.,5387223109937925.,-.499946801635849613042,-53,51, + -6595469068443304.,5387223109935698.,.499983375743854059494,-53,51, + -6471417749990023.,5342167420581382.,.499948207182747480270,-53,51, + -6471417749984670.,5342167420579459.,-.499885180379482979654,-53,51, + -6471417749984044.,5342167420579234.,-.499678884848061777201,-53,51, + -6471417749983852.,5342167420579164.,.490799723370701826493,-53,51, + -6471417749983827.,5342167420579156.,-.494815041183985919270,-53,51, + -6471417749983699.,5342167420579109.,.498837364296593098467,-53,51, + -6471417749970489.,5342167420574361.,.499995778880150921610,-53,51, + -6466907645408947.,5340546980208627.,-.499999821655159438131,-53,51, + -6466907645358323.,5340546980190445.,-.499985603121234641484,-53,51, + -6466907645358181.,5340546980190393.,.499619367442398188980,-53,51, + -6466907645357329.,5340546980190087.,.497249190849215250464,-53,51, + -6466907645357187.,5340546980190036.,.496854161421188107161,-53,51, + -6320301642433308.,5288507872970274.,.499991133227446590718,-53,51, + -6320301642428466.,5288507872968576.,-.499818310353874696041,-53,51, + -6320301642428352.,5288507872968535.,.498947018746783401485,-53,51, + -6320301642428238.,5288507872968495.,.497712347848141330671,-53,51, + -6320301642428218.,5288507872968488.,.479951879269504354137,-53,51, + -6320301642426833.,5288507872968003.,-.499960569748712460277,-53,51, + -6320301642391192.,5288507872955496.,.499996436570799962337,-53,51, + -6277581004370698.,5273566423406978.,.499965305591490091152,-53,51, + -6277581004369215.,5273566423406462.,-.499832848975732690546,-53,51, + -6277581004369106.,5273566423406424.,-.499143704566479788055,-53,51, + -6277581004369020.,5273566423406394.,-.480251352096354183140,-53,51, + -6277581004368997.,5273566423406386.,-.498454560156603676973,-53,51, + -6277581004360535.,5273566423403435.,.499999937125147412358,-53,51, + -6150458818244799.,5229662571467960.,.499994547399195544960,-53,51, + -6150458818227616.,5229662571462081.,-.499989103894324854644,-53,51, + -6150458818225360.,5229662571461308.,.499780255414005988160,-53,51, + -6150458818223104.,5229662571460536.,.499549614969714875466,-53,51, + -6150458818223066.,5229662571460523.,.495999630779952592801,-53,51, + -6150458818222993.,5229662571460499.,-.484504286215972762983,-53,51, + -6150458818222990.,5229662571460497.,.488899662400638585310,-53,51, + -6134432454517526.,5224184593320181.,.499996296977071883639,-53,51, + -6134432454508997.,5224184593317270.,-.499982014077682724951,-53,51, + -6134432454505948.,5224184593316229.,-.499857012689167590301,-53,51, + -6134432454505702.,5224184593316145.,-.490007635712757581298,-53,51, + -6134432454505661.,5224184593316131.,-.488366072883072623716,-53,51, + -6056160701828586.,5197606063268539.,-.498191249743116571420,-53,51, + -6056160701828453.,5197606063268494.,-.417498624435421031091,-53,51, + -6056160701828435.,5197606063268488.,-.496803381912512486230,-53,51, + -6056160701828056.,5197606063268360.,-.499942442121143152565,-53,51, + -6056160701825181.,5197606063267388.,.499992127751574207643,-53,51, + -6056160701794918.,5197606063257167.,.499999068409252068197,-53,51, + -6031878638313517.,5189418562120439.,-.499956823858651526990,-53,51, + -6031878638313315.,5189418562120371.,-.499134096318424203188,-53,51, + -6031878638313241.,5189418562120346.,-.409723790189362669673,-53,51, + -6031878638313217.,5189418562120338.,-.488833961174478536959,-53,51, + -6031878638313214.,5189418562120337.,-.498722732547616182541,-53,51, + -6031878638311090.,5189418562119622.,-.499972864626564996051,-53,51, + -6031878638306236.,5189418562117987.,.499995054639490519799,-53,51, + -5840746347509273.,5125877683237163.,.498397871022962171593,-53,51, + -5840746347509206.,5125877683237141.,.495246780272082915149,-53,51, + -5840746347509200.,5125877683237140.,-.475184660690673456633,-53,51, + -5840746347509002.,5125877683237075.,-.499422212460809768750,-53,51, + -5840746347507717.,5125877683236652.,.499844181393088140017,-53,51, + -5840746347506770.,5125877683236342.,-.499918250486252514281,-53,51, + -5840746347490266.,5125877683230921.,.499998148486423082500,-53,51, + -5587044502301327.,5043816069531578.,-.499998629526788168972,-53,51, + -5587044502247020.,5043816069514269.,-.497484416501129633262,-53,51, + -5587044502246998.,5043816069514261.,.490566024765086715638,-53,51, + -5587044502246979.,5043816069514255.,.434791405858651094411,-53,51, + -5587044502246929.,5043816069514239.,.498542408736513631537,-53,51, + -5587044502239901.,5043816069511999.,.499383374136197826534,-53,51, + -5587044502234881.,5043816069510399.,.499984064786247083675,-53,51, + -5587044502234630.,5043816069510320.,-.499985900657650691515,-53,51, + -5574097035235157.,5039692371993180.,.499997266185385863926,-53,51, + -5574097035229118.,5039692371991259.,-.499960302902435553716,-53,51, + -5574097035223632.,5039692371989513.,-.499590575671122976455,-53,51, + -5574097035223588.,5039692371989498.,.496766746243173525709,-53,51, + -5574097035223544.,5039692371989484.,.493124068157538637547,-53,51, + -5574097035223079.,5039692371989337.,-.499917870697817959314,-53,51, + -5301224375168081.,4954107259845971.,.499991269032017336398,-53,51, + -5301224375166781.,4954107259845570.,-.499960202120111590524,-53,51, + -5301224375155731.,4954107259842153.,-.499547704803783806532,-53,51, + -5301224375154030.,4954107259841626.,.498977332448678498749,-53,51, + -5301224375153933.,4954107259841597.,-.496403661896956723254,-53,51, + -5301224375153781.,4954107259841550.,-.499474910767882557440,-53,51, + -5301224375126730.,4954107259833184.,.499996461084214606786,-53,51, + -5292230209340524.,4951327235956748.,.499999596347024972730,-53,51, + -5292230209316611.,4951327235949360.,.499976750863135723336,-53,51, + -5292230209316514.,4951327235949331.,-.468492375350841982571,-53,51, + -5292230209316501.,4951327235949327.,-.484885144843414925703,-53,51, + -5292230209316488.,4951327235949322.,.498722085664017332854,-53,51, + -5292230209315818.,4951327235949116.,-.499982188176662286198,-53,51, + -5286632173731717.,4949598186279144.,.499941308096245151115,-53,51, + -5286632173731011.,4949598186278927.,-.499601256585518622188,-53,51, + -5286632173730739.,4949598186278843.,-.488093576118885964555,-53,51, + -5286632173730726.,4949598186278838.,.497750540962296724076,-53,51, + -5286632173730658.,4949598186278818.,-.499372538920663138940,-53,51, + -5286632173727196.,4949598186277749.,-.499962282186146318684,-53,51, + -5286632173718507.,4949598186275066.,-.499998178669085574268,-53,51, + -5268565944194560.,4944024668492807.,-.499964945512112798324,-53,51, + -5268565944193856.,4944024668492590.,-.493254827620167268280,-53,51, + -5268565944193843.,4944024668492585.,.499766808079683756447,-53,51, + -5268565944186965.,4944024668490465.,.499982989075765250481,-53,51, + -5268565944131078.,4944024668473239.,.499994921958692558174,-53,51, + -5158589873419854.,4910307622991196.,.499999878718382626275,-53,51, + -5158589873359012.,4910307622972642.,-.499938330007679233604,-53,51, + -5158589873357825.,4910307622972280.,-.499624839148134255410,-53,51, + -5158589873357802.,4910307622972272.,.486059415519301431680,-53,51, + -5158589873352795.,4910307622970746.,-.499981318036864001026,-53,51, + -5105083357385435.,4894030685741574.,.491838149447017885340,-53,51, + -5105083357385425.,4894030685741571.,.457380614759892103828,-53,51, + -5105083357385379.,4894030685741557.,.498875955199149741712,-53,51, + -5105083357384944.,4894030685741425.,.499973196312463886285,-53,51, + -5105083357374003.,4894030685738105.,.499984496961450971036,-53,51, + -5105083357363062.,4894030685734785.,.499995800977883036473,-53,51, + -4827510902901860.,4810840612432009.,-.499998109463495884701,-53,51, + -4827510902888575.,4810840612428075.,-.499990078040635003597,-53,51, + -4827510902875290.,4810840612424141.,-.499982042254573215061,-53,51, + -4827510902874645.,4810840612423950.,-.499605287677421553602,-53,51, + -4827510902874439.,4810840612423888.,.498964652546285306818,-53,51, + -4827510902874287.,4810840612423843.,.488200724945032905627,-53,51, + -4827510902874277.,4810840612423841.,-.473033743976082096017,-53,51, + -4827510902874233.,4810840612423827.,.497534592771041266385,-53,51, + -4706747747161125.,4775256814684825.,.499992914568702251087,-53,51, + -4706747747160344.,4775256814684596.,.496265155320286646160,-53,51, + -4706747747160211.,4775256814684557.,.498191157908086355439,-53,51, + -4706747747160078.,4775256814684519.,-.499882839503699993561,-53,51, + -4510984822793807.,4718291006942295.,.499924227143555434272,-53,51, + -4510984822793530.,4718291006942215.,.493131253743429877736,-53,51, + -4510984822793523.,4718291006942213.,.471298940336227796063,-53,51, + -4510984822793485.,4718291006942202.,.495637810411434823726,-53,51, + -4510984822793395.,4718291006942177.,-.499349076252425057794,-53,51, + -4510984822791013.,4718291006941488.,.499997990107195610808,-53,51, + -4508444030595347.,4717557210999357.,-.499962385901652095340,-53,51, + -4508444030594741.,4717557210999182.,-.499886563280047198864,-53,51, + -4508444030594644.,4717557210999153.,.488574418229421600949,-53,51, + -4508444030594630.,4717557210999149.,.445671879478227549601,-53,51, + -4508444030594599.,4717557210999140.,.493530543672027085250,-53,51, + -4508444030582434.,4717557210995628.,-.499996876753391193930,-53,51, + -4504722288289711.,4716482599111155.,.499957931931317140973,-53,51, + -4504722288288658.,4716482599110851.,.499776535789211217057,-53,51, + -4504722288288516.,4716482599110811.,-.495499587905251451619,-53,51, + -4504722288288485.,4716482599110802.,-.445172544486379641618,-53,51, + -4504722288288471.,4716482599110798.,-.486960331329463058214,-53,51, + -4504722288288419.,4716482599110783.,-.499314968175164779939,-53,51, + -4504722288278703.,4716482599107977.,.499960963746195335073,-53,51, + -4504722288152111.,4716482599071430.,.499996015800103736925,-53,51, + -8854767244013177.,4694218199423712.,.498609840905009935824,-54,51, + -8854767244013135.,4694218199423706.,.470058239568716792416,-54,51, + -8854767244013114.,4694218199423703.,.455782438900573636875,-54,51, + -8854767244012759.,4694218199423653.,-.499832286679596948397,-54,51, + -8854767244010237.,4694218199423290.,.499997747386489983606,-54,51, + -8820963185592475.,4689369011533926.,.499999516088402776611,-54,51, + -8820963185583156.,4689369011532591.,-.499979806560041568660,-54,51, + -8820963185582026.,4689369011532428.,.499808085455117267666,-54,51, + -8820963185578636.,4689369011531942.,.499171761539865142678,-54,51, + -8820963185578392.,4689369011531908.,-.481405012214594322983,-54,51, + -8820963185578385.,4689369011531907.,-.484946149166562017689,-54,51, + -8820963185578357.,4689369011531903.,-.499110696974430284834,-54,51, + -8764811318235302.,4681326958043612.,-.496523238230745453539,-54,51, + -8764811318235288.,4681326958043610.,-.499600772689797808516,-54,51, + -8764811318233988.,4681326958043424.,-.499657543883192333376,-54,51, + -8764811318226838.,4681326958042401.,-.499969785293920862078,-54,51, + -8764811318226188.,4681326958042308.,-.499998170863880124853,-54,51, + -8644717199272723.,4664180445757835.,-.499999740588022687793,-54,51, + -8644717199267838.,4664180445757139.,-.499723650214714076464,-54,51, + -8644717199267613.,4664180445757106.,.442970744943493019066,-54,51, + -8644717199267592.,4664180445757103.,.450955555158271751121,-54,51, + -8644717199267473.,4664180445757086.,.496202813042058973688,-54,51, + -8644717199267466.,4664180445757085.,.498864416446989808359,-54,51, + -8644717199267087.,4664180445757032.,-.499885913485680035150,-54,51, + -8644717199266336.,4664180445756924.,.499951823246135029317,-54,51, + -8607732457387334.,4658914337177544.,.499987171026651499473,-54,51, + -8607732457384537.,4658914337177147.,-.499923198313565941795,-54,51, + -8607732457383103.,4658914337176942.,.448639022068139058046,-54,51, + -8607732457383082.,4658914337176939.,.460438050400163435635,-54,51, + -8607732457383012.,4658914337176929.,.499768144840260272209,-54,51, + -8607732457364705.,4658914337174324.,.499997273018039927431,-54,51, + -8487409833045659.,4641828091064495.,-.499997413307564645413,-54,51, + -8487409832996151.,4641828091057478.,.499973278730091130198,-54,51, + -8487409832978023.,4641828091054910.,-.499956654819106087716,-54,51, + -8487409832977148.,4641828091054785.,.499881237329085979806,-54,51, + -8487409832976273.,4641828091054661.,.499719129480925371137,-54,51, + -8487409832976082.,4641828091054634.,.432255172225411858362,-54,51, + -8487409832976047.,4641828091054629.,.472248687911593144698,-54,51, + -8487409832976026.,4641828091054626.,.496244797323304717644,-54,51, + -8225219756258608.,4604832624367340.,-.488075645115360739246,-54,51, + -8225219756258587.,4604832624367337.,-.438586303528417336755,-54,51, + -8225219756258551.,4604832624367332.,-.496604575093652602164,-54,51, + -8225219756258430.,4604832624367315.,-.497165987854539509929,-54,51, + -8225219756257825.,4604832624367230.,-.499973051657985988038,-54,51, + -8225219756248914.,4604832624365978.,-.499995771388739210452,-54,51, + -8218671716959659.,4603912717929277.,-.499983400391791472218,-54,51, + -8218671716956007.,4603912717928763.,.499674387357809561297,-54,51, + -8218671716955893.,4603912717928747.,.485972576790168956786,-54,51, + -8218671716955886.,4603912717928747.,-.497324902806087774187,-54,51, + -8218671716954989.,4603912717928621.,-.499873359638878781619,-54,51, + -8218671716941997.,4603912717926796.,-.499995489859648644491,-54,51, + -8134634281296066.,4592123657508588.,-.494744555991912141286,-54,51, + -8134634281296059.,4592123657508587.,-.475423190587422554831,-54,51, + -8134634281296016.,4592123657508581.,-.499591945959838924480,-54,51, + -8134634281294981.,4592123657508436.,-.499932918293446458736,-54,51, + -8134634281294774.,4592123657508406.,.499998887240399091055,-54,51, + -7942311233352175.,4565260243372314.,-.499997533598506720345,-54,51, + -7942311233346725.,4565260243371555.,-.499900923282429696288,-54,51, + -7942311233346222.,4565260243371484.,.449282305162250769475,-54,51, + -7942311233346208.,4565260243371482.,.499557782693529552966,-54,51, + -7942311233344736.,4565260243371277.,.499950848844040288711,-54,51, + -7868743567975533.,4555026154435041.,-.499984048158306738117,-54,51, + -7868743567944250.,4555026154430694.,-.499897742076330435473,-54,51, + -7868743567941796.,4555026154430352.,.498990209862970732243,-54,51, + -7868743567941760.,4555026154430347.,.496528908424614094470,-54,51, + -7868743567941724.,4555026154430342.,.494067606986262852978,-54,51, + -7868743567941717.,4555026154430342.,-.478633201626749261772,-54,51, + -7868743567941393.,4555026154430296.,.499215085428341840932,-54,51, + -7868743567940184.,4555026154430128.,.499889712128512595616,-54,51, + -7868743567899963.,4555026154424540.,-.499999316240543235755,-54,51, + -7820027936265329.,4548261687238753.,-.499999106572617222550,-54,51, + -7820027936217021.,4548261687232050.,-.499949481245792582534,-54,51, + -7820027936216985.,4548261687232045.,-.495146927079092245200,-54,51, + -7820027936216949.,4548261687232040.,-.490344372912386568321,-54,51, + -7820027936207443.,4548261687230721.,-.499981041928192925593,-54,51, + -7730960159919539.,4535919282211233.,-.499987482890771422183,-54,51, + -7730960159918195.,4535919282211047.,-.498897815453563908919,-54,51, + -7730960159917328.,4535919282210927.,-.484802025518099119557,-54,51, + -7730960159917299.,4535919282210923.,-.498171370491370170417,-54,51, + -7730960159881018.,4535919282205901.,.499993977851612954513,-54,51, + -7684108841897187.,4529439852723492.,-.499675252133275787102,-54,51, + -7684108841896174.,4529439852723352.,-.499994168243968133681,-54,51, + -7684108841893012.,4529439852722914.,.499997527002565675766,-54,51, + -7532297225444027.,4508504524942408.,.499998337833604717017,-54,51, + -7532297225436709.,4508504524941401.,.497285892038083500197,-54,51, + -7532297225436687.,4508504524941398.,.469947866101322844348,-54,51, + -7532297225436680.,4508504524941398.,-.493296051242191516916,-54,51, + -7532297225436600.,4508504524941386.,.498202036260514967033,-54,51, + -7532297225436382.,4508504524941357.,-.499965675294484138131,-54,51, + -7501948289005709.,4504330099513677.,.499972226655482943029,-54,51, + -7501948289004538.,4504330099513517.,-.499869735932559741150,-54,51, + -7501948289004458.,4504330099513506.,-.499004968218484674987,-54,51, + -7501948289004414.,4504330099513499.,.451470654024267101139,-54,51, + -7501948289004407.,4504330099513498.,.489046321199251024620,-54,51, + -7501948289004378.,4504330099513495.,-.498140200504384999473,-54,51, + -7501948288992988.,4504330099511928.,.499981103041731826865,-54,51, + -7501948288967546.,4504330099508430.,.499998857680970019672,-54,51, + -7496634952020852.,4503599627370547.,-.499665465559138236469,-54,51, + -7496634952020485.,4503599627370496.,.049295472175072190480,-54,51, + -7496634952020484.,4503599627370496.,-.088173299111754867322,-54,51, + -7496634952020481.,9007199254740991.,-.001159225944472035363,-54,52, + -7496634952019659.,9007199254740765.,.000180778514462189597,-54,52, + -7496634952015258.,9007199254739555.,.000055911964997916422,-54,52, + -7496634951933203.,9007199254716995.,.000000059930887869320,-54,52, + -7492339963683480.,9006018472030709.,-.499978193261410747816,-54,52, + -7492339963682938.,9006018472030560.,-.498252848133234532726,-54,52, + -7492339963682927.,9006018472030556.,.477796928243928916613,-54,52, + -7492339963682436.,9006018472030421.,.499655128352806863712,-54,52, + -7492339963664357.,9006018472025452.,-.499989677347936358529,-54,52, + -7492339963645234.,9006018472020194.,.499998841371978504440,-54,52, + -7489630554912554.,9005273671351925.,-.498429012509494220491,-54,52, + -7489630554911921.,9005273671351751.,-.499861021874697935879,-54,52, + -7489630554909771.,9005273671351160.,-.499985540232775462351,-54,52, + -7489630554901382.,9005273671348853.,.499993723126783565044,-54,52, + -7485075199921506.,9004021557711522.,-.499979409936598979734,-54,52, + -7485075199920349.,9004021557711203.,.499892888522926623742,-54,52, + -7485075199918257.,9004021557710629.,-.483916231263196313098,-54,52, + -7485075199918206.,9004021557710614.,.498792055013946940513,-54,52, + -7485075199918035.,9004021557710567.,.499637485472749169905,-54,52, + -7485075199897853.,9004021557705021.,-.499997147342170433813,-54,52, + -7298995560612630.,8953008666909240.,-.499997077310184909958,-54,52, + -7298995560588655.,8953008666902683.,.499975436824895958779,-54,52, + -7298995560586556.,8953008666902110.,-.474750639838413455103,-54,52, + -7298995560586545.,8953008666902107.,-.482717284356334922747,-54,52, + -7298995560586523.,8953008666902101.,-.498650573392175186929,-54,52, + -7298995560586395.,8953008666902065.,.499555744944824825932,-54,52, + -7298995560569701.,8953008666897500.,.499995420336467857275,-54,52, + -7250793807593924.,8939836343086824.,.499636765923912914533,-54,52, + -7250793807593675.,8939836343086756.,.498065533661338146874,-54,52, + -7250793807592701.,8939836343086490.,.499951556863474959855,-54,52, + -7250793807576791.,8939836343082145.,.499958363946197692014,-54,52, + -7250793807484513.,8939836343056944.,.499997881373282998360,-54,52, + -6744234268183196.,8802396306041544.,-.499899846066135240816,-54,52, + -6744234268181564.,8802396306041104.,-.498684804561080434937,-54,52, + -6744234268180544.,8802396306040829.,-.497925403611607633495,-54,52, + -6744234268180518.,8802396306040821.,.492290032098957734060,-54,52, + -6744234268176757.,8802396306039807.,.499992097815992647377,-54,52, + -6744234268130664.,8802396306027380.,.499995113836777295293,-54,52, + -6126472062964494.,8637031680288797.,.499999683137136528564,-54,52, + -6126472062948733.,8637031680284607.,.499979406823444712159,-54,52, + -6126472062941665.,8637031680282728.,.499906866643963567397,-54,52, + -6126472062941112.,8637031680282581.,.487026261856933566442,-54,52, + -6126472062941097.,8637031680282577.,.499335106211739930861,-54,52, + -6126472062940040.,8637031680282297.,-.499968328249689623405,-54,52, + -5733088875706290.,8532878547599357.,.499998150439049900413,-54,52, + -5733088875684793.,8532878547593688.,.499988383122881899025,-54,52, + -5733088875677937.,8532878547591880.,.495891674098899643794,-54,52, + -5733088875677755.,8532878547591833.,-.499549632934297914163,-54,52, + -5733088875676898.,8532878547591606.,.499938278455645683669,-54,52, + -5586017142901469.,8494149508191673.,.499686154314031842175,-54,52, + -5586017142901450.,8494149508191669.,-.496588035726392935846,-54,52, + -5586017142901431.,8494149508191664.,-.492862225766815905994,-54,52, + -5586017142901199.,8494149508191603.,-.499999704154992677143,-54,52, + -5441089836919922.,8456091159698942.,-.499964108138115040320,-54,52, + -5441089836918187.,8456091159698486.,.499167887081514998312,-54,52, + -5441089836917840.,8456091159698395.,.498994286127188778089,-54,52, + -5441089836917733.,8456091159698367.,.438422023008825302887,-54,52, + -5441089836917718.,8456091159698364.,-.495303060605894121612,-54,52, + -5441089836908349.,8456091159695907.,-.499990286146952375224,-54,52, + -5441089836868017.,8456091159685330.,-.499995103639510747011,-54,52, + -5339910389627918.,8429581584907542.,.496153203890038178757,-54,52, + -5339910389627727.,8429581584907492.,.499098926479263074619,-54,52, + -5339910389626027.,8429581584907047.,.499139389322886463134,-54,52, + -5339910389595427.,8429581584899037.,.499867722841788634613,-54,52, + -5339910389589987.,8429581584897613.,.499997204819175135069,-54,52, + -5137347928742254.,8376653199539784.,.479734788181218446710,-54,52, + -5137347928742250.,8376653199539783.,.436409614294532731282,-54,52, + -5137347928742185.,8376653199539766.,.482375538635899934889,-54,52, + -5137347928741748.,8376653199539652.,.499100291516046296037,-54,52, + -5137347928741725.,8376653199539646.,.499980541667656723467,-54,52, + -5137347928731500.,8376653199536980.,-.499995205913522774062,-54,52, + -5130840493893787.,8374955952007628.,-.456906949345786818150,-54,52, + -5130840493893783.,8374955952007626.,.499884778296937730373,-54,52, + -5130840493889918.,8374955952006618.,.499891613113084885350,-54,52, + -5130840493843538.,8374955951994522.,.499973636135574004227,-54,52, + -5130840493828078.,8374955951990491.,-.499999020711812388300,-54,52, + -5046807760055800.,8353055776302721.,.499999092515143282918,-54,52, + -5046807760001144.,8353055776288488.,-.499986937089912764408,-54,52, + -5046807759998579.,8353055776287819.,.499977126355848464391,-54,52, + -5046807759991967.,8353055776286098.,-.455671065517291339570,-54,52, + -5046807759991963.,8353055776286097.,-.497386521168699088467,-54,52, + -5046807759991867.,8353055776286072.,-.498557456802463965710,-54,52, + -5046807759991771.,8353055776286047.,-.499728392436188338104,-54,52, + -5046807759990884.,8353055776285815.,.499869316866628584273,-54,52, + -5010504701027877.,8343604299325522.,.499994822958003999473,-54,52, + -5010504700961884.,8343604299308346.,.499960072293872916498,-54,52, + -5010504700961519.,8343604299308252.,-.498600573236888418540,-54,52, + -5010504700961469.,8343604299308238.,.487897968471271655008,-54,52, + -5010504700961465.,8343604299308237.,.446817851807924931282,-54,52, + -5010504700961446.,8343604299308233.,-.498312702342971054748,-54,52, + -5010504700958403.,8343604299307440.,.499988546036452666337,-54,52, + -4924871031067043.,8321332277598111.,-.496570599187818134250,-54,52, + -4924871031066993.,8321332277598098.,-.491622012035489631262,-54,52, + -4924871031066989.,8321332277598096.,.468773874936697109364,-54,52, + -4924871031066866.,8321332277598065.,-.499052600668527321451,-54,52, + -4924871031063634.,8321332277597225.,-.499175927117654254913,-54,52, + -4924871031043838.,8321332277592080.,-.499931300646922111882,-54,52, + -4924871031042222.,8321332277591660.,-.499992963718417469550,-54,52, + -4517699360177496.,8215849370685255.,-.499995162621814199218,-54,52, + -4517699360174437.,8215849370684465.,-.495560547909372617874,-54,52, + -4517699360174406.,8215849370684456.,.498600116705419070675,-54,52, + -4517699360174073.,8215849370684371.,-.499609518238682857782,-54,52, + -4517699360173043.,8215849370684104.,.499922241546517691071,-54,52, + -4514338150851567.,8214981350355862.,-.499986857738150160851,-54,52, + -4514338150842192.,8214981350353441.,-.499914908798711755954,-54,52, + -4514338150834304.,8214981350351404.,-.496974371659412889756,-54,52, + -4514338150834273.,8214981350351395.,.497585866253242975054,-54,52, + -4514338150833181.,8214981350351113.,.499514246920761126317,-54,52, + -4514338150832999.,8214981350351066.,.499835643699125199580,-54,52, + -4514338150811124.,8214981350345418.,-.499996473361243645389,-54,52, + -8612971451646305.,8161386824194765.,-.499999565825946700296,-55,52, + -8612971451611108.,8161386824190233.,.499989639736703268501,-55,52, + -8612971451606587.,8161386824189652.,-.499926512173642074571,-55,52, + -8612971451596038.,8161386824188294.,-.499730866559104468474,-55,52, + -8612971451595502.,8161386824188224.,.499615504289107034384,-55,52, + -8612971451595067.,8161386824188169.,-.499049288026052377489,-55,52, + -8341071156515280.,8126417475491150.,.497778409037040247880,-55,52, + -8341071156515241.,8126417475491145.,.486636873782260498583,-55,52, + -8341071156515210.,8126417475491142.,-.496578192702307073528,-55,52, + -8341071156514206.,8126417475491012.,.498649976636667415174,-55,52, + -8341071156512595.,8126417475490805.,.499957328037994976675,-55,52, + -8341071156498773.,8126417475489030.,-.499999089578981556764,-55,52, + -7983856183311630.,8080573370443200.,-.499999677659924574507,-55,52, + -7983856183304570.,8080573370442295.,-.499702518864082766433,-55,52, + -7983856183304453.,8080573370442280.,-.497572948385106677776,-55,52, + -7983856183303985.,8080573370442220.,-.489054666469088823086,-55,52, + -7983856183303977.,8080573370442218.,.485449919546571180450,-55,52, + -6979532375143298.,7952230365563042.,-.499947909198327783106,-55,52, + -6979532375142780.,7952230365562975.,.499787575711470185385,-55,52, + -6979532375142584.,7952230365562951.,-.473285484052340237080,-55,52, + -6979532375142576.,7952230365562950.,-.492594588532495183704,-55,52, + -6979532375142521.,7952230365562942.,.499655318166440791444,-55,52, + -6979532375128072.,7952230365561101.,.499998989021496552579,-55,52, + -6842835487551509.,7934819919696045.,.499899717634883193730,-55,52, + -6842835487550700.,7934819919695943.,-.499876854794478143829,-55,52, + -6842835487549891.,7934819919695840.,-.499653427223383783647,-55,52, + -6842835487542555.,7934819919694905.,.499900422811692676943,-55,52, + -6842835487063516.,7934819919633915.,.499938231154113706762,-55,52, + -6479813464907449.,7888645880231607.,.499998889409568068394,-55,52, + -6479813464892725.,7888645880229736.,.491089104897731632918,-55,52, + -6479813464892709.,7888645880229734.,.457936255362887078792,-55,52, + -6479813464892670.,7888645880229730.,-.497873815378295818835,-55,52, + -6479813464892308.,7888645880229684.,-.497957036104099751057,-55,52, + -6479813464884887.,7888645880228741.,-.499663060964149404919,-55,52, + -6479813464883439.,7888645880228557.,-.499995943859462023131,-55,52, + -6359406039506671.,7873350181061873.,-.499814570572683956141,-55,52, + -6359406039506419.,7873350181061840.,.497715630945456352618,-55,52, + -6359406039506167.,7873350181061808.,.495245832463637441353,-55,52, + -6359406039506143.,7873350181061805.,.447391565941561576650,-55,52, + -6359406039505041.,7873350181061666.,-.499916838530023462433,-55,52, + -6359406039503411.,7873350181061458.,.499980893514343196482,-55,52, + -6359406039454826.,7873350181055289.,-.499999896269459262872,-55,52, + -6298970528377460.,7865676406792062.,.499999332787380620666,-55,52, + -6298970528354318.,7865676406789124.,.499977135844559385571,-55,52, + -6298970528342747.,7865676406787655.,.499966037500773778284,-55,52, + -6298970528341597.,7865676406787510.,-.498652298255994716658,-55,52, + -6298970528341479.,7865676406787495.,-.479380092707511246690,-55,52, + -6298970528341471.,7865676406787494.,-.495022655043206962341,-55,52, + -6298970528341085.,7865676406787445.,-.499776287740476919274,-55,52, + -6070752678138768.,7836719267295439.,-.499998769020881573750,-55,52, + -6070752678071685.,7836719267286931.,.492887981009893463612,-55,52, + -6070752678071669.,7836719267286929.,.463877444629923467390,-55,52, + -6070752678071622.,7836719267286924.,-.496341005986237492815,-55,52, + -6070752678071551.,7836719267286914.,.499924738827649571084,-55,52, + -6070752678067001.,7836719267286338.,-.499946544219649737585,-55,52, + -6070752678053075.,7836719267284572.,-.499992145837098365990,-55,52, + -6002783559861948.,7828101292973269.,-.499986519761532641949,-55,52, + -6002783559861877.,7828101292973259.,.499206988723544576858,-55,52, + -6002783559861861.,7828101292973257.,.470856230072294792319,-55,52, + -6002783559797470.,7828101292965094.,.499999961783587178001,-55,52, + -5777052993623941.,7799500148759906.,-.499959055406885919070,-55,52, + -5777052993623483.,7799500148759847.,.499570655174770117993,-55,52, + -5777052993623049.,7799500148759793.,-.461573680212806294084,-55,52, + -5777052993623033.,7799500148759791.,-.487790982899903802801,-55,52, + -5777052993623025.,7799500148759789.,.499100365756547498374,-55,52, + -5777052993619669.,7799500148759365.,-.499978872858866285226,-55,52, + -5777052993615397.,7799500148758824.,-.499998690300289484144,-55,52, + -5379976732190050.,7749259455101327.,.499997798038431352639,-55,52, + -5379976732171706.,7749259455099008.,.499990343246120029096,-55,52, + -5379976732167561.,7749259455098485.,-.499956827472150068424,-55,52, + -5379976732167553.,7749259455098483.,.488704311884735514039,-55,52, + -5379976732167529.,7749259455098480.,.454687729955392467213,-55,52, + -5360050516034610.,7746740541758033.,.499999209542185322299,-55,52, + -5360050515996400.,7746740541753203.,.499980266205360175833,-55,52, + -5360050515984937.,7746740541751754.,.499974583356279287097,-55,52, + -5360050515984581.,7746740541751709.,.499189272086855888116,-55,52, + -5360050515984573.,7746740541751708.,.487935669586420184419,-55,52, + -5360050515984549.,7746740541751705.,.454174862085113278298,-55,52, + -5227607959191336.,7730003555536541.,-.499990958292731094952,-55,52, + -5227607959185352.,7730003555535784.,.499779457155579395807,-55,52, + -5227607959184323.,7730003555535654.,.499071528931570891147,-55,52, + -5227607959184181.,7730003555535637.,-.440773491289774827038,-55,52, + -5227607959184149.,7730003555535633.,-.483555467677682274359,-55,52, + -5227607959184133.,7730003555535630.,.495053544128364201555,-55,52, + -5227607959183856.,7730003555535595.,.499722061020564906560,-55,52, + -5003579018691284.,7701713269772164.,-.499995798825856514046,-55,52, + -5003579018626288.,7701713269763960.,-.499974734736453024811,-55,52, + -5003579018617193.,7701713269762812.,-.499540991294434165804,-55,52, + -5003579018617090.,7701713269762798.,.499474366108167848692,-55,52, + -5003579018617074.,7701713269762796.,.479903936190125915474,-55,52, + -5003579018617058.,7701713269762794.,.460333506272084109261,-55,52, + -5003579018615149.,7701713269762554.,-.499663413323367335291,-55,52, + -5003579018610039.,7701713269761909.,-.499969468386632121110,-55,52, + -4966294589292528.,7697007455499639.,.499965230337729982431,-55,52, + -4966294589203815.,7697007455488443.,.499962970411299882802,-55,52, + -4966294589199457.,7697007455487893.,.499759958001572151610,-55,52, + -4966294589199148.,7697007455487855.,-.497500879729740196815,-55,52, + -4966294589198942.,7697007455487829.,-.495674771550588987125,-55,52, + -4966294589198316.,7697007455487750.,-.499834268054593542621,-55,52, + -4966294589193958.,7697007455487199.,.499962719547474073835,-55,52, + -8111283783760883.,7582269766370018.,-.490645740192819197458,-56,52, + -8111283783760867.,7582269766370017.,-.497042221566011014858,-56,52, + -8111283783760708.,7582269766370007.,-.498107255212103315671,-56,52, + -8111283783760390.,7582269766369986.,.499762677495719630719,-56,52, + -8111283783750072.,7582269766369337.,.499831751964442005887,-56,52, + -8111283783725684.,7582269766367803.,.499995018932631117231,-56,52, + -8111283783724746.,7582269766367745.,-.499998701567410271257,-56,52, + -7922455086057861.,7570394242806793.,-.499991060814519297542,-56,52, + -7922455085967691.,7570394242801123.,-.499103799127592863615,-56,52, + -7922455085967198.,7570394242801092.,-.499542554587198449626,-56,52, + -7922455085966705.,7570394242801061.,-.499981310046780431026,-56,52, + -5181586503254411.,7398366658428853.,.499312921366641090042,-56,52, + -5181586503254028.,7398366658428829.,.499682677073286142205,-56,52, + -5181586503253645.,7398366658428806.,-.499947567220059585054,-56,52, + -5181586503237463.,7398366658427792.,-.499990943595239481709,-56,52, + -5181586503234766.,7398366658427623.,-.499998172989502538108,-56,52, + -6969797329336626.,7292128914321638.,.499820854621033661352,-57,52, + -6969797329336594.,7292128914321637.,.498649324496376906745,-57,52, + -6969797329336274.,7292128914321627.,.486934023249809953377,-57,52, + -6969797329336212.,7292128914321626.,-.452835816366712269214,-57,52, + -6969797329336211.,7292128914321626.,-.484122426683107788602,-57,52, + -6969797329334069.,7292128914321558.,.499958275597713836853,-57,52, + -6969797329325535.,7292128914321292.,-.499974164521072975259,-57,52, + -6969797329209447.,7292128914317660.,-.499992574160172034550,-57,52, + -5370993780293173.,7242120186637148.,-.486668007800024295067,-57,52, + -5370993780293141.,7242120186637147.,-.487363212179197525865,-57,52, + -5370993780292661.,7242120186637132.,-.497791277866794992732,-57,52, + -5370993780292565.,7242120186637129.,-.499876891004314262205,-57,52, + -5370993780286809.,7242120186636949.,-.499926778707937403365,-57,52, + -5370993780278175.,7242120186636678.,.499998389737130960738,-57,52, + -5040083604760126.,7231772488825768.,-.499999679413530099058,-57,52, + -5040083604740522.,7231772488825155.,-.499989347939252244177,-57,52, + -5040083604724180.,7231772488824643.,.499917244439670142400,-57,52, + -5040083604724084.,7231772488824640.,.498080935105957898602,-57,52, + -5040083604723700.,7231772488824628.,.490735697771109623587,-57,52, + -5040083604722549.,7231772488824592.,.499969113988797677420,-57,52, + -4672129283028498.,7220267379708398.,-.499995601655166622181,-57,52, + -4672129282990470.,7220267379707209.,-.499990126020410494985,-57,52, + -4672129282989160.,7220267379707168.,-.459020125676231743864,-57,52, + -4672129282989159.,7220267379707168.,-.490286560790472824172,-57,52, + -4672129282988743.,7220267379707155.,-.497123568314761621379,-57,52, + -4672129282988583.,7220267379707150.,-.499753186593333911243,-57,52, + -7518049176489196.,7191720594507315.,-.499997575707736526618,-58,52, + -7518049176486957.,7191720594507280.,-.496279418613531612651,-58,52, + -7518049176486952.,7191720594507279.,.425568991741747995365,-58,52, + -7518049176486765.,7191720594507277.,-.497300460970794639411,-58,52, + -7518049176486253.,7191720594507268.,.499976759409837544326,-58,52, + -5061503531599329.,7153327809968350.,-.499935588161160034808,-58,52, + -5061503531598881.,7153327809968342.,.498984848583539080812,-58,52, + -5061503531596641.,7153327809968307.,.493587032307037526178,-58,52, + -5061503531596515.,7153327809968306.,-.475466594858515544306,-58,52, + -5061503531596513.,7153327809968305.,.493278585662666153110,-58,52, + -5061503531592802.,7153327809968247.,.499961042715312269684,-58,52, + -5061503531586339.,7153327809968147.,-.499988103085989791249,-58,52, + -5061503531527980.,7153327809967235.,-.499993085262462671959,-58,52, + -5034345543234719.,7152903401307075.,-.499997116929450017331,-58,52, + -5034345543221601.,7152903401306869.,.499980312226894276116,-58,52, + -5034345543218282.,7152903401306818.,-.367306996252275896855,-58,52, + -5034345543218274.,7152903401306818.,-.492326067800282320339,-58,52, + -5034345543218146.,7152903401306816.,-.492631212568385087835,-58,52, + -5034345543215522.,7152903401306775.,-.498886680314488401192,-58,52, + -5034345543215074.,7152903401306768.,-.499954687002846851616,-58,52, + -5034345543188838.,7152903401306358.,-.499999828689507015029,-58,52, + -4503599627370496.,7074237752028440.,.275765943415024521374,-1074,52, + 0.,7074237752028440.,.275765943415024521374,0,52, + 4503599627370496.,7074237752028440.,.275765943415024521374,-1074,52, + 5835457316467537.,7028647463090451.,.499991584972394335368,-59,52, + 5835457316503887.,7028647463090168.,-.498934927445987626586,-59,52, + 5835457316503888.,7028647463090167.,.493252172237302099064,-59,52, + 5835457316503918.,7028647463090167.,.258865162735993868507,-59,52, + 5835457316504271.,7028647463090165.,-.499088649062732986998,-59,52, + 5835457316506447.,7028647463090148.,-.499959738224290411507,-59,52, + 5835457316506575.,7028647463090146.,.499989021236794425642,-59,52, + 7327657448551200.,6959730767351264.,.499998900586114250655,-58,52, + 7327657448579031.,6959730767350830.,-.499974456593656698835,-58,52, + 7327657448597585.,6959730767350540.,-.499956694714097623224,-58,52, + 7327657448597649.,6959730767350538.,.499719986150420892008,-58,52, + 7327657448598225.,6959730767350529.,.496810113931087274830,-58,52, + 7327657448598417.,6959730767350526.,.495840156524642634061,-58,52, + 7327657448598419.,6959730767350526.,.464580052801658835452,-58,52, + 7786031541647444.,6952566208553335.,.499971789298690893903,-58,52, + 7786031541652236.,6952566208553261.,-.402361847721667621593,-58,52, + 7786031541652242.,6952566208553261.,-.496146071808087123306,-58,52, + 7786031541652370.,6952566208553259.,-.496876185651703172435,-58,52, + 7786031541652882.,6952566208553251.,-.499796641026167609138,-58,52, + 7786031541652946.,6952566208553249.,.499838302052024309253,-58,52, + 7786031541661135.,6952566208553122.,-.499996871896249921624,-58,52, + 5746215254501605.,6894620911198843.,.483931788320158381000,-57,52, + 5746215254501606.,6894620911198843.,.452656917934910698632,-57,52, + 5746215254501668.,6894620911198842.,-.486385045950445625073,-57,52, + 5746215254502148.,6894620911198827.,-.498322830869334419822,-57,52, + 5746215254502212.,6894620911198825.,-.499914535525186409990,-57,52, + 5746215254505985.,6894620911198706.,.499999500935226498926,-57,52, + 6842111560903408.,6860341359353769.,.499991754044084785666,-57,52, + 6842111560928212.,6860341359352993.,.499932441056507696195,-57,52, + 6842111560930865.,6860341359352911.,-.499912638663109058199,-57,52, + 6842111560931376.,6860341359352895.,-.486690186999613511896,-57,52, + 6842111560931378.,6860341359352894.,.450739255081261220755,-57,52, + 6842111560931440.,6860341359352893.,-.488948040411622087554,-57,52, + 6842111560931728.,6860341359352884.,-.499108380765661201610,-57,52, + 6842111560931760.,6860341359352882.,.499762692528334399495,-57,52, + 6842111560968071.,6860341359351746.,.499998391842589546529,-57,52, + 6940259249792112.,6857270731534942.,-.499997600174797221929,-57,52, + 6940259249803905.,6857270731534573.,-.459334966375326632921,-57,52, + 6940259249803906.,6857270731534573.,-.490621266499654730789,-57,52, + 6940259249803938.,6857270731534572.,-.491782870478153868088,-57,52, + 6940259249804130.,6857270731534566.,-.498752494349148917221,-57,52, + 6940259249804162.,6857270731534565.,-.499914098327648129633,-57,52, + 6940259249805025.,6857270731534538.,-.499991105622802811276,-57,52, + 8328945592820442.,6813813090390545.,.499997592852832978632,-57,52, + 8328945592820920.,6813813090390531.,-.462511508076791597326,-57,52, + 8328945592820921.,6813813090390531.,-.493813828371623450920,-57,52, + 8328945592820953.,6813813090390530.,-.495488077806242772573,-57,52, + 8328945592821049.,6813813090390526.,.499489173889899185085,-57,52, + 5635416615603503.,6721664178001519.,-.499994890652690305858,-56,52, + 5635416615605130.,6721664178001417.,-.499907063183970719305,-56,52, + 5635416615605146.,6721664178001415.,.497020659765935887534,-56,52, + 5682480038756205.,6718713601027928.,-.495246604486262583472,-56,52, + 5682480038756221.,6718713601027927.,-.498370652950819399045,-56,52, + 5682480038756237.,6718713601027925.,.498505298584623767706,-56,52, + 5682480038756875.,6718713601027885.,.498933866060405637649,-56,52, + 5682480038758470.,6718713601027786.,-.499994715250262641239,-56,52, + 6158205153695415.,6688879859434160.,-.499995824121152115023,-56,52, + 6158205153697264.,6688879859434044.,-.486844376369699982130,-56,52, + 6158205153697312.,6688879859434041.,-.497860455606009666659,-56,52, + 6158205153697328.,6688879859434039.,.498467517981887066792,-56,52, + 6158205153698141.,6688879859433988.,.499382675916864579237,-56,52, + 6158205153698683.,6688879859433954.,.499992781206822066883,-56,52, + 6175493946646144.,6687795330856693.,-.499978227583528265672,-56,52, + 6175493946646303.,6687795330856683.,-.474175306851787545263,-56,52, + 6175493946646399.,6687795330856677.,-.496332033957152558576,-56,52, + 6175493946646415.,6687795330856675.,.499975178191953205194,-56,52, + 6175493946689201.,6687795330853991.,.499998866350581258608,-56,52, + 6823990675692130.,6647098241761690.,-.499996028163689641290,-56,52, + 6823990675706306.,6647098241760800.,-.499944060293116536974,-56,52, + 6823990675708743.,6647098241760646.,.499923789994460672219,-56,52, + 6823990675708966.,6647098241760632.,.499501356926783010904,-56,52, + 6823990675709412.,6647098241760604.,.498656490791415267212,-56,52, + 6823990675709444.,6647098241760602.,.489627262727890487407,-56,52, + 6823990675730007.,6647098241759312.,-.499998258235365728347,-56,52, + 6916394610506925.,6641296565730975.,.499990039039124095381,-56,52, + 6916394610524603.,6641296565729865.,.499955819010907347885,-56,52, + 6916394610526546.,6641296565729743.,.499160113074530409787,-56,52, + 6916394610526610.,6641296565729739.,.480605854103898058680,-56,52, + 6916394610526626.,6641296565729738.,.475967289361239916877,-56,52, + 6916394610526976.,6641296565729716.,.499498685615587658020,-56,52, + 6916394610527406.,6641296565729689.,.499837258156629297553,-56,52, + 6916394610557156.,6641296565727822.,-.499994060262689256322,-56,52, + 7664074856375451.,6594325318563436.,.499985550911500379527,-56,52, + 7664074856376326.,6594325318563382.,-.499491040471952470179,-56,52, + 7664074856376501.,6594325318563371.,-.499386358748651661744,-56,52, + 7664074856376549.,6594325318563367.,.483499496809738914905,-56,52, + 7664074856376565.,6594325318563366.,.477794781995869059075,-56,52, + 7664074856432772.,6594325318559833.,.499988185398658011116,-56,52, + 7740553500831507.,6589517859850384.,-.499996594496626691641,-56,52, + 7740553500861747.,6589517859848482.,.499945068824949616664,-56,52, + 7740553500862097.,6589517859848460.,.497629578816589949729,-56,52, + 7740553500862129.,6589517859848458.,.485989305444396486417,-56,52, + 7740553500862606.,6589517859848428.,.499976480490126164338,-56,52, + 7740553500863465.,6589517859848375.,-.499992107844767246382,-56,52, + 8359220028901627.,6550607511081372.,-.499983212578487185317,-56,52, + 8359220028906712.,6550607511081052.,-.472831211713795821199,-56,52, + 8359220028906728.,6550607511081051.,-.479628766873321140075,-56,52, + 8359220028906776.,6550607511081047.,.499978567648102745571,-56,52, + 8359220028980626.,6550607511076401.,-.499986965816388422518,-56,52, + 8513798801068735.,6540879430762290.,-.499999473895511465330,-56,52, + 8513798801092694.,6540879430760781.,.499619271384883318906,-56,52, + 8513798801093409.,6540879430760736.,.496894925746641414182,-56,52, + 8513798801093441.,6540879430760734.,.482786983004788777278,-56,52, + 8513798801093456.,6540879430760734.,-.461326115155454683165,-56,52, + 8513798801094394.,6540879430760675.,-.499865186776059190362,-56,52, + 8513798801099923.,6540879430760327.,-.499953168643945663108,-56,52, + 8513798801103609.,6540879430760094.,.499988176775685801074,-56,52, + 5173600871715709.,6425294283333187.,-.499981723684325694971,-55,52, + 5173600871715994.,6425294283333151.,-.498053027255150309345,-55,52, + 5173600871716089.,6425294283333139.,-.497410128445434458789,-55,52, + 5173600871716097.,6425294283333137.,.492117694612225611589,-55,52, + 5173600871716105.,6425294283333136.,.481645517669885649069,-55,52, + 5173600871726595.,6425294283331812.,-.499996498001692949086,-55,52, + 5689944463302888.,6360004473194412.,.499988702873396847922,-55,52, + 5689944463304934.,6360004473194153.,.499711509146421181297,-55,52, + 5689944463305171.,6360004473194123.,.498213124535664472153,-55,52, + 5689944463305321.,6360004473194105.,-.490076992306603127090,-55,52, + 5689944463305329.,6360004473194103.,.497214201461808907959,-55,52, + 5689944463306901.,6360004473193904.,.499933776954067067779,-55,52, + 5689944463356945.,6360004473187569.,.499996394498068649768,-55,52, + 5753769988789660.,6351923725432325.,-.499993396794289784731,-55,52, + 5753769988830118.,6351923725427202.,-.499990559277911119588,-55,52, + 5753769988831887.,6351923725426978.,-.499866850278550270284,-55,52, + 5753769988833340.,6351923725426794.,-.486198252667647867600,-55,52, + 5753769988833348.,6351923725426793.,-.499199389088238143891,-55,52, + 5753769988833656.,6351923725426754.,-.499743141280991809655,-55,52, + 5804122653802393.,6345547079631464.,-.499810470035318372583,-55,52, + 5804122653802480.,6345547079631452.,.481267156312142693993,-55,52, + 5804122653802496.,6345547079631450.,.454798673801330457047,-55,52, + 5804122653802543.,6345547079631445.,-.497952493574181349749,-55,52, + 5804122653802922.,6345547079631397.,-.499924673049100088339,-55,52, + 5804122653803451.,6345547079631329.,.499961123936955495741,-55,52, + 5804122653812065.,6345547079630238.,.499991852152024224916,-55,52, + 5804122653847050.,6345547079625808.,-.499999438446460856595,-55,52, + 5852820566536474.,6339378589072047.,.499999984343338685615,-55,52, + 5852820566561805.,6339378589068838.,.499979571683107751869,-55,52, + 5852820566564702.,6339378589068472.,-.499864853569915515209,-55,52, + 5852820566564899.,6339378589068447.,-.456361005373630928230,-55,52, + 5852820566564915.,6339378589068445.,-.483284550697791555378,-55,52, + 5852820566564923.,6339378589068444.,-.496746323359871925273,-55,52, + 5852820566568862.,6339378589067945.,-.499986637856254641196,-55,52, + 6216155809137142.,6293310697761413.,-.499996733061886629168,-55,52, + 6216155809168670.,6293310697757411.,.499970787604050533254,-55,52, + 6216155809168867.,6293310697757387.,-.499934261827899480090,-55,52, + 6216155809171231.,6293310697757087.,-.498794855013195672800,-55,52, + 6216155809171822.,6293310697757012.,-.498510003310066653454,-55,52, + 6216155809171830.,6293310697757010.,.486265426154610411212,-55,52, + 6216155809171838.,6293310697757009.,.471040855619287435791,-55,52, + 6216155809179245.,6293310697756069.,.499991611209927021181,-55,52, + 6575998564310790.,6247604136895028.,-.499747404486507352163,-55,52, + 6575998564310908.,6247604136895012.,.498249314408464244505,-55,52, + 6575998564310963.,6247604136895006.,-.494209842038797926780,-55,52, + 6575998564311317.,6247604136894960.,.499780314646048229093,-55,52, + 6575998564315297.,6247604136894455.,-.499991370089393800739,-55,52, + 6575998564323784.,6247604136893375.,.499992979536238831493,-55,52, + 6847582036539492.,6213051258239431.,.499996908826142831235,-55,52, + 6847582036550103.,6213051258238080.,.499984089661585431921,-55,52, + 6847582036560714.,6213051258236729.,.499971270418571801822,-55,52, + 6847582036561311.,6213051258236653.,.489509706653345532773,-55,52, + 6847582036561319.,6213051258236652.,.470944057557662422450,-55,52, + 6847582036561358.,6213051258236648.,-.494563481783793379001,-55,52, + 6847582036561468.,6213051258236634.,-.499841156849443657558,-55,52, + 7082784227658562.,6183085629203925.,.499995083287055137399,-55,52, + 7082784227659919.,6183085629203752.,.499131418705764606185,-55,52, + 7082784227659966.,6183085629203747.,-.492792378077841180070,-55,52, + 7082784227660170.,6183085629203720.,.499708589074149222441,-55,52, + 7082784227662029.,6183085629203483.,.499999265227419343874,-55,52, + 7706116167858761.,6103473219827303.,.499979189164636208971,-55,52, + 7706116167864544.,6103473219826564.,-.499907323743528392189,-55,52, + 7706116167864755.,6103473219826537.,-.499730262395877336070,-55,52, + 7706116167865091.,6103473219826494.,-.494708970392108051664,-55,52, + 7706116167865177.,6103473219826483.,-.499376139700681549360,-55,52, + 7706116167870116.,6103473219825851.,-.499970898025031163725,-55,52, + 7706116167903970.,6103473219821519.,-.499998221550914709383,-55,52, + 8687303334595544.,5977517234799673.,.499999336904888931753,-55,52, + 8687303334618207.,5977517234796755.,-.499993346860064843125,-55,52, + 8687303334621266.,5977517234796361.,-.499948234582475288278,-55,52, + 8687303334621778.,5977517234796295.,-.445674583885003391986,-55,52, + 8687303334621794.,5977517234796292.,.493521467699288738973,-55,52, + 8687303334621825.,5977517234796289.,-.499286182356145924017,-55,52, + 4631941527006437.,5903097474650594.,.498164639084329512305,-54,52, + 4631941527006487.,5903097474650582.,-.436728311911124975371,-54,52, + 4631941527006495.,5903097474650579.,.493688815929601389304,-54,52, + 4631941527006638.,5903097474650542.,.499894976082542469944,-54,52, + 4631941527009541.,5903097474649792.,-.499989758732225651595,-54,52, + 4631941527052885.,5903097474638579.,-.499991121913549153967,-54,52, + 4873844360935589.,5840399584638236.,-.499998410457334858753,-54,52, + 4873844360980401.,5840399584626598.,.499979501863806551938,-54,52, + 4873844360980474.,5840399584626580.,-.457018659626631306404,-54,52, + 4873844360980478.,5840399584626579.,-.495758284913779234370,-54,52, + 4873844360993540.,5840399584623186.,.499995339545562684954,-54,52, + 4994576600383679.,5809016260182765.,.483893475274932194133,-54,52, + 4994576600383702.,5809016260182759.,.499275240739976947976,-54,52, + 4994576600383898.,5809016260182708.,.499919850789830440484,-54,52, + 4994576600388579.,5809016260181491.,-.499991273528237941636,-54,52, + 4994576600399436.,5809016260178666.,-.499998767318905628627,-54,52, + 5227720812178173.,5748231737194396.,-.499989713245479653767,-54,52, + 5227720812178640.,5748231737194273.,.499981641033943369323,-54,52, + 5227720812183310.,5748231737193053.,.499695183773052428142,-54,52, + 5227720812185067.,5748231737192594.,.497446081946809673830,-54,52, + 5227720812185086.,5748231737192590.,-.466152513918207308772,-54,52, + 5227720812185178.,5748231737192565.,.499580600840634364063,-54,52, + 5227720812213309.,5748231737185216.,.499996373809608804760,-54,52, + 5299073463162636.,5729579659613451.,.499996513389316307224,-54,52, + 5299073463173394.,5729579659610637.,.499931161903977020470,-54,52, + 5299073463176980.,5729579659609699.,.499909377955274067367,-54,52, + 5299073463177412.,5729579659609587.,-.499535521844054429425,-54,52, + 5299073463177649.,5729579659609525.,-.492286543262112273758,-54,52, + 5299073463177653.,5729579659609523.,.461422300258255804237,-54,52, + 5299073463177844.,5729579659609474.,-.498980421644255547046,-54,52, + 5354986034456702.,5714947110499163.,.497364186921519284825,-54,52, + 5354986034456706.,5714947110499162.,.450020177143904976524,-54,52, + 5354986034456744.,5714947110499153.,-.499747915743434734412,-54,52, + 5354986034457779.,5714947110498881.,.499989554296128277404,-54,52, + 6229784789668705.,5483948015368848.,-.499997547666195632019,-54,52, + 6229784789695683.,5483948015361659.,.499982933103660062458,-54,52, + 6229784789711225.,5483948015357519.,-.499954179345847344201,-54,52, + 6229784789713278.,5483948015356972.,-.499881530619148690157,-54,52, + 6229784789713871.,5483948015356814.,-.498399270178050311210,-54,52, + 6229784789713931.,5483948015356798.,-.484758569290363274070,-54,52, + 6229784789714449.,5483948015356659.,.499672815039131766713,-54,52, + 6318840445903256.,5460196893803876.,.499996458487008972373,-54,52, + 6318840445924480.,5460196893798210.,.499916259408170532208,-54,52, + 6318840445925836.,5460196893797848.,.499534203628069582973,-54,52, + 6318840445926057.,5460196893797790.,-.499053137322375053595,-54,52, + 6318840445926233.,5460196893797743.,-.484353463147370622866,-54,52, + 6318840445926248.,5460196893797739.,-.488782468189282145371,-54,52, + 6318840445926278.,5460196893797731.,-.497640478273109191389,-54,52, + 6318840445929447.,5460196893796884.,.499991723175248838298,-54,52, + 6500262080607848.,5411665339304115.,.499993820383272463549,-54,52, + 6500262080617469.,5411665339301536.,.499880066000341889251,-54,52, + 6500262080617995.,5411665339301396.,-.499398578107746408173,-54,52, + 6500262080618051.,5411665339301380.,.489271376131596065651,-54,52, + 6500262080618066.,5411665339301376.,.468379399588559512524,-54,52, + 6500262080618092.,5411665339301369.,.498833306913959530165,-54,52, + 6500262080620293.,5411665339300779.,.499950615483654933252,-54,52, + 6611506190366933.,5381806788451462.,-.499979723604754371426,-54,52, + 6611506190369519.,5381806788450767.,-.499790356823999436520,-54,52, + 6611506190370892.,5381806788450397.,.499923487161113772364,-54,52, + 6611506190377437.,5381806788448639.,-.499983935521008987278,-54,52, + 6611506190419453.,5381806788437346.,.499999209832311136619,-54,52, + 6779876501427598.,5336465648937261.,.495465071136924188242,-54,52, + 6779876501427624.,5336465648937254.,.479617968121021228815,-54,52, + 6779876501427635.,5336465648937252.,-.488625037001092898267,-54,52, + 6779876501427661.,5336465648937244.,.495527859982997824044,-54,52, + 6779876501429866.,5336465648936649.,.497725469579152391226,-54,52, + 6779876501432134.,5336465648936037.,.499985867987596783268,-54,52, + 6779876501464001.,5336465648927439.,-.499999975054648499045,-54,52, + 6995579078917275.,5278105166254128.,-.446632128263480956459,-54,52, + 6995579078917290.,5278105166254123.,.484000962576448762730,-54,52, + 6995579078917301.,5278105166254120.,.499798562525729572004,-54,52, + 6995579078918757.,5278105166253725.,.499917246714089137511,-54,52, + 6995579078920213.,5278105166253331.,-.499964069112150651061,-54,52, + 6995579079080174.,5278105166209935.,-.499974570713946905173,-54,52, + 7423882302190606.,5161258461729605.,-.499972634287146128273,-54,52, + 7423882302191302.,5161258461729414.,-.470598304996554355504,-54,52, + 7423882302191313.,5161258461729411.,-.488812216458945093667,-54,52, + 7423882302191375.,5161258461729393.,.499436646207562725974,-54,52, + 7423882302192308.,5161258461729138.,-.499979662378982431944,-54,52, + 7423882302197414.,5161258461727736.,.499999253214090950164,-54,52, + 7482308321613725.,5145214390362189.,-.499245052148507688307,-54,52, + 7482308321613754.,5145214390362181.,-.469247275838227486382,-54,52, + 7482308321613765.,5145214390362178.,-.492351567582605646204,-54,52, + 7482308321614158.,5145214390362070.,-.499623081723269632674,-54,52, + 7482308321614591.,5145214390361950.,.499998888700532691627,-54,52, + 7789329938387600.,5060467286758039.,-.495732870943683539829,-54,52, + 7789329938387618.,5060467286758034.,-.486392297060147473175,-54,52, + 7789329938387629.,5060467286758030.,.463760275868678817552,-54,52, + 7789329938387701.,5060467286758011.,-.498877428597209919131,-54,52, + 7789329938388022.,5060467286757922.,-.498970527674813506241,-54,52, + 7789329938391232.,5060467286757032.,-.499901518497237798434,-54,52, + 7789329938391553.,5060467286756943.,-.499994617584119069762,-54,52, + 7852441927978840.,5042952552390257.,.499997909691934320576,-54,52, + 7852441928002204.,5042952552383767.,.471369266233743283258,-54,52, + 7852441928002211.,5042952552383766.,-.473083755531368270559,-54,52, + 7852441928002535.,5042952552383676.,-.473480762945548012820,-54,52, + 7852441928015387.,5042952552380106.,-.489228724410610461057,-54,52, + 7852441928024027.,5042952552377706.,-.499815590031521810006,-54,52, + 7852441928024171.,5042952552377666.,-.499992037797118506819,-54,52, + 7984456451833836.,5006208684366836.,.499991520069262748071,-54,52, + 7984456451884770.,5006208684352632.,-.499934720331532991892,-54,52, + 7984456451885315.,5006208684352480.,-.495163051252329484212,-54,52, + 7984456451885351.,5006208684352469.,.464785169090427681220,-54,52, + 7984456451885358.,5006208684352468.,-.487447121398481932900,-54,52, + 7984456451885419.,5006208684352451.,-.499757081373283423754,-54,52, + 7984456451890213.,5006208684351114.,-.499985739164436045828,-54,52, + 8003572463284301.,5000875851280161.,.499999120947605643562,-54,52, + 8003572463288698.,5000875851278934.,.499977762695529642389,-54,52, + 8003572463289601.,5000875851278683.,-.485698672735866294603,-54,52, + 8003572463289619.,5000875851278677.,.491331032870081313760,-54,52, + 8003572463290006.,5000875851278569.,.497469703397282900749,-54,52, + 8003572463290178.,5000875851278522.,-.499801998591039734380,-54,52, + 8012612783785153.,4998352763908573.,-.499998879366971536167,-54,52, + 8012612783799845.,4998352763904471.,.499986255854276281147,-54,52, + 8012612783814537.,4998352763900370.,.499971389220955083970,-54,52, + 8012612783816794.,4998352763899741.,-.499826702012763783820,-54,52, + 8012612783817446.,4998352763899559.,-.493565450574028460925,-54,52, + 8012612783817489.,4998352763899547.,-.496219999942461108525,-54,52, + 8012612783817532.,4998352763899535.,-.498874549310909642253,-54,52, + 8012612783818682.,4998352763899213.,.499899130364224224780,-54,52, + 8018408790412735.,4996734771503242.,-.499995524890724944673,-54,52, + 8018408790431497.,4996734771498003.,.499885680083357767096,-54,52, + 8018408790436920.,4996734771496489.,.499531547474368294616,-54,52, + 8018408790437074.,4996734771496447.,-.494393316335666366391,-54,52, + 8018408790437081.,4996734771496445.,-.448662628327036425798,-54,52, + 8018408790437117.,4996734771496435.,-.499190518568374818273,-54,52, + 8018408790437751.,4996734771496257.,.499846081068449727414,-54,52, + 8018408790463598.,4996734771489042.,-.499997784946552227653,-54,52, + 8125363452127639.,4966825439892625.,-.499994717545555146633,-54,52, + 8125363452127689.,4966825439892610.,.494396005402178533723,-54,52, + 8125363452127764.,4966825439892589.,.485982089823737781780,-54,52, + 8125363452127771.,4966825439892588.,-.474803208963585882045,-54,52, + 8125363452147606.,4966825439887031.,.499996582651655252045,-54,52, + 8633994769867367.,4823169443379798.,.498079843051959613678,-54,52, + 8633994769867402.,4823169443379789.,-.471607500959230939810,-54,52, + 8633994769867430.,4823169443379781.,-.447357376168192060233,-54,52, + 8633994769867862.,4823169443379657.,.498215977749715948404,-54,52, + 8633994769873472.,4823169443378059.,.499758837489139952028,-54,52, + 8633994769874297.,4823169443377824.,.499985728601174627412,-54,52, + 8633994769896400.,4823169443371529.,-.499996123286597895296,-54,52, + 8717776617240127.,4799269590950399.,-.499926639401001012449,-54,52, + 8717776617240211.,4799269590950375.,-.497057944406736607108,-54,52, + 8717776617241093.,4799269590950123.,-.466936646971229507064,-54,52, + 8717776617241205.,4799269590950091.,-.463111720313310243528,-54,52, + 8717776617273591.,4799269590940839.,-.499950343949686282401,-54,52, + 8717776617340519.,4799269590921719.,-.499997786713967805520,-54,52, + 8911976088158238.,4743598966691595.,.499989153298969661469,-54,52, + 8911976088173370.,4743598966687242.,.499936928205702557960,-54,52, + 8911976088173516.,4743598966687201.,-.499667064990183409026,-54,52, + 8911976088174319.,4743598966686970.,-.497489027571541731405,-54,52, + 8911976088174326.,4743598966686967.,.488831328919002078697,-54,52, + 8911976088174354.,4743598966686959.,.434112754881172193708,-54,52, + 8911976088213795.,4743598966675613.,.499995652952205352103,-54,52, + 4733303198943643.,4582372201314137.,-.499981903466499647038,-53,52, + 4733303198944179.,4582372201313821.,.499491791377489284630,-53,52, + 4733303198944390.,4582372201313697.,.497418936172416112488,-53,52, + 4733303198944407.,4582372201313688.,-.493269398133297695657,-53,52, + 4733303198944419.,4582372201313680.,.454480012945013727166,-53,52, + 4733303198944504.,4582372201313631.,-.498961658583808968726,-53,52, + 4733303198945576.,4582372201313000.,.499985731046840078654,-53,52, + 4733303198975968.,4582372201295139.,.499994165166395710116,-53,52, + 4747578892789992.,4573977716677297.,-.499981084962083326033,-53,52, + 4747578892790043.,4573977716677266.,.493355388800761476327,-53,52, + 4747578892790111.,4573977716677226.,.484470687151028317743,-53,52, + 4747578892790128.,4573977716677216.,.482249511738560582550,-53,52, + 4747578892806650.,4573977716667495.,.499998907295783747592,-53,52, + 4866610526728203.,4503599627383654.,.249999770541559304123,-53,52, + 4866610526749918.,4503599627370751.,.250138796928338690601,-53,52, + 4866610526750125.,4503599627370628.,.251245348896190486696,-53,52, + 4866610526750332.,4503599627370505.,.252351900861885331641,-53,52, + 4866610526750347.,4503599627370496.,.339388607525982304030,-53,52, + 4866610526750348.,9007199254740991.,.490382109273843398963,-53,53, + 4866610526751245.,9007199254739925.,.499972226258570936620,-53,53, + 4866610526767514.,9007199254720591.,.499996307211002067966,-53,53, + 5018163383774285.,8825910947949143.,.499994675546572721101,-53,53, + 5018163383776856.,8825910947946048.,-.499110021264287508055,-53,53, + 5018163383776900.,8825910947945995.,-.483925504218645142722,-53,53, + 5018163383776905.,8825910947945988.,.495072736354710076734,-53,53, + 5018163383777380.,8825910947945416.,.499905590811142854794,-53,53, + 5018163383807806.,8825910947908777.,.499999076228733841573,-53,53, + 5026588272953025.,8815761855201283.,-.499990382946813789793,-53,53, + 5026588272989683.,8815761855157106.,-.499988257565975410548,-53,53, + 5026588273002437.,8815761855141736.,-.499932993924723185925,-53,53, + 5026588273004041.,8815761855139803.,-.499769231422359242883,-53,53, + 5026588273004119.,8815761855139709.,-.498514385123247790399,-53,53, + 5026588273004143.,8815761855139680.,-.421205201646730839183,-53,53, + 5026588273004158.,8815761855139662.,-.497886961973939462397,-53,53, + 5184012179824569.,8624670876445308.,.499998753484014248468,-53,53, + 5184012179843951.,8624670876421608.,-.455205815829015503626,-53,53, + 5184012179843969.,8624670876421586.,-.466205386701114845939,-53,53, + 5184012179844023.,8624670876421520.,-.499204099317640008115,-53,53, + 5184012179844207.,8624670876421294.,.499466953986456685609,-53,53, + 5184012179845661.,8624670876419516.,.499834951152520504553,-53,53, + 5184012179846388.,8624670876418628.,-.499981050357076875781,-53,53, + 5359027492704697.,8408815419931484.,.496579647125319556409,-53,53, + 5359027492704713.,8408815419931465.,-.410188383213488736743,-53,53, + 5359027492704869.,8408815419931270.,.498823320981423647546,-53,53, + 5359027492704955.,8408815419931163.,.499945157908064335971,-53,53, + 5359027492729024.,8408815419901217.,.499962481244234144998,-53,53, + 5359027492777162.,8408815419841325.,.499996906817912752051,-53,53, + 5488415439771238.,8246746375746303.,.499999808828406781551,-53,53, + 5488415439823272.,8246746375680680.,-.450606963651747266205,-53,53, + 5488415439823276.,8246746375680675.,-.495304707969401584515,-53,53, + 5488415439823299.,8246746375680645.,.497683262204043949082,-53,53, + 5488415439823433.,8246746375680477.,-.499691172439048674249,-53,53, + 5488415439824574.,8246746375679038.,-.499722739162897554824,-53,53, + 5488415439833702.,8246746375667526.,-.499975279313829013576,-53,53, + 5488415439834843.,8246746375666086.,.499993152372287002309,-53,53, + 5599080628039531.,8106331516336010.,-.499987909554142989261,-53,53, + 5599080628046602.,8106331516326982.,.499920524225220703622,-53,53, + 5599080628055260.,8106331516315929.,.499384129164730752128,-53,53, + 5599080628055589.,8106331516315509.,.490470237294459680341,-53,53, + 5599080628056030.,8106331516314946.,.499798424763121110245,-53,53, + 5599080628073299.,8106331516292900.,.499999013681724613345,-53,53, + 5668948148616275.,8016782312584501.,.499912653472963805487,-53,53, + 5668948148616296.,8016782312584474.,.476292261822485413813,-53,53, + 5668948148616324.,8016782312584438.,.444798406288412079288,-53,53, + 5668948148617164.,8016782312583357.,.499982740211928939908,-53,53, + 5668948148702895.,8016782312473035.,.499991868128978702440,-53,53, + 5708579506443841.,7965665383676298.,.499998747459138462935,-53,53, + 5708579506480504.,7965665383628900.,.499993312841462453479,-53,53, + 5708579506481935.,7965665383627051.,-.499679597964151667353,-53,53, + 5708579506482338.,7965665383626530.,-.498888670734985322020,-53,53, + 5708579506482963.,7965665383625721.,.499856563752721625340,-53,53, + 5949535300083258.,7649547675118018.,.499996604379670336787,-53,53, + 5949535300083728.,7649547675117392.,.499960441499744941141,-53,53, + 5949535300098768.,7649547675097360.,.498803209132303006198,-53,53, + 5949535300107933.,7649547675085153.,.498098001438960265731,-53,53, + 5949535300107945.,7649547675085138.,-.484881645323697844955,-53,53, + 5949535300107960.,7649547675085118.,-.463606203777055571266,-53,53, + 5949535300138486.,7649547675044460.,-.499997707694716691163,-53,53, + 5971604121827191.,7620111511934076.,-.499674800518882788422,-53,53, + 5971604121827876.,7620111511933161.,-.497070165875014530577,-53,53, + 5971604121828013.,7620111511932978.,-.496549238956118712855,-53,53, + 5971604121828022.,7620111511932965.,.481587172301211741492,-53,53, + 5971604121828058.,7620111511932917.,.394132817330391462064,-53,53, + 5971604121828975.,7620111511931692.,.499809386469232585421,-53,53, + 5971604121832817.,7620111511926560.,.499819612380649651260,-53,53, + 5971604121892368.,7620111511847014.,.499977782876724885668,-53,53, + 5971604121900052.,7620111511836750.,.499998146656937427478,-53,53, + 6059040276381820.,7502635811256770.,.499998836626757158021,-53,53, + 6059040276405323.,7502635811225006.,.499996352472367722444,-53,53, + 6059040276407912.,7502635811221508.,-.499961379639520123673,-53,53, + 6059040276408114.,7502635811221234.,.499655668633501082389,-53,53, + 6059040276408518.,7502635811220688.,.498889765156975968431,-53,53, + 6059040276408555.,7502635811220638.,.493869125480641620376,-53,53, + 6059040276408592.,7502635811220588.,.488848485804054887398,-53,53, + 6179968525066876.,7337822844460542.,-.499994166825301068745,-53,53, + 6179968525076153.,7337822844447789.,.499975997538093556472,-53,53, + 6179968525077349.,7337822844446145.,.499540975988442696455,-53,53, + 6179968525077648.,7337822844445734.,.499432220556811751530,-53,53, + 6179968525077664.,7337822844445713.,-.493884635921633617273,-53,53, + 6179968525077672.,7337822844445702.,-.490543064160875294527,-53,53, + 6179968525103685.,7337822844409944.,.499995145456763570858,-53,53, + 6230674196520004.,7267866812754795.,.499993156042938647266,-53,53, + 6230674196595972.,7267866812649597.,.499987212516014964675,-53,53, + 6230674196596983.,7267866812648198.,-.499723278898221649298,-53,53, + 6230674196597035.,7267866812648125.,.492378654277605668180,-53,53, + 6230674196597139.,7267866812647981.,.476582520627606004869,-53,53, + 6230674196597144.,7267866812647975.,-.447253831951776473554,-53,53, + 6353877460228767.,7095671846143919.,.499974286721470681888,-53,53, + 6353877460235010.,7095671846135111.,.499813180095148857255,-53,53, + 6353877460235139.,7095671846134929.,.498848774629966333733,-53,53, + 6353877460235263.,7095671846134755.,-.447814684890403335813,-53,53, + 6353877460235268.,7095671846134747.,.497884369161123729587,-53,53, + 6353877460246391.,7095671846119054.,.499999998576285150839,-53,53, + 6402079148370033.,7027407899150613.,.499997183155995685171,-53,53, + 6402079148376304.,7027407899141698.,.495949376450948933791,-53,53, + 6402079148376316.,7027407899141681.,.436461483972228021728,-53,53, + 6402079148376387.,7027407899141581.,-.498841879860872080864,-53,53, + 6402079148376757.,7027407899141055.,-.499718564643412071400,-53,53, + 6402079148376942.,7027407899140791.,.499843092953678537277,-53,53, + 6673278757208579.,6633014613715635.,-.499989184321233306219,-53,53, + 6673278757209931.,6633014613713621.,.499969533642782148344,-53,53, + 6673278757212635.,6633014613709595.,.499886968082015523500,-53,53, + 6673278757212770.,6633014613709394.,.497663910947627597953,-53,53, + 6673278757213130.,6633014613708858.,.491735758565069638389,-53,53, + 6673278757213169.,6633014613708800.,.424426875388180163307,-53,53, + 6673278757213175.,6633014613708791.,.490994739514775900001,-53,53, + 6673278757257161.,6633014613643301.,-.499993611087146218142,-53,53, + 6710148704143017.,6577932622181763.,.499992758109262751251,-53,53, + 6710148704144065.,6577932622180193.,-.499853464428272928776,-53,53, + 6710148704144588.,6577932622179408.,.499269078980999167216,-53,53, + 6710148704144598.,6577932622179394.,-.491187468946908298745,-53,53, + 6710148704144606.,6577932622179382.,-.483552707289254331456,-53,53, + 6710148704188598.,6577932622113436.,-.499998621495833175995,-53,53, + 6728987427037667.,6549642856938152.,-.499997107878034257290,-53,53, + 6728987427108807.,6549642856831134.,-.499988016002028680433,-53,53, + 6728987427117815.,6549642856817582.,.499956806158738942987,-53,53, + 6728987427118277.,6549642856816887.,.499731950727371844093,-53,53, + 6728987427118368.,6549642856816751.,-.394251732925304997527,-53,53, + 6728987427118390.,6549642856816718.,-.489500535566962456886,-53,53, + 6728987427118392.,6549642856816715.,-.498159517625301729768,-53,53, + 7051650888471954.,6048316748012378.,-.454715519288834162117,-53,53, + 7051650888471959.,6048316748012370.,-.491239980778324510496,-53,53, + 7051650888471987.,6048316748012325.,-.495776965119637204587,-53,53, + 7051650888472015.,6048316748012279.,.499686050538767143227,-53,53, + 7051650888472234.,6048316748011927.,.499914637285811064951,-53,53, + 7051650888476642.,6048316748004842.,.499949384203258253356,-53,53, + 7051650888481050.,6048316747997757.,.499984124107941272589,-53,53, + 7051650888511687.,6048316747948514.,.499998523471980062742,-53,53, + 7198343454188631.,5808491340990335.,.496347550355958857505,-53,53, + 7198343454188851.,5808491340989969.,.498368195187128294646,-53,53, + 7198343454189071.,5808491340989604.,-.499611160001474987748,-53,53, + 7198343454190058.,5808491340987962.,-.499636721931868089132,-53,53, + 7198343454201902.,5808491340968258.,-.499943496138603745217,-53,53, + 7198343454203876.,5808491340964974.,-.499994630744704023213,-53,53, + 7267747051728322.,5692025297898111.,.499995387306552658266,-53,53, + 7267747051745953.,5692025297868265.,-.499867806471581150854,-53,53, + 7267747051745979.,5692025297868220.,.485499078855565293987,-53,53, + 7267747051745992.,5692025297868198.,.478182521519028344862,-53,53, + 7267747051746500.,5692025297867338.,.499966280926071897839,-53,53, + 7267747051752377.,5692025297857390.,-.499988148418627526323,-53,53, + 7302452754208753.,5633008518562957.,.499999644132991486079,-53,53, + 7302452754224750.,5633008518535632.,-.499987114668206955551,-53,53, + 7302452754244825.,5633008518501339.,.479650518543389222280,-53,53, + 7302452754244832.,5633008518501328.,-.477716482064359746479,-53,53, + 7302452754244921.,5633008518501175.,.492903081635201043971,-53,53, + 7302452754244969.,5633008518501093.,.499529363179556441479,-53,53, + 7302452754245274.,5633008518500572.,.499967193801829740113,-53,53, + 7319052364912478.,5604591012296136.,.499998653445654781280,-53,53, + 7319052364942675.,5604591012244327.,.499980538595762581027,-53,53, + 7319052364944089.,5604591012241901.,.499847216680318466736,-53,53, + 7319052364945503.,5604591012239475.,.499713893853916328172,-53,53, + 7319052364945605.,5604591012239300.,.498289849314946580185,-53,53, + 7319052364945774.,5604591012239011.,-.455049989196328845767,-53,53, + 7319052364945795.,5604591012238975.,-.484754939544792735486,-53,53, + 7319052364945809.,5604591012238950.,.495441760222786378632,-53,53, + 7319052364957420.,5604591012219030.,-.499995341857644853399,-53,53, + 7399032995891120.,5465873585387634.,-.499929172600720007038,-53,53, + 7399032995891473.,5465873585387014.,.494475077321754189568,-53,53, + 7399032995891501.,5465873585386965.,.394881080145842964952,-53,53, + 7399032995891542.,5465873585386893.,.499047012851848788595,-53,53, + 7399032995895056.,5465873585380732.,-.499999635856240000199,-53,53, + 7511273082096331.,5265838271409081.,-.499998566231170816121,-53,53, + 7511273082104505.,5265838271394269.,.499963133225790703922,-53,53, + 7511273082104739.,5265838271393846.,-.499793285511177360605,-53,53, + 7511273082104856.,5265838271393634.,-.499671494890970966771,-53,53, + 7511273082104872.,5265838271393605.,-.491107831216998864243,-53,53, + 7511273082104877.,5265838271393595.,.449068313681088501507,-53,53, + 7723582849394971.,4867718194177384.,.499933611615515355730,-53,53, + 7723582849395929.,4867718194175523.,-.499429946365802116778,-53,53, + 7723582849396408.,4867718194174592.,-.499111725597032040765,-53,53, + 7723582849396532.,4867718194174350.,.490532239669794163583,-53,53, + 7723582849396550.,4867718194174316.,-.494842023437527621162,-53,53, + 7723582849398253.,4867718194171006.,-.499973695115707330936,-53,53, + 7723582849407620.,4867718194152799.,.499986122660080832960,-53,53, + 7723582849429636.,4867718194110008.,.499998195489457836699,-53,53, + 7904560997374383.,4503599627492043.,-.250000550260516206868,-53,53, + 7904560997424290.,4503599627387945.,.250011038389410790714,-53,53, + 7904560997431968.,4503599627371930.,.250012625796690937059,-53,53, + 7904560997432655.,4503599627370497.,.285047930699331444191,-53,53, + 7904560997432656.,9007199254740990.,.398436575531686722113,-53,54, + 7904560997432661.,9007199254740970.,-.459859853803220634263,-53,54, + 7904560997432667.,9007199254740945.,-.489815569005167816992,-53,54, + 7904560997432702.,9007199254740799.,-.497890574351128497117,-53,54, + 7904560997432836.,9007199254740239.,.499765119447170605221,-53,54, + 7913137471577109.,8971355829733432.,.499999303495296888985,-53,54, + 7913137471604870.,8971355829617199.,.499981825216236042659,-53,54, + 7913137471604977.,8971355829616751.,.499873689909386231268,-53,54, + 7913137471605009.,8971355829616618.,-.481467060840567946554,-53,54, + 7913137471605025.,8971355829616551.,-.472137436216232299198,-53,54, + 7913137471614088.,8971355829578605.,-.499988261702059478686,-53,54, + 8070217332207364.,8289803550687840.,.499998161199304851377,-53,54, + 8070217332256350.,8289803550467236.,-.347702770342132616994,-53,54, + 8070217332256390.,8289803550467056.,-.484760463282080409103,-53,54, + 8070217332256394.,8289803550467038.,-.498466232576275062907,-53,54, + 8070217332256978.,8289803550464408.,-.499508549918668018695,-53,54, + 8070217332257270.,8289803550463092.,.499970291119645038769,-53,54, + 8070217332259167.,8289803550454550.,-.499990804521937475483,-53,54, + 8108726220156984.,8114661184969478.,.488856194457856062904,-53,54, + 8108726220157304.,8114661184968008.,.489897637361189077457,-53,54, + 8108726220160120.,8114661184955072.,.499062324215219857834,-53,54, + 8108726220160408.,8114661184953749.,.499999620651706229418,-53,54, + 8145371468019043.,7944661059288093.,.499988951404373662446,-53,54, + 8145371468081277.,7944661058996503.,.499988481422262338247,-53,54, + 8145371468084020.,7944661058983651.,.499956093862583257515,-53,54, + 8145371468091305.,7944661058949518.,.499505418674067723301,-53,54, + 8145371468091394.,7944661058949102.,-.499401941142458349449,-53,54, + 8145371468091483.,7944661058948685.,-.498309300979434082950,-53,54, + 8145371468091502.,7944661058948595.,.479452049165079574760,-53,54, + 8145371468092249.,7944661058945095.,.499858814634436411457,-53,54, + 8201755169892930.,7676235312989949.,-.499999900530697689439,-53,54, + 8201755169934475.,7676235312788927.,-.499631996024041849378,-53,54, + 8201755169934779.,7676235312787456.,-.451320259681997712472,-53,54, + 8201755169934785.,7676235312787427.,-.483261475414751661670,-53,54, + 8201755169934853.,7676235312787097.,.488071412940166601095,-53,54, + 8201755169935070.,7676235312786047.,.499530777160708722780,-53,54, + 8201755169935696.,7676235312783019.,-.499669398700472272852,-53,54, + 8201755169945464.,7676235312735755.,-.499968773777132924426,-53,54, + 8201755169946685.,7676235312729846.,.499993785130132336005,-53,54, + 8344755511724682.,6952047550633388.,.499995597811487387615,-53,54, + 8344755511729995.,6952047550605159.,-.499937934622660472006,-53,54, + 8344755511738716.,6952047550558820.,.493395099351587616364,-53,54, + 8344755511738850.,6952047550558109.,-.499827397312263594491,-53,54, + 8488875008846755.,6141092102774233.,-.499996230268166063700,-53,54, + 8488875008858665.,6141092102702987.,-.495372813275703874364,-53,54, + 8488875008858671.,6141092102702951.,-.387561920066814021024,-53,54, + 8488875008858776.,6141092102702322.,.499128711056126766469,-53,54, + 8488875008858943.,6141092102701323.,.499865238524483136481,-53,54, + 8488875008864397.,6141092102668697.,.499967073723688968443,-53,54, + 8538353789895130.,5837902179686142.,.499989284575224430837,-53,54, + 8538353789951632.,5837902179331259.,.499828038499683335970,-53,54, + 8538353789951810.,5837902179330142.,-.499075196075348691982,-53,54, + 8538353789951842.,5837902179329941.,-.487642069728719859666,-53,54, + 8538353789955306.,5837902179308183.,.499993817819222737254,-53,54, + 8575032706784722.,5602958303208622.,.499999392729047255757,-53,54, + 8575032706793919.,5602958303148518.,.499961478839923986876,-53,54, + 8575032706795838.,5602958303135978.,-.499937779635836602806,-53,54, + 8575032706797032.,5602958303128175.,-.498311797834122627976,-53,54, + 8575032706797174.,5602958303127247.,-.493093298185417425617,-53,54, + 8575032706797359.,5602958303126037.,.499620944091577962997,-53,54, + 8668443273559071.,4956258851197976.,-.499995804384171129954,-53,54, + 8668443273592994.,4956258850948238.,.478764844915114685767,-53,54, + 8668443273593005.,4956258850948157.,.498095868104829513339,-53,54, + 8668443273593110.,4956258850947385.,-.499198910603707685777,-53,54, + 8668443273593472.,4956258850944720.,-.499396148575917398473,-53,54, + 8668443273594558.,4956258850936725.,-.499987870872391739084,-53,54, + 8727187242741316.,4503599627371251.,.499586076608012890509,-53,54, + 8727187242741409.,4503599627370500.,-.307299150449164597420,-53,54, + 8727187242741410.,9007199254740983.,.217511694217385286176,-53,55, + 8727187242741411.,9007199254740967.,.049621689333071353033,-53,55, + 8727187242741423.,9007199254740773.,.034941630719087850909,-53,55, + 8727187242741447.,9007199254740385.,.005581513478845929913,-53,55, + 8727187242742269.,9007199254727095.,-.000002511879213482211,-53,55, + 8936922088767840.,4503599629164714.,.499647064200434316961,-53,55, + 8936922088817130.,4503599627583320.,-.499988503122046829134,-53,55, + 8936922088823155.,4503599627390016.,.499916715004799800471,-53,55, + 8936922088823706.,4503599627372338.,.499409709751568089637,-53,55, + 8936922088823718.,4503599627371953.,.497583785094149799224,-53,55, + 8936922088823763.,4503599627370510.,-.259263432662770758757,-53,55, + 8936922088823764.,9007199254740955.,.314502147208136328587,-53,56, + 8936922088823766.,9007199254740827.,-.019439827725872198950,-53,56, + 8936922088826988.,9007199254534081.,.000036191729128650816,-53,56, + 9007199254740991.,4503599627370496.,.041666666666666667708,-53,78 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/acosh.c b/src/regress/lib/libm/fpaccuracy/acosh.c new file mode 100644 index 000000000..342d3f158 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/acosh.c @@ -0,0 +1,1065 @@ +/* $OpenBSD: acosh.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:24:48. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1033 +#define F acosh +#define Fs "acosh" +#define Fn fpaccuracy_acosh + /* 8 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + 4503599627370497.,6369051672525772.,.446772684160763817756,-52,78, + 4503599627370498.,4503599627370496.,-.166666666666666650013,-52,77, + 4503599627370507.,5280938667038374.,-.273598422638878555452,-52,76, + 4503599627370886.,7861168282203689.,-.453958877332191899231,-52,74, + 4537596023237373.,8848272451552041.,.497704718081085686959,-52,56, + 4537596023277372.,8848272456750798.,.499898551361032829416,-52,56, + 4537596023286069.,8848272457881166.,.499894252423405232182,-52,56, + 4537596023286249.,8848272457904561.,.491268967173333633095,-52,56, + 4537596023286285.,8848272457909240.,.489543902663235214599,-52,56, + 4537596023286287.,8848272457909500.,.433892510117539624541,-52,56, + 4537596023290705.,8848272458483717.,.499947642463039830000,-52,56, + 4538829836245640.,9007199246344715.,-.003937236051013921118,-52,56, + 4538829836308555.,9007199254376902.,-.499960781456323413578,-52,56, + 4538829836311027.,9007199254692495.,-.000340961751077885359,-52,56, + 4538829836311302.,9007199254727603.,.499818323057337270293,-52,56, + 4538829836311305.,9007199254727987.,-.498361758230531770107,-52,56, + 4538829836311377.,9007199254737179.,-.454683714050580588438,-52,56, + 4538829836311406.,9007199254740881.,-.103757837808633755997,-52,56, + 4538829836311407.,4503599627370504.,.281757734120695178153,-52,55, + 4538829836311424.,4503599627371589.,.453580835406749697022,-52,55, + 4538829836311562.,4503599627380398.,.495438942001951020412,-52,55, + 4538829836311574.,4503599627381164.,.499078776539523508531,-52,55, + 4538829836311852.,4503599627398910.,.250068239998815146261,-52,55, + 4538829836312127.,4503599627416465.,-.499852323935245918842,-52,55, + 4538829836314874.,4503599627591816.,-.499971695754192903082,-52,55, + 4538829836317896.,4503599627784721.,-.250019937318492214422,-52,55, + 4538829836324215.,4503599628188085.,.499935074891656555718,-52,55, + 4645071652270580.,9007199254357355.,-.000017003205781065382,-52,55, + 4645071652282692.,9007199254740931.,-.087225353092083873264,-52,55, + 4645071652282693.,9007199254740963.,-.418144046675918583320,-52,55, + 4645071652282694.,4503599627370497.,.125468629870066524406,-52,54, + 4645071652282716.,4503599627370845.,.485363000432256764690,-52,54, + 4645071652282728.,4503599627371035.,.499850838909131071702,-52,54, + 4645071652285351.,4503599627412569.,.499984002923098669670,-52,54, + 4728254527300129.,5666615828271070.,.499986364789149031807,-52,54, + 4728254527302389.,5666615828299340.,.498774688239499385995,-52,54, + 4728254527303067.,5666615828307821.,.498411156871562414031,-52,54, + 4728254527366125.,5666615829096604.,.499941517922475218630,-52,54, + 4785050892120248.,6336073334947307.,.499917265465930527738,-52,54, + 4785050892178755.,6336073335599161.,-.480228106127191569017,-52,54, + 4785050892178762.,6336073335599239.,-.490053618663278653970,-52,54, + 4785050892178769.,6336073335599317.,-.499879131200364976288,-52,54, + 4785050892179278.,6336073335604987.,.499951454496361235099,-52,54, + 4867368130154436.,7192609895586038.,.499960774706349486359,-52,54, + 4867368130221790.,7192609896243209.,.499828613061869751667,-52,54, + 4867368130222041.,7192609896245658.,.499456829145515463739,-52,54, + 4867368130222757.,7192609896252644.,.490428149883921533631,-52,54, + 4867368130222794.,7192609896253005.,.498341472130240471537,-52,54, + 4867368130229752.,7192609896320894.,.499986976067296246387,-52,54, + 4978067397627770.,8198170742849479.,.499996658753014323606,-52,54, + 4978067397643827.,8198170742985856.,-.337744867513965427493,-52,54, + 4978067397643851.,8198170742986060.,-.499674606926752882658,-52,54, + 4978067397644518.,8198170742991725.,-.499971950272932333833,-52,54, + 5003811407059991.,8413787424899092.,.457234652384892955515,-52,54, + 5003811407059995.,8413787424899125.,.499640763619584317570,-52,54, + 5003811407061292.,8413787424909839.,.499822324135224473810,-52,54, + 5003811407062589.,8413787424920554.,-.499996129970111672949,-52,54, + 5048327701408832.,8773264916002178.,.499990131297012562219,-52,54, + 5048327701447206.,8773264916305233.,.499535544758744184304,-52,54, + 5048327701447479.,8773264916307389.,.490958757005331384951,-52,54, + 5048327701447489.,8773264916307468.,.465003563303887979070,-52,54, + 5048327701448824.,8773264916318011.,.499985197282044447594,-52,54, + 5048327701457801.,8773264916388907.,-.499992589415814091457,-52,54, + 5078375876659868.,9007199254304339.,.499993377564374079597,-52,54, + 5078375876711492.,9007199254700613.,-.499983608126043039860,-52,54, + 5078375876715750.,9007199254733297.,.499901223010371791803,-52,54, + 5078375876715926.,9007199254734649.,-.499633836050157497060,-52,54, + 5078375876716630.,9007199254740053.,-.497774074484772309953,-52,54, + 5078375876716735.,9007199254740858.,.496821486243533277885,-52,54, + 5078375876716744.,9007199254740928.,-.417927465697671569994,-52,54, + 5078375876716752.,9007199254740989.,-.008815422979223853483,-52,54, + 5078375876716753.,4503599627370498.,.333661791180275129922,-52,53, + 5088757830344157.,4543257237107282.,.499997177368455282950,-52,53, + 5088757830351559.,4543257237135423.,.499923325047342022153,-52,53, + 5088757830353436.,4543257237142559.,.497878088222415312553,-52,53, + 5088757830353451.,4543257237142617.,-.474967238705754905508,-52,53, + 5088757830353486.,4543257237142750.,-.411606334874501277455,-52,53, + 5088757830353547.,4543257237142981.,.498822668935591677416,-52,53, + 5088757830353658.,4543257237143403.,.499767249606301242588,-52,53, + 5088757830356862.,4543257237155585.,-.499994602310883064162,-52,53, + 5106532173885847.,4610295455200265.,-.499997759594665717564,-52,53, + 5106532173938359.,4610295455396759.,-.499988972013275359713,-52,53, + 5106532173942396.,4610295455411865.,-.499874413266485517245,-52,53, + 5106532173943074.,4610295455414401.,.499897112507838968625,-52,53, + 5241359265431037.,5087730131580932.,.499969264971833089149,-52,53, + 5241359265575346.,5087730132065703.,-.499941194922803715421,-52,53, + 5241359265597211.,5087730132139153.,-.499932077357967935606,-52,53, + 5241359265598330.,5087730132142912.,-.499245614336891974330,-52,53, + 5241359265598600.,5087730132143818.,.498239054565534801819,-52,53, + 5241359265598625.,5087730132143902.,.479487635010432466304,-52,53, + 5241359265598639.,5087730132143950.,-.491013159941093422525,-52,53, + 5241359265598703.,5087730132144165.,-.499016794011324511475,-52,53, + 5265125201200186.,5166884948113088.,.499990190639750782424,-52,53, + 5265125201278958.,5166884948373224.,.499979457021866023028,-52,53, + 5265125201284226.,5166884948390621.,.499521206622962389868,-52,53, + 5265125201284269.,5166884948390764.,-.497635153698434894168,-52,53, + 5265125201284312.,5166884948390906.,-.494791514024153850487,-52,53, + 5265125201284937.,5166884948392970.,-.499971170409143596483,-52,53, + 5358638315440300.,5466054987788084.,.499997341548197502239,-52,53, + 5358638315489314.,5466054987940115.,-.499986802782939617606,-52,53, + 5358638315492144.,5466054987948893.,-.499822813222855165044,-52,53, + 5358638315493785.,5466054987953982.,.499565556531551037701,-52,53, + 5358638315494001.,5466054987954652.,.481203513398246781333,-52,53, + 5358638315494011.,5466054987954683.,.498871937325033162509,-52,53, + 5361875182249858.,5476084687287170.,-.470595082245130066003,-52,53, + 5361875182249868.,5476084687287200.,.483449414446688376101,-52,53, + 5361875182249931.,5476084687287395.,.493929743600637195800,-52,53, + 5361875182249973.,5476084687287526.,-.499083370301052389084,-52,53, + 5361875182250256.,5476084687288402.,-.499624114062103193115,-52,53, + 5361875182250539.,5476084687289277.,.499835142019859527700,-52,53, + 5361875182255979.,5476084687306117.,-.499958693843194533649,-52,53, + 5361875182259700.,5476084687317634.,.499998467004096869326,-52,53, + 5432341888717928.,5689527433623894.,-.499997571457318559128,-52,53, + 5432341888720019.,5689527433630093.,.499948261320095984409,-52,53, + 5432341888726292.,5689527433648693.,.499785713861371121357,-52,53, + 5432341888726607.,5689527433649628.,-.497353009845124749728,-52,53, + 5432341888726608.,5689527433649630.,.467735438650769315231,-52,53, + 5432341888726693.,5689527433649883.,-.499746439204614975496,-52,53, + 5438257955007275.,5707038642201762.,.481383203615295088743,-52,53, + 5438257955007341.,5707038642201957.,.498843817239413053878,-52,53, + 5438257955007518.,5707038642202481.,-.499784537169459926896,-52,53, + 5438257955008204.,5707038642204507.,.499881840146411177849,-52,53, + 5438257955014046.,5707038642221769.,.499956116616797966876,-52,53, + 5438257955016967.,5707038642230400.,.499993232719855836172,-52,53, + 5627653235341647.,6238389060012051.,-.499997388150865220772,-52,53, + 5627653235354255.,6238389060045703.,-.499945943790568806352,-52,53, + 5627653235357365.,6238389060054003.,.397909353282915548944,-52,53, + 5627653235357401.,6238389060054099.,.485472951502321937965,-52,53, + 5627653235357407.,6238389060054116.,-.499933115461276523397,-52,53, + 5648553535545348.,6293888536683039.,-.499996968071346180418,-52,53, + 5648553535546694.,6293888536686594.,.499964056710538848874,-52,53, + 5648553535553424.,6293888536704374.,.499769145730913472150,-52,53, + 5648553535554097.,6293888536706152.,.499749651434787969864,-52,53, + 5648553535554111.,6293888536706189.,.486376288991547524050,-52,53, + 5674809791146915.,6362817349066071.,-.499634076107302532298,-52,53, + 5674809791147214.,6362817349066851.,-.483502931245409242279,-52,53, + 5674809791147283.,6362817349067031.,-.479780359369969619314,-52,53, + 5674809791147296.,6362817349067064.,.433964473011697679245,-52,53, + 5674809791147715.,6362817349068158.,-.499952083414648657900,-52,53, + 5674809791150938.,6362817349076566.,-.499983263405109582020,-52,53, + 5674809791154161.,6362817349084973.,.499985543704433729050,-52,53, + 5674809791217021.,6362817349248959.,.499995131603423763438,-52,53, + 5676165846161903.,6366353815883724.,.499425215461757419731,-52,53, + 5676165846161959.,6366353815883870.,.495178018113378758116,-52,53, + 5676165846162015.,6366353815884016.,.490930820761112258375,-52,53, + 5676165846162837.,6366353815886160.,-.499983397964171225701,-52,53, + 5676165846191562.,6366353815961048.,-.499997224418173251454,-52,53, + 5679432883882566.,6374864594926453.,.499966834957299563614,-52,53, + 5679432883882833.,6374864594927149.,-.492364292219695370500,-52,53, + 5679432883882853.,6374864594927201.,-.431864751187807860175,-52,53, + 5679432883882896.,6374864594927312.,.498209262029077889766,-52,53, + 5679432883896781.,6374864594963456.,-.499984496512258299598,-52,53, + 5679432883934335.,6374864595061210.,-.499997817860176748183,-52,53, + 5770212341039937.,6606261536735739.,.499987217968874154130,-52,53, + 5770212341041052.,6606261536738524.,-.450789081008633634391,-52,53, + 5770212341041066.,6606261536738559.,-.494117213919343419990,-52,53, + 5770212341041068.,6606261536738563.,.499693052807680324324,-52,53, + 5770212341063686.,6606261536795038.,.499999185491856547962,-52,53, + 5794885835783937.,6667535065795440.,-.499993352339193730652,-52,53, + 5794885835815190.,6667535065872634.,-.499969168764549880454,-52,53, + 5794885835818603.,6667535065881064.,-.489343611263243019155,-52,53, + 5794885835818620.,6667535065881106.,-.499838590937892289028,-52,53, + 5794885835829959.,6667535065909113.,-.499990103225405634075,-52,53, + 5818856945580347.,6726436547140088.,-.499998869906994064412,-52,53, + 5818856945594333.,6726436547174277.,-.499985115464394121852,-52,53, + 5818856945595379.,6726436547176833.,.463693868658868460275,-52,53, + 5818856945595550.,6726436547177251.,.475920547598683299455,-52,53, + 5818856945595874.,6726436547178043.,.499086886558527966652,-52,53, + 5818856945595883.,6726436547178065.,.499730395972509229609,-52,53, + 5843024995981468.,6785212468858840.,.499981772639263348867,-52,53, + 5843024995982400.,6785212468861096.,-.497267958113552556349,-52,53, + 5843024995982419.,6785212468861141.,.473818152516390492743,-52,53, + 5843024995982431.,6785212468861171.,-.491811672349098376654,-52,53, + 5843024995982574.,6785212468861517.,-.498900418674146228128,-52,53, + 5843024995982748.,6785212468861937.,.499467120734374916236,-52,53, + 5843024995983301.,6785212468863276.,-.499973975488431237892,-52,53, + 5843024996004744.,6785212468915157.,.499997888266092184431,-52,53, + 5964309486566633.,7071475383355299.,.499999965452235290079,-52,53, + 5964309486582715.,7071475383392344.,-.499957096601653238496,-52,53, + 5964309486587767.,7071475383403981.,-.496585864719903292420,-52,53, + 5964309486587777.,7071475383404004.,-.462137386453091960708,-52,53, + 5964309486587912.,7071475383404315.,-.497082929859932970438,-52,53, + 5964309486588637.,7071475383405985.,-.499568255843443190591,-52,53, + 5964309486588782.,7071475383406318.,.499934678903182399366,-52,53, + 5978738329838536.,7104618347118916.,-.499989574006959732522,-52,53, + 5978738329842005.,7104618347126862.,-.499956808230798235558,-52,53, + 5978738329842387.,7104618347127736.,.499181996688969134667,-52,53, + 5978738329842411.,7104618347127791.,.472949879716262662408,-52,53, + 5978738329842418.,7104618347127808.,-.493034487734206151840,-52,53, + 5978738329898920.,7104618347257230.,-.499997285389555917582,-52,53, + 6139790562155094.,7462608193746914.,.499996692795458110217,-52,53, + 6139790562167903.,7462608193774562.,-.499981436513035111199,-52,53, + 6139790562171312.,7462608193781920.,-.499897566754658961469,-52,53, + 6139790562172139.,7462608193783705.,-.499583880704129387824,-52,53, + 6139790562172240.,7462608193783922.,.499245239322001933795,-52,53, + 6139790562172341.,7462608193784140.,.498074359340370513888,-52,53, + 6139790562172360.,7462608193784182.,-.492244915112487070677,-52,53, + 6139790562172366.,7462608193784194.,.458180577165500829232,-52,53, + 6139790562202921.,7462608193850144.,.499999647521315819549,-52,53, + 6190687021002773.,7571492370991915.,-.499996901216076855416,-52,53, + 6190687021033943.,7571492371058012.,-.481164955799085324577,-52,53, + 6190687021033976.,7571492371058081.,.496429572353699066371,-52,53, + 6190687021034059.,7571492371058258.,-.499317523507951964803,-52,53, + 6190687021034283.,7571492371058733.,-.499887999111401567009,-52,53, + 6190687021037809.,7571492371066210.,-.499939329715353447103,-52,53, + 6190687021041335.,7571492371073687.,-.499990669365358429984,-52,53, + 6191107172163530.,7572383251250693.,.499996789942070108453,-52,53, + 6191107172189198.,7572383251305115.,.499979752696650376507,-52,53, + 6191107172201458.,7572383251331109.,.489374593852272198457,-52,53, + 6191107172201508.,7572383251331216.,-.499249407835042279082,-52,53, + 6191107172202032.,7572383251332326.,.499971054372519113016,-52,53, + 6234082493771038.,7662837277718069.,-.499947955834928542759,-52,53, + 6234082493773540.,7662837277723297.,-.468970353896009506202,-52,53, + 6234082493773551.,7662837277723320.,-.484022011131387197511,-52,53, + 6234082493773562.,7662837277723343.,-.499073668366849715198,-52,53, + 6234082493773629.,7662837277723483.,-.499842853348316879301,-52,53, + 6234082493789242.,7662837277756107.,-.499981522975930076797,-52,53, + 6234082493798344.,7662837277775126.,-.499998393664946361355,-52,53, + 6319178667599219.,7838170078525813.,-.499996519412543550238,-52,53, + 6319178667602349.,7838170078532173.,-.499544383471893996930,-52,53, + 6319178667609235.,7838170078546165.,-.498549706937117194348,-52,53, + 6319178667609329.,7838170078546356.,-.495341240756738555215,-52,53, + 6345705003149390.,7891841962477203.,.499997786451857971709,-52,53, + 6345705003159729.,7891841962498034.,.499988364262427747864,-52,53, + 6345705003170068.,7891841962518865.,.499978873689366155706,-52,53, + 6345705003171477.,7891841962521704.,.350833557221702072311,-52,53, + 6345705003171487.,7891841962521724.,.498816911961892345625,-52,53, + 6345705003171825.,7891841962522406.,-.499345697857300076026,-52,53, + 6420396283795305.,8040579839459300.,-.499994432671696023644,-52,53, + 6420396283806567.,8040579839481467.,.499719322418190960795,-52,53, + 6420396283806662.,8040579839481654.,.496697905535464327557,-52,53, + 6420396283806724.,8040579839481777.,-.463168703380410545462,-52,53, + 6420396283806725.,8040579839481779.,-.494779455137137216616,-52,53, + 6420396283808212.,8040579839484706.,-.499967318057424551229,-52,53, + 6420396283830388.,8040579839528357.,-.499998443543432821542,-52,53, + 6442675752377705.,8084285555713857.,.499998265725258586647,-52,53, + 6442675752378595.,8084285555715597.,.499654368276551796168,-52,53, + 6442675752390254.,8084285555738391.,.495149268287009299780,-52,53, + 6442675752392123.,8084285555742045.,.494427069183631529517,-52,53, + 6442675752392167.,8084285555742132.,-.483118022741048248544,-52,53, + 6442675752392168.,8084285555742133.,.471937770624286586306,-52,53, + 6442675752392212.,8084285555742219.,.494392678698431831173,-52,53, + 6492836060963972.,8181614496572311.,.499988677033232725203,-52,53, + 6492836060964417.,8181614496573168.,.499569313082324430184,-52,53, + 6492836060965132.,8181614496574545.,.476423593238752977486,-52,53, + 6492836060965145.,8181614496574571.,-.487633601670198739818,-52,53, + 6492836060965199.,8181614496574675.,-.492178872831493802056,-52,53, + 6492836060965280.,8181614496574831.,-.498996779576561794523,-52,53, + 6492836060992573.,8181614496627393.,-.499998583153859236073,-52,53, + 6671477663156628.,8516907964982875.,-.499979320523764169746,-52,53, + 6671477663237120.,8516907965130173.,.499966741486441262072,-52,53, + 6671477663238314.,8516907965132358.,.499791986478413803677,-52,53, + 6671477663238661.,8516907965132994.,-.496071196225657492932,-52,53, + 6671477663238861.,8516907965133360.,-.499450552278624645870,-52,53, + 6671477663242443.,8516907965139915.,-.499974822600773730900,-52,53, + 6863840991801811.,8859989244334199.,-.499997168374311180895,-52,53, + 6863840991833587.,8859989244389454.,.499777336404647604332,-52,53, + 6863840991833790.,8859989244389808.,-.498965293926847073955,-52,53, + 6863840991833924.,8859989244390041.,-.483356980953740386492,-52,53, + 6863840991833928.,8859989244390047.,.472332819433393746790,-52,53, + 6863840991833993.,8859989244390161.,-.497707924276674197327,-52,53, + 6863840991834422.,8859989244390907.,-.499976832810261866975,-52,53, + 6863840991838394.,8859989244397813.,.499994947228228310231,-52,53, + 6872244953278135.,8874587399272331.,-.499994547289605743362,-52,53, + 6872244953283690.,8874587399281970.,-.499763692100584866478,-52,53, + 6872244953283977.,8874587399282468.,-.499211711294404394410,-52,53, + 6872244953284011.,8874587399282526.,.497369359600080036052,-52,53, + 6872244953284045.,8874587399282585.,.493950430494052878092,-52,53, + 6872244953284060.,8874587399282612.,-.478146155876415858330,-52,53, + 6872244953285446.,8874587399285017.,-.499870736937396323042,-52,53, + 6872244953287202.,8874587399288064.,-.499977783138828294666,-52,53, + 6872244953334293.,8874587399369775.,.499998409083886422345,-52,53, + 6948383626888368.,9005439764267704.,.499482316016871265912,-52,53, + 6948383626888415.,9005439764267785.,-.493694058736925784995,-52,53, + 6948383626888442.,9005439764267830.,.467672704701960248612,-52,53, + 6948383626888452.,9005439764267847.,.490401135605173215961,-52,53, + 6948383626891008.,9005439764272198.,.499788073080994646363,-52,53, + 6948383626892768.,9005439764275194.,.499991909487955224406,-52,53, + 6948383626951681.,9005439764375480.,.499996048907117739258,-52,53, + 6949417371915066.,9007199254670376.,-.499997302186109394160,-52,53, + 6949417371951281.,9007199254732008.,-.499968570539847015614,-52,53, + 6949417371956560.,9007199254740991.,.493629386100644303756,-52,53, + 6949417371956561.,4503599627370497.,-.402267178710356345727,-52,52, + 6949417371956617.,4503599627370544.,.249148002691310869731,-52,52, + 6949417371957489.,4503599627371286.,.249755827289001129308,-52,52, + 6949417371957925.,4503599627371657.,.250059739527651814393,-52,52, + 6949417371961138.,4503599627374391.,.250005770452497485270,-52,52, + 6968649149660986.,4519925405975342.,-.499995440227575947212,-52,52, + 6968649149671664.,4519925405984385.,-.498791044124299550954,-52,52, + 6968649149671873.,4519925405984561.,.499453169796883163369,-52,52, + 6968649149672931.,4519925405985458.,-.499865594320924683212,-52,52, + 6968649149678639.,4519925405990292.,-.499970991152655345667,-52,52, + 6968649149699146.,4519925406007659.,-.499999318590428629474,-52,52, + 6997291737950032.,4544097165537353.,-.499998297763499755130,-52,52, + 6997291737954515.,4544097165541122.,.499975050947110232690,-52,52, + 6997291737957533.,4544097165543661.,-.498704503815925594724,-52,52, + 6997291737957665.,4544097165543772.,-.492682536074857772809,-52,52, + 6997291737957684.,4544097165543787.,.485456989584547057252,-52,52, + 6997291737957992.,4544097165544046.,.499508247631935166947,-52,52, + 6997291737958998.,4544097165544892.,.499948395534222727980,-52,52, + 7016625066959077.,4560317419285792.,.486371057673769161358,-52,52, + 7016625066959083.,4560317419285798.,-.491566508686277856387,-52,52, + 7016625066959126.,4560317419285833.,.499880932399838134363,-52,52, + 7016625066961347.,4560317419287692.,.499991784268031096356,-52,52, + 7016625066979704.,4560317419303058.,-.499992536918206944024,-52,52, + 7021455653564539.,4564358305913330.,-.499989776727750984455,-52,52, + 7021455653586897.,4564358305932021.,.499961626850646853825,-52,52, + 7021455653589800.,4564358305934449.,-.499597423209602928571,-52,52, + 7021455653589916.,4564358305934545.,.480096393562764400936,-52,52, + 7021455653589922.,4564358305934550.,.496287453050916258868,-52,52, + 7021455653590294.,4564358305934862.,-.499866858697891208759,-52,52, + 7021455653605364.,4564358305947461.,-.499989135070282902178,-52,52, + 7143909179063442.,4665251770615504.,-.499999922548068734520,-52,52, + 7143909179064086.,4665251770616027.,-.499992864612868130725,-52,52, + 7143909179093066.,4665251770639562.,-.499675338508499701591,-52,52, + 7143909179128486.,4665251770668327.,-.499287466210949434989,-52,52, + 7143909179128965.,4665251770668716.,-.497729427436833946461,-52,52, + 7143909179128981.,4665251770668728.,.496059567594539755299,-52,52, + 7143909179129130.,4665251770668850.,-.499280416178111664822,-52,52, + 7190497239683270.,4702883505905670.,.497797711406235209418,-52,52, + 7190497239683387.,4702883505905764.,.499719852079994376594,-52,52, + 7190497239684959.,4702883505907027.,.499904511144876959406,-52,52, + 7190497239686007.,4702883505907870.,-.499972383064288454892,-52,52, + 7190497239702134.,4702883505920827.,-.499986409396925948972,-52,52, + 7190497239718261.,4702883505933783.,.499999516451582563459,-52,52, + 7198073455274710.,4708965234968179.,-.499991632927791498780,-52,52, + 7198073455283707.,4708965234975395.,-.499903331640269303158,-52,52, + 7198073455284490.,4708965234976023.,-.498561869641762205196,-52,52, + 7198073455285076.,4708965234976492.,.499887806825182189880,-52,52, + 7198073455288890.,4708965234979552.,-.499963617842716031458,-52,52, + 7198073455308253.,4708965234995082.,-.499995944152683233765,-52,52, + 7233217877655696.,4737040288044622.,.499992666966780030279,-52,52, + 7233217877737936.,4737040288110058.,.499982144837007560301,-52,52, + 7233217877741817.,4737040288113146.,.499932980131605456081,-52,52, + 7233217877742463.,4737040288113661.,-.496467885990308569989,-52,52, + 7233217877742468.,4737040288113664.,.481888144457371860917,-52,52, + 7233217877742556.,4737040288113735.,-.499045719664187658733,-52,52, + 7233217877742972.,4737040288114066.,-.499823986439483291335,-52,52, + 7360340063864506.,4836768463721821.,-.499996107284985150849,-52,52, + 7360340063886466.,4836768463738809.,-.499928528895958865546,-52,52, + 7360340063886625.,4836768463738932.,-.499381591806868706671,-52,52, + 7360340063888268.,4836768463740203.,-.493729908801634004181,-52,52, + 7360340063888480.,4836768463740367.,-.493000659414637469031,-52,52, + 7360340063888489.,4836768463740373.,.469294450228983044186,-52,52, + 7376366427605820.,4849144756296036.,.478509609657858206923,-52,52, + 7376366427605833.,4849144756296047.,-.499699415110483281785,-52,52, + 7376366427607806.,4849144756297567.,.499807825490940147528,-52,52, + 7376366427611202.,4849144756300185.,.499973353157149822549,-52,52, + 7376366427684168.,4849144756356435.,.499995825271386539881,-52,52, + 7417783623952546.,4880931656541628.,-.499816957249002271773,-52,52, + 7417783623952919.,4880931656541913.,-.498545906792005742020,-52,52, + 7417783623952936.,4880931656541925.,.490788162531230760588,-52,52, + 7417783623952953.,4880931656541938.,.480122231854420114863,-52,52, + 7417783623953203.,4880931656542129.,.499740898366465720484,-52,52, + 7417783623959578.,4880931656547001.,-.499983109021493154866,-52,52, + 7417783624013863.,4880931656588479.,-.499986160541259271315,-52,52, + 7424772695357273.,4886267875714273.,.499997470882860186169,-52,52, + 7424772695360538.,4886267875716764.,.499971236484127298321,-52,52, + 7424772695362837.,4886267875718518.,.499646484178617537780,-52,52, + 7424772695363803.,4886267875719255.,.499945000352382303398,-52,52, + 7545254496737148.,4977031707744784.,-.499999028779837914512,-52,52, + 7545254496780886.,4977031707777321.,.499983949949436918823,-52,52, + 7545254496796495.,4977031707788933.,.499657716746990513012,-52,52, + 7545254496796526.,4977031707788957.,-.438519624133836543639,-52,52, + 7545254496796534.,4977031707788963.,-.487081518554719032128,-52,52, + 7545254496797401.,4977031707789608.,-.499976826475954865185,-52,52, + 7602884003724941.,5019652019023750.,.499993024230517584938,-52,52, + 7602884003725364.,5019652019024062.,-.499985630523433699198,-52,52, + 7602884003732555.,5019652019029349.,-.499622765419017900341,-52,52, + 7602884003734198.,5019652019030556.,.474455412802653865750,-52,52, + 7602884003734213.,5019652019030568.,-.497175035967716570563,-52,52, + 7602884003734247.,5019652019030593.,-.499537386514013657309,-52,52, + 7602884003771928.,5019652019058296.,.499999833068115109169,-52,52, + 7736954682052246.,5116912930036804.,-.499987488060468492674,-52,52, + 7736954682053330.,5116912930037580.,-.499818899057670330384,-52,52, + 7736954682056019.,5116912930039504.,.467388974612989490388,-52,52, + 7736954682056033.,5116912930039514.,.489531373357604287090,-52,52, + 7736954682056040.,5116912930039520.,-.499397427270098600297,-52,52, + 7736954682075911.,5116912930053745.,-.499997065348929334759,-52,52, + 7845121518179364.,5193540593052287.,.499999750567471369117,-52,52, + 7845121518201381.,5193540593067723.,.499996939068392513996,-52,52, + 7845121518210608.,5193540593074192.,.499950322148453826686,-52,52, + 7845121518210792.,5193540593074322.,-.498641698939454776386,-52,52, + 7845121518210879.,5193540593074382.,.496589247609799712987,-52,52, + 7845121518210889.,5193540593074390.,-.492464666580005797805,-52,52, + 7845121518210899.,5193540593074397.,-.481518580769824637979,-52,52, + 8270159510157866.,5480193677978453.,-.496639390676845450711,-52,52, + 8270159510157886.,5480193677978465.,.488839498884603110926,-52,52, + 8270159510157889.,5480193677978467.,.436661332318816544847,-52,52, + 8270159510158077.,5480193677978590.,-.499837105805811994080,-52,52, + 8270159510160281.,5480193677980020.,.499936523545314897981,-52,52, + 8270159510168407.,5480193677985297.,-.499990653503905330143,-52,52, + 8270159510194989.,5480193678002556.,-.499998608054093795543,-52,52, + 8300391572313768.,5499771768521310.,.499999299184784536643,-52,52, + 8300391572322187.,5499771768526748.,.499968698796883794257,-52,52, + 8300391572322910.,5499771768527216.,-.499915150490317205164,-52,52, + 8300391572325079.,5499771768528617.,-.499566698697814141226,-52,52, + 8300391572325127.,5499771768528648.,-.495409609867333551851,-52,52, + 8300391572325161.,5499771768528669.,.465868328054103128808,-52,52, + 8300391572325175.,5499771768528679.,-.491252521037107058331,-52,52, + 8313067990198533.,5507950873322779.,-.499992047687545345059,-52,52, + 8313067990203200.,5507950873325786.,.499987812606417797873,-52,52, + 8313067990205037.,5507950873326970.,.493123231569444916713,-52,52, + 8313067990205082.,5507950873326999.,.496765634315661493585,-52,52, + 8313067990205127.,5507950873327029.,-.499591962938344151462,-52,52, + 8313067990248500.,5507950873354984.,-.499993526222350910889,-52,52, + 8352209008752700.,5533094617749004.,.499985836440784469987,-52,52, + 8352209008753003.,5533094617749198.,.499564347682994918150,-52,52, + 8352209008753609.,5533094617749586.,.498721370137646914282,-52,52, + 8352209008753634.,5533094617749603.,-.494712746098574730271,-52,52, + 8352209008753684.,5533094617749635.,-.481580978571220674482,-52,52, + 8352209008769301.,5533094617759633.,.499995277700162002306,-52,52, + 8581012629609056.,5676840429734464.,-.499996402665943867230,-52,52, + 8581012629615897.,5676840429738682.,-.499908422388017153553,-52,52, + 8581012629616935.,5676840429739322.,-.493463265136988605657,-52,52, + 8581012629616948.,5676840429739330.,-.477968287253019291994,-52,52, + 8581012629616995.,5676840429739359.,-.498871059518808526035,-52,52, + 8581012629617188.,5676840429739478.,-.499599464782750453991,-52,52, + 8581012629618672.,5676840429740392.,.499981087364886235996,-52,52, + 8633217711568164.,5708894574953416.,.499996686558876624478,-52,52, + 8633217711578873.,5708894574959964.,.499954202621411620204,-52,52, + 8633217711580026.,5708894574960669.,.499856248460819803637,-52,52, + 8633217711581964.,5708894574961854.,.486682063292335922200,-52,52, + 8633217711582000.,5708894574961876.,.498821242511754963359,-52,52, + 8633217711582332.,5708894574962079.,.499660339751564212934,-52,52, + 8633217711588429.,5708894574965808.,-.499990337242482516310,-52,52, + 8733683808952761.,5769839192013892.,-.499983044149714999671,-52,52, + 8733683808956335.,5769839192016042.,.499884067929716837316,-52,52, + 8733683808956875.,5769839192016367.,.497066004177682336444,-52,52, + 8733683808956983.,5769839192016432.,.496502391423990672154,-52,52, + 8733683808956988.,5769839192016436.,-.494264442499817868142,-52,52, + 8733683808956998.,5769839192016442.,-.475798110347441989122,-52,52, + 8733683808975830.,5769839192027775.,.499998582352417981398,-52,52, + 8899157617727365.,5868168336808327.,-.499992466647818896654,-52,52, + 8899157617751779.,5868168336822652.,-.499949409373017570258,-52,52, + 8899157617754995.,5868168336824538.,.499318976637311121852,-52,52, + 8899157617755041.,5868168336824565.,.489980153793744387106,-52,52, + 8899157617755312.,5868168336824725.,-.499820302527597178056,-52,52, + 8899157617756384.,5868168336825353.,.499935825908680989156,-52,52, + 8899157617788936.,5868168336844453.,.499993140143318941553,-52,52, + 8922510259453986.,5881846477197613.,.485087075071261263933,-52,52, + 8922510259453998.,5881846477197621.,-.498610299538881652033,-52,52, + 8922510259454181.,5881846477197728.,-.499995262345130053565,-52,52, + 9006076593794525.,5930402871388207.,.499996874692613360448,-52,52, + 9006076593822609.,5930402871404425.,-.499929339722465357227,-52,52, + 9006076593822990.,5930402871404645.,-.492913668903219232889,-52,52, + 9006076593823002.,5930402871404651.,.436441155374350696719,-52,52, + 9006076593823274.,5930402871404809.,-.498182827670699800676,-52,52, + 9006076593827167.,5930402871407057.,-.499988585696123770834,-52,52, + 9007199254739116.,5931051093852153.,.499881183415546655650,-52,52, + 9007199254740926.,5931051093853199.,-.496131583211613976082,-52,52, + 9007199254740952.,5931051093853214.,-.485024584281226328062,-52,52, + 9007199254740990.,5931051093853235.,.454285644924620924362,-52,52, + 9007199254740991.,5931051093853236.,.031635914114246817068,-52,52, + 4503599627370497.,5931051093853238.,-.236313278316876017602,-51,52, + 4503599627370547.,5931051093853295.,.498713640645256015270,-51,52, + 4503599627370909.,5931051093853714.,-.499691466094401253129,-51,52, + 4503599627374600.,5931051093857975.,.499995688873204897484,-51,52, + 4503599627409713.,5931051093898520.,.499999539525320554147,-51,52, + 4788213549069671.,6246661566468673.,.499994892209822010304,-51,52, + 4788213549070310.,6246661566469355.,-.473769606548075063686,-51,52, + 4788213549070325.,6246661566469371.,-.487238256755061288719,-51,52, + 4788213549070340.,6246661566469386.,.499293093037888184107,-51,52, + 4822659400860671.,6283204483340570.,.499963377095760438230,-51,52, + 4822659401073703.,6283204483565537.,.499954869695349000343,-51,52, + 4822659401075006.,6283204483566913.,.499809260514230198143,-51,52, + 4822659401076309.,6283204483568289.,.499663650857691021078,-51,52, + 4822659401076416.,6283204483568402.,.494279475676744469031,-51,52, + 4822659401076434.,6283204483568422.,-.497280479026907356550,-51,52, + 4882991802327536.,6346413280900654.,-.498976105487308854952,-51,52, + 4882991802327612.,6346413280900732.,.497269441589074976705,-51,52, + 4882991802327815.,6346413280900944.,-.499601005043503392384,-51,52, + 4882991802328094.,6346413280901233.,.499774095379256852172,-51,52, + 4882991802334486.,6346413280907877.,.499794311486991650840,-51,52, + 4882991802393612.,6346413280969334.,.499980786817803623853,-51,52, + 4882991802400004.,6346413280975979.,-.499999110299485342031,-51,52, + 4942700989126384.,6407999959847795.,-.499999371945048838282,-51,52, + 4942700989152707.,6407999959874738.,-.499980981662274623374,-51,52, + 4942700989156613.,6407999959878736.,-.499826309841436405506,-51,52, + 4942700989157080.,6407999959879213.,.499680149630676700725,-51,52, + 4942700989157165.,6407999959879301.,-.498268353469394790035,-51,52, + 4942700989157333.,6407999959879472.,.458727546280204406447,-51,52, + 4942700989157335.,6407999959879475.,-.494165359675201932674,-51,52, + 4942700989164892.,6407999959887209.,.499989480358141048982,-51,52, + 5322127222038518.,6778787770640275.,-.499995223444201392806,-51,52, + 5322127222128764.,6778787770724557.,-.499972365685541744242,-51,52, + 5322127222135997.,6778787770731311.,.499763451193784297325,-51,52, + 5322127222136224.,6778787770731523.,.498234352496508967767,-51,52, + 5322127222136254.,6778787770731552.,-.484346585658139934325,-51,52, + 5322127222141853.,6778787770736780.,.499964320044352020689,-51,52, + 5358895155324120.,6812982258061983.,-.499982684828160326882,-51,52, + 5358895155328736.,6812982258066258.,-.499907450986534489337,-51,52, + 5358895155329846.,6812982258067286.,-.499456084763519386427,-51,52, + 5358895155330374.,6812982258067774.,.495353213673427178901,-51,52, + 5358895155330387.,6812982258067787.,-.465001860418825429904,-51,52, + 5358895155330401.,6812982258067800.,-.499230401748983290923,-51,52, + 5358895155332797.,6812982258070018.,.499942095712330388900,-51,52, + 5678778009585157.,7099027783509822.,.499999678122856837720,-51,52, + 5678778009589888.,7099027783513909.,.499986691302060155369,-51,52, + 5678778009604081.,7099027783526170.,.499947706598836295999,-51,52, + 5678778009606351.,7099027783528131.,.499730096287627811782,-51,52, + 5678778009606358.,7099027783528138.,-.453134010882171281493,-51,52, + 5678778009606542.,7099027783528297.,-.499847685062919289978,-51,52, + 5900045005108267.,7285897773775600.,-.499996180038940014374,-51,52, + 5900045005111798.,7285897773778516.,-.499920764183196453910,-51,52, + 5900045005111976.,7285897773778662.,.497534184508777240374,-51,52, + 5900045005111999.,7285897773778681.,.491587352036013115529,-51,52, + 5900045005112005.,7285897773778686.,.446557743564843003277,-51,52, + 5900045005112131.,7285897773778791.,-.499064034331091801266,-51,52, + 5945422757920584.,7323204409462203.,-.499994285754659600053,-51,52, + 5945422757944012.,7323204409481377.,.498856756627981688575,-51,52, + 5945422757944034.,7323204409481396.,-.494912463025374947731,-51,52, + 5945422757944144.,7323204409481486.,-.463758561293324939434,-51,52, + 5945422757944155.,7323204409481495.,-.460643171120226896203,-51,52, + 5945422757944337.,7323204409481643.,.499993284468208953083,-51,52, + 5996555356296445.,7364846046318524.,-.499741133217297734325,-51,52, + 5996555356296619.,7364846046318664.,.498472392921953983875,-51,52, + 5996555356296788.,7364846046318801.,.445013116581380253694,-51,52, + 5996555356296793.,7364846046318805.,.496685919056442775571,-51,52, + 5996555356298148.,7364846046319904.,-.499984610346565588846,-51,52, + 5996555356306547.,7364846046326709.,.499988979920968694787,-51,52, + 5996555356343491.,7364846046356646.,.499991743601270734710,-51,52, + 6033267816829380.,7394489941670268.,.499995763055682110283,-51,52, + 6033267816851975.,7394489941688448.,.499885999799941340656,-51,52, + 6033267816852062.,7394489941688519.,-.499671847195303349119,-51,52, + 6033267816852671.,7394489941689009.,-.496576776194853987373,-51,52, + 6033267816852845.,7394489941689149.,-.495692470205280608604,-51,52, + 6033267816852860.,7394489941689161.,-.426650719689157710529,-51,52, + 6033267816858797.,7394489941693938.,-.499925868145362751915,-51,52, + 6033267816872354.,7394489941704846.,-.499991778399290916200,-51,52, + 6134612617349938.,7475247441943925.,-.499997159552398466519,-51,52, + 6134612617365746.,7475247441956401.,-.499971550679664158246,-51,52, + 6134612617405266.,7475247441987591.,-.499907691050767178951,-51,52, + 6134612617405878.,7475247441988074.,-.496870266710341483381,-51,52, + 6134612617405897.,7475247441988088.,.498322071626133390311,-51,52, + 6134612617406305.,7475247441988411.,-.499652978845673480000,-51,52, + 6597896828391946.,7825848188137970.,.499996072050174991968,-51,52, + 6597896828408121.,7825848188149717.,-.495482073574032965321,-51,52, + 6597896828408132.,7825848188149724.,.492527183935627333145,-51,52, + 6597896828408373.,7825848188149900.,-.497451810629234363137,-51,52, + 6597896828408709.,7825848188150143.,.499921873284857963204,-51,52, + 6597896828420885.,7825848188158985.,.499987266587390495435,-51,52, + 6637929922643094.,7854820184593200.,-.499999576758453789340,-51,52, + 6637929922670798.,7854820184613180.,.499962568729023592821,-51,52, + 6637929922671415.,7854820184613625.,.499853436980760960767,-51,52, + 6637929922673101.,7854820184614841.,.496313734752807081642,-51,52, + 6637929922673137.,7854820184614867.,.460650965306411545160,-51,52, + 6637929922673144.,7854820184614873.,-.490727906530406065736,-51,52, + 6637929922673266.,7854820184614960.,.499526041455520824081,-51,52, + 6637929922679827.,7854820184619692.,.499986307088817129981,-51,52, + 6869894088669545.,8018905814021938.,.499998612908857956833,-51,52, + 6869894088681018.,8018905814029899.,.499993370677466804933,-51,52, + 6869894088690090.,8018905814036194.,.470092936744257247272,-51,52, + 6869894088690103.,8018905814036203.,.490662964775368843165,-51,52, + 6869894088690544.,8018905814036509.,.496153915665595395512,-51,52, + 6869894088690838.,8018905814036713.,.499814549580186459003,-51,52, + 6869894088692491.,8018905814037860.,.499988113550531609678,-51,52, + 7015678990828224.,8118881663733338.,-.499952540474160256521,-51,52, + 7015678990830111.,8118881663734616.,.499930749744938366282,-51,52, + 7015678990831399.,8118881663735490.,-.499618970770893173407,-51,52, + 7015678990845896.,8118881663745316.,-.499985674335215538988,-51,52, + 7015678990854732.,8118881663751304.,.499997746120378196226,-51,52, + 7110554443477601.,8182708111230863.,.499623199521373565093,-51,52, + 7110554443477914.,8182708111231073.,-.499025878791506143288,-51,52, + 7110554443477956.,8182708111231101.,-.454116170450881539114,-51,52, + 7110554443478007.,8182708111231135.,-.399582953180370617468,-51,52, + 7110554443479160.,8182708111231904.,.499962135235399289025,-51,52, + 7110554443496929.,8182708111243769.,.499976580880101501991,-51,52, + 7110554443526544.,8182708111263545.,-.499999416279207530453,-51,52, + 7402099550016234.,8373083816254618.,-.499965067178043374639,-51,52, + 7402099550020214.,8373083816257159.,.498070458474000888590,-51,52, + 7402099550020250.,8373083816257182.,.491017513473025275443,-51,52, + 7402099550020261.,8373083816257190.,-.483359775277297408034,-51,52, + 7402099550020488.,8373083816257334.,.499945265963475048611,-51,52, + 7402099550027435.,8373083816261772.,-.499966095438331643347,-51,52, + 7402099550195450.,8373083816369082.,-.499982950893009295613,-51,52, + 7487002011812391.,8426970706170517.,.499998225982125139343,-51,52, + 7487002011875837.,8426970706210534.,.499987826152361164280,-51,52, + 7487002011876208.,8426970706210768.,.499089362452485324103,-51,52, + 7487002011876338.,8426970706210850.,.493383701314741739444,-51,52, + 7487002011876357.,8426970706210862.,.477165181609863495190,-51,52, + 7577399261588474.,8483611571883287.,-.499973160031562568285,-51,52, + 7577399261594598.,8483611571887098.,.489051221902257694637,-51,52, + 7577399261594614.,8483611571887108.,.448526138637044842024,-51,52, + 7577399261594643.,8483611571887127.,-.499925574781212246998,-51,52, + 7577399261604168.,8483611571893055.,.499985789777579431471,-51,52, + 7577399261647894.,8483611571920273.,.499998737546349563843,-51,52, + 7841312357860269.,8644831832544011.,-.499999239705843872362,-51,52, + 7841312357883161.,8644831832557736.,.499990976724497883752,-51,52, + 7841312357883468.,8644831832557921.,-.423388501274351635210,-51,52, + 7841312357883493.,8644831832557936.,-.433435690036818789739,-51,52, + 7841312357883648.,8644831832558029.,-.495728260365277731398,-51,52, + 7841312357883658.,8644831832558035.,-.499747135870408353545,-51,52, + 8062329644088625.,8775360228791635.,-.499993679796163342437,-51,52, + 8062329644088888.,8775360228791787.,.499983617426223299064,-51,52, + 8062329644096252.,8775360228796071.,.499347937455263343398,-51,52, + 8062329644102014.,8775360228799424.,-.463126642906861682337,-51,52, + 8062329644102026.,8775360228799431.,-.482139085631604471329,-51,52, + 8062329644102038.,8775360228799437.,.498848471643641470030,-51,52, + 8062329644132754.,8775360228817306.,.499999206914979971048,-51,52, + 8471711556201592.,9007199254725567.,-.000017268500075156403,-51,52, + 8471711556229564.,4503599627370496.,-.044370824229501747567,-51,51, + 8471711556229565.,4503599627370496.,.231349740542281448317,-51,51, + 8471711556229566.,4503599627370497.,-.492929694685935390820,-51,51, + 8471711556229595.,4503599627370505.,-.497033316304238959576,-51,51, + 8471711556229624.,4503599627370512.,.498863062077428019649,-51,51, + 8471711556229867.,4503599627370579.,.498960301619204324358,-51,51, + 8471711556232297.,4503599627371249.,.499932696923232322799,-51,51, + 8471711556232540.,4503599627371317.,-.499970063557738382222,-51,51, + 8471711556242775.,4503599627374139.,-.499989627257519704793,-51,51, + 8758552636996213.,4581282121630747.,-.499996558246434587514,-51,51, + 8758552636998660.,4581282121631397.,.499995028450003602895,-51,51, + 8758552637008448.,4581282121634001.,.499961373288237083026,-51,51, + 8758552637010102.,4581282121634442.,-.469803202585279454899,-51,51, + 8758552637010117.,4581282121634446.,-.479202518570029236330,-51,51, + 8758552637010147.,4581282121634454.,-.498001150539550753392,-51,51, + 8758552637010256.,4581282121634483.,-.499636180029058656548,-51,51, + 8758552637010895.,4581282121634652.,.499952959010915632683,-51,51, + 8913898133484470.,4622222853999532.,-.499996576373610361054,-51,51, + 8913898133511963.,4622222854006710.,-.499989013911823352138,-51,51, + 8913898133517421.,4622222854008134.,.499976111704476159404,-51,51, + 8913898133522607.,4622222854009488.,.484919156177392530652,-51,51, + 8913898133522653.,4622222854009500.,.494812596213302604376,-51,51, + 8913898133522676.,4622222854009506.,.499759316231232815681,-51,51, + 8913898133522879.,4622222854009559.,.499941236388768746887,-51,51, + 8983393463046817.,4640291897272381.,-.499998008749937605580,-51,51, + 8983393463098167.,4640291897285677.,-.499986176584156163288,-51,51, + 8983393463099175.,4640291897285938.,-.499635409590037077414,-51,51, + 8983393463099287.,4640291897285967.,-.499596435481508385050,-51,51, + 8983393463099337.,4640291897285979.,.446849535102531650052,-51,51, + 8983393463099341.,4640291897285980.,.482565212749251531268,-51,51, + 4561025520236263.,4675902007600595.,-.499997951840470660022,-50,51, + 4561025520245871.,4675902007605489.,.499991862808356578163,-50,51, + 4561025520263978.,4675902007614714.,.496329840231454602562,-50,51, + 4561025520264084.,4675902007614769.,-.499715234958925154534,-50,51, + 4561025520265087.,4675902007615279.,.499971459164062049726,-50,51, + 4632240566460032.,4711885797615856.,-.499994518887927895685,-50,51, + 4632240566469219.,4711885797620459.,.499990589248061244164,-50,51, + 4632240566470969.,4711885797621337.,-.499903399090976807533,-50,51, + 4632240566472100.,4711885797621903.,.292736543115155696109,-50,51, + 4632240566472202.,4711885797621954.,.409314150627841967290,-50,51, + 4632240566472280.,4711885797621993.,.498461732842618437914,-50,51, + 4632240566472282.,4711885797621995.,-.499252431715986235472,-50,51, + 4632240566472719.,4711885797622214.,-.499797387782136272873,-50,51, + 4865083545550015.,4825566235894479.,.499999176442401102415,-50,51, + 4865083545554822.,4825566235896767.,-.498531615047248600228,-50,51, + 4865083545554864.,4825566235896786.,.483590645553304277652,-50,51, + 4865083545555049.,4825566235896875.,-.499918444660715719363,-50,51, + 4870600750970452.,4828189556811440.,.499998348334549115716,-50,51, + 4870600750984522.,4828189556818126.,.499950834076746062669,-50,51, + 4870600750984886.,4828189556818299.,.471093883188362920200,-50,51, + 4870600750984905.,4828189556818308.,.499807393993264597619,-50,51, + 5194636483446893.,4977005345244173.,.499992672825997179255,-50,51, + 5194636483463691.,4977005345251632.,.499890064778475574116,-50,51, + 5194636483464245.,4977005345251878.,.498577000598203462835,-50,51, + 5194636483464353.,4977005345251926.,.454999724545413339357,-50,51, + 5194636483464371.,4977005345251934.,.447736845203179938814,-50,51, + 5194636483469749.,4977005345254322.,.499972115983328580682,-50,51, + 5194636483472778.,4977005345255668.,-.499986859648640848897,-50,51, + 5207462811764305.,4982693395273990.,-.499275792785478447800,-50,51, + 5207462811764314.,4982693395273993.,.486766116476919696431,-50,51, + 5207462811764664.,4982693395274148.,.499507032231242249449,-50,51, + 5207462811767028.,4982693395275195.,.499848531497080412631,-50,51, + 5207462811767816.,4982693395275544.,.499962364474891260262,-50,51, + 5207462811776843.,4982693395279542.,.499997348200974127657,-50,51, + 5395254053562302.,5064331155979788.,-.499996005185891994982,-50,51, + 5395254053589235.,5064331155991281.,.499992679211836019363,-50,51, + 5395254053591932.,5064331155992432.,.479013560391909382564,-50,51, + 5395254053591960.,5064331155992444.,.428369357449578230873,-50,51, + 5395254053592000.,5064331155992461.,.498877638960421254848,-50,51, + 5395254053592157.,5064331155992529.,-.499377356110798808508,-50,51, + 5395254053593816.,5064331155993236.,.499953619413322538807,-50,51, + 5414042587525269.,5072334840564354.,-.499994274175763446940,-50,51, + 5414042587540760.,5072334840570940.,.499867639939473771906,-50,51, + 5414042587549612.,5072334840574704.,.499788724875131044414,-50,51, + 5414042587550080.,5072334840574904.,-.499763572214211387365,-50,51, + 5414042587550748.,5072334840575188.,-.456389500569462204080,-50,51, + 5414042587550762.,5072334840575193.,.496615345243059806497,-50,51, + 5414042587550889.,5072334840575247.,.498873589398774487062,-50,51, + 5414042587576636.,5072334840586195.,.499999642978450117535,-50,51, + 5463888598461792.,5093428776557567.,-.499915771603691700487,-50,51, + 5463888598462274.,5093428776557770.,-.499526315130236339394,-50,51, + 5463888598462547.,5093428776557884.,.477872692366142534679,-50,51, + 5463888598462661.,5093428776557932.,.490412937252964573547,-50,51, + 5463888598462756.,5093428776557973.,-.499136858675482883595,-50,51, + 5463888598464183.,5093428776558573.,.499941469764525300015,-50,51, + 5463888598477102.,5093428776564015.,-.499993418482517237612,-50,51, + 5512288168003915.,5113719170835459.,.499992469726320675160,-50,51, + 5512288168015832.,5113719170840432.,.499388680459277120248,-50,51, + 5512288168018583.,5113719170841580.,.499836692268623441610,-50,51, + 5512288168019762.,5113719170842073.,-.499971302853250059080,-50,51, + 5512288168035216.,5113719170848522.,-.499999096393710108957,-50,51, + 5856227526130867.,5252770545579721.,.499995786653926544411,-50,51, + 5856227526151560.,5252770545587830.,-.499990493198461670954,-50,51, + 5856227526172202.,5252770545595918.,-.482966253215881051974,-50,51, + 5856227526172253.,5252770545595938.,-.499976802800108589208,-50,51, + 6255935994524666.,5404088923692165.,.499993953832247735892,-50,51, + 6255935994567391.,5404088923707799.,.476207632818369192642,-50,51, + 6255935994567402.,5404088923707804.,-.498660983919798514580,-50,51, + 6255935994568118.,5404088923708066.,-.499200037074447757652,-50,51, + 6255935994569192.,5404088923708458.,.499991383135472216874,-50,51, + 7336013593192052.,5767802219713735.,-.499993024174181721884,-50,51, + 7336013593192110.,5767802219713753.,-.483356943356463127331,-50,51, + 7240243707632093.,7309008430703898.,-.499993806870348025382,-49,51, + 7240243707645082.,7309008430707949.,.496507090221542049082,-49,51, + 7240243707645098.,7309008430707954.,.487803111031064736999,-49,51, + 7240243707645191.,7309008430707983.,.499711231986195648852,-49,51, + 7240243707646454.,7309008430708378.,-.499859125402210892037,-49,51, + 7240243707650820.,7309008430709740.,-.499957447675010416707,-49,51, + 7240243707653003.,7309008430710420.,.499993390878724915307,-49,51, + 7541662945646442.,7401122255448114.,-.499998620413183890860,-49,51, + 7541662945718442.,7401122255469672.,-.499970584251404478239,-49,51, + 7541662945730442.,7401122255473265.,-.499965931679536803179,-49,51, + 7541662945730609.,7401122255473315.,-.497382533638472346417,-49,51, + 8408023983763533.,7646606907105863.,-.499828293389884026548,-49,51, + 8408023983763708.,7646606907105909.,.473302477721545078369,-49,51, + 8408023983763723.,7646606907105913.,.499570829531050447933,-49,51, + 8408023983768596.,7646606907107221.,.499949386997113475998,-49,51, + 8408023983771908.,7646606907108111.,-.499998534158332483851,-49,51, + 4883924055201146.,7984829198143479.,.499991990477257362019,-48,51, + 4883924055245017.,7984829198163741.,-.499929010286431301121,-48,51, + 4883924055246589.,7984829198164466.,.498842935603300336621,-48,51, + 4883924055247323.,7984829198164805.,.483002355550399811341,-48,51, + 4883924055247336.,7984829198164811.,.486808993777885041232,-48,51, + 4883924055247375.,7984829198164829.,.498228908460244525975,-48,51, + 4883924055250008.,7984829198166045.,.499988789117588387119,-48,51, + 5179581817553889.,8117387310981554.,.499997271436605732859,-48,51, + 5179581817582576.,8117387310994045.,-.499993846828879495553,-48,51, + 5179581817584441.,8117387310994857.,-.499784117839042061401,-48,51, + 5179581817584797.,8117387310995011.,.498647337098342192326,-48,51, + 5179581817584820.,8117387310995022.,-.487409057667306617022,-48,51, + 5179581817584836.,8117387310995028.,.478812580756563559441,-48,51, + 5179581817584944.,8117387310995076.,-.499191359882877273553,-48,51, + 6014154868567824.,8454217309912390.,.499996424851712461878,-48,51, + 6014154868571898.,8454217309913918.,-.453141682769377017605,-48,51, + 6014154868571906.,8454217309913921.,-.454522415431410311630,-48,51, + 6014154868572098.,8454217309913993.,-.487659999321408619805,-48,51, + 6014154868572170.,8454217309914019.,.499913406719248385098,-48,51, + 6036727180147451.,8462662158563129.,-.499918266711687163443,-48,51, + 6036727180148399.,8462662158563483.,-.495096378013232004262,-48,51, + 6036727180148482.,8462662158563513.,.498996677640203894534,-48,51, + 6036727180148640.,8462662158563572.,.499800325750383508487,-48,51, + 6036727180151176.,8462662158564520.,-.499958841503059034242,-48,51, + 6036727180154901.,8462662158565911.,-.499999417154626206918,-48,51, + 6746930395988093.,8713364490101986.,.499998221414732262212,-48,51, + 6746930395992323.,8713364490103400.,-.499928220734859790434,-48,51, + 6746930396004073.,8713364490107325.,-.499723898028870629645,-48,51, + 6746930396004480.,8713364490107460.,.455602328175352172929,-48,51, + 6746930396004501.,8713364490107467.,.470496310362570757082,-48,51, + 6746930396004540.,8713364490107480.,.498156562995918671030,-48,51, + 6746930396004543.,8713364490107482.,-.499715725263057690946,-48,51, + 7240486963994320.,8872472584425737.,.499991229633607903507,-48,51, + 7240486964060996.,8872472584446489.,.499986801046133017143,-48,51, + 7240486964061886.,8872472584446767.,-.499593318153400657231,-48,51, + 7240486964062066.,8872472584446823.,-.477036488332733018434,-48,51, + 7240486964062082.,8872472584446828.,-.497253659015407842813,-48,51, + 7686584201523627.,9007199254740029.,-.000025937695958695390,-48,51, + 7686584201524780.,9007199254740367.,.000266748207651915271,-48,51, + 7686584201526895.,9007199254740987.,.009476661940493633806,-48,51, + 7686584201526909.,9007199254740991.,.113556538437446861173,-48,51, + 7686584201526912.,4503599627370496.,-.003498886870889210533,-48,50, + 7686584201526913.,4503599627370496.,.143075394432573204239,-48,50, + 7686584201527086.,4503599627370522.,-.499573940068716430874,-48,50, + 7686584201544265.,4503599627373040.,-.499995430762363428916,-48,50, + 8412198194100013.,4605225279294614.,.499989188989709238207,-48,50, + 8412198194105845.,4605225279295396.,-.499972433576972363007,-48,50, + 8412198194111102.,4605225279296099.,.498176014203863311598,-48,50, + 8412198194111214.,4605225279296114.,.496805009091872345596,-48,50, + 8412198194111259.,4605225279296121.,-.476960126890680322641,-48,50, + 8412198194111274.,4605225279296123.,-.468215172218205050435,-48,50, + 8412198194111677.,4605225279296177.,-.499934056685711741840,-48,50, + 8412198194153987.,4605225279301843.,-.499998591732091161032,-48,50, + 8425248473951205.,4606971569160033.,.499743891387204764922,-48,50, + 8425248473951347.,4606971569160052.,.486374860217791506826,-48,50, + 8425248473951377.,4606971569160056.,.497634924055198419703,-48,50, + 8425248473963994.,4606971569161743.,.499909104006385470549,-48,50, + 8425248473971099.,4606971569162694.,-.499999112328021246221,-48,50, + 5003071701573540.,4800679877718147.,.464744046372655294940,-47,50, + 5003071701573549.,4800679877718149.,.490921433745437729326,-47,50, + 5003071701573589.,4800679877718158.,.496154266513315526456,-47,50, + 5003071701573629.,4800679877718168.,-.498612900718878731063,-47,50, + 5003071701580123.,4800679877719630.,-.499062501821056493043,-47,50, + 5003071701593302.,4800679877722597.,-.499974933425254063615,-47,50, + 5003071701593684.,4800679877722682.,.499998619165225381079,-47,50, + 5120534392556723.,4826818455007683.,-.499998696541647779545,-47,50, + 5120534392616415.,4826818455020812.,.499986726424624770290,-47,50, + 5120534392625762.,4826818455022868.,.489229219899398239862,-47,50, + 5120534392625771.,4826818455022870.,.468891483986737006298,-47,50, + 5120534392625803.,4826818455022878.,-.492309354813864469651,-47,50, + 5120534392626003.,4826818455022922.,-.499814597318621048698,-47,50, + 5120534392626544.,4826818455023040.,.499883721697395585706,-47,50, + 5120534392629740.,4826818455023743.,.499949946163759925224,-47,50, + 5123050939692742.,4827371864859589.,-.499988468979236484456,-47,50, + 5123050939696026.,4827371864860311.,-.498328976184250104251,-47,50, + 5123050939696076.,4827371864860321.,.494388129366296110022,-47,50, + 5123050939696167.,4827371864860342.,-.498866738531985307378,-47,50, + 5123050939696449.,4827371864860404.,-.499942263230017209914,-47,50, + 5123050939713201.,4827371864864086.,.499996774112527800485,-47,50, + 5155547973509572.,4834493897084320.,.498919027262414229105,-47,50, + 5155547973509659.,4834493897084340.,-.494408944685206430260,-47,50, + 5155547973509668.,4834493897084341.,.471798506492607595575,-47,50, + 5155547973509691.,4834493897084346.,.496550881724783389219,-47,50, + 5155547973510341.,4834493897084489.,-.499577644331697875208,-47,50, + 5155547973510785.,4834493897084585.,.499989947090191046650,-47,50, + 5155547973559346.,4834493897095194.,.499993966537945870326,-47,50, + 5169587047118223.,4837556806802507.,-.499954085229706041226,-47,50, + 5169587047119118.,4837556806802701.,.497061698251920221993,-47,50, + 5169587047119127.,4837556806802703.,.457925544119161649308,-47,50, + 5169587047119219.,4837556806802724.,-.497688475904788601511,-47,50, + 5169587047119935.,4837556806802879.,.499924150853137549119,-47,50, + 5169587047143366.,4837556806807985.,-.499990026490419927482,-47,50, + 5169587047151747.,4837556806809810.,.499997987164282116056,-47,50, + 5889278157439986.,4984355200605035.,.499528242376564086609,-47,50, + 5889278157440488.,4984355200605131.,.498255833659051338591,-47,50, + 5889278157440535.,4984355200605140.,.486184512523725598695,-47,50, + 5889278157440556.,4984355200605145.,-.497932460749528248802,-47,50, + 5889278157441309.,4984355200605289.,-.499841073842812681773,-47,50, + 5889278157446031.,4984355200606192.,-.499857636050958111792,-47,50, + 5889278157483807.,4984355200613416.,-.499990159795800797974,-47,50, + 5889278157486955.,4984355200614017.,.499998794465981878198,-47,50, + 5946548684535912.,4995254249379818.,-.499997644273914652170,-47,50, + 5946548684548579.,4995254249382216.,.499957901157697336760,-47,50, + 5946548684548843.,4995254249382266.,.498851740528104918956,-47,50, + 5946548684548901.,4995254249382277.,.483457205237972651417,-47,50, + 5946548684557608.,4995254249383927.,-.499994843756998175991,-47,50, + 6341302679999459.,5067638486766365.,.499975880993701815127,-47,50, + 6341302679999825.,5067638486766430.,.499379305216954629379,-47,50, + 6341302679999921.,5067638486766448.,-.451596845807075833807,-47,50, + 6341302679999932.,5067638486766450.,-.498062863111929147318,-47,50, + 6341302680011188.,5067638486768448.,.499983427526876370983,-47,50, + 6341302680034646.,5067638486772614.,.499998509029254324672,-47,50, + 6606288997994424.,5113741318717852.,-.499999522614484943140,-47,50, + 6606288998012404.,5113741318720916.,.499973854174575159132,-47,50, + 6606288998055204.,5113741318728212.,.495461057892001153960,-47,50, + 6606288998055210.,5113741318728214.,-.481735836428549894436,-47,50, + 6606288998055468.,5113741318728257.,.498797707786875852205,-47,50, + 6606288998055556.,5113741318728272.,.499909924418100921318,-47,50, + 6984907017014014.,5176500755935308.,-.499979221865227579363,-47,50, + 6984907017015329.,5176500755935520.,-.491573152836066747673,-47,50, + 6984907017015335.,5176500755935520.,.475765582079564149466,-47,50, + 6984907017015391.,5176500755935530.,-.495739558707920896572,-47,50, + 6984907017015453.,5176500755935540.,-.499905964579863807338,-47,50, + 6984907017027455.,5176500755937475.,-.499989890042833707948,-47,50, + 6984907017040896.,5176500755939641.,.499999437607926059761,-47,50, + 6985563423467393.,5176606578859047.,-.499993669178271968173,-47,50, + 6985563423472095.,5176606578859804.,.499866313523098939792,-47,50, + 6985563423472492.,5176606578859868.,.499429140622752623261,-47,50, + 6985563423472728.,5176606578859907.,-.455490690120739396417,-47,50, + 6985563423472734.,5176606578859908.,-.488242889207455106995,-47,50, + 6985563423472796.,5176606578859918.,-.493348946436899449681,-47,50, + 6985563423472889.,5176606578859932.,.498991967718767639086,-47,50, + 7177764435657946.,5207172156584751.,-.499991466749214329276,-47,50, + 7177764435663077.,5207172156585556.,-.499593382301986808082,-47,50, + 7177764435666468.,5207172156586088.,-.487051986328602321851,-47,50, + 7177764435666487.,5207172156586090.,.493849897045355885031,-47,50, + 7177764435666691.,5207172156586122.,.499322750112620318295,-47,50, + 7177764435666742.,5207172156586131.,-.499309036620705757883,-47,50, + 7177764435675487.,5207172156587503.,-.499994821440835941831,-47,50, + 7177764435693028.,5207172156590255.,-.499998182860373754242,-47,50, + 7385014309474579.,5239226751339756.,.499998844438702584383,-47,50, + 7385014309483452.,5239226751341110.,-.499988959305211297490,-47,50, + 7385014309500011.,5239226751343635.,-.499740799808617059067,-47,50, + 7385014309500529.,5239226751343713.,.487524647688601610580,-47,50, + 7385014309500542.,5239226751343715.,.469830537297533875794,-47,50, + 7385014309500575.,5239226751343721.,-.498162204464422974580,-47,50, + 7385014309501198.,5239226751343816.,-.499964571671647351992,-47,50, + 7437989765694654.,5247275871692156.,.499997042155057275575,-47,50, + 7437989765705057.,5247275871693732.,-.499987411641549237569,-47,50, + 7437989765715460.,5247275871695307.,-.499971867641787895123,-47,50, + 7437989765718320.,5247275871695740.,-.499871468543278327254,-47,50, + 7437989765719357.,5247275871695897.,-.499485414785416768988,-47,50, + 7437989765719542.,5247275871695925.,-.490737661706518406744,-47,50, + 7437989765719555.,5247275871695926.,.477444612834134731647,-47,50, + 7437989765719608.,5247275871695935.,-.498427652500161163555,-47,50, + 7652073479075089.,5279230007700128.,.499991667359964032924,-47,50, + 7652073479255605.,5279230007726693.,.499947040495600221747,-47,50, + 7652073479272797.,5279230007729223.,.499942757622949380649,-47,50, + 7652073479273062.,5279230007729262.,.497732361175399690417,-47,50, + 7652073479273076.,5279230007729265.,-.442007055995451827469,-47,50, + 7652073479273096.,5279230007729268.,-.498777651953817679685,-47,50, + 7775918031497824.,5297309195802496.,.499988602703697480630,-47,50, + 7775918031515902.,5297309195805114.,.499950624462319148590,-47,50, + 7775918031516413.,5297309195805189.,-.498612236942754908962,-47,50, + 7775918031516461.,5297309195805195.,.452599079402506787192,-47,50, + 7775918031516482.,5297309195805198.,.493754030303545281917,-47,50, + 7775918031516558.,5297309195805209.,.499838614516758783596,-47,50, + 7775918031542363.,5297309195808947.,-.499994344046748903326,-47,50, + 7848203524024993.,5307728984286980.,.499992674413097233353,-47,50, + 7848203524027962.,5307728984287406.,.499957994854209382455,-47,50, + 7848203524033900.,5307728984288258.,.499888635252806791872,-47,50, + 7848203524035043.,5307728984288423.,-.499451088301228847477,-47,50, + 7848203524035154.,5307728984288438.,.427122219383851849380,-47,50, + 7848203524035189.,5307728984288443.,.449014703789010748397,-47,50, + 7848203524035266.,5307728984288454.,.497178169480281467913,-47,50, + 7848203524053770.,5307728984291109.,.499993350119118267466,-47,50, + 8229524690681513.,5361153929967440.,.499991633673058543885,-47,50, + 8229524690706149.,5361153929970811.,.499915783440924183702,-47,50, + 8229524690706434.,5361153929970850.,.497114126565974788165,-47,50, + 8229524690706646.,5361153929970880.,-.494443597145390084670,-47,50, + 8229524690706653.,5361153929970880.,.463382327071674741963,-47,50, + 8229524690707216.,5361153929970957.,.499953089098648561703,-47,50, + 8229524690708283.,5361153929971103.,.499990394737437749716,-47,50, + 8431287344791155.,5388428482255443.,-.499977159992711863825,-47,50, + 8431287344794734.,5388428482255921.,-.499749277354193265731,-47,50, + 8431287344794749.,5388428482255923.,-.496395430403075865217,-47,50, + 8431287344794779.,5388428482255927.,-.489687736500851759596,-47,50, + 8431287344794794.,5388428482255929.,-.486333889549745054489,-47,50, + 8431287344796224.,5388428482256120.,-.499933813560609874367,-47,50, + 8431287344812921.,5388428482258350.,-.499988313307730220234,-47,50, + 8431287344834687.,5388428482261257.,-.499999474129478475704,-47,50, + 8597292967839829.,5410384179940546.,.497923234470363940017,-47,50, + 8597292967839852.,5410384179940550.,-.489597329683208225934,-47,50, + 8597292967839913.,5410384179940558.,-.499977956351416925276,-47,50, + 8597292967945687.,5410384179954412.,-.499984684321401003399,-47,50, + 4519369790809197.,5466767829388068.,.499997506497500280029,-46,50, + 4519369790811573.,5466767829388660.,.499024229716580263341,-46,50, + 4519369790811846.,5466767829388729.,-.480885578620358991880,-46,50, + 4519369790811854.,5466767829388731.,-.487622862381210402991,-46,50, + 4519369790811870.,5466767829388734.,.498902570097076187049,-46,50, + 4989098822997298.,5578112143622654.,-.487083625500387086686,-46,50, + 4989098822997307.,5578112143622656.,-.455833575081420577456,-46,50, + 4989098822997360.,5578112143622668.,-.494027722614247696466,-46,50, + 4989098822997422.,5578112143622681.,.499028180271717766132,-46,50, + 4989098822997710.,5578112143622746.,.499029793675212393609,-46,50, + 4989098823038894.,5578112143632041.,.499260471734804374665,-46,50, + 4989098823165614.,5578112143660641.,.499969769029243959978,-46,50, + 4989098823170798.,5578112143661811.,.499998770267177324257,-46,50, + 5097491090201989.,5602313667947422.,.499996679598545609350,-46,50, + 5097491090220482.,5602313667951508.,-.499988463223479603865,-46,50, + 5097491090223076.,5602313667952081.,-.499932305888378642901,-46,50, + 5097491090223298.,5602313667952130.,-.461376998682037241616,-46,50, + 5097491090223316.,5602313667952134.,-.485277919719454530942,-46,50, + 5097491090223325.,5602313667952136.,-.497228380238168441683,-46,50, + 5097491090223411.,5602313667952154.,.499689441471721580561,-46,50, + 5389599355914345.,5665057368176520.,.499998814299229818176,-46,50, + 5389599355917753.,5665057368177232.,.499856749108922407531,-46,50, + 5389599355918179.,5665057368177321.,.499838990928472619390,-46,50, + 5389599355918203.,5665057368177327.,-.486077502490353629084,-46,50, + 5389599355918208.,5665057368177328.,-.441476771952611908355,-46,50, + 5558376291134075.,5699777339893893.,.499992240114292595653,-46,50, + 5558376291143627.,5699777339895828.,.499944156823687053894,-46,50, + 5558376291145646.,5699777339896237.,.499619922712423895269,-46,50, + 5558376291145957.,5699777339896301.,-.499439431836990264668,-46,50, + 5558376291146036.,5699777339896317.,-.495985055662001046916,-46,50, + 5558376291146056.,5699777339896321.,-.444477618655710749071,-46,50, + 5558376291146811.,5699777339896473.,.499928128321083826769,-46,50, + 5558376291195736.,5699777339906384.,.499995859968997560395,-46,50, + 5626057994121679.,5713405170410547.,-.499997281649197492751,-46,50, + 5626057994166433.,5713405170419503.,.475982506434709954064,-46,50, + 5626057994166438.,5713405170419504.,.476672498363079374511,-46,50, + 5626057994166548.,5713405170419526.,.491852320786981587391,-46,50, + 5626057994166608.,5713405170419539.,-.499867776072889567390,-46,50, + 5626057994170955.,5713405170420409.,-.499988793911351908759,-46,50, + 5676094739315912.,5723375147734755.,.499996438898796472835,-46,50, + 5676094739327839.,5723375147737122.,-.499984002270660494577,-46,50, + 5676094739339766.,5723375147739488.,-.499964448412483386906,-46,50, + 5676094739340996.,5723375147739731.,.499366820797895486022,-46,50, + 5676094739341188.,5723375147739770.,-.412932688403304859489,-46,50, + 5676094739341228.,5723375147739778.,-.477995086153717119435,-46,50, + 5676094739341243.,5723375147739780.,.497606514689863864435,-46,50, + 5676094739341364.,5723375147739805.,-.499207238505537136347,-46,50, + 5745910122809843.,5737140170913361.,-.499998104912880409493,-46,50, + 5745910122819503.,5737140170915254.,-.499832555524737179117,-46,50, + 5745910122819702.,5737140170915292.,.496754705759425302491,-46,50, + 5745910122819753.,5737140170915302.,.490854958651128890182,-46,50, + 5745910122819850.,5737140170915321.,.499241714150790873312,-46,50, + 5745910122820692.,5737140170915486.,.499877261876640516025,-46,50, + 5745910122827132.,5737140170916748.,.499987626105895110842,-46,50, + 5761236311978061.,5740139534134699.,-.499998191441150895277,-46,50, + 5761236311988064.,5740139534136653.,.499996079776712193574,-46,50, + 5761236311994250.,5740139534137863.,-.499707554656988355748,-46,50, + 5761236311994470.,5740139534137905.,.497393189002353758739,-46,50, + 5761236311994501.,5740139534137912.,-.443924433482143669698,-46,50, + 5761236311994511.,5740139534137914.,-.489510763315859472938,-46,50, + 5761236311994557.,5740139534137923.,-.499207880550995867846,-46,50, + 5761236311996005.,5740139534138205.,.499891559488881178002,-46,50, + 5761236311998067.,5740139534138608.,.499990347599681932958,-46,50, + 6010785129971091.,5787884807014969.,.499998416308924292902,-46,50, + 6010785129990501.,5787884807018606.,-.499968021597272150852,-46,50, + 6010785130045496.,5787884807028908.,-.499872992768981601169,-46,50, + 6010785130047295.,5787884807029244.,.499820995217062005480,-46,50, + 6010785130047311.,5787884807029247.,.497038951752338553661,-46,50, + 6010785130047391.,5787884807029262.,.483128734428601604558,-46,50, + 6029425626628170.,5791371254978919.,.499993594033160698427,-46,50, + 6029425626631158.,5791371254979477.,.499755231025660933828,-46,50, + 6029425626633150.,5791371254979849.,.499596322200346987831,-46,50, + 6029425626633166.,5791371254979852.,.487546853052658099744,-46,50, + 6029425626633182.,5791371254979855.,.475497383904961281594,-46,50, + 6148561900150141.,5813402605955546.,-.499982024541834322320,-46,50, + 6148561900152953.,5813402605956060.,.455865661223909175943,-46,50, + 6148561900152975.,5813402605956064.,.484680970286581694622,-46,50, + 6148561900152986.,5813402605956066.,.499088624817912547482,-46,50, + 6148561900153472.,5813402605956155.,.499281361380387274827,-46,50, + 6148561900154930.,5813402605956422.,.499859571025596941697,-46,50, + 6148561900176030.,5813402605960286.,.499996891449476897493,-46,50, + 6155847187529103.,5814735955958743.,.499998623974177994451,-46,50, + 6155847187543159.,5814735955961315.,-.499991512569455319455,-46,50, + 6155847187552967.,5814735955963108.,.493185542915481585437,-46,50, + 6155847187552978.,5814735955963111.,-.494791114140534547845,-46,50, + 6155847187553224.,5814735955963156.,-.498632717394198376439,-46,50, + 6155847187553306.,5814735955963171.,-.499913251812485957467,-46,50, + 6155847187557215.,5814735955963886.,-.499981654984368067610,-46,50, + 6689418048874930.,5908331445360167.,.499996160923287789441,-46,50, + 6689418048923219.,5908331445368295.,.499863070877195183803,-46,50, + 6689418048923320.,5908331445368313.,-.499826577801887086993,-46,50, + 6689418048923332.,5908331445368315.,-.479987724179616893840,-46,50, + 6689418048923362.,5908331445368320.,-.430390590123957264844,-46,50, + 6689418048926445.,5908331445368838.,.499874886208572069618,-46,50, + 6689418048958705.,5908331445374268.,.499993025118224775554,-46,50, + 6725394088048580.,5914370701845378.,-.499987323918430332847,-46,50, + 6725394088093748.,5914370701852940.,-.499862143651349593186,-46,50, + 6725394088094411.,5914370701853050.,.499209831584044842661,-46,50, + 6725394088095247.,5914370701853190.,.461840557506287997444,-46,50, + 6725394088095265.,5914370701853193.,.475390022896766951281,-46,50, + 6725394088095295.,5914370701853198.,.497972465214213948972,-46,50, + 6725394088097069.,5914370701853496.,-.499985779120591427503,-46,50, + 6836428713291095.,5932808252962972.,.499995583724850488252,-46,50, + 6836428713304107.,5932808252965116.,-.424085848423843888998,-46,50, + 6836428713304137.,5932808252965121.,-.483086958401233467846,-46,50, + 6836428713304143.,5932808252965122.,-.494887180396713985776,-46,50, + 6836428713304313.,5932808252965150.,-.495893470269022441122,-46,50, + 6836428713304993.,5932808252965262.,-.499918629765219449699,-46,50, + 6836428713308976.,5932808252965918.,-.499965998038013863458,-46,50, + 6555196675018131.,9007199254740953.,-.000253578928894812539,-42,50, + 6555196675018294.,9007199254740981.,-.003881354119605271715,-42,50, + 6555196675018329.,9007199254740987.,.007609614397636049565,-42,50, + 6555196675018352.,9007199254740991.,-.041982034862479987237,-42,50, + 6555196675018358.,4503599627370496.,-.005720362986908442538,-42,49, + 6555196675018359.,4503599627370496.,.080158079420480103455,-42,49, + 6555196675018364.,4503599627370497.,-.490449708542577363088,-42,49, + 6555196675021438.,4503599627370760.,.499882251707693563001,-42,49, + 6555196675057815.,4503599627373884.,.499981695145168236911,-42,49, + 6555196675064429.,4503599627374452.,.499999773907603210283,-42,49 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/asin.c b/src/regress/lib/libm/fpaccuracy/asin.c new file mode 100644 index 000000000..36f6efd66 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/asin.c @@ -0,0 +1,1376 @@ +/* $OpenBSD: asin.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:25:33. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1344 +#define F asin +#define Fs "asin" +#define Fn fpaccuracy_asin + /* 4 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -9007199254740990.,-7074237657122175.,.348485611230200058143,-53,52, + -8871213671082484.,-6290674184213709.,-.499979925393927768645,-53,52, + -8871213671079224.,-6290674184204293.,-.499804080921336081697,-53,52, + -8871213671077800.,-6290674184200180.,-.498500311613108670811,-53,52, + -8871213671077773.,-6290674184200103.,.486777217514236698167,-53,52, + -8871213671077594.,-6290674184199585.,-.499716200687674834669,-53,52, + -8871213671060273.,-6290674184149557.,.499988924479756798660,-53,52, + -8871213671037247.,-6290674184083050.,.499996165092766458194,-53,52, + -8826946188868155.,-6171735796083676.,.499990775225246088518,-53,52, + -8826946188863046.,-6171735796070842.,-.499987157773934229376,-53,52, + -8826946188860344.,-6171735796064056.,.496696978688779356453,-53,52, + -8826946188860309.,-6171735796063968.,.411161798778926003707,-53,52, + -8826946188860301.,-6171735796063947.,-.494103385201655353057,-53,52, + -8826946188860217.,-6171735796063736.,-.499387817024410072280,-53,52, + -8826946188857937.,-6171735796058009.,-.499965270800930313290,-53,52, + -8826946188821414.,-6171735795966270.,.499990217208624786449,-53,52, + -8422041051771986.,-5441951827495990.,.499997167885766299776,-53,52, + -8422041051758627.,-5441951827477150.,-.499976913355492825955,-53,52, + -8422041051758059.,-5441951827476350.,.499500192739514395832,-53,52, + -8422041051758020.,-5441951827476295.,.497703726418873575610,-53,52, + -8422041051757998.,-5441951827476263.,-.477668639198679566627,-53,52, + -8422041051757981.,-5441951827476240.,.495907260096461510095,-53,52, + -8245673680832057.,-5209015742005630.,-.499998562313786938629,-53,52, + -8245673680827178.,-5209015741999568.,-.476236020015508126977,-53,52, + -8245673680827174.,-5209015741999564.,.493654336642011517389,-53,52, + -8245673680827141.,-5209015741999523.,.495249779066072533252,-53,52, + -8245673680827042.,-5209015741999399.,-.499963893666839442452,-53,52, + -8242701861727514.,-5205326774763965.,.499984904199086524181,-53,52, + -8242701861721593.,-5205326774756622.,.499952449672845782927,-53,52, + -8242701861719865.,-5205326774754478.,-.499888136672905647744,-53,52, + -8242701861718137.,-5205326774752335.,-.499728725333240907345,-53,52, + -8242701861718112.,-5205326774752304.,-.495675493125983534689,-53,52, + -8242701861718037.,-5205326774752211.,-.483515796507118227124,-53,52, + -8242701861718033.,-5205326774752207.,.477132720645765449001,-53,52, + -8242701861639436.,-5205326774654733.,-.499994007414854180677,-53,52, + -8178102513339874.,-5126764432665475.,-.499990528625892824514,-53,52, + -8178102513303878.,-5126764432622528.,-.499988135099340674176,-53,52, + -8178102513293552.,-5126764432610208.,-.499932050529761927932,-53,52, + -8178102513290533.,-5126764432606607.,.483427350677752623251,-53,52, + -8178102513290528.,-5126764432606601.,.448951298008129490936,-53,52, + -8178102513290507.,-5126764432606575.,-.495848123204474617351,-53,52, + -8178102513290419.,-5126764432606471.,.497373349806090494899,-53,52, + -8178102513289259.,-5126764432605087.,.498929129904211980285,-53,52, + -8178102513288534.,-5126764432604222.,.499901491997600103326,-53,52, + -8108579655010907.,-5045404141498908.,.499989565134233554001,-53,52, + -8108579655010725.,-5045404141498699.,.499315385613028604294,-53,52, + -8108579655010705.,-5045404141498676.,.466274266983101846337,-53,52, + -8108579655010698.,-5045404141498667.,-.495290124537429729684,-53,52, + -8108579655006458.,-5045404141493799.,.499992720432598981740,-53,52, + -8108579654996077.,-5045404141481877.,-.499999963805638500980,-53,52, + -8003544517582603.,-4927940938050827.,.499994792206027402788,-53,52, + -8003544517555065.,-4927940938020811.,-.499897777683524035258,-53,52, + -8003544517554498.,-4927940938020193.,-.499132987184532191229,-53,52, + -8003544517553197.,-4927940938018775.,-.476214129887968318860,-53,52, + -8003544517553186.,-4927940938018763.,-.486781303273467649597,-53,52, + -8003544517553175.,-4927940938018751.,-.497348476659028805607,-53,52, + -8003544517551185.,-4927940938016582.,-.499955299246033067776,-53,52, + -8003544517547305.,-4927940938012354.,.499987171499371955446,-53,52, + -7958411719137123.,-4879257251241201.,.499996236319770415570,-53,52, + -7958411719107872.,-4879257251209971.,.499804648113886919435,-53,52, + -7958411719107665.,-4879257251209749.,-.495444734859221515211,-53,52, + -7958411719097762.,-4879257251199177.,.499943455812150650886,-53,52, + -7958411719094392.,-4879257251195579.,.499989714198384697624,-53,52, + -7881394195508700.,-4798394306341264.,.499998263488526570163,-53,52, + -7881394195508030.,-4798394306340571.,-.499772085818098267197,-53,52, + -7881394195507969.,-4798394306340508.,-.496766102704814007824,-53,52, + -7881394195507968.,-4798394306340507.,-.463929939047232455996,-53,52, + -7834633035953178.,-4750556021990349.,.499995173996045764780,-53,52, + -7834633035949680.,-4750556021986804.,.499847274105563938106,-53,52, + -7834633035949531.,-4750556021986652.,-.498157882402669958891,-53,52, + -7834633035949464.,-4750556021986585.,.402067986815550475927,-53,52, + -7834633035949457.,-4750556021986578.,.496121435838245492895,-53,52, + -7834633035949159.,-4750556021986275.,-.499888877213866724464,-53,52, + -7740586541113897.,-4656953987908348.,-.499999628466807256688,-53,52, + -7740586541070434.,-4656953987865849.,-.486019649722278290796,-53,52, + -7740586541070433.,-4656953987865849.,.491800886817807023524,-53,52, + -7740586541070388.,-4656953987865805.,.493725031121276874022,-53,52, + -7740586541070253.,-4656953987865673.,.499497464027351236257,-53,52, + -7740586541067638.,-4656953987863115.,-.499799485037925613985,-53,52, + -7740586541065564.,-4656953987861088.,.499993296262908711397,-53,52, + -7724029849710462.,-4640813091900075.,.499998966878555825604,-53,52, + -7724029849674462.,-4640813091865084.,.499992955496506345235,-53,52, + -7724029849673962.,-4640813091864598.,.486103979925258708900,-53,52, + -7724029849673961.,-4640813091864597.,.458076201974028615730,-53,52, + -7724029849673927.,-4640813091864563.,-.494868248368002618936,-53,52, + -7724029849673677.,-4640813091864321.,.498187263810530111627,-53,52, + -7724029849673463.,-4640813091864112.,-.499757217782007389729,-53,52, + -7552125243348493.,-8957126167773042.,.499991481550398648960,-53,53, + -7552125243331970.,-8957126167742723.,.496478303225910717814,-53,53, + -7552125243331964.,-8957126167742711.,-.493778979322123379433,-53,53, + -7552125243331958.,-8957126167742700.,-.484036261870178181426,-53,53, + -7552125243331764.,-8957126167742345.,.497644935731558996668,-53,53, + -7552125243331352.,-8957126167741589.,.499978200669636671534,-53,53, + -7552125243285061.,-8957126167656647.,.499999829575955427638,-53,53, + -7546489395531117.,-8946793744226609.,.499992134933326623763,-53,53, + -7546489395523861.,-8946793744213317.,-.499558503428026342337,-53,53, + -7546489395523754.,-8946793744213122.,.495073260637758336537,-53,53, + -7546489395523742.,-8946793744213100.,.475779626700802650362,-53,53, + -7546489395523712.,-8946793744213045.,.427545541858053281810,-53,53, + -7546489395523653.,-8946793744212937.,.499351841665811933193,-53,53, + -7546489395521995.,-8946793744209899.,-.499718581499361699608,-53,53, + -7546489395519196.,-8946793744204772.,-.499958702338618566630,-53,53, + -7546489395468713.,-8946793744112302.,.499996934552153855849,-53,53, + -7532060552282224.,-8920423268237491.,.499987487189783463241,-53,53, + -7532060552271162.,-8920423268217318.,-.499947894301611737077,-53,53, + -7532060552271145.,-8920423268217287.,-.499766995917215323266,-53,53, + -7532060552270193.,-8920423268215551.,-.489636686650679653321,-53,53, + -7532060552269105.,-8920423268213567.,-.478059190970821753077,-53,53, + -7532060552269071.,-8920423268213505.,-.477697394241564158122,-53,53, + -7532060552249055.,-8920423268177005.,-.499999762123089044170,-53,53, + -7165093878940034.,-8284892919827643.,.482238238456216788750,-53,53, + -7165093878939974.,-8284892919827544.,.496552327908316558212,-53,53, + -7165093878939954.,-8284892919827510.,-.498676308941301039689,-53,53, + -7165093878939751.,-8284892919827176.,.499753027026096678677,-53,53, + -7165093878938493.,-8284892919825100.,.499871768764737603979,-53,53, + -7165093878937235.,-8284892919823024.,.499990509875256788579,-53,53, + -7165093878903492.,-8284892919767340.,.499995586540461802254,-53,53, + -7109328173647816.,-8193473651596057.,.499867101595140678661,-53,53, + -7109328173647746.,-8193473651595942.,-.496492323274851791485,-53,53, + -7109328173647711.,-8193473651595885.,-.494672035710543592663,-53,53, + -7109328173647264.,-8193473651595157.,-.499995791715729221976,-53,53, + -7017962821201717.,-8046214704520819.,-.499999946229789163652,-53,53, + -7017962821155652.,-8046214704447332.,.499978508574360763055,-53,53, + -7017962821146482.,-8046214704432702.,-.498397735139845418890,-53,53, + -7017962821146398.,-8046214704432568.,-.492275990943960778389,-53,53, + -7017962821146356.,-8046214704432501.,-.489215118846947761311,-53,53, + -7017962821146351.,-8046214704432494.,.487339746878845854432,-53,53, + -7017962821146183.,-8046214704432226.,.499583235260407551377,-53,53, + -7017962821144221.,-8046214704429096.,.499712545268352343267,-53,53, + -7017962821140297.,-8046214704422836.,.499971161228345642500,-53,53, + -7006352135985348.,-8027715650689935.,-.499947944004575097854,-53,53, + -7006352135983359.,-8027715650686770.,-.499533120640275429038,-53,53, + -7006352135983019.,-8027715650686229.,-.473821185160214248563,-53,53, + -7006352135983014.,-8027715650686222.,.482439284478898300312,-53,53, + -7006352135982970.,-8027715650686152.,.497531417302713629480,-53,53, + -7006352135982833.,-8027715650685934.,.499068285408915358070,-53,53, + -7006352135963880.,-8027715650655774.,-.499995564277663697247,-53,53, + -6910250106408260.,-7876359985824046.,-.499986780678613734004,-53,53, + -6910250106360645.,-7876359985749812.,-.498544915715264951922,-53,53, + -6910250106360620.,-7876359985749774.,.477618814988758198556,-53,53, + -6910250106360611.,-7876359985749759.,-.490962241957842850890,-53,53, + -6910250106360518.,-7876359985749614.,-.499633163740917920650,-53,53, + -6910250106359595.,-7876359985748175.,-.499668226319982562456,-53,53, + -6910250106351288.,-7876359985735224.,-.499983801905486756328,-53,53, + -6848882081671542.,-7781282807288879.,.499995583245589058813,-53,53, + -6848882081659676.,-7781282807270608.,-.499952826635518042902,-53,53, + -6848882081658555.,-7781282807268883.,.496175422640393536849,-53,53, + -6848882081658366.,-7781282807268592.,.498198829482843074355,-53,53, + -6848882081658177.,-7781282807268300.,-.499777763685714322349,-53,53, + -6848882081631510.,-7781282807227241.,-.499999091092874465634,-53,53, + -6828286958462474.,-7749637651715226.,-.499996185432182258653,-53,53, + -6828286958433533.,-7749637651670848.,-.499844461311900292503,-53,53, + -6828286958433518.,-7749637651670825.,-.498911450221939619829,-53,53, + -6828286958433158.,-7749637651670273.,-.476519184083366712119,-53,53, + -6828286958433008.,-7749637651670043.,-.467189073203901834570,-53,53, + -6828286958431392.,-7749637651667566.,.499993987571190836696,-53,53, + -6751453641069080.,-7632700874791953.,.499995608924535424756,-53,53, + -6751453641065350.,-7632700874786317.,-.499018668602684288732,-53,53, + -6751453641065303.,-7632700874786246.,-.494984800275277717653,-53,53, + -6751453641065258.,-7632700874786179.,.487600818335475057950,-53,53, + -6751453641065256.,-7632700874786175.,-.490950931948504970982,-53,53, + -6751453641065117.,-7632700874785966.,.499702423312071265273,-53,53, + -6751453641064371.,-7632700874784839.,.499899567277713622920,-53,53, + -6751453641058916.,-7632700874776597.,-.499999337933641512448,-53,53, + -6734444337929832.,-7607045848555118.,-.499998715854364115680,-53,53, + -6734444337909060.,-7607045848523839.,.499935890962677289908,-53,53, + -6734444337907783.,-7607045848521915.,-.499875566286851535297,-53,53, + -6734444337906506.,-7607045848519992.,-.499687023998622261443,-53,53, + -6734444337906336.,-7607045848519737.,.498771904853748825631,-53,53, + -6734444337906251.,-7607045848519609.,.498001369276862401600,-53,53, + -6734444337906249.,-7607045848519605.,-.490252055089677233861,-53,53, + -6734444337906225.,-7607045848519569.,-.349293147488241298041,-53,53, + -6680661016289217.,-7526459786056144.,-.373998698491861948932,-53,53, + -6680661016289203.,-7526459786056124.,.498808048834598498723,-53,53, + -6680661016289148.,-7526459786056042.,.499120270473746721522,-53,53, + -6680661016288983.,-7526459786055795.,-.499943064613761685880,-53,53, + -6680661016285791.,-7526459786051037.,.499995324231229893303,-53,53, + -6680661016269776.,-7526459786027160.,.499999448096959172820,-53,53, + -6638553928828345.,-7463921285024914.,.499970472613276608362,-53,53, + -6638553928828051.,-7463921285024479.,.499558236429552994960,-53,53, + -6638553928827463.,-7463921285023609.,.498733763993377657112,-53,53, + -6638553928827438.,-7463921285023572.,.488494628258516170962,-53,53, + -6638553928827417.,-7463921285023540.,-.440106245758895493808,-53,53, + -6638553928813793.,-7463921285003383.,.499974319452136748217,-53,53, + -6638553928726481.,-7463921284874197.,.499996221839915428067,-53,53, + -6595469068475170.,-7400416935732704.,.499998695190644497034,-53,53, + -6595469068453425.,-7400416935700774.,-.495041908196942767399,-53,53, + -6595469068453408.,-7400416935700750.,.466700299607482079637,-53,53, + -6595469068453393.,-7400416935700728.,.491766953552501060192,-53,53, + -6595469068453188.,-7400416935700426.,-.498988775871376380525,-53,53, + -6595469068453109.,-7400416935700311.,.499695601567266691932,-53,53, + -6595469068452351.,-7400416935699198.,.499730514124757878423,-53,53, + -6595469068447045.,-7400416935691407.,.499974897886813275653,-53,53, + -6595469068446287.,-7400416935690293.,-.499990190738662083057,-53,53, + -6471417749987133.,-7220194178264494.,-.499993808567226769665,-53,53, + -6471417749984613.,-7220194178260872.,.499879261097569288984,-53,53, + -6471417749984300.,-7220194178260422.,.499466670042109166363,-53,53, + -6471417749983987.,-7220194178259972.,.499054078963426386907,-53,53, + -6471417749983955.,-7220194178259925.,-.494598326515574886810,-53,53, + -6471417749983859.,-7220194178259787.,-.475555542954035087057,-53,53, + -6466907645398389.,-7213712416762457.,-.499997705074268157420,-53,53, + -6466907645379405.,-7213712416735185.,.499980990734587022495,-53,53, + -6466907645360421.,-7213712416707912.,.499959601365306655487,-53,53, + -6466907645357178.,-7213712416703253.,.493792854239565431975,-53,53, + -6466907645356894.,-7213712416702845.,.496953089648881284045,-53,53, + -6466907645356610.,-7213712416702436.,-.499886674960865780987,-53,53, + -6320301642438953.,-7005555987832141.,.499998319030246004145,-53,53, + -6320301642428424.,-7005555987817363.,.499993064308061577149,-53,53, + -6320301642428216.,-7005555987817071.,.438828557183481678033,-53,53, + -6320301642428201.,-7005555987817050.,.492109962919329603398,-53,53, + -6320301642428030.,-7005555987816810.,.499517988304570460754,-53,53, + -6277581004383528.,-6945790189588925.,.499990744733956775502,-53,53, + -6277581004371195.,-6945790189571726.,-.499980536771742862303,-53,53, + -6277581004370110.,-6945790189570213.,-.499896928506927436906,-53,53, + -6277581004369025.,-6945790189568700.,-.499813320489113689116,-53,53, + -6277581004369020.,-6945790189568694.,.472537295215465775311,-53,53, + -6277581004347614.,-6945790189538844.,.499993201579026879761,-53,53, + -6150458818232120.,-6770174781797606.,-.499998944657524654309,-53,53, + -6150458818222993.,-6770174781785114.,.489549031693940094680,-53,53, + -6150458818222974.,-6770174781785088.,.496649000073089719299,-53,53, + -6150458818221846.,-6770174781783544.,.497110280562094996922,-53,53, + -6150458818215219.,-6770174781774473.,.499820298439124088632,-53,53, + -6150458818214796.,-6770174781773894.,.499993278013719161353,-53,53, + -6134432454533195.,-6748262869245244.,-.499999899165425123548,-53,53, + -6134432454523296.,-6748262869231725.,-.499983314785418615060,-53,53, + -6134432454506238.,-6748262869208430.,.499843178598724616788,-53,53, + -6134432454505661.,-6748262869207641.,-.495003821637660462387,-53,53, + -6134432454505620.,-6748262869207586.,.498429927043275947952,-53,53, + -6134432454504868.,-6748262869206559.,.499946488158146103309,-53,53, + -6056160701829364.,-6641948749018324.,-.499947851423998374625,-53,53, + -6056160701828475.,-6641948749017123.,-.499519096427461596724,-53,53, + -6056160701828455.,-6641948749017096.,-.480386840973644494000,-53,53, + -6056160701810809.,-6641948748993257.,-.499997882758569554353,-53,53, + -6031878638313344.,-6609198744424641.,.499035779008490141348,-53,53, + -6031878638313243.,-6609198744424505.,.497390323925789712982,-53,53, + -6031878638312813.,-6609198744423925.,-.499714088823261378133,-53,53, + -6031878638312181.,-6609198744423075.,.499890588191637288248,-53,53, + -6031878638309754.,-6609198744419807.,.499954750674737417202,-53,53, + -6031878638307327.,-6609198744416538.,-.499981087911339059142,-53,53, + -6031878638276939.,-6609198744375621.,.499998111676568371468,-53,53, + -5840746347522037.,-6355035228908541.,.499998756883905141541,-53,53, + -5840746347509659.,-6355035228892280.,-.499750405027672913373,-53,53, + -5840746347509219.,-6355035228891703.,.493472277397808672488,-53,53, + -5840746347509203.,-6355035228891681.,-.488592352332769139920,-53,53, + -5840746347509101.,-6355035228891547.,-.499254366866184783815,-53,53, + -5840746347508154.,-6355035228890304.,.499795360865065175442,-53,53, + -5840746347499902.,-6355035228879464.,.499962570339815252565,-53,53, + -5840746347497839.,-6355035228876753.,-.499995629027848058627,-53,53, + -5587044502268588.,-6026788774027691.,.499999925019546630498,-53,53, + -5587044502247042.,-6026788774000222.,.493671317899363903497,-53,53, + -5587044502246991.,-6026788774000156.,-.486432773841860384500,-53,53, + -5587044502246980.,-6026788774000142.,-.462533656374329970835,-53,53, + -5587044502246871.,-6026788774000003.,-.498442401469734599160,-53,53, + -5587044502246369.,-6026788773999363.,-.498682677068620693773,-53,53, + -5587044502243859.,-6026788773996163.,-.499884055602474297198,-53,53, + -5587044502243608.,-6026788773995844.,.499995806494693222176,-53,53, + -5574097035245470.,-6010293983928970.,-.499997120318042375176,-53,53, + -5574097035224057.,-6010293983901710.,-.499936554719949177700,-53,53, + -5574097035223548.,-6010293983901063.,.486801913077856782763,-53,53, + -5574097035223537.,-6010293983901049.,.490444591163455027122,-53,53, + -5574097035223515.,-6010293983901021.,.497729947334600058586,-53,53, + -5574097035223504.,-6010293983901006.,-.498627374579853154309,-53,53, + -5574097035223233.,-6010293983900661.,-.499794123568617110505,-53,53, + -5574097035210331.,-6010293983884236.,-.499991166806865095608,-53,53, + -5301224375154064.,-5667953535309667.,-.499756981428923744147,-53,53, + -5301224375153988.,-5667953535309573.,-.493614483685483803841,-53,53, + -5301224375153929.,-5667953535309501.,.484838244825378416015,-53,53, + -5301224375153739.,-5667953535309265.,-.499805510820532801434,-53,53, + -5301224375152764.,-5667953535308059.,-.499951099073728654267,-53,53, + -5301224375152439.,-5667953535307657.,-.499999628517583498868,-53,53, + -5292230209323057.,-5656833439748528.,.499996527160575621764,-53,53, + -5292230209317277.,-5656833439741384.,-.499939572674771230974,-53,53, + -5292230209316505.,-5656833439740430.,-.452180173171763429883,-53,53, + -5292230209316501.,-5656833439740426.,.491072466203708745560,-53,53, + -5292230209316484.,-5656833439740405.,.499896183549443514829,-53,53, + -5286632173731411.,-5649917241059320.,.499982092371107948251,-53,53, + -5286632173730739.,-5649917241058489.,-.496093808694407099032,-53,53, + -5286632173730735.,-5649917241058485.,.444405739513370263485,-53,53, + -5286632173730722.,-5649917241058468.,-.498970728811366875666,-53,53, + -5286632173730369.,-5649917241058032.,-.499885599483314586945,-53,53, + -5286632173723764.,-5649917241049875.,.499993375632388477940,-53,53, + -5286632173716117.,-5649917241040429.,-.499995348286164151134,-53,53, + -5268565944193869.,-5627623169913494.,.496637740110101646375,-53,53, + -5268565944193856.,-5627623169913477.,-.475448802689281884132,-53,53, + -5268565944193796.,-5627623169913404.,.499536384390219899361,-53,53, + -5268565944191718.,-5627623169910842.,.499856696639941695941,-53,53, + -5268565944190679.,-5627623169909560.,-.499983147432274496939,-53,53, + -5268565944172050.,-5627623169886592.,-.499999007285220076922,-53,53, + -5158589873381438.,-5492754987861043.,.499997378543950276113,-53,53, + -5158589873359085.,-5492754987833775.,.499972266106499768371,-53,53, + -5158589873357807.,-5492754987832215.,-.492110771188511761892,-53,53, + -5158589873357798.,-5492754987832205.,.486818221505925300701,-53,53, + -5158589873357757.,-5492754987832154.,-.498060811775090836973,-53,53, + -5158589873357234.,-5492754987831517.,.499701763671996654972,-53,53, + -5158589873340766.,-5492754987811428.,.499996379383168000428,-53,53, + -5105083357385978.,-5427647238910076.,-.499997245018636590647,-53,53, + -5105083357385426.,-5427647238909406.,-.491773586084369178810,-53,53, + -5105083357385412.,-5427647238909389.,-.498811391836482131094,-53,53, + -5105083357385267.,-5427647238909214.,.499725620015336595956,-53,53, + -4827510902877144.,-5094886945641878.,.499977903594698205287,-53,53, + -4827510902875751.,-5094886945640228.,.499823986738275840760,-53,53, + -4827510902874358.,-5094886945638578.,.499670069689967022103,-53,53, + -4827510902874293.,-5094886945638501.,.491766261639236669688,-53,53, + -4827510902874282.,-5094886945638487.,-.478802075107851340377,-53,53, + -4827510902874255.,-5094886945638455.,-.497469810759845367176,-53,53, + -4827510902857913.,-5094886945619098.,-.499993380463451652598,-53,53, + -4827510902825397.,-5094886945580583.,-.499996909783162754008,-53,53, + -4706747747173215.,-4952551754696602.,.499992439897972883962,-53,53, + -4706747747160489.,-4952551754681676.,.499682404651706324478,-53,53, + -4706747747160356.,-4952551754681520.,.491978394302312646750,-53,53, + -4706747747160350.,-4952551754681512.,-.470775170074390762692,-53,53, + -4706747747160327.,-4952551754681485.,-.494663833518451715929,-53,53, + -4706747747159066.,-4952551754680007.,.499962053233558387693,-53,53, + -4706747747141024.,-4952551754658846.,.499993955078160825157,-53,53, + -4510984822818110.,-4724688523740380.,.499999103644906572686,-53,53, + -4510984822811228.,-4724688523732429.,.499988183758143424195,-53,53, + -4510984822797464.,-4724688523716527.,.499966331801352692817,-53,53, + -4510984822793524.,-4724688523711974.,-.488996625033263073793,-53,53, + -4510984822793479.,-4724688523711922.,-.499022851705306009130,-53,53, + -4510984822793376.,-4724688523711803.,-.499749548310857838169,-53,53, + -4510984822791979.,-4724688523710189.,-.499897074206095183719,-53,53, + -4508444030664135.,-4721753340020004.,.499999618720742006050,-53,53, + -4508444030631095.,-4721753339981839.,.499965579912189516421,-53,53, + -4508444030598055.,-4721753339943674.,.499931447605511843443,-53,53, + -4508444030594722.,-4721753339939824.,.498263350314016471347,-53,53, + -4508444030594664.,-4721753339939757.,.494933992476938939123,-53,53, + -4508444030594625.,-4721753339939711.,-.455580575724016579205,-53,53, + -4508444030594606.,-4721753339939690.,.491604634639573283312,-53,53, + -4508444030593871.,-4721753339938840.,-.498862227634762342060,-53,53, + -4508444030591750.,-4721753339936390.,-.499923744742972411525,-53,53, + -4504722288288794.,-4717454892386682.,-.499899687946635443132,-53,53, + -4504722288288484.,-4717454892386325.,.487018575302163426904,-53,53, + -4504722288288471.,-4717454892386310.,.499373212147901275604,-53,53, + -4504722288287418.,-4717454892385093.,-.499901203395324051704,-53,53, + -4504722288239258.,-4717454892329478.,-.499954346095225159175,-53,53, + -4504722288197978.,-4717454892281809.,.499999945168502763114,-53,53, + -8854767244051392.,-4628397293659910.,-.499997498218071213726,-54,53, + -8854767244013198.,-4628397293637982.,.499989320537409347988,-54,53, + -8854767244013144.,-4628397293637950.,-.496031015447352039406,-54,53, + -8854767244013111.,-4628397293637932.,.450845445895264126189,-54,53, + -8854767244013097.,-4628397293637924.,.488914247676973279054,-54,53, + -8820963185578875.,-4609000542071027.,.499798136942916315041,-54,53, + -8820963185578392.,-4609000542070750.,.477151935688426334683,-54,53, + -8820963185578385.,-4609000542070746.,.491316483496297113505,-54,53, + -8820963185578378.,-4609000542070741.,-.494518968695833112343,-54,53, + -8820963185578310.,-4609000542070702.,-.499777647133721875924,-54,53, + -8820963185573933.,-4609000542068193.,.499968889098600223326,-54,53, + -8820963185456033.,-4609000542000583.,.499995385533822711486,-54,53, + -8764811318256953.,-4576832328129957.,.499996671305543281526,-54,53, + -8764811318239244.,-4576832328119821.,-.499986828286126230486,-54,53, + -8764811318238269.,-4576832328119263.,-.499816514624622937814,-54,53, + -8764811318235344.,-4576832328117589.,-.499305573755621218309,-54,53, + -8764811318235323.,-4576832328117577.,-.480840367001290715299,-54,53, + -8764811318235302.,-4576832328117565.,-.462375160246969143097,-54,53, + -8644717199267617.,-4508246278971547.,-.499981713732664033365,-54,53, + -8644717199267610.,-4508246278971544.,.489371872647632509274,-54,53, + -8644717199232206.,-4508246278951367.,.499996461429566090839,-54,53, + -8607732457383132.,-8974363689301811.,-.498554375597916289696,-54,54, + -8607732457383103.,-8974363689301778.,-.486048402885014378869,-54,54, + -8607732457382655.,-8974363689301268.,-.499749238220917362050,-54,54, + -8607732457382496.,-8974363689301088.,.499852474236103876609,-54,54, + -8607732457377538.,-8974363689295443.,-.499988467380294695581,-54,54, + -8607732457339876.,-8974363689252570.,-.499990423583435547403,-54,54, + -8487409833009931.,-8837673720361690.,.499996650927201902843,-54,54, + -8487409832995288.,-8837673720345089.,.499985193111654712439,-54,54, + -8487409832980645.,-8837673720328488.,.499973727124484425546,-54,54, + -8487409832976113.,-8837673720323350.,.499833592718848774420,-54,54, + -8487409832976083.,-8837673720323315.,-.488693371986356030516,-54,54, + -8225219756274289.,-8541709986842581.,.499998615812656045129,-54,54, + -8225219756260483.,-8541709986827062.,-.499944217664276545868,-54,54, + -8225219756258604.,-8541709986824950.,-.496314824025690437729,-54,54, + -8225219756258596.,-8541709986824942.,.495717658756958960242,-54,54, + -8225219756258588.,-8541709986824933.,.487750141539606054695,-54,54, + -8225219756258475.,-8541709986824805.,-.499791039155749798659,-54,54, + -8218671716969117.,-8534350735331079.,-.499997050547238154133,-54,54, + -8218671716956327.,-8534350735316707.,.499733279591968402703,-54,54, + -8218671716955923.,-8534350735316252.,-.497773283961504292360,-54,54, + -8218671716955907.,-8534350735316235.,.482523485798633452294,-54,54, + -8218671716955891.,-8534350735316217.,.462820255558761995997,-54,54, + -8218671716954703.,-8534350735314882.,.499855410222602073556,-54,54, + -8218671716953079.,-8534350735313057.,.499977540758445253927,-54,54, + -8218671716928210.,-8534350735285109.,-.499999525086565457543,-54,54, + -8134634281299987.,-8440038251959334.,.499961651042108940115,-54,54, + -8134634281296377.,-8440038251955288.,.499814096789377449414,-54,54, + -8134634281296170.,-8440038251955055.,-.499640347471189060705,-54,54, + -8134634281296062.,-8440038251954934.,-.455877448825128396266,-54,54, + -8134634281296054.,-8440038251954925.,-.489672789666177314308,-54,54, + -8134634281296021.,-8440038251954889.,.495921429364472024931,-54,54, + -8134634281287145.,-8440038251944941.,.499990764818966012262,-54,54, + -8134634281246814.,-8440038251899738.,-.499995709111168623278,-54,54, + -7942311233403158.,-8225130938921549.,.499998832282073968515,-54,54, + -7942311233395535.,-8225130938913055.,-.499981280259773890890,-54,54, + -7942311233349797.,-8225130938862097.,-.499861996814100983615,-54,54, + -7942311233347256.,-8225130938859266.,-.499855372032096824180,-54,54, + -7942311233347072.,-8225130938859062.,.499751561827929784304,-54,54, + -7942311233346336.,-8225130938858242.,.498179297256577167780,-54,54, + -7942311233346222.,-8225130938858114.,-.491194667637908070303,-54,54, + -7942311233346187.,-8225130938858075.,-.496704218263496178691,-54,54, + -7868743567970541.,-8143258227361013.,-.499993440258569312665,-54,54, + -7868743567949414.,-8143258227337528.,.499987792140561654699,-54,54, + -7868743567941721.,-8143258227328976.,.485497118728894140677,-54,54, + -7868743567941712.,-8143258227328966.,.490419721605588978930,-54,54, + -7868743567941694.,-8143258227328945.,-.499735072641029438986,-54,54, + -7868743567941085.,-8143258227328268.,-.499972277991312245387,-54,54, + -7820027936233947.,-8089142489761423.,-.499999975422769374428,-54,54, + -7820027936225514.,-8089142489752062.,-.499986480281555188133,-54,54, + -7820027936217081.,-8089142489742701.,-.499972987484318348340,-54,54, + -7820027936216981.,-8089142489742590.,-.495585302299789111789,-54,54, + -7820027936216963.,-8089142489742571.,.485204481033391147108,-54,54, + -7820027936216945.,-8089142489742551.,.465994264366560726917,-54,54, + -7820027936216872.,-8089142489742470.,.499197274550972323437,-54,54, + -7730960160019296.,-7990403249686544.,.499998917408652695233,-54,54, + -7730960159958719.,-7990403249619477.,.499946767012717344168,-54,54, + -7730960159920170.,-7990403249576798.,.499913518628493323283,-54,54, + -7730960159917332.,-7990403249573655.,-.447065506303548113421,-54,54, + -7730960159917323.,-7990403249573645.,-.482838167059560741234,-54,54, + -7730960159916539.,-7990403249572777.,-.487923281815599432018,-54,54, + -7730960159914747.,-7990403249570793.,-.499546401332592874793,-54,54, + -7730960159914691.,-7990403249570731.,-.499909623819171770865,-54,54, + -7684108841907881.,-7938567813685995.,.499988087733945615838,-54,54, + -7684108841904719.,-7938567813682498.,-.499945473053674583830,-54,54, + -7684108841898395.,-7938567813675506.,-.499812595588818674742,-54,54, + -7684108841897240.,-7938567813674229.,-.497890794102767032771,-54,54, + -7684108841897183.,-7938567813674166.,-.477016731173391989352,-54,54, + -7684108841897098.,-7938567813674072.,-.498520321542060936337,-54,54, + -7684108841896814.,-7938567813673758.,-.499779376422584633215,-54,54, + -7684108841847519.,-7938567813619257.,.499991322726101015375,-54,54, + -7532297225483904.,-7771085191469405.,-.499999428207499917406,-54,54, + -7532297225453205.,-7771085191435610.,-.499978222428280951994,-54,54, + -7532297225436973.,-7771085191417741.,-.499673852574761872264,-54,54, + -7532297225436854.,-7771085191417610.,-.498501093855961225402,-54,54, + -7532297225436735.,-7771085191417479.,-.497328335137599075419,-54,54, + -7532297225436715.,-7771085191417457.,-.480324510142959402634,-54,54, + -7532297225436695.,-7771085191417435.,-.463320685148332115893,-54,54, + -7532297225436150.,-7771085191416835.,-.499966454049506017460,-54,54, + -7501948289004514.,-7737689787994345.,.499946218606816527762,-54,54, + -7501948289004454.,-7737689787994279.,.494757612322340290963,-54,54, + -7501948289004414.,-7737689787994235.,.491298541465961276388,-54,54, + -7501948289002202.,-7737689787991801.,-.499988076968416734426,-54,54, + -7501948288972136.,-7737689787958731.,-.499998702133771844415,-54,54, + -7492339963698142.,-7727122880025195.,-.499997550669184812248,-54,54, + -7492339963684520.,-7727122880010217.,.499982885671656038432,-54,54, + -7492339963682944.,-7727122880008484.,.498365587379573085749,-54,54, + -7492339963682934.,-7727122880008473.,.494548218735344356220,-54,54, + -7492339963682161.,-7727122880007623.,.499465622527173578140,-54,54, + -7489630554930845.,-7724143677314049.,.499984347305035821254,-54,54, + -7489630554912560.,-7724143677293944.,.499569131399809378935,-54,54, + -7489630554912550.,-7724143677293933.,.494920285230251412890,-54,54, + -7489630554911485.,-7724143677292762.,.499818168154765936882,-54,54, + -7489630554906753.,-7724143677287559.,.499984160221113867676,-54,54, + -7485075199918524.,-7719135222729046.,-.499850718072947323038,-54,54, + -7485075199918262.,-7719135222728758.,-.458248443923535363340,-54,54, + -7485075199918242.,-7719135222728736.,-.470339873377865155795,-54,54, + -7485075199918192.,-7719135222728682.,.499431552986256727059,-54,54, + -7485075199917035.,-7719135222727410.,.499942359030636343522,-54,54, + -7485075199893382.,-7719135222701405.,-.499986694588303870993,-54,54, + -7485075199883623.,-7719135222690676.,-.499999705726751556578,-54,54, + -7298995560633424.,-7515083659545942.,.499995294881437237318,-54,54, + -7298995560590495.,-7515083659498985.,-.499974669430741236899,-54,54, + -7298995560588267.,-7515083659496549.,.499910416547252469104,-54,54, + -7298995560586604.,-7515083659494730.,.499375810519080974401,-54,54, + -7298995560586572.,-7515083659494694.,-.498830507817797536237,-54,54, + -7298995560586561.,-7515083659494682.,-.466963929746106485334,-54,54, + -7298995560586039.,-7515083659494112.,.499795502379137868468,-54,54, + -7298995560581018.,-7515083659488620.,.499985365381141270419,-54,54, + -7250793807672290.,-7462394364319144.,.499999552149398842854,-54,54, + -7250793807653198.,-7462394364298288.,.499966921525352606791,-54,54, + -7250793807595922.,-7462394364235720.,.499868965953291890693,-54,54, + -7250793807594331.,-7462394364233982.,.499866243601234003742,-54,54, + -7250793807593779.,-7462394364233378.,-.498249094403633698577,-54,54, + -7250793807593671.,-7462394364233261.,.480380513376984560445,-54,54, + -7250793807593660.,-7462394364233249.,.496722417873139579242,-54,54, + -6744234268191517.,-6912634216061387.,.499992471461849555779,-54,54, + -6744234268184925.,-6912634216054278.,.499969056775961595674,-54,54, + -6744234268180526.,-6912634216049533.,-.493523510784265906262,-54,54, + -6744234268180513.,-6912634216049519.,-.473954382205400538173,-54,54, + -6744234268180322.,-6912634216049313.,-.494131031547194093174,-54,54, + -6744234268178588.,-6912634216047443.,-.499294958075880234686,-54,54, + -6744234268178333.,-6912634216047169.,.499945640957408701325,-54,54, + -6744234268152016.,-6912634216018787.,-.499996153414922281785,-54,54, + -6126472063000585.,-6251175713079808.,.499998769648441380193,-54,54, + -6126472062958603.,-6251175713035164.,-.499975514598271699919,-54,54, + -6126472062944609.,-6251175713020283.,-.499966951571607504960,-54,54, + -6126472062941107.,-6251175713016560.,.471880267092622568025,-54,54, + -6126472062941091.,-6251175713016543.,.486029197845446748830,-54,54, + -6126472062941075.,-6251175713016525.,-.499821871401734881776,-54,54, + -5733088875712555.,-5834563182290278.,.499998891692347681868,-54,54, + -5733088875678003.,-5834563182253831.,.499736060468922364126,-54,54, + -5733088875677930.,-5834563182253753.,-.496588875499611241793,-54,54, + -5733088875676909.,-5834563182252676.,-.499982842961504248130,-54,54, + -5733088875662760.,-5834563182237752.,.499996346176208144064,-54,54, + -5586017142902175.,-5679647024653675.,-.499802563293765042323,-54,54, + -5586017142902040.,-5679647024653534.,.499569153646375770418,-54,54, + -5586017142901500.,-5679647024652966.,.497056021403288219777,-54,54, + -5586017142901442.,-5679647024652904.,-.495806500208353761046,-54,54, + -5586017142901423.,-5679647024652885.,.489290259953335074708,-54,54, + -5586017142898954.,-5679647024650287.,-.499978116991889551707,-54,54, + -5586017142881441.,-5679647024631867.,.499998758627548553655,-54,54, + -5441089836963430.,-5527413630727644.,-.499996589744824973540,-54,54, + -5441089836923098.,-5527413630685336.,-.499977276779769839386,-54,54, + -5441089836917832.,-5527413630679813.,.499033474196094854102,-54,54, + -5441089836917730.,-5527413630679706.,.496355748516572761918,-54,54, + -5441089836917485.,-5527413630679449.,.499727878011015646322,-54,54, + -5441089836915995.,-5527413630677886.,.499827767564448066886,-54,54, + -5441089836913015.,-5527413630674759.,-.499972453457588709900,-54,54, + -5339910389681290.,-5421375331572292.,-.499997110111900110004,-54,54, + -5339910389680695.,-5421375331571670.,.499946242515226847905,-54,54, + -5339910389653240.,-5421375331542923.,.497332363607921566799,-54,54, + -5339910389628420.,-5421375331516935.,.494969340081809462299,-54,54, + -5339910389627910.,-5421375331516401.,.494920784681869162264,-54,54, + -5137347928761358.,-5209661790065308.,-.499997313590150332180,-54,54, + -5137347928742316.,-5209661790045442.,.497963839960673157674,-54,54, + -5137347928742293.,-5209661790045418.,.494442839354466321812,-54,54, + -5137347928742247.,-5209661790045370.,.487400838142024117876,-54,54, + -5137347928741762.,-5209661790044863.,-.499889826817562018787,-54,54, + -5137347928738069.,-5209661790041011.,.499977336557652268409,-54,54, + -5137347928731537.,-5209661790034195.,-.499986836486042233527,-54,54, + -5130840493906202.,-5202872799929701.,.499990254084740509476,-54,54, + -5130840493898472.,-5202872799921637.,.499935577010593792300,-54,54, + -5130840493894607.,-5202872799917605.,.499908238071310952236,-54,54, + -5130840493894445.,-5202872799917436.,.499648359952088833539,-54,54, + -5130840493893797.,-5202872799916760.,.498608847470489586830,-54,54, + -5130840493871579.,-5202872799893581.,-.499995923009133959608,-54,54, + -5046807760034000.,-5115272097074415.,-.499999375424262495855,-54,54, + -5046807760013504.,-5115272097053065.,.499979667282590431086,-54,54, + -5046807759993008.,-5115272097031714.,.499958702604234559701,-54,54, + -5046807759992145.,-5115272097030814.,-.499603070221600624389,-54,54, + -5046807759992001.,-5115272097030664.,-.492577456418611375535,-54,54, + -5046807759991977.,-5115272097030639.,-.491406520784815275803,-54,54, + -5010504700980959.,-5077466189139484.,.499998127837753121753,-54,54, + -5010504700961850.,-5077466189119590.,.499947451038631963422,-54,54, + -5010504700961777.,-5077466189119514.,.498795967463383472540,-54,54, + -5010504700961485.,-5077466189119210.,.494190033161461098352,-54,54, + -5010504700961461.,-5077466189119185.,.480112833081784976525,-54,54, + -5010504700946222.,-5077466189103319.,-.499989336201998743099,-54,54, + -4924871031066982.,-4988378102278617.,-.494802934891998192819,-54,54, + -4924871031066957.,-4988378102278592.,.495299890803324126417,-54,54, + -4924871031066250.,-4988378102277857.,.495407801462627067626,-54,54, + -4924871031045444.,-4988378102256227.,.498583454191735585352,-54,54, + -4924871031036253.,-4988378102246672.,.499986288726372149700,-54,54, + -4924871031036152.,-4988378102246566.,-.499998295517512252497,-54,54, + -4517699360205868.,-4566446474656566.,.499996216744453387721,-54,54, + -4517699360202657.,-4566446474653248.,-.499990114442670565985,-54,54, + -4517699360180180.,-4566446474630029.,-.499894437182826049643,-54,54, + -4517699360175000.,-4566446474624679.,.499816181827631664717,-54,54, + -4517699360174485.,-4566446474624146.,-.499247337733408145300,-54,54, + -4517699360174426.,-4566446474624086.,.448432763908853654849,-54,54, + -4517699360174424.,-4566446474624083.,-.485544181798189254129,-54,54, + -4517699360173758.,-4566446474623395.,-.499867102246891554594,-54,54, + -4514338150847095.,-4562974393305066.,.499993922367062261261,-54,54, + -4514338150836203.,-4562974393293815.,.499979556544941496139,-54,54, + -4514338150834686.,-4562974393292247.,-.499747012911906212437,-54,54, + -4514338150834413.,-4562974393291966.,.498324606424018371212,-54,54, + -4514338150834322.,-4562974393291872.,.497681812869072633541,-54,54, + -4514338150834321.,-4562974393291870.,-.469358217829334068858,-54,54, + -4514338150784868.,-4562974393240787.,-.499996364884598954429,-54,54, + -8612971451605472.,-8697192577288542.,.499999294109316719982,-55,55, + -8612971451596296.,-8697192577279092.,.499964982461521939850,-55,55, + -8612971451595058.,-8697192577277817.,.467266368877316750974,-55,55, + -8612971451595057.,-8697192577277816.,.497126870804950221410,-55,55, + -8612971451594923.,-8697192577277678.,.498434129107769706179,-55,55, + -8612971451594789.,-8697192577277540.,.499741387410459054697,-55,55, + -8341071156515664.,-8417437787702076.,-.499863732737805198389,-55,55, + -8341071156515306.,-8417437787701709.,.497812086998376294246,-55,55, + -8341071156515270.,-8417437787701671.,-.496835037274012493804,-55,55, + -8341071156515235.,-8417437787701636.,.480591369683378623880,-55,55, + -8341071156515234.,-8417437787701634.,-.491482161546410326955,-55,55, + -8341071156508753.,-8417437787694973.,.499961938044800816551,-55,55, + -8341071156504456.,-8417437787690556.,.499998243382866962808,-55,55, + -7983856183309422.,-8050684947315810.,.499999046118161790432,-55,55, + -7983856183303971.,-8050684947310220.,.475500674853666427588,-55,55, + -7983856183303970.,-8050684947310218.,-.499003911161993645595,-55,55, + -7983856183303617.,-8050684947309856.,-.499122774690413920000,-55,55, + -7983856183301146.,-8050684947307322.,-.499954819412498954690,-55,55, + -6979532375164827.,-7023940908298754.,-.499999533756710286788,-55,55, + -6979532375145924.,-7023940908279486.,-.499997544010441702540,-55,55, + -6979532375142563.,-7023940908276061.,.397902613822171169451,-55,55, + -6979532375142558.,-7023940908276056.,.494448136222945347368,-55,55, + -6979532375142506.,-7023940908276003.,.498521569190988358675,-55,55, + -6979532375142247.,-7023940908275739.,.499579629550819404631,-55,55, + -6979532375140279.,-7023940908273733.,.499897246480995412171,-55,55, + -6842835487576737.,-6884657341366538.,.499999082553338357891,-55,55, + -6842835487558829.,-6884657341348298.,.499987801794317947642,-55,55, + -6842835487549879.,-6884657341339182.,.425825361835514577968,-55,55, + -6842835487549875.,-6884657341339178.,.499982160744930445655,-55,55, + -6479813464948936.,-6515265025667512.,-.499997901722692158484,-55,55, + -6479813464892772.,-6515265025610418.,.498322744069488321572,-55,55, + -6479813464892712.,-6515265025610357.,.492908230114832811735,-55,55, + -6479813464892711.,-6515265025610355.,-.490515345117744940045,-55,55, + -6479813464892048.,-6515265025609682.,.499654275682051287209,-55,55, + -6479813464891867.,-6515265025609498.,.499987158584762511734,-55,55, + -6359406039573355.,-6392899432335205.,-.499992152399606174392,-55,55, + -6359406039509787.,-6392899432270623.,-.499987382394330621428,-55,55, + -6359406039507154.,-6392899432267948.,-.499892798154425997785,-55,55, + -6359406039506151.,-6392899432266930.,.499383642395501580709,-55,55, + -6359406039506149.,-6392899432266927.,-.468713513256447894196,-55,55, + -6298970528441689.,-6331509238174212.,.499996603384459765208,-55,55, + -6298970528356281.,-6331509238087468.,.499960595455068314819,-55,55, + -6298970528344710.,-6331509238075715.,-.499950617679172902924,-55,55, + -6298970528343815.,-6331509238074806.,-.499857327218824141979,-55,55, + -6298970528341513.,-6331509238072468.,-.490678830433371817517,-55,55, + -6298970528341504.,-6331509238072459.,-.349895769412108843870,-55,55, + -6298970528341450.,-6331509238072405.,.494802596715460350382,-55,55, + -6298970528341258.,-6331509238072210.,.498174565168919647519,-55,55, + -6298970528341130.,-6331509238072079.,-.499577455862211604972,-55,55, + -6070752678073599.,-6099852122069872.,.499940383600742728017,-55,55, + -6070752678072427.,-6099852122068682.,-.499885297729193384819,-55,55, + -6070752678071669.,-6099852122067914.,.495107990280808431879,-55,55, + -6070752678071462.,-6099852122067704.,.497698505607590333876,-55,55, + -6070752678071255.,-6099852122067493.,-.499710979065837005052,-55,55, + -6070752678044644.,-6099852122040497.,.499980822841096704709,-55,55, + -6070752678033062.,-6099852122028747.,.499996997390904471949,-55,55, + -6002783559861858.,-6030908327558535.,.481803844718712371769,-55,55, + -6002783559861857.,-6030908327558534.,.495979224044337208565,-55,55, + -6002783559861645.,-6030908327558318.,-.498840358923306303349,-55,55, + -6002783559861504.,-6030908327558176.,.499888125989603199345,-55,55, + -6002783559860728.,-6030908327557389.,.499982482671700899161,-55,55, + -6002783559797026.,-6030908327492784.,.499996273490546801925,-55,55, + -5777052993623232.,-5802099173851004.,.499833793153140210692,-55,55, + -5777052993623079.,-5802099173850848.,-.494542551283819300277,-55,55, + -5777052993623069.,-5802099173850838.,-.363456037848330229516,-55,55, + -5777052993623003.,-5802099173850771.,-.498285049174113969027,-55,55, + -5777052993622698.,-5802099173850463.,.499853610607987223383,-55,55, + -5777052993618960.,-5802099173846676.,.499992332754966226888,-55,55, + -5379976732216129.,-5400173624609473.,.499998447259133130513,-55,55, + -5379976732211543.,-5400173624604834.,-.499986642508257868480,-55,55, + -5379976732172562.,-5400173624565411.,-.499859909171502237868,-55,55, + -5379976732167976.,-5400173624560773.,-.499844999795462855199,-55,55, + -5379976732167535.,-5400173624560327.,-.499407456181629428852,-55,55, + -5379976732167532.,-5400173624560324.,-.465390874252286478488,-55,55, + -5360050515984822.,-5380022317786397.,-.499504831979783650558,-55,55, + -5360050515984555.,-5380022317786127.,-.494792964363323637042,-55,55, + -5360050515984554.,-5380022317786126.,-.483539361862888029425,-55,55, + -5360050515984200.,-5380022317785768.,-.499764076708951251786,-55,55, + -5360050515983578.,-5380022317785140.,.499976678560229069647,-55,55, + -5360050515979757.,-5380022317781276.,.499991832677580079075,-55,55, + -5360050515975936.,-5380022317777411.,-.499993013267414205939,-55,55, + -5227607959191963.,-5246126428065436.,.499980414838040876464,-55,55, + -5227607959191215.,-5246126428064679.,-.499790000600177532191,-55,55, + -5227607959184857.,-5246126428058253.,-.497838531918958790220,-55,55, + -5227607959184203.,-5246126428057593.,.497014607504901357292,-55,55, + -5227607959184191.,-5246126428057580.,-.374639463331374704145,-55,55, + -5227607959184109.,-5246126428057497.,-.497608947379277148160,-55,55, + -5227607959174479.,-5246126428047765.,.499999206312868922769,-55,55, + -5003579018661924.,-5019804141920138.,-.499994858281487947199,-55,55, + -5003579018621046.,-5019804141878860.,-.499977759463272511080,-55,55, + -5003579018617060.,-5019804141874835.,-.496110932774518453738,-55,55, + -5003579018617058.,-5019804141874833.,-.476540502856476703088,-55,55, + -5003579018616856.,-5019804141874629.,-.499927081134341662353,-55,55, + -4966294589295299.,-4982157627772391.,-.499996402652563825069,-55,55, + -4966294589206586.,-4982157627682823.,-.499978322273171569181,-55,55, + -4966294589200153.,-4982157627676328.,-.499875561638570975051,-55,55, + -4966294589199323.,-4982157627675491.,.499515902880373338296,-55,55, + -4966294589198926.,-4982157627675090.,.325730856390282847464,-55,55, + -4966294589198908.,-4982157627675072.,.499211635138828269468,-55,55, + -4966294589196729.,-4982157627672871.,-.499976315255014935348,-55,55, + -8111283783767881.,-8128512229472278.,-.499989711909917991452,-56,56, + -8111283783764598.,-8128512229468975.,.499658636306862375411,-56,56, + -8111283783760877.,-8128512229465230.,.300965825964650453488,-56,56, + -8111283783760847.,-8128512229465200.,.492860267160404354461,-56,56, + -8111283783760846.,-8128512229465199.,.499256748533596126478,-56,56, + -8111283783747870.,-8128512229452140.,.499999046935962623115,-56,56, + -7922455085975052.,-7938503852370322.,.499995266011184271695,-56,56, + -7922455085971773.,-7938503852367022.,-.499966465332144747766,-56,56, + -7922455085968494.,-7938503852363723.,-.499928196692181049742,-56,56, + -7922455085968330.,-7938503852363558.,-.499621311649327884582,-56,56, + -7922455085967684.,-7938503852362909.,.440611906262967670430,-56,56, + -7922455085967675.,-7938503852362900.,.495506796295796929312,-56,56, + -7922455085967674.,-7938503852362898.,-.498393771478333160804,-56,56, + -5181586503271719.,-5186062502423965.,.499999549303713590550,-56,56, + -5181586503255152.,-5186062502407355.,.499968518982550900213,-56,56, + -5181586503254408.,-5186062502406609.,.431034910805678653430,-56,56, + -5181586503254385.,-5186062502406586.,.490731855714180452197,-56,56, + -5181586503254381.,-5186062502406581.,-.498886066910427984936,-56,56, + -5181586503253996.,-5186062502406195.,-.499611119529065370356,-56,56, + -5181586503245520.,-5186062502397697.,-.499989161113769697954,-56,56, + -6969797329353126.,-6972517193398863.,.499995784525325546350,-57,57, + -6969797329336908.,-6972517193382626.,.499871346254487811538,-57,57, + -6969797329336221.,-6972517193381938.,.304712541893667700013,-57,57, + -6969797329336125.,-6972517193381842.,.417179433860702014377,-57,57, + -6969797329336056.,-6972517193381773.,.498015012462006010795,-57,57, + -6969797329336054.,-6972517193381770.,-.499641927288680853799,-57,57, + -6969797329332640.,-6972517193378353.,.499961918286877573896,-57,57, + -6969797329297643.,-6972517193343314.,-.499998309353703639309,-57,57, + -5370993780295903.,-5372237907481364.,.499978483737665040744,-57,57, + -5370993780293181.,-5372237907478640.,.392324803848176238264,-57,57, + -5370993780293131.,-5372237907478590.,.427085022806837765235,-57,57, + -5370993780293029.,-5372237907478488.,.497995869482505271373,-57,57, + -5370993780293026.,-5372237907478484.,-.499918517379975136908,-57,57, + -5370993780285834.,-5372237907471288.,.499991377626954528131,-57,57, + -5370993780275765.,-5372237907461211.,-.499995728510029203188,-57,57, + -5040083604755755.,-5041111577510097.,-.499997370231585829490,-57,57, + -5040083604744319.,-5041111577498654.,-.499986190048489135529,-57,57, + -5040083604723691.,-5041111577478014.,.126476788606412505511,-57,57, + -5040083604723526.,-5041111577477849.,.227473801960564914554,-57,57, + -5040083604723097.,-5041111577477420.,.490066036681330201789,-57,57, + -5040083604723081.,-5041111577477404.,.499859686461124778241,-57,57, + -5040083604721447.,-5041111577475768.,-.499963829777681835662,-57,57, + -4672129282989185.,-4672948085719297.,-.499993880472663831567,-57,57, + -4672129282989184.,-4672948085719296.,-.499467956816949256095,-57,57, + -4672129282989173.,-4672948085719285.,-.493682796604088940774,-57,57, + -4672129282989170.,-4672948085719282.,-.492105025636945223145,-57,57, + -7518049176486942.,-7518901918645696.,.416008381613907831696,-58,58, + -7518049176486916.,-7518901918645670.,.424857415376854223769,-58,58, + -7518049176486715.,-7518901918645469.,.493267253313476188175,-58,58, + -7518049176486695.,-7518901918645448.,-.499925797638103916062,-58,58, + -7518049176483757.,-7518901918642509.,-.499984982425614859332,-58,58, + -7518049176466128.,-7518901918624874.,-.499999743714682096973,-58,58, + -5061503531596519.,-5061763708151380.,.078265556217821472059,-58,58, + -5061503531596456.,-5061763708151317.,.087981625515519380043,-58,58, + -5061503531594594.,-5061763708149455.,.375145451425148309431,-58,58, + -5061503531593796.,-5061763708148657.,.498215662529210300721,-58,58, + -5061503531593785.,-5061763708148646.,.499912119073250984275,-58,58, + -5061503531593784.,-5061763708148644.,-.499933657604563499405,-58,58, + -5061503531567848.,-5061763708122704.,-.499997573421514081029,-58,58, + -5034345543222586.,-5034601553820456.,.499996597749490793720,-58,58, + -5034345543218301.,-5034601553816170.,.153769263410250381607,-58,58, + -5034345543218250.,-5034601553816119.,.161550454996871155268,-58,58, + -5034345543216714.,-5034601553814583.,.395901636899728798897,-58,58, + -5034345543216041.,-5034601553813910.,.498582851366235292213,-58,58, + -5034345543216032.,-5034601553813901.,.499956002822696559998,-58,58, + -4503599627370496.,-4503599627370496.,0.000000000000000000000,-1074,1074, + 0.,0.,0.000000000000000000000,0,0, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,1074, + 5835457316503937.,5835556984098965.,.164273497155310799131,-59,59, + 5835457316503954.,5835556984098982.,.165144586316867801606,-59,59, + 5835457316505300.,5835556984100328.,.234114351696632461199,-59,59, + 5835457316510249.,5835556984105277.,.487703778787883233757,-59,59, + 5835457316510486.,5835556984105514.,.499847786510792881966,-59,59, + 5835457316510489.,5835556984105518.,-.499998491872461419961,-59,59, + 7327657448584761.,7328447019372822.,-.499995753143447384601,-58,58, + 7327657448594040.,7328447019382104.,-.499917495017481465133,-58,58, + 7327657448597133.,7328447019385198.,-.499891408973803564618,-58,58, + 7327657448597134.,7328447019385199.,-.499568089838322122539,-58,58, + 7327657448597245.,7328447019385310.,-.463679665799881502898,-58,58, + 7327657448598302.,7328447019386367.,-.121931339595937498976,-58,58, + 7327657448598423.,7328447019386488.,-.082809724202669877967,-58,58, + 7786031541649770.,7786978782409032.,.499948263570010048160,-58,58, + 7786031541652222.,7786978782411485.,.395067835842984907148,-58,58, + 7786031541652256.,7786978782411519.,.407479771184457528605,-58,58, + 7786031541652489.,7786978782411752.,.492538033965728705843,-58,58, + 7786031541652509.,7786978782411772.,.499839172401889559289,-58,58, + 7786031541657988.,7786978782417253.,.499986046989568767699,-58,58, + 7786031541712774.,7786978782472059.,.499994565334015359645,-58,58, + 5746215254485473.,5747738906530953.,-.499996791027777160832,-57,57, + 5746215254495525.,5747738906541012.,.499910809251761901103,-57,57, + 5746215254500551.,5747738906546042.,.499864609402039795952,-57,57, + 5746215254501619.,5747738906547111.,.349834895626678217831,-57,57, + 5746215254501692.,5747738906547184.,.407932115565265240365,-57,57, + 5746215254501805.,5747738906547297.,.497863428620889162324,-57,57, + 5746215254501808.,5747738906547301.,-.499749014395333163174,-57,57, + 6842111560930580.,6844684565616667.,.499970515289117094346,-57,57, + 6842111560931392.,6844684565617480.,.416659000564485542985,-57,57, + 6842111560931433.,6844684565617521.,.462944995510661404960,-57,57, + 6842111560931465.,6844684565617553.,.499070650102799049173,-57,57, + 6842111560931466.,6844684565617555.,-.499800423191196643991,-57,57, + 6842111560939438.,6844684565625536.,-.499996722914357460282,-57,57, + 6940259249803885.,6942944655803747.,.499997033721254372553,-57,57, + 6940259249803889.,6942944655803752.,-.495356550364749125197,-57,57, + 6940259249803895.,6942944655803758.,-.488386926493754361762,-57,57, + 8328945592817859.,8333589172410046.,-.499999071629718613505,-57,57, + 8328945592820845.,8333589172413036.,.499309740141668321888,-57,57, + 8328945592820846.,8333589172413038.,-.499016010423712393337,-57,57, + 8328945592820863.,8333589172413055.,-.470553770035184490505,-57,57, + 8328945592820910.,8333589172413102.,-.391864046608077329439,-57,57, + 8328945592822040.,8333589172414234.,-.499962185487998836489,-57,57, + 5635416615568704.,5641177184395843.,-.499995720390994552479,-56,56, + 5635416615605140.,5641177184432390.,.441490876084857749616,-56,56, + 5635416615605157.,5641177184432407.,.493719585936445628881,-56,56, + 5635416615605159.,5641177184432409.,.499864140036632459018,-56,56, + 5635416615605810.,5641177184433062.,.499916499647678492549,-56,56, + 5635416615607112.,5641177184434369.,-.499978781128836776136,-56,56, + 5682480038735131.,5688386415987065.,-.499996575404246547355,-56,56, + 5682480038748255.,5688386416000230.,-.499984526771110137731,-56,56, + 5682480038754977.,5688386416006972.,.499869251945667936453,-56,56, + 5682480038755617.,5688386416007614.,.499260269261382287406,-56,56, + 5682480038756217.,5688386416008216.,.373689347995275437910,-56,56, + 5682480038756253.,5688386416008252.,.486155092719321673487,-56,56, + 5682480038756257.,5688386416008256.,.498651286577549121371,-56,56, + 5682480038758178.,5688386416010183.,.499948386993323507085,-56,56, + 6158205153689720.,6165726281502776.,.499997863683178510324,-56,56, + 6158205153695439.,6165726281508517.,-.499683085530749899819,-56,56, + 6158205153697073.,6165726281510157.,-.499591928156097155855,-56,56, + 6158205153697271.,6165726281510355.,.227469301440314481223,-56,56, + 6158205153697339.,6165726281510423.,.477167097463335383428,-56,56, + 6158205153697345.,6165726281510429.,.499199255935955141008,-56,56, + 6175493946645897.,6183078738747716.,.499788136806083048977,-56,56, + 6175493946646168.,6183078738747989.,-.499466355601700982089,-56,56, + 6175493946646177.,6183078738747998.,-.466231264943655394067,-56,56, + 6175493946646284.,6183078738748105.,-.071102964897994828805,-56,56, + 6175493946647251.,6183078738749075.,.499822886917150829877,-56,56, + 6175493946652667.,6183078738754511.,.499961887383469076482,-56,56, + 6175493946654021.,6183078738755870.,.499996637505560418885,-56,56, + 6823990675695915.,6834232164271815.,-.499994344597604066978,-56,56, + 6823990675696358.,6834232164272259.,.499979671465290879686,-56,56, + 6823990675706104.,6834232164282049.,.499408024915121453350,-56,56, + 6823990675709205.,6834232164285164.,.499226137402966309111,-56,56, + 6823990675709427.,6834232164285388.,-.498529547545816254713,-56,56, + 6823990675709438.,6834232164285399.,-.448868793196429899846,-56,56, + 6916394610489266.,6927058980741695.,.499999680094585423641,-56,56, + 6916394610518801.,6927058980771368.,-.499990646398139257104,-56,56, + 6916394610521388.,6927058980773966.,.499976342835679255757,-56,56, + 6916394610526562.,6927058980779164.,.499910321330434671174,-56,56, + 6916394610526565.,6927058980779168.,-.486173984441591124250,-56,56, + 6916394610526613.,6927058980779216.,-.263522876794002197821,-56,56, + 7664074856371084.,7678598935435668.,.499996687908294598930,-56,56, + 7664074856374064.,7678598935438666.,-.499953166777356281027,-56,56, + 7664074856376518.,7678598935441133.,.499416986454605266580,-56,56, + 7664074856376519.,7678598935441135.,-.494878298731524935395,-56,56, + 7664074856376552.,7678598935441168.,-.306622709873820758283,-56,56, + 7664074856377044.,7678598935441663.,-.499903021449673659608,-56,56, + 7740553500861762.,7755518274879340.,-.499563956267358707238,-56,56, + 7740553500861934.,7755518274879513.,-.498500446258790005343,-56,56, + 7740553500862106.,7755518274879686.,-.497436936250176425771,-56,56, + 7740553500862125.,7755518274879705.,-.386854339214338452252,-56,56, + 7740553500862621.,7755518274880203.,.499933457089836075984,-56,56, + 7740553500864511.,7755518274882104.,.499991793816824729606,-56,56, + 7740553500916228.,7755518274934123.,-.499999209101711063764,-56,56, + 8359220028887223.,8378083855138599.,-.499998021615538370994,-56,56, + 8359220028906642.,8378083855158150.,-.498274379105641894743,-56,56, + 8359220028906643.,8378083855158151.,-.491476823946116703198,-56,56, + 8359220028906691.,8378083855158199.,-.165194176288905576909,-56,56, + 8359220028906789.,8378083855158298.,-.499033770655421106845,-56,56, + 8359220028906936.,8378083855158446.,-.499793162205164815757,-56,56, + 8359220028913556.,8378083855165111.,-.499978006109203184885,-56,56, + 8359220028914880.,8378083855166443.,.499985025118629463219,-56,56, + 8513798801089445.,8533733140279268.,.499993768355466661145,-56,56, + 8513798801093414.,8533733140283265.,.497206139548761194307,-56,56, + 8513798801093415.,8533733140283267.,-.495739889080312504825,-56,56, + 8513798801093438.,8533733140283290.,-.333498547549007122657,-56,56, + 8513798801093556.,8533733140283408.,.498870074220312682422,-56,56, + 8513798801093698.,8533733140283552.,-.499465991108102061972,-56,56, + 8513798801094265.,8533733140284123.,-.499864223792351090623,-56,56, + 8983761325059611.,9007199254740965.,.000175118370918122031,-56,56, + 8983761325059613.,9007199254740967.,.015902494131553788654,-56,56, + 8983761325059635.,9007199254740989.,.188903627498546589136,-56,56, + 8983761325059637.,9007199254740991.,.204631003259182340783,-56,56, + 8983761325059638.,4503599627370496.,.106247345569750109632,-56,55, + 8983761325062663.,4503599627372021.,-.499924735445405111743,-56,55, + 8983761325079449.,4503599627380480.,-.499992355767692978956,-56,55, + 8983761325080975.,4503599627381249.,-.499998503057344456426,-56,55, + 5173600871716112.,5191547749562437.,.426268644557490931965,-55,55, + 5173600871716119.,5191547749562444.,.499573883153871086981,-55,55, + 5173600871716310.,5191547749562637.,.499759679140893072930,-55,55, + 5173600871716501.,5191547749562830.,.499945475128065073369,-55,55, + 5173600871721944.,5191547749568331.,-.499995427645652567910,-55,55, + 5173600871738082.,5191547749584637.,.499996068759883747465,-55,55, + 5689944463305193.,5713866230674557.,-.499983711870198699887,-55,55, + 5689944463305340.,5713866230674705.,.368210804173192997532,-55,55, + 5689944463305350.,5713866230674715.,.495298866489073557564,-55,55, + 5689944463305429.,5713866230674795.,.499294558784545986590,-55,55, + 5689944463323212.,5713866230692804.,.499995775841597006813,-55,55, + 5753769988815988.,5778512212795596.,.499994399272893023712,-55,55, + 5753769988833358.,5778512212813192.,.329734024232004499732,-55,55, + 5753769988833371.,5778512212813205.,.498748797699679319467,-55,55, + 5753769988833448.,5778512212813283.,.499836302085153832758,-55,55, + 5753769988834371.,5778512212814218.,.499885218292383860738,-55,55, + 5753769988836217.,5778512212816088.,.499983050718620177849,-55,55, + 5804122653727156.,5829525379099582.,-.499998012189793026964,-55,55, + 5804122653802491.,5829525379175914.,-.498433049367478205655,-55,55, + 5804122653802493.,5829525379175916.,-.471964566856665931499,-55,55, + 5804122653802642.,5829525379176066.,.499937380198900817002,-55,55, + 5804122653808158.,5829525379181656.,-.499987854906239078616,-55,55, + 5852820566559524.,5878873303674502.,.499987531695557618601,-55,55, + 5852820566564873.,5878873303679924.,-.492990498904841993495,-55,55, + 5852820566564880.,5878873303679931.,-.398758090270280800518,-55,55, + 5852820566564947.,5878873303679999.,-.496819321910897747078,-55,55, + 5852820566565021.,5878873303680073.,.499351855083072200412,-55,55, + 5852820566567101.,5878873303682181.,.499838992221390102458,-55,55, + 5852820566567621.,5878873303682708.,.499960776509142318077,-55,55, + 5852820566592432.,5878873303707854.,-.499997702855561907279,-55,55, + 6216155809113581.,6247416434112302.,.499995034557204475052,-55,55, + 6216155809170200.,6247416434169783.,.499954165513552238008,-55,55, + 6216155809171448.,6247416434171051.,-.499781806409690473673,-55,55, + 6216155809171842.,6247416434171450.,.498698984507188706616,-55,55, + 6216155809174141.,6247416434173784.,.499986645228043453193,-55,55, + 6575998564310977.,6613068921067492.,.398995838577734217559,-55,55, + 6575998564310983.,6613068921067499.,-.498494352159199191642,-55,55, + 6575998564311100.,6613068921067618.,-.499553071529362318446,-55,55, + 6575998564312095.,6613068921068629.,.499990297932455524839,-55,55, + 6575998564360266.,6613068921117623.,.499993972932943767134,-55,55, + 6847582036519794.,6889491950292006.,.499996393422928897651,-55,55, + 6847582036550442.,6889491950323224.,-.499990126556780456154,-55,55, + 6847582036557121.,6889491950330026.,.499980183230226198128,-55,55, + 6847582036561053.,6889491950334032.,-.499887572592619271558,-55,55, + 6847582036561322.,6889491950334305.,.494272034145946214344,-55,55, + 6847582036561430.,6889491950334415.,.499362136479758853913,-55,55, + 7082784227658828.,7129216982596390.,-.499921639073631493233,-55,55, + 7082784227659230.,7129216982596800.,-.499348650648603879272,-55,55, + 7082784227659980.,7129216982597564.,.427093491937903573978,-55,55, + 7082784227659984.,7129216982597569.,-.493298816634959656938,-55,55, + 7082784227660034.,7129216982597620.,-.498202673795742228671,-55,55, + 7082784227662295.,7129216982599926.,-.499955094591206694802,-55,55, + 7082784227665762.,7129216982603462.,-.499988550039201419077,-55,55, + 7082784227697166.,7129216982635490.,.499996848316737772292,-55,55, + 7706116167836190.,7766116257585988.,.499998365489106410796,-55,55, + 7706116167843957.,7766116257593939.,.499989435848601240956,-55,55, + 7706116167865063.,7766116257615546.,-.499519828207120687328,-55,55, + 7706116167865103.,7766116257615586.,.448078941313139800605,-55,55, + 7706116167865105.,7766116257615588.,.495458879789153092481,-55,55, + 7706116167865865.,7766116257616366.,.499835500676048086227,-55,55, + 7706116167867258.,7766116257617792.,.499962649232235953265,-55,55, + 8687303334598514.,8773764137833194.,.499996248868926121535,-55,55, + 8687303334612296.,8773764137847396.,-.499995220141092409430,-55,55, + 8687303334621177.,8773764137856546.,.499937719481366145316,-55,55, + 8687303334621769.,8773764137857156.,.497906450529538719874,-55,55, + 8687303334621770.,8773764137857158.,-.471691575262607466412,-55,55, + 8687303334621802.,8773764137857191.,-.498828400611281561751,-55,55, + 8687303334622098.,8773764137857496.,-.499844035086161524289,-55,55, + 8687303334626078.,8773764137861597.,-.499986687760422001320,-55,55, + 8913667029669168.,9007199254740919.,.002002817091341422769,-55,55, + 8913667029669199.,9007199254740951.,-.003361439392716525849,-55,55, + 8913667029669230.,9007199254740983.,-.008725695876767219647,-55,55, + 8913667029669232.,9007199254740985.,.055444352092003952459,-55,55, + 8913667029669238.,9007199254740991.,.247954495998317649958,-55,55, + 8913667029669239.,4503599627370496.,.140019759991351646315,-55,54, + 8913667029669542.,4503599627370653.,-.499099106374049644917,-55,54, + 8913667029672534.,4503599627372197.,-.499903225712805256912,-55,54, + 8913667029672908.,4503599627372389.,.499996259372226196390,-55,54, + 8913667029702735.,4503599627387782.,-.499998547400313391671,-55,54, + 4631941526843707.,4684561109342992.,-.499987812432474915156,-54,54, + 4631941527006247.,4684561109511187.,-.499967637807767583751,-54,54, + 4631941527006362.,4684561109511306.,-.498952488649872754775,-54,54, + 4631941527006477.,4684561109511425.,-.497937339491768766251,-54,54, + 4873844360976849.,4935352669603677.,.499996746366102173394,-54,54, + 4873844360980308.,4935352669607271.,-.499639385499695222666,-54,54, + 4873844360980437.,4935352669607404.,.497772276542162743938,-54,54, + 4873844360980463.,4935352669607432.,-.494997465992002507816,-54,54, + 4873844360980721.,4935352669607699.,.499825858092666674598,-54,54, + 4994576600383246.,5060885967382248.,.499716732799365631153,-54,54, + 4994576600383393.,5060885967382401.,.497782902648579477597,-54,54, + 4994576600383687.,5060885967382707.,.493915242348132088549,-54,54, + 4994576600384790.,5060885967383855.,.499813101846557557868,-54,54, + 4994576600387878.,5060885967387070.,-.499994159934956007748,-54,54, + 4994576600418905.,5060885967419362.,.499999401290563358185,-54,54, + 5227720812181562.,5304024059339720.,.499999760326480518960,-54,54, + 5227720812182029.,5304024059340209.,-.499885656762119784078,-54,54, + 5227720812184831.,5304024059343137.,-.499198159209536539487,-54,54, + 5227720812185076.,5304024059343393.,-.482007425119740838378,-54,54, + 5227720812185098.,5304024059343416.,-.492708665323868462297,-54,54, + 5227720812185120.,5304024059343438.,.496590094472012810452,-54,54, + 5227720812185209.,5304024059343531.,.498753259100896027663,-54,54, + 5299073463177291.,5378632369675288.,.499975927001531038506,-54,54, + 5299073463177615.,5378632369675627.,.498310626401073914667,-54,54, + 5299073463177658.,5378632369675672.,.488830355025234899402,-54,54, + 5299073463179084.,5378632369677165.,-.499980505000441275917,-54,54, + 5299073463224125.,5378632369724290.,.499998514279745721542,-54,54, + 5354986034392795.,5437162566050174.,.499974206691567832415,-54,54, + 5354986034456689.,5437162566117093.,.498134898865037033110,-54,54, + 5354986034456710.,5437162566117115.,.492359104194935715933,-54,54, + 5354986034456858.,5437162566117270.,.499272551282077804354,-54,54, + 5354986034457027.,5437162566117448.,-.499589796300339972007,-54,54, + 5354986034458759.,5437162566119262.,-.499764861433317382241,-54,54, + 5354986034461357.,5437162566121982.,.499972540973847609348,-54,54, + 6229784789679265.,6361158946649626.,-.499999470402130402051,-54,54, + 6229784789703384.,6361158946675330.,.499996202935727557327,-54,54, + 6229784789713938.,6361158946686579.,-.497600942926030652787,-54,54, + 6229784789714014.,6361158946686659.,.499952839243154151931,-54,54, + 6229784789716873.,6361158946689707.,-.499964749847513084393,-54,54, + 6318840445925606.,6456163432922121.,.499947983246745992154,-54,54, + 6318840445925945.,6456163432922484.,-.499669960968189850227,-54,54, + 6318840445926225.,6456163432922782.,.497695748826838176912,-54,54, + 6318840445926240.,6456163432922799.,-.484588231005518578234,-54,54, + 6318840445926284.,6456163432922846.,-.499287905180400951486,-54,54, + 6318840445928259.,6456163432924954.,.499988083607945828018,-54,54, + 6318840445954450.,6456163432952923.,-.499992959618639354296,-54,54, + 6500262080576388.,6650289650863566.,.499999967230260154296,-54,54, + 6500262080604808.,6650289650894039.,.499992842119260856993,-54,54, + 6500262080617959.,6650289650908141.,-.499904888721994744081,-54,54, + 6500262080618042.,6650289650908229.,.495837525430428762179,-54,54, + 6500262080618056.,6650289650908245.,-.492832428808904723582,-54,54, + 6500262080618070.,6650289650908260.,-.481502383048233369616,-54,54, + 6500262080618665.,6650289650908898.,-.499975438215227103876,-54,54, + 6611506190265684.,6769723854199071.,-.499997558987736581773,-54,54, + 6611506190294570.,6769723854230124.,-.499951295215634679550,-54,54, + 6611506190368098.,6769723854309168.,-.499833437586969737726,-54,54, + 6611506190369391.,6769723854310557.,.499787828868489407475,-54,54, + 6611506190369431.,6769723854310601.,-.499450492354178132357,-54,54, + 6611506190369511.,6769723854310687.,-.497927134799391719209,-54,54, + 6611506190369524.,6769723854310700.,.477320410803276373428,-54,54, + 6611506190370724.,6769723854311991.,-.499829225855093727727,-54,54, + 6779876501340545.,6951088412270753.,.499994535856442735004,-54,54, + 6779876501420181.,6951088412356709.,.499978402306437573196,-54,54, + 6779876501427628.,6951088412364748.,-.497963727737275739988,-54,54, + 6779876501427691.,6951088412364816.,-.498214883121520630327,-54,54, + 6779876501428132.,6951088412365292.,-.499972970808315274101,-54,54, + 6995579078915697.,7184530343095538.,.499996912191070663519,-54,54, + 6995579078917153.,7184530343097118.,.499522175373298984068,-54,54, + 6995579078917247.,7184530343097221.,-.495013968347819602228,-54,54, + 6995579078917270.,7184530343097245.,.463769741167262914258,-54,54, + 6995579078917282.,7184530343097258.,.485743850479485664205,-54,54, + 6995579078924116.,7184530343104674.,.499999104434737641452,-54,54, + 7423882302182705.,7651917161186672.,-.499996402388482626012,-54,54, + 7423882302185258.,7651917161189474.,-.499954234414675772126,-54,54, + 7423882302191215.,7651917161196012.,-.499855841709189822932,-54,54, + 7423882302191297.,7651917161196101.,.497795336441969920626,-54,54, + 7423882302191307.,7651917161196112.,.473118650850661850510,-54,54, + 7482308321604586.,7716093446654960.,.499999528316763404121,-54,54, + 7482308321609228.,7716093446660064.,-.499956008147245114542,-54,54, + 7482308321613729.,7716093446665011.,.497286588427765816470,-54,54, + 7482308321613749.,7716093446665033.,.483499619295958056577,-54,54, + 7482308321613870.,7716093446665167.,-.499911543951217595318,-54,54, + 7789329938347039.,8055081861036623.,.499999126625614328488,-54,54, + 7789329938373911.,8055081861066426.,-.499978985776737639942,-54,54, + 7789329938387347.,8055081861081327.,-.499968033111906473405,-54,54, + 7789329938387622.,8055081861081631.,.484774674004212915125,-54,54, + 7789329938387631.,8055081861081641.,.466093526237145938583,-54,54, + 7789329938387668.,8055081861081683.,-.499595636805212657633,-54,54, + 7852441927991812.,8125140798567144.,.499985463067626485928,-54,54, + 7852441927991821.,8125140798567155.,-.499970425000618248556,-54,54, + 7852441927992226.,8125140798567605.,-.497985388068848584981,-54,54, + 7852441928000191.,8125140798576455.,-.458946327304280033255,-54,54, + 7852441928002180.,8125140798578665.,-.449197589767821152171,-54,54, + 7852441928002198.,8125140798578685.,-.449109365898113366103,-54,54, + 7852441928014482.,8125140798592333.,.499987415248252855573,-54,54, + 7852441928059822.,8125140798642711.,.499991370785667950330,-54,54, + 7984456451885059.,8272116270703558.,-.499979087135325712184,-54,54, + 7984456451885284.,8272116270703809.,-.498684595705496046372,-54,54, + 7984456451885336.,8272116270703867.,-.489496535463689410136,-54,54, + 7984456451885353.,8272116270703885.,.475045714999998177395,-54,54, + 7984456451909003.,8272116270730269.,-.499999953898754749644,-54,54, + 8003572463275846.,8293447602983677.,.499991936699071744606,-54,54, + 8003572463289407.,8293447602998815.,-.499972004828212283672,-54,54, + 8003572463289605.,8293447602999036.,-.489279051490613348355,-54,54, + 8003572463289648.,8293447602999084.,-.492007349502977270509,-54,54, + 8003572463289777.,8293447602999227.,.499807756460311482425,-54,54, + 8003572463334857.,8293447603049547.,-.499998589789165907618,-54,54, + 8012612783782805.,8303539952476850.,-.499999489153879898757,-54,54, + 8012612783815862.,8303539952513759.,-.499865698380648822109,-54,54, + 8012612783816806.,8303539952514813.,-.499317363180173986854,-54,54, + 8012612783817278.,8303539952515340.,-.499043195568451955102,-54,54, + 8012612783817441.,8303539952515521.,.494695552994154356676,-54,54, + 8012612783817450.,8303539952515532.,-.456570405674141394178,-54,54, + 8012612783822736.,8303539952521433.,.499889870294442421354,-54,54, + 8012612783848447.,8303539952550140.,.499993961822627574942,-54,54, + 8018408790435981.,8310011922126754.,.499861035270606451011,-54,54, + 8018408790437069.,8310011922127969.,.497010433313135842205,-54,54, + 8018408790437086.,8310011922127988.,.481340892657873562159,-54,54, + 8018408790437129.,8310011922128037.,-.499470298411274874623,-54,54, + 8018408790442235.,8310011922133739.,-.499980567704797118924,-54,54, + 8018408790454169.,8310011922147066.,-.499998103130621179217,-54,54, + 8125363452126206.,8429649248541657.,.499995122607930614915,-54,54, + 8125363452127277.,8429649248542858.,-.499402019588687580143,-54,54, + 8125363452127634.,8429649248543258.,-.499201066978583013190,-54,54, + 8125363452127775.,8429649248543415.,.484071578171182191525,-54,54, + 8125363452127800.,8429649248543443.,.495290132275823570032,-54,54, + 8633994769866100.,9004273234593124.,-.499983011335672380088,-54,54, + 8633994769866760.,9004273234593875.,.499290936912194453795,-54,54, + 8633994769867420.,9004273234594627.,.498564885177204041078,-54,54, + 8633994769867427.,9004273234594635.,.474314760386167227605,-54,54, + 8633994769899172.,9004273234630805.,.499998852868164213935,-54,54, + 8636562708000827.,9007199254697321.,.000006024382859088328,-54,54, + 8636562708022405.,9007199254721909.,-.000030189892525653482,-54,54, + 8636562708038886.,9007199254740689.,-.000613959518798459228,-54,54, + 8636562708039144.,9007199254740983.,-.011180709786515771143,-54,54, + 8636562708039151.,9007199254740991.,-.034723218514673129968,-54,54, + 8636562708039152.,4503599627370496.,.052385354404937988139,-54,53, + 8636562708040585.,4503599627371312.,.499784282464601537613,-54,53, + 8636562708043983.,4503599627373248.,.499966807083099569242,-54,53, + 8717776617240876.,4549936322156512.,-.499773228427339342541,-54,53, + 8717776617240883.,4549936322156515.,.499748655740382938956,-54,53, + 8717776617241100.,4549936322156639.,.484927064940260783242,-54,53, + 8717776617241205.,4549936322156699.,.477755327456669529804,-54,53, + 8717776617242971.,4549936322157708.,.499990676099094763601,-54,53, + 8717776617247154.,4549936322160098.,.499996601247263681967,-54,53, + 8717776617251337.,4549936322162489.,-.499997473253870410262,-54,53, + 8911976088157640.,4661277570673346.,-.499996939178587757298,-54,53, + 8911976088167728.,4661277570679150.,-.499927306379345775238,-54,53, + 8911976088174345.,4661277570682957.,-.494726991956616345105,-54,53, + 8911976088174352.,4661277570682961.,-.467367704937700157871,-54,53, + 8911976088174564.,4661277570683083.,-.495915012364324279281,-54,53, + 8911976088175294.,4661277570683503.,-.499875080382771022367,-54,53, + 4733303198888920.,4983731101364287.,.499999579342505359897,-53,53, + 4733303198934508.,4983731101417870.,.499974065111324850310,-53,53, + 4733303198944173.,4983731101429231.,-.499702284846483389346,-53,53, + 4733303198944418.,4983731101429518.,.467196762786406304507,-53,53, + 4733303198944424.,4983731101429526.,-.480552648291900570996,-53,53, + 4733303198944441.,4983731101429546.,-.499175979680418197401,-53,53, + 4733303198945838.,4983731101431187.,.499836141015554852725,-53,53, + 4733303198949704.,4983731101435731.,.499965604120091210687,-53,53, + 4747578892790020.,5000520070702320.,.499987340465571091164,-53,53, + 4747578892790037.,5000520070702341.,-.495570308709640946441,-53,53, + 4747578892790122.,5000520070702441.,-.473358554585287787894,-53,53, + 4747578892798349.,5000520070712122.,-.499992655077415123624,-53,53, + 4747578892847197.,5000520070769603.,-.499995262019509072695,-53,53, + 5018163383763107.,5322564556094277.,-.499996153015650105174,-53,53, + 5018163383773249.,5322564556106489.,.499972658433533113368,-53,53, + 5018163383776344.,5322564556110217.,-.499938257177360482861,-53,53, + 5018163383776868.,5322564556110848.,-.498953869281768468453,-53,53, + 5018163383776902.,5322564556110888.,.443858094819351773660,-53,53, + 5018163383776917.,5322564556110907.,-.493136626900702543722,-53,53, + 5018163383777201.,5322564556111248.,.499763308537521576448,-53,53, + 5018163383796628.,5322564556134642.,.499999405831315330051,-53,53, + 5026588272957025.,5332713648860418.,.499991669057808413785,-53,53, + 5026588272993683.,5332713648904595.,.499989559577254397736,-53,53, + 5026588273000060.,5332713648912280.,.499961928317781007966,-53,53, + 5026588273004131.,5332713648917187.,-.488608319784969449900,-53,53, + 5026588273004136.,5332713648917193.,-.463047733009242459278,-53,53, + 5026588273004170.,5332713648917234.,-.489235742934227029544,-53,53, + 5026588273004638.,5332713648917798.,-.496764820712453276784,-53,53, + 5026588273004833.,5332713648918033.,-.499901936446371262991,-53,53, + 5184012179818939.,5523804627604688.,-.499999297042281440812,-53,53, + 5184012179840758.,5523804627631368.,.499980492446179635254,-53,53, + 5184012179843850.,5523804627635150.,-.499426556122568507507,-53,53, + 5184012179843953.,5523804627635275.,.452404321644851492761,-53,53, + 5184012179843971.,5523804627635297.,.463403892516955041283,-53,53, + 5184012179844025.,5523804627635363.,.496402605133492822083,-53,53, + 5184012179846031.,5523804627637817.,-.499978551870007866229,-53,53, + 5359027492704449.,5739660084125088.,-.499952230542634447156,-53,53, + 5359027492704535.,5739660084125194.,.498925932526129748140,-53,53, + 5359027492704707.,5739660084125408.,.496682258666480853018,-53,53, + 5359027492704715.,5739660084125418.,.450066273835891106061,-53,53, + 5359027492728518.,5739660084155034.,-.499969555428182051555,-53,53, + 5359027492768633.,5739660084204944.,-.499998266460642125069,-53,53, + 5488415439823270.,5901729128376198.,.479789978322969964023,-53,53, + 5488415439823339.,5901729128376286.,-.499173932197207455880,-53,53, + 5488415439823764.,5901729128376821.,.499961401569568464869,-53,53, + 5488415439824905.,5901729128378260.,.499992968344668842110,-53,53, + 5488415439888510.,5901729128458478.,-.499999911974744778456,-53,53, + 5599080628041163.,6042143987722954.,.499992350699823584522,-53,53, + 5599080628045877.,6042143987728973.,-.499946604846118409985,-53,53, + 5599080628055305.,6042143987741009.,-.499824506365501384238,-53,53, + 5599080628055352.,6042143987741069.,-.498551093241824824707,-53,53, + 5599080628055587.,6042143987741369.,-.492184027618684163475,-53,53, + 5599080628074931.,6042143987766064.,-.499994564622873878197,-53,53, + 5668948148564854.,6131693191406208.,.499992808423572934413,-53,53, + 5668948148616294.,6131693191472404.,-.498438507530579999377,-53,53, + 5668948148616308.,6131693191472422.,-.482691579763562093556,-53,53, + 5668948148616329.,6131693191472449.,-.459071188112980513954,-53,53, + 5668948148616674.,6131693191472893.,-.499593325272596598273,-53,53, + 5668948148618452.,6131693191475181.,-.499733498527214642220,-53,53, + 5668948148622008.,6131693191479756.,.499986156375697945152,-53,53, + 5708579506456824.,6182810120397366.,.499998068612982710972,-53,53, + 5708579506478330.,6182810120425169.,.499973998699378513376,-53,53, + 5708579506480789.,6182810120428349.,-.499889253024641246333,-53,53, + 5708579506482220.,6182810120430198.,.499783657842978209901,-53,53, + 5708579506482336.,6182810120430348.,.464816542315490353163,-53,53, + 5708579506482343.,6182810120430358.,-.485569404311102945596,-53,53, + 5708579506482401.,6182810120430432.,.496947037925982022742,-53,53, + 5708579506493487.,6182810120444765.,-.499996424401165849684,-53,53, + 5949535300104798.,6498927828967552.,-.499998830498596203406,-53,53, + 5949535300106678.,6498927828970056.,-.499854171732478563312,-53,53, + 5949535300107853.,6498927828971621.,-.499763759692660979815,-53,53, + 5949535300107889.,6498927828971668.,.449175180594889177877,-53,53, + 5949535300107961.,6498927828971764.,.347053061170663181960,-53,53, + 5971604121801305.,6528363992088228.,-.499999715982358463801,-53,53, + 5971604121805147.,6528363992093359.,.499990039456782242599,-53,53, + 5971604121826278.,6528363992121585.,.499933740659169682867,-53,53, + 5971604121828059.,6528363992123964.,.493161690471072500535,-53,53, + 5971604121828062.,6528363992123969.,-.499550446614681687347,-53,53, + 5971604121828199.,6528363992124151.,.499928626470892755504,-53,53, + 6059040276404246.,6645839692830418.,.499988807226648310511,-53,53, + 6059040276408599.,6645839692836302.,-.476907288764893477140,-53,53, + 6059040276408616.,6645839692836324.,.498372464600131309952,-53,53, + 6059040276409222.,6645839692837143.,.499521319882286397853,-53,53, + 6059040276409424.,6645839692837416.,.499904271658049777874,-53,53, + 6059040276451252.,6645839692893946.,.499994071713939692410,-53,53, + 6179968525049343.,6810652659572238.,.499998331671199840171,-53,53, + 6179968525076875.,6810652659610083.,.499979037718677098023,-53,53, + 6179968525077473.,6810652659610906.,-.499803451456452492017,-53,53, + 6179968525077668.,6810652659611174.,-.456254263128698084089,-53,53, + 6179968525077684.,6810652659611196.,-.462937406650189405778,-53,53, + 6179968525077764.,6810652659611306.,-.496353124256886300111,-53,53, + 6179968525077772.,6810652659611317.,-.499694696017486349084,-53,53, + 6179968525086152.,6810652659622836.,-.499991108292730514472,-53,53, + 6230674196596901.,6880608691408570.,-.499661016570265826707,-53,53, + 6230674196596979.,6880608691408678.,-.487813916335104366198,-53,53, + 6230674196597135.,6880608691408894.,-.464119715861059274079,-53,53, + 6230674196597148.,6880608691408912.,-.462145199154664830178,-53,53, + 6230674196597912.,6880608691409970.,-.499950524964492185546,-53,53, + 6230674196601457.,6880608691414879.,-.499976544343879165868,-53,53, + 6230674196605002.,6880608691419787.,.499997438839555314081,-53,53, + 6353877460214094.,7052803657892260.,-.499998335631344727412,-53,53, + 6353877460233799.,7052803657920061.,-.499970401755915812766,-53,53, + 6353877460234904.,7052803657921620.,-.499461347365533653968,-53,53, + 6353877460235162.,7052803657921984.,-.497532536437523542518,-53,53, + 6353877460235252.,7052803657922110.,.479884490633831277476,-53,53, + 6353877460235257.,7052803657922118.,-.465814563417707884820,-53,53, + 6353877460235291.,7052803657922166.,-.496568130968028365859,-53,53, + 6353877460235880.,7052803657922997.,-.499916698196461709673,-53,53, + 6353877460251423.,7052803657944926.,-.499996094105263491925,-53,53, + 6402079148376317.,7121067604915201.,-.463305606102284095940,-53,53, + 6402079148376324.,7121067604915210.,.488062331176986433576,-53,53, + 6402079148376343.,7121067604915237.,.498918160935062442864,-53,53, + 6402079148376713.,7121067604915763.,.499794845713911381678,-53,53, + 6402079148383622.,7121067604925585.,.499948946379979266947,-53,53, + 6402079148385925.,7121067604928860.,-.499999684326339626759,-53,53, + 6673278757212865.,7515460890347627.,.499876793868845691812,-53,53, + 6673278757212955.,7515460890347762.,-.498641168036492198422,-53,53, + 6673278757213135.,7515460890348030.,-.495677091840570663045,-53,53, + 6673278757213172.,7515460890348085.,-.406178920621430210630,-53,53, + 6673278757213180.,7515460890348097.,-.494936072790215838399,-53,53, + 6673278757216921.,7515460890353667.,-.499999353814738766158,-53,53, + 6710148704110588.,7570542881826505.,-.499999985952211281850,-53,53, + 6710148704143595.,7570542881875983.,.499927598746583514743,-53,53, + 6710148704144607.,7570542881877501.,-.465869751087902117960,-53,53, + 6710148704144625.,7570542881877528.,-.483047964817553334562,-53,53, + 6710148704144643.,7570542881877554.,.499773821452885718577,-53,53, + 6710148704149358.,7570542881884623.,-.499963827376137452321,-53,53, + 6710148704156169.,7570542881894832.,.499990981826099529161,-53,53, + 6728987427069645.,7598832647166834.,.499992540987961014730,-53,53, + 6728987427118367.,7598832647240128.,.441454128726191039233,-53,53, + 6728987427118379.,7598832647240146.,.493408021076165687337,-53,53, + 6728987427118381.,7598832647240150.,-.497932996865501251643,-53,53, + 6728987427118496.,7598832647240322.,.499958471490549316029,-53,53, + 6728987427127504.,7598832647253874.,-.499986326026489638669,-53,53, + 7051650888458250.,8100158756022477.,-.499996610373961232632,-53,53, + 7051650888467066.,8100158756036646.,.499933858309129003863,-53,53, + 7051650888471474.,8100158756043731.,.499899103169820375772,-53,53, + 7051650888471693.,8100158756044083.,.499670516380015494454,-53,53, + 7051650888471912.,8100158756044435.,.499441929607520502509,-53,53, + 7051650888471940.,8100158756044481.,-.496021086051641768777,-53,53, + 7051650888471945.,8100158756044489.,-.459496624562176684514,-53,53, + 7198343454188594.,8339984163066484.,-.499021282347816248365,-53,53, + 7198343454188597.,8339984163066488.,.491860254313398573524,-53,53, + 7198343454188630.,8339984163066543.,.391557157587004279493,-53,53, + 7198343454188704.,8339984163066666.,.499968395232464737162,-53,53, + 7198343454189691.,8339984163068308.,.499993957014877416557,-53,53, + 7267747051736226.,8456450206172150.,-.499996686962306442317,-53,53, + 7267747051742103.,8456450206182098.,.499957716141009384351,-53,53, + 7267747051745932.,8456450206188581.,-.498880899318537048058,-53,53, + 7267747051745984.,8456450206188669.,-.469614669973010732071,-53,53, + 7267747051745994.,8456450206188685.,.459090374132032901394,-53,53, + 7267747051746339.,8456450206189269.,.499414395782652181041,-53,53, + 7267747051747980.,8456450206192047.,.499912134255091358786,-53,53, + 7302452754195544.,8515466985471360.,-.499997651197704575861,-53,53, + 7302452754243535.,8515466985553337.,.499962685233955366511,-53,53, + 7302452754244731.,8515466985555381.,-.498475497015268047383,-53,53, + 7302452754244779.,8515466985555462.,.494898221436284922691,-53,53, + 7302452754244827.,8515466985555544.,.488271939888871568324,-53,53, + 7302452754245341.,8515466985556423.,-.499351158283213667535,-53,53, + 7302452754248062.,8515466985561071.,-.499978491184595207047,-53,53, + 7302452754264059.,8515466985588397.,-.499991450264411588272,-53,53, + 7319052364928449.,8543884491788145.,.499997907004495146172,-53,53, + 7319052364943194.,8543884491813443.,.499973691886683001400,-53,53, + 7319052364944608.,8543884491815870.,-.499892985863511346404,-53,53, + 7319052364945776.,8543884491817873.,.437982347488127697488,-53,53, + 7319052364945804.,8543884491817921.,.477588947952816382071,-53,53, + 7319052364945818.,8543884491817945.,.497392248185294675646,-53,53, + 7319052364945920.,8543884491818120.,.498816292738903385259,-53,53, + 7319052364946022.,8543884491818296.,-.499759662702747669935,-53,53, + 7399032995882601.,8682601918654308.,.499987438041673104770,-53,53, + 7399032995884569.,8682601918657760.,-.499977339527454014689,-53,53, + 7399032995890473.,8682601918668113.,-.499871660807197462308,-53,53, + 7399032995891508.,8682601918669927.,.431549305978244124805,-53,53, + 7399032995891524.,8682601918669955.,.488460161507564430760,-53,53, + 7399032995891528.,8682601918669963.,-.497312124610085822268,-53,53, + 7399032995891597.,8682601918670083.,.498115939861685815779,-53,53, + 7399032995892230.,8682601918671193.,.499651661864156364001,-53,53, + 7399032995911910.,8682601918705704.,-.499995934931546756432,-53,53, + 7511273082104843.,8882637232663223.,.495661358456226166073,-53,53, + 7511273082104875.,8882637232663281.,.478534031108193835182,-53,53, + 7511273082104880.,8882637232663291.,-.461642113789885268771,-53,53, + 7511273082104944.,8882637232663407.,-.495896768484081662858,-53,53, + 7511273082106933.,8882637232667011.,-.497967207777608563228,-53,53, + 7511273082108805.,8882637232670403.,-.499915854533972403772,-53,53, + 7511273082108922.,8882637232670614.,.499962355107842441642,-53,53, + 7511273082117096.,8882637232685426.,-.499999287662818199573,-53,53, + 7579296827217978.,9007199254685697.,-.000002361993478473412,-53,53, + 7579296827247847.,9007199254740979.,.014668785239053346782,-53,53, + 7579296827247854.,4503599627370496.,-.014810595497240952723,-53,52, + 7579296827247855.,4503599627370497.,-.089402736656778000433,-53,52, + 7579296827247860.,4503599627370502.,-.462363442454458796761,-53,52, + 7579296827247874.,4503599627370514.,.493346581312074361216,-53,52, + 7579296827248075.,4503599627370701.,-.499673791747729136834,-53,52, + 7579296827249362.,4503599627371892.,-.499759463742602354677,-53,52, + 7579296827252794.,4503599627375068.,-.499987919997448521711,-53,52, + 7723582849387787.,4640378654932767.,-.499998242848476766099,-53,52, + 7723582849396196.,4640378654940939.,-.499659965400756888718,-53,52, + 7723582849396338.,4640378654941076.,.498205183508969452923,-53,52, + 7723582849396515.,4640378654941249.,-.490371356220448314859,-53,52, + 7723582849396517.,4640378654941250.,.453260547285496531349,-53,52, + 7723582849396551.,4640378654941283.,.495002906886772812925,-53,52, + 7723582849397154.,4640378654941870.,-.499978185999938507408,-53,52, + 7913137471553705.,4831398794570584.,.499993637141858510868,-53,52, + 7913137471590684.,4831398794609291.,.499990141203648221124,-53,52, + 7913137471590791.,4831398794609404.,-.499982825648805338215,-53,52, + 7913137471592610.,4831398794611308.,-.499523261356741225146,-53,52, + 7913137471604166.,4831398794623404.,-.496603641864159425458,-53,52, + 7913137471605022.,4831398794624300.,-.496387371376660395384,-53,52, + 8070217332232141.,5001786864384376.,-.499993749725116096357,-53,52, + 8070217332253300.,5001786864408198.,-.499970632991461177567,-53,52, + 8070217332254905.,5001786864410004.,.499889347245881305341,-53,52, + 8070217332256343.,5001786864411623.,.481695361934528367021,-53,52, + 8070217332256351.,5001786864411632.,.488548246581421276725,-53,52, + 8070217332256367.,5001786864411651.,-.497745984124683881360,-53,52, + 8070217332256510.,5001786864411811.,.499749328945956592984,-53,52, + 8070217332260888.,5001786864416740.,.499990457805032884761,-53,52, + 8108726220153628.,5045572455782217.,-.499967568351995655682,-53,52, + 8108726220153756.,5045572455782363.,.499928287090102522391,-53,52, + 8108726220155676.,5045572455784568.,.498366119912146593953,-53,52, + 8108726220156956.,5045572455786038.,.497324676367021183827,-53,52, + 8108726220156983.,5045572455786070.,-.494884791572074073707,-53,52, + 8108726220163255.,5045572455793273.,-.499987850499216658427,-53,52, + 8108726220172882.,5045572455804328.,.499991923475958380819,-53,52, + 8145371468091059.,5088072487290772.,.499959222158311858776,-53,52, + 8145371468091415.,5088072487291189.,.498866581948988641249,-53,52, + 8145371468091450.,5088072487291230.,.495950170696870379070,-53,52, + 8145371468091485.,5088072487291271.,.493033759445542763097,-53,52, + 8145371468091503.,5088072487291293.,-.422751823483403571452,-53,52, + 8145371468093802.,5088072487293985.,.499967336366304756745,-53,52, + 8145371468104774.,5088072487306837.,.499999841760405351153,-53,52, + 8201755169934770.,5155178923831566.,-.498381947564210466062,-53,52, + 8201755169934832.,5155178923831641.,-.499200473587086237533,-53,52, + 8201755169934894.,5155178923831715.,.499981000392789463222,-53,52, + 8201755169936115.,5155178923833192.,.499990351428091252098,-53,52, + 8201755169937336.,5155178923834669.,.499999703530512605301,-53,52, + 8344755511727753.,5336225864374172.,.499995154613044391610,-53,52, + 8344755511738379.,5336225864388287.,.499961979519858529195,-53,52, + 8344755511738513.,5336225864388465.,.498267603642273957341,-53,52, + 8344755511738714.,5336225864388732.,.495726039858363799442,-53,52, + 8488875008853133.,5538964726344421.,-.499979947173134078874,-53,52, + 8488875008858693.,5538964726352736.,-.476170228675989836702,-53,52, + 8488875008858699.,5538964726352744.,.496877048022022882997,-53,52, + 8488875008858810.,5538964726352910.,.498251666944348441656,-53,52, + 8488875008858921.,5538964726353076.,.499626285883922156027,-53,52, + 8488875008859700.,5538964726354242.,-.499735622153967712788,-53,52, + 8488875008864041.,5538964726360733.,.499969088149549607509,-53,52, + 8488875008934609.,5538964726466269.,-.499989893962882195500,-53,52, + 8538353789941950.,5614762207180422.,.499992835804794900438,-53,52, + 8538353789945624.,5614762207186191.,.499951332999613495054,-53,52, + 8538353789950957.,5614762207194566.,-.499836688406628736019,-53,52, + 8538353789951313.,5614762207195124.,.499614928540881448986,-53,52, + 8538353789951790.,5614762207195873.,.496071168426369954074,-53,52, + 8538353789951811.,5614762207195906.,.470757921134253394459,-53,52, + 8538353789951839.,5614762207195950.,.437006924745882702524,-53,52, + 8538353789951904.,5614762207196053.,-.498486459722194568662,-53,52, + 8538353789965653.,5614762207217641.,.499997648104666049204,-53,52, + 8575032706796560.,5673498176245625.,.499750815384015733575,-53,52, + 8575032706796915.,5673498176246205.,.496489252864340616534,-53,52, + 8575032706797158.,5673498176246603.,-.491658802472910486402,-53,52, + 8575032706797169.,5673498176246620.,.480071120950612747670,-53,52, + 8575032706797199.,5673498176246669.,.493880003015900943801,-53,52, + 8575032706798081.,5673498176248110.,.499861136476925309480,-53,52, + 8575032706799602.,5673498176250595.,.499971461835298671549,-53,52, + 8575032706808799.,5673498176265621.,.499981192630642910128,-53,52, + 8575032706827193.,5673498176295674.,-.499998877912697965740,-53,52, + 8668443273547361.,5835173039207394.,.499999807410981661835,-53,52, + 8668443273577675.,5835173039263186.,.499982868756385102875,-53,52, + 8668443273592832.,5835173039291082.,.499975317603896474428,-53,52, + 8668443273592989.,5835173039291371.,.453725984821547294712,-53,52, + 8668443273592995.,5835173039291382.,.496544481659193554328,-53,52, + 8668443273593089.,5835173039291556.,-.499299067871825462246,-53,52, + 9007199254740991.,7074237684919576.,.275765942794142804964,-53,52 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/asinh.c b/src/regress/lib/libm/fpaccuracy/asinh.c new file mode 100644 index 000000000..c8d3e658c --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/asinh.c @@ -0,0 +1,1073 @@ +/* $OpenBSD: asinh.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:26:21. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1042 +#define F asinh +#define Fs "asinh" +#define Fn fpaccuracy_asinh + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -8049513536839553.,-8457992901755234.,-.499998377437422951383,-43,50, + -8049513536834720.,-8457992901754559.,.499982993084000931896,-43,50, + -8049513536834098.,-8457992901754471.,-.499812493651608759430,-43,50, + -8049513536834012.,-8457992901754459.,-.470845310145070802963,-43,50, + -8049513536834005.,-8457992901754458.,-.491743330092207406303,-43,50, + -8049513536833955.,-8457992901754451.,-.498157758286015525938,-43,50, + -7986428235692289.,-8449134294088925.,-.499999315314612273724,-43,50, + -7986428235649445.,-8449134294082886.,.499976648961511308181,-43,50, + -7986428235638734.,-8449134294081376.,.499970645093378129567,-43,50, + -7986428235635315.,-8449134294080894.,.498848385485675354254,-43,50, + -7986428235635279.,-8449134294080888.,-.425995253397660123464,-43,50, + -7986428235635251.,-8449134294080884.,-.478651416973571901056,-43,50, + -7986428235635088.,-8449134294080861.,-.499471226361640683681,-43,50, + -7986428235634556.,-8449134294080786.,-.499938334299804306260,-43,50, + -7815961442923339.,-8424842288088658.,.499956602326580262630,-43,50, + -7815961442923096.,-8424842288088622.,-.495584112167520932846,-43,50, + -7815961442923075.,-8424842288088619.,-.470507383790416860743,-43,50, + -7815961442923047.,-8424842288088615.,-.437071745954265454702,-43,50, + -7815961442922860.,-8424842288088588.,-.499483736119598067774,-43,50, + -7815961442919750.,-8424842288088141.,.499974609353584322852,-43,50, + -7815961442916161.,-8424842288087624.,.499992616617988570897,-43,50, + -6688361407871022.,-8249428261093779.,-.499989896804883379080,-43,50, + -6688361407870024.,-8249428261093611.,-.499628255251940449693,-43,50, + -6688361407869727.,-8249428261093562.,.496471351507633179399,-43,50, + -6688361407869715.,-8249428261093559.,-.483484219936377789151,-43,50, + -6688361407869685.,-8249428261093554.,-.433373148546389354300,-43,50, + -6688361407869626.,-8249428261093545.,.498511958520653981084,-43,50, + -6593216446354147.,-8233296828062500.,-.499943868904088085418,-43,50, + -6593216446352806.,-8233296828062272.,.497608952365089370266,-43,50, + -6593216446352794.,-8233296828062269.,-.453195944088667463624,-43,50, + -6593216446352724.,-8233296828062257.,-.499557840068841327593,-43,50, + -6593216446352033.,-8233296828062140.,.499926872476537937141,-43,50, + -6593216446338617.,-8233296828059848.,-.499947360226206133294,-43,50, + -6593216446144492.,-8233296828026698.,-.499990474691957466345,-43,50, + -6319743896468655.,-8185600797170068.,-.498743624412731123481,-43,50, + -6319743896468610.,-8185600797170060.,-.481734143854571357491,-43,50, + -6319743896468481.,-8185600797170037.,-.499640299587530315347,-43,50, + -6319743896450609.,-8185600797166853.,-.499786149777286863662,-43,50, + -6319743896424918.,-8185600797162276.,-.499995793650098637918,-43,50, + -5890506482728112.,-8106408795123866.,-.499800717563959350665,-43,50, + -5890506482727777.,-8106408795123802.,-.468626254601300188140,-43,50, + -5890506482727772.,-8106408795123802.,.487062916487722305859,-43,50, + -5890506482727751.,-8106408795123797.,-.499042564938374360938,-43,50, + -5890506482726961.,-8106408795123647.,.499846467137907612869,-43,50, + -5890506482721635.,-8106408795122629.,.499951511765477248180,-43,50, + -5890506482718972.,-8106408795122119.,-.499995965575573018031,-43,50, + -5703853854996304.,-8070154946620235.,.499989717731483294573,-43,50, + -5703853854990321.,-8070154946619054.,.499942367778425507008,-43,50, + -5703853854989784.,-8070154946618948.,.499770977746280796721,-43,50, + -5703853854989475.,-8070154946618887.,.494085764492084007298,-43,50, + -5703853854989455.,-8070154946618883.,.441937854249207780216,-43,50, + -5703853854989247.,-8070154946618842.,.499599587724115615020,-43,50, + -5703853854955497.,-8070154946612179.,-.499998927165243440432,-43,50, + -5176976928861494.,-7961031992803924.,.499858016574962574587,-43,50, + -5176976928861356.,-7961031992803893.,-.487653033347752385742,-43,50, + -5176976928861264.,-7961031992803873.,-.479327066629117900902,-43,50, + -5176976928861255.,-7961031992803872.,.478009169245550218016,-43,50, + -5176976928854767.,-7961031992802461.,.499953431780588984430,-43,50, + -5176976928851884.,-7961031992801834.,.499994324593518790676,-43,50, + -5162726732165711.,-7957928561101458.,-.499993294037675983250,-43,50, + -5162726732160424.,-7957928561100305.,-.499945726885506055192,-43,50, + -5162726732158975.,-7957928561099989.,-.498986974115806583363,-43,50, + -5162726732158920.,-7957928561099978.,.495528368468641334330,-43,50, + -5162726732158599.,-7957928561099908.,.499881549736786554763,-43,50, + -4714366116129085.,-7855640256670336.,-.499994080238576206793,-43,50, + -4714366116089093.,-7855640256660786.,.499990009006871938561,-43,50, + -4714366116088176.,-7855640256660566.,-.499535259850950718123,-43,50, + -4714366116088155.,-7855640256660561.,-.484257212572386654193,-43,50, + -8805554747255301.,-7778652598475765.,-.499499859184161891244,-44,50, + -8805554747255129.,-7778652598475744.,.492799667518490193929,-44,50, + -8805554747255082.,-7778652598475737.,-.497676624603384796857,-44,50, + -8805554747254777.,-7778652598475698.,-.499703626670091974858,-44,50, + -8805554747254253.,-7778652598475631.,-.499907394152035057755,-44,50, + -8805554747219708.,-7778652598471214.,-.499982094638414445396,-44,50, + -8805554747209838.,-7778652598469953.,.499996565548212768592,-44,50, + -7326121376011185.,-7571558996803307.,.499998670971317895715,-44,50, + -7326121375985333.,-7571558996799333.,-.499967589902990600786,-44,50, + -7326121375981572.,-7571558996798756.,.499921274519533109797,-44,50, + -7326121375981097.,-7571558996798683.,.499109578343003298781,-44,50, + -7326121375981045.,-7571558996798675.,.490599666340807465044,-44,50, + -7326121375980876.,-7571558996798649.,.462942452334062744384,-44,50, + -7326121375980635.,-7571558996798611.,-.499574639828365241327,-44,50, + -7326121375975462.,-7571558996797816.,-.499993385411129189145,-44,50, + -7309643749936985.,-7569023821944676.,.499992678062403470240,-44,50, + -7309643749920183.,-7569023821942088.,.494167925882756729606,-44,50, + -7309643749920170.,-7569023821942086.,.496544088140842753263,-44,50, + -7309643749920157.,-7569023821942084.,.498920250398932338070,-44,50, + -7309643749919735.,-7569023821942019.,.499131056009620636438,-44,50, + -7309643749918047.,-7569023821941759.,.499974278489899502867,-44,50, + -7309643749884800.,-7569023821936638.,.499994798903673640631,-44,50, + -5313564293881324.,-7209940121267594.,.499996394383468562657,-44,50, + -5313564293865042.,-7209940121264143.,-.499062971079767433376,-44,50, + -5313564293864976.,-7209940121264130.,.485709297820226410319,-44,50, + -5313564293864971.,-7209940121264128.,-.454838257566130614292,-44,50, + -5313564293864924.,-7209940121264118.,-.495985278197837916132,-44,50, + -5313564293864773.,-7209940121264087.,.499478549134932616022,-44,50, + -5313564293862805.,-7209940121263670.,.499960749157764477174,-44,50, + -5016941336691976.,-7145266104836713.,.499995808628173511229,-44,50, + -5016941336680288.,-7145266104834089.,-.499987945882430006979,-44,50, + -5016941336665463.,-7145266104830763.,.499947110767919096293,-44,50, + -5016941336662353.,-7145266104830065.,.440574297592673491050,-44,50, + -5016941336662326.,-7145266104830059.,.499865916258319735896,-44,50, + -5010586419820424.,-7143839041775667.,-.499963382882730113331,-44,50, + -5010586419818319.,-7143839041775195.,.499501685401434675203,-44,50, + -5010586419818159.,-7143839041775159.,.451955087274390228258,-44,50, + -5010586419818141.,-7143839041775155.,.496606094985169569767,-44,50, + -5010586419816975.,-7143839041774892.,-.499889738830057794424,-44,50, + -5010586419807300.,-7143839041772718.,-.499973091677482373869,-44,50, + -5010586419767928.,-7143839041763872.,.499997828282774890407,-44,50, + -4928523203117215.,-7125246533553625.,.497643240891611087017,-44,50, + -4928523203117158.,-7125246533553611.,-.481035115352005657718,-44,50, + -4928523203117018.,-7125246533553579.,-.498841604370776027721,-44,50, + -4928523203116786.,-7125246533553526.,-.499778071885595365353,-44,50, + -4928523203115661.,-7125246533553270.,.499991212830078991824,-44,50, + -4928523203111393.,-7125246533552294.,-.499995180266263950638,-44,50, + -4893070997072180.,-7117118412618844.,-.499998724786081073949,-44,50, + -4893070997051050.,-7117118412613982.,-.499981460109267506732,-44,50, + -4893070997032684.,-7117118412609756.,-.494665916169921725753,-44,50, + -4893070997032671.,-7117118412609754.,.496626096362713979670,-44,50, + -4893070997032558.,-7117118412609728.,.497856666839036035870,-44,50, + -4893070997032332.,-7117118412609675.,-.499682192206518467030,-44,50, + -4893070997030724.,-7117118412609305.,-.499870180390504331324,-44,50, + -4893070997029920.,-7117118412609120.,-.499964174436900744880,-44,50, + -6151338406595080.,-6594371338568627.,-.499997952687017514637,-45,50, + -6151338406593430.,-6594371338568325.,-.499955782038347388183,-45,50, + -6151338406584355.,-6594371338566664.,-.499723842022713009112,-45,50, + -6151338406583530.,-6594371338566513.,-.499702756445240064141,-45,50, + -6151338406583481.,-6594371338566505.,.468783344395756048428,-45,50, + -6151338406583459.,-6594371338566501.,.495450573344797948760,-45,50, + -5862093320205521.,-6540145638572425.,-.499996061725090632946,-45,50, + -5862093320179170.,-6540145638567365.,.499965182054256392605,-45,50, + -5862093320177608.,-6540145638567065.,.499279799397188173993,-45,50, + -5862093320177603.,-6540145638567064.,.459584903806224751597,-45,50, + -5862093320177457.,-6540145638567035.,-.499506047449546046460,-45,50, + -5862093320176676.,-6540145638566885.,-.499848738744241151517,-45,50, + -5862093320173401.,-6540145638566257.,.499994649450145144161,-45,50, + -7736772544919273.,-6072156728456010.,.499989686399102492935,-46,50, + -7736772544892232.,-6072156728452074.,-.499986355566888991522,-46,50, + -7736772544890837.,-6072156728451871.,-.499911157477157307325,-46,50, + -7736772544890315.,-6072156728451796.,.461407303752926467564,-46,50, + -7736772544890301.,-6072156728451794.,.498684044092501195063,-46,50, + -5060143069587560.,-5594142191504750.,.499971721284396965116,-46,50, + -5060143069584562.,-5594142191504082.,-.498812562152648132814,-46,50, + -5060143069584544.,-5594142191504078.,-.494135483132731363465,-46,50, + -5060143069584400.,-5594142191504046.,-.456718850972884470404,-46,50, + -5060143069584382.,-5594142191504042.,-.452041771952839516488,-46,50, + -5060143069584135.,-5594142191503987.,-.498972965398561757088,-46,50, + -5060143069581573.,-5594142191503417.,-.499935384705728330628,-46,50, + -5060143069575159.,-5594142191501991.,.499997107802392191811,-46,50, + -4942874542602395.,-8015541920850406.,.499996391422665143491,-48,51, + -4942874542597890.,-8015541920848356.,-.499994125711181977764,-48,51, + -4942874542575365.,-8015541920838111.,-.499946683458684265189,-48,51, + -4942874542575044.,-8015541920837966.,.499832017386534638387,-48,51, + -4942874542574723.,-8015541920837820.,.499610718241204407625,-48,51, + -4916353069589487.,-8003446840592745.,-.499996545027703602892,-48,51, + -4916353069560196.,-8003446840579352.,.499988498365053253079,-48,51, + -4916353069549266.,-8003446840574353.,-.499948781988448713052,-48,51, + -4916353069549137.,-8003446840574295.,.488341070853013370848,-48,51, + -4916353069549126.,-8003446840574289.,-.481649716889116152458,-48,51, + -4916353069549067.,-8003446840574263.,.497490603403289662173,-48,51, + -5263775657351826.,-6600943044222433.,.499974181708568408034,-49,51, + -5263775657348751.,-6600943044221124.,-.499482737748511128323,-49,51, + -5263775657348617.,-6600943044221068.,.499565318461431462514,-49,51, + -5263775657346567.,-6600943044220196.,.499927372598364087275,-49,51, + -5263775657335024.,-6600943044215285.,-.499985210937221070010,-49,51, + -5263775657290902.,-6600943044196517.,-.499997502215075129364,-49,51, + -5153546050517367.,-6553562956347260.,-.499879143233061026518,-49,51, + -5153546050516994.,-6553562956347098.,-.484328147247438672876,-49,51, + -5153546050516987.,-6553562956347095.,-.443821828287812196844,-49,51, + -5153546050516948.,-6553562956347079.,.496141948773038594576,-49,51, + -5153546050516750.,-6553562956346993.,.499034970776235295452,-49,51, + -5153546050514602.,-6553562956346059.,-.499883153948925775505,-49,51, + -5153546050462067.,-6553562956323240.,-.499959236564643470900,-49,51, + -5153546050434417.,-6553562956311230.,-.499999187715398479993,-49,51, + -4896645647483411.,-6439134606258295.,.499999666630194560633,-49,51, + -4896645647468426.,-6439134606251449.,.494635442612508681492,-49,51, + -4896645647468345.,-6439134606251411.,-.499988147731400476401,-49,51, + -4837866588197715.,-6412120679870855.,-.499996114369096437314,-49,51, + -4837866588170914.,-6412120679858465.,.499961661212017298023,-49,51, + -4837866588169560.,-6412120679857839.,.499511785323225597457,-49,51, + -4837866588169028.,-6412120679857593.,.460930297945980653502,-49,51, + -4837866588169002.,-6412120679857581.,.481601127510934608858,-49,51, + -4837866588168976.,-6412120679857568.,-.497728042924047696513,-49,51, + -4837866588168883.,-6412120679857526.,.499286847443652727852,-49,51, + -4837866588166560.,-6412120679856452.,.499992120011127270590,-49,51, + -4716555872204105.,-6355329303928547.,.499956409212763123726,-49,51, + -4716555872202563.,-6355329303927815.,-.499767932270604650892,-49,51, + -4716555872202428.,-6355329303927752.,.498310675976504922269,-49,51, + -4716555872202314.,-6355329303927697.,-.458867388168973829028,-49,51, + -4716555872202312.,-6355329303927697.,.489252294916204705792,-49,51, + -4716555872202293.,-6355329303927688.,.496389284225420556634,-49,51, + -4716555872200462.,-6355329303926820.,.499959148876114212538,-49,51, + -4716555872182247.,-6355329303918185.,.499972866920482138742,-49,51, + -4716555872145817.,-6355329303900914.,-.499999598352719597326,-49,51, + -4707537845203007.,-6351050184878840.,-.499997075745459014972,-49,51, + -4707537845168429.,-6351050184862417.,-.499580299865471196408,-49,51, + -4707537845168389.,-6351050184862399.,.498627134729258219686,-49,51, + -4707537845168229.,-6351050184862323.,.491456873109767404228,-49,51, + -4707537845168170.,-6351050184862294.,-.486187160861777207968,-49,51, + -4707537845166193.,-6351050184861355.,-.499784705775885228613,-49,51, + -4707537845163957.,-6351050184860293.,-.499989111188979446715,-49,51, + -8956367348707684.,-6239414756929438.,-.499993037358492825778,-50,51, + -8956367348676460.,-6239414756921650.,.499989847039090657836,-50,51, + -8956367348675542.,-6239414756921420.,-.499818495885978551081,-50,51, + -8956367348675081.,-6239414756921306.,.499188425595006009345,-50,51, + -8956367348675053.,-6239414756921299.,.483943726682975862414,-50,51, + -8956367348675045.,-6239414756921297.,.479588098422399768772,-50,51, + -8772453526432969.,-6193066425573640.,.498893314401061142710,-50,51, + -8772453526432938.,-6193066425573632.,.391538814216170236346,-50,51, + -8772453526432914.,-6193066425573625.,-.498025960120500652960,-50,51, + -8772453526432643.,-6193066425573557.,.498971796329065203663,-50,51, + -8772453526429057.,-6193066425572644.,.499835097737383316647,-50,51, + -8772453526428405.,-6193066425572478.,.499992061669252591017,-50,51, + -8298192411077068.,-6068990242780960.,-.499997642287870610939,-50,51, + -8298192411061880.,-6068990242776877.,.499979294882313250828,-50,51, + -8298192411035301.,-6068990242769730.,.499938952591379155063,-50,51, + -8298192411034375.,-6068990242769481.,.498093986784105354658,-50,51, + -8298192411034282.,-6068990242769455.,-.494531911508206049585,-50,51, + -8298192411034256.,-6068990242769449.,.496776977141304501443,-50,51, + -8298192411033806.,-6068990242769327.,-.499799950075297433559,-50,51, + -7900377053080465.,-5959420236766677.,.499998565566729879679,-50,51, + -7900377053043066.,-5959420236756124.,.499993522176866060090,-50,51, + -7900377053038023.,-5959420236754700.,-.499953676777944565170,-50,51, + -7900377053036974.,-5959420236754405.,.499859011871762028681,-50,51, + -7900377053035280.,-5959420236753926.,-.498536894078746007977,-50,51, + -7900377053035273.,-5959420236753925.,.476676345979518149096,-50,51, + -7900377053035078.,-5959420236753869.,-.499526252396719470847,-50,51, + -7846976255503947.,-5944301825548779.,.499997334048302975539,-50,51, + -7846976255472953.,-5944301825539974.,-.499987004082306891457,-50,51, + -7846976255461272.,-5944301825536656.,-.453778601801325446628,-50,51, + -7846976255461251.,-5944301825536650.,-.488624045128197475192,-50,51, + -7846976255461244.,-5944301825536649.,.499760807096181991257,-50,51, + -7846976255460297.,-5944301825536380.,.499825815181826155259,-50,51, + -7846976255457456.,-5944301825535572.,-.499979160370387378896,-50,51, + -7688073522783041.,-5898710965378458.,-.499991135121175836485,-50,51, + -7688073522778814.,-5898710965377233.,-.498544511868831053744,-50,51, + -7688073522778745.,-5898710965377214.,.497930486245087026939,-50,51, + -7688073522778500.,-5898710965377143.,.499906928824911310656,-50,51, + -7668040568186134.,-5892897917711304.,.499998801945632644399,-50,51, + -7668040568136276.,-5892897917696818.,.499983680983218283760,-50,51, + -7668040568133378.,-5892897917695976.,.499822349217314591641,-50,51, + -7668040568132077.,-5892897917695598.,.499059791476169018409,-50,51, + -7668040568131929.,-5892897917695555.,.499741683451176438976,-50,51, + -6448237341710964.,-5507693984738736.,-.499990190296234193578,-50,51, + -6448237341697473.,-5507693984734095.,-.499587593427808336353,-50,51, + -6448237341697348.,-5507693984734052.,-.498694381271339271915,-50,51, + -6448237341697255.,-5507693984734021.,.493970168573598511384,-50,51, + -6448237341697252.,-5507693984734019.,-.474008394334621847081,-50,51, + -6448237341697223.,-5507693984734009.,-.497801169114061290643,-50,51, + -6448237341695287.,-5507693984733343.,-.499967099118854930198,-50,51, + -6448237341674020.,-5507693984726027.,-.499999541620287920097,-50,51, + -5630902860407256.,-5207698589898891.,.499997148641001459044,-50,51, + -5630902860361897.,-5207698589881103.,-.499896676429481702130,-50,51, + -5630902860360854.,-5207698589880694.,-.499673769973165428845,-50,51, + -5630902860360803.,-5207698589880675.,.499378356806528271426,-50,51, + -5630902860360604.,-5207698589880596.,-.465104521051432561102,-50,51, + -5630902860360599.,-5207698589880595.,.495586863927044785291,-50,51, + -5630902860357674.,-5207698589879447.,-.499952923376761900578,-50,51, + -5630902860353451.,-5207698589877792.,.499990830870161427301,-50,51, + -4917964729984043.,-4909626108725700.,-.499992782478341728421,-50,51, + -4917964729963605.,-4909626108716579.,.496850354123900349492,-50,51, + -4917964729963596.,-4909626108716574.,-.486221786575209808181,-50,51, + -4917964729963578.,-4909626108716566.,-.452366067973409168574,-50,51, + -4917964729963484.,-4909626108716524.,-.497786204163551890651,-50,51, + -4917964729962776.,-4909626108716208.,-.499461272464825083300,-50,51, + -4917964729962599.,-4909626108716129.,-.499880039533389289620,-50,51, + -4917964729960177.,-4909626108715048.,-.499960569431820842410,-50,51, + -4831850099959063.,-4870867728729063.,.499997047177905715112,-50,51, + -4831850099955139.,-4870867728727281.,-.499995187599101301069,-50,51, + -4831850099948375.,-4870867728724211.,-.498962431073687463619,-50,51, + -4831850099948342.,-4870867728724197.,.478866380433250103542,-50,51, + -4831850099948331.,-4870867728724192.,.471475984268917520517,-50,51, + -4831850099947833.,-4870867728723965.,-.499471042068665473900,-50,51, + -4831850099947291.,-4870867728723719.,-.499979653037470259348,-50,51, + -4681019096835127.,-4801376171896567.,-.499993994886150589586,-50,51, + -4681019096820370.,-4801376171889665.,-.499634410528710374564,-50,51, + -4681019096820355.,-4801376171889658.,-.483980456885030496073,-50,51, + -4681019096820340.,-4801376171889651.,-.468326503241329365862,-50,51, + -4681019096818326.,-4801376171888709.,-.499855660487406163075,-50,51, + -4681019096816793.,-4801376171887993.,.499978402302537939911,-50,51, + -4531746129751087.,-4730486380021339.,.499984828095256624130,-50,51, + -4531746129746050.,-4730486380018909.,-.486548813431601383565,-50,51, + -4531746129746048.,-4730486380018909.,.477919507537128050969,-50,51, + -4531746129746021.,-4730486380018896.,.498241840615014655615,-50,51, + -4531746129745233.,-4730486380018516.,.498760302327740579199,-50,51, + -4531746129743460.,-4730486380017661.,.499926841408919405689,-50,51, + -4531746129735636.,-4730486380013888.,.499998476176339429766,-50,51, + -7166361094597619.,-8442591155485561.,.499035336844431225757,-51,52, + -7166361094597614.,-8442591155485558.,.496713566860577453893,-51,52, + -7166361094597459.,-8442591155485465.,.424738697362054686662,-51,52, + -7166361094597424.,-8442591155485444.,.408486307475544653243,-51,52, + -7166361094596760.,-8442591155485045.,-.499844746353718435140,-51,52, + -7166361094593314.,-8442591155482980.,.499991381451084784068,-51,52, + -6982521428629155.,-8331066694058304.,.499960785616771840900,-51,52, + -6982521428628202.,-8331066694057719.,.499848750489670407844,-51,52, + -6982521428626801.,-8331066694056858.,-.495069361879617319869,-51,52, + -6982521428626788.,-8331066694056851.,.484992068912834238648,-51,52, + -6982521428626498.,-8331066694056672.,-.498252936482824720557,-51,52, + -6982521428626296.,-8331066694056549.,.499624680452431917374,-51,52, + -6982521428620679.,-8331066694053100.,-.499986336437591276751,-51,52, + -6982521428584869.,-8331066694031118.,-.499998831195783956248,-51,52, + -5383107157246921.,-7231919413599899.,-.493025076719990526685,-51,52, + -5383107157246864.,-7231919413599855.,-.499780959289457665780,-51,52, + -5383107157246566.,-7231919413599626.,.499986531845045809841,-51,52, + -5383107157237981.,-7231919413593000.,.499999661966705470065,-51,52, + -8553544359437601.,-6294490081681967.,-.499304544674754699017,-52,52, + -8553544359437513.,-6294490081681927.,.498743422998671935551,-52,52, + -8553544359437367.,-6294490081681858.,-.481767903360596322539,-52,52, + -8553544359437352.,-6294490081681851.,-.493464272507044992208,-52,52, + -8553544359437337.,-6294490081681845.,.494839358346515933247,-52,52, + -8553544359435549.,-6294490081681011.,-.499367843840283050063,-52,52, + -8553544359417081.,-6294490081672407.,-.499937528249592608625,-52,52, + -8553544359415029.,-6294490081671452.,.499999174380533618297,-52,52, + -8099766831127673.,-6078583505707359.,.499995915044406274476,-52,52, + -8099766831126463.,-6078583505706771.,.499962323377924166617,-52,52, + -8099766831116783.,-6078583505702067.,.499693592461539273888,-52,52, + -8099766831116178.,-6078583505701773.,.499676796921845160775,-52,52, + -8099766831115929.,-6078583505701651.,-.498677223055734911287,-52,52, + -8099766831115894.,-6078583505701634.,-.490413731887697117219,-52,52, + -8099766831115892.,-6078583505701634.,.481487039036192452355,-52,52, + -7588440847589921.,-5823946931908695.,-.499617342763824095539,-52,52, + -7588440847589680.,-5823946931908573.,.499085239871852003888,-52,52, + -7588440847589586.,-5823946931908525.,.473682927705637415994,-52,52, + -7588440847589584.,-5823946931908524.,.494419048723382305940,-52,52, + -7588440847589053.,-5823946931908253.,.499859178941689006944,-52,52, + -7588440847583700.,-5823946931905520.,-.499912916209867444883,-52,52, + -7588440847568268.,-5823946931897645.,.499996867149127039728,-52,52, + -7221316242094492.,-5633159563017300.,-.499981118126766775249,-52,52, + -7221316242030058.,-5633159562983203.,-.499892424243953950033,-52,52, + -7221316242029304.,-5633159562982805.,.499674061753087206649,-52,52, + -7221316242028807.,-5633159562982541.,-.499285429556069038575,-52,52, + -7221316242025294.,-5633159562980682.,-.499978976405915145280,-52,52, + -6207868236596493.,-5068246230465688.,-.499993940096122623418,-52,52, + -6207868236509438.,-5068246230414568.,-.499974398764487680498,-52,52, + -6207868236499176.,-5068246230408542.,-.499857194386192171285,-52,52, + -6207868236498677.,-5068246230408249.,-.479582541619450401034,-52,52, + -6207868236498660.,-5068246230408239.,-.496927894130131265254,-52,52, + -6207868236498597.,-5068246230408203.,.497615799506913472957,-52,52, + -6207868236498253.,-5068246230408001.,.499568666354797820839,-52,52, + -6207868236497158.,-5068246230407358.,.499970960585117058474,-52,52, + -4503599627376596.,-7938707516159450.,.499980679927574738579,-52,53, + -4503599627370855.,-7938707516151330.,-.499957739044789355998,-52,53, + -4503599627370517.,-7938707516150852.,-.495773656948745994797,-52,53, + -4503599627370497.,-7938707516150824.,-.211502409486879560797,-52,53, + -9007199254740990.,-7938707516150821.,-.383075284740689463194,-53,53, + -9007199254740986.,-7938707516150819.,.445351840005501262447,-53,53, + -9007199254740976.,-7938707516150811.,-.483580348129019175791,-53,53, + -9007199254740894.,-7938707516150754.,.499175709168061290383,-53,53, + -9007199254619348.,-7938707516064807.,-.499997900313343486584,-53,53, + -8871213671119477.,-7842187351465019.,-.499999833264849990682,-53,53, + -8871213671078609.,-7842187351435902.,-.499980274038145244031,-53,53, + -8871213671077903.,-7842187351435400.,.499971126385946561451,-53,53, + -8871213671077823.,-7842187351435343.,.497132758163290915408,-53,53, + -8871213671077771.,-7842187351435305.,-.454712181181299535566,-53,53, + -8871213671077750.,-7842187351435290.,-.492957252839661521718,-53,53, + -8108579655013549.,-7287186729325581.,.499962404918949877161,-53,53, + -8108579655010862.,-7287186729323584.,.499769968664462151344,-53,53, + -8108579655010714.,-7287186729323474.,.494549097602856042576,-53,53, + -8108579655009721.,-7287186729322735.,-.499939584564271190309,-53,53, + -8108579655003206.,-7287186729317894.,.499965991143294964375,-53,53, + -8108579654910119.,-7287186729248711.,.499998464678217928110,-53,53, + -7881394195513142.,-7117278534572360.,-.499990543475111041497,-53,53, + -7881394195508575.,-7117278534568924.,.499838116265221039343,-53,53, + -7881394195508090.,-7117278534568559.,.497630299362600914194,-53,53, + -7881394195507993.,-7117278534568486.,.497188735983245671742,-53,53, + -7881394195507989.,-7117278534568482.,-.492520194465379170010,-53,53, + -7881394195507961.,-7117278534568461.,-.420482707605734512141,-53,53, + -7881394195506340.,-7117278534567242.,.499973228145462737343,-53,53, + -7881394195483699.,-7117278534550203.,.499999668477296813488,-53,53, + -7552125243356088.,-6867226039586465.,.499998000520535593851,-53,53, + -7552125243337608.,-6867226039572304.,.499911017801313440635,-53,53, + -7552125243332328.,-6867226039568258.,.499886168223158906357,-53,53, + -7552125243332067.,-6867226039568057.,-.498978696470019135657,-53,53, + -7552125243331960.,-6867226039567976.,.493823830265786158925,-53,53, + -7109328173648671.,-6523792058321349.,.499949160504041237057,-53,53, + -7109328173647927.,-6523792058320764.,-.496236421031280552662,-53,53, + -7109328173647741.,-6523792058320618.,-.495282816411445416199,-53,53, + -7109328173647713.,-6523792058320597.,.483355360628226633356,-53,53, + -7109328173633972.,-6523792058309810.,-.499959253143420067706,-53,53, + -7109328173497654.,-6523792058202807.,-.499993862252244594802,-53,53, + -7006352136063411.,-6442736009157264.,.499997082793832953262,-53,53, + -7006352135993091.,-6442736009101759.,.499981357614951965897,-53,53, + -7006352135985544.,-6442736009095802.,.499908578883131687917,-53,53, + -7006352135983147.,-6442736009093909.,-.499452020931407721738,-53,53, + -7006352135983109.,-6442736009093880.,.494717481451469707188,-53,53, + -7006352135983033.,-6442736009093820.,.483056486217408540797,-53,53, + -7006352135983019.,-6442736009093808.,-.466460012904628602797,-53,53, + -7006352135979027.,-6442736009090658.,.499978237779789936556,-53,53, + -6828286958433415.,-6301511571394747.,.499914227655678479173,-53,53, + -6828286958433351.,-6301511571394695.,-.498867411341382035427,-53,53, + -6828286958433031.,-6301511571394440.,-.492775606324067720267,-53,53, + -6828286958433026.,-6301511571394437.,.491694578129362422379,-53,53, + -6828286958433006.,-6301511571394421.,.429575315943093641109,-53,53, + -6828286958430131.,-6301511571392130.,.499931376844208020077,-53,53, + -6828286958416995.,-6301511571381662.,.499999978191789491939,-53,53, + -6595469068503650.,-6114824937364083.,-.499994077970364273509,-53,53, + -6595469068461621.,-6114824937330173.,-.499990794640123736072,-53,53, + -6595469068459628.,-6114824937328566.,.499961776736773086016,-53,53, + -6595469068453649.,-6114824937323742.,.499819491885042688790,-53,53, + -6595469068453473.,-6114824937323599.,-.499181184147007854580,-53,53, + -6595469068453416.,-6114824937323554.,.489778824183804763489,-53,53, + -6595469068453406.,-6114824937323545.,-.441982577863406789331,-53,53, + -6595469068453385.,-6114824937323528.,-.498681522162537152220,-53,53, + -6056160701838673.,-5673485487638135.,.499998380760070142529,-53,53, + -6056160701828458.,-5673485487629657.,-.481962206219358094034,-53,53, + -6056160701828452.,-5673485487629653.,.497196700926161812888,-53,53, + -6056160701828405.,-5673485487629613.,-.499391859767212448489,-53,53, + -6056160701828117.,-5673485487629374.,-.499764316779873355200,-53,53, + -6056160701827829.,-5673485487629136.,.499863226211004220450,-53,53, + -6056160701822551.,-5673485487624756.,.499981879288513684810,-53,53, + -5587044502249112.,-5279501853760305.,-.499990748557556971152,-53,53, + -5587044502246988.,-5279501853758501.,.461660190493951790820,-53,53, + -5587044502246975.,-5279501853758489.,-.491022736902980192575,-53,53, + -5587044502246935.,-5279501853758455.,-.499277898124264575257,-53,53, + -5587044502246449.,-5279501853758042.,-.499578106957468068291,-53,53, + -5587044502245963.,-5279501853757629.,-.499878315780689608136,-53,53, + -5587044502222462.,-5279501853737658.,-.499991899660160545862,-53,53, + -5574097035223585.,-5268495637054045.,.499695326420762061174,-53,53, + -5574097035223545.,-5268495637054010.,-.486677003862872197227,-53,53, + -5574097035223438.,-5268495637053920.,.499777012628738396247,-53,53, + -5574097035222997.,-5268495637053544.,-.499977928741855383511,-53,53, + -5574097035210816.,-5268495637043187.,.499988195060783863546,-53,53, + -5574097035186307.,-5268495637022345.,-.499997852090911720232,-53,53, + -5292230209317053.,-5027139926275839.,-.499961232675768627532,-53,53, + -5292230209316770.,-5027139926275596.,.499869708658931197556,-53,53, + -5292230209316516.,-5027139926275377.,.496184405124728653624,-53,53, + -5292230209316509.,-5027139926275370.,-.468484087492317476048,-53,53, + -5292230209316487.,-5027139926275352.,.499700649996979453443,-53,53, + -5292230209311081.,-5027139926270690.,-.499995219065096488921,-53,53, + -5268565944194047.,-5006725126043653.,.499726834852767341597,-53,53, + -5268565944193857.,-5006725126043488.,-.496248306276407463662,-53,53, + -5268565944193550.,-5006725126043224.,.499728702533848973206,-53,53, + -5268565944185101.,-5006725126035931.,.499760454690646639643,-53,53, + -5268565944125958.,-5006725125984880.,.499982803268577665708,-53,53, + -5268565944121485.,-5006725125981019.,.499999625489829997374,-53,53, + -4510984822817272.,-8681950456459860.,.499996479669963659347,-53,54, + -4510984822804487.,-8681950456436996.,-.499991691142124981808,-53,54, + -4510984822793884.,-8681950456418035.,-.499669004329898488515,-53,54, + -4510984822793525.,-8681950456417394.,.488364179318510186278,-53,54, + -4510984822793492.,-8681950456417334.,-.498808257838642821695,-53,54, + -4510984822791702.,-8681950456414133.,-.499979848960575972625,-53,54, + -8854767244026722.,-8532172044330444.,.499997178654182899654,-54,54, + -8854767244014241.,-8532172044319243.,.499957046584608882376,-54,54, + -8854767244014202.,-8532172044319207.,-.499722591672791728563,-54,54, + -8854767244013578.,-8532172044318647.,-.494596803787121805940,-54,54, + -8854767244013110.,-8532172044318227.,-.490752462867829737467,-54,54, + -8854767244011111.,-8532172044316433.,-.499972895516496233854,-54,54, + -8644717199277042.,-8343230238323457.,-.499991363375340637692,-54,54, + -8644717199272572.,-8343230238319428.,.499540284219876353501,-54,54, + -8644717199267655.,-8343230238314995.,.499025097025121175980,-54,54, + -8644717199267614.,-8343230238314958.,.463226617735873844012,-54,54, + -8644717199267594.,-8343230238314940.,.494544432716740711882,-54,54, + -8644717199234191.,-8343230238284825.,.499993133908480676524,-54,54, + -8607732457385214.,-8309872713771801.,-.499908296254837539098,-54,54, + -8607732457383290.,-8309872713770065.,-.499349253092188741898,-54,54, + -8607732457383116.,-8309872713769909.,.498622302789902406095,-54,54, + -8607732457383106.,-8309872713769899.,-.478505768711108912767,-54,54, + -8607732457378306.,-8309872713765568.,-.499980088971615829006,-54,54, + -8607732457306821.,-8309872713701068.,-.499999157475200152077,-54,54, + -7684108841960325.,-7468328964608132.,-.499996584996253722661,-54,54, + -7684108841958155.,-7468328964606137.,.499987871836915321559,-54,54, + -7684108841918010.,-7468328964569211.,.499700338901906467711,-54,54, + -7684108841897395.,-7468328964550249.,.499552698394775180353,-54,54, + -7684108841897183.,-7468328964550053.,-.499527160879970303961,-54,54, + -7492339963690391.,-7291599651577146.,.499997083585069604376,-54,54, + -7492339963689152.,-7291599651576001.,-.499967945323242090941,-54,54, + -7492339963682957.,-7291599651570281.,-.499793089446319312610,-54,54, + -7492339963682931.,-7291599651570257.,-.493335535570305569256,-54,54, + -7298995560614378.,-7112741838357260.,.499994599642438684697,-54,54, + -7298995560589797.,-7112741838334477.,-.499990411339797280821,-54,54, + -7298995560588253.,-7112741838333047.,.499888485040357264130,-54,54, + -7298995560586709.,-7112741838331616.,.499767381463198752929,-54,54, + -7298995560586668.,-7112741838331578.,.499116497236666901038,-54,54, + -7298995560586559.,-7112741838331476.,-.478223658389820176680,-54,54, + -7298995560586545.,-7112741838331464.,.497163844557251946067,-54,54, + -6300104505906038.,-6178271756513480.,.499966323258672780087,-54,54, + -6300104505904718.,-6178271756512234.,.499389724321183079383,-54,54, + -6300104505904611.,-6178271756512132.,-.499141863621745649139,-54,54, + -6300104505902631.,-6178271756510264.,.499993238028823536290,-54,54, + -6300104505864494.,-6178271756474264.,-.499998986022066404932,-54,54, + -4924871031178034.,-4865499871834126.,-.499994543508059080305,-54,54, + -4924871031072518.,-4865499871732345.,-.499962945626496389721,-54,54, + -4924871031069015.,-4865499871728966.,-.497317745260591213827,-54,54, + -4924871031066981.,-4865499871727004.,-.495781822390784872092,-54,54, + -4698780735359664.,-4647068726804068.,.499996818366227444504,-54,54, + -4698780735313949.,-4647068726759833.,.499972668059825002229,-54,54, + -4698780735304806.,-4647068726750986.,.499967841288320028177,-54,54, + -4698780735304528.,-4647068726750717.,.499858321252728047583,-54,54, + -4698780735304343.,-4647068726750537.,-.489423193878309121237,-54,54, + -4698780735304342.,-4647068726750537.,.478202311445308114041,-54,54, + -4698780735304281.,-4647068726750477.,-.496641863814015727896,-54,54, + -4698780735304250.,-4647068726750448.,.499748801218149878369,-54,54, + -4517699360177115.,-8943273890877863.,-.499995074937339075684,-54,55, + -4517699360174435.,-8943273890872664.,-.495068587029461566702,-54,55, + -4517699360174385.,-8943273890872567.,-.498708018223476010155,-54,55, + -4517699360173819.,-8943273890871469.,-.499906379335290147216,-54,55, + -4514338150834686.,-8936753245913095.,-.499744033998992094641,-54,55, + -4514338150834536.,-8936753245912804.,-.497855899685852657871,-54,55, + -4514338150834336.,-8936753245912416.,-.495338387267444665724,-54,55, + -4514338150834319.,-8936753245912384.,.484875601288166850371,-54,55, + -4514338150834303.,-8936753245912352.,-.474922997718309724936,-54,55, + -4514338150833119.,-8936753245910056.,.499980675820462648417,-54,55, + -4514338150756853.,-8936753245762099.,.499983762730720215054,-54,55, + -8341071156525238.,-8268302907373242.,.499999763389578711368,-55,55, + -8341071156520775.,-8268302907368894.,.499959419569105202983,-55,55, + -8341071156516312.,-8268302907364546.,.499919075866980535923,-55,55, + -8341071156515303.,-8268302907363562.,-.499417851473874981859,-55,55, + -8341071156515264.,-8268302907363525.,.495652376309900193635,-55,55, + -8341071156515227.,-8268302907363488.,-.457742535792663721749,-55,55, + -8341071156515225.,-8268302907363487.,.490722604093684406443,-55,55, + -6979532375187906.,-6936599112831540.,.499999510544592876874,-55,55, + -6979532375154375.,-6936599112798620.,-.499986218524630508603,-55,55, + -6979532375143198.,-6936599112787647.,-.499981460276523112818,-55,55, + -6979532375142595.,-6936599112787056.,.494203282447425881872,-55,55, + -6979532375142592.,-6936599112787053.,.439447982659987466824,-55,55, + -6979532375142431.,-6936599112786894.,-.499086439265806972028,-55,55, + -6979532375142157.,-6936599112786626.,.499929513481901971034,-55,55, + -5360050515984730.,-5340472647600854.,.499202613761639464934,-55,55, + -5360050515984549.,-5340472647600674.,-.471176491087610016182,-55,55, + -5360050515984546.,-5340472647600672.,.496165291704944962674,-55,55, + -5360050515984087.,-5340472647600218.,.499458058966280402778,-55,55, + -5360050515982801.,-5340472647598946.,.499968949380518509145,-55,55, + -5360050515974901.,-5340472647591132.,.499996969955118445072,-55,55, + -5003579018628366.,-4987633124986140.,-.499992397202541002885,-55,55, + -5003579018619740.,-4987633124977597.,.499945387829820808986,-55,55, + -5003579018617032.,-4987633124974914.,-.242712678207336269306,-55,55, + -5003579018617005.,-4987633124974887.,-.499378766753358691745,-55,55, + -5003579018615427.,-4987633124973325.,.499914280450518673457,-55,55, + -5003579018594388.,-4987633124952486.,.499994395487693566879,-55,55, + -5370993780301471.,-5369751207383751.,-.499998945389797013371,-57,57, + -5370993780294264.,-5369751207376549.,-.499909027108967149956,-57,57, + -5370993780293180.,-5369751207375466.,-.251942123900312041581,-57,57, + -5370993780293065.,-5369751207375351.,-.331724232877235820465,-57,57, + -5370993780292830.,-5369751207375116.,-.494757238177895538261,-57,57, + -5370993780292823.,-5369751207375109.,-.499613540463446885741,-57,57, + -5370993780292822.,-5369751207375109.,.499692702067188637080,-57,57, + -5370993780291381.,-5369751207373669.,.499988188713245142504,-57,57, + -4503599627370496.,-4503599627370496.,0.000000000000000000000,-1074,1074, + 0.,0.,0.000000000000000000000,0,0, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,1074, + 6940259249792698.,6937579443066098.,-.499995311707063475542,-57,57, + 6940259249799609.,6937579443073001.,-.499962021375513254125,-57,57, + 6940259249803895.,6937579443077282.,-.461307314053012562288,-57,57, + 6940259249803914.,6937579443077301.,-.483301145261815842202,-57,57, + 6940259249803928.,6937579443077315.,-.499507126152513072746,-57,57, + 6940259249806520.,6937579443079904.,-.499928731059867858676,-57,57, + 6940259249821206.,6937579443094572.,.499997314550116240847,-57,57, + 6175493946645766.,6167959128096405.,.499616193543645924749,-56,56, + 6175493946646302.,6167959128096940.,-.458030523743370324374,-56,56, + 6175493946646313.,6167959128096951.,-.498206109359338749201,-56,56, + 6175493946646314.,6167959128096951.,.498141564675573205120,-56,56, + 6175493946646861.,6167959128097497.,-.499680738227764093591,-56,56, + 6175493946657813.,6167959128108409.,-.499954707949644933482,-56,56, + 6175493946659182.,6167959128109773.,-.499988954174801241330,-56,56, + 6175493946689026.,6167959128139507.,.499994942761903942519,-56,56, + 6823990675690883.,6813831520980387.,-.499988353680577387933,-56,56, + 6823990675691332.,6813831520980834.,-.499962627390220109748,-56,56, + 6823990675704802.,6813831520994244.,-.499190838801066655642,-56,56, + 6823990675709292.,6813831520998714.,-.498933575990301479093,-56,56, + 6823990675709453.,6813831520998874.,-.216073571689554659375,-56,56, + 6823990675709513.,6813831520998934.,-.483330712943943324138,-56,56, + 6823990675709517.,6813831520998937.,.498852144305763932225,-56,56, + 6823990675768561.,6813831521057719.,-.499991995025971682971,-56,56, + 7740553500857480.,7725743343305588.,-.499997764736438881832,-56,56, + 7740553500861326.,7725743343309411.,.499889658851401518359,-56,56, + 7740553500862149.,7725743343310230.,-.207882741148087607135,-56,56, + 7740553500862198.,7725743343310279.,-.488175387077614620000,-56,56, + 7740553500862200.,7725743343310281.,-.499615903238003552400,-56,56, + 8359220028871712.,8340583310853756.,-.499998849382449732840,-56,56, + 8359220028898582.,8340583310880447.,-.499991466525109682768,-56,56, + 8359220028906688.,8340583310888499.,-.499765942169654659890,-56,56, + 8359220028906689.,8340583310888499.,.493572353601910058432,-56,56, + 8359220028906706.,8340583310888516.,.380323381718510028479,-56,56, + 8513798801093425.,8494113361064110.,-.496980102040517975699,-56,56, + 8513798801093426.,8494113361064110.,.496112109795509936587,-56,56, + 8513798801093441.,8494113361064125.,.392495287335928428173,-56,56, + 8513798801093570.,8494113361064254.,-.498609385816487460270,-56,56, + 8513798801093715.,8494113361064397.,.499761330407509290016,-56,56, + 8513798801094294.,8494113361064973.,-.499848016532867876991,-56,56, + 8513798801099216.,8494113361069861.,-.499981359629801622661,-56,56, + 8513798801129906.,8494113361100338.,.499999887025128022125,-56,56, + 4515336917406404.,9007199254740903.,.007328022441504456988,-55,56, + 4515336917406405.,9007199254740905.,-.008195894608243719165,-55,56, + 4515336917406432.,9007199254740959.,-.427341654951447044262,-55,56, + 4515336917406448.,9007199254740990.,.324275672252578277036,-55,56, + 4515336917406449.,4503599627370496.,.154375877601414900924,-55,55, + 4515336917406662.,4503599627370708.,-.498921288196875152951,-55,55, + 4515336917406791.,4503599627370835.,.499786062094226334243,-55,55, + 4515336917416840.,4503599627380806.,.499864845449742200591,-55,55, + 4515336917433846.,4503599627397680.,.499998170346575358227,-55,55, + 6216155809165103.,6185721712250362.,.499995480784687349405,-55,55, + 6216155809169224.,6185721712254424.,-.499938782116647687175,-55,55, + 6216155809171834.,6185721712256995.,.499617532773337969916,-55,55, + 6216155809171837.,6185721712256998.,.455938861870894704508,-55,55, + 6216155809173345.,6185721712258485.,-.499873045095807654629,-55,55, + 7082784227659771.,7037939197319788.,.499962130060781747278,-55,55, + 7082784227659980.,7037939197319994.,-.425172003298537670065,-55,55, + 7082784227659984.,7037939197319997.,.499705812330946843751,-55,55, + 7082784227667545.,7037939197327416.,.499996805816627486882,-55,55, + 4550658943385812.,9007199254740903.,-.004131792712235797730,-54,55, + 4550658943385845.,9007199254740967.,-.014252269458048385720,-54,55, + 4550658943385846.,9007199254740969.,-.075165011177618898670,-54,55, + 4550658943385857.,9007199254740990.,.254794829907103771898,-54,55, + 4550658943385858.,4503599627370496.,.096941044093766476112,-54,54, + 4550658943386600.,4503599627371215.,.498313866129469483218,-54,54, + 4550658943389949.,4503599627374462.,.499927856604682384344,-54,54, + 4550658943390146.,4503599627374654.,-.499977202783592494046,-54,54, + 4550658943400620.,4503599627384808.,.499994410548945623724,-54,54, + 4579785905347744.,4531834057078710.,.499998995629820799960,-54,54, + 4579785905353096.,4531834057083898.,-.499989379848868728732,-54,54, + 4579785905372720.,4531834057102917.,-.499946759752439009292,-54,54, + 4579785905373985.,4531834057104143.,-.499383474433900210754,-54,54, + 4579785905374017.,4531834057104174.,-.485930490141523935672,-54,54, + 4579785905374504.,4531834057104646.,-.499942885443546074436,-54,54, + 5299073463126767.,5225483985352742.,-.499996682692146508358,-54,54, + 5299073463165099.,5225483985389515.,.499982362687135274898,-54,54, + 5299073463172480.,5225483985396597.,-.499969498924359404085,-54,54, + 5299073463176884.,5225483985400821.,.499923740298154883758,-54,54, + 5299073463177622.,5225483985401530.,-.496006956698725567640,-54,54, + 5299073463177647.,5225483985401553.,.487870729717231758380,-54,54, + 5299073463177819.,5225483985401718.,.496949212258773895264,-54,54, + 5299073463178311.,5225483985402190.,.499662080921760297693,-54,54, + 5354986034456645.,5279101399477957.,-.499412138063810446054,-54,54, + 5354986034456717.,5279101399478026.,-.484118540267133160971,-54,54, + 5354986034456838.,5279101399478141.,.499916533807668692189,-54,54, + 5354986034459781.,5279101399480963.,-.499957656322799564680,-54,54, + 5354986034474689.,5279101399495253.,-.499999937041849630237,-54,54, + 6318840445920685.,6195954472381817.,-.499970332244233258890,-54,54, + 6318840445922122.,6195954472383173.,-.499743101575406002722,-54,54, + 6318840445925954.,6195954472386789.,-.499137153290369748451,-54,54, + 6318840445926220.,6195954472387040.,-.492832043110398772054,-54,54, + 6318840445926238.,6195954472387056.,.492557024495722859049,-54,54, + 6318840445926433.,6195954472387241.,-.499061409771632578708,-54,54, + 6318840445933689.,6195954472394087.,.499998286996706166003,-54,54, + 6779876501357253.,6629236626677568.,.499991575992382179895,-54,54, + 6779876501422365.,6629236626738507.,.499984924755498007497,-54,54, + 6779876501426297.,6629236626742187.,.499800222948781359426,-54,54, + 6779876501427280.,6629236626743107.,.499754047455727754536,-54,54, + 6779876501427436.,6629236626743254.,-.498218692501965129792,-54,54, + 6779876501427592.,6629236626743400.,-.496191432460074820455,-54,54, + 6779876501427623.,6629236626743429.,-.482968066682569337928,-54,54, + 7852441927951931.,7622902283067773.,-.499996707145520364022,-54,54, + 7852441928002205.,7622902283113858.,.461867383309733095058,-54,54, + 7852441928002301.,7622902283113946.,.464658864998439584329,-54,54, + 7852441928003381.,7622902283114936.,.496063033984550580958,-54,54, + 7852441928003513.,7622902283115057.,.499901321303584224817,-54,54, + 7852441928006382.,7622902283117687.,.499992581210519394640,-54,54, + 8717776617240196.,8409045954958573.,.499962510151714643654,-54,54, + 8717776617240927.,8409045954959232.,-.499839511504789311203,-54,54, + 8717776617241027.,8409045954959322.,-.486132537724003377698,-54,54, + 8717776617241207.,8409045954959484.,-.461459984919082430993,-54,54, + 8717776617250410.,8409045954967767.,.499992811255475743168,-54,54, + 4693609247292052.,9007199254740533.,.000497703484413627096,-53,54, + 4693609247292308.,9007199254740987.,.051766296164956804086,-53,54, + 4693609247292310.,9007199254740991.,-.400958167954747272400,-53,54, + 4693609247292311.,4503599627370496.,.186339799992700284155,-53,53, + 4693609247292317.,4503599627370502.,-.492746896186857041042,-53,53, + 4693609247292750.,4503599627370885.,.499829862851254418938,-53,53, + 4693609247294897.,4503599627372789.,.499973746468891463534,-53,53, + 4693609247302036.,4503599627379120.,.499986407053366178225,-53,53, + 4693609247309175.,4503599627385451.,.499999065581443939977,-53,53, + 5205590995512103.,4952283729482407.,.499936150394565901330,-53,53, + 5205590995513057.,4952283729483233.,.478349864460256120902,-53,53, + 5205590995513072.,4952283729483246.,.465431841096206464680,-53,53, + 5205590995513109.,4952283729483279.,-.499765949868489415440,-53,53, + 5205590995529056.,4952283729497085.,.499986139040135903908,-53,53, + 5205590995552589.,4952283729517460.,.499996523425090103515,-53,53, + 6059040276377478.,5675874953966719.,.499999193918202576272,-53,53, + 6059040276408600.,5675874953992543.,-.426016890542991695545,-53,53, + 6059040276408618.,5675874953992558.,-.490751428486967467643,-53,53, + 6059040276408806.,5675874953992713.,.499798952986237241755,-53,53, + 6059040276409223.,5675874953993060.,-.499884509389748752012,-53,53, + 6059040276412189.,5675874953995520.,.499968849132006957185,-53,53, + 6059040276418538.,5675874954000788.,.499992102507892102108,-53,53, + 6179968525016255.,5775901530674446.,-.499996279803844854817,-53,53, + 6179968525017549.,5775901530675513.,-.499988653352346350308,-53,53, + 6179968525061545.,5775901530711791.,-.499729396549742958948,-53,53, + 6179968525077073.,5775901530724595.,-.499637913885535762489,-53,53, + 6179968525077244.,5775901530724736.,-.497318513921248355054,-53,53, + 6179968525077643.,5775901530725065.,-.491906580676100809591,-53,53, + 6179968525077666.,5775901530725083.,.473317666102234273960,-53,53, + 6179968525077683.,5775901530725097.,.491092109373163076268,-53,53, + 6230674196577543.,5817657251583800.,.499993959609905140059,-53,53, + 6230674196596919.,5817657251599736.,-.499950992086135350436,-53,53, + 6230674196597133.,5817657251599911.,.495611135215786541287,-53,53, + 6230674196597144.,5817657251599921.,-.457888007773419870884,-53,53, + 7103100048438295.,6518902460928010.,.499994692771540594110,-53,53, + 7103100048445167.,6518902460933406.,.499802979630746367928,-53,53, + 7103100048445265.,6518902460933483.,.450906182775787063218,-53,53, + 7103100048445274.,6518902460933491.,-.482155767955811241549,-53,53, + 7103100048445302.,6518902460933513.,-.496126281343027924059,-53,53, + 7103100048479811.,6518902460960610.,-.499999395154511446247,-53,53, + 7302452754205629.,6674596249927648.,-.499996835883543639779,-53,53, + 7302452754242768.,6674596249956496.,.499971563525442538898,-53,53, + 7302452754243552.,6674596249957105.,.499028490255954420600,-53,53, + 7302452754244784.,6674596249958062.,.497546517922938578492,-53,53, + 7302452754244802.,6674596249958076.,.479667722872143924706,-53,53, + 7302452754244829.,6674596249958097.,.452849530295926314703,-53,53, + 7302452754250151.,6674596249962232.,-.499980873661238380932,-53,53, + 7511273082104834.,6835886557382947.,.497200671581892616042,-53,53, + 7511273082104877.,6835886557382981.,-.478795543967275975550,-53,53, + 7511273082104890.,6835886557382991.,-.494794399830993373679,-53,53, + 7511273082105084.,6835886557383139.,.497222674201920284626,-53,53, + 7511273082118709.,6835886557393603.,.498421813029212061340,-53,53, + 7511273082136209.,6835886557407043.,.499961979917677127321,-53,53, + 7511273082136584.,6835886557407331.,.499994983353297422896,-53,53, + 7913137471603089.,7141146806808684.,-.499998168956750439405,-53,53, + 7913137471605031.,7141146806810142.,.445345420575789471002,-53,53, + 7913137471605059.,7141146806810163.,.480602691690463042100,-53,53, + 7913137471605075.,7141146806810176.,-.499250296244023760301,-53,53, + 7913137471605670.,7141146806810622.,.499966714934730891355,-53,53, + 8575032706761609.,7629425332103623.,.499993515056634063877,-53,53, + 8575032706780885.,7629425332117585.,-.499993112102661111230,-53,53, + 8575032706797169.,7629425332129378.,.488605017137128062922,-53,53, + 8575032706797227.,7629425332129420.,.496179242830201591835,-53,53, + 8575032706797256.,7629425332129441.,.499966355676687698957,-53,53, + 8668443273554275.,7696904744747150.,.499998377273729216910,-53,53, + 8668443273583462.,7696904744768180.,.499979731244518337362,-53,53, + 8668443273592962.,7696904744775025.,.499459727419353092387,-53,53, + 8668443273592987.,7696904744775044.,-.487383746279682332884,-53,53, + 8668443273593191.,7696904744775190.,.499973508335255027372,-53,53, + 9007199254619348.,7938707516064807.,.499997900313343486584,-53,53, + 9007199254740894.,7938707516150754.,-.499175709168061290383,-53,53, + 9007199254740976.,7938707516150811.,.483580348129019175791,-53,53, + 9007199254740986.,7938707516150819.,-.445351840005501262447,-53,53, + 9007199254740991.,7938707516150822.,.090182065927237046473,-53,53, + 4503599627370497.,7938707516150824.,.211502409486879560797,-52,53, + 4503599627370517.,7938707516150852.,.495773656948745994797,-52,53, + 4503599627370855.,7938707516151330.,.499957739044789355998,-52,53, + 4503599627376596.,7938707516159450.,-.499980679927574738579,-52,53, + 5292635657778132.,9007199254739107.,-.000025263875370449667,-52,53, + 5292635657778723.,9007199254739873.,.000126206934453873865,-52,53, + 5292635657779314.,9007199254740639.,.000277677694665648072,-52,53, + 5292635657779493.,9007199254740871.,.003707649370287839216,-52,53, + 5292635657779547.,9007199254740941.,-.006430794929580057652,-52,53, + 5292635657779584.,9007199254740989.,-.050414543801950892365,-52,53, + 5292635657779586.,4503599627370496.,-.229098724573204454776,-52,52, + 5292635657779587.,4503599627370496.,.418955549090680934396,-52,52, + 5292635657779601.,4503599627370505.,.491715380385068925597,-52,52, + 5292635657857434.,4503599627420945.,.499997246374756244074,-52,52, + 6467001089589151.,5218359911743574.,.499995107182421267775,-52,52, + 6467001089631088.,5218359911767540.,.499991319558147049012,-52,52, + 6467001089645134.,5218359911775567.,.455566249043734113948,-52,52, + 6467001089645302.,5218359911775663.,.463578251546623799906,-52,52, + 6467001089646023.,5218359911776075.,.497963095602453862279,-52,52, + 6467001089646065.,5218359911776099.,.499966096226111819794,-52,52, + 7316025708206033.,5683042220340215.,-.499740562024795897440,-52,52, + 7316025708206115.,5683042220340257.,.486147587999273558186,-52,52, + 7316025708206117.,5683042220340259.,-.465416115658680332154,-52,52, + 7316025708206157.,5683042220340280.,-.496690188817801787645,-52,52, + 7316025708207664.,5683042220341070.,-.499940895148273714802,-52,52, + 7316025708218152.,5683042220346567.,.499997118839987566561,-52,52, + 8219998205379889.,6136680860132486.,.499993981547921744155,-52,52, + 8219998205385733.,6136680860135295.,-.499571679204495314702,-52,52, + 8219998205388655.,6136680860136699.,-.499354510156494676755,-52,52, + 8219998205388705.,6136680860136723.,-.474710136972839883248,-52,52, + 8219998205388707.,6136680860136723.,.486275637954503970643,-52,52, + 8219998205388732.,6136680860136735.,.498597824546286970750,-52,52, + 9007199254739982.,6501556188073668.,-.499963143083624017542,-52,52, + 9007199254740664.,6501556188073972.,.499708987905813389752,-52,52, + 9007199254740986.,6501556188074117.,-.497513261105594228832,-52,52, + 9007199254740991.,6501556188074119.,-.261445283605803837314,-52,52, + 4503599627370497.,6501556188074120.,.080195502894069920951,-51,52, + 4503599627382229.,6501556188084614.,-.499999697028964821531,-51,52, + 5429564584135173.,7267644684200750.,.499984324196906471033,-51,52, + 5429564584138603.,7267644684203378.,.497826726091369927520,-51,52, + 5429564584138616.,7267644684203388.,.458168402830549423371,-51,52, + 5429564584138804.,7267644684203533.,-.499967348943591227405,-51,52, + 5429564584177787.,7267644684233401.,-.499999416463791278268,-51,52, + 6534651015198467.,8047849474018236.,.499998273834036650471,-51,52, + 6534651015229832.,8047849474038673.,.499961984918880933609,-51,52, + 6534651015231313.,8047849474039638.,.499067554442953982986,-51,52, + 6534651015231356.,8047849474039667.,-.482727489793906223791,-51,52, + 6534651015231755.,8047849474039927.,-.499848946790305576763,-51,52, + 6534651015235380.,8047849474042288.,.499987439497107550560,-51,52, + 8166963590622378.,9007199254725075.,.000004417348374531550,-51,52, + 8166963590652295.,9007199254740979.,.010564502788436041749,-51,52, + 8166963590652310.,9007199254740987.,-.015368632189157828373,-51,52, + 8166963590652319.,4503599627370496.,-.115464256587860341858,-51,51, + 8166963590652320.,4503599627370496.,.150337972246219348278,-51,51, + 8166963590652325.,4503599627370497.,.479349116416617345262,-51,51, + 8166963590652532.,4503599627370553.,-.499589514929569251041,-51,51, + 8166963590653766.,4503599627370881.,-.499639133706192158120,-51,51, + 8166963590662404.,4503599627373177.,-.499986466432182923586,-51,51, + 8166963590663021.,4503599627373340.,.499988724001029984958,-51,51, + 5007882989883048.,4949414173530254.,-.499803543239240008300,-50,51, + 5007882989885756.,4949414173531442.,-.499305641157330809494,-50,51, + 5007882989885902.,4949414173531506.,-.449057231387422167132,-50,51, + 5007882989885911.,4949414173531509.,.499245752776418148369,-50,51, + 5007882989889973.,4949414173533291.,.499992604700219823759,-50,51, + 5007882989914133.,4949414173543891.,-.499996605786566739360,-50,51, + 5396246731121406.,5113787625582647.,-.499998043313662633355,-50,51, + 5396246731153808.,5113787625595883.,-.499981308231211120316,-50,51, + 5396246731167042.,5113787625601289.,-.499604147491290675855,-50,51, + 5396246731167113.,5113787625601318.,-.496579606312577310095,-50,51, + 5396246731167135.,5113787625601326.,.490273068418780790377,-50,51, + 5396246731167140.,5113787625601329.,-.467260414596824537891,-50,51, + 5396246731169020.,5113787625602097.,-.499850028592964408443,-50,51, + 5396246731170009.,5113787625602501.,-.499972969250232952219,-50,51, + 5569985055088831.,5183685286350651.,-.499997683678668069788,-50,51, + 5569985055105353.,5183685286357198.,-.499984045995828504340,-50,51, + 5569985055108775.,5183685286358554.,-.499860173001312381197,-50,51, + 5569985055108934.,5183685286358617.,-.494594335555508251894,-50,51, + 5569985055108972.,5183685286358632.,-.436732059939785737705,-50,51, + 5569985055108987.,5183685286358638.,-.492839056407290861450,-50,51, + 5916628998625667.,5317093511158613.,.499990956323977150013,-50,51, + 5916628998680198.,5317093511179001.,.499885291159623924813,-50,51, + 5916628998680420.,5317093511179085.,-.498959833226087787516,-50,51, + 5916628998680519.,5317093511179122.,-.484931307615279566362,-50,51, + 5916628998680527.,5317093511179125.,-.493898699485139346153,-50,51, + 5916628998680535.,5317093511179127.,.497133908644996971149,-50,51, + 5916628998684547.,5317093511180627.,.499986885416586460168,-50,51, + 6272704229709347.,5446497661106879.,.499998221158981106850,-50,51, + 6272704229721078.,5446497661111024.,.498940987857570990709,-50,51, + 6272704229721112.,5446497661111037.,-.487593488833272592077,-50,51, + 6272704229721126.,5446497661111041.,.459127608999891126150,-50,51, + 6272704229721228.,5446497661111077.,.499524178926903944362,-50,51, + 6272704229721378.,5446497661111131.,-.499892630004990953749,-50,51, + 6272704229724794.,5446497661112338.,-.499944759079722372057,-50,51, + 6272704229728210.,5446497661113545.,-.499996888791248056822,-50,51, + 7436919125132944.,5824736360344390.,.499954229385892164605,-50,51, + 7436919125134955.,5824736360344993.,-.456411306529789412160,-50,51, + 7436919125134975.,5824736360344999.,-.468906239757000229986,-50,51, + 7436919125135025.,5824736360345013.,.499856427174903857168,-50,51, + 7436919125152792.,5824736360350332.,.499982488528966783412,-50,51, + 7436919125162716.,5824736360353303.,.499996612286893132000,-50,51, + 7464505152264810.,5832979996181187.,-.499991373100600999443,-50,51, + 7464505152270670.,5832979996182935.,-.499906625057648864813,-50,51, + 7464505152284968.,5832979996187200.,-.499017257391782672404,-50,51, + 7464505152285025.,5832979996187217.,-.496286057662562051864,-50,51, + 7464505152285072.,5832979996187231.,-.476490156131545805698,-50,51, + 7464505152285082.,5832979996187234.,-.493554857933468378391,-50,51, + 7464505152285320.,5832979996187305.,-.499694760820378720807,-50,51, + 4542341907301367.,6271200366428583.,.499995463203411887098,-49,51, + 4542341907340914.,6271200366448040.,-.499810564350703457623,-49,51, + 4542341907341101.,6271200366448131.,.498875461319391872671,-49,51, + 4542341907341225.,6271200366448193.,-.496648243585917223253,-49,51, + 4542341907341237.,6271200366448198.,.407010752713481950947,-49,51, + 4542341907342471.,6271200366448805.,.499944205419691428680,-49,51, + 4542341907346270.,6271200366450674.,.499988115932236911377,-49,51, + 4574407728078037.,6286921250283625.,-.499997946277901093243,-49,51, + 4574407728078956.,6286921250284074.,-.499963362195223659372,-49,51, + 4574407728089065.,6286921250289013.,-.499582943150432187685,-49,51, + 4574407728090903.,6286921250289911.,-.499513777206539555127,-49,51, + 4574407728091116.,6286921250290015.,-.433129265615784023622,-49,51, + 4574407728091122.,6286921250290017.,.498318185414872359606,-49,51, + 5043885832660153.,6505423276213103.,.498839197264884457565,-49,51, + 5043885832660189.,6505423276213119.,.471555022059044128238,-49,51, + 5043885832660216.,6505423276213131.,.451091890654589987307,-49,51, + 5043885832660739.,6505423276213363.,.499157900844704578566,-49,51, + 5043885832662204.,6505423276214013.,.499954659663725652172,-49,51, + 5043885832674812.,6505423276219607.,.499985733996906745750,-49,51, + 5043885832681116.,6505423276222405.,-.499998734015648672913,-49,51, + 5090857167508273.,6526168560678787.,-.499997977465781211759,-49,51, + 5090857167548442.,6526168560696447.,-.499990100077099960084,-49,51, + 5090857167556610.,6526168560700038.,-.499963620304611407433,-49,51, + 5090857167557165.,6526168560700282.,-.498370244375756496675,-49,51, + 5090857167557190.,6526168560700292.,.492692520305104913392,-49,51, + 5090857167557281.,6526168560700333.,-.499839016257009851712,-49,51, + 5215472194836517.,6580302619871856.,-.499304989809608348194,-49,51, + 5215472194836694.,6580302619871931.,.479789957314637347449,-49,51, + 5215472194836708.,6580302619871937.,.489435885335655350901,-49,51, + 5215472194836722.,6580302619871943.,.499081813356657408318,-49,51, + 5215472194838383.,6580302619872657.,-.499354869407630785353,-49,51, + 5215472194859531.,6580302619881735.,-.499920191316858105417,-49,51, + 5215472194862641.,6580302619883069.,.499996670039360658104,-49,51, + 5336471118719892.,6631656004655392.,-.498343143920042485551,-49,51, + 5336471118719899.,6631656004655394.,.439107034073327642175,-49,51, + 5336471118720004.,6631656004655439.,-.499140296026577729450,-49,51, + 5336471118720116.,6631656004655486.,-.499937448134088520036,-49,51, + 5336471118721379.,6631656004656016.,-.499998190271136174421,-49,51, + 5698688785603693.,6778770018339179.,-.499998711357007278881,-49,51, + 5698688785647914.,6778770018356567.,.499991343010732839483,-49,51, + 5698688785648298.,6778770018356719.,-.499895675487332375779,-49,51, + 5698688785648377.,6778770018356750.,-.434768265231673691827,-49,51, + 5698688785648387.,6778770018356753.,.497526343661417250774,-49,51, + 7681428807456142.,9007199254728945.,-.000003102542242448078,-48,51, + 7681428807483341.,9007199254736913.,.000024852369609234286,-48,51, + 7681428807494039.,9007199254740047.,-.000037692148374608739,-48,51, + 7681428807497118.,9007199254740949.,-.000990448103951251998,-48,51, + 7681428807497264.,4503599627370496.,-.115003035418835340639,-48,50, + 7681428807497265.,4503599627370496.,.031472938475910795881,-48,50, + 7681428807497268.,4503599627370496.,.470900860160149091183,-48,50, + 7681428807497275.,4503599627370497.,.496232677423371113705,-48,50, + 7681428807498934.,4503599627370740.,.499873368780673655564,-48,50, + 5611538334468725.,4930302405066606.,-.499978309796888595885,-47,50, + 5611538334470804.,4930302405067022.,.499771271739449909651,-47,50, + 5611538334474234.,4930302405067710.,.479156102892886993175,-47,50, + 5611538334474244.,4930302405067712.,.484926904149279693392,-47,50, + 5611538334474269.,4930302405067717.,.499353907290245815901,-47,50, + 5611538334480855.,4930302405069039.,-.499996386031290649766,-47,50, + 6681749571160966.,5126781676953444.,-.499999914200843348282,-47,50, + 6681749571210418.,5126781676961774.,.499983217098834745016,-47,50, + 6681749571221993.,5126781676963724.,.498462637640305007024,-47,50, + 6681749571222064.,5126781676963736.,.459576420684610995119,-47,50, + 6681749571222082.,5126781676963739.,.491971464273288101286,-47,50, + 6681749571222088.,5126781676963741.,-.497230187863821344517,-47,50, + 6681749571222272.,5126781676963772.,-.499414186735618208804,-47,50, + 6681749571225050.,5126781676964240.,-.499779126327628038807,-47,50, + 6681749571226902.,5126781676964551.,.499977580502982658297,-47,50, + 5503336538673777.,5688664102696694.,-.499970361974365014880,-46,50, + 5503336538676754.,5688664102697302.,.499684525662520094200,-46,50, + 5503336538676798.,5688664102697312.,-.499312849195165677748,-46,50, + 5503336538676886.,5688664102697330.,-.497307598910753079445,-46,50, + 5503336538676891.,5688664102697331.,-.474466391508238277362,-46,50, + 5503336538677761.,5688664102697508.,.499903696515191128928,-46,50, + 5503336538682752.,5688664102698529.,.499996925080724439481,-46,50, + 6754291611842404.,5919259447014055.,.468498485186602649913,-46,50, + 6754291611842464.,5919259447014065.,.469595913290508663957,-46,50, + 6754291611843730.,5919259447014276.,.492751646262213814931,-46,50, + 6754291611844120.,5919259447014341.,.499884928923254234012,-46,50, + 6754291611844126.,5919259447014342.,.499994671733394771883,-46,50, + 7484448101930119.,6034826483899691.,-.499940416800899812394,-46,50, + 7484448101930232.,6034826483899707.,.498115398674411369878,-46,50, + 7484448101958924.,6034826483904024.,-.499960205934411895862,-46,50, + 7484448102016534.,6034826483912690.,-.499999834225578375741,-46,50, + 5668088529102692.,6502254384884312.,-.499924841543303475063,-45,50, + 5668088529104001.,6502254384884572.,-.487298590602324975615,-45,50, + 5668088529104006.,6502254384884573.,-.494125839452932916588,-45,50, + 5668088529104011.,6502254384884573.,.499046911696458266363,-45,50, + 5668088529104157.,6502254384884602.,.499691245258294529421,-45,50, + 5668088529105768.,6502254384884922.,.499951665538276280882,-45,50, + 5668088529129057.,6502254384889548.,.499991958233299771614,-45,50, + 5668088529136820.,6502254384891091.,-.499994615092035108798,-45,50, + 6687091832564916.,6688393137409164.,.499975066581008869953,-45,50, + 6687091832579414.,6688393137411605.,.481992016353146515774,-45,50, + 6687091832579420.,6688393137411606.,.492192878657102242530,-45,50, + 6687091832579426.,6688393137411608.,-.497606259038942937093,-45,50, + 6687091832580406.,6688393137411773.,-.498132082738486380790,-45,50, + 6687091832583738.,6688393137412334.,-.499919883497801750946,-45,50, + 6687091832583934.,6688393137412366.,.499974951742945425385,-45,50, + 7525504069993309.,6821381352000673.,-.499991363781993079507,-45,50, + 7525504070172609.,6821381352027498.,-.499953851340353170992,-45,50, + 7525504070179781.,6821381352028571.,-.499952364136154755261,-45,50, + 7525504070179908.,6821381352028590.,-.499534044447246515076,-45,50, + 7525504070180670.,6821381352028704.,-.497024126320530577464,-45,50, + 7525504070180750.,6821381352028715.,.471743319151420963072,-45,50, + 7525504070180757.,6821381352028717.,-.480989529369789330562,-45,50, + 7525504070180797.,6821381352028723.,-.496605806633866838446,-45,50, + 4877516211311693.,7113533565012469.,-.499630015860714545475,-44,50, + 4877516211312044.,7113533565012550.,-.477183406330726423429,-44,50, + 4877516211312187.,7113533565012583.,-.468038491338699137699,-44,50, + 4877516211314093.,7113533565013023.,-.499995079019894383904,-44,50, + 7249885060642963.,7559781423383062.,.499993148953512861503,-44,50, + 7249885060729081.,7559781423396436.,.499982094310253821346,-44,50, + 7249885060733318.,7559781423397094.,.499911874476629126608,-44,50, + 7249885060733582.,7559781423397135.,.498727418944412923666,-44,50, + 7249885060733685.,7559781423397151.,.494477423035605527960,-44,50, + 7249885060733698.,7559781423397154.,-.486641508486881459601,-44,50, + 7249885060733743.,7559781423397161.,-.498207040680133601328,-44,50, + 7797320753747631.,7641740594521663.,-.499990812797866461631,-44,50, + 7797320753794253.,7641740594528395.,-.498895307880533533094,-44,50, + 7797320753794260.,7641740594528396.,-.488127694556490845589,-44,50, + 7797320753794288.,7641740594528400.,-.445057241260329169631,-44,50, + 7797320753794717.,7641740594528462.,-.499442081831667366153,-44,50, + 7797320753795181.,7641740594528529.,-.499988855786788156916,-44,50, + 4636307512456149.,7836842025838083.,-.499999427744850491364,-43,50, + 4636307512462507.,7836842025839626.,.499984449920680959472,-43,50, + 4636307512487939.,7836842025845802.,.499919939409240220101,-43,50, + 4636307512490035.,7836842025846312.,-.499770814462334770670,-43,50, + 4636307512490175.,7836842025846345.,.498341444335754878141,-43,50, + 4636307512490315.,7836842025846379.,.496453703132817908556,-43,50, + 4636307512490348.,7836842025846388.,-.489705550150881034388,-43,50, + 4636307512490352.,7836842025846388.,.481669085814727338944,-43,50, + 4636307512491118.,7836842025846574.,.499911873213283891636,-43,50, + 5062511894373474.,7935858597454498.,-.499992220766275027608,-43,50, + 5062511894378856.,7935858597455694.,.452089758858456755669,-43,50, + 5062511894378865.,7935858597455696.,.453681869191211646503,-43,50, + 5062511894379063.,7935858597455740.,.488708296510918978016,-43,50, + 5062511894379126.,7935858597455754.,.499853068839555591078,-43,50, + 5062511894431887.,7935858597467489.,-.499998852200847789909,-43,50, + 5233425285844448.,7973242036313864.,-.494902625503020856828,-43,50, + 5233425285844527.,7973242036313881.,-.499156598859805690242,-43,50, + 5233425285844778.,7973242036313934.,.499985840220099504928,-43,50, + 5233425285873927.,7973242036320205.,.499997602447000072463,-43,50, + 5359780702951679.,8000102668262265.,.499890790949450166152,-43,50, + 5359780702952355.,8000102668262408.,-.496666482386571965955,-43,50, + 5359780702952412.,8000102668262419.,.476996587760311557044,-43,50, + 5359780702952474.,8000102668262433.,-.499019020150240420465,-43,50, + 5359780702952931.,8000102668262529.,-.499650194592344033931,-43,50, + 5359780702956349.,8000102668263247.,-.499994514858697657455,-43,50, + 5536082176383106.,8036541247119254.,-.499963237884761278563,-43,50, + 5536082176383131.,8036541247119259.,-.415598294369912741676,-43,50, + 5536082176393122.,8036541247121291.,-.499992269933931722100,-43,50, + 5574784674263175.,8044384966418833.,-.499998692996206432182,-43,50, + 5574784674298127.,8044384966425891.,.499919342667191626074,-43,50, + 5574784674299147.,8044384966426098.,-.498137524660952968512,-43,50, + 5574784674299152.,8044384966426099.,-.488324077932262197322,-43,50, + 5574784674299350.,8044384966426139.,-.499711587476835728306,-43,50, + 5574784674301286.,8044384966426530.,-.499945014209724233312,-43,50, + 5574784674314635.,8044384966429225.,.499995057787853847252,-43,50, + 6204958457226241.,8164963116102409.,-.499999156873377354459,-43,50, + 6204958457252766.,8164963116107221.,.499995531740953941944,-43,50, + 6204958457255246.,8164963116107671.,.499618031264637112079,-43,50, + 6204958457260702.,8164963116108661.,.498787529583648207124,-43,50, + 6204958457260950.,8164963116108706.,.498749779486556221070,-43,50, + 6204958457260994.,8164963116108714.,.482614049630432689616,-43,50, + 6252030418334287.,8173472157342026.,.499909720948123897289,-43,50, + 6252030418335703.,8173472157342282.,-.499301167620142154069,-43,50, + 6252030418336175.,8173472157342367.,-.499038130489065082749,-43,50, + 6252030418336225.,8173472157342376.,-.494772978250979423837,-43,50, + 6252030418336236.,8173472157342377.,.486165355241389757304,-43,50, + 6252030418336247.,8173472157342379.,.467103688733755453132,-43,50, + 6252030418338274.,8173472157342745.,-.499987039596170480703,-43,50, + 6252030418357265.,8173472157346165.,-.499996922855237357407,-43,50, + 6552879593886736.,8226387497694503.,.499996745076726232597,-43,50, + 6552879593890263.,8226387497695110.,-.499948324429211115724,-43,50, + 6552879593891072.,8226387497695249.,-.499652197803892732071,-43,50, + 6552879593891223.,8226387497695274.,.444778846842443023366,-43,50, + 6552879593891235.,8226387497695277.,-.493412063516814215480,-43,50, + 6571276784293262.,8229544026666940.,-.499874675591490113517,-43,50, + 6571276784295118.,8229544026667258.,-.499518945339284891745,-43,50, + 6571276784295223.,8229544026667275.,.490802903621652301575,-43,50, + 6571276784295264.,8229544026667283.,-.484404755355583594214,-43,50, + 6571276784295276.,8229544026667285.,-.428367972617221903862,-43,50, + 6571276784298223.,8229544026667789.,.499998588098420565135,-43,50, + 7918677949290695.,8439542348588807.,-.499998965031674960373,-43,50, + 7918677949312301.,8439542348591878.,.499965568610340408672,-43,50, + 7918677949369917.,8439542348600070.,.499870950677547670610,-43,50, + 7918677949371823.,8439542348600342.,-.499854479766464486382,-43,50, + 7918677949372034.,8439542348600372.,-.499299425113437215773,-43,50, + 7918677949372048.,8439542348600373.,.491258730171569489347,-43,50, + 7918677949372055.,8439542348600374.,.486537807814071522190,-43,50, + 8009526533119381.,8452385912844443.,.499994740098240843594,-43,50, + 8009526533133872.,8452385912846481.,-.499984850605702851101,-43,50, + 8009526533139428.,8452385912847262.,-.493007183095830423348,-43,50, + 8009526533139556.,8452385912847279.,.499954145450928396764,-43,50, + 8289917000837890.,8491126200224776.,-.499898928991186469790,-43,50, + 8289917000838560.,8491126200224866.,.496490162209053206012,-43,50, + 8289917000838567.,8491126200224867.,.447198704952897487114,-43,50, + 8289917000838722.,8491126200224888.,.498602151423529449042,-43,50, + 8289917000838803.,8491126200224899.,.499658146030606335311,-43,50, + 8289917000842617.,8491126200225417.,.499998435185350903205,-43,50, + 6555195199606253.,9007199254735519.,.000011587813884931366,-42,50, + 6555195199637064.,9007199254740811.,.000198556733447703441,-42,50, + 6555195199637588.,9007199254740901.,.000785943221588877000,-42,50, + 6555195199638112.,9007199254740991.,.001373329702535713071,-42,50, + 6555195199638117.,4503599627370496.,-.069921219755233501560,-42,49, + 6555195199638118.,4503599627370496.,.015957203323466187519,-42,49, + 6555195199638124.,4503599627370497.,-.468772258204335953128,-42,49, + 6555195199640371.,4503599627370690.,-.499955600399398998287,-42,49, + 6555195199643678.,4503599627370973.,.499989520691204402085,-42,49 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/atan.c b/src/regress/lib/libm/fpaccuracy/atan.c new file mode 100644 index 000000000..a035883c0 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/atan.c @@ -0,0 +1,902 @@ +/* $OpenBSD: atan.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:26:56. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 870 +#define F atan +#define Fs "atan" +#define Fn fpaccuracy_atan + /* 2 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -9007199254740990.,-7074237752028440.,-.275765943415024521374,971,52, + -8242701861722232.,-7074237752028439.,-.183017545396534775709,-1,52, + -8242701861718072.,-7074237752028439.,-.183017545395983277740,-1,52, + -8242701861718030.,-7074237752028439.,-.183017545395977709732,-1,52, + -8178102513294909.,-7074237752028439.,-.174385856763109364582,-1,52, + -8178102513290568.,-7074237752028439.,-.174385856762524743523,-1,52, + -8178102513290524.,-7074237752028439.,-.174385856762518817854,-1,52, + -8003544517558113.,-7074237752028439.,-.150364662147572440217,-1,52, + -8003544517553246.,-7074237752028439.,-.150364662146888077430,-1,52, + -8003544517553197.,-7074237752028439.,-.150364662146881187399,-1,52, + -6848882081658556.,-7074237752028439.,.039368285404953677752,-1,52, + -6848882081658555.,-7074237752028439.,.039368285404953869773,-1,52, + -6848882081658468.,-7074237752028439.,.039368285404970575664,-1,52, + -6848882081649711.,-7074237752028439.,.039368285406652110009,-1,52, + -6751453641065261.,-7074237752028439.,.058346639385709024940,-1,52, + -6751453641065260.,-7074237752028439.,.058346639385709222543,-1,52, + -6751453641065174.,-7074237752028439.,.058346639385726216466,-1,52, + -6751453641056534.,-7074237752028439.,.058346639387433512899,-1,52, + -6471417749983854.,-7074237752028439.,.116077328449701674283,-1,52, + -6471417749983853.,-7074237752028439.,.116077328449701889358,-1,52, + -6471417749983771.,-7074237752028439.,.116077328449719525548,-1,52, + -6471417749975597.,-7074237752028439.,.116077328451477552512,-1,52, + -6031878638313244.,-7074237752028439.,.217500051283397888555,-1,52, + -6031878638313243.,-7074237752028439.,.217500051283398136118,-1,52, + -6031878638313174.,-7074237752028439.,.217500051283415217919,-1,52, + -6031878638306250.,-7074237752028439.,.217500051285129339566,-1,52, + -5840746347509200.,-7074237752028439.,.266365612868383211336,-1,52, + -5840746347509199.,-7074237752028439.,.266365612868383475366,-1,52, + -5840746347509138.,-7074237752028439.,.266365612868399581189,-1,52, + -5840746347503031.,-7074237752028439.,.266365612870012011665,-1,52, + -5301224375153928.,-7074237752028439.,.423313102730698401471,-1,52, + -5301224375153903.,-7074237752028439.,.423313102730706414144,-1,52, + -5301224375151470.,-7074237752028439.,.423313102731486207457,-1,52, + -5286632173730733.,-7074237752028439.,.428002913343679253115,-1,52, + -5286632173730710.,-7074237752028439.,.428002913343686665525,-1,52, + -5286632173728413.,-7074237752028439.,.428002913344426939661,-1,52, + -4827510902877757.,-7074237752028438.,-.409959850802855493161,-1,52, + -4827510902874312.,-7074237752028438.,-.409959850801524019837,-1,52, + -4827510902874277.,-7074237752028438.,-.409959850801510492532,-1,52, + -4508444030604469.,-7074237752028438.,-.277914978958590307780,-1,52, + -4508444030594726.,-7074237752028438.,-.277914978954272839977,-1,52, + -4508444030594629.,-7074237752028438.,-.277914978954229855847,-1,52, + -4508444030594628.,-7074237752028438.,-.277914978954229412712,-1,52, + -7501948289004415.,-7074237752028438.,.125530068700340018178,-2,52, + -7501948289004414.,-7074237752028438.,.125530068700340338268,-2,52, + -7501948289004295.,-7074237752028438.,.125530068700378428936,-2,52, + -7501948288992429.,-7074237752028438.,.125530068704176612739,-2,52, + -7485075199918261.,-7074237752028438.,.130943144782072816293,-2,52, + -7485075199918260.,-7074237752028438.,.130943144782073137827,-2,52, + -7485075199918142.,-7074237752028438.,.130943144782111078885,-2,52, + -7485075199906395.,-7074237752028438.,.130943144785888143364,-2,52, + -5441089836917728.,-7074237752028437.,.035041091465103798840,-2,52, + -5441089836917725.,-7074237752028437.,.035041091465105624287,-2,52, + -5441089836917445.,-7074237752028437.,.035041091465275999340,-2,52, + -5441089836889436.,-7074237752028437.,.035041091482318980989,-2,52, + -5137347928742246.,-7074237752028437.,.230790116122171144115,-2,52, + -5137347928742244.,-7074237752028437.,.230790116122172509238,-2,52, + -5137347928742062.,-7074237752028437.,.230790116122296735436,-2,52, + -5137347928723871.,-7074237752028437.,.230790116134713212219,-2,52, + -5130840493893794.,-7074237752028437.,.235237474235727657509,-2,52, + -5130840493893792.,-7074237752028437.,.235237474235729026097,-2,52, + -5130840493893613.,-7074237752028437.,.235237474235851514725,-2,52, + -5130840493875676.,-7074237752028437.,.235237474248125696387,-2,52, + -5046807759991974.,-7074237752028437.,.293698035833242410413,-2,52, + -5046807759991973.,-7074237752028437.,.293698035833243117685,-2,52, + -5046807759991828.,-7074237752028437.,.293698035833345672072,-2,52, + -5046807759977383.,-7074237752028437.,.293698035843562210849,-2,52, + -5010504700961462.,-7074237752028437.,.319560193296355979266,-2,52, + -5010504700961461.,-7074237752028437.,.319560193296356696823,-2,52, + -5010504700961333.,-7074237752028437.,.319560193296448544206,-2,52, + -5010504700948514.,-7074237752028437.,.319560193305646916127,-2,52, + -6298970528341482.,-7074237752028435.,.444025387066139815466,-3,52, + -6298970528341481.,-7074237752028435.,.444025387066140723518,-3,52, + -6298970528341431.,-7074237752028435.,.444025387066186126107,-3,52, + -6298970528336399.,-7074237752028435.,.444025387070755442608,-3,52, + -6002783559884483.,-7074237752028434.,-.273750934954965573700,-3,52, + -6002783559862087.,-7074237752028434.,-.273750934932572441116,-3,52, + -6002783559861863.,-7074237752028434.,-.273750934932348469795,-3,52, + -6002783559861861.,-7074237752028434.,-.273750934932346470051,-3,52, + -7922455086004378.,-7074237752028431.,-.180404309213629124942,-4,52, + -7922455085968054.,-7074237752028431.,-.180404309171927416012,-4,52, + -7922455085967691.,-7074237752028431.,-.180404309171510674455,-4,52, + -7922455085967687.,-7074237752028431.,-.180404309171506082261,-4,52, + -5181586503289490.,-7074237752028426.,-.369292705501746156029,-4,52, + -5181586503254761.,-7074237752028426.,-.369292705408539585266,-4,52, + -5181586503254414.,-7074237752028426.,-.369292705407608297868,-4,52, + -5181586503254410.,-7074237752028426.,-.369292705407597562566,-4,52, + -5061503531787600.,-7074237752028383.,-.330161867166206385452,-6,52, + -5061503531598431.,-7074237752028383.,-.330161865037917249576,-6,52, + -5061503531596539.,-7074237752028383.,-.330161865016630870491,-6,52, + -5061503531596520.,-7074237752028383.,-.330161865016417106642,-6,52, + -5034345543218302.,-7074237752028383.,-.022966413199435710935,-6,52, + -5034345543218301.,-7074237752028383.,-.022966413199424338494,-6,52, + -5034345543218243.,-7074237752028383.,-.022966413198764736894,-6,52, + -5034345543212355.,-7074237752028383.,-.022966413131803802104,-6,52, + -5034345542623562.,-7074237752028383.,-.022966406435789929312,-6,52, + -5263775657390696.,-6594410908646311.,.499998505920756747033,-49,52, + -5263775657359978.,-6594410908643531.,-.499988669056308066393,-49,52, + -5263775657351113.,-6594410908642730.,.499982483915631001382,-49,52, + -5263775657348847.,-6594410908642524.,-.499235267191649168507,-49,52, + -5263775657348836.,-6594410908642524.,.495914161201459550333,-49,52, + -5263775657348770.,-6594410908642518.,.466810731560198219606,-49,52, + -5263775657348748.,-6594410908642516.,.457109588346477340311,-49,52, + -5263775657348228.,-6594410908642468.,-.499462887609408802932,-49,52, + -5263775657346990.,-6594410908642356.,-.499918128405862734060,-49,52, + -5153546050516985.,-6584227825087857.,.469171301416417382803,-49,52, + -5153546050516974.,-6584227825087855.,-.493160683971663991085,-49,52, + -5153546050516656.,-6584227825087825.,-.495121716097942138882,-49,52, + -5153546050515914.,-6584227825087755.,-.499697457711697335407,-49,52, + -5153546050515861.,-6584227825087751.,.499975703602368033502,-49,52, + -5153546050512808.,-6584227825087462.,-.499983513361168137662,-49,52, + -5153546050488331.,-6584227825085153.,-.499984075563290601732,-49,52, + -4896645647472262.,-6558738121442973.,.499976367538495584889,-49,52, + -4896645647469119.,-6558738121442644.,-.499905742086352890157,-49,52, + -4896645647468429.,-6558738121442572.,-.492243844366434804920,-49,52, + -4896645647468420.,-6558738121442572.,.446986528212652975234,-49,52, + -4896645647468362.,-6558738121442566.,.499804484833522631133,-49,52, + -4896645647455033.,-6558738121441175.,.499986278234574196483,-49,52, + -4896645647437804.,-6558738121439377.,.499996201418238746540,-49,52, + -4837866588169495.,-6552530461227683.,.499979664847728455020,-49,52, + -4837866588169102.,-6552530461227640.,-.497701410044522897854,-49,52, + -4837866588169027.,-6552530461227632.,-.481991691511744741870,-49,52, + -4837866588168971.,-6552530461227626.,-.496928435007110486646,-49,52, + -4837866588161729.,-6552530461226852.,-.499998012309384916416,-49,52, + -4716555872202338.,-6539236380100597.,.499923808455944917407,-49,52, + -4716555872202329.,-6539236380100595.,-.488778891408831947750,-49,52, + -4716555872202320.,-6539236380100594.,-.477481591273605007659,-49,52, + -4716555872197381.,-6539236380100039.,-.499996549823365720618,-49,52, + -4707537845173328.,-6538221143323810.,-.499983811833436955052,-49,52, + -4707537845168434.,-6538221143323258.,-.499781077312533958896,-49,52, + -4707537845168301.,-6538221143323243.,-.498549576746826369278,-49,52, + -4707537845168168.,-6538221143323228.,-.497318076180283084129,-49,52, + -4707537845166847.,-6538221143323080.,.499876000920755064352,-49,52, + -4707537845164400.,-6538221143322804.,.499977368789002858100,-49,52, + -4707537845144097.,-6538221143320513.,-.499998888453436177491,-49,52, + -8956367348692004.,-6511047049156587.,-.499980137050404090305,-50,52, + -8956367348675227.,-6511047049155543.,-.499655396773309546370,-50,52, + -8956367348675050.,-6511047049155532.,-.485287066358253253226,-50,52, + -8956367348675034.,-6511047049155531.,-.489637951744441732465,-50,52, + -8956367348675002.,-6511047049155529.,-.498339722516808184973,-50,52, + -8956367348674536.,-6511047049155501.,.499940740612192654919,-50,52, + -8956367348672238.,-6511047049155357.,-.499955172927101366778,-50,52, + -8956367348625121.,-6511047049152425.,-.499996827250469034721,-50,52, + -8772453526434879.,-6499366347678959.,-.499939748370765058131,-50,52, + -8772453526433614.,-6499366347678878.,.499773078843635274608,-50,52, + -8772453526433182.,-6499366347678849.,-.497162935888884474961,-50,52, + -8772453526432966.,-6499366347678835.,-.495630943254126850989,-50,52, + -8772453526432935.,-6499366347678833.,-.486151814681490233060,-50,52, + -8772453526430976.,-6499366347678707.,.499964729662821378302,-50,52, + -8772453526274316.,-6499366347668552.,.499974015450117280487,-50,52, + -8298192411090965.,-6466897466336894.,.499992738729909458755,-50,52, + -8298192411035077.,-6466897466332852.,-.499980828453866478956,-50,52, + -8298192411034344.,-6466897466332800.,.499822696365413305140,-50,52, + -8298192411034275.,-6466897466332795.,.488890149588984048688,-50,52, + -8298192411034261.,-6466897466332793.,-.498835294684484409243,-50,52, + -8298192411029863.,-6466897466332476.,.499985854430513759441,-50,52, + -7900377053053516.,-6436712834194601.,-.499998349861359816443,-50,52, + -7900377053035267.,-6436712834193148.,-.482089063187220062775,-50,52, + -7900377053035217.,-6436712834193145.,.499000063038799595542,-50,52, + -7900377053034903.,-6436712834193119.,-.499760224260667978450,-50,52, + -7900377053034162.,-6436712834193061.,.499980626419329461564,-50,52, + -7846976255536888.,-6432432613500293.,.499999204908015374680,-50,52, + -7846976255466344.,-6432432613494600.,-.499974949254092862365,-50,52, + -7846976255461746.,-6432432613494230.,.499913334437310317900,-50,52, + -7846976255461337.,-6432432613494196.,-.499009173582556482337,-50,52, + -7846976255461275.,-6432432613494191.,-.496400849614613713699,-50,52, + -7688073522913897.,-6419351680052778.,-.499991043256485503805,-50,52, + -7688073522787305.,-6419351680042146.,-.499972032547068039443,-50,52, + -7688073522778756.,-6419351680041429.,.499334117025774737544,-50,52, + -7688073522778744.,-6419351680041427.,-.492829682973726146424,-50,52, + -7688073522778244.,-6419351680041385.,-.499654682950191759144,-50,52, + -7688073522777351.,-6419351680041310.,-.499844132894855474444,-50,52, + -7688073522776458.,-6419351680041236.,.499966417177538032130,-50,52, + -7668040568135362.,-6417664882346815.,.499966758766635625699,-50,52, + -7668040568133514.,-6417664882346658.,-.498372695901166147832,-50,52, + -7668040568132128.,-6417664882346541.,-.497127286853713533267,-50,52, + -7668040568132081.,-6417664882346538.,.470447413165215937580,-50,52, + -7668040568132069.,-6417664882346537.,.483445208914737474821,-50,52, + -7668040568132057.,-6417664882346536.,.496443004664262115706,-50,52, + -7668040568120898.,-6417664882345594.,.499976570086424291653,-50,52, + -7668040568091970.,-6417664882343152.,.499996206253186618792,-50,52, + -6448237341754015.,-6295731132686615.,-.499993133649424677548,-50,52, + -6448237341697247.,-6295731132679898.,.477142803730658212882,-50,52, + -6448237341697230.,-6295731132679896.,.488938380673855676793,-50,52, + -6448237341697213.,-6295731132679893.,-.499266042382936565415,-50,52, + -6448237341696875.,-6295731132679854.,.499963663901801696427,-50,52, + -6448237341683904.,-6295731132678319.,.499988874725797857471,-50,52, + -5630902860404413.,-6185463026844426.,.499996078598500245456,-50,52, + -5630902860360608.,-6185463026837689.,-.498782940686139292722,-50,52, + -5630902860360595.,-6185463026837687.,-.499741372979153068490,-50,52, + -5630902860359548.,-6185463026837527.,.499991041604956953524,-50,52, + -4917964729999861.,-6060667740382729.,-.499999949098532169382,-50,52, + -4917964729963828.,-6060667740375551.,-.499780532048269839767,-50,52, + -4917964729963577.,-6060667740375501.,-.499001937806598698143,-50,52, + -4917964729963572.,-6060667740375501.,.497029508293882263294,-50,52, + -4917964729962568.,-6060667740375300.,-.499856114690550358133,-50,52, + -4917964729960048.,-6060667740374799.,.499992720391515468993,-50,52, + -4831850099991375.,-6043223001570451.,.499997276747517229137,-50,52, + -4831850099972079.,-6043223001566475.,-.499977451402497753297,-50,52, + -4831850099948327.,-6043223001561583.,.441595986347170514127,-50,52, + -4831850099948317.,-6043223001561580.,-.498391562717930159449,-50,52, + -4831850099948084.,-6043223001561533.,.499898544067513725996,-50,52, + -4831850099946351.,-6043223001561175.,-.499943708759626978101,-50,52, + -4681019096820358.,-6011204124174933.,.499969688596740755500,-50,52, + -4681019096820344.,-6011204124174929.,-.437489842239392775832,-50,52, + -4681019096809533.,-6011204124172564.,-.499988970600892267924,-50,52, + -4681019096787915.,-6011204124167835.,-.499998758974314050468,-50,52, + -4531746129756674.,-5977535909893823.,-.499993365870157331195,-50,52, + -4531746129751101.,-5977535909892528.,.499961433515667188280,-50,52, + -4531746129746044.,-5977535909891351.,-.495773101748355569120,-50,52, + -4531746129745829.,-5977535909891301.,-.497569211063112038404,-50,52, + -4531746129745528.,-5977535909891232.,.499916235903735691694,-50,52, + -4531746129712133.,-5977535909883465.,-.499995664998374716845,-50,52, + -7166361094597504.,-5703120107432183.,-.499491175908270114794,-51,52, + -7166361094597426.,-5703120107432169.,-.481214533595863613409,-51,52, + -7166361094597415.,-5703120107432168.,.495721915961036572123,-51,52, + -7166361094597287.,-5703120107432144.,-.499926671012809713521,-51,52, + -7166361094562817.,-5703120107425949.,-.499979714014485175863,-51,52, + -7166361094549029.,-5703120107423472.,.499999083972116774126,-51,52, + -6982521428626811.,-5669290948329883.,.498196880242369878392,-51,52, + -6982521428626795.,-5669290948329879.,-.487299903699825212794,-51,52, + -6982521428626790.,-5669290948329879.,.454732351318241387487,-51,52, + -6982521428626742.,-5669290948329870.,.498241999491742927418,-51,52, + -6982521428625983.,-5669290948329727.,.498738311250206295472,-51,52, + -6982521428624120.,-5669290948329376.,.499956531140367777040,-51,52, + -6982521428624051.,-5669290948329362.,-.499998349601182911480,-51,52, + -5383107157247072.,-5289959700165904.,-.499944701034560801782,-51,52, + -5383107157246931.,-5289959700165863.,.496389470184813842663,-51,52, + -5383107157246914.,-5289959700165857.,-.440222721937546418791,-51,52, + -5383107157233978.,-5289959700162004.,-.499947260803178095944,-51,52, + -5383107157024474.,-5289959700099604.,-.499986021054264599173,-51,52, + -8553544359437414.,-4891628179855686.,.499741164070176458933,-52,52, + -8553544359437368.,-4891628179855676.,.484069303190308733614,-52,52, + -8553544359435373.,-4891628179855242.,-.499960315323057183622,-52,52, + -8553544359428992.,-4891628179853858.,.499993071335918091884,-52,52, + -8099766831130065.,-4788884977958055.,-.499995972017895216698,-52,52, + -8099766831127033.,-4788884977957339.,-.499935713709271460035,-52,52, + -8099766831116421.,-4788884977954833.,-.499724806404608636799,-52,52, + -8099766831116006.,-4788884977954735.,-.498397297206255140432,-52,52, + -8099766831115934.,-4788884977954718.,-.495757343802386428784,-52,52, + -8099766831115883.,-4788884977954706.,-.452220710141173058171,-52,52, + -8099766831115879.,-4788884977954706.,.492370398381279948734,-52,52, + -8099766831115663.,-4788884977954654.,-.499709741405199406870,-52,52, + -7588440847671859.,-4662052437644698.,-.499993908384599873126,-52,52, + -7588440847589594.,-4662052437623270.,-.478282043278065003339,-52,52, + -7588440847589571.,-4662052437623264.,-.487344227963536121876,-52,52, + -7588440847589548.,-4662052437623258.,-.496406412648980383714,-52,52, + -7588440847589429.,-4662052437623227.,-.499815107325415227580,-52,52, + -7588440847588546.,-4662052437622997.,-.499898110658350652590,-52,52, + -7588440847587663.,-4662052437622767.,-.499981113951702197879,-52,52, + -7221316242081890.,-4562893206878456.,-.499992745122100213312,-52,52, + -7221316242028824.,-4562893206863597.,.489713952953499853734,-52,52, + -7221316242028817.,-4562893206863595.,.449913100193482946516,-52,52, + -7221316242028799.,-4562893206863590.,.490425193096309177258,-52,52, + -7221316242028499.,-4562893206863506.,.498960074812743169989,-52,52, + -7221316242028474.,-4562893206863499.,.499671314956006178587,-52,52, + -7221316242015811.,-4562893206859953.,.499928676807292307771,-52,52, + -7221316242012997.,-4562893206859165.,.499985869545739937396,-52,52, + -6207868236498691.,-8495432818763202.,-.490845166742927554485,-52,53, + -6207868236498678.,-8495432818763194.,.474512061931930281043,-52,53, + -6207868236498662.,-8495432818763182.,-.491202118160518610716,-52,53, + -6207868236498227.,-8495432818762882.,-.496556389409693544918,-52,53, + -6207868236497966.,-8495432818762702.,-.499768952145976687103,-52,53, + -6207868236497937.,-8495432818762683.,.499874096439492862762,-52,53, + -6207868236492337.,-8495432818758821.,.499911066962451115107,-52,53, + -6207868236478337.,-8495432818749165.,-.499996486757969834684,-52,53, + -4503599627370497.,-7074237752028441.,-.275765943415024410352,-52,53, + -4503599627370496.,-7074237752028440.,-.275765943415024521374,-52,53, + -9007199254740990.,-7074237752028439.,-.275765943415024410352,-53,53, + -8871213671080945.,-7005729119120475.,.499966366103308413956,-53,53, + -8871213671079170.,-7005729119119573.,-.499928870032000524476,-53,53, + -8871213671077921.,-7005729119118940.,.499581468140328953227,-53,53, + -8871213671077789.,-7005729119118872.,-.496467078981238427714,-53,53, + -8871213671077777.,-7005729119118866.,-.405198765083150413144,-53,53, + -8871213671077395.,-7005729119118672.,-.499824105989774792597,-53,53, + -8871213671070821.,-7005729119115335.,-.499999474125862512686,-53,53, + -8108579655065178.,-6601771905131653.,-.499996699087190486556,-53,53, + -8108579655014374.,-6601771905103591.,-.499981474863850999558,-53,53, + -8108579655013123.,-6601771905102901.,.499979535024895425479,-53,53, + -8108579655010726.,-6601771905101576.,-.497697090844892684312,-53,53, + -8108579655010708.,-6601771905101567.,.444748391315107799140,-53,53, + -8108579655010621.,-6601771905101519.,.499901555088722026892,-53,53, + -7881394195509955.,-6474698755598284.,-.499997503473688634231,-53,53, + -7881394195508403.,-6474698755597406.,.499677868225334406741,-53,53, + -7881394195508064.,-6474698755597214.,.497673970697609907610,-53,53, + -7881394195507958.,-6474698755597153.,-.467554386639972705565,-53,53, + -7881394195507951.,-6474698755597150.,.497006004856626676226,-53,53, + -7881394195506964.,-6474698755596590.,-.499978794092288689058,-53,53, + -7552125243336370.,-6284799436357542.,-.499990359850718441996,-53,53, + -7552125243333027.,-6284799436355580.,.499934879110604933221,-53,53, + -7552125243332121.,-6284799436355047.,-.499487117026991592978,-53,53, + -7552125243331954.,-6284799436354949.,-.437570420945057653200,-53,53, + -7552125243331949.,-6284799436354947.,.498415108877782343183,-53,53, + -7552125243322545.,-6284799436349425.,.499999602515216184204,-53,53, + -7109328173648877.,-6018418740252676.,.499965335129335624458,-53,53, + -7109328173648072.,-6018418740252180.,.499622955455033284791,-53,53, + -7109328173647710.,-6018418740251956.,-.454568276136002727876,-53,53, + -7109328173647689.,-6018418740251944.,.484553227004011372185,-53,53, + -7109328173647663.,-6018418740251927.,-.495582054822597184392,-53,53, + -7109328173647465.,-6018418740251805.,-.498150739500679174063,-53,53, + -7109328173637198.,-6018418740245480.,.499967013619840291821,-53,53, + -7109328173485371.,-6018418740151932.,.499989659849341187887,-53,53, + -7006352135985941.,-5954616518569951.,-.499993215305306995472,-53,53, + -7006352135983344.,-5954616518568334.,.499716026496276893069,-53,53, + -7006352135983031.,-5954616518568138.,-.493002882720824098289,-53,53, + -7006352135983023.,-5954616518568134.,.491208774551668349749,-53,53, + -7006352135982901.,-5954616518568057.,-.499563452042290164290,-53,53, + -7006352135981824.,-5954616518567387.,.499930908314986298040,-53,53, + -7006352135972070.,-5954616518561310.,.499994041777360999626,-53,53, + -6828286958466634.,-5842609816051684.,-.499997584650290629932,-53,53, + -6828286958448432.,-5842609816040125.,-.499987621664600453421,-53,53, + -6828286958433044.,-5842609816030354.,.497163989683508952631,-53,53, + -6828286958433003.,-5842609816030327.,-.466191663007180467871,-53,53, + -6828286958432992.,-5842609816030320.,-.480750496655882605019,-53,53, + -6828286958432907.,-5842609816030267.,.497658516058968754623,-53,53, + -6828286958432359.,-5842609816029919.,.499636621573549025552,-53,53, + -6828286958432222.,-5842609816029831.,-.499868852044620640976,-53,53, + -6828286958430230.,-5842609816028566.,-.499977636188221933487,-53,53, + -6595469068484326.,-5692911935226515.,-.499999877103726725920,-53,53, + -6595469068453438.,-5692911935206409.,.498911911162182028369,-53,53, + -6595469068453398.,-5692911935206382.,-.462498459439766279855,-53,53, + -6595469068453395.,-5692911935206381.,.490395762765092040995,-53,53, + -6595469068452971.,-5692911935206105.,.499445834391305041033,-53,53, + -6595469068452504.,-5692911935205801.,.499979757635454103914,-53,53, + -6595469068444989.,-5692911935200908.,-.499993616786804058719,-53,53, + -6056160701852556.,-5331720846798031.,-.499995673080807922316,-53,53, + -6056160701831193.,-5331720846783320.,.499903671734930396755,-53,53, + -6056160701828784.,-5331720846781661.,.499471034229544794512,-53,53, + -6056160701828678.,-5331720846781588.,.498206667457923915988,-53,53, + -6056160701828466.,-5331720846781442.,.495677933917068869621,-53,53, + -6056160701828453.,-5331720846781433.,.448353058747214330150,-53,53, + -6056160701824875.,-5331720846778968.,-.499985660624028811656,-53,53, + -5587044502255062.,-5000821182216535.,.499999269773592913257,-53,53, + -5587044502248976.,-5000821182212139.,-.499980241367759934517,-53,53, + -5587044502248213.,-5000821182211589.,.499858015967327544071,-53,53, + -5587044502246982.,-5000821182210700.,.465521049842496381229,-53,53, + -5587044502246975.,-5000821182210694.,-.479434562474717834512,-53,53, + -5587044502246885.,-5000821182210629.,-.486006720838587084391,-53,53, + -5587044502246705.,-5000821182210499.,-.499151037564580193172,-53,53, + -5587044502246687.,-5000821182210487.,.499534530762948491288,-53,53, + -5574097035286976.,-4991465158402034.,.499998082164255322267,-53,53, + -5574097035223539.,-4991465158356164.,.481046686477588065365,-53,53, + -5574097035223521.,-4991465158356151.,.496473943086199476527,-53,53, + -5574097035223456.,-4991465158356104.,.496627925284156707733,-53,53, + -5574097035222286.,-4991465158355258.,.499399604899293119188,-53,53, + -5574097035222026.,-4991465158355069.,-.499984466283987239736,-53,53, + -5292230209319338.,-4784794832124131.,.499966622003387056232,-53,53, + -5292230209316509.,-4784794832122028.,.499262477686778231637,-53,53, + -5292230209316396.,-4784794832121943.,-.499705202862488214036,-53,53, + -5292230209315453.,-4784794832121242.,-.499939917498789098861,-53,53, + -5292230209306740.,-4784794832114765.,-.499987707282677725879,-53,53, + -5292230209242807.,-4784794832067239.,-.499993891779353376097,-53,53, + -5268565944254121.,-4767183293757417.,.499997616051779508382,-53,53, + -5268565944194083.,-4767183293712683.,-.499770907711793996938,-53,53, + -5268565944194032.,-4767183293712646.,.499213265843637983929,-53,53, + -5268565944193879.,-4767183293712532.,.496165786511059148230,-53,53, + -5268565944193863.,-4767183293712520.,.417415723312978451055,-53,53, + -5268565944192102.,-4767183293711208.,.499986892687035792728,-53,53, + -4510984822798768.,-8364145233392767.,.499997792648037031391,-53,54, + -4510984822794195.,-8364145233385455.,.499853147199814672235,-53,54, + -4510984822793624.,-8364145233384541.,-.499508889011912444154,-53,54, + -4510984822793522.,-8364145233384378.,-.406575312288287493179,-53,54, + -4510984822793477.,-8364145233384306.,-.453810499027394543427,-53,54, + -4510984822793432.,-8364145233384235.,.498954314233786269956,-53,54, + -4510984822790956.,-8364145233380276.,.499969373225977895970,-53,54, + -8854767244013759.,-8229974922131205.,-.499963593771841796439,-54,54, + -8854767244013204.,-8229974922130758.,-.499670292862793117076,-54,54, + -8854767244013168.,-8229974922130730.,.494943326656008242125,-54,54, + -8854767244013132.,-8229974922130701.,.489556946174855479092,-54,54, + -8854767244013117.,-8229974922130688.,-.429354045692277965192,-54,54, + -8854767243993337.,-8229974922114757.,-.499981980888660609490,-54,54, + -8854767243972915.,-8229974922098310.,.499999646758172840281,-54,54, + -8644717199267704.,-8060019859445059.,-.498379160182770207293,-54,54, + -8644717199267624.,-8060019859444994.,-.472694731213662552305,-54,54, + -8644717199267613.,-8060019859444986.,.468336877769607367389,-54,54, + -8644717199267517.,-8060019859444908.,.499158192532871085303,-54,54, + -8644717199267127.,-8060019859444591.,.499369783761965754849,-54,54, + -8644717199265957.,-8060019859443639.,-.499995442518627568523,-54,54, + -8607732457420457.,-8029933817329829.,-.499994663971823724296,-54,54, + -8607732457383508.,-8029933817299748.,-.499625690745442876671,-54,54, + -8607732457383239.,-8029933817299530.,.499240293727783342245,-54,54, + -8607732457383099.,-8029933817299416.,.476345267060580592338,-54,54, + -8607732457383083.,-8029933817299402.,-.497699878844198698437,-54,54, + -8607732457382545.,-8029933817298964.,-.499967909887162481614,-54,54, + -8607732457373722.,-8029933817291781.,-.499988053215959701699,-54,54, + -7684108841899616.,-7263152063801827.,.499942883187511346537,-54,54, + -7684108841898791.,-7263152063801128.,-.499855622187224424214,-54,54, + -7684108841897180.,-7263152063799765.,-.495825794434282772192,-54,54, + -7684108841897167.,-7263152063799754.,-.497034740578687043688,-54,54, + -7684108841897141.,-7263152063799732.,-.499452632867478399876,-54,54, + -7684108841894653.,-7263152063797628.,.499942905141888167574,-54,54, + -7684108841869838.,-7263152063776633.,.499943027438462120066,-54,54, + -7492339963682996.,-7100282634169715.,-.498770252275278532465,-54,54, + -7492339963682935.,-7100282634169663.,-.494465131788497104050,-54,54, + -7492339963682779.,-7100282634169530.,-.499848758084029014628,-54,54, + -7492339963675347.,-7100282634163194.,-.499919979114605949355,-54,54, + -7492339963666986.,-7100282634156067.,.499999899441739742729,-54,54, + -7298995560604133.,-6934825787505531.,-.499994032922012640385,-54,54, + -7298995560598233.,-6934825787500463.,-.499907175344172599076,-54,54, + -7298995560586589.,-6934825787490462.,.498908314425059546305,-54,54, + -7298995560586582.,-6934825787490455.,-.488210226587981966497,-54,54, + -7298995560586561.,-6934825787490437.,-.449565849627096746694,-54,54, + -7298995560586511.,-6934825787490395.,.499587428851260310048,-54,54, + -7298995560586433.,-6934825787490327.,-.499733456722336991035,-54,54, + -7298995560558486.,-6934825787466321.,-.499999970972165804326,-54,54, + -6300104505904652.,-6060597577115105.,-.499581854328543396301,-54,54, + -6300104505904615.,-6060597577115073.,.468186072258548258263,-54,54, + -6300104505904606.,-6060597577115065.,.487372865212171528144,-54,54, + -6300104505904496.,-6060597577114967.,.499655890201102136877,-54,54, + -6300104505903193.,-6060597577113806.,.499699358961993788151,-54,54, + -6300104505895375.,-6060597577106840.,.499960172626405169003,-54,54, + -6300104505894072.,-6060597577105678.,-.499996358246349355321,-54,54, + -4924871031088273.,-4807401319302488.,.499999103248335821535,-54,54, + -4924871031067336.,-4807401319283007.,.499800540919498071766,-54,54, + -4924871031067034.,-4807401319282726.,.498125995184250459312,-54,54, + -4924871031066991.,-4807401319282685.,-.492178658678520349293,-54,54, + -4924871031066919.,-4807401319282618.,-.499200404681190590093,-54,54, + -4924871031066200.,-4807401319281949.,-.499875896005939167276,-54,54, + -4924871031060218.,-4807401319276383.,-.499932625805624060167,-54,54, + -4924871031054236.,-4807401319270817.,-.499989354664997510360,-54,54, + -4698780735304385.,-4596369687586897.,-.496935925918205491743,-54,54, + -4698780735304338.,-4596369687586853.,-.490877353937304655134,-54,54, + -4698780735304228.,-4596369687586750.,-.497974313130721781526,-54,54, + -4698780735303914.,-4596369687586457.,.499948912446122903256,-54,54, + -4698780735280806.,-4596369687564821.,.499980437245260499867,-54,54, + -4698780735269252.,-4596369687554003.,.499996204728306240140,-54,54, + -4517699360235299.,-8852822309696717.,-.499995820816564615589,-54,55, + -4517699360187674.,-8852822309607103.,-.499992676710082306305,-54,55, + -4517699360178776.,-8852822309590361.,.499944930986971766768,-54,55, + -4517699360175810.,-8852822309584780.,.499924134419881544098,-54,55, + -4517699360175472.,-8852822309584143.,-.499403926658353472714,-54,55, + -4517699360174458.,-8852822309582235.,-.497388109859271946181,-54,55, + -4517699360174441.,-8852822309582204.,.490811366359685042909,-54,55, + -4514338150834309.,-8846497382092915.,-.490691037813451287482,-54,55, + -4514338150834292.,-8846497382092883.,-.499675898668745219295,-54,55, + -4514338150832845.,-8846497382090160.,-.499740231417173645480,-54,55, + -4514338150827057.,-8846497382079268.,-.499997561379433461257,-54,55, + -8341071156586061.,-8196667225836113.,-.499999844002943382481,-55,55, + -8341071156516650.,-8196667225770234.,.499983693542084683353,-55,55, + -8341071156515235.,-8196667225768890.,-.482339328084266856688,-55,55, + -8341071156515215.,-8196667225768871.,-.499757321322635728219,-55,55, + -6979532375158638.,-6894138239083896.,-.499989767766381208116,-55,55, + -6979532375147441.,-6894138239073105.,.499971922803527465672,-55,55, + -6979532375146501.,-6894138239072199.,.499790087470293918224,-55,55, + -6979532375142741.,-6894138239068575.,.499062746225629706720,-55,55, + -6979532375142576.,-6894138239068415.,-.469054278054478444668,-55,55, + -6979532375142575.,-6894138239068415.,.494775315737764153266,-55,55, + -6979532375103593.,-6894138239030842.,-.499999467470847728295,-55,55, + -5360050516014288.,-5321023014525596.,.499996652094031881203,-55,55, + -5360050515993691.,-5321023014505444.,-.499990028165791884775,-55,55, + -5360050515988611.,-5321023014500475.,.499527749903765763005,-55,55, + -5360050515984548.,-5321023014496499.,-.479204389261102972204,-55,55, + -5360050515984547.,-5321023014496499.,.499141972506285753486,-55,55, + -5003579018628561.,-4971778405016944.,.499988367190094678843,-55,55, + -5003579018617043.,-4971778405005643.,-.442869793632140891687,-55,55, + -5003579018617040.,-4971778405005640.,-.499635601453029042323,-55,55, + -5003579018615983.,-4971778405004604.,.499878109658202780365,-55,55, + -5003579018614239.,-4971778405002892.,-.499978170193126360621,-55,55, + -5003579018593628.,-4971778404982671.,-.499999833630296634964,-55,55, + -5370993780299994.,-5368509151783401.,.499978485038622226552,-57,57, + -5370993780295668.,-5368509151779081.,.499670961404160001903,-57,57, + -5370993780293505.,-5368509151776921.,.499517199590548516743,-57,57, + -5370993780293504.,-5368509151776920.,.498130165951245509631,-57,57, + -5370993780293395.,-5368509151776811.,.346943499267220826402,-57,57, + -5370993780293188.,-5368509151776604.,.059827535931521095052,-57,57, + -5370993780280528.,-5368509151763962.,.499981662398850700016,-57,57, + -5370993780202664.,-5368509151686206.,.499994373794162456865,-57,57, + -4503599627370496.,-4503599627370496.,0.000000000000000000000,-1074,1074, + 0.,0.,0.000000000000000000000,0,0, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,1074, + 6940259249747182.,6934901498086803.,-.499998924649512358584,-57,57, + 6940259249803799.,6934901498143288.,.499577486192595265464,-57,57, + 6940259249803814.,6934901498143303.,.464870483810742366311,-57,57, + 6940259249803890.,6934901498143379.,.289021671742685376890,-57,57, + 6940259249804231.,6934901498143720.,-.499984182404828149061,-57,57, + 6175493946642041.,6160440836842856.,.499959190817002838581,-56,56, + 6175493946644784.,6160440836845579.,.499889153594905800277,-56,56, + 6175493946646293.,6160440836847077.,.497298673759407162349,-56,56, + 6175493946646297.,6160440836847081.,.468133423978523995682,-56,56, + 6175493946646430.,6160440836847213.,.498388868764137347622,-56,56, + 6175493946646567.,6160440836847349.,.499479063768823535501,-56,56, + 6175493946653973.,6160440836854702.,-.499980905605368695777,-56,56, + 6175493946683323.,6160440836883837.,.499998825626490033539,-56,56, + 6823990675679610.,6803699548482643.,.499998410367742706029,-56,56, + 6823990675707623.,6803699548510407.,.499984915757719906489,-56,56, + 6823990675708298.,6803699548511077.,-.499908316297471278919,-56,56, + 6823990675709423.,6803699548512192.,-.499730369725404181197,-56,56, + 6823990675709433.,6803699548512201.,.411382323132999540240,-56,56, + 7740553500844207.,7710984091444976.,-.499986505357287228906,-56,56, + 7740553500860161.,7710984091460748.,-.499944869887435535219,-56,56, + 7740553500861213.,7710984091461787.,.499054992222282166925,-56,56, + 7740553500862002.,7710984091462567.,.498304888802454141458,-56,56, + 7740553500862090.,7710984091462654.,.494418945708621970234,-56,56, + 7740553500862108.,7710984091462672.,.289078639166698973518,-56,56, + 7740553500862177.,7710984091462741.,-.498059202577347926675,-56,56, + 7740553500888212.,7710984091488479.,-.499997026846667506765,-56,56, + 8359220028894459.,8322021212206971.,-.499991332394936374082,-56,56, + 8359220028906727.,8322021212219076.,-.407133257057873381209,-56,56, + 8359220028906734.,8322021212219082.,.499913531866621821217,-56,56, + 8359220028912382.,8322021212224655.,.499951224037830101409,-56,56, + 8359220028947249.,8322021212259060.,-.499993145574869672164,-56,56, + 8513798801064457.,8474509656069644.,-.499997686727966433522,-56,56, + 8513798801093147.,8474509656097939.,-.499866388445723161517,-56,56, + 8513798801093365.,8474509656098153.,.498740395197956663628,-56,56, + 8513798801093438.,8474509656098225.,.493686703482274285128,-56,56, + 8513798801093441.,8474509656098228.,.452383127110396563480,-56,56, + 8513798801093510.,8474509656098297.,-.497599129442798957688,-56,56, + 8513798801095326.,8474509656100087.,.499969306774885550925,-56,56, + 8513798801101064.,8474509656105746.,.499995566076391945988,-56,56, + 4527203410034077.,9007199254698637.,.000006526447146855950,-55,56, + 4527203410054664.,9007199254739171.,.000032286613846042733,-55,56, + 4527203410055436.,9007199254740691.,.000421847237243974292,-55,56, + 4527203410055565.,9007199254740945.,-.009875752089424733793,-55,56, + 4527203410055572.,9007199254740959.,-.227488800114909316361,-55,56, + 4527203410055588.,9007199254740990.,.275109947255409150052,-55,56, + 4527203410055589.,4503599627370496.,.122011184483026969640,-55,55, + 4527203410055629.,4503599627370536.,-.499740381304082789063,-55,55, + 6216155809109973.,6155554481032103.,-.499994723574126418041,-55,55, + 6216155809170996.,6155554481091362.,-.499986158964032008776,-55,55, + 6216155809171826.,6155554481092168.,-.492906744735315151079,-55,55, + 6216155809171828.,6155554481092169.,.449278988792939302802,-55,55, + 6216155809171861.,6155554481092201.,.495343592009132575987,-55,55, + 6216155809171930.,6155554481092269.,-.499248601266131453864,-55,55, + 6216155809172103.,6155554481092436.,.499817348927582713153,-55,55, + 7082784227655559.,6993601955512480.,.499993467526048186039,-55,55, + 7082784227659886.,6993601955516646.,.499319042236840515318,-55,55, + 7082784227659913.,6993601955516672.,.494692693846412639233,-55,55, + 7082784227659967.,6993601955516724.,.485439997065534763866,-55,55, + 7082784227660316.,6993601955517060.,.499714234536557118717,-55,55, + 7082784227660531.,6993601955517267.,.499911830685714017991,-55,55, + 7082784227716298.,6993601955570960.,-.499998210918546863097,-55,55, + 4579785905351171.,8969552671765385.,.499997628446776707314,-54,55, + 4579785905374018.,8969552671808305.,.475535738401174899013,-54,55, + 4579785905374026.,8969552671808321.,-.495803855209556905943,-54,55, + 4579785905374199.,8969552671808645.,.498977432957588051987,-54,55, + 4579785905374339.,8969552671808909.,-.499465455231940764949,-54,55, + 4579785905374932.,8969552671810022.,.499987168354445140613,-54,55, + 4599831125052332.,9007199254740673.,.000016255175625156587,-54,55, + 4599831125052381.,9007199254740765.,.001561787804244253558,-54,55, + 4599831125052479.,9007199254740949.,.004652853061122520973,-54,55, + 4599831125052496.,9007199254740981.,-.076443594802529073231,-54,55, + 4599831125052501.,9007199254740990.,.311469214649335356651,-54,55, + 4599831125052502.,4503599627370496.,.094525888269854046360,-54,54, + 4599831125052512.,4503599627370505.,.482438697721716352561,-54,54, + 4599831125096329.,4503599627411640.,.499995848957082485120,-54,54, + 5299073463155037.,5153708217181715.,.499996827035326941884,-54,54, + 5299073463166853.,5153708217192591.,-.499985615230652691586,-54,54, + 5299073463177564.,5153708217202448.,.499776404188278660390,-54,54, + 5299073463177652.,5153708217202529.,.491651958064487714709,-54,54, + 5299073463177677.,5153708217202553.,-.499292486857082878720,-54,54, + 5299073463178669.,5153708217203466.,-.499968061358958407807,-54,54, + 5354986034430826.,5205124691097575.,.499992964849732440561,-54,54, + 5354986034456371.,5205124691121047.,-.499984125672071334746,-54,54, + 5354986034456642.,5205124691121295.,.497510734612875382527,-54,54, + 5354986034456704.,5205124691121352.,.463727270913940894628,-54,54, + 5354986034456716.,5205124691121363.,.489446600520586365297,-54,54, + 5354986034456876.,5205124691121510.,.499037661942142603782,-54,54, + 6318840445920071.,6077286275039632.,.499993234208972251428,-54,54, + 6318840445921787.,6077286275041160.,.499703391799358920559,-54,54, + 6318840445926077.,6077286275044980.,.498978785377536882005,-54,54, + 6318840445926150.,6077286275045046.,-.498702542428963770323,-54,54, + 6318840445926223.,6077286275045111.,-.496383870235628967977,-54,54, + 6318840445926241.,6077286275045127.,-.468414882571544305253,-54,54, + 6779876501427582.,6484487576360831.,.497562537842408549039,-54,54, + 6779876501427606.,6484487576360853.,-.480157418723712917600,-54,54, + 6779876501427622.,6484487576360867.,-.465304056434470820893,-54,54, + 6779876501427719.,6484487576360951.,.499744452443883691279,-54,54, + 6779876501428662.,6484487576361778.,-.499835507651338749730,-54,54, + 6779876501435529.,6484487576367793.,-.499958081123843495123,-54,54, + 6779876501437818.,6484487576369798.,-.499998939283958907342,-54,54, + 7852441928000981.,7405090492838774.,-.499982389990421475195,-54,54, + 7852441928002196.,7405090492839795.,-.497710264090156003418,-54,54, + 7852441928002202.,7405090492839800.,-.455723735073489748422,-54,54, + 7852441928002315.,7405090492839895.,-.498310771926505048341,-54,54, + 7852441928002672.,7405090492840194.,.499887704561544187178,-54,54, + 7852441928024298.,7405090492858368.,-.499999551375272313368,-54,54, + 8717776617217497.,8119310086280396.,.499992067058185356633,-54,54, + 8717776617241212.,8119310086299612.,-.498466465315437489203,-54,54, + 8717776617241407.,8119310086299769.,.499648676334873614878,-54,54, + 8717776617242988.,8119310086301050.,.499751440127107291586,-54,54, + 8717776617246677.,8119310086304039.,.499991221966123309722,-54,54, + 4920655379368603.,9007199254717063.,-.000002042640082948604,-53,54, + 4920655379371779.,9007199254721955.,.000121400945846457895,-53,54, + 4920655379382895.,9007199254739077.,.000553442066055616185,-53,54, + 4920655379384135.,9007199254740987.,-.024587281329483810791,-53,54, + 4920655379384138.,4503599627370496.,-.201840181862531948954,-53,53, + 4920655379384139.,4503599627370497.,-.431689028928462107372,-53,53, + 4920655379384148.,4503599627370503.,.499671347478163229159,-53,53, + 5205590995503736.,4720119056239647.,.499993998063775751841,-53,53, + 5205590995509643.,4720119056244076.,-.499962140274682855643,-53,53, + 5205590995512926.,4720119056246536.,.499554364111481129714,-53,53, + 5205590995512934.,4720119056246542.,.496507191413330919279,-53,53, + 5205590995513050.,4720119056246629.,.452323187289634245338,-53,53, + 5205590995513070.,4720119056246644.,.444705255544071230533,-53,53, + 5205590995513581.,4720119056247028.,-.499932900564847139242,-53,53, + 6059040276401584.,5333703622131396.,.499971293987777824415,-53,53, + 6059040276407747.,5333703622135640.,-.499850607683867759984,-53,53, + 6059040276408527.,5333703622136177.,-.498367739678893918148,-53,53, + 6059040276408588.,5333703622136218.,.497902074355576514204,-53,53, + 6059040276408604.,5333703622136230.,-.486682892455097803138,-53,53, + 6059040276409628.,5333703622136934.,.499879231624047795931,-53,53, + 6059040276419813.,5333703622143947.,-.499988708212012148832,-53,53, + 6059040276464315.,5333703622174584.,.499999123303864386294,-53,53, + 6179968525075650.,5416441515353754.,-.499995885765837007928,-53,53, + 6179968525077234.,5416441515354830.,.499424676283921889651,-53,53, + 6179968525077662.,5416441515355122.,-.493156131475382275473,-53,53, + 6179968525077665.,5416441515355124.,-.453384501623273398371,-53,53, + 6179968525077712.,5416441515355156.,-.496962300606983745601,-53,53, + 6179968525077762.,5416441515355189.,.499231530261238709427,-53,53, + 6179968525111907.,5416441515378405.,.499998589053768605431,-53,53, + 6230674196581232.,5450827042220084.,.499995768114678387297,-53,53, + 6230674196596746.,5450827042230578.,-.499973603279242103004,-53,53, + 6230674196597151.,5450827042230851.,.424546984645951998759,-53,53, + 6230674196597160.,5450827042230858.,-.488241446733619035471,-53,53, + 6230674196597228.,5450827042230904.,-.495976261601673024898,-53,53, + 6230674196597262.,5450827042230927.,-.499843669035821858622,-53,53, + 7103100048440913.,6014579998724953.,.499976331143561468977,-53,53, + 7103100048445271.,6014579998727640.,.482089457659560466233,-53,53, + 7103100048445284.,6014579998727648.,.497410125543100150487,-53,53, + 7103100048445417.,6014579998727731.,-.499693810725947832193,-53,53, + 7103100048445743.,6014579998727931.,.499886014654713674440,-53,53, + 7103100048462322.,6014579998738153.,.499990069700725586468,-53,53, + 7103100048483731.,6014579998751354.,-.499996222252394310686,-53,53, + 7302452754243512.,6136177502254278.,.499993600694087713235,-53,53, + 7302452754244808.,6136177502255060.,.498847160308728543131,-53,53, + 7302452754244828.,6136177502255073.,-.433269297105488301248,-53,53, + 7302452754245103.,6136177502255239.,-.499870586553628469547,-53,53, + 7511273082099992.,6260757536931200.,-.499997977115036984219,-53,53, + 7511273082101584.,6260757536932139.,-.499974763591812920162,-53,53, + 7511273082104768.,6260757536934017.,-.499928337035162183243,-53,53, + 7511273082104846.,6260757536934063.,-.493645792674193164633,-53,53, + 7511273082104885.,6260757536934086.,-.490504520493855625621,-53,53, + 7913137471557216.,6492645692204867.,.499997753777667137343,-53,53, + 7913137471600693.,6492645692229406.,-.499975413461563374250,-53,53, + 7913137471603900.,6492645692231215.,.499934558487499970717,-53,53, + 7913137471605018.,6492645692231846.,.488365911202581245384,-53,53, + 7913137471605034.,6492645692231856.,-.481388201818160199689,-53,53, + 7913137471605057.,6492645692231868.,.499590260714496104056,-53,53, + 7913137471612364.,6492645692235993.,-.499991231118285857449,-53,53, + 8575032706795185.,6852887779102918.,.499960420742733433857,-53,53, + 8575032706797139.,6852887779103943.,.499756855812582202723,-53,53, + 8575032706797179.,6852887779103964.,.482352483959082291456,-53,53, + 8575032706797200.,6852887779103975.,.498215188735957581390,-53,53, + 8575032706799724.,6852887779105299.,.499999324588811649190,-53,53, + 8668443273582402.,6901634740714329.,-.499998180613605806630,-53,53, + 8668443273592996.,6901634740719828.,.460837641094356839687,-53,53, + 8668443273592998.,6901634740719829.,.499153826825615152397,-53,53, + 8668443273593520.,6901634740720100.,.499678302676157737554,-53,53, + 8668443273594042.,6901634740720372.,-.499797221488993611566,-53,53, + 8668443273599601.,6901634740723258.,-.499958982681022945509,-53,53, + 9007199254740991.,7074237752028440.,-.224234056584975506381,-53,53, + 4503599627370496.,7074237752028440.,.275765943415024521374,-52,53, + 4503599627370497.,7074237752028441.,.275765943415024410352,-52,53, + 6467001089644732.,8669362933555410.,-.499988756541077897597,-52,53, + 6467001089645127.,8669362933555668.,-.497745585767931948287,-52,53, + 6467001089645130.,8669362933555669.,.461765121858112000639,-52,53, + 6467001089645300.,8669362933555781.,-.499294779334731221441,-52,53, + 6467001089663453.,8669362933567637.,.499997043020554227480,-52,53, + 7013940848419748.,9007199254740991.,-.005036908255042232357,-52,53, + 7013940848419749.,4503599627370496.,-.210591872401092237687,-52,52, + 7013940848419750.,4503599627370496.,.081334709325336581863,-52,52, + 7013940848421036.,4503599627370871.,.498918809464022167459,-52,52, + 7013940848422002.,4503599627371153.,.499996757093511280206,-52,52, + 7316025708204615.,4589166165495968.,.499987471264496364483,-52,52, + 7316025708206107.,4589166165496379.,-.491449555863964758995,-52,52, + 7316025708206118.,4589166165496382.,-.468598220273539157710,-52,52, + 7316025708206147.,4589166165496390.,-.499262880989721443396,-52,52, + 7316025708206278.,4589166165496426.,-.499851520777184783522,-52,52, + 7316025708241987.,4589166165506238.,.499997771303565376044,-52,52, + 8219998205367587.,4816958669127313.,.499993451828303107182,-52,52, + 8219998205388698.,4816958669132187.,.468655482430617385827,-52,52, + 8219998205388854.,4816958669132223.,.484908207325741182392,-52,52, + 8219998205388997.,4816958669132256.,.499806538478681012963,-52,52, + 8219998205396382.,4816958669133961.,.499975597169049811835,-52,52, + 8219998205397859.,4816958669134303.,-.499990591375632714122,-52,52, + 9007199254740991.,4986154552901188.,.223539737736100435688,-52,52, + 4503599627370496.,4986154552901188.,.423539737736100453452,-51,52, + 4503599627370497.,4986154552901189.,-.176460262263899617602,-51,52, + 5429564584136446.,5303695939431594.,-.499963030203465286374,-51,52, + 5429564584137911.,5303695939432024.,-.499030322990502551462,-51,52, + 5429564584138497.,5303695939432196.,-.498657240160754783260,-51,52, + 5429564584138589.,5303695939432223.,-.495185698149405281522,-51,52, + 5429564584138606.,5303695939432227.,.494586217222171656268,-51,52, + 5429564584138613.,5303695939432230.,-.450801817624833824277,-51,52, + 5429564584147103.,5303695939434721.,.499995914608206045466,-51,52, + 6534651015173037.,5579716168956889.,.499994587842850258355,-51,52, + 6534651015212362.,5579716168965237.,.499991076667236683570,-51,52, + 6534651015225910.,5579716168968114.,-.499908437315691319275,-51,52, + 6534651015231351.,5579716168969269.,-.472114910317386553365,-51,52, + 6534651015231365.,5579716168969271.,.499836773080134179872,-51,52, + 5007882989873215.,6078274056100256.,.499987661229926318866,-50,52, + 5007882989884220.,6078274056102375.,-.499932276170130843884,-50,52, + 5007882989885758.,6078274056102671.,-.499557616605168539839,-50,52, + 5007882989885893.,6078274056102696.,.482269807990775955379,-50,52, + 5007882989885898.,6078274056102697.,.444559712605414958971,-50,52, + 5007882989885971.,6078274056102711.,.493992319978936113972,-50,52, + 5007882989889338.,6078274056103360.,-.499985912956475557663,-50,52, + 5396246731158432.,6147873996513514.,.499997037995419607880,-50,52, + 5396246731159265.,6147873996513654.,-.499976121156580247618,-50,52, + 5396246731165929.,6147873996514766.,-.499761395853031686430,-50,52, + 5396246731166762.,6147873996514905.,-.499734555375144690635,-50,52, + 5396246731166840.,6147873996514918.,-.484125799606211696561,-50,52, + 5396246731167128.,6147873996514966.,-.426493470616351863094,-50,52, + 5396246731167140.,6147873996514968.,-.424092123575214381278,-50,52, + 5569985055099293.,6175997091612618.,-.499986794464366089677,-50,52, + 5569985055101885.,6175997091613025.,-.499953081948212305662,-50,52, + 5569985055108935.,6175997091614132.,-.497546574052055551163,-50,52, + 5569985055108967.,6175997091614137.,-.472854799837955568907,-50,52, + 5569985055108986.,6175997091614140.,-.489444058898359948872,-50,52, + 5569985055109056.,6175997091614151.,-.497930802805281661230,-50,52, + 5569985055109661.,6175997091614246.,-.499851946583308332305,-50,52, + 5569985055127926.,6175997091617113.,.499999794320476456797,-50,52, + 5916628998680527.,6227354596294245.,-.460855305547952618498,-50,52, + 5916628998680541.,6227354596294246.,.496142583210931691520,-50,52, + 5916628998682215.,6227354596294480.,.497175853315957276850,-50,52, + 5916628998686586.,6227354596295091.,.499873835765524733815,-50,52, + 5916628998686772.,6227354596295117.,.499988643510010585740,-50,52, + 5916628998704213.,6227354596297556.,-.499998665265235486311,-50,52, + 6272704229690754.,6274394910251180.,-.499996956861661276528,-50,52, + 6272704229721023.,6274394910254958.,.499655816755391804588,-50,52, + 6272704229721055.,6274394910254962.,.494765958755121629673,-50,52, + 6272704229721119.,6274394910254970.,.484986242754462811038,-50,52, + 6272704229721127.,6274394910254971.,.483763778254369352257,-50,52, + 6272704229722657.,6274394910255162.,.499967442566122038671,-50,52, + 6272704229729201.,6274394910255979.,.499991480276815020676,-50,52, + 7436919125085855.,6397561403921947.,-.499999805141243207482,-50,52, + 7436919125087484.,6397561403922093.,-.499991377732524800429,-50,52, + 7436919125124951.,6397561403925451.,-.499797564589519649584,-50,52, + 7436919125134725.,6397561403926327.,-.499747010079040350743,-50,52, + 7436919125134937.,6397561403926346.,-.499132040024564977617,-50,52, + 7436919125134948.,6397561403926346.,.486748925402760976862,-50,52, + 7464505152283675.,6400024883199040.,.499997486563380105576,-50,52, + 7464505152284664.,6400024883199129.,-.499741910311133351758,-50,52, + 7464505152285069.,6400024883199165.,-.463234787703131026786,-50,52, + 7464505152285080.,6400024883199166.,-.484465458447164544387,-50,52, + 7464505152285091.,6400024883199166.,.494303870808799117472,-50,52, + 7464505152285136.,6400024883199170.,.498360217764984726901,-50,52, + 4542341907328539.,6518920874882788.,.499997856498357108123,-49,52, + 4542341907340248.,6518920874884205.,.499985282808068086265,-49,52, + 4542341907340719.,6518920874884262.,.499472350536254649694,-49,52, + 4542341907341190.,6518920874884319.,.498959418252799359094,-49,52, + 4542341907341248.,6518920874884327.,-.481995465128983220822,-49,52, + 4542341907341256.,6518920874884327.,.486148688887308775934,-49,52, + 4574407728088565.,6522774622765019.,.499981313043297997823,-49,52, + 4574407728090048.,6522774622765196.,.499824459606171791259,-49,52, + 4574407728091104.,6522774622765323.,-.463874554103741827140,-49,52, + 4574407728091112.,6522774622765323.,.490945907913388535758,-49,52, + 4574407728091154.,6522774622765329.,-.496246666496731033458,-49,52, + 4574407728091221.,6522774622765337.,-.499625297103538048761,-49,52, + 4574407728164927.,6522774622774133.,.499996242166020219976,-49,52, + 5043885832647332.,6573661021333625.,.499987359153288358750,-49,52, + 5043885832659107.,6573661021334785.,-.499978532313035806402,-49,52, + 5043885832660062.,6573661021334878.,.499599605342210248298,-49,52, + 5043885832660194.,6573661021334891.,.492211452638389685446,-49,52, + 5043885832660214.,6573661021334893.,.460789005258964339339,-49,52, + 5043885832660255.,6573661021334897.,.496372988131094174557,-49,52, + 5043885832660316.,6573661021334904.,-.499465476376344776380,-49,52, + 5043885832680493.,6573661021336889.,.499998476956456818161,-49,52, + 5090857167498956.,6578242217884994.,.499999504798218010168,-49,52, + 5090857167556146.,6578242217890521.,.499933384544821630294,-49,52, + 5090857167557129.,6578242217890616.,.499774876806716684005,-49,52, + 5090857167557160.,6578242217890619.,.495700702096176752091,-49,52, + 5090857167557191.,6578242217890622.,.491626527385600774478,-49,52, + 5090857167562282.,6578242217891114.,.499961254266165776646,-49,52, + 5090857167568418.,6578242217891707.,.499989122575295074473,-49,52, + 5215472194762244.,6590000975641296.,-.499998852283533837663,-49,52, + 5215472194828540.,6590000975647404.,-.499984039327725987717,-49,52, + 5215472194832925.,6590000975647807.,.499956599564750693837,-49,52, + 5215472194836344.,6590000975648123.,-.499861634795487866268,-49,52, + 5215472194836691.,6590000975648154.,.470031045110618872482,-49,52, + 5215472194836713.,6590000975648156.,.496940667467636623139,-49,52, + 5215472194836789.,6590000975648163.,.498992090155386070382,-49,52, + 5215472194837310.,6590000975648211.,.499897237785710902758,-49,52, + 5336471118709898.,6600898936787464.,.499996012500764032340,-49,52, + 5336471118719586.,6600898936788318.,-.499921793048284871584,-49,52, + 5336471118719904.,6600898936788345.,.499048700070252792801,-49,52, + 5336471118723493.,6600898936788662.,-.499991866817575169236,-49,52, + 5835457316503937.,7074237752028341.,.489891754417421215314,-7,52, + 5835457316503939.,7074237752028341.,.489891754417455072428,-7,52, + 5835457316504108.,7074237752028341.,.489891754420315998630,-7,52, + 5835457316521049.,7074237752028341.,.489891754707102689692,-7,52, + 5746215254501618.,7074237752028415.,.195746888619747441806,-5,52, + 5746215254501631.,7074237752028415.,.195746888619804181805,-5,52, + 5746215254502946.,7074237752028415.,.195746888625543650933,-5,52, + 5746215254634413.,7074237752028415.,.195746889199346531432,-5,52, + 6842111560931391.,7074237752028419.,.212796304223989225717,-5,52, + 6842111560931400.,7074237752028419.,.212796304224016931598,-5,52, + 6842111560932275.,7074237752028419.,.212796304226710558890,-5,52, + 6842111561019805.,7074237752028419.,.212796304496165641005,-5,52, + 5635416615605138.,7074237752028427.,.489205702528503568220,-4,52, + 5635416615605162.,7074237752028427.,.489205702528558023368,-4,52, + 5635416615607587.,7074237752028427.,.489205702534060262280,-4,52, + 6916394610472789.,7074237752028430.,-.142609250044656173545,-4,52, + 6916394610526086.,7074237752028430.,-.142609249964373284272,-4,52, + 6916394610526619.,7074237752028430.,-.142609249963570410189,-4,52, + 6916394610526624.,7074237752028430.,-.142609249963562878537,-4,52, + 7664074856330710.,7074237752028431.,-.126229129533229862093,-4,52, + 7664074856376104.,7074237752028431.,-.126229129477542232165,-4,52, + 7664074856376558.,7074237752028431.,-.126229129476985282260,-4,52, + 7664074856376563.,7074237752028431.,-.126229129476979148451,-4,52, + 5804122653741717.,7074237752028434.,.068316658080323766485,-3,52, + 5804122653801890.,7074237752028434.,.068316658144678169058,-3,52, + 5804122653802492.,7074237752028434.,.068316658145322001846,-3,52, + 5804122653802498.,7074237752028434.,.068316658145328418784,-3,52, + 6847582036521810.,7074237752028435.,.014230290858667753524,-3,52, + 6847582036560927.,7074237752028435.,.014230290888724420100,-3,52, + 6847582036561318.,7074237752028435.,.014230290889024856141,-3,52, + 6847582036561322.,7074237752028435.,.014230290889027929655,-3,52, + 7706116167858997.,7074237752028436.,-.399584938165820925901,-3,52, + 7706116167865028.,7074237752028436.,-.399584938162161878911,-3,52, + 7706116167865088.,7074237752028436.,-.399584938162125476520,-3,52, + 7706116167865089.,7074237752028436.,-.399584938162124869813,-3,52, + 4994576600371477.,7074237752028437.,-.331025973269593702153,-2,52, + 4994576600383557.,7074237752028437.,-.331025973260870230708,-2,52, + 4994576600383678.,7074237752028437.,-.331025973260782851566,-2,52, + 4994576600383679.,7074237752028437.,-.331025973260782129424,-2,52, + 7423882302179890.,7074237752028438.,-.150780946234933789619,-2,52, + 7423882302191190.,7074237752028438.,-.150780946231240307053,-2,52, + 7423882302191303.,7074237752028438.,-.150780946231203372227,-2,52, + 7423882302191304.,7074237752028438.,-.150780946231203045371,-2,52, + 7984456451870669.,7074237752028438.,.019582492722972520705,-2,52, + 7984456451885204.,7074237752028438.,.019582492727079704038,-2,52, + 7984456451885350.,7074237752028438.,.019582492727120959543,-2,52, + 7984456451885351.,7074237752028438.,.019582492727121242115,-2,52, + 4747578892790121.,7074237752028438.,.378546443088296926853,-1,52, + 4747578892790170.,7074237752028438.,.378546443088316508151,-1,52, + 4747578892794975.,7074237752028438.,.378546443090236674178,-1,52, + 5184012179842666.,7074237752028439.,-.461729830565652962316,-1,52, + 5184012179843936.,7074237752028439.,-.461729830565227303665,-1,52, + 5184012179843949.,7074237752028439.,-.461729830565222946529,-1,52, + 5359027492701737.,7074237752028439.,-.404986631004040565722,-1,52, + 5359027492704687.,7074237752028439.,-.404986631003115356791,-1,52, + 5359027492704717.,7074237752028439.,-.404986631003105947887,-1,52, + 5488415439819244.,7074237752028439.,-.365363332148276489114,-1,52, + 5488415439823230.,7074237752028439.,-.365363332147084607529,-1,52, + 5488415439823270.,7074237752028439.,-.365363332147072646851,-1,52, + 5668948148611089.,7074237752028439.,-.313100106973491650697,-1,52, + 5668948148616275.,7074237752028439.,-.313100106972038143076,-1,52, + 5668948148616326.,7074237752028439.,-.313100106972023849037,-1,52, + 5668948148616327.,7074237752028439.,-.313100106972023568761,-1,52, + 5708579506476863.,7074237752028439.,-.302069531158215247757,-1,52, + 5708579506482279.,7074237752028439.,-.302069531156718280443,-1,52, + 5708579506482333.,7074237752028439.,-.302069531156703354994,-1,52, + 5708579506482334.,7074237752028439.,-.302069531156703078596,-1,52, + 6353877460227271.,7074237752028439.,-.141825017556831345155,-1,52, + 6353877460235182.,7074237752028439.,-.141825017555066350132,-1,52, + 6353877460235261.,7074237752028439.,-.141825017555048724724,-1,52, + 6353877460235262.,7074237752028439.,-.141825017555048501617,-1,52, + 6402079148368210.,7074237752028439.,-.131151879060941967346,-1,52, + 6402079148376235.,7074237752028439.,-.131151879059178397221,-1,52, + 6402079148376315.,7074237752028439.,-.131151879059160816460,-1,52, + 6402079148376316.,7074237752028439.,-.131151879059160596700,-1,52, + 6710148704135936.,7074237752028439.,-.066558891977851703500,-1,52, + 6710148704144520.,7074237752028439.,-.066558891976134525999,-1,52, + 6710148704144606.,7074237752028439.,-.066558891976117322217,-1,52, + 6710148704144607.,7074237752028439.,-.066558891976117122173,-1,52, + 6728987427109667.,7074237752028439.,-.062800869543027895763,-1,52, + 6728987427118277.,7074237752028439.,-.062800869541315147688,-1,52, + 6728987427118363.,7074237752028439.,-.062800869541298040100,-1,52, + 6728987427118364.,7074237752028439.,-.062800869541297841175,-1,52, + 8108726220156984.,7074237752028439.,.164962716102879104512,-1,52, + 8108726220157030.,7074237752028439.,.164962716102885405989,-1,52, + 8108726220161574.,7074237752028439.,.164962716103507882285,-1,52, + 8201755169934774.,7074237752028439.,.177562075082214552174,-1,52, + 8201755169934817.,7074237752028439.,.177562075082220309816,-1,52, + 8201755169939091.,7074237752028439.,.177562075082792592606,-1,52, + 8488875008858692.,7074237752028439.,.214706704665320348541,-1,52, + 8488875008858728.,7074237752028439.,.214706704665324848328,-1,52, + 8488875008862258.,7074237752028439.,.214706704665766077479,-1,52, + 9007199254740990.,7074237752028440.,.275765943415024521374,971,52 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/atanh.c b/src/regress/lib/libm/fpaccuracy/atanh.c new file mode 100644 index 000000000..f60c5827d --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/atanh.c @@ -0,0 +1,1025 @@ +/* $OpenBSD: atanh.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:27:38. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 993 +#define F atanh +#define Fs "atanh" +#define Fn fpaccuracy_atanh + /* 9 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -9007199254740990.,-5170245042386938.,-.079229716698351668025,-53,48, + -9007199254740989.,-5113180901456073.,-.478072700827730677046,-53,48, + -9007199137546347.,-5305972477680473.,.053098762622397064589,-53,49, + -9007199120918827.,-5268627614114797.,-.026419881621887898638,-53,49, + -9007199120527275.,-5267805245344795.,-.445997436421353939709,-53,49, + -9007199120523307.,-5267796923719921.,.058128424816598324512,-53,49, + -9007199120523264.,-5267796833542370.,.175319015100861897677,-53,49, + -9007199120523263.,-5267796831445218.,.183131515256082327864,-53,49, + -9007199120523249.,-5267796802085091.,-.348118352185682086574,-53,49, + -9007199120523243.,-5267796789502181.,.058131876919640173919,-53,49, + -8871213671101254.,-5493040921248601.,.499978167648861512089,-53,51, + -8871213671077767.,-5493040921052660.,.474439083111752317393,-53,51, + -8871213671077764.,-5493040921052634.,-.497974450657455784783,-53,51, + -8871213671077583.,-5493040921051125.,.499742344253181636743,-53,51, + -8871213671076278.,-5493040921040238.,.499855088306062758539,-53,51, + -8871213671074538.,-5493040921025721.,-.499994747575648672960,-53,51, + -8422041051762089.,-7642658803165676.,-.499999952008610551153,-53,52, + -8422041051758065.,-7642658803149671.,-.496942522146160667901,-53,52, + -8422041051758021.,-7642658803149496.,-.491938912665973456924,-53,52, + -8422041051758017.,-7642658803149481.,.417606870013412946791,-53,52, + -8422041051757888.,-7642658803148967.,-.499541638632726937180,-53,52, + -8422041051757092.,-7642658803145801.,-.499930888200895955103,-53,52, + -8108579655013428.,-6635820432291596.,.499996195744154731679,-53,52, + -8108579655010728.,-6635820432284475.,.496199696317761179925,-53,52, + -8108579655010717.,-6635820432284445.,-.492334289462106667588,-53,52, + -8108579655010706.,-6635820432284416.,-.480868275242310999232,-53,52, + -8108579655010637.,-6635820432284234.,-.499854186053086072979,-53,52, + -8108579654999997.,-6635820432256173.,.499999408753060821711,-53,52, + -7881394195520868.,-6098189287841976.,.499995984663149389530,-53,52, + -7881394195508149.,-6098189287814839.,-.499742955439871808123,-53,52, + -7881394195508104.,-6098189287814743.,-.492194269125343433101,-53,52, + -7881394195507969.,-6098189287814455.,-.469548210203248758231,-53,52, + -7881394195507962.,-6098189287814441.,.464959363221462261640,-53,52, + -7881394195507752.,-6098189287813992.,-.499813434077508369228,-53,52, + -7881394195506958.,-6098189287812298.,-.499954392189099606188,-53,52, + -7881394195506561.,-6098189287811452.,.499975128336945717958,-53,52, + -7740586541071346.,-5813966694719409.,.499924115948217589864,-53,52, + -7740586541070457.,-5813966694717708.,-.495598897248465828332,-53,52, + -7740586541070434.,-5813966694717665.,.486519180010774038924,-53,52, + -7740586541070229.,-5813966694717272.,-.498950131406876345524,-53,52, + -7740586541070172.,-5813966694717163.,-.499787939957814473998,-53,52, + -7740586541067767.,-5813966694712565.,.499950133717439189485,-53,52, + -7740586541060609.,-5813966694698876.,-.499997884372609135836,-53,52, + -7552125243356837.,-5476135282611511.,-.499994592803694106228,-53,52, + -7552125243331956.,-5476135282569623.,-.495134789609941823038,-53,52, + -7552125243331719.,-5476135282569224.,-.497620554040611133602,-53,52, + -7552125243331482.,-5476135282568826.,.499893681469442037349,-53,52, + -7552125243326660.,-5476135282560708.,.499951236654032317363,-53,52, + -7552125243321838.,-5476135282552589.,-.499991232699861764474,-53,52, + -7109328173701287.,-4816853172867457.,.499997786762187088581,-53,52, + -7109328173682296.,-4816853172842271.,.499973067921156596681,-53,52, + -7109328173649740.,-4816853172799095.,.499930175472604570688,-53,52, + -7109328173648290.,-4816853172797171.,-.499703154447556464852,-53,52, + -7109328173647729.,-4816853172796427.,-.497492325888562615036,-53,52, + -7109328173647717.,-4816853172796412.,.416993467233574417432,-53,52, + -7109328173647027.,-4816853172795497.,.499926571607144109426,-53,52, + -7006352135983436.,-4683438888618022.,.499896242930497105890,-53,52, + -7006352135983030.,-4683438888617507.,-.487208791795860676791,-53,52, + -7006352135983015.,-4683438888617488.,-.496584593573213311359,-53,52, + -7006352135982906.,-4683438888617350.,-.498048753159050974163,-53,52, + -7006352135976610.,-4683438888609380.,.499948036113273259554,-53,52, + -7006352135969784.,-4683438888600738.,.499999803497164149541,-53,52, + -6828286958503683.,-8932563705189560.,.499987303542295139375,-53,53, + -6828286958433245.,-8932563705023938.,-.499320032498947401672,-53,53, + -6828286958433208.,-8932563705023852.,.498848932308409181396,-53,53, + -6828286958433060.,-8932563705023504.,.491524791525095131847,-53,53, + -6828286958433003.,-8932563705023369.,-.484268965403645482254,-53,53, + -6828286958431594.,-8932563705020056.,-.499942712199810878853,-53,53, + -6828286958421762.,-8932563704996939.,.499983227501173358679,-53,53, + -6638553928827437.,-8502261603886506.,-.499339417382276176857,-53,53, + -6638553928827421.,-8502261603886471.,-.472333752217212299171,-53,53, + -6638553928827400.,-8502261603886425.,-.499388816688370665722,-53,53, + -6638553928827104.,-8502261603885777.,-.499784011175780710986,-53,53, + -6638553928826956.,-8502261603885453.,-.499981608445255156514,-53,53, + -6638553928806701.,-8502261603841111.,-.499997531949728175840,-53,53, + -6595469068499054.,-8408659769493764.,-.499997189305081919881,-53,53, + -6595469068453815.,-8408659769396228.,-.499991566637004709051,-53,53, + -6595469068453424.,-8408659769395385.,-.497803147497414969244,-53,53, + -6595469068453405.,-8408659769395345.,.466497568519212093144,-53,53, + -6595469068453392.,-8408659769395317.,.494703321583062879280,-53,53, + -6595469068453283.,-8408659769395081.,-.499571518117367302610,-53,53, + -6277581004407765.,-7758332228803006.,.499998122115871585184,-53,53, + -6277581004372528.,-7758332228734486.,.499971266958261842137,-53,53, + -6277581004371987.,-7758332228733434.,.499857331941236128808,-53,53, + -6277581004369282.,-7758332228728174.,.499287654287099747470,-53,53, + -6277581004369264.,-7758332228728138.,-.498867707722721323880,-53,53, + -6277581004369156.,-7758332228727928.,-.487799879785629226505,-53,53, + -6277581004369030.,-7758332228727683.,-.474887413867648307701,-53,53, + -6277581004369012.,-7758332228727648.,-.473042775880123695399,-53,53, + -6277581004363854.,-7758332228717619.,.499992924066983302550,-53,53, + -6134432454514506.,-7485759044722241.,-.499998882102675278196,-53,53, + -6134432454508864.,-7485759044711718.,-.499997207403376945820,-53,53, + -6134432454505676.,-7485759044705773.,.498585794575713757930,-53,53, + -6134432454505661.,-7485759044705745.,.475367082213542643705,-53,53, + -6134432454505246.,-7485759044704971.,.499649373479870505379,-53,53, + -6134432454505031.,-7485759044704569.,-.499818837104527019546,-53,53, + -6134432454503222.,-7485759044701195.,-.499995549449804776886,-53,53, + -6056160701829563.,-7341354420628797.,.499934051200704244686,-53,53, + -6056160701828957.,-7341354420627690.,-.499301574436830699684,-53,53, + -6056160701828471.,-7341354420626804.,.491410448434770367202,-53,53, + -6056160701828454.,-7341354420626772.,-.482165468462793637197,-53,53, + -6056160701828431.,-7341354420626731.,.494761232204979248548,-53,53, + -6056160701828351.,-7341354420626584.,-.498537200256990001238,-53,53, + -6056160701826876.,-7341354420623892.,-.499977049344851324954,-53,53, + -6056160701816431.,-7341354420604830.,.499996327343105854087,-53,53, + -5587044502246981.,-6534459096288062.,.464200175566170967500,-53,53, + -5587044502246973.,-6534459096288049.,.467158618997986119081,-53,53, + -5587044502246893.,-6534459096287919.,.496743053314856839889,-53,53, + -5587044502246885.,-6534459096287906.,.499701496746415832470,-53,53, + -5587044502246546.,-6534459096287354.,-.499934462862672959004,-53,53, + -5587044502243842.,-6534459096282959.,-.499980584663415887793,-53,53, + -5587044502177929.,-6534459096175826.,-.499996210100883157744,-53,53, + -5574097035242999.,-6513445090468627.,-.499994989666538101676,-53,53, + -5574097035228510.,-6513445090445146.,.499985354733584456763,-53,53, + -5574097035223538.,-6513445090437087.,-.490220869342890196773,-53,53, + -5574097035223045.,-6513445090436288.,-.496088059786805444678,-53,53, + -5574097035222726.,-6513445090435771.,-.499884477179613238627,-53,53, + -5292230209370884.,-6070173573962248.,-.499999578747571585434,-53,53, + -5292230209329392.,-6070173573898880.,-.499981686060761416466,-53,53, + -5292230209319019.,-6070173573883038.,-.499977294744812183790,-53,53, + -5292230209317128.,-6070173573880151.,.499830694012248697580,-53,53, + -5292230209316669.,-6070173573879449.,-.499687092064352288293,-53,53, + -5292230209316504.,-6070173573879198.,.493950305081988583622,-53,53, + -5268565944194062.,-6034117509999111.,-.499148982703324025459,-53,53, + -5268565944193937.,-6034117509998921.,-.488786710869325453479,-53,53, + -5268565944193862.,-6034117509998807.,-.482569347771177119508,-53,53, + -5268565944193589.,-6034117509998392.,-.499938146108172909109,-53,53, + -5268565944189730.,-6034117509992527.,.499965907241038701396,-53,53, + -5268565944179597.,-6034117509977124.,.499973082801585435390,-53,53, + -5268565944139065.,-6034117509915511.,-.499998523100079324053,-53,53, + -4510984822832827.,-4957562210497454.,.499995936860962837373,-53,53, + -4510984822794254.,-4957562210445967.,.499871078455935478344,-53,53, + -4510984822793797.,-4957562210445356.,-.499378581369572830912,-53,53, + -4510984822793570.,-4957562210445054.,.498805942071521726494,-53,53, + -4510984822793555.,-4957562210445033.,-.479287591622157622292,-53,53, + -4510984822793522.,-4957562210444989.,-.431093365748409108554,-53,53, + -4510984822791515.,-4957562210442311.,.499991825622150726288,-53,53, + -8854767244016575.,-4846654355723984.,-.499996578176591004308,-54,53, + -8854767244013106.,-4846654355721697.,-.418382642277795043068,-54,53, + -8854767244013094.,-4846654355721690.,.493113283702991435831,-54,53, + -8854767244013050.,-4846654355721660.,-.498068321034183255317,-54,53, + -8854767244012146.,-4846654355721064.,-.498708563836464209247,-54,53, + -8854767244010338.,-4846654355719872.,-.499989049557334348171,-54,53, + -8644717199284726.,-4709198232429767.,-.499997131680927108191,-54,53, + -8644717199267609.,-4709198232418648.,-.477023649219034071536,-54,53, + -8644717199267549.,-4709198232418610.,.498344605063323832001,-54,53, + -8644717199267432.,-4709198232418533.,-.499687299086543818972,-54,53, + -8644717199266944.,-4709198232418217.,.499974502401387949727,-54,53, + -8607732457415475.,-4685203988824169.,.499999289388651324691,-54,53, + -8607732457386114.,-4685203988805145.,.499994032940587981830,-54,53, + -8607732457383106.,-4685203988803196.,.486472154426113822986,-54,53, + -8607732457383089.,-4685203988803184.,-.498644159383125237309,-54,53, + -8607732457382822.,-4685203988803012.,.499823147258313691564,-54,53, + -8607732457382217.,-4685203988802619.,-.499904491262534693917,-54,53, + -7730960159927038.,-8266084117825212.,.499991001301978457131,-54,54, + -7730960159920646.,-8266084117817376.,-.499974621227010579211,-54,54, + -7730960159919481.,-8266084117815949.,.499875198506952365063,-54,54, + -7730960159917337.,-8266084117813320.,-.490100755815979758941,-54,54, + -7730960159917328.,-8266084117813309.,-.458342259356275180938,-54,54, + -7730960159917275.,-8266084117813244.,-.493542224649243615236,-54,54, + -7730960159917151.,-8266084117813093.,.499574837683403141898,-54,54, + -7730960159867180.,-8266084117751841.,.499999924088401324859,-54,54, + -7684108841897183.,-8208734336764337.,.472355253399287981368,-54,54, + -7684108841897075.,-8208734336764205.,.493315951091879675217,-54,54, + -7684108841897039.,-8208734336764160.,-.499697149677439851288,-54,54, + -7684108841896468.,-8208734336763462.,-.499988275780854803617,-54,54, + -7684108841886163.,-8208734336750865.,-.499988375185498334378,-54,54, + -7492339963683126.,-7975593948600844.,.499706157014520573267,-54,54, + -7492339963682973.,-7975593948600658.,-.498764175924927195606,-54,54, + -7492339963682930.,-7975593948600607.,.495129782791152664809,-54,54, + -7492339963682471.,-7975593948600052.,.499718783961994674324,-54,54, + -7492339963671336.,-7975593948586588.,.499933437637564664048,-54,54, + -7492339963668061.,-7975593948582628.,.499996569478536654147,-54,54, + -7489630554941152.,-7972318086788292.,-.499996222409720308242,-54,54, + -7489630554912570.,-7972318086753738.,.494050213453424253515,-54,54, + -7489630554912546.,-7972318086753708.,-.490490507496866978322,-54,54, + -7489630554912369.,-7972318086753495.,.498521675493535061545,-54,54, + -7489630554912302.,-7972318086753413.,-.499987837160367048752,-54,54, + -7298995560586563.,-7743051730934199.,-.497077983724693954440,-54,54, + -7298995560586558.,-7743051730934194.,.484980419271939832992,-54,54, + -7298995560586451.,-7743051730934065.,-.498969756600482937664,-54,54, + -7298995560586395.,-7743051730933998.,-.499915643038680317344,-54,54, + -7298995560584277.,-7743051730931464.,-.499976133831601472712,-54,54, + -7298995560583218.,-7743051730930198.,.499993620663620598319,-54,54, + -7298995560550445.,-7743051730890987.,-.499998139233404504585,-54,54, + -4924871031072453.,-5053379142867400.,-.499990736326323659143,-54,54, + -4924871031069878.,-5053379142864617.,-.499957788253432422422,-54,54, + -4924871031067303.,-5053379142861834.,-.499924840415619056734,-54,54, + -4924871031066981.,-5053379142861486.,-.489823632974378052034,-54,54, + -4924871031066944.,-5053379142861447.,.498914704526398649676,-54,54, + -4924871031043150.,-5053379142835731.,.499995842947211843016,-54,54, + -4517699360192545.,-4616151035908448.,.499997771937181054483,-54,54, + -4517699360176855.,-4616151035891704.,-.499931460379933697249,-54,54, + -4517699360175961.,-4616151035890751.,.498925344121077262502,-54,54, + -4517699360174471.,-4616151035889161.,.497020018233118154419,-54,54, + -4517699360174456.,-4616151035889144.,-.496287753504366821463,-54,54, + -4517699360174441.,-4616151035889128.,-.489595525241858930982,-54,54, + -4514338150835048.,-4612564425369628.,.499856803137912264743,-54,54, + -4514338150834302.,-4612564425368832.,.486555245089496904462,-54,54, + -4514338150834272.,-4612564425368800.,.496744190475921153833,-54,54, + -4514338150834257.,-4612564425368783.,-.498161336830877411841,-54,54, + -4514338150833869.,-4612564425368369.,-.499717643169210069584,-54,54, + -4514338150829944.,-4612564425364181.,-.499997288741326241943,-54,54, + -8341071156529094.,-8495074927597303.,-.499998197353154458669,-55,55, + -8341071156515427.,-8495074927582862.,-.499176209501727796326,-55,55, + -8341071156515268.,-8495074927582694.,-.494557002956558254496,-55,55, + -8341071156515233.,-8495074927582658.,.487591878987298278077,-55,55, + -8341071156514809.,-8495074927582210.,.499909763105764068148,-55,55, + -8341071156511560.,-8495074927578777.,.499958832597734164709,-55,55, + -8341071156508311.,-8495074927575343.,-.499992098061756424206,-55,55, + -6979532375153905.,-7068861400993067.,.499990322194301148375,-55,55, + -6979532375143518.,-7068861400982274.,-.499968381447627259639,-55,55, + -6979532375142646.,-7068861400981368.,-.499772366252448013771,-55,55, + -6979532375142594.,-7068861400981314.,-.472237741493381347781,-55,55, + -6979532375142569.,-7068861400981288.,-.497461479589995085501,-55,55, + -6979532375102842.,-7068861400940012.,-.499999223323276714610,-55,55, + -6479813464896399.,-6551067689950824.,.499998948928099931263,-55,55, + -6479813464892869.,-6551067689947176.,.499523645988665999802,-55,55, + -6479813464892779.,-6551067689947082.,-.491989888648920488043,-55,55, + -6479813464892719.,-6551067689947020.,-.486332245074026127201,-55,55, + -6479813464892510.,-6551067689946804.,-.499958119955110494381,-55,55, + -5360050516014477.,-5400128584068269.,.499996756705532932482,-55,55, + -5360050515994772.,-5400128584048118.,.499982834119458601503,-55,55, + -5360050515984566.,-5400128584037680.,-.498958658897009065856,-55,55, + -5360050515984564.,-5400128584037678.,-.453690961756790832900,-55,55, + -5360050515984301.,-5400128584037410.,.499011212181605839095,-55,55, + -5360050515979441.,-5400128584032440.,.499515262798835114150,-55,55, + -5360050515975067.,-5400128584027967.,.499968908179928669170,-55,55, + -5003579018619716.,-5036124286224888.,-.499994191418415713866,-55,55, + -5003579018618038.,-5036124286223178.,.499856435630838441745,-55,55, + -5003579018617072.,-5036124286222193.,.497386653576251603861,-55,55, + -5003579018617069.,-5036124286222189.,-.443614805374240129925,-55,55, + -5003579018617021.,-5036124286222140.,-.499638148582117681410,-55,55, + -5003579018586105.,-5036124286190617.,.499993543107561279116,-55,55, + -5370993780293219.,-5373482553524993.,.499500777562055640232,-57,57, + -5370993780293218.,-5373482553524991.,-.499108330370469044637,-57,57, + -5370993780293206.,-5373482553524979.,-.482417625560765303517,-57,57, + -5370993780293183.,-5373482553524956.,-.450427108008833341793,-57,57, + -5370993780291062.,-5373482553522833.,.499654967105104394869,-57,57, + -5370993780286029.,-5373482553517792.,-.499985257303832732231,-57,57, + -5370993780227793.,-5373482553459475.,-.499994816908011191824,-57,57, + -5040083604730110.,-5042139927714549.,.499943684803778646927,-57,57, + -5040083604723691.,-5042139927708122.,.360528435012744120169,-57,57, + -5040083604723623.,-5042139927708054.,.443799935715894274248,-57,57, + -5040083604723578.,-5042139927708009.,.498906075887095345088,-57,57, + -5040083604723577.,-5042139927708007.,-.499869343220211308973,-57,57, + -5040083604707245.,-5042139927691656.,.499985796182623260460,-57,57, + -5040083604653349.,-5042139927637694.,.499997587648289628301,-57,57, + -8826946188860318.,-8826946188860318.,-.000000000000000139319,-105,105, + -7958411719107662.,-7958411719107662.,-.000000000000000102108,-105,105, + -7724029849673945.,-7724029849673945.,-.000000000000000093349,-105,105, + -6910250106360623.,-6910250106360623.,-.000000000000000066844,-105,105, + -6751453641065261.,-6751453641065261.,-.000000000000000062341,-105,105, + -6734444337906217.,-6734444337906217.,-.000000000000000061871,-105,105, + -6680661016289229.,-6680661016289229.,-.000000000000000060400,-105,105, + -6466907645357182.,-6466907645357182.,-.000000000000000054786,-105,105, + -6031878638313244.,-6031878638313244.,-.000000000000000044457,-105,105, + -5105083357385429.,-5105083357385429.,-.000000000000000026952,-105,105, + -4797434048711327.,-4797434048711327.,-.000000000000000022367,-105,105, + -4706747747160345.,-4706747747160345.,-.000000000000000021122,-105,105, + -4508444030594628.,-4508444030594628.,-.000000000000000018563,-105,105, + -8820963185578394.,-8820963185578394.,-.000000000000000034759,-106,106, + -8764811318235300.,-8764811318235300.,-.000000000000000034099,-106,106, + -8487409832976082.,-8487409832976082.,-.000000000000000030963,-106,106, + -8225219756258586.,-8225219756258586.,-.000000000000000028181,-106,106, + -8218671716955893.,-8218671716955893.,-.000000000000000028114,-106,106, + -8134634281296062.,-8134634281296062.,-.000000000000000027260,-106,106, + -7942311233346222.,-7942311233346222.,-.000000000000000025372,-106,106, + -7820027936216947.,-7820027936216947.,-.000000000000000024218,-106,106, + -7532297225436693.,-7532297225436693.,-.000000000000000021642,-106,106, + -6744234268180515.,-6744234268180515.,-.000000000000000015535,-106,106, + -6126472062941109.,-6126472062941109.,-.000000000000000011645,-106,106, + -5441089836917728.,-5441089836917728.,-.000000000000000008158,-106,106, + -5339910389627913.,-5339910389627913.,-.000000000000000007711,-106,106, + -7983856183303977.,-7983856183303977.,-.000000000000000006443,-107,107, + -6359406039506145.,-6359406039506145.,-.000000000000000003256,-107,107, + -5379976732167529.,-5379976732167529.,-.000000000000000001972,-107,107, + -5227607959184178.,-5227607959184178.,-.000000000000000001809,-107,107, + -8111283783760891.,-8111283783760891.,-.000000000000000001689,-108,108, + -5181586503254410.,-5181586503254410.,-.000000000000000000440,-108,108, + -6969797329336223.,-6969797329336223.,-.000000000000000000268,-109,109, + -4672129282989170.,-4672129282989170.,-.000000000000000000081,-109,109, + -5061503531596520.,-5061503531596520.,-.000000000000000000026,-110,110, + -4503599627370497.,-4503599627370497.,.000000000000000000000,-1074,1074, + -4503599627370496.,-4503599627370496.,0.000000000000000000000,-1074,1074, + 0.,0.,0.000000000000000000000,0,0, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,1074, + 4503599627370497.,4503599627370497.,-.000000000000000000000,-1074,1074, + 7786031541652222.,7786031541652222.,.000000000000000000093,-110,110, + 5746215254501618.,5746215254501618.,.000000000000000000150,-109,109, + 6842111560931391.,6842111560931391.,.000000000000000000253,-109,109, + 5635416615605139.,5635416615605139.,.000000000000000000566,-108,108, + 6158205153697261.,6158205153697261.,.000000000000000000739,-108,108, + 5689944463305324.,5689944463305324.,.000000000000000002332,-107,107, + 5753769988833337.,5753769988833337.,.000000000000000002412,-107,107, + 5804122653802498.,5804122653802498.,.000000000000000002476,-107,107, + 4631941527006480.,4631941527006480.,.000000000000000005033,-106,106, + 4873844360980469.,4873844360980469.,.000000000000000005863,-106,106, + 6229784789713935.,6229784789713935.,.000000000000000012244,-106,106, + 6500262080618064.,6500262080618064.,.000000000000000013910,-106,106, + 6611506190369525.,6611506190369525.,.000000000000000014636,-106,106, + 6995579078917272.,6995579078917272.,.000000000000000017338,-106,106, + 7482308321613754.,7482308321613754.,.000000000000000021214,-106,106, + 7789329938387631.,7789329938387631.,.000000000000000023934,-106,106, + 7984456451885351.,7984456451885351.,.000000000000000025778,-106,106, + 8003572463289605.,8003572463289605.,.000000000000000025964,-106,106, + 8018408790437082.,8018408790437082.,.000000000000000026109,-106,106, + 8125363452127774.,8125363452127774.,.000000000000000027167,-106,106, + 4747578892790121.,4747578892790121.,.000000000000000021677,-105,105, + 5026588273004141.,5026588273004141.,.000000000000000025728,-105,105, + 5599080628055592.,5599080628055592.,.000000000000000035557,-105,105, + 5708579506482334.,5708579506482334.,.000000000000000037685,-105,105, + 6353877460235262.,6353877460235262.,.000000000000000051963,-105,105, + 6673278757213160.,6673278757213160.,.000000000000000060200,-105,105, + 6728987427118364.,6728987427118364.,.000000000000000061720,-105,105, + 7051650888471949.,7051650888471949.,.000000000000000071032,-105,105, + 7198343454188632.,7198343454188632.,.000000000000000075557,-105,105, + 7399032995891505.,7399032995891505.,.000000000000000082055,-105,105, + 7723582849396530.,7723582849396530.,.000000000000000093333,-105,105, + 8488875008858692.,8488875008858692.,.000000000000000123917,-105,105, + 7327657448597791.,7329236743331195.,-.499696349806163805806,-58,58, + 7327657448597805.,7329236743331209.,-.490641950518994625801,-58,58, + 7327657448598237.,7329236743331641.,-.211249058229185769301,-58,58, + 7327657448598421.,7329236743331825.,-.092248381883516431263,-58,58, + 7327657448599337.,7329236743332742.,-.499831971379986607440,-58,58, + 7327657448600883.,7329236743334289.,-.499967592953387230480,-58,58, + 7327657448608614.,7329236743342025.,-.499998958007829386380,-58,58, + 6940259249803904.,6945631932871829.,.112547445289881589705,-57,57, + 6940259249804043.,6945631932871968.,.435660907321244803630,-57,57, + 6940259249804070.,6945631932871995.,.498423953902878011736,-57,57, + 6940259249804071.,6945631932871997.,-.499251488816320748934,-57,57, + 6940259249804501.,6945631932872428.,-.499691858071725618686,-57,57, + 6940259249804931.,6945631932872858.,.499867772672993659593,-57,57, + 6940259249807082.,6945631932875014.,.499990483679255532469,-57,57, + 6940259249847950.,6945631932915977.,.499997436107652251767,-57,57, + 5682480038754126.,5694303855461463.,.499999919935407359270,-56,56, + 5682480038755724.,5694303855463072.,-.499945220608949816422,-56,56, + 5682480038756203.,5694303855463553.,.497568094585677635917,-56,56, + 5682480038756204.,5694303855463555.,-.496174048806399854193,-56,56, + 5682480038756210.,5694303855463561.,-.458626909158864748311,-56,56, + 5682480038756363.,5694303855463714.,.498825151853307409535,-56,56, + 5682480038756523.,5694303855463876.,-.499917790879006079774,-56,56, + 6175493946628903.,6190680320316280.,.499996809810725041311,-56,56, + 6175493946643364.,6190680320330849.,-.499992906967349266170,-56,56, + 6175493946646067.,6190680320333572.,-.499921833296187791248,-56,56, + 6175493946646202.,6190680320333707.,.498971838530248313889,-56,56, + 6175493946646313.,6190680320333819.,.320284413143128737071,-56,56, + 6175493946646337.,6190680320333843.,.497865510356728414999,-56,56, + 6823990675701396.,6844501362530158.,.499987084793659901954,-56,56, + 6823990675703606.,6844501362532388.,.499624750223739510784,-56,56, + 6823990675709131.,6844501362537963.,.498718913856125432004,-56,56, + 6823990675709352.,6844501362538186.,.498682680403120136714,-56,56, + 6823990675709450.,6844501362538285.,.385544441134408490517,-56,56, + 6823990675709462.,6844501362538297.,.494139758774976177746,-56,56, + 6823990675709463.,6844501362538299.,-.496810631421643164256,-56,56, + 6823990675728911.,6844501362557923.,-.499999174768459992728,-56,56, + 7740553500850794.,7770535229086686.,.499987569231506415015,-56,56, + 7740553500858589.,7770535229094572.,.499966265497615919800,-56,56, + 7740553500862101.,7770535229098125.,.499571805171621041680,-56,56, + 7740553500862114.,7770535229098139.,-.348664279106281115860,-56,56, + 7740553500862358.,7770535229098385.,.499827677523958683181,-56,56, + 7740553500862615.,7770535229098646.,-.499916450123502121955,-56,56, + 7740553500893795.,7770535229130189.,.499998337178199678197,-56,56, + 8359220028896300.,8397024484044627.,-.499997081502875839909,-56,56, + 8359220028901798.,8397024484050199.,.499964197793049934281,-56,56, + 8359220028906343.,8397024484054806.,.499750304525517336688,-56,56, + 8359220028906563.,8397024484055030.,-.499159938931243045185,-56,56, + 8359220028906710.,8397024484055179.,-.493886328877261878796,-56,56, + 8359220028906711.,8397024484055180.,-.480245011802064483190,-56,56, + 8359220028907296.,8397024484055772.,.499925477188979005396,-56,56, + 8513798801081326.,8553751696635852.,-.499995308844464104628,-56,56, + 8513798801092486.,8553751696647169.,.499950685042202672721,-56,56, + 8513798801093263.,8553751696647958.,-.499515440636605184113,-56,56, + 8513798801093466.,8553751696648163.,.374497913916113852219,-56,56, + 8513798801093475.,8553751696648173.,-.498082774798294401320,-56,56, + 8960578119055412.,9007199254740991.,-.000006053468608152530,-56,56, + 8960578119055413.,4503599627370496.,.007850248235589216912,-56,55, + 5173600871710191.,5209607090813083.,-.499996761439891358954,-55,55, + 5173600871716081.,5209607090819097.,-.491816755240487937468,-55,55, + 5173600871716085.,5209607090819101.,-.407600673742122128593,-55,55, + 5173600871716128.,5209607090819144.,.497722202365318714450,-55,55, + 5173600871717173.,5209607090820211.,.499173493818314649430,-55,55, + 5173600871717743.,5209607090820793.,.499965107341955673682,-55,55, + 6216155809170141.,6278961506165007.,-.499895201564156211790,-55,55, + 6216155809171836.,6278961506166754.,-.495721192999233883060,-55,55, + 6216155809171901.,6278961506166820.,.498539167211802330543,-55,55, + 6216155809172064.,6278961506166988.,.499530532048897584968,-55,55, + 6216155809174150.,6278961506169138.,.499947630540129570799,-55,55, + 6216155809179202.,6278961506174345.,.499999012112696464583,-55,55, + 7082784227659944.,7176201384396029.,-.498985918313065691317,-55,55, + 7082784227659969.,7176201384396055.,-.493987612138928878606,-55,55, + 7082784227660541.,7176201384396650.,-.499626366872662520396,-55,55, + 7082784227660939.,7176201384397063.,.499946667423277592350,-55,55, + 7082784227674944.,7176201384411631.,.499997787495182840352,-55,55, + 8824124773899256.,9007199254740841.,.000019971154124528108,-55,55, + 8824124773899350.,9007199254740941.,-.001559664146115881878,-55,55, + 8824124773899397.,9007199254740991.,-.002349481796185104543,-55,55, + 8824124773899398.,4503599627370496.,.030731750403502640633,-55,54, + 8824124773911918.,4503599627377156.,-.499997153021683963968,-55,54, + 5227720812181187.,5382362673091212.,.499988658359111559064,-54,54, + 5227720812183873.,5382362673094146.,-.499794075850255879205,-54,54, + 5227720812184917.,5382362673095286.,-.495242018632709399188,-54,54, + 5227720812185080.,5382362673095463.,.493974442411740198121,-54,54, + 5227720812185091.,5382362673095476.,-.494483342425714168994,-54,54, + 5227720812186472.,5382362673096984.,-.499956147891014930896,-54,54, + 5227720812236549.,5382362673151665.,.499999238835324454989,-54,54, + 5299073463162539.,5460375201497186.,.499988605867863238240,-54,54, + 5299073463177656.,5460375201513735.,.460597056598824901102,-54,54, + 5299073463177667.,5460375201513748.,-.497425917998828841055,-54,54, + 5299073463177762.,5460375201513852.,-.498533425887459553490,-54,54, + 5299073463177857.,5460375201513956.,-.499640933775737043854,-54,54, + 5299073463178786.,5460375201514973.,-.499944879317224084321,-54,54, + 5299073463208588.,5460375201547597.,.499992506713326069767,-54,54, + 5354986034456099.,5521645576061938.,-.499944676625426460603,-54,54, + 5354986034456708.,5521645576062606.,-.469894513048357075293,-54,54, + 5354986034456718.,5521645576062616.,.499400235122161056951,-54,54, + 5354986034463785.,5521645576070368.,.499998768220350863624,-54,54, + 6318840445926240.,6598981832009934.,-.476827576858078468905,-54,54, + 6318840445926247.,6598981832009942.,-.494736085661869462136,-54,54, + 6318840445926361.,6598981832010071.,.499325342391026460673,-54,54, + 6318840445928371.,6598981832012363.,.499882100273860420919,-54,54, + 6318840445928706.,6598981832012745.,.499974893274222200405,-54,54, + 6318840445950260.,6598981832037323.,.499975085308248571582,-54,54, + 6779876501427477.,7130291867456372.,.499282412013720155453,-54,54, + 6779876501427580.,7130291867456492.,.496380376708000879097,-54,54, + 6779876501427592.,7130291867456506.,.476624799779218347501,-54,54, + 6779876501427622.,7130291867456541.,.427235857457297747428,-54,54, + 6779876501427780.,7130291867456726.,-.499545905437308451289,-54,54, + 6779876501428489.,7130291867457551.,.499895424375845057535,-54,54, + 6779876501431931.,7130291867461562.,-.499995890851060764179,-54,54, + 7852441927961268.,8415524045046996.,-.499995981119733465602,-54,54, + 7852441928002056.,8415524045097351.,.499816689767851867098,-54,54, + 7852441928002137.,8415524045097452.,-.499301069589760137633,-54,54, + 7852441928002201.,8415524045097531.,-.486258311550987860891,-54,54, + 7852441928002218.,8415524045097552.,-.498418828946888189728,-54,54, + 7852441928003207.,8415524045098773.,-.499992458589336677141,-54,54, + 8324762628950771.,9007199254740991.,.497977541089382353939,-54,54, + 8324762628950772.,4503599627370496.,.384758929248502125951,-54,53, + 8324762628950922.,4503599627370592.,-.249717265179385815648,-54,53, + 8324762628953603.,4503599627372296.,.250078219903561735542,-54,53, + 8324762628954752.,4503599627373027.,-.250009429255343402122,-54,53, + 8324762628971755.,4503599627383837.,-.250000979555352916633,-54,53, + 8717776617209354.,4756777605121134.,-.499990024032751593817,-54,53, + 8717776617240988.,4756777605141788.,-.499602232096818672977,-54,53, + 8717776617241109.,4756777605141867.,-.498083393960379670677,-54,53, + 8717776617241207.,4756777605141930.,.486617813786979830276,-54,53, + 8717776617241230.,4756777605141946.,-.496564555823270016603,-54,53, + 8717776617242950.,4756777605143069.,-.499767848347204356192,-54,53, + 8717776617245566.,4756777605144777.,-.499988669740095333396,-54,53, + 8911976088174357.,4884449665875469.,-.365143846714715011801,-54,53, + 8911976088174384.,4884449665875487.,-.490457466228447670939,-54,53, + 8911976088174387.,4884449665875488.,.495618798270028644534,-54,53, + 8911976088174458.,4884449665875535.,.499423724734094585489,-54,53, + 8911976088177618.,4884449665877627.,.499755663380550983473,-54,53, + 8911976088179988.,4884449665879197.,-.499995382319115491273,-54,53, + 5971604121822102.,7188774520420287.,.499995879257118752459,-53,53, + 5971604121826626.,7188774520428360.,-.499713288642415746533,-53,53, + 5971604121827757.,7188774520430378.,-.499640579118567895867,-53,53, + 5971604121828049.,7188774520430899.,-.495200940488075579476,-53,53, + 5971604121828063.,7188774520430923.,.484463973693842307081,-53,53, + 5971604121828100.,7188774520430990.,-.497850181682075382717,-53,53, + 5971604121828151.,7188774520431080.,.499500577125143800728,-53,53, + 6059040276388832.,7346611948596029.,-.499989664390793095358,-53,53, + 6059040276405606.,7346611948626667.,-.499957755828742990468,-53,53, + 6059040276407122.,7346611948629436.,-.499835632944308066916,-53,53, + 6059040276408598.,7346611948632131.,.439597252969619430293,-53,53, + 6059040276408615.,7346611948632162.,.490390179168718853660,-53,53, + 6059040276408638.,7346611948632205.,-.499713508914623290945,-53,53, + 6059040276446025.,7346611948700493.,-.499999524428973220944,-53,53, + 6179968525038164.,7571240719927125.,.499994969738038963844,-53,53, + 6179968525077305.,7571240720001082.,-.499959734946056829176,-53,53, + 6179968525077667.,7571240720001765.,.490536587302233955181,-53,53, + 6179968525077676.,7571240720001782.,.495825169900475193894,-53,53, + 6179968525077685.,7571240720001800.,-.498886247501239511427,-53,53, + 6179968525101508.,7571240720046812.,.499992044559708562319,-53,53, + 6230674196575053.,7667755931434614.,-.499994616038991396107,-53,53, + 6230674196596759.,7667755931476237.,-.499973616630950700438,-53,53, + 6230674196597123.,7667755931476934.,.499289614412434390317,-53,53, + 6230674196597135.,7667755931476958.,-.489745663683762248020,-53,53, + 6230674196597147.,7667755931476981.,-.478780941779877555537,-53,53, + 6230674196610348.,7667755931502294.,.499993595242611611826,-53,53, + 6859830313938945.,9007199254738812.,.499996656216107943419,-53,53, + 6859830313939860.,9007199254740991.,.204525326575850922901,-53,53, + 6859830313939861.,4503599627370497.,-.207188413941166594118,-53,52, + 6859830313939866.,4503599627370503.,-.254443800086619681122,-53,52, + 6859830313939908.,4503599627370553.,-.251389043707952454740,-53,52, + 6859830313939929.,4503599627370578.,-.249861665518301725541,-53,52, + 7267747051737116.,5035151950448169.,.499998408015574338364,-53,52, + 7267747051742489.,5035151950455869.,-.499973271627696827608,-53,52, + 7267747051745917.,5035151950460780.,.499300344939258552110,-53,52, + 7267747051745984.,5035151950460877.,-.496046407509610899914,-53,52, + 7267747051745991.,5035151950460887.,-.465709501048854469123,-53,52, + 7267747051746148.,5035151950461112.,-.499581741848131375652,-53,52, + 7267747051747862.,5035151950463568.,-.499944930031242623183,-53,52, + 7302452754238662.,5085331079065887.,-.499986901334510949423,-53,52, + 7302452754244791.,5085331079074828.,.499974554408548987853,-53,52, + 7302452754244828.,5085331079074882.,.481700541420834027727,-53,52, + 7302452754244852.,5085331079074917.,.496874154618552875297,-53,52, + 7302452754266078.,5085331079105886.,-.499995933595400804599,-53,52, + 7511273082104804.,5408223637270567.,-.499560871804134539430,-53,52, + 7511273082104857.,5408223637270654.,-.494328089204358910561,-53,52, + 7511273082104871.,5408223637270676.,.488186230728125357952,-53,52, + 7511273082104882.,5408223637270695.,-.454123946467642633865,-53,52, + 7511273082106520.,5408223637273384.,-.499948512998711452116,-53,52, + 7511273082122190.,5408223637299108.,-.499991697283596564069,-53,52, + 7913137471605027.,6166821929885832.,.477631092708620916745,-53,52, + 7913137471605048.,6166821929885878.,.494598018581950718412,-53,52, + 7913137471605231.,6166821929886279.,.499595515513078983899,-53,52, + 7913137471605644.,6166821929887184.,.499945057998047938723,-53,52, + 7913137471622854.,6166821929924896.,.499983177842703292998,-53,52, + 7913137471631459.,6166821929943753.,-.499997554160133259046,-53,52, + 8070217332256068.,6536633065491458.,-.499552830045528575725,-53,52, + 8070217332256339.,6536633065492145.,-.485768517109748505314,-53,52, + 8070217332256367.,6536633065492215.,.497205507853730093505,-53,52, + 8070217332256481.,6536633065492504.,.499314038082876332168,-53,52, + 8070217332257948.,6536633065496224.,-.499868293634506541663,-53,52, + 8070217332258888.,6536633065498606.,.499973977960265112131,-53,52, + 8070217332265055.,6536633065514241.,-.499996935229776157927,-53,52, + 8575032706789218.,8344794243226719.,-.499996678866078325364,-53,52, + 8575032706796930.,8344794243267889.,.499763419705780254993,-53,52, + 8575032706797175.,8344794243269197.,.447758922134075476573,-53,52, + 8575032706797184.,8344794243269245.,.494828144686030201499,-53,52, + 8575032706797249.,8344794243269593.,-.498560803520873560463,-53,52, + 8575032706798141.,8344794243274354.,.499855481613483686285,-53,52, + 8575032706800563.,8344794243287285.,-.499960341559063997685,-53,52, + 8668443273592963.,8905108987576291.,.499220947722673386765,-53,52, + 8668443273592985.,8905108987576441.,-.458307508385518120651,-53,52, + 8668443273592994.,8905108987576502.,-.486387331336132849114,-53,52, + 8668443273593034.,8905108987576772.,.499924566680358077417,-53,52, + 8668443273595883.,8905108987596073.,.499989583629595334969,-53,52, + 8668443273627151.,8905108987807904.,-.499988388377396083546,-53,52, + 8683188500808656.,9007199254740965.,-.070726279035194332449,-53,52, + 8683188500808658.,9007199254740979.,.083390138972927828943,-53,52, + 8683188500808659.,9007199254740986.,.160448347977021072633,-53,52, + 8683188500808660.,4503599627370497.,-.381246721509432120840,-53,51, + 8683188500808825.,4503599627371080.,.476055521476853517542,-53,51, + 8683188500809163.,4503599627372276.,.498892844384362166848,-53,51, + 8683188500809176.,4503599627372322.,.499771202982187841336,-53,51, + 8683188500810318.,4503599627376364.,-.499991442353651043416,-53,51, + 8683188500852442.,4503599627525421.,-.499983136855036509730,-53,51, + 9001158123850072.,9007199254649623.,-.499996185120788435410,-53,51, + 9001158123850456.,9007199254721213.,.499740388092435294240,-53,51, + 9001158123850502.,9007199254729790.,-.495082529795890975813,-53,51, + 9001158123850562.,9007199254740976.,-.401373194154101166360,-53,51, + 9001158123850563.,4503599627370581.,.016760981190435579432,-53,50, + 9001158123850564.,4503599627370674.,.234208559473347028849,-53,50, + 9001158123850571.,4503599627371327.,-.243658392114364794705,-53,50, + 9007197227475228.,9007195781278517.,-.362786268816129729509,-53,50, + 9007197227481829.,9007197614308589.,.274202515975584741845,-53,50, + 9007197227487628.,9007199224636403.,.298638830032147749165,-53,50, + 9007197227487736.,9007199254627032.,.250421082439927061066,-53,50, + 9007197227487737.,4503599627452362.,-.366650383710321525811,-53,49, + 9007197227487747.,4503599628840817.,-.281492712381068371389,-53,49, + 9007197227487751.,4503599629396199.,-.245511938790836503435,-53,49, + 9007197227488430.,4503599723672315.,.243462726487943842509,-53,49, + 9007197227536241.,4503606362095457.,-.182342321639685197208,-53,49, + 9007199120523243.,5267796789502181.,-.058131876919640173919,-53,49, + 9007199120523249.,5267796802085091.,.348118352185682086574,-53,49, + 9007199120523263.,5267796831445218.,-.183131515256082327864,-53,49, + 9007199120523264.,5267796833542370.,-.175319015100861897677,-53,49, + 9007199120523307.,5267796923719921.,-.058128424816598324512,-53,49, + 9007199120527275.,5267805245344795.,.445997436421353939709,-53,49, + 9007199120918827.,5268627614114797.,.026419881621887898638,-53,49, + 9007199126162617.,5279879055967471.,.483768897366942636062,-53,49, + 9007199126193114.,5279945825831428.,.238929610037157241759,-53,49, + 9007199126196961.,5279954249544546.,.441561994392141726721,-53,49, + 9007199126197056.,5279954457567686.,-.316600102177739112165,-53,49, + 9007199126197071.,5279954490413459.,-.435251386837993759691,-53,49, + 9007199126197243.,5279954867045262.,-.442119787622314772327,-53,49, + 9007199126197712.,5279955894026401.,.235892195269921761620,-53,49, + 9007199126204128.,5279969943679834.,.109822913366349223563,-53,49, + 9007199126209817.,5279982401946995.,-.002034229451593408962,-53,49, + 9007199126219001.,5280002515032905.,.436957234212523388163,-53,49, + 9007199126219182.,5280002911439829.,-.307864485991501796999,-53,49, + 9007199126219189.,5280002926770494.,.395404049790437729624,-53,49, + 9007199126219210.,5280002972762497.,-.484838691019041910162,-53,49, + 9007199126219305.,5280003180821648.,-.382361245620252935978,-53,49, + 9007199126220159.,5280005051170817.,-.484232892919587209215,-53,49, + 9007199126229546.,5280025610500070.,.312113809961112503056,-53,49, + 9007199126686809.,5281028926727347.,-.006791736040791445352,-53,49, + 9007199126696378.,5281049961063346.,.182552521694785680777,-53,49, + 9007199126700096.,5281058134301816.,-.196617228446276153787,-53,49, + 9007199126700517.,5281059059796439.,.444401753460234183650,-53,49, + 9007199126700526.,5281059079581393.,.361777403333830027854,-53,49, + 9007199126700644.,5281059338984251.,.148181197379947732568,-53,49, + 9007199127997169.,5283924057741457.,-.094477396958077912445,-53,49, + 9007199128000395.,5283931222191890.,-.155049702303815386124,-53,49, + 9007199128001075.,5283932732390702.,-.499488109786309849661,-53,49, + 9007199128013979.,5283961392169933.,.173153057886948566568,-53,49, + 9007199128056004.,5284054749911802.,-.042279457980145287050,-53,49, + 9007199129244612.,5286708125072836.,-.128739233792051314173,-53,49, + 9007199129253363.,5286727753315680.,.236536817571206002817,-53,49, + 9007199129259197.,5286740839571366.,-.174704070179571039665,-53,49, + 9007199129259553.,5286741638135289.,.392301347497062945984,-53,49, + 9007199129259562.,5286741658323733.,-.447672999979257537842,-53,49, + 9007199129279527.,5286786446584911.,-.329774146387898481096,-53,49, + 9007199131406209.,5291598595926945.,-.431575420421317438828,-53,49, + 9007199131406399.,5291599029545798.,-.467962505822900402151,-53,49, + 9007199131407050.,5291600515265986.,-.495035577158852576423,-53,49, + 9007199131421449.,5291633378845610.,.235476603672343843660,-53,49, + 9007199131476427.,5291758893273587.,.338695819012816792312,-53,49, + 9007199131479045.,5291764871547389.,.374529689110278594588,-53,49, + 9007199131500070.,5291812887308538.,.041557730782111943035,-53,49, + 9007199131513124.,5291842703451787.,.275266269572496447268,-53,49, + 9007199131513869.,5291844405173130.,-.148859363350511402944,-53,49, + 9007199131513909.,5291844496541010.,-.264161605235803050229,-53,49, + 9007199131515250.,5291847559666347.,.046889565382627731315,-53,49, + 9007199131539083.,5291902004799915.,-.173397312674078549301,-53,49, + 9007199134199200.,5298046049564452.,.352189021085809103622,-53,49, + 9007199134234610.,5298128746968032.,-.037972158833651065639,-53,49, + 9007199134247113.,5298157952593336.,.339084890411260243962,-53,49, + 9007199134247841.,5298159653214191.,-.363531131867259934180,-53,49, + 9007199134248017.,5298160064354841.,-.445450873852187513814,-53,49, + 9007199134248023.,5298160078371010.,-.340084690756233494558,-53,49, + 9007199135341783.,5300726799874586.,.003941373548443591004,-53,49, + 9007199135343479.,5300730798100020.,-.454672689892326263976,-53,49, + 9007199135344014.,5300732059344472.,.111356360830112112690,-53,49, + 9007199135344228.,5300732563843836.,-.456164746306201751218,-53,49, + 9007199135353441.,5300754284106148.,-.344539086450161990898,-53,49, + 9007199135365099.,5300781771021631.,-.196801068689476679794,-53,49, + 9007199136523545.,5303526596671776.,-.409799671413671307227,-53,49, + 9007199136598639.,5303705451813394.,.156111740372924615310,-53,49, + 9007199136601206.,5303711567775210.,.324075754534185455240,-53,49, + 9007199136603773.,5303717683869919.,-.406332501725632866329,-53,49, + 9007199136603986.,5303718191366413.,-.173319573108536714397,-53,49, + 9007199136603989.,5303718198514257.,.308124343709513675885,-53,49, + 9007199136604026.,5303718286671021.,-.162903899407845123360,-53,49, + 9007199137546347.,5305972477680473.,-.053098762622397064589,-53,49, + 9007199139410964.,5310486874141007.,-.268806226147559721679,-53,49, + 9007199139415403.,5310497708192620.,.327268614496246218961,-53,49, + 9007199139415558.,5310498086501124.,-.185519689987768294346,-53,49, + 9007199139416178.,5310499599740222.,.332503073354511857917,-53,49, + 9007199139416305.,5310499909711171.,-.400806526320117643699,-53,49, + 9007199139416333.,5310499978051268.,.111136572588948317404,-53,49, + 9007199139435611.,5310547034147242.,.433552285387790137487,-53,49, + 9007199139460258.,5310607207014302.,-.258190634778443209688,-53,49, + 9007199140511146.,5313184872448596.,.063724849270887166684,-53,49, + 9007199140541212.,5313258968150633.,.490082826736593351202,-53,49, + 9007199140541276.,5313259125895278.,-.242556756590028630337,-53,49, + 9007199140542060.,5313261058274345.,-.436848225745377708613,-53,49, + 9007199140542204.,5313261413202554.,.032907174832888748378,-53,49, + 9007199141806237.,5316394348390685.,.411684500281883226636,-53,49, + 9007199141807651.,5316397872621213.,.030810200835037384042,-53,49, + 9007199141807654.,5316397880098411.,-.011843302987843459842,-53,49, + 9007199141807701.,5316397997241205.,-.081568403452120732629,-53,49, + 9007199141808126.,5316399056513364.,-.374620444805218136114,-53,49, + 9007199141841089.,5316481225809011.,-.458204227224926497298,-53,49, + 9007199144114571.,5322207176591957.,-.311268726019250966131,-53,49, + 9007199144115176.,5322208715942377.,-.490348713894219563750,-53,49, + 9007199144115650.,5322209921984785.,.384869575738992624693,-53,49, + 9007199144163731.,5322332285812949.,.313527449843963804388,-53,49, + 9007199148134893.,5332626880523808.,-.451377347355834167383,-53,49, + 9007199148134913.,5332626933330356.,-.342033053512804747496,-53,49, + 9007199148134933.,5332626986136914.,-.325832932006793042878,-53,49, + 9007199148135318.,5332628002665086.,.399269971695906206528,-53,49, + 9007199148145963.,5332656110463092.,.163340787556654365547,-53,49, + 9007199148242181.,5332910298583311.,-.332100080274331408662,-53,49, + 9007199148243468.,5332913700128198.,.026028080274019607645,-53,49, + 9007199148243611.,5332914078080167.,.417832100265046641823,-53,49, + 9007199148243640.,5332914154727831.,.497541469609532512962,-53,49, + 9007199148243642.,5332914160013878.,.065491824120884131502,-53,49, + 9007199148277730.,5333004269814509.,-.080698896668728898981,-53,49, + 9007199149143712.,5335303175753236.,-.029523021359862269355,-53,49, + 9007199149170697.,5335375114850253.,.126271174286671671367,-53,49, + 9007199149197643.,5335446968328450.,-.306935193201387389127,-53,49, + 9007199149197679.,5335447064337351.,-.271285311363092092656,-53,49, + 9007199149197682.,5335447072338094.,-.040111341495734610848,-53,49, + 9007199151660427.,5342092843803185.,-.113167892845000134844,-53,49, + 9007199151664355.,5342103569925816.,.098132009110422604708,-53,49, + 9007199151664372.,5342103616348315.,-.406383222018244497856,-53,49, + 9007199151664429.,5342103772000277.,.186019638713169167352,-53,49, + 9007199151677417.,5342139241046323.,-.329385787326436686568,-53,49, + 9007199154067401.,5348743353275424.,-.419865447280151740199,-53,49, + 9007199154068718.,5348747035521855.,-.335910255422991726399,-53,49, + 9007199154069329.,5348748743854515.,-.367694406693166922438,-53,49, + 9007199154069367.,5348748850101406.,-.487688076842294126640,-53,49, + 9007199154069701.,5348749783957382.,.315831682486839641838,-53,49, + 9007199154082203.,5348784741477719.,.307147459784883418851,-53,49, + 9007199154101939.,5348839935215854.,-.142715750487253002966,-53,49, + 9007199158257163.,5360708317528668.,.127097514893597963816,-53,49, + 9007199158316759.,5360882232326853.,.498520493385987500806,-53,49, + 9007199158318436.,5360887127752294.,-.130129550398022843099,-53,49, + 9007199158318659.,5360887778730606.,-.306929269829642675114,-53,49, + 9007199158318775.,5360888117356691.,-.481556622362503331821,-53,49, + 9007199158321567.,5360896267859156.,-.485729951552840257269,-53,49, + 9007199159649962.,5364801182090483.,-.401416434497981940746,-53,49, + 9007199159685193.,5364905487222706.,-.465485067296465964217,-53,49, + 9007199159685209.,5364905534601194.,-.487467457527384906573,-53,49, + 9007199159685249.,5364905653047448.,.347562990140682559802,-53,49, + 9007199159685253.,5364905664892077.,-.427576735402128944704,-53,49, + 9007199159687803.,5364913215944013.,-.112989300450837118287,-53,49, + 9007199159688228.,5364914474472363.,.479369785216824197274,-53,49, + 9007199159698007.,5364943434023839.,-.178904712133086822423,-53,49, + 9007199159744972.,5365082557806560.,-.150885103081562339955,-53,49, + 9007199159746861.,5365088155004425.,.414145745547696971110,-53,49, + 9007199159747827.,5365091017351905.,.096652852192084191237,-53,49, + 9007199159748042.,5365091654420780.,.492459310309669606071,-53,49, + 9007199159748045.,5365091663310124.,-.162389522447615860957,-53,49, + 9007199159764828.,5365141397654265.,.011414412678153327846,-53,49, + 9007199159784684.,5365200249804490.,.180771900047788770657,-53,49, + 9007199160620815.,5367689734302262.,.449623455458441303233,-53,49, + 9007199160620836.,5367689797104686.,-.205673044512204003976,-53,49, + 9007199160621032.,5367690383261313.,-.277636172187200362984,-53,49, + 9007199160621060.,5367690466998073.,.356245860809165130130,-53,49, + 9007199160624707.,5367701373924083.,-.230063945518025849996,-53,49, + 9007199160625228.,5367702932090871.,.176829884686828629190,-53,49, + 9007199160635134.,5367732559836152.,-.456409262513145280706,-53,49, + 9007199166245381.,5385034078022258.,-.298517602274312854652,-53,49, + 9007199166274499.,5385126707893861.,.000025743195503491428,-53,49, + 9007199166274711.,5385127382417795.,-.342182431565156297040,-53,49, + 9007199166274762.,5385127544685586.,-.062823927825568563897,-53,49, + 9007199166276654.,5385133564568578.,.367463136759137472146,-53,49, + 9007199166285011.,5385160156046674.,-.101683750875697594283,-53,49, + 9007199166656477.,5386344683573084.,.084033558644141577046,-53,49, + 9007199166805337.,5386820769640118.,.214314823549192136091,-53,49, + 9007199166820223.,5386868422565595.,.353779884572544034036,-53,49, + 9007199166821736.,5386873266418886.,-.108795382514917542419,-53,49, + 9007199166822590.,5386876000527541.,-.340917016450711285524,-53,49, + 9007199166822761.,5386876547992769.,.391529226740040374536,-53,49, + 9007199166823249.,5386878110355535.,-.119681234747538448150,-53,49, + 9007199168411661.,5392010025717803.,-.396855882474724374803,-53,49, + 9007199168476451.,5392221351467364.,.239821793057187917901,-53,49, + 9007199168493858.,5392278154984688.,-.180316628733593099251,-53,49, + 9007199168494018.,5392278677159005.,-.486142795394755910387,-53,49, + 9007199168494039.,5392278745694455.,.494964385694781026925,-53,49, + 9007199168494046.,5392278768539610.,-.469670534774816815554,-53,49, + 9007199168494357.,5392279783519039.,-.452954032211431495303,-53,49, + 9007199168498038.,5392291797106646.,-.265437669702069641544,-53,49, + 9007199168505400.,5392315825820219.,.450686405083173914340,-53,49, + 9007199168508851.,5392327090189879.,-.234486799562759036051,-53,49, + 9007199168516877.,5392353289508221.,-.030805676768237434216,-53,49, + 9007199168518131.,5392357383167973.,-.167999222862155663145,-53,49, + 9007199168518256.,5392357791231419.,-.428157382216072998339,-53,49, + 9007199168518257.,5392357794495929.,-.476975350282153518530,-53,49, + 9007199168524276.,5392377444267298.,.047757878486729429444,-53,49, + 9007199168810737.,5393314221460008.,.060628860941124855466,-53,49, + 9007199168829920.,5393377064719202.,-.264218089793934038207,-53,49, + 9007199168831304.,5393381599227950.,-.499570913130895841624,-53,49, + 9007199168832359.,5393385055857023.,-.170040887972862636634,-53,49, + 9007199168840731.,5393412487597758.,.255943389486333839706,-53,49, + 9007199168912664.,5393648293888351.,.088380562509614186335,-53,49, + 9007199168966149.,5393823753229817.,.011610164397696093623,-53,49, + 9007199168966391.,5393824547367566.,.456715975935330850458,-53,49, + 9007199168966498.,5393824898495302.,.239273382391452952861,-53,49, + 9007199168966544.,5393825049447548.,-.420258267192152332263,-53,49, + 9007199168966554.,5393825082263264.,-.199182719423882014187,-53,49, + 9007199168969858.,5393835924785362.,-.397407923660618560337,-53,49, + 9007199171589217.,5402565861080841.,-.463400532042745474373,-53,49, + 9007199171589225.,5402565888161440.,.227966488389323871540,-53,49, + 9007199171589300.,5402566142042189.,.043227927488253404194,-53,49, + 9007199171591325.,5402572996908967.,.350059023344952624723,-53,49, + 9007199171592075.,5402575535790880.,.004577502859410109371,-53,49, + 9007199174856136.,5413847731305353.,.115315648068609214632,-53,49, + 9007199174884739.,5413948532269250.,.200283828661705164910,-53,49, + 9007199174886151.,5413953509289430.,-.004136765337830741055,-53,49, + 9007199174886272.,5413953935794545.,-.097818319840337661247,-53,49, + 9007199174886353.,5413954221306595.,-.492370087622541954132,-53,49, + 9007199174886393.,5413954362300306.,.071586062660657516441,-53,49, + 9007199174894038.,5413981311020187.,-.475799280808339114213,-53,49, + 9007199175899345.,5417547698895130.,-.158616942765715459288,-53,49, + 9007199175899353.,5417547727456176.,.235868460718036363117,-53,49, + 9007199175899381.,5417547827419861.,.438851807711681295456,-53,49, + 9007199175899949.,5417549855262283.,.117787954847134735905,-53,49, + 9007199175902667.,5417559559118911.,.000255349992374113449,-53,49, + 9007199175902969.,5417560637345854.,-.062942323426321299545,-53,49, + 9007199175910672.,5417588140669800.,.402262266932567168564,-53,49, + 9007199176322229.,5419061513484328.,.206344827946959628584,-53,49, + 9007199176324313.,5419068993857981.,-.350882370869420684115,-53,49, + 9007199176324457.,5419069510743349.,.366782506938232573606,-53,49, + 9007199176324470.,5419069557406659.,-.466618849238035237092,-53,49, + 9007199176328625.,5419084472114542.,.451737651484566721979,-53,49, + 9007199176389315.,5419302413892880.,-.343226055384243168759,-53,49, + 9007199176429882.,5419448186809393.,.479311740450103922402,-53,49, + 9007199176451072.,5419524360699422.,.495790996384232069988,-53,49, + 9007199176451113.,5419524508106357.,.093933210615941691740,-53,49, + 9007199176453163.,5419531878551514.,-.083299080352075555527,-53,49, + 9007199176455459.,5419540133679221.,-.461989429305901766988,-53,49, + 9007199176455500.,5419540281094416.,-.405447946658392395487,-53,49, + 9007199176870880.,5421037753475869.,.424176779322995747541,-53,49, + 9007199176871399.,5421039629497319.,-.262726300943382130044,-53,49, + 9007199176871518.,5421040059646581.,-.184981257988875558253,-53,49, + 9007199176871529.,5421040099408310.,.499882792483552532217,-53,49, + 9007199176871572.,5421040254840580.,.434386519390643943706,-53,49, + 9007199176888580.,5421101740457364.,.374258865172642830239,-53,49, + 9007199178381380.,5426551367036370.,-.499580326025902192264,-53,49, + 9007199178381686.,5426552495008521.,-.221378292041815071804,-53,49, + 9007199178381694.,5426552524498049.,.418238697256514730725,-53,49, + 9007199178381725.,5426552638770002.,.078571558067823134882,-53,49, + 9007199178383388.,5426558768975332.,-.184817108381075561378,-53,49, + 9007199178387059.,5426572301609007.,-.185243437490074491655,-53,49, + 9007199178426781.,5426718772890201.,-.426794543521736054886,-53,49, + 9007199180253114.,5433536877060751.,-.416618043858928165137,-53,49, + 9007199180253763.,5433539329514242.,-.086395453241362163205,-53,49, + 9007199180253768.,5433539348408420.,-.446789082304381503773,-53,49, + 9007199180253811.,5433539510898400.,-.391428115949882457401,-53,49, + 9007199180260132.,5433563397945907.,-.170508162805194426418,-53,49, + 9007199180265607.,5433584089599413.,-.052618524958644348757,-53,49, + 9007199185869675.,5455603560665924.,.053179089951169779341,-53,49, + 9007199185879316.,5455642965897832.,.048079377888713142995,-53,49, + 9007199185880032.,5455645892592963.,-.065355162867611420792,-53,49, + 9007199185881464.,5455651746074519.,.069321125503535321381,-53,49, + 9007199185881697.,5455652698503075.,-.476981469851935481719,-53,49, + 9007199185881747.,5455652902887305.,-.302457062949737459261,-53,49, + 9007199185881797.,5455653107271683.,.279375321948988228693,-53,49, + 9007199186446478.,5457970864059636.,.499560775407616852106,-53,49, + 9007199186459949.,5458026390092570.,-.111187103297342210752,-53,49, + 9007199186459953.,5458026406581772.,.376370012310525298663,-53,49, + 9007199186459977.,5458026505517008.,-.413105125911100202526,-53,49, + 9007199186460076.,5458026913625220.,.409133665333686124532,-53,49, + 9007199186460461.,5458028500718340.,-.335313977482578485713,-53,49, + 9007199186464053.,5458043308522269.,-.191002593859509854203,-53,49, + 9007199188311461.,5465764269962889.,.051752339679293779130,-53,49, + 9007199188311470.,5465764308097660.,.338095319610660346283,-53,49, + 9007199188311668.,5465765147063936.,-.216953479507812214737,-53,49, + 9007199188311992.,5465766519923235.,-.002386110117618294923,-53,49, + 9007199188312001.,5465766558058311.,.114149257357960672062,-53,49, + 9007199188313454.,5465772714822239.,.291415522104403106295,-53,49, + 9007199188323616.,5465815777799110.,-.409221014334781044477,-53,49, + 9007199188333778.,5465858847365211.,.162001747704404144619,-53,49, + 9007199191474457.,5479496078886355.,.028191299851039116521,-53,49, + 9007199191506340.,5479637963197749.,-.137583407184136934651,-53,49, + 9007199191510305.,5479655613066017.,.367129929001943840692,-53,49, + 9007199191510468.,5479656338670667.,.237243615096138929460,-53,49, + 9007199191510577.,5479656823891998.,.215317334747288620136,-53,49, + 9007199191510581.,5479656841698302.,-.498406088159171564725,-53,49, + 9007199191510631.,5479657064277188.,-.376593189605312484104,-53,49, + 9007199191511337.,5479660207109848.,-.015491893212171516661,-53,49, + 9007199194040578.,5491150831220185.,.302009821519512089110,-53,49, + 9007199194061207.,5491246506584336.,.453467663971666449354,-53,49, + 9007199194073518.,5491303619344697.,.111356607304676587248,-53,49, + 9007199194073522.,5491303637903240.,.487522692165507844918,-53,49, + 9007199194074516.,5491308249739203.,-.317938472914093159408,-53,49, + 9007199194078176.,5491325231597443.,-.466899956653915084183,-53,49, + 9007199194767309.,5494541104195949.,.286699125931233708507,-53,49, + 9007199194769855.,5494553053612243.,-.475510778235629085241,-53,49, + 9007199194769916.,5494553339916342.,-.075386196217747160003,-53,49, + 9007199194769952.,5494553508882832.,.315989599149428104873,-53,49, + 9007199194770290.,5494555095295383.,.255507109110933161466,-53,49, + 9007199194771340.,5494560023557085.,-.305381360656607610714,-53,49, + 9007199198533376.,5512795765751886.,.269416030754161122809,-53,49, + 9007199198533848.,5512798129430631.,.351285802705019379202,-53,49, + 9007199198533861.,5512798194532234.,-.407261870137204785768,-53,49, + 9007199198554810.,5512903122827635.,-.209842794555679819488,-53,49, + 9007199199877260.,5519607390637069.,.208064146739877069163,-53,49, + 9007199199880361.,5519623300575059.,.376729662834235525722,-53,49, + 9007199199880879.,5519625958304730.,-.448427204577009747876,-53,49, + 9007199199880952.,5519626332851662.,-.082124455355855728074,-53,49, + 9007199199882539.,5519634475522550.,.248454797408467095916,-53,49, + 9007199199919824.,5519825847353474.,-.428770558991801911557,-53,49, + 9007199200386691.,5522233204621385.,.307530510906303002845,-53,49, + 9007199200386741.,5522233463547636.,-.290420702978519399998,-53,49, + 9007199200386834.,5522233945151095.,-.020202741613387627628,-53,49, + 9007199200386977.,5522234685682753.,-.090592661894765939106,-53,49, + 9007199201984176.,5530629819484683.,-.006230667261958597290,-53,49, + 9007199201984998.,5530634205159399.,.427350216580829451627,-53,49, + 9007199201985820.,5530638590902450.,.327190277372589376538,-53,49, + 9007199201985885.,5530638937709865.,-.017515459309174879226,-53,49, + 9007199201985903.,5530639033748917.,-.102016629060956594024,-53,49, + 9007199201985957.,5530639321866269.,.255352125751536132576,-53,49, + 9007199202039106.,5530923041791064.,.417855648050821152617,-53,49, + 9007199203775949.,5540355627463061.,-.210650052027436378804,-53,49, + 9007199203813453.,5540562834657656.,-.140303120008116436658,-53,49, + 9007199203813481.,5540562989412857.,-.093730391780921422054,-53,49, + 9007199203813495.,5540563066790489.,.336274431307253691995,-53,49, + 9007199203813623.,5540563774244115.,-.014896956283702962714,-53,49, + 9007199203813878.,5540565183629684.,.479976815383522492323,-53,49, + 9007199203816485.,5540579592929395.,.465707752899229666487,-53,49, + 9007199206214971.,5554159103163882.,-.040557630089270971892,-53,49, + 9007199206237822.,5554291681509898.,.473011273349006050884,-53,49, + 9007199206238377.,5554294902320132.,-.472751343034242724439,-53,49, + 9007199206238381.,5554294925533312.,.018659252901909042283,-53,49, + 9007199206238415.,5554295122845423.,.489021003511449187597,-53,49, + 9007199206238559.,5554295958521782.,-.032280355934168927643,-53,49, + 9007199215261768.,5612234599767347.,.494639133538568900666,-53,49, + 9007199215274043.,5612322130428892.,-.280075045789686670928,-53,49, + 9007199215286318.,5612409688318434.,-.337963621498303000110,-53,49, + 9007199215288235.,5612423364787806.,-.467354073067639665631,-53,49, + 9007199215288243.,5612423421863666.,-.168914320296148568782,-53,49, + 9007199215288280.,5612423685839670.,.257538373401199664431,-53,49, + 9007199215288325.,5612424006891901.,.176321884829439915078,-53,49, + 9007199217480149.,5628512739377173.,.467165131709764227008,-53,49, + 9007199217481117.,5628520051914823.,.327237291924486711795,-53,49, + 9007199217481426.,5628522386225624.,-.247252792749691269486,-53,49, + 9007199217481442.,5628522507096613.,.061999204420062809577,-53,49, + 9007199217481501.,5628522952808835.,-.271573429276639168012,-53,49, + 9007199217481601.,5628523708254890.,.113432823494404723651,-53,49, + 9007199217488327.,5628574524211503.,-.085683899483300408950,-53,49, + 9007199217496989.,5628639980461554.,.166111045493080044366,-53,49, + 9007199217526822.,5628865536451141.,-.227954647156649260722,-53,49, + 9007199219795155.,5646567569312042.,-.164626408864629001248,-53,49, + 9007199219795993.,5646574319153493.,.221066631837884569271,-53,49, + 9007199219796194.,5646575938172945.,.480934026805299548384,-53,49, + 9007199219796228.,5646576212037853.,.282973876874012833274,-53,49, + 9007199219796262.,5646576485903028.,-.454140320779412081880,-53,49, + 9007199219856864.,5647065050411824.,.229544097621495516724,-53,49, + 9007199222891478.,5672682036801255.,-.128515912167546294644,-53,49, + 9007199222895273.,5672715577695587.,.399732180915905041633,-53,49, + 9007199222897976.,5672739469734387.,-.254175010518659124612,-53,49, + 9007199222897986.,5672739558128973.,-.325034904689592773881,-53,49, + 9007199222898067.,5672740274126142.,-.221024064530627133000,-53,49, + 9007199222898977.,5672748318170127.,-.037400917653707129069,-53,49, + 9007199222899068.,5672749122587169.,.255238358139341281764,-53,49, + 9007199224998218.,5691945033329171.,-.311044783416658771456,-53,49, + 9007199225019809.,5692149437032048.,-.199365626514889604818,-53,49, + 9007199225020363.,5692154683747520.,.050709096447894985259,-53,49, + 9007199225021062.,5692161303840344.,.360091584676547122109,-53,49, + 9007199226254864.,5704096020931206.,.019606682152161946289,-53,49, + 9007199226255603.,5704103323176928.,-.499511505369049961798,-53,49, + 9007199226256020.,5704107443742900.,-.448237777695326898867,-53,49, + 9007199226256028.,5704107522795115.,-.355495394876646819528,-53,49, + 9007199226256181.,5704109034673001.,-.057696561976557184071,-53,49, + 9007199226257659.,5704123640029157.,-.185890910135636035298,-53,49, + 9007199226305013.,5704591986137887.,-.477316814165291017227,-53,49, + 9007199227497713.,5716652727593674.,-.224748112094398894246,-53,49, + 9007199227550497.,5717198615881704.,.483845487800723276663,-53,49, + 9007199227559630.,5717293176234512.,-.166083476665625160583,-53,49, + 9007199227559770.,5717294625999917.,-.378186225523135451471,-53,49, + 9007199227559980.,5717296800662025.,-.168290964535318534978,-53,49, + 9007199227559996.,5717296966351255.,.228271173250696377104,-53,49, + 9007199228521502.,5727434294773195.,-.253874678624779553710,-53,49, + 9007199228523384.,5727454499396539.,-.379993112744419790222,-53,49, + 9007199228524004.,5727461155859986.,-.127727624570604875496,-53,49, + 9007199228524013.,5727461252487227.,.297003492506578588947,-53,49, + 9007199228524325.,5727464602252104.,-.059927766476496299659,-53,49, + 9007199229842704.,5741987671714457.,.433761420009843564098,-53,49, + 9007199229855410.,5742131349622048.,.070310947489553592718,-53,49, + 9007199229868116.,5742275100906976.,-.291981774099991360587,-53,49, + 9007199229868379.,5742278077173587.,-.351492621726099177623,-53,49, + 9007199229869086.,5742286078167981.,-.472884065563384835000,-53,49, + 9007199229869099.,5742286225288819.,-.263855603630231203753,-53,49, + 9007199229869168.,5742287006162247.,.228136371574525320527,-53,49, + 9007199231957769.,5766975504245165.,.079482140287665867847,-53,49, + 9007199231959414.,5766995828106010.,.023159739726596246253,-53,49, + 9007199231959621.,5766998385680598.,-.204196489407332379748,-53,49, + 9007199231959634.,5766998546302000.,-.362085936050609478062,-53,49, + 9007199231959655.,5766998805767535.,-.305420643631670041131,-53,49, + 9007199231959710.,5766999485321260.,.026799059594984078848,-53,49, + 9007199231978101.,5767226807775204.,-.469444790569657841295,-53,49, + 9007199231988267.,5767352543727648.,.425414193459441253462,-53,49, + 9007199235331125.,5812079867113728.,-.102845245357925616500,-53,49, + 9007199235331261.,5812081839344191.,.182820611447697960917,-53,49, + 9007199235331329.,5812082825464605.,-.038077728270461101487,-53,49, + 9007199235331332.,5812082868969997.,-.094905635090728059561,-53,49, + 9007199235351356.,5812373402872474.,.460208645918818208528,-53,49, + 9007199237626627.,5847507257888654.,-.454202502034653516416,-53,49, + 9007199237626646.,5847507570376294.,-.321692833205093893005,-53,49, + 9007199237626989.,5847513211660196.,-.097371593605773412365,-53,49, + 9007199237628484.,5847537801083924.,-.402508461151807725927,-53,49, + 9007199237631131.,5847581343613989.,.041755868845264175853,-53,49, + 9007199237637577.,5847687406986761.,-.039530250557120418558,-53,49, + 9007199242112238.,5933059294885558.,.452385270225154595606,-53,49, + 9007199242153386.,5933977916179827.,.275971119351583203051,-53,49, + 9007199242163163.,5934196627359482.,-.329392493355549869922,-53,49, + 9007199242163304.,5934199782768432.,-.131429748200245598396,-53,49, + 9007199242163317.,5934200073694442.,.341461882003277510349,-53,49, + 9007199242163326.,5934200275104933.,.430789353678576589334,-53,49, + 9007199242164476.,5934226012075722.,-.270674016055568743232,-53,49, + 9007199242167102.,5934284790712698.,.341184327469368444595,-53,49, + 9007199248019516.,6110576697516206.,-.127840940578439715629,-53,49, + 9007199248041206.,6111486477470166.,.243114034482132721849,-53,49, + 9007199248046026.,6111689050753615.,-.386908787669337787845,-53,49, + 9007199248046443.,6111706583138525.,-.266894625422072916816,-53,49, + 9007199248046848.,6111723612039799.,.106719824092437181212,-53,49, + 9007199248046860.,6111724116615552.,.069076946788530057362,-53,49, + 9007199248306829.,6122873216341428.,.456418890459200630320,-53,49, + 9007199248317957.,6123360453813245.,-.179563393662323685208,-53,49, + 9007199248319292.,6123418963248495.,.253661631801348090310,-53,49, + 9007199248319740.,6123438600601288.,.049513773774191958643,-53,49, + 9007199248319758.,6123439389630699.,.115424268055398302198,-53,49, + 9007199248319866.,6123444123853614.,-.045990342134205579391,-53,49, + 9007199248319875.,6123444518375784.,.465701258804719606295,-53,49, + 9007199248338878.,6124278765672720.,.392461417499492910685,-53,49, + 9007199248739955.,6142489059709458.,.368913627626080401142,-53,49, + 9007199248739970.,6142489763276180.,.057005572241464889092,-53,49, + 9007199248740115.,6142496564511824.,.287433147258788522942,-53,49, + 9007199248740147.,6142498065496309.,.307627211575134390847,-53,49, + 9007199248744277.,6142691853516560.,.109839106584892540958,-53,49, + 9007199249804375.,6197447614365966.,-.461653118744693511880,-53,49, + 9007199249805096.,6197488727192786.,-.219438404301572927746,-53,49, + 9007199249805231.,6197496425823698.,.244180432427550046916,-53,49, + 9007199249805366.,6197504124665182.,-.037517390019551069835,-53,49, + 9007199249805406.,6197506405843840.,-.022145247491738648072,-53,49, + 9007199249805412.,6197506748022233.,.234913724667653759239,-53,49, + 9007199249806673.,6197578671746612.,-.102114751720652285746,-53,49, + 9007199249823480.,6198539052517307.,.296563499131609581082,-53,49, + 9007199251116642.,6284424878766463.,-.194988681087801819444,-53,49, + 9007199251247725.,6294793730221055.,.488815266638431409549,-53,49, + 9007199251247805.,6294800176409105.,.164142565832233820443,-53,49, + 9007199251247821.,6294801465664431.,-.456979222376848532003,-53,49, + 9007199251248010.,6294816695439851.,.037840474867181347041,-53,49, + 9007199254740989.,5113180901456073.,.478072700827730677046,-53,48, + 9007199254740990.,5170245042386938.,.079229716698351668025,-53,48, + 9007199254740991.,5267796835639522.,-.175319015062056790402,-53,48 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/cos.c b/src/regress/lib/libm/fpaccuracy/cos.c new file mode 100644 index 000000000..3de6c12c1 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/cos.c @@ -0,0 +1,1450 @@ +/* $OpenBSD: cos.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:28:24. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1418 +#define F cos +#define Fs "cos" +#define Fn fpaccuracy_cos + /* 1 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -8400657330644443.,7605196346403030.,-.044416560457894922563,-48,84, + -8400657330534880.,4869396273706365.,.169880788279836733219,-48,90, + -8400657330533784.,6289574084656790.,-.255257492927285191224,-48,97, + -8400657330533773.,6215974209430896.,-.336479547240553044078,-48,103, + -8400657330533772.,-7453205702383268.,-.084119886810127428296,-48,101, + -7516377611530218.,-7457913609436273.,-.383149878784768004998,-48,103, + -7516377611530217.,7142720852381924.,-.345787469696201618196,-48,101, + -7516377611530207.,6075919587486990.,.228388283142499089029,-48,97, + -7516377611529080.,5004066539791450.,.111159269834481850860,-48,90, + -7516377611416375.,7823217165215121.,.407773576189983331718,-48,84, + -6632097892526663.,8699853009441651.,.102779304810088942224,-48,103, + -6632097892526662.,-6832236002380579.,-.224305173797469228189,-48,101, + -6632097892526610.,-7425103082014253.,.449620231702891160433,-48,95, + -6632097892521397.,-5789762733424524.,-.348049504224024223330,-48,88, + -6632097892000044.,-4523620690697855.,-.093830087087027177687,-48,81, + -5747818173523108.,-4970896204723514.,-.411204365417704874486,-48,102, + -5747818173523107.,6521751152379235.,-.205602182708860027894,-48,101, + -5747818173523100.,8696518241945772.,.349299727160301940577,-48,98, + -5747818173522339.,6761768338665489.,.346478895712815827862,-48,91, + -5747818173446242.,5282172336325216.,.135453714556871576941,-48,84, + -4863538454519553.,5591865904726203.,.271019078430365203309,-48,102, + -4863538454519552.,-6211266302377890.,-.364490460784810618213,-48,101, + -4863538454519528.,-6949501513005053.,-.073890326890614031485,-48,96, + -4863538454517045.,-5514467724105968.,.022860304770261404304,-48,89, + -4863538454268721.,-8618511228684388.,.251497877420076291608,-48,83, + -7958517471031996.,-6212835604728892.,-.130833791443025448267,-49,102, + -7958517471031995.,5588727300024200.,-.261667582886054288479,-49,103, + -7958517471031988.,8230594804149880.,.483645776069390309929,-49,99, + -7958517471031343.,5737781521231581.,-.058721518658445869890,-49,92, + -7958517470966799.,8960512649166011.,.452187445962740622016,-49,86, + -6189958033024886.,6833805304731581.,-.009351495544314399953,-49,102, + -6189958033024885.,-8693575800037644.,-.037405982177249058433,-49,104, + -6189958033024867.,-5134468141729602.,-.094042234234861264694,-49,97, + -6189958033023106.,-7825185970768669.,-.032719396882059983641,-49,91, + -6189958032847024.,-6111265716710806.,-.226716448012327035059,-49,84, + -5611213340369912.,-7712838840641255.,.480202387451061777083,-49,53, + -5611213340369897.,-7712838840641378.,-.475843464428667582494,-49,53, + -5611213340369859.,-7712838840641692.,-.497826289166140836641,-49,53, + -5611213340369586.,-7712838840643948.,-.497860792167985727446,-49,53, + -5611213340359303.,-7712838840728924.,-.499159084355836901478,-49,53, + -5611213340352751.,-7712838840783068.,-.499984972531721240922,-49,53, + -5611213340352660.,-7712838840783820.,-.499996435844684903386,-49,53, + -5592856839920927.,-7860405221135565.,-.499974250619587542885,-49,53, + -5592856839876769.,-7860405221480557.,-.499983395848424222593,-49,53, + -5592856839876043.,-7860405221486230.,.499654522658192967422,-49,53, + -5592856839876011.,-7860405221486480.,.494128921570866460684,-49,53, + -5592856839875883.,-7860405221487480.,.472026517475543824590,-49,53, + -5589917886911389.,-7883259077397994.,.499753880205263983400,-49,53, + -5589917886910909.,-7883259077401709.,.457435610888133304717,-49,53, + -5589917886910905.,-7883259077401740.,.498749625334569722883,-49,53, + -5589917886909622.,-7883259077411669.,-.499780220433739710094,-49,53, + -5589917886901586.,-7883259077473865.,-.499924137489486856710,-49,53, + -5589917886897568.,-7883259077504963.,-.499995493627922679909,-49,53, + -5584028471369328.,-7928408990984186.,-.499995179385612851204,-49,53, + -5584028471356886.,-7928408991078655.,-.499979642076543054432,-49,53, + -5584028471356638.,-7928408991080539.,.497931010797110348994,-49,53, + -5584028471356584.,-7928408991080949.,.489411556384883617418,-49,53, + -5584028471356417.,-7928408991082216.,-.499898607724598855898,-49,53, + -5555479367833232.,-8134889155758397.,-.499960035246781284331,-49,53, + -5555479367779076.,-8134889156130399.,.499865803739753917037,-49,53, + -5555479367778320.,-8134889156135592.,.487898472124600140083,-49,53, + -5555479367778297.,-8134889156135750.,.499439148773673217763,-49,53, + -5555479367774570.,-8134889156161351.,.499965496461634252476,-49,53, + -5555479367772317.,-8134889156176826.,-.499984461731911351119,-49,53, + -5545533983875703.,-8201931630652892.,-.499972754288119168433,-49,53, + -5545533983847437.,-8201931630839808.,.499984069666801063903,-49,53, + -5545533983828593.,-8201931630964418.,.499966773328504991005,-49,53, + -5545533983828420.,-8201931630965561.,-.499714939153989219354,-49,53, + -5545533983828358.,-8201931630965971.,-.488040176964954676206,-49,53, + -5545533983828345.,-8201931630966057.,-.453334178428830576027,-49,53, + -5544198963943229.,-8210736665287633.,-.499957101196465166917,-49,53, + -5544198963889502.,-8210736665641057.,-.499990528556725829008,-49,53, + -5544198963888997.,-8210736665644379.,-.463249184717191229999,-49,53, + -5544198963888990.,-8210736665644426.,.489735348808200677737,-49,53, + -5544198963888971.,-8210736665644550.,-.495020917330764740515,-49,53, + -5544198963888779.,-8210736665645813.,-.498873711473401843586,-49,53, + -5544198963888715.,-8210736665646235.,.499842024024628356992,-49,53, + -5539725571705764.,-8239903749301863.,-.488391202795444200778,-49,53, + -5539725571705738.,-8239903749302032.,.498578017446952414901,-49,53, + -5539725571705435.,-8239903749303989.,-.499434529970697756449,-49,53, + -5539725571704513.,-8239903749309947.,-.499987547363686211343,-49,53, + -5539725571686402.,-8239903749426982.,.499999907882867931707,-49,53, + -5537279579437201.,-8255632019636325.,-.499992529557009711593,-49,53, + -5537279579435100.,-8255632019649768.,-.499943838662422774364,-49,53, + -5537279579434731.,-8255632019652130.,.497208941862106833629,-49,53, + -5537279579434608.,-8255632019652917.,.496259869491843091543,-49,53, + -5537279579434603.,-8255632019652948.,-.495648629376660839927,-49,53, + -5537279579417180.,-8255632019764427.,-.499999831522147541150,-49,53, + -5522619698200338.,-8346621842601914.,.499952884823853884738,-49,53, + -5522619698198110.,-8346621842615314.,.499390764098276670119,-49,53, + -5522619698197762.,-8346621842617406.,-.498901691786348120744,-49,53, + -5522619698197692.,-8346621842617828.,.495694653679645421353,-49,53, + -5522619698197689.,-8346621842617846.,.452605925631071935492,-49,53, + -5522619698193306.,-8346621842644207.,.499974499817151941216,-49,53, + -5522619698186274.,-8346621842686500.,.499997417163965206156,-49,53, + -5488797129011645.,-8534860731767625.,.499684117815729588325,-49,53, + -5488797129011486.,-8534860731768438.,.492625365751707009579,-49,53, + -5488797129011477.,-8534860731768484.,.473357889240141244755,-49,53, + -5488797129011230.,-8534860731769746.,-.499871743059148987917,-49,53, + -5488797129009102.,-8534860731780628.,.499996108263828360141,-49,53, + -5486380295724261.,-8547139917527553.,-.499983127890274113387,-49,53, + -5486380295712394.,-8547139917587459.,-.499980383379084988233,-49,53, + -5486380295690198.,-8547139917699507.,-.496594362711752233754,-49,53, + -5486380295690177.,-8547139917699614.,.492956513395686547857,-49,53, + -5486380295690094.,-8547139917700033.,.499276642889109092472,-49,53, + -5486380295689616.,-8547139917702446.,.499529922383005000641,-49,53, + -5486380295688660.,-8547139917707271.,-.499963500142550315694,-49,53, + -5482520377157949.,-8566424171963791.,-.499990094895550582961,-49,53, + -5482520377153689.,-8566424171984852.,-.499953559407536767372,-49,53, + -5482520377149429.,-8566424172005913.,-.499916533374133629132,-49,53, + -5482520377149126.,-8566424172007412.,.499381893501856900881,-49,53, + -5482520377149090.,-8566424172007589.,-.480899481357835528000,-49,53, + -5482520377149073.,-8566424172007674.,.472856536081709342402,-49,53, + -5482520377105207.,-8566424172224542.,-.499972682203354770727,-49,53, + -5470973675770237.,-8621703968456354.,-.499994466507559850468,-49,53, + -5470973675756655.,-8621703968519249.,-.499985986381279902421,-49,53, + -5470973675752793.,-8621703968537134.,.499870087591689885839,-49,53, + -5470973675751577.,-8621703968542765.,.494128324343919918641,-49,53, + -5470973675751558.,-8621703968542852.,-.490336390387640295594,-49,53, + -5470973675751550.,-8621703968542890.,.463573203412535681425,-49,53, + -5470973675751252.,-8621703968544270.,.496705573709489309509,-49,53, + -5470973675750862.,-8621703968546076.,.499798276741271641016,-49,53, + -5468820810010042.,-8631610305696557.,-.499999887195858153553,-49,53, + -5468820810001228.,-8631610305736857.,.497439494029681707270,-49,53, + -5468820810001193.,-8631610305737017.,.471901760369420264848,-49,53, + -5468820810001172.,-8631610305737113.,.456579120189278496485,-49,53, + -5468820810001034.,-8631610305737744.,.498744627875730600603,-49,53, + -5468820810000840.,-8631610305738630.,-.499950237253145346052,-49,53, + -5468088758171272.,-8634950063552521.,.499988741090492353520,-49,53, + -5468088758166082.,-8634950063576146.,-.499947833592429300641,-49,53, + -5468088758158297.,-8634950063611585.,-.499851319497013674325,-49,53, + -5468088758157665.,-8634950063614463.,.499771231703445115583,-49,53, + -5468088758157109.,-8634950063616994.,.467793611694989403053,-49,53, + -5468088758157100.,-8634950063617035.,.497851527987149859649,-49,53, + -5468088758157033.,-8634950063617340.,.499393793787048814943,-49,53, + -5468088758139500.,-8634950063697153.,-.499996834043878567745,-49,53, + -5465050035002281.,-8648657122615357.,-.499914628653620442748,-49,53, + -5465050034997517.,-8648657122636649.,-.499906370402012704448,-49,53, + -5465050034933203.,-8648657122924091.,-.499734262825352932188,-49,53, + -5465050034923675.,-8648657122966675.,-.499699165117553324000,-49,53, + -5465050034923104.,-8648657122969228.,.499463386362785180507,-49,53, + -5465050034923055.,-8648657122969446.,-.498857164846953586410,-49,53, + -5465050034923006.,-8648657122969665.,-.497177715991168223102,-49,53, + -5465050034922974.,-8648657122969809.,.483510903705121124019,-49,53, + -5461318210793740.,-8665145812986454.,-.499967954538192198126,-49,53, + -5461318210755878.,-8665145813151814.,.499992441386400722167,-49,53, + -5461318210750029.,-8665145813177359.,.499963406814733602821,-49,53, + -5461318210747261.,-8665145813189447.,-.499879038121747661328,-49,53, + -5461318210746635.,-8665145813192182.,.499434079605935830042,-49,53, + -5461318210746115.,-8665145813194453.,.444550415577783905132,-49,53, + -5461318210746107.,-8665145813194487.,-.494755486887979019865,-49,53, + -5461318210746009.,-8665145813194916.,.498747208048441465871,-49,53, + -5437604071188480.,-8760997633325166.,-.499979159544265144100,-49,53, + -5437604071184932.,-8760997633338348.,-.489345550650820153508,-49,53, + -5437604071184925.,-8760997633338374.,-.496652642961230896341,-49,53, + -5437604071183281.,-8760997633344482.,-.498489713774569962481,-49,53, + -5437604071181911.,-8760997633349573.,.499979450956228839345,-49,53, + -5437604071136202.,-8760997633519396.,-.499971059092454539848,-49,53, + -5435306075380738.,-8769462428316451.,-.499992541288177653490,-49,53, + -5435306075360553.,-8769462428390162.,-.499512362146671358029,-49,53, + -5435306075360441.,-8769462428390571.,-.497874788952230430250,-49,53, + -5435306075360329.,-8769462428390980.,-.496237215410677651044,-49,53, + -5435306075360306.,-8769462428391064.,-.486972356515434418537,-49,53, + -5435306075360303.,-8769462428391075.,-.442285635788888719722,-49,53, + -5435306075359367.,-8769462428394494.,.499971243053684786654,-49,53, + -5435306075357532.,-8769462428401194.,-.499984485017334747598,-49,53, + -5398648100219778.,-8884648336043988.,-.499988483251404434084,-49,53, + -5398648100203470.,-8884648336086884.,-.499911638583372419086,-49,53, + -5398648100196942.,-8884648336104056.,.474366980486612052031,-49,53, + -5398648100196923.,-8884648336104106.,.497423246593393336540,-49,53, + -5398648100196877.,-8884648336104226.,-.499387898579855428784,-49,53, + -5398648100196574.,-8884648336105024.,.499877820565619250840,-49,53, + -5398648100172112.,-8884648336169367.,-.499988203331527610374,-49,53, + -5395452313016709.,-8892911218010245.,-.499460898144191510494,-49,53, + -5395452312802602.,-8892911218554234.,.499875822532029437115,-49,53, + -5395452312800601.,-8892911218559318.,.499875690915827782495,-49,53, + -5395452312799902.,-8892911218561093.,-.470139321084956265653,-49,53, + -5395452312799889.,-8892911218561126.,-.499624578689009748650,-49,53, + -5357868470800801.,-8968519267458218.,-.499996836888239456044,-49,53, + -5357868470792948.,-8968519267469850.,-.438586140646419340844,-49,53, + -5357868470792925.,-8968519267469885.,.493594231968183299413,-49,53, + -5357868470792898.,-8968519267469924.,-.499063591465137419697,-49,53, + -5357868470792765.,-8968519267470121.,-.499933610298534834663,-49,53, + -5357868470790450.,-8968519267473551.,.499960502978098028176,-49,53, + -5340868642043066.,-8989606842014815.,-.499999606249011855862,-49,53, + -5340868642030617.,-8989606842027258.,-.499986533386520437516,-49,53, + -5340868642026467.,-8989606842031406.,-.499820542926501626672,-49,53, + -5340868642025315.,-8989606842032558.,.055406343945863594695,-49,53, + -5340868642025143.,-8989606842032730.,.138304805979612399251,-49,53, + -5340868642024431.,-8989606842033442.,.481465890302086544647,-49,53, + -5340868642024393.,-8989606842033480.,.499780667678571738480,-49,53, + -5334469363661483.,-8995422095929971.,.499991330417515551529,-49,53, + -5334469363657078.,-8995422095933574.,.499972314418460344339,-49,53, + -5334469363655606.,-8995422095934777.,-.499125858276169138349,-49,53, + -5334469363655238.,-8995422095935078.,-.498900391839954185365,-49,53, + -5334469363655194.,-8995422095935114.,-.488003868421824861055,-49,53, + -5334469363608255.,-8995422095973507.,-.499974553258696882268,-49,53, + -5325827369854858.,-9001430484576457.,-.499978932024103562786,-49,53, + -5325827369851157.,-9001430484578577.,.498588914525191054123,-49,53, + -5325827369851075.,-9001430484578623.,-.450375532996645442735,-49,53, + -5325827369851047.,-9001430484578639.,-.481729246740848212536,-49,53, + -5325827369851033.,-9001430484578647.,-.497406103604598966554,-49,53, + -5325827369850392.,-9001430484579015.,.499103527382061457399,-49,53, + -5325827369849117.,-9001430484579745.,.499961252415605537874,-49,53, + -5325827369837380.,-9001430484586464.,-.499983936534138502245,-49,53, + -5325827369802424.,-9001430484606478.,-.499967915403559963284,-49,53, + -5317788020389720.,-9005115384474773.,-.469405292803159803200,-49,53, + -5317788020389717.,-9005115384474775.,.498138669155270831288,-49,53, + -5317788020389255.,-9005115384474934.,.499908813805800149930,-49,53, + -5317788020385835.,-9005115384476110.,-.499974342363072689729,-49,53, + -5317788020377362.,-9005115384479026.,-.499975829452676518706,-49,53, + -5317788020326524.,-9005115384496522.,-.499941912586865188968,-49,53, + -5307605800725736.,-9007146458554139.,-.499983100070207691283,-49,53, + -5307605800692185.,-9007146458555978.,.497072310219736826585,-49,53, + -5307605800692039.,-9007146458555986.,.498847888759093886779,-49,53, + -5307605800691966.,-9007146458555990.,.499735678255960019528,-49,53, + -5307605800690816.,-9007146458556052.,-.499977206943655963314,-49,53, + -5307605800687439.,-9007146458556238.,.499996563941618267289,-49,53, + -5296649568745719.,-9006040835689554.,-.499988268608911743452,-49,53, + -5296649568728412.,-9006040835685114.,.499989709222314466920,-49,53, + -5296649568723716.,-9006040835683908.,-.499957017917248285921,-49,53, + -5296649568719020.,-9006040835682703.,-.499903118370060018466,-49,53, + -5296649568718794.,-9006040835682646.,.492007498223071093446,-49,53, + -5296649568718786.,-9006040835682643.,-.455181506472696648198,-49,53, + -5296649568718755.,-9006040835682636.,.499461100348382066635,-49,53, + -5266341419812069.,-8985218448557553.,-.487121640438567778600,-49,53, + -5266341419812052.,-8985218448557534.,-.496214739731716340002,-49,53, + -5266341419811941.,-8985218448557410.,-.496763799620859497785,-49,53, + -5266341419811275.,-8985218448556667.,.499941848380197007866,-49,53, + -5266341419807646.,-8985218448552612.,-.499990668506162832284,-49,53, + -5266341419778503.,-8985218448520056.,-.499986316203223256088,-49,53, + -5242088987197177.,-8949797280614308.,-.499987388494842763065,-49,53, + -5242088987167664.,-8949797280561082.,-.499437003604860493316,-49,53, + -5242088987167659.,-8949797280561073.,-.482054737707461214144,-49,53, + -5242088987166341.,-8949797280558697.,.499910577468736775196,-49,53, + -5242088987163522.,-8949797280553612.,-.499967692241711550386,-49,53, + -5242088987155813.,-8949797280539709.,-.499988391284647525157,-49,53, + -5208774931147703.,-8874084728900245.,-.499995083850561089536,-49,53, + -5208774931133984.,-8874084728862647.,-.499987944909544246983,-49,53, + -5208774931125068.,-8874084728838212.,-.499761804909691349076,-49,53, + -5208774931124829.,-8874084728837558.,.498561918800136275952,-49,53, + -5208774931124802.,-8874084728837484.,.494188448357449056815,-49,53, + -5208774931124748.,-8874084728837336.,.485441507533314279688,-49,53, + -5208774931124744.,-8874084728837325.,.447756548956996934831,-49,53, + -5208774931123237.,-8874084728833195.,.499948437210421229014,-49,53, + -5208774931120265.,-8874084728825049.,-.499975535746545057059,-49,53, + -5200108832537773.,-8849284081342698.,.499996044555893627766,-49,53, + -5200108832535491.,-8849284081335891.,.499982262162246920513,-49,53, + -5200108832535437.,-8849284081335729.,-.422892733556522152277,-49,53, + -5200108832535433.,-8849284081335717.,-.491253844347265930186,-49,53, + -5161411928697027.,-8713046857636093.,-.499976348663653656414,-49,53, + -5161411928697009.,-8713046857636020.,-.499820346088982580679,-49,53, + -5161411928696055.,-8713046857632151.,-.491552196884206212576,-49,53, + -5161411928695353.,-8713046857629304.,-.485468071111234097284,-49,53, + -5161411928695335.,-8713046857629231.,-.485312067708128032075,-49,53, + -5161411928690620.,-8713046857610110.,.499996908268470147535,-49,53, + -5120907462135503.,-8526376712292191.,.499328804593824328506,-49,53, + -5120907462135484.,-8526376712292093.,.496033794960664771880,-49,53, + -5120907462135408.,-8526376712291701.,.482853756525151794006,-49,53, + -5120907462135205.,-8526376712290653.,-.499719240113073285152,-49,53, + -5120907462134292.,-8526376712285945.,.499841631077771300081,-49,53, + -5120907462130044.,-8526376712264035.,.499989331062768393701,-49,53, + -5120907462089073.,-8526376712052717.,-.499973642789680456996,-49,53, + -5119822908958409.,-8520767069433470.,-.499997671298879425214,-49,53, + -5119822908932442.,-8520767069298782.,-.499117971479741855901,-49,53, + -5119822908932335.,-8520767069298228.,.498228472152504007536,-49,53, + -5119822908932319.,-8520767069298145.,.488485884310885233922,-49,53, + -5119822908932030.,-8520767069296645.,-.499989607393385367350,-49,53, + -5119304171100503.,-8518072815571934.,-.499946243072604430653,-49,53, + -5119304171098830.,-8518072815563234.,.498823313783135047983,-49,53, + -5119304171097909.,-8518072815558444.,.468857274081611625679,-49,53, + -5119304171097894.,-8518072815558366.,.481398543981998854273,-49,53, + -5119304171097874.,-8518072815558262.,.498120237191922563550,-49,53, + -5119304171094762.,-8518072815542076.,-.499984168355463252745,-49,53, + -5119304171066296.,-8518072815394029.,-.499984944054303325728,-49,53, + -5095830265870561.,-8388620033634289.,-.499923856491243597916,-49,53, + -5095830265869451.,-8388620033627821.,-.450963336167988689037,-49,53, + -5095830265869445.,-8388620033627786.,-.488536522455998794348,-49,53, + -5095830265869416.,-8388620033627618.,.496526410498719129063,-49,53, + -5095830265869283.,-8388620033626843.,.496987448127929639770,-49,53, + -5095830265868485.,-8388620033622193.,.499753683735909368082,-49,53, + -5095830265864067.,-8388620033596448.,-.499968782056927568100,-49,53, + -5095830265857573.,-8388620033558608.,.499987408663488065056,-49,53, + -5095830265792500.,-8388620033179422.,-.499927980454211662591,-49,53, + -5093481699158887.,-8374861807487900.,-.499986707523888863068,-49,53, + -5093481699127140.,-8374861807300937.,.499987174179138732823,-49,53, + -5093481699125272.,-8374861807289935.,-.499856037736199470379,-49,53, + -5093481699124604.,-8374861807286002.,.476645448480872238530,-49,53, + -5093481699124595.,-8374861807285949.,.479322863794843820113,-49,53, + -5093481699124532.,-8374861807285578.,.498064771052579976072,-49,53, + -5093481699124523.,-8374861807285524.,-.499257813616324132381,-49,53, + -5093481699124153.,-8374861807283346.,.499702596292727632987,-49,53, + -5087250947808542.,-8337655539518174.,-.499969879590333549476,-49,53, + -5087250947769274.,-8337655539280467.,.499977172203129886517,-49,53, + -5087250947761383.,-8337655539232698.,-.499926708547927089515,-49,53, + -5087250947760635.,-8337655539228170.,-.497889885842958364978,-49,53, + -5087250947759457.,-8337655539221040.,.499970273877279188476,-49,53, + -8842797190035551.,-5902350754727548.,.299073565063303663456,-50,103, + -8842797190035550.,6209697000026889.,-.401852869873393436560,-50,104, + -8842797190035549.,6056023877377218.,.149536782531650225345,-50,102, + -8842797190035467.,5864862395652467.,.033586512221700779842,-50,96, + -8842797190027264.,4555466178789299.,-.101300146498424066278,-50,89, + -5305678314032407.,6089531447489377.,.460779964990088187429,-50,89, + -5305678314021441.,7796376626376891.,-.020151907348816765519,-50,96, + -5305678314021331.,7144290154732925.,.420555860962017410920,-50,103, + -5305678314021330.,-7451636400032266.,-.317776556151927950632,-50,105, + -7074237752028441.,-6523320454730237.,.439258852050642692296,-52,105, + -7074237752028440.,4967757600021511.,-.121482295898714674744,-52,106, + -7074237752028427.,7473591819477728.,.214953678253154342761,-52,101, + -7074237752027162.,5621916272636230.,-.248320674464132499187,-52,94, + -8871213671077771.,4980479484084552.,-.439118496821854073388,-53,53, + -8871213671077765.,4980479484084557.,-.439809179342430622133,-53,53, + -8871213671077471.,4980479484084802.,-.473652622853388772137,-53,53, + -8871213671077249.,4980479484084987.,-.499207876120281459299,-53,53, + -8871213671077243.,4980479484084992.,-.499898558641050278860,-53,53, + -8871213671071451.,4980479484089818.,-.499970753054003125052,-53,53, + -8871213671068555.,4980479484092230.,.499993148967231202674,-53,53, + -8871213671041046.,4980479484115151.,.499995533757391328523,-53,53, + -8108579655011532.,5597319449067323.,-.499813007882994132845,-53,53, + -8108579655010927.,5597319449067797.,-.499351497644220381499,-53,53, + -8108579655010710.,5597319449067967.,-.485962823730020036366,-53,53, + -8108579655010673.,5597319449067996.,-.497504847072162605463,-53,53, + -8108579655010576.,5597319449068071.,.499263362003393629801,-53,53, + -8108579655009366.,5597319449069020.,-.499813617624119290108,-53,53, + -8108579654961714.,5597319449106354.,-.499827113820213005799,-53,53, + -8108579654422380.,5597319449528907.,-.499990787062857254083,-53,53, + -7881394195508072.,5773513623153388.,-.499765315987291662605,-53,53, + -7881394195507973.,5773513623153463.,.487709633853375836522,-53,53, + -7881394195507960.,5773513623153473.,.465862910095027842111,-53,53, + -7881394195507887.,5773513623153529.,.497031307451773412617,-53,53, + -7881394195507431.,5773513623153879.,.499946227918203600974,-53,53, + -7881394195497132.,5773513623161784.,.499991763195715927834,-53,53, + -7881394195493699.,5773513623164420.,-.499993060055852880585,-53,53, + -7109328173664483.,6344190727408115.,-.499983694297122957811,-53,53, + -7109328173647712.,6344190727420019.,.497818539802917511902,-53,53, + -7109328173647519.,6344190727420157.,-.499940936135642459201,-53,53, + -7109328173622976.,6344190727437579.,-.499997011479150807301,-53,53, + -7006352136001595.,6416872705785308.,.499994973603746235484,-53,53, + -7006352135984183.,6416872705797528.,-.499913590317814113136,-53,53, + -7006352135984069.,6416872705797608.,-.499568401807754483221,-53,53, + -7006352135983100.,6416872705798288.,-.496634299513749351403,-53,53, + -7006352135983043.,6416872705798328.,-.496461705263473603723,-53,53, + -7006352135983023.,6416872705798342.,-.461313426579227226264,-53,53, + -7006352135978436.,6416872705801560.,.499944288816959357696,-53,53, + -7006352135966828.,6416872705809707.,-.499994772395849636394,-53,53, + -6828286958498190.,6540569239917452.,-.499994436371831222890,-53,53, + -6828286958434528.,6540569239961222.,-.499987507465398262541,-53,53, + -6828286958433011.,6540569239962264.,.494106461580760110519,-53,53, + -6828286958433008.,6540569239962267.,-.443281618902522925575,-53,53, + -6828286958432979.,6540569239962286.,.495300269759036985088,-53,53, + -6828286958432867.,6540569239962363.,.499478598382355936557,-53,53, + -6828286958432851.,6540569239962375.,-.499924497528681052537,-53,53, + -6595469068453401.,6698437586859074.,.498527252931457556958,-53,53, + -6595469068452689.,6698437586859550.,.499182592620238626827,-53,53, + -6595469068451799.,6698437586860146.,-.499998232827644526211,-53,53, + -5574097035225108.,7336783874371503.,-.499994973756071255831,-53,53, + -5574097035223541.,7336783874372412.,-.486315165337873638205,-53,53, + -5574097035223510.,7336783874372429.,.496725086134656134686,-53,53, + -5574097035223460.,7336783874372459.,-.498371282458220906512,-53,53, + -5574097035223279.,7336783874372563.,.499379863233673660544,-53,53, + -5574097035193091.,7336783874390075.,.499996319829435180369,-53,53, + -5292230209316694.,7496675488808429.,.499903437544274136456,-53,53, + -5292230209316510.,7496675488808531.,.496291729208715072926,-53,53, + -5292230209311715.,7496675488811189.,.499997480991517031780,-53,53, + -5268565944197833.,7509767370248129.,-.499977720314518468673,-53,53, + -5268565944195426.,7509767370249458.,-.499907733924896089442,-53,53, + -5268565944193863.,7509767370250320.,.494321342949103924726,-53,53, + -5268565944193767.,7509767370250373.,.499725048239176165289,-53,53, + -5268565944184139.,7509767370255690.,-.499995013043754737680,-53,53, + -4510984822812265.,7901017689523170.,-.499998958129865614743,-53,53, + -4510984822805365.,7901017689526482.,.499991103390438942841,-53,53, + -4510984822793529.,7901017689532165.,.495336363339143936931,-53,53, + -4510984822793527.,7901017689532166.,.455626215527911425425,-53,53, + -4510984822793504.,7901017689532177.,.498959515698709544180,-53,53, + -4510984822793227.,7901017689532310.,.499104043838623042939,-53,53, + -4510984822791565.,7901017689533108.,.499971212521182580388,-53,53, + -8644717199292641.,7989846539598089.,-.499999431216378810018,-54,53, + -8644717199271769.,7989846539602907.,-.499987542780286878034,-54,53, + -8644717199269447.,7989846539603443.,-.499794576552293176867,-54,53, + -8644717199267610.,7989846539603867.,-.454852940573638477463,-54,53, + -8644717199267606.,7989846539603867.,.468489338437656072914,-54,53, + -8644717199267463.,7989846539603900.,.477975813091177473886,-54,53, + -8644717199267138.,7989846539603975.,.499535982756399169196,-54,53, + -8644717199267125.,7989846539603979.,-.499601610457046054484,-54,53, + -7492339963739262.,8239332622016390.,-.499999249468614221349,-54,53, + -7492339963737173.,8239332622016812.,-.499990638865657978981,-54,53, + -7492339963691215.,8239332622026096.,-.499801233632350886081,-54,53, + -7492339963682958.,8239332622027764.,-.498809814122359986744,-54,53, + -7492339963682953.,8239332622027765.,-.488757136746409903912,-54,53, + -7492339963682933.,8239332622027769.,-.448546427242615919937,-54,53, + -7492339963682859.,8239332622027784.,-.499766802078666483575,-54,53, + -7298995560589922.,8277914929044471.,.499945474530384980175,-54,53, + -7298995560588410.,8277914929044770.,-.499829888070591586419,-54,53, + -7298995560586898.,8277914929045068.,-.499605250729883788079,-54,53, + -7298995560586558.,8277914929045135.,-.488972726468178939030,-54,53, + -7298995560586553.,8277914929045135.,.496477751829765307846,-54,53, + -7298995560586416.,8277914929045162.,.497820857193189553062,-54,53, + -7298995560563117.,8277914929049754.,.499959622947379071142,-54,53, + -7298995560491637.,8277914929063842.,.499997262456225732909,-54,53, + -4924871031073739.,8672693674275916.,-.499995680032431677419,-54,53, + -4924871031067124.,8672693674276809.,-.499743281199582048857,-54,53, + -4924871031066998.,8672693674276826.,-.490214664090305910187,-54,53, + -4924871031066983.,8672693674276828.,-.465270781101134631346,-54,53, + -4924871031066961.,8672693674276831.,-.495353086050360966040,-54,53, + -4924871031066924.,8672693674276835.,.499508491989547391855,-54,53, + -4924871031065761.,8672693674276993.,-.499842446936846573216,-54,53, + -4924871031063035.,8672693674277360.,.499959221439678859176,-54,53, + -4517699360174536.,8725440404889839.,.499712534411703952783,-54,53, + -4517699360174439.,8725440404889852.,-.464418642011375210205,-54,53, + -4517699360174423.,8725440404889854.,-.479120691730670306131,-54,53, + -4517699360174399.,8725440404889856.,.498826233690374144058,-54,53, + -4517699360173448.,8725440404889974.,.499973153486795176270,-54,53, + -4517699360165558.,8725440404890954.,-.499975115386030371026,-54,53, + -4517699360069653.,8725440404902854.,-.499980157480245069430,-54,53, + -4514338150915835.,8725857315620238.,-.499998195804719285186,-54,53, + -4514338150834587.,8725857315630312.,-.499886776823528348323,-54,53, + -4514338150834337.,8725857315630342.,.497799662627162788812,-54,53, + -4514338150834321.,8725857315630344.,.481651594751949802597,-54,53, + -4514338150834305.,8725857315630346.,.465503526876729932895,-54,53, + -4514338150834216.,8725857315630358.,-.499320100679306229421,-54,53, + -4514338150831119.,8725857315630742.,-.499980488913579737625,-54,53, + -8341071156545802.,8766893993028302.,-.499998774475069637472,-55,53, + -8341071156517142.,8766893993029945.,.499920105117363788197,-55,53, + -8341071156515451.,8766893993030042.,.499357049305208686896,-55,53, + -8341071156515242.,8766893993030054.,.488051503079893499965,-55,53, + -8341071156515207.,8766893993030056.,.495727607778974558295,-55,53, + -8341071156514928.,8766893993030072.,.499774270951353445046,-55,53, + -8341071156512191.,8766893993030230.,-.499954341611285430152,-55,53, + -8341071156497861.,8766893993031052.,-.499994904374552700605,-55,53, + -6979532375142631.,8838716947100428.,-.498781524317542934437,-55,53, + -6979532375142589.,8838716947100430.,-.477410180037780994742,-55,53, + -6979532375142569.,8838716947100430.,.485147602952577612043,-55,53, + -6979532375142548.,8838716947100431.,.495833275092451217849,-55,53, + -6979532375142070.,8838716947100455.,-.499035711438856862427,-55,53, + -6979532375140013.,8838716947100554.,-.499967730902008869177,-55,53, + -6979532375128128.,8838716947101125.,.499994810430033050129,-55,53, + -5360050516030903.,8907705263534355.,.499997047451685846825,-55,53, + -5360050515985431.,8907705263536041.,-.499751087237193129563,-55,53, + -5360050515985242.,8907705263536048.,-.496209400018743093664,-55,53, + -5360050515984594.,8907705263536072.,-.484066472414489643777,-55,53, + -5360050515984541.,8907705263536073.,.479889662096224597052,-55,53, + -5360050515984540.,8907705263536074.,-.483054561780931923307,-55,53, + -5360050515983461.,8907705263536114.,-.499872125236815747601,-55,53, + -5360050515981491.,8907705263536187.,-.499993163263070058162,-55,53, + -5003579018621659.,8920478380128898.,-.499983338936914132563,-55,53, + -5003579018618625.,8920478380129003.,-.499896866294179267841,-55,53, + -5003579018617527.,8920478380129040.,.499475232227384847627,-55,53, + -5003579018617065.,8920478380129056.,.488282071493544689674,-55,53, + -5003579018617064.,8920478380129057.,-.477110121495058286837,-55,53, + -5003579018617007.,8920478380129058.,.495534878154560692459,-55,53, + -5003579018616978.,8920478380129059.,.499161281485060024714,-55,53, + -5003579018599323.,8920478380129670.,.499994066618003616734,-55,53, + -5370993780293361.,9000944658218959.,-.499134739215850568186,-57,53, + -5370993780293333.,9000944658218959.,-.433929513239213641256,-57,53, + -5370993780293191.,9000944658218959.,-.103245867214845885573,-57,53, + -5370993780292932.,9000944658218959.,.499902473069013642487,-57,53, + -5370993780287779.,9000944658218971.,.499992810834121738788,-57,53, + -5370993780243120.,9000944658219075.,.499999484959489294090,-57,53, + -4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,52, + 0.,4503599627370496.,0.000000000000000000000,0,52, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,52, + 4503599627370497.,4503599627370496.,0.000000000000000000000,-1074,52, + 6175493946455440.,8974141159618414.,.499980614265437480766,-56,53, + 6175493946638156.,8974141159616459.,.499961652725562924268,-56,53, + 6175493946646287.,8974141159616373.,-.499015746195741616170,-56,53, + 6175493946646293.,8974141159616372.,.436786262856789329398,-56,53, + 6175493946646474.,8974141159616371.,-.499853130725223062452,-56,53, + 6175493946648904.,8974141159616344.,.499960535543934223295,-56,53, + 6823990675654734.,8966839129391625.,-.499995957505904300940,-56,53, + 6823990675705326.,8966839129391027.,-.499985876121445241151,-56,53, + 6823990675705749.,8966839129391022.,-.499867196024138673920,-56,53, + 6823990675709133.,8966839129390982.,-.498917755256810190352,-56,53, + 6823990675709387.,8966839129390978.,.498789442719608649723,-56,53, + 6823990675709458.,8966839129390978.,-.340434135798813882663,-56,53, + 6823990675709471.,8966839129390978.,-.494094791020497824465,-56,53, + 8359220028898524.,8946658940994709.,.499994691723876977321,-56,53, + 8359220028903293.,8946658940994641.,-.499958204575632171316,-56,53, + 8359220028906265.,8946658940994597.,.499861462462181683062,-56,53, + 8359220028906680.,8946658940994591.,.495462122562145928053,-56,53, + 8359220028906691.,8946658940994591.,.336309368974430099817,-56,53, + 8359220028906749.,8946658940994590.,.497140304602834103090,-56,53, + 8359220028906818.,8946658940994589.,.498818486643514074621,-56,53, + 8359220028920572.,8946658940994391.,-.499997226744740710303,-56,53, + 8513798801039178.,8944401844284509.,.499994804514098621721,-56,53, + 8513798801076369.,8944401844283961.,.499991578305325515021,-56,53, + 8513798801078405.,8944401844283932.,-.499954821929124408851,-56,53, + 8513798801092657.,8944401844283722.,-.499579623770216490470,-56,53, + 8513798801093464.,8944401844283710.,-.390521050603990007624,-56,53, + 8513798801093471.,8944401844283710.,-.493664284789665813313,-56,53, + 8513798801093675.,8944401844283707.,-.499552823915112082094,-56,53, + 6216155809168802.,8873469994908128.,.499992967026694925140,-55,53, + 6216155809171761.,8873469994908002.,-.499009282065491038391,-55,53, + 6216155809171831.,8873469994907998.,.496620945227987359835,-55,53, + 6216155809172227.,8873469994907982.,-.499528054655251291072,-55,53, + 6216155809172693.,8873469994907961.,.499953172753504005490,-55,53, + 7082784227659783.,8833711364495192.,-.499568503211457175263,-55,53, + 7082784227659947.,8833711364495183.,.492189689603908055673,-55,53, + 7082784227659967.,8833711364495183.,-.484425164930816023178,-55,53, + 7082784227660766.,8833711364495143.,.499811396404730415624,-55,53, + 7082784227663674.,8833711364495002.,-.499988452988934624289,-55,53, + 7082784227673381.,8833711364494527.,.499991898016579326291,-55,53, + 5299073463163608.,8620310342980224.,.499997852846007885901,-54,53, + 5299073463175390.,8620310342978516.,.499967938831141728871,-54,53, + 5299073463177625.,8620310342978192.,.498943761040818903798,-54,53, + 5299073463177632.,8620310342978191.,.484175452653795132180,-54,53, + 5299073463177653.,8620310342978188.,.439870527492716007691,-54,53, + 5299073463177963.,8620310342978144.,-.499868843934100569077,-54,53, + 5354986034429484.,8612163362402896.,-.499999006973672269853,-54,53, + 5354986034436360.,8612163362401888.,.499985177173161995777,-54,53, + 5354986034456551.,8612163362398931.,.499211560571350384043,-54,53, + 5354986034456708.,8612163362398909.,-.493662564467646311816,-54,53, + 5354986034456749.,8612163362398903.,-.498171093936536607309,-54,53, + 5354986034456988.,8612163362398867.,.499937722085385650645,-54,53, + 6318840445905580.,8458748555548300.,-.499998150703098989328,-54,53, + 6318840445917832.,8458748555546195.,-.499990425979551040297,-54,53, + 6318840445926225.,8458748555544753.,-.490272436595216198137,-54,53, + 6318840445926237.,8458748555544750.,.448023359408784701137,-54,53, + 6318840445926260.,8458748555544746.,.496423635083109266702,-54,53, + 6318840445926324.,8458748555544736.,-.499332119562321030339,-54,53, + 6318840445926551.,8458748555544697.,-.499903311821192520561,-54,53, + 6318840445930084.,8458748555544090.,-.499982705168739214721,-54,53, + 7852441927956899.,8164946965261932.,-.499995439991152204102,-54,53, + 7852441927993003.,8164946965254310.,-.499981866514045928368,-54,53, + 7852441928002074.,8164946965252394.,.499966143094060337265,-54,53, + 7852441928002164.,8164946965252375.,.499855385820401831582,-54,53, + 7852441928002183.,8164946965252371.,.488720892618158982566,-54,53, + 7852441928002202.,8164946965252367.,.477586399415907050723,-54,53, + 8717776617214453.,7972916165092408.,.499998567756046446767,-54,53, + 8717776617231669.,7972916165088404.,-.499989883242905878538,-54,53, + 8717776617235426.,7972916165087529.,.499954550593806673249,-54,53, + 8717776617241083.,7972916165086213.,.498273863810859544268,-54,53, + 8717776617241169.,7972916165086193.,.491884516259568164230,-54,53, + 8717776617241212.,7972916165086183.,.488689842483854333630,-54,53, + 8717776617241371.,7972916165086147.,-.499867207059296003246,-54,53, + 6059040276407515.,7044974147493788.,-.499942903692435124932,-53,53, + 6059040276408563.,7044974147493135.,-.499441621004516845745,-53,53, + 6059040276408600.,7044974147493111.,.446186763974134199815,-53,53, + 6059040276408624.,7044974147493096.,.491999770446709151893,-53,53, + 6059040276431351.,7044974147478936.,-.499991997744301530071,-53,53, + 6059040276437310.,7044974147475222.,.499995721033934272631,-53,53, + 6179968525077666.,6968992172820628.,-.494691365460923392907,-53,53, + 6179968525077674.,6968992172820622.,.437023989551491318373,-53,53, + 6179968525077696.,6968992172820608.,.499241215835603427570,-53,53, + 6179968525077857.,6968992172820507.,-.499987264541023383031,-53,53, + 6179968525106370.,6968992172802443.,-.499997616294201957005,-53,53, + 6230674196569882.,6936758069200665.,.499999036377379258519,-53,53, + 6230674196575753.,6936758069196921.,-.499990960141874334446,-53,53, + 6230674196597141.,6936758069183277.,.498853156382439224693,-53,53, + 6230674196597500.,6936758069183048.,.499535082261140476892,-53,53, + 6230674196599237.,6936758069181941.,-.499950975690315950806,-53,53, + 7511273082065431.,6052646552911474.,-.499996349337151760504,-53,53, + 7511273082104802.,6052646552882317.,-.498111420135262638341,-53,53, + 7511273082104879.,6052646552882259.,.477966026083720610171,-53,53, + 7511273082104883.,6052646552882257.,-.484315665021798839493,-53,53, + 7511273082105014.,6052646552882160.,-.499041048728220507404,-53,53, + 7511273082105226.,6052646552882003.,-.499970677324531406900,-53,53, + 7511273082106313.,6052646552881197.,.499979764678505033907,-53,53, + 7913137471602467.,5749113260345063.,-.499945988545028427727,-53,53, + 7913137471603540.,5749113260344236.,.499867451514587128138,-53,53, + 7913137471605017.,5749113260343099.,.498678682479044251605,-53,53, + 7913137471605030.,5749113260343089.,.491220690604653094721,-53,53, + 7913137471605282.,5749113260342896.,-.499503459578218533273,-53,53, + 7913137471613462.,5749113260336599.,-.499993733831159354538,-53,53, + 7913137471656369.,5749113260303569.,-.499998236603440775466,-53,53, + 8575032706751930.,5224526006372805.,.499987260912338596802,-53,53, + 8575032706796005.,5224526006336902.,.499875513169642485143,-53,53, + 8575032706796663.,5224526006336367.,-.499536252497664000696,-53,53, + 8575032706796992.,5224526006336099.,-.499242135341772878520,-53,53, + 8575032706797143.,5224526006335975.,.497853340918931539578,-53,53, + 8575032706797170.,5224526006335954.,-.496043494451825728293,-53,53, + 8575032706802887.,5224526006331296.,.499948807653069450912,-53,53, + 8575032706806328.,5224526006328493.,.499985453751041223846,-53,53, + 8668443273557279.,5148155223730678.,.499998140442116360850,-53,53, + 8668443273583232.,5148155223709382.,.499995759613253377308,-53,53, + 8668443273587016.,5148155223706278.,-.499966059895603231010,-53,53, + 8668443273592979.,5148155223701384.,.499301292982493919515,-53,53, + 8668443273592990.,5148155223701375.,.473138613269132589162,-53,53, + 8668443273593514.,5148155223700945.,.499570961460116418957,-53,53, + 8668443273594049.,5148155223700506.,.499840629919576249889,-53,53, + 9007199254740714.,4866610526750582.,-.499894891792151089861,-53,53, + 9007199254740796.,4866610526750512.,.499484353961501124901,-53,53, + 9007199254740960.,4866610526750374.,.498242845467595524781,-53,53, + 9007199254740991.,4866610526750348.,.412642316422834501191,-53,53, + 4503599627370497.,4866610526750346.,-.111770638000855108745,-52,53, + 4503599627370499.,4866610526750343.,-.477654577232442095125,-52,53, + 4503599627371975.,4866610526747858.,.499998269594641398379,-52,53, + 4716158501352257.,4503599627370559.,.249606424997051310592,-52,53, + 4716158501352285.,4503599627370511.,-.247816186931372913280,-52,53, + 4716158501352293.,4503599627370497.,-.104222647482383237381,-52,53, + 4716158501352294.,9007199254740990.,.327453089897478945812,-52,54, + 4716158501352298.,9007199254740976.,.471046629346456187213,-52,54, + 4716158501352647.,9007199254739767.,.499582946242365270287,-52,54, + 4716158501353037.,9007199254738416.,.499953042423081950572,-52,54, + 4716158501363901.,9007199254700783.,-.499993843936894693633,-52,54, + 5936267049074696.,4503599627571880.,-.499997367017680797403,-52,54, + 5936267049126692.,4503599627370500.,-.142066467696419649319,-52,54, + 5936267049126693.,4503599627370496.,-.015049813903836424339,-52,54, + 5936267049126697.,9007199254740961.,-.013966397467011489729,-52,55, + 5936267049126886.,9007199254739497.,-.001671263878861800416,-52,55, + 5936267049128374.,9007199254727971.,-.000109577770688707063,-52,55, + 5936267049136184.,9007199254667475.,.000022643003422347648,-52,55, + 6509811378272144.,4503599627439110.,-.249997780118934708626,-52,55, + 6509811378278240.,4503599627390724.,.250025478223705568127,-52,55, + 6509811378280272.,4503599627374596.,-.249966770829069345247,-52,55, + 6509811378280782.,4503599627370548.,-.249472699623057574383,-52,55, + 6509811378280788.,4503599627370500.,.127003701214316486108,-52,55, + 6509811378280789.,9007199254740984.,.379499536041089438067,-52,56, + 6509811378280790.,9007199254740969.,-.495008330346454540170,-52,56, + 6755399441055675.,5097152561151476.,.499890228625902989898,-52,56, + 6755399441055725.,5097152561150679.,-.496099054617088883628,-52,56, + 6755399441055743.,5097152561150391.,.225344803415280240780,-52,56, + 6755399441055745.,5097152561150359.,.305505232085538450645,-52,56, + 6755399441055750.,5097152561150280.,-.494093696238820422601,-52,56, + 6755399441056174.,5097152561143512.,.499917181832691073045,-52,56, + 6755399441057671.,5097152561119620.,.499998041077598132828,-52,56, + 7074237752027162.,5621916272636230.,-.248320674464132499187,-52,94, + 7074237752028427.,7473591819477728.,.214953678253154342761,-52,101, + 7074237752028440.,4967757600021511.,-.121482295898714674744,-52,106, + 7074237752028441.,-6523320454730237.,.439258852050642692296,-52,105, + 9007199254738950.,-7496634952013058.,.499976280962287797933,-52,54, + 9007199254740160.,-7496634952017458.,-.499569555979789288243,-52,54, + 9007199254740991.,-7496634952020481.,-.004216324673671969741,-52,54, + 4503599627370497.,-7496634952020492.,.084214553418148239926,-51,54, + 4503599627370499.,-7496634952020506.,-.464544275792752972608,-51,54, + 4503599627370510.,-7496634952020586.,-.482717836452603932331,-51,54, + 4503599627370521.,-7496634952020667.,.499108602887724000464,-51,54, + 4503599627371731.,-7496634952029468.,-.499983068584064572194,-51,54, + 4503599627420153.,-7496634952381708.,-.499995272189244874831,-51,54, + 5305678314021330.,-7451636400032266.,-.317776556151927950632,-50,105, + 5305678314021331.,7144290154732925.,.420555860962017410920,-50,103, + 5305678314021441.,7796376626376891.,-.020151907348816765519,-50,96, + 5305678314032407.,6089531447489377.,.460779964990088187429,-50,89, + 5888592265910880.,8915511257182149.,-.499989485657095355496,-50,54, + 5888592265916226.,8915511257256475.,-.499801495076848792141,-50,54, + 5888592265916391.,8915511257258769.,-.487450017083751323064,-50,54, + 5888592265916453.,8915511257259631.,-.494930067826746004861,-50,54, + 5888592265916484.,8915511257260062.,-.498670093208381556932,-50,54, + 5888592265917031.,8915511257267666.,.499852683623203651954,-50,54, + 5888592265919704.,8915511257304829.,.499946588403270410619,-50,54, + 5888592265974516.,8915511258066886.,.499990543315280991155,-50,54, + 5943141639570529.,4831579172342506.,-.499995450296185665065,-50,53, + 5943141639572961.,4831579172358926.,-.499943363518053798370,-50,53, + 5943141639583905.,4831579172432816.,-.499709251989274204798,-50,53, + 5943141639584308.,4831579172435536.,.413128307547815990464,-50,53, + 5943141639584348.,4831579172435806.,.478918636004080363615,-50,53, + 5943141639584360.,4831579172435887.,.498655734539770505058,-50,53, + 5943141639584513.,4831579172436921.,-.499696259178290142426,-50,53, + 6303973650789296.,6980290702775172.,-.499995704944509991096,-50,53, + 6303973650793010.,6980290702793950.,-.499936958091223024474,-50,53, + 6303973650800438.,6980290702831506.,-.499819692250370034652,-50,53, + 6303973650801384.,6980290702836288.,.480270610856273827054,-50,53, + 6303973650801420.,6980290702836470.,.496426267113951017086,-50,53, + 6303973650801545.,6980290702837102.,.496966740175476765369,-50,53, + 6303973650802170.,6980290702840262.,.499669104192524621814,-50,53, + 6334420038467537.,7131656960748890.,.499998754231239671472,-50,53, + 6334420038482289.,7131656960820977.,-.499964200508524244873,-50,53, + 6334420038486783.,7131656960842937.,-.461721054338422502297,-50,53, + 6334420038486801.,7131656960843024.,.495708490744884302080,-50,53, + 6334420038486845.,7131656960843240.,-.497241510170261661526,-50,53, + 6334420038488255.,7131656960850130.,-.498593817990729079989,-50,53, + 6334420038489665.,7131656960857020.,-.499946136996019194321,-50,53, + 6356542733724269.,7238376434884447.,-.499997834673864984040,-50,53, + 6356542733729297.,7238376434908385.,.455920939758078983195,-50,53, + 6356542733729301.,7238376434908405.,-.499563611791485875443,-50,53, + 6356542733730222.,7238376434912790.,-.499881608511071200651,-50,53, + 6423340662144404.,7543488110061078.,.499949600411670118011,-50,53, + 6423340662145311.,7543488110065044.,-.499871934240470675108,-50,53, + 6423340662145529.,7543488110065996.,.499068423845509760395,-50,53, + 6423340662145564.,7543488110066150.,-.496514546212904603435,-50,53, + 6423340662167044.,7543488110160050.,.499992740030903284496,-50,53, + 6423340662172704.,7543488110184794.,-.499996951654935045164,-50,53, + 6559287226826371.,8081420299253149.,.499993568126989964875,-50,53, + 6559287226831569.,8081420299271513.,-.499986548308910726358,-50,53, + 6559287226841965.,8081420299308239.,-.499947297932434476039,-50,53, + 6559287226846735.,8081420299325090.,-.497620939040264720912,-50,53, + 6559287226846780.,8081420299325248.,.474099120258619862992,-50,53, + 6559287226846795.,8081420299325301.,.464672473355379255187,-50,53, + 6559287226846842.,8081420299325468.,-.498197686950729860725,-50,53, + 6559287226847163.,8081420299326602.,-.499927931120057535270,-50,53, + 6787616684062296.,8716910812522312.,-.499997077146924441241,-50,53, + 6787616684083950.,8716910812565937.,-.499912100469550936305,-50,53, + 6787616684084084.,8716910812566206.,.461758314673512931906,-50,53, + 6787616684084087.,8716910812566213.,-.494323690959025610277,-50,53, + 6787616684087707.,8716910812573506.,-.499943865981951184106,-50,53, + 6787616684095221.,8716910812588643.,.499992311809802599552,-50,53, + 6935652144155911.,8939052045724164.,-.499992655963027759031,-50,53, + 6935652144171488.,8939052045739464.,-.376151493991376251645,-50,53, + 6935652144171495.,8939052045739470.,.499425759789356814998,-50,53, + 6935652144171720.,8939052045739692.,-.499876797442557452833,-50,53, + 6935652144174533.,8939052045742454.,.499953868011036710655,-50,53, + 6935652144197487.,8939052045765000.,.499991986980909685691,-50,53, + 7035360541751570.,9001830083644943.,-.499992743391540144256,-50,53, + 7035360541758855.,9001830083646955.,-.497347124864300002697,-50,53, + 7035360541758960.,9001830083646984.,-.497995337647475469956,-50,53, + 7035360541759275.,9001830083647071.,-.499939976466745711184,-50,53, + 7035360541788596.,9001830083655168.,.499997399106978175170,-50,53, + 7267327859843178.,8875064959885365.,-.499975099447611827393,-50,53, + 7267327859845182.,8875064959882628.,.494541806237694222215,-50,53, + 7267327859845193.,8875064959882613.,.476547637478735433768,-50,53, + 7267327859845234.,8875064959882558.,-.499612446084846957244,-50,53, + 7267327859845401.,8875064959882329.,.499930628058964653734,-50,53, + 7267327859854126.,8875064959870418.,-.499989871641947731339,-50,53, + 7267327859865074.,8875064959855470.,.499994517009943381560,-50,53, + 7594079014299993.,8064066578753856.,-.499987222483264348986,-50,53, + 7594079014301011.,8064066578750228.,-.499777664694898663708,-50,53, + 7594079014301286.,8064066578749247.,.441339847329129534900,-50,53, + 7594079014301293.,8064066578749222.,.494386474901644251644,-50,53, + 7594079014301520.,8064066578748414.,-.499672888272903069960,-50,53, + 7594079014319014.,8064066578686067.,.499997934588758499595,-50,53, + 7661357941749023.,7810044139631645.,.499993946868600951933,-50,53, + 7661357941793422.,7810044139454705.,.499958778211925806023,-50,53, + 7661357941794437.,7810044139450660.,.496691992907766101492,-50,53, + 7661357941794442.,7810044139450641.,-.429432474030625136334,-50,53, + 7661357941794505.,7810044139450390.,-.498600757467551677389,-50,53, + 7661357941794911.,7810044139448772.,-.499907473536541155668,-50,53, + 7661357941808718.,7810044139393747.,.499988895432138815269,-50,53, + 8127402278516509.,5345756049678164.,.486753096792763327567,-50,53, + 8127402278516518.,5345756049678107.,-.461392605369364392933,-50,53, + 8127402278516550.,5345756049677901.,-.499243990837473789176,-50,53, + 8127402278516762.,5345756049676535.,.499990580327231473732,-50,53, + 8127402278525903.,5345756049617680.,-.499994434770579598919,-50,53, + 8134778399506190.,5298149166981120.,-.499994606724896524397,-50,53, + 8134778399512961.,5298149166937313.,.499920433060031232011,-50,53, + 8134778399523933.,5298149166866329.,-.499774580688428206862,-50,53, + 8134778399524065.,5298149166865475.,-.493573320701380318272,-50,53, + 8134778399524246.,5298149166864303.,.499778406889741632256,-50,53, + 8134778399541989.,5298149166749512.,.499997093948912017506,-50,53, + 8241843578480430.,4582581723924930.,.499989537480999766517,-50,53, + 8241843578530734.,4582581723578475.,.499986467819752400134,-50,53, + 8241843578536285.,4582581723540245.,-.489697160342574044300,-50,53, + 8241843578536303.,4582581723540121.,-.459759186340177838308,-50,53, + 8241843578536347.,4582581723539818.,-.497688583228140221463,-50,53, + 8241843578536480.,4582581723538902.,-.498702442045668012899,-50,53, + 8241843578536613.,4582581723537986.,-.499716300927141885451,-50,53, + 8241843578537615.,4582581723531085.,-.499835751097331095368,-50,53, + 8241843578538617.,4582581723524184.,-.499955204897014410304,-50,53, + 8394820555893933.,6979998458230342.,-.475157003963446126065,-50,54, + 8394820555893937.,6979998458230283.,-.475685561867645536596,-50,54, + 8394820555894053.,6979998458228572.,-.491013741127751927385,-50,54, + 8394820555894121.,6979998458227569.,-.499999225556054484723,-50,54, + 8556480067977912.,4531857903255844.,.499997425465438697649,-50,54, + 8556480068000529.,4531857902905610.,.499994345973347390887,-50,54, + 8556480068007496.,4531857902797724.,-.499962756537862590631,-50,54, + 8556480068009173.,4531857902771754.,.431725453389287399238,-50,54, + 8556480068009177.,4531857902771692.,.490000201641852965275,-50,54, + 8556480068009212.,4531857902771150.,.499904248849361726831,-50,54, + 8577884292740019.,8399210624529380.,-.499982582859540380426,-50,55, + 8577884292743637.,8399210624416793.,.499881960671732948775,-50,55, + 8577884292744085.,8399210624402853.,-.497370860315404814938,-50,55, + 8577884292744119.,8399210624401794.,.480516202323243744541,-50,55, + 8577884292744178.,8399210624399959.,-.499032718410220485423,-50,55, + 8577884292755666.,8399210624042471.,.499983767786979269476,-50,55, + 8577884292814636.,8399210622207425.,.499970193697930494481,-50,55, + 8664382762861490.,5685397639852668.,-.499965234530778914165,-50,55, + 8664382762862348.,5685397639825556.,-.499789895842625443140,-50,55, + 8664382762866638.,5685397639689996.,-.498913251927157890791,-50,55, + 8664382762866755.,5685397639686298.,.410201564477900547070,-50,55, + 8664382762866800.,5685397639684876.,.452168801540421396018,-50,55, + 8664382762866850.,5685397639683296.,.498799064932570492962,-50,55, + 8664382762884222.,5685397639134358.,-.499982900801122125536,-50,55, + 8664382762906954.,5685397638416047.,.499997115338722077577,-50,55, + 8714420965773350.,8198287341330705.,.499997313412407829655,-50,56, + 8714420965789299.,8198287340316598.,-.499978460033927159971,-50,56, + 8714420965791970.,8198287340146763.,.499900036684665937094,-50,56, + 8714420965793267.,8198287340064295.,-.499784588626728894511,-50,56, + 8714420965793344.,8198287340059398.,.499463124100565285240,-50,56, + 8714420965793356.,8198287340058635.,.486358871535131614738,-50,56, + 8714420965793373.,8198287340057555.,-.448872152934160276654,-50,56, + 8842797190027264.,4555466178789299.,-.101300146498424066278,-50,89, + 8842797190035467.,5864862395652467.,.033586512221700779842,-50,96, + 8842797190035549.,6056023877377218.,.149536782531650225345,-50,102, + 8842797190035550.,6209697000026889.,-.401852869873393436560,-50,104, + 8842797190035551.,-5902350754727548.,.299073565063303663456,-50,103, + 8893762581697263.,-6521342514504292.,-.496136193797772982290,-50,57, + 8893762581697286.,-6521342514507233.,-.480459239911612638448,-50,57, + 8893762581697385.,-6521342514519892.,-.499936699240116106536,-50,57, + 8893762581712120.,-6521342516404040.,-.499939805750133429388,-50,57, + 8893762581916305.,-6521342542512948.,-.499867874580782219840,-50,57, + 8897696383632451.,-7024312548405725.,.499989349130554346730,-50,57, + 8897696383645525.,-7024312550077208.,.499929889317080082162,-50,57, + 8897696383648003.,-7024312550394015.,.487986647350857136273,-50,57, + 8897696383648036.,-7024312550398233.,-.491591289055916464294,-50,57, + 8897696383648220.,-7024312550421757.,-.498934934364877973051,-50,57, + 8897696383648266.,-7024312550427639.,.499229154337194627157,-50,57, + 8897696383649883.,-7024312550634369.,.499910279858224701441,-50,57, + 8897696383680928.,-7024312554603405.,-.499996903475605308355,-50,57, + 4602893741348662.,-5707753262384314.,-.499993981356542122424,-49,54, + 4602893741359784.,-5707753262721882.,.499969412755585412936,-49,54, + 4602893741361418.,-5707753262771476.,.499065103599729619993,-49,54, + 4602893741361438.,-5707753262772083.,.473350240872459710912,-49,54, + 4602893741361455.,-5707753262772598.,-.498507392440055411563,-49,54, + 4602893741361845.,-5707753262784435.,-.499947214062470100797,-49,54, + 4612325947556685.,-5993218307220380.,-.499990818449235719917,-49,54, + 4612325947563820.,-5993218307435694.,-.499924861536264427324,-49,54, + 4612325947564819.,-5993218307465841.,-.477631036844581735295,-49,54, + 4612325947564853.,-5993218307466868.,.499103688251800438082,-49,54, + 4612325947565282.,-5993218307479814.,.499668309728413291697,-49,54, + 4612325947569064.,-5993218307593944.,.499984074362054963256,-49,54, + 4612325947600957.,-5993218308556383.,-.499986478272771133225,-49,54, + 4738648571780447.,-4811554825022853.,-.499839905135293000747,-49,53, + 4738648571782189.,-4811554825046415.,-.499482498716245743933,-49,53, + 4738648571782402.,-4811554825049297.,.498264994437568241884,-49,53, + 4738648571782440.,-4811554825049810.,-.483357518448500486688,-49,53, + 4738648571782459.,-4811554825050067.,-.474168774883313478500,-49,53, + 4738648571785344.,-4811554825089089.,-.499983175200797318142,-49,53, + 4738648571869251.,-4811554826224001.,-.499930972494587657222,-49,53, + 4830666052070598.,-5986498839198442.,-.499985615581450852897,-49,53, + 4830666052083245.,-5986498839349634.,.499990212711514301072,-49,53, + 4830666052095892.,-5986498839500825.,.499969062405452133212,-49,53, + 4830666052096201.,-5986498839504519.,.499889513324026171438,-49,53, + 4830666052096377.,-5986498839506623.,.473954236983551748150,-49,53, + 4830666052096378.,-5986498839506634.,-.480738577084892813529,-49,53, + 4830666052096466.,-5986498839507686.,-.493706215034040767912,-49,53, + 4830666052096510.,-5986498839508213.,.499809966046241987901,-49,53, + 4845910310963385.,-6166522227818539.,.475493154333979293902,-49,53, + 4845910310963391.,-6166522227818608.,-.498788134699663931307,-49,53, + 4845910310964013.,-6166522227825862.,-.499281760720353099874,-49,53, + 4845910310964946.,-6166522227836744.,.499977814363674417870,-49,53, + 4845910310981121.,-6166522228025382.,-.499994169723256659293,-49,53, + 4963933852605346.,-7397870712950363.,-.499966766582349129755,-49,53, + 4963933852654142.,-7397870713395739.,.499991897823016570405,-49,53, + 4963933852655619.,-7397870713409219.,-.499987993208430865735,-49,53, + 4963933852658298.,-7397870713433671.,-.496566149019575322918,-49,53, + 4963933852658463.,-7397870713435177.,-.498595033318077315319,-49,53, + 4963933852658573.,-7397870713436181.,-.499947622497340572163,-49,53, + 5007529068302511.,-7773207443006269.,-.499993776483109671946,-49,53, + 5007529068316428.,-7773207443118764.,-.499941321039528916223,-49,53, + 5007529068316440.,-7773207443118861.,-.499294582662455663228,-49,53, + 5007529068316668.,-7773207443120704.,-.487006552826980024201,-49,53, + 5007529068316740.,-7773207443121286.,-.483126122087717783413,-49,53, + 5007529068322612.,-7773207443168751.,-.499988342634645389294,-49,53, + 5059472696382858.,-8159420352783868.,-.499997078787466442031,-49,53, + 5059472696394883.,-8159420352865358.,.499394269034626130749,-49,53, + 5059472696394950.,-8159420352865812.,.465045773876088388317,-49,53, + 5059472696394968.,-8159420352865934.,.485668566241252002539,-49,53, + 5059472696394977.,-8159420352865995.,.495979962426962020446,-49,53, + 5059472696395174.,-8159420352867330.,.499462746125483155060,-49,53, + 5059472696397211.,-8159420352881134.,.499942146808400123439,-49,53, + 5059472696397502.,-8159420352883105.,-.499989358658766338473,-49,53, + 5079689563128043.,-8291132143823115.,.499961680271716304960,-49,53, + 5079689563132077.,-8291132143848334.,-.499694579432503979613,-49,53, + 5079689563132212.,-8291132143849179.,.499325359744294141691,-49,53, + 5079689563132216.,-8291132143849204.,.491888913504953844301,-49,53, + 5079689563132224.,-8291132143849254.,.477016021027529035125,-49,53, + 5079689563133153.,-8291132143855062.,.499901393473317444231,-49,53, + 5079689563140280.,-8291132143899618.,-.499985853944114062861,-49,53, + 5079689563174974.,-8291132144116520.,-.499979244209709438740,-49,53, + 5107897798878809.,-8457005757204345.,.499919291311122408229,-49,53, + 5107897798879125.,-8457005757206085.,.499182337292592457209,-49,53, + 5107897798881021.,-8457005757216525.,.494760669140485705535,-49,53, + 5107897798881151.,-8457005757217240.,-.328327310921117093630,-49,53, + 5107897798881177.,-8457005757217383.,-.492944906879319246790,-49,53, + 5107897798881179.,-8457005757217395.,.494392201124643169134,-49,53, + 5107897798884179.,-8457005757233913.,-.499945672766454222394,-49,53, + 5107897798889628.,-8457005757263917.,-.499994083426693293252,-49,53, + 5114090198545358.,-8490590839142559.,.499932233275888850021,-49,53, + 5114090198547694.,-8490590839155035.,.499234290181961819839,-49,53, + 5114090198547700.,-8490590839155067.,.454711949762937666965,-49,53, + 5114090198551063.,-8490590839173028.,.499940296673494675111,-49,53, + 5114090198579588.,-8490590839325373.,.499993693455226840082,-49,53, + 5114090198590998.,-8490590839386310.,-.499978843928352150408,-49,53, + 5214918003811640.,-8890391620111108.,-.499985964135455767239,-49,53, + 5214918003819666.,-8890391620131722.,-.499938230659115980718,-49,53, + 5214918003820799.,-8890391620134633.,.499819463118474023377,-49,53, + 5214918003821413.,-8890391620136209.,-.499429220883091567230,-49,53, + 5214918003821603.,-8890391620136697.,-.495939397828825883002,-49,53, + 5214918003890153.,-8890391620312761.,-.499939774611592830229,-49,53, + 5222449517582557.,-8908939376473524.,-.499995103683409353306,-49,53, + 5222449517583137.,-8908939376474892.,.499975090407567352125,-49,53, + 5222449517591257.,-8908939376494030.,.499558800641151788371,-49,53, + 5222449517593577.,-8908939376499498.,.499440201151288105416,-49,53, + 5222449517593591.,-8908939376499530.,-.497112238213931458177,-49,53, + 5222449517593633.,-8908939376499629.,-.486769556276530841591,-49,53, + 5273528936147001.,-8992515155588036.,.496110819791016409254,-49,53, + 5273528936147070.,-8992515155588099.,.482297119058116494311,-49,53, + 5273528936147082.,-8992515155588109.,-.476627002794684363197,-49,53, + 5273528936147197.,-8992515155588214.,-.499649837010148074751,-49,53, + 5273528936147416.,-8992515155588415.,.499984940608610997015,-49,53, + 5273528936161098.,-8992515155600909.,-.499998537333405301818,-49,53, + 5346865815373913.,-8983102566751535.,-.499998071454241013106,-49,53, + 5346865815376549.,-8983102566748453.,.499970687260668695223,-49,53, + 5346865815376779.,-8983102566748183.,-.497755853281391626449,-49,53, + 5346865815376814.,-8983102566748143.,.437372716767573995034,-49,53, + 5346865815376832.,-8983102566748122.,.489724552806277201004,-49,53, + 5346865815376950.,-8983102566747984.,.499586589287443903606,-49,53, + 5489113122546754.,-8533243632725979.,-.499996939860920629588,-49,53, + 5489113122559336.,-8533243632661538.,.499972860300004262951,-49,53, + 5489113122559369.,-8533243632661368.,-.481906087886089049426,-49,53, + 5489113122559377.,-8533243632661328.,.492183864073213312047,-49,53, + 5548511370728352.,-8182128398053341.,-.499944185277966260972,-49,53, + 5548511370784713.,-8182128397676304.,-.499976465953513478239,-49,53, + 5548511370793375.,-8182128397618359.,.499812930509773604632,-49,53, + 5548511370793491.,-8182128397617582.,-.497419154014697697680,-49,53, + 5548511370793984.,-8182128397614284.,-.485655509367904541861,-49,53, + 5548511370794013.,-8182128397614090.,-.484963530075616060898,-49,53, + 5548511370796272.,-8182128397598979.,.499973820138773558065,-49,53, + 6189958032847024.,-6111265716710806.,-.226716448012327035059,-49,84, + 6189958033023106.,-7825185970768669.,-.032719396882059983641,-49,91, + 6189958033024867.,-5134468141729602.,-.094042234234861264694,-49,97, + 6189958033024885.,-8693575800037644.,-.037405982177249058433,-49,104, + 6189958033024886.,6833805304731581.,-.009351495544314399953,-49,102, + 6192449487616078.,5102482345730383.,.499997692356725620912,-49,60, + 6192449487633977.,5102482382387177.,-.499959065079534773355,-49,60, + 6192449487634326.,5102482383101922.,-.499846535106040508426,-49,60, + 6192449487634426.,5102482383306719.,.494455049052126986791,-49,60, + 6192449487634427.,5102482383308767.,.474398064892895581672,-49,60, + 6192449487634431.,5102482383316959.,.394170128255808955237,-49,60, + 6192449487634433.,5102482383321055.,.354056159937169038447,-49,60, + 6192449487642752.,5102482400358201.,-.499995618706487943997,-49,60, + 7958517470966799.,8960512649166011.,.452187445962740622016,-49,86, + 7958517471031343.,5737781521231581.,-.058721518658445869890,-49,92, + 7958517471031988.,8230594804149880.,.483645776069390309929,-49,99, + 7958517471031995.,5588727300024200.,-.261667582886054288479,-49,103, + 7958517471031996.,-6212835604728892.,-.130833791443025448267,-49,102, + 4863538454268721.,-8618511228684388.,.251497877420076291608,-48,83, + 4863538454517045.,-5514467724105968.,.022860304770261404304,-48,89, + 4863538454519528.,-6949501513005053.,-.073890326890614031485,-48,96, + 4863538454519552.,-6211266302377890.,-.364490460784810618213,-48,101, + 4863538454519553.,5591865904726203.,.271019078430365203309,-48,102, + 5747818173446242.,5282172336325216.,.135453714556871576941,-48,84, + 5747818173522339.,6761768338665489.,.346478895712815827862,-48,91, + 5747818173523100.,8696518241945772.,.349299727160301940577,-48,98, + 5747818173523107.,6521751152379235.,-.205602182708860027894,-48,101, + 5747818173523108.,-4970896204723514.,-.411204365417704874486,-48,102, + 6632097892000044.,-4523620690697855.,-.093830087087027177687,-48,81, + 6632097892521397.,-5789762733424524.,-.348049504224024223330,-48,88, + 6632097892526610.,-7425103082014253.,.449620231702891160433,-48,95, + 6632097892526662.,-6832236002380579.,-.224305173797469228189,-48,101, + 6632097892526663.,8699853009441651.,.102779304810088942224,-48,103, + 7516377611416375.,7823217165215121.,.407773576189983331718,-48,84, + 7516377611529080.,5004066539791450.,.111159269834481850860,-48,90, + 7516377611530207.,6075919587486990.,.228388283142499089029,-48,97, + 7516377611530217.,7142720852381924.,-.345787469696201618196,-48,101, + 7516377611530218.,-7457913609436273.,-.383149878784768004998,-48,103, + 8400657330533772.,-7453205702383268.,-.084119886810127428296,-48,101, + 8400657330533773.,6215974209430896.,-.336479547240553044078,-48,103, + 8400657330533784.,6289574084656790.,-.255257492927285191224,-48,97, + 8400657330534880.,4869396273706365.,.169880788279836733219,-48,90, + 8400657330644443.,7605196346403030.,-.044416560457894922563,-48,84, + 4642468524768663.,8385444903562802.,.257013621658173093935,-47,100, + 4642468524768664.,-4974034809425518.,.056108973265874186379,-47,103, + 4642468524768702.,-5357739469239623.,-.214734162096253819636,-47,94, + 4642468524772511.,-8459794259604437.,-.112729167748900219544,-47,88, + 4642468525153402.,-6609749696016104.,.343289536901521882001,-47,81, + 5084608380214929.,-8709146666784488.,-.221520247218733574814,-47,78, + 5084608384229886.,-5573898359126619.,-.316610968613038080243,-47,84, + 5084608384270035.,-7150312470949289.,.463921948806862008060,-47,91, + 5084608384270437.,-5008235590019618.,-.308995912488091084716,-47,97, + 5084608384270441.,-8074175402385957.,.056065400177214818717,-47,101, + 5084608384270442.,4970111553548014.,-.471967299911412148386,-47,100, + 5526748243772218.,8695929753564147.,-.313079021835503620700,-47,100, + 5526748243772219.,-4980312018829525.,-.009264349366966647700,-47,104, + 5526748243772241.,-6202176659546208.,-.416033719407018794485,-47,95, + 5526748243774432.,-4866514458067137.,.246749937117350476074,-47,88, + 5526748243993476.,-7602333819487491.,-.008637906644242260557,-47,82, + 5968888100055899.,-6910811721719926.,.405516433656932624060,-47,78, + 5968888103241815.,-8845978600749849.,-.178234126372328675797,-47,85, + 5968888103273674.,-5673175258941003.,-.411917718973900188751,-47,91, + 5968888103273993.,-7842292578854325.,.274531335896367947621,-47,98, + 5968888103273996.,-8695145102388646.,.196250687164557550103,-47,101, + 5968888103273997.,4659626703546669.,.098125343582259759018,-47,100, + 6411027962775773.,9006414603565491.,.116828334670819142994,-47,100, + 6411027962775774.,-6427862429703235.,.057717623971138873798,-47,113, + 6411027962775780.,-6755497522452682.,.389603541835908316515,-47,97, + 6411027962776399.,-5497558905140914.,.424918795740620809824,-47,90, + 6853167820543408.,-7448089692722182.,.255295101647658311130,-47,79, + 6853167822260211.,-4766525059039612.,.276765851049300740377,-47,85, + 6853167822277379.,-6069907536002525.,.424485228032128042569,-47,92, + 6853167822277550.,-6832628327968330.,.334108993538102294013,-47,99, + 6853167822277551.,-4658057401195667.,-.331782012924049598443,-47,100, + 6853167822277552.,8698283707090649.,.336435974151862773778,-47,101, + 7295307681672764.,7323093401196843.,.248228660066180547558,-47,83, + 7295307681778263.,4688468801637072.,-.068580740296789134125,-47,89, + 7295307681779318.,6211805750061047.,.221670980692212387312,-47,96, + 7295307681779329.,4955203181213497.,-.252228941164396090321,-47,104, + 7295307681779330.,-8697499055915148.,-.453264308822706513543,-47,100, + 7737447541067367.,-7344035072522492.,.219300497781340888979,-47,82, + 7737447541278970.,-4698326696869618.,-.145449450726147613552,-47,88, + 7737447541281086.,-5784766479563027.,.382447207225859540181,-47,95, + 7737447541281106.,-4968542251197012.,.238310630569622307502,-47,100, + 7737447541281107.,8077314007087960.,.476621261139205507707,-47,101, + 8179587400512838.,4639356136571569.,-.031556293083222910102,-47,81, + 8179587400780184.,5937514202355836.,.325189245882535697191,-47,88, + 8179587400782857.,7619205153963562.,-.375729904806865163077,-47,95, + 8179587400782884.,4961480390617504.,-.186855618531555554259,-47,103, + 8179587400782885.,-8387014205913804.,-.023356952316383230767,-47,100, + 8621727260284661.,-5279027101198356.,-.191596725936705488489,-47,100, + 8621727260284662.,7456344307085272.,-.383193451873452242925,-47,101, + 8621727260284663.,6367685704141814.,-.095798362968467489514,-47,99, + 8621727260284753.,6432682065116976.,-.157746849873700657743,-47,93, + 8621727260293762.,5003005455950718.,.373764116297054670628,-47,86, + 8621727261194679.,7816990063070094.,-.079881229227127644814,-47,80, + 5858197952755945.,5085119015086166.,.499384262844464930393,-46,61, + 5858197952784797.,5085118069666129.,.499974788140693456367,-46,61, + 5858197952790482.,5085117883380502.,.495103320395366988993,-46,61, + 5858197952790527.,5085117881905946.,.080816606459356220491,-46,61, + 5858197952790529.,5085117881840410.,.240181641347267744896,-46,61, + 5858197952790532.,5085117881742106.,.479229193671433046169,-46,61, + 5858197952790595.,5085117879677727.,.499227790343914038289,-46,61, + 5858197952790846.,5085117871452979.,.499539619158053528065,-46,61, + 5858197952791097.,5085117863228231.,.499851383274489402820,-46,61, + 6245226045761375.,-8896936967702907.,-.499850800777271754805,-45,69, + 6245226045763474.,-8896972183079287.,-.499982576740902348279,-45,69, + 6245226045767672.,-8897042613832048.,.499848863834093175614,-45,69, + 6245226045767674.,-8897042647386479.,-.496339847552599815900,-45,69, + 6245226045767679.,-8897042731272559.,-.486811625893560252680,-45,69, + 6245226045767680.,-8897042748049775.,-.484905981540191418440,-45,69, + 6245226045767681.,-8897042764826991.,-.483000337179635610304,-45,69, + 6245226045780791.,-8897262714128726.,-.499385097943551687762,-45,69, + 5426391276979852.,7541324391350242.,.469106622132214658337,-44,53, + 5426391276979853.,7541324391349963.,-.498810993717788655048,-44,53, + 5426391276980227.,7541324391245254.,.499998969621723197575,-44,53, + 5426971710399446.,7374746796202383.,-.499960367730092760362,-44,53, + 5426971710399538.,7374746796175338.,.493332765515262653325,-44,53, + 5426971710399607.,7374746796155055.,.488302483090587259448,-44,53, + 5426971710404814.,7374746794624423.,.499675446481774481941,-44,53, + 5562950707703181.,-8431521980014604.,.474724879478902172789,-44,54, + 5562950707703193.,-8431521980025462.,-.497618607998760387953,-44,54, + 5562950707703228.,-8431521980057135.,.499712909266014260688,-44,54, + 5562950707704349.,-8431521981071544.,.499977157328640817260,-44,54, + 5562950707716715.,-8431521992261714.,-.497512188730649005496,-44,54, + 5562950707720837.,-8431521995991771.,-.495749514416876676051,-44,54, + 5565768841126209.,-5431423256807898.,-.494455352532633655029,-44,53, + 5565768841150559.,-5431423266753412.,.499833331333595365680,-44,53, + 5565768841151350.,-5431423267076488.,.492306904172662257520,-44,53, + 5565768841151375.,-5431423267086699.,.493333428719917548904,-44,53, + 5565768841151525.,-5431423267147965.,.499492806345559959974,-44,53, + 5565768841159328.,-5431423270335021.,-.499551820996222208898,-44,53, + 5565768841173943.,-5431423276304371.,-.495528177141084546291,-44,53, + 5637442019506305.,9006832244997269.,.487235081125598900806,-44,53, + 5637442019535290.,9006832244863302.,.499822414775703237436,-44,53, + 5637442019535618.,9006832244861787.,-.497276999822704655589,-44,53, + 5637442019535930.,9006832244860344.,.456698700195164779344,-44,53, + 5637442019535946.,9006832244860271.,-.494379545400027458177,-44,53, + 5637442019538070.,9006832244850453.,.499917210839910208136,-44,53, + 5637442019544979.,9006832244818520.,.498819006253271224875,-44,53, + 5666178554260123.,-5163103398699368.,-.499988091917474716894,-44,56, + 5666178554261119.,-5163103402768498.,-.498306644982508246452,-44,56, + 5666178554261208.,-5163103403132105.,-.496147557586192427705,-44,56, + 5666178554261261.,-5163103403348636.,.493902298809541587252,-44,56, + 5666178554261528.,-5163103404439456.,-.499619410051098141436,-44,56, + 5772925638469453.,5156050090583831.,.499902064272352550303,-44,55, + 5772925638471609.,5156050086213792.,.499913417233859189509,-44,55, + 5772925638472606.,5156050084192954.,-.499643696766906386284,-44,55, + 5772925638472681.,5156050084040935.,-.481556887616177567561,-44,55, + 5772925638499475.,5156050029731646.,.494018936058827583480,-44,55, + 5835612929814885.,4946605536609440.,.497598496744540146276,-44,54, + 5835612929831465.,4946605552934745.,-.499952419526214052318,-44,54, + 5835612929832148.,4946605553607252.,.499571732652990358175,-44,54, + 5835612929832195.,4946605553653531.,-.497533028873024356599,-44,54, + 5835612929832220.,4946605553678146.,.461453785717489611245,-44,54, + 5835612929832231.,4946605553688977.,.483407980972613530669,-44,54, + 5896103646763641.,-4898969761857357.,-.499833448489754214187,-44,53, + 5896103646763856.,-4898969761949731.,-.499948396237035054503,-44,53, + 5896103646767726.,-4898969763612464.,.498107667606364627551,-44,53, + 5896103646768487.,-4898969763939424.,-.497595533857534657779,-44,53, + 5896103646768504.,-4898969763946728.,-.488301019749013740915,-44,53, + 5896103646768586.,-4898969763981960.,.497707877261370448188,-44,53, + 5896103646783868.,-4898969770547817.,-.498141561150348276039,-44,53, + 5896103646804095.,-4898969779238277.,-.489973356932441393089,-44,53, + 6004329071329631.,-7734750839235675.,-.499672095439865295841,-44,54, + 6004329071333192.,-7734750842528910.,-.499778306504207964235,-44,54, + 6004329071334379.,-7734750843626655.,-.499743283361858850273,-44,54, + 6004329071334606.,-7734750843836587.,.485103145705410239523,-44,54, + 6004329071334611.,-7734750843841211.,.453932376700239472951,-44,54, + 6004329071334668.,-7734750843893925.,.498585654202736123432,-44,54, + 6004329071345800.,-7734750854188867.,-.498449362709539404164,-44,54, + 6029337333115513.,-8619289716037345.,-.498425527226854596928,-44,53, + 6029337333122936.,-8619289714934010.,.499643309027226295997,-44,53, + 6029337333126202.,-8619289714448559.,-.497217611810478994811,-44,53, + 6029337333126282.,-8619289714436668.,-.498974102823401126991,-44,53, + 6029337333126362.,-8619289714424778.,.499269584406410384822,-44,53, + 6029337333141699.,-8619289712145124.,-.496644903434539689997,-44,53, + 6029337333168456.,-8619289708168031.,-.475137240758517689647,-44,53, + 6304262280165567.,8801242795396908.,.499866299953079611121,-44,53, + 6304262280166210.,8801242795326909.,.499825525235341748505,-44,53, + 6304262280168139.,8801242795116912.,.499632654239787077742,-44,53, + 6304262280168234.,8801242795106571.,-.498824368441345505019,-44,53, + 6304262280168307.,8801242795098623.,.491834797640773998258,-44,53, + 6304262280168314.,8801242795097861.,.449843202863992874619,-44,53, + 6304262280168329.,8801242795096229.,-.497281647778580015591,-44,53, + 6304262280177236.,8801242794126584.,.498852067681145951474,-44,53, + 6304262280188905.,8801242792856260.,.493965511630909544235,-44,53, + 6305910042774356.,8583545779748291.,.494358821818776644178,-44,53, + 6305910042774373.,8583545779745653.,.483276999106491218916,-44,53, + 6305910042774384.,8583545779743947.,-.465070066919696563910,-44,53, + 6305910042774435.,8583545779736033.,-.498315598708222353131,-44,53, + 6305910042775248.,8583545779609874.,-.498886464053745537496,-44,53, + 6305910042776874.,8583545779357555.,.499916809463906438298,-44,53, + 6535180284081842.,6440872383698761.,.496503754372576540749,-44,53, + 6535180284097125.,6440872378228829.,.499875798817982992256,-44,53, + 6535180284100144.,6440872377148300.,.499901520630732953280,-44,53, + 6535180284100166.,6440872377140426.,.489301475631755730921,-44,53, + 6535180284109389.,6440872373839426.,.499131707725610591525,-44,53, + 6535815775735491.,6209271383243704.,.475819596415352365944,-44,53, + 6535815775784211.,6209271365173515.,.499474621704759082277,-44,53, + 6535815775784458.,6209271365081903.,.498590622300104499735,-44,53, + 6535815775784586.,6209271365034428.,.453597622872291542380,-44,53, + 6535815775784606.,6209271365027010.,.477817437018103740264,-44,53, + 6535815775784626.,6209271365019593.,-.497962756861379204400,-44,53, + 6535815775786276.,6209271364407610.,-.499856394044677824392,-44,53, + 6535815775788588.,6209271363550091.,.499822569931223666318,-44,53, + 6544022097454165.,5222684139414429.,.499794440230409232529,-44,54, + 6544022097454642.,5222684138946959.,.496894502936166981322,-44,54, + 6544022097454689.,5222684138900899.,-.488716390512885246968,-44,54, + 6544022097454690.,5222684138899918.,.490313164540635894323,-44,54, + 6544022097454785.,5222684138806816.,.498120817673308468787,-44,54, + 6544022097455834.,5222684137778775.,-.499886906607355464041,-44,54, + 6544022097458266.,5222684135395363.,.499894106324872465215,-44,54, + 6616319171091754.,5620694276620201.,.498024432146166994229,-44,53, + 6616319171106449.,5620694282499379.,-.499303514725006861654,-44,53, + 6616319171106474.,5620694282509381.,-.496920548071964217637,-44,53, + 6616319171106486.,5620694282514181.,.464223271889655964825,-44,53, + 6616319171106861.,5620694282664211.,.499966327850598360435,-44,53, + 6616319171127424.,5620694290891058.,.496015199838473260189,-44,53, + 6702751591163260.,-5776315859682792.,-.463418888009819924985,-44,53, + 6702751591221503.,-5776315836801875.,-.499806541110248744391,-44,53, + 6702751591225670.,-5776315835164858.,-.499845603257148038514,-44,53, + 6702751591225860.,-5776315835090216.,-.495999966097249742714,-44,53, + 6702751591225880.,-5776315835082359.,-.442963544043318593064,-44,53, + 6702751591225894.,-5776315835076860.,.494161955836532586853,-44,53, + 6702751591226179.,-5776315834964897.,.499931855771944740640,-44,53, + 6729307497401158.,6544488705170544.,.486251690706966828244,-44,53, + 6729307497435333.,6544488717192750.,.499996214802486017420,-44,53, + 6729307497436678.,6544488717665899.,.499885714120111758317,-44,53, + 6729307497437228.,6544488717859381.,-.496453019822695182034,-44,53, + 6729307497437265.,6544488717872396.,.498338508436545744691,-44,53, + 6729307497442437.,6544488719691821.,.499723498702351951416,-44,53, + 6743769751754858.,8988397030804626.,.499919501163414560572,-44,53, + 6743769751756921.,8988397030736413.,.499885320401081281259,-44,53, + 6743769751757506.,8988397030717071.,-.498207943284115479769,-44,53, + 6743769751757521.,8988397030716575.,-.472518157662198668553,-44,53, + 6743769751757583.,8988397030714525.,-.499667113084101111623,-44,53, + 6743769751770623.,8988397030283357.,.497490934084766985628,-44,53, + 6743769751815855.,8988397028787763.,.450584735479237703138,-44,53, + 6754791752061991.,6940150469862020.,.499002573121868120774,-44,53, + 6754791752062151.,6940150469809803.,-.448339471856557696450,-44,53, + 6754791752062165.,6940150469805233.,.481268071894380268325,-44,53, + 6754791752062176.,6940150469801643.,.497388281758130915345,-44,53, + 6754791752062488.,6940150469699819.,-.499930532049013028755,-44,53, + 6754791752066210.,6940150468485098.,.499835012827862145199,-44,53, + 6754791752068071.,6940150467877738.,.499601288660170534338,-44,53, + 6794379564755893.,-8827417065973478.,-.492917204916464046525,-44,53, + 6794379564777303.,-8827417068152703.,-.499916493310734338860,-44,53, + 6794379564777946.,-8827417068218151.,-.499690936423475983691,-44,53, + 6794379564778165.,-8827417068240442.,-.498056211578736430826,-44,53, + 6794379564828044.,-8827417073317395.,-.464526705247712727024,-44,53, + 6990987887102449.,5711764656724107.,.480691927437923696963,-44,58, + 6990987887139492.,5711764049930774.,.499293754832885577565,-44,58, + 6990987887146330.,5711763937918983.,-.499987319335432964297,-44,58, + 6990987887148051.,5711763909727655.,.499180245024326668461,-44,58, + 6990987887148143.,5711763908220623.,.492161515803817402554,-44,58, + 6990987887148189.,5711763907467107.,.488652092615156481183,-44,58, + 6990987887148617.,5711763900456132.,.499475587395638085870,-44,58, + 6990987887149749.,5711763881913087.,-.499951465048779195478,-44,58, + 7006147211056091.,-6718498630468066.,-.492878033439686630025,-44,53, + 7006147211081694.,-6718498639199197.,-.499452603273896611892,-44,53, + 7006147211081699.,-6718498639200903.,.401340378402885223931,-44,53, + 7006147211084214.,-6718498640058567.,-.499721045666802346749,-44,53, + 7006147211085726.,-6718498640574189.,-.499815938999999980655,-44,53, + 7054682820208231.,7984980447134588.,.497715273870474014723,-44,54, + 7054682820217784.,7984980455903371.,.499794812964077900945,-44,54, + 7054682820220855.,7984980458722269.,.499858514747333664429,-44,54, + 7054682820221195.,7984980459034359.,-.499823766944316346645,-44,54, + 7054682820221535.,7984980459346448.,-.499509031215774010517,-44,54, + 7054682820221546.,7984980459356544.,.497559925131582646152,-44,54, + 7138546116887287.,-7843710272173371.,-.498677983604221494045,-44,53, + 7138546116897512.,-7843710269599800.,.476622439995393111766,-44,53, + 7138546116897525.,-7843710269596528.,.499673408300989181959,-44,53, + 7138546116899434.,-7843710269116043.,-.499949442673907358297,-44,53, + 7223985620277307.,-5509642647254127.,-.487580477190393710548,-44,53, + 7223985620314085.,-5509642662150714.,.499955225035517949792,-44,53, + 7223985620314380.,-5509642662270200.,-.499612360185255159966,-44,53, + 7223985620314650.,-5509642662379561.,-.482266080289424344372,-44,53, + 7223985620314651.,-5509642662379967.,.477057426863184997732,-44,53, + 7223985620314675.,-5509642662389687.,-.499178396133406113163,-44,53, + 7223985620325615.,-5509642666820832.,-.498940034389922730874,-44,53, + 7322656671993154.,4665156753308517.,.498868349494910249645,-44,58, + 7322656671993195.,4665156752636861.,.493308231006009311948,-44,58, + 7322656671993202.,4665156752522189.,-.483250816146467934131,-44,58, + 7322656671993325.,4665156750507221.,-.499931336627531200943,-44,58, + 7322656671999980.,4665156641485983.,.499656625521063060315,-44,58, + 7371229009356857.,-6961360446569314.,-.483323346345407866479,-44,54, + 7371229009358614.,-6961360444909910.,-.484797929909427066554,-44,54, + 7371229009381455.,-6961360423337658.,-.497648646283893478981,-44,54, + 7371229009395330.,-6961360410233373.,.499136199178503466383,-44,54, + 7371229009395372.,-6961360410193705.,-.472975067444847298396,-44,54, + 7371229009395383.,-6961360410183316.,-.489480392622717448912,-44,54, + 7371229009395511.,-6961360410062426.,-.499723976409653721256,-44,54, + 7413149621264437.,8241351046908507.,.498390090607468117635,-44,53, + 7413149621275305.,8241351044663192.,-.499972475639428395387,-44,53, + 7413149621275437.,8241351044635920.,.455493666435177497784,-44,53, + 7413149621275457.,8241351044631788.,.479049102030640512196,-44,53, + 7413149621275477.,8241351044627657.,-.497395473025593044271,-44,53, + 7461059150868694.,-9007161437551355.,-.483638235148264936606,-44,53, + 7461059150901341.,-9007161437599793.,.499975973620991698988,-44,53, + 7461059150901647.,-9007161437600246.,-.499540783922692307948,-44,53, + 7461059150902228.,-9007161437601109.,.494848296596775494199,-44,53, + 7461059150902259.,-9007161437601154.,-.498566123545579589652,-44,53, + 7461059150905441.,-9007161437605875.,-.499858796954520794844,-44,53, + 7761862923838512.,6554494349809452.,.499962150860823339468,-44,55, + 7761862923839764.,6554494347288144.,.497831869498411951633,-44,55, + 7761862923839770.,6554494347276062.,-.447865320404632953074,-44,55, + 7761862923839838.,6554494347139122.,-.499100192591451638140,-44,55, + 7761862923840151.,6554494346508795.,-.499638440616867088043,-44,55, + 7761862923851550.,6554494323553211.,.498514953405204623324,-44,55, + 7761862923890664.,6554494244784488.,.472572414806484839605,-44,55, + 7819356134911465.,-8127311055389155.,-.492055627588161407279,-44,57, + 7819356134933695.,-8127310873570809.,-.499975005230137908833,-44,57, + 7819356134936069.,-8127310854153951.,-.497174799915107801823,-44,57, + 7819356134936150.,-8127310853491455.,-.499604026855710131928,-44,57, + 7819356134938632.,-8127310833191269.,-.499882737569156733995,-44,57, + 7819356134949747.,-8127310742282096.,-.497534865678289968575,-44,57, + 7880037969485340.,-8960639206857836.,-.490272330452819442497,-44,55, + 7880037969502477.,-8960639240851628.,-.498891598536334626794,-44,55, + 7880037969511262.,-8960639258277984.,-.496979052190824200529,-44,55, + 7880037969511450.,-8960639258650910.,-.498962649468506308035,-44,55, + 7880037969511544.,-8960639258837373.,-.499954064359156126633,-44,55, + 8016984453660094.,-8858644343533554.,.499391983918146207190,-44,53, + 8016984453660284.,-8858644343515959.,.490945097793410679707,-44,53, + 8016984453660322.,-8858644343512440.,.489255844566867627073,-44,53, + 8016984453660327.,-8858644343511976.,-.484650633043774363769,-44,53, + 8016984453660669.,-8858644343480305.,-.499852003159862606433,-44,53, + 8016984453661857.,-8858644343370290.,-.499999169659706881129,-44,53, + 8016984453667184.,-8858644342876982.,-.499320613698078389727,-44,53, + 8016984453717503.,-8858644338217180.,-.453212315732619167982,-44,53, + 8049376796641709.,7873994924792805.,-.499961511168020944781,-44,54, + 8049376796642175.,7873994925221991.,.222135863273312936894,-44,54, + 8049376796642300.,7873994925337116.,.415830571150783833417,-44,54, + 8049376796642354.,7873994925386850.,.499506561991458038450,-44,54, + 8049376796643645.,7873994926575863.,.499960476340285883869,-44,54, + 8049376796699790.,7873994978285495.,.457764609720874026923,-44,54, + 8198893031061692.,8213007108249161.,.499360157331977423203,-44,54, + 8198893031068742.,8213007101823900.,-.486019376844900626411,-44,54, + 8198893031068807.,8213007101764660.,-.490146033874282899504,-44,54, + 8198893031068963.,8213007101622483.,.499949531799064688911,-44,54, + 8198893031122275.,8213007053034743.,.461965364934726771819,-44,54, + 8347450336541482.,-8945488055820140.,-.499904710896260974172,-44,53, + 8347450336542968.,-8945488055731231.,-.499883987338437017660,-44,53, + 8347450336544454.,-8945488055642322.,-.499799437132097462838,-44,53, + 8347450336544602.,-8945488055633467.,-.498441626221828762046,-44,53, + 8347450336544643.,-8945488055631014.,-.423741039587550633255,-44,53, + 8347450336544673.,-8945488055629219.,-.491033262486567327459,-44,53, + 8347450336565779.,-8945488054366424.,-.493574731211171418979,-44,53, + 8347450336606274.,-8945488051943564.,-.445105735414024557627,-44,53, + 8638779724394265.,5096814003500902.,.481234713337269717051,-44,53, + 8638779724394286.,5096814003492037.,.443013276572325789839,-44,53, + 8638779724394334.,5096814003471774.,.498507108123153411532,-44,53, + 8638779724394804.,5096814003273367.,-.499784462675811183076,-44,53, + 8638779724395903.,5096814002809429.,.499940835801061470013,-44,53, + 8638779724419293.,5096813992935465.,.494837261003150768244,-44,53, + 8638779724430988.,5096813987998483.,.488906763913359617275,-44,53, + 8704521642360088.,-7001926819037831.,-.499532652946570457290,-44,60, + 8704521642365332.,-7001926475373385.,-.499847886540506714676,-44,60, + 8704521642366353.,-7001926408462364.,.499781709000638356186,-44,60, + 8704521642366372.,-7001926407217202.,-.463985979012179245629,-44,60, + 8704521642366377.,-7001926406889529.,.492917262341914367237,-44,60, + 8704521642460606.,-7001920231611671.,-.399529124001155639317,-44,60, + 7146344544205316.,-5652563272694430.,-.412318856380387816618,-38,70, + 7146344544206558.,-5647228923312859.,-.497100125202389134238,-38,70, + 7146344544206843.,-5646004857633513.,-.497872023931041159238,-38,70, + 7146344544206847.,-5645987677764330.,.305669108027598330048,-38,70, + 7146344544206849.,-5645979087829738.,.207440122351293841321,-38,70, + 7146344544215028.,-5610850550316153.,-.005202302362050879565,-38,70, + 5371956115261446.,4879582583286995.,-.160032670406894478565,-37,74, + 5371956115275725.,6842073399913587.,.495547399651673526165,-37,74, + 5371956115275753.,6845921690610803.,.242956198209312016779,-37,74, + 5371956115275775.,6848945347587187.,.044292359751714025070,-37,74, + 5371956115275777.,6849220225494131.,.026223310041631491215,-37,74, + 5371956115275946.,6872447408630897.,.494143444970906574796,-37,74, + 5371956115276278.,6918077141183598.,.454086390286174650977,-37,74, + 5371956115281923.,7693920033532980.,.368078241703273426190,-37,74, + 5371956115289339.,8713167312481236.,.124555319567696400756,-37,74, + 7170739958405677.,6137467417743519.,.141426019048340798104,-37,70, + 7170739958428935.,6337252116481467.,-.364374334928671180492,-37,70, + 7170739958447764.,6498991994911844.,.477404662149742452064,-37,70, + 7170739958448048.,6501431536335936.,-.499778482175375002738,-37,70, + 7170739958448071.,6501629104831549.,-.495624509590158071762,-37,70, + 7170739958448117.,6502024241822775.,-.487862804844971329866,-37,70, + 7170739958448125.,6502092961299509.,.469934446936252244590,-37,70, + 7170739958448127.,6502110141168693.,.209380317711300378369,-37,70, + 7170739958448129.,6502127321037877.,-.051175188389030549401,-37,70, + 7170739958448593.,6506113050688504.,.462725539060205348124,-37,70, + 7158542251324229.,4845837228158003.,.092587579971568801253,-36,70, + 7158542251326867.,4800516733250989.,.304189328631945880190,-36,70, + 7158542251327454.,4790432150040064.,.498166488720074338170,-36,70, + 7158542251327461.,4790311890955777.,.488147781694517938002,-36,70, + 7158542251327487.,4789865214356997.,.164785993032061564410,-36,70, + 7158542251327489.,4789830854618629.,.447575915950649855436,-36,70, + 4588037610644632.,-6594350259995752.,-.133543070160990958908,-34,72, + 4588037610667758.,-7600761088350437.,.262294956444472095990,-34,77, + 4588037610667951.,-5903115135064294.,-.441183371420137137093,-34,77, + 4588037610667954.,-5876726855997670.,-.461227233495364441251,-34,77, + 4588037610668015.,-5340165181642983.,.168956053879895757364,-34,77, + 4588037610668031.,-5199427693287655.,.083375723368891521553,-34,77, + 4588037610668033.,-5181835507243239.,.072997779682638395571,-34,77, + 4588037610669107.,8530336797216303.,-.017583694674824637377,-34,78, + 4588037610680670.,6623399500899411.,-.386898493450447513641,-34,73, + 7161591678105926.,5934566320678203.,.273600339653992488856,-34,72, + 7161591678107645.,5462051198641811.,.470597594470113137213,-34,72, + 7161591678107647.,5461501442827924.,-.161706934603626358536,-34,72, + 7161591678107649.,5460951687014036.,.205914519176017311315,-34,72, + 7161591678107656.,5459027541665429.,.492006829942919952906,-34,72, + 7161591678107705.,5445558524225182.,.469294512836828791201,-34,72, + 7161591678118564.,4921318665442764.,-.039420836442481738261,-34,73, + 7161591678147855.,-5590789439573905.,.345512776715301277277,-34,72, + 4923784867872607.,-5197382142330510.,.454741147072121826536,-33,74, + 4923784867872765.,-5544827816707711.,-.494614094521891871139,-33,74, + 4923784867872767.,-5549225863218815.,-.304982358349659633418,-33,74, + 4923784867872769.,-5553623909729919.,-.115049798040601666285,-33,74, + 4923784867872786.,-5591007305074301.,-.488443569363810832585,-33,74, + 4923784867873660.,-7512953630426633.,-.043634501630011313646,-33,74, + 4923784867879441.,-5056376767692270.,.375880777122291392976,-33,72, + 4923784867894857.,-6765706197286064.,.356617046501893499578,-33,71, + 5818983827624657.,6336475918824011.,.203651212409538513287,-31,70, + 5818983827636223.,-5631955090988659.,.421354737211606850166,-31,78, + 5818983827636225.,-5913430067699315.,.472708629903935860518,-31,78, + 5818983827636226.,-6054167556054642.,-.499706276421089924192,-31,78, + 5818983827636304.,-8515845823885109.,.054965707543208668231,-31,77, + 5818983827641290.,-5615225067084048.,-.032048713040323803309,-31,71, + 5818983827643783.,-8356307555117465.,-.438524724598047347379,-31,71, + 6904797244408171.,-8807614496896947.,-.227364980099607949482,-30,69, + 6904797244424191.,-8623861563209770.,-.268459433470772986105,-30,83, + 6904797244424192.,6133403064499548.,-.313637533751131010697,-30,87, + 6904797244424193.,4695268473136107.,-.135538875347240686618,-30,82, + 6904797244424213.,5922953813784126.,.299948148089643085236,-30,78, + 6904797244425117.,8136760398755779.,.435113526627695841147,-30,73, + 6904797244425826.,7186595175748355.,.027508945107156707996,-30,72, + 6904797244425838.,7239371733881541.,.463980607107521461066,-30,72, + 6904797244452339.,7737000144404609.,-.452528302006708819979,-30,68, + 5378363199834527.,-7653695703552655.,.027221501723861288178,-28,67, + 5378363199843741.,-5176491275374212.,.122869425730494666167,-28,68, + 5378363199848348.,-7106637214435962.,-.051159888803452642027,-28,74, + 5378363199848446.,-6736009120801846.,-.276339804284185156351,-28,79, + 5378363199848447.,-8968418614233197.,.250746881331505370505,-28,80, + 5378363199848449.,4963921984997782.,-.433882543206171080186,-28,87, + 5378363199848462.,7323196974540528.,-.470304813771569317377,-28,77, + 5378363199870683.,6111637742987200.,.194505703260253715124,-28,66, + 5560206444460472.,7070781568873724.,.324873424353475778552,-26,68, + 5560206444460638.,6340705848219077.,.474589868524017502524,-26,68, + 5560206444461966.,8001601311367347.,.127872490356419965675,-26,72, + 5560206444462049.,8643982178499954.,-.062665752981932583030,-26,74, + 5560206444462055.,6955132318236162.,.466381321474412240888,-26,74, + 5560206444462079.,6391452069778420.,-.265254085413036629696,-26,79, + 5560206444462081.,-5811473219851782.,.285042095264245200848,-26,78, + 5560206444464379.,-5056193073677390.,.081411751272675779371,-26,67, + 5560206444472193.,-5559840177343104.,.407844561873090316170,-26,65, + 8249388044327082.,-8139436860656670.,-.471525123925657395156,-26,63, + 8249388044381812.,-4939231945053834.,.276587559846141251488,-26,66, + 8249388044385484.,-7214602012212486.,-.489259190512247738403,-26,69, + 8249388044385834.,-8271938909170924.,-.480553181410618531654,-26,70, + 8249388044386184.,-8458695174767502.,.379100950431422427399,-26,72, + 8249388044386273.,-8783507771839398.,-.492522906121510893522,-26,74, + 8249388044386279.,-7094657911575612.,-.218450958337745276476,-26,74, + 8249388044386303.,-5428135528320560.,-.050855483800442511135,-26,78, + 8249388044386305.,7158127452840863.,.147335868334066826554,-26,79, + 8967144255491204.,-8126488643948866.,.088563324075069821569,-24,62, + 8967144255520759.,-5071482721975552.,-.442062999560876604936,-24,73, + 8967144255520767.,-4543064756842398.,-.483084134430566180775,-24,76, + 8967144255520769.,8928268995797176.,.364707768362448605424,-24,77, + 8967144255520772.,8987466690004955.,-.383963399036041788223,-24,75, + 8967144255520797.,8160307754012969.,-.225876600947172850282,-24,72, + 8967144255522056.,5664645360572191.,-.000132727889248161470,-24,66, + 5346671783313256.,-5347991541264625.,-.403734410981788448110,-23,68, + 5346671783313308.,-7036808385709351.,-.325952333750226562416,-23,69, + 5346671783313407.,-8998747172771473.,-.230837337258207319958,-23,76, + 5346671783313409.,4507825668355234.,.051191643637078340480,-23,75, + 5346671783313412.,4504656137616512.,.400172425908359660657,-23,73, + 5346671783314573.,5123728295958778.,.499800265180770146631,-23,65, + 5346671783322475.,4984635509820218.,.223583480029287954927,-23,62, + 7804232761079817.,8967616141704297.,-.437083642914898161934,-22,64, + 7804232761081639.,7635006010104452.,-.459046294072610554490,-22,67, + 7804232761081855.,9006500434647011.,.121858746594006276029,-22,75, + 7804232761081857.,-4503949037417401.,-.105735752410516953580,-22,74, + 7804232761081869.,-7318393070721207.,.070331628394611690968,-22,71, + 7804232761081877.,-5910996349027014.,.037323628679204688725,-22,70, + 7804232761081956.,-7036879876631715.,-.340757729779947944133,-22,68, + 7804232761102077.,-5558284646047847.,.056916946133374981612,-22,60, + 6467564815253491.,-7318437781955090.,.105969379182759701390,-21,70, + 6467564815253501.,-6755752991153059.,-.340557412620485449839,-21,72, + 6467564815253503.,-4504306727569565.,.342422713985517695552,-21,73, + 6467564815253505.,9005785054342172.,.018128275154087207132,-21,74, + 6467564815253520.,9007110867128708.,.313476647233779389328,-21,70, + 6467564815253578.,5207276019625932.,.429218791772603691882,-21,67, + 6467564815254226.,6350777655523499.,.282988039167026510118,-21,64, + 6467564815306646.,7302999218708589.,.495299199833497211118,-21,58, + 6467564815345961.,6351538646997068.,-.440207892255794089188,-21,57, + 5519007584354205.,-6966505664533473.,.003447517557253355478,-19,65, + 5519007584354303.,-4503601697394101.,-.289562106048400554298,-19,71, + 5519007584354305.,9007195114682859.,-.245790883699451742761,-19,72, + 5519007584354317.,7318349134973855.,-.248766404616304643305,-19,68, + 5519007584354342.,5348024488131731.,-.494274905524673884334,-19,66, + 5519007584354343.,5488761976107581.,.181622721093684185843,-19,66, + 5519007584355307.,8822475915755119.,-.355269997439873637448,-19,62, + 5519007584359302.,5495275882123963.,.441180383557404517156,-19,59, + 5519007584375833.,5916183491178565.,.405859158374466285215,-19,57, + 7304668022910975.,9007199229022679.,.002599061033847825452,-19,72, + 7304668022910976.,-6902241061516902.,.097143665637497455099,-19,100, + 7304668022910977.,-4503599640224191.,-.165367137143019981868,-19,71, + 7304668022910990.,-7881299348568803.,.438199075238721487900,-19,68, + 7304668022912256.,-5629493941822008.,-.399031320149028414169,-19,61, + 7304668022921404.,-5732475643394749.,.247997580876870510231,-19,58, + 7304668022922207.,-6173835347865420.,.179041811701209492566,-19,58, + 7304668022922216.,-6178782014105688.,-.319812672113141288593,-19,58, + 7347785269663743.,-9007199171893817.,.429034569522925465296,-12,65, + 7347785269663745.,9007199158631197.,.295701235141710447750,-12,65, + 4586976137695743.,-9007198896928603.,-.380843757498355173307,-11,64, + 4586976137695745.,9007198896725506.,.485822860727438496622,-11,64, + 5500059640559615.,-9007198893714497.,-.305980799904349854870,-11,64, + 5500059640559617.,9007198899939613.,-.439314181934722898555,-11,64, + 8944333985714495.,9007107629047499.,.139947648740339346257,-7,60, + 8944333985714497.,-9007107629055762.,.085978705839602708625,-7,60, + 6851593493588863.,9005733310818489.,.267583653033044817445,-5,58, + 6851593493588865.,-9005733310818340.,.168465888079437924862,-5,58, + 5706674932067740.,-8913667029669235.,-.030480085957072854157,-2,55, + 5706674932067742.,8913667029669242.,.426852375080671947110,-2,55, + 6134899525417044.,-8636562708039153.,.341335283153870185092,-1,54, + 6134899525417046.,8636562708039151.,.157445389056987762061,-1,54 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/cosh.c b/src/regress/lib/libm/fpaccuracy/cosh.c new file mode 100644 index 000000000..549a8d963 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/cosh.c @@ -0,0 +1,1362 @@ +/* $OpenBSD: cosh.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:29:13. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1331 +#define F cosh +#define Fs "cosh" +#define Fn fpaccuracy_cosh + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -6243314768165360.,4503599627370901.,.052842325082602236839,-43,-971, + -6243314768165359.,9007199254740778.,.105684650131313781083,-43,-970, + -6243314768165349.,9007199254730538.,.105684656195249555615,-43,-970, + -6243314768164400.,9007199253758762.,.105738205931081010647,-43,-970, + -6243314768069474.,9007199156554539.,-.359155672558888708604,-43,-970, + -6243314758582472.,9007189441869835.,.413784844360260244941,-43,-970, + -6243313862843034.,9006272252385836.,-.210060427227841147163,-43,-970, + -6118372863830534.,6402687238285444.,-.310642431481599566121,-43,-950, + -6118372863822594.,6402687232505908.,-.352461194469589299637,-43,-950, + -6118372863767014.,6402687192049156.,-.499115584326286594129,-43,-950, + -6118372863763044.,6402687189159388.,-.499808959225495233590,-43,-950, + -6118372863762882.,6402687189041467.,.496160216884263055050,-43,-950, + -5516350644834823.,7662101879271875.,.499424903300491283096,-43,-851, + -5516350644834773.,7662101879228321.,.492777263542115118884,-43,-851, + -5516350644834698.,7662101879162990.,.482806268109296421721,-43,-851, + -5516350644834224.,7662101878750098.,.499802462109254259076,-43,-851, + -5516350644833625.,7662101878228322.,-.499784446894911288826,-43,-851, + -5516350644828209.,7662101873510552.,-.497775217567062928445,-43,-851, + -5516350644795713.,7662101845203932.,-.424717725499005689058,-43,-851, + -5516350644793005.,7662101842845047.,-.413909199326120865122,-43,-851, + -5353889512863459.,4896010505527014.,.499931061075717776903,-43,-825, + -5353889512862356.,4896010504913072.,-.482893615934384168089,-43,-825, + -5353889512862338.,4896010504903053.,-.498025202518124182633,-43,-825, + -5353889512862271.,4896010504865760.,-.498792594613803975758,-43,-825, + -5353889512862137.,4896010504791173.,.499673473379225037899,-43,-825, + -5353889512859560.,4896010503356785.,-.499754310408817377501,-43,-825, + -4789820378197109.,6847422516035807.,-.496279424116389755772,-43,-732, + -4789820378187930.,6847422508890306.,-.468496419274235698843,-43,-732, + -4789820378187917.,6847422508880186.,-.472046945985701388315,-43,-732, + -4789820378187826.,6847422508809346.,-.496900214179883909873,-43,-732, + -4789820378187813.,6847422508799225.,.499549378761815344603,-43,-732, + -4789820378185561.,6847422507046130.,-.499880039932849993094,-43,-732, + -4789820378184435.,6847422506169582.,-.499426437102531297762,-43,-732, + -4789820378147539.,6847422477447455.,-.427814539214933615434,-43,-732, + -4679751055989864.,6600123655966303.,-.499211191499061609455,-43,-714, + -4679751055986736.,6600123653619217.,-.499787545775505563939,-43,-714, + -4679751055985581.,6600123652752565.,.499571246965473390749,-43,-714, + -4679751055985558.,6600123652735308.,-.485721751323911721835,-43,-714, + -4667961105458214.,6910351832381160.,.499884959787066895968,-43,-712, + -4667961105457628.,6910351831920789.,.496143122121442396614,-43,-712, + -4667961105457602.,6910351831900363.,.478912966187662657582,-43,-712, + -4667961105457581.,6910351831883866.,-.458080577220753570850,-43,-712, + -4667961105457516.,6910351831832800.,.498844419005444226398,-43,-712, + -4667961105456357.,6910351830922272.,-.499921912389501383825,-43,-712, + -4667961105442660.,6910351820161689.,-.490060542468160265146,-43,-712, + -4630681347717618.,6383304230100903.,.450513143503157357442,-43,-706, + -4630681347717598.,6383304230086389.,.497070456272426550262,-43,-706, + -4630681347717555.,6383304230055184.,.497168790475684752598,-43,-706, + -4630681347716523.,6383304229306264.,.499574575364982797645,-43,-706, + -4630681347716308.,6383304229150240.,-.499913159813731196283,-43,-706, + -4630681347706127.,6383304221761912.,-.494545358061482981754,-43,-706, + -4630681347695946.,6383304214373584.,-.480625967884703003663,-43,-706, + -8965037602643141.,5181459806963614.,.499936680711823015527,-44,-682, + -8965037602641776.,5181459806561578.,.469941652698040120671,-44,-682, + -8965037602641761.,5181459806557160.,.491590232265368774472,-44,-682, + -8965037602641479.,5181459806474102.,.498584229244239965489,-44,-682, + -8965037602641432.,5181459806460259.,.499750024849701342919,-44,-682, + -8965037602638845.,5181459805698306.,-.499854353763673527851,-44,-682, + -8965037602614825.,5181459798623650.,-.493923468254210366008,-44,-682, + -8361959343273779.,7549004931347942.,-.494824431996516161606,-44,-632, + -8361959343253177.,7549004922507392.,-.447621765943794848108,-44,-632, + -8361959343253168.,7549004922503530.,-.448860896458781934253,-44,-632, + -8361959343252925.,7549004922399256.,-.482316673524570694213,-44,-632, + -8361959343252799.,7549004922345188.,-.499663546440287736692,-44,-632, + -8361959343251990.,7549004921998037.,-.499921148041403441250,-44,-632, + -8361959343226165.,7549004910916239.,-.491102939573283629392,-44,-632, + -7077148271408190.,5863905218312725.,-.497003479166242162052,-44,-527, + -7077148271394652.,5863905213800179.,-.499788067571862706063,-44,-527, + -7077148271391548.,5863905212765539.,.499915126306432632908,-44,-527, + -7077148271390426.,5863905212391550.,-.499502910037378052181,-44,-527, + -7077148271390423.,5863905212390550.,-.472763354096814765575,-44,-527, + -7077148271357703.,5863905201484175.,-.489863158091418680805,-44,-527, + -6650655769588343.,5963605207559906.,-.497762802347218115742,-44,-492, + -6650655769577971.,5963605204043884.,-.499713533002672323069,-44,-492, + -6650655769573147.,5963605202408587.,.498542848959435654476,-44,-492, + -6650655769573057.,5963605202378078.,.244783236541543828666,-44,-492, + -6650655769573027.,5963605202367908.,.493530067087252365114,-44,-492, + -6650655769573026.,5963605202367570.,-.498178371595880911404,-44,-492, + -6650655769572785.,5963605202285873.,-.499911532314636958982,-44,-492, + -6650655769556624.,5963605196807428.,-.497397506920443730156,-44,-492, + -6524937861114491.,4811030367099833.,-.498812457306522441544,-44,-482, + -6524937861106824.,4811030365003097.,-.499863603088138426717,-44,-482, + -6524937861103021.,4811030363963070.,-.499915519627393003794,-44,-482, + -6524937861102960.,4811030363946387.,.499822529372608340673,-44,-482, + -6524937861102289.,4811030363762885.,.496944886075146520305,-44,-482, + -6524937861102167.,4811030363729521.,.496422430174589875289,-44,-482, + -6524937861102146.,4811030363723779.,-.487274034794927492823,-44,-482, + -6524937861102127.,4811030363718582.,.479857740901762248035,-44,-482, + -6250030537099773.,6597061091649786.,-.459285167053900089665,-44,-459, + -6250030537037968.,6597061068472941.,.058524283471882303532,-44,-459, + -6250030537037790.,6597061068406191.,.146533955568613899645,-44,-459, + -6250030537037110.,6597061068151191.,.482756898810139621408,-44,-459, + -6250030537037075.,6597061068138067.,-.499937241803389384847,-44,-459, + -6250030537020895.,6597061062070575.,-.496889421661624170892,-44,-459, + -6114225761932221.,5999256403094332.,-.493702362490013106137,-44,-448, + -6114225761915284.,5999256397318506.,-.499279896875015031476,-44,-448, + -6114225761909145.,5999256395224994.,.499658217545351897029,-44,-448, + -6114225761906788.,5999256394421214.,.498304357100496170941,-44,-448, + -6114225761906734.,5999256394402800.,-.486876013798068521997,-44,-448, + -6114225761906733.,5999256394402458.,.494879905792443144576,-44,-448, + -6114225761906514.,5999256394327775.,.499426763090545280546,-44,-448, + -6075304253400759.,5252191711062859.,-.494233000438651572890,-44,-445, + -6075304253374880.,5252191703336618.,-.499611939659861567396,-44,-445, + -6075304253374699.,5252191703282579.,.491928003975111213591,-44,-445, + -6075304253374661.,5252191703271234.,.495676792038614483641,-44,-445, + -6075304253374623.,5252191703259889.,.499425604607875961178,-44,-445, + -6075304253372748.,5252191702700104.,-.499780181330064558198,-44,-445, + -6075304253370616.,5252191702063590.,-.499871283761013811893,-44,-445, + -5883024195997067.,6166580717660834.,-.498314403528208425391,-44,-429, + -5883024195984673.,6166580713316371.,-.499944903826193310669,-44,-429, + -5883024195984182.,6166580713144261.,-.499381679174957887932,-44,-429, + -5883024195984148.,6166580713132342.,.496584180202394531343,-44,-429, + -5883024195984131.,6166580713126383.,.494567118528686956018,-44,-429, + -5883024195981202.,6166580712099683.,-.499933600272112167959,-44,-429, + -5883024195912290.,6166580687943992.,-.448574415199830178213,-44,-429, + -5701287883562775.,6591881948312705.,-.492708360004144215670,-44,-414, + -5701287883540723.,6591881940049708.,-.499792907638473437075,-44,-414, + -5701287883537237.,6591881938743486.,-.499874044743543922602,-44,-414, + -5701287883536630.,6591881938516040.,-.499287990476483769399,-44,-414, + -5701287883536613.,6591881938509670.,-.486091892458462709398,-44,-414, + -5701287883536596.,6591881938503300.,-.472895788284880572856,-44,-414, + -5701287883520414.,6591881932439822.,-.497200746879446292406,-44,-414, + -5696749128557056.,5092864957438880.,.499951718012481167348,-44,-414, + -5696749128555741.,5092864957058193.,.449355889268833146346,-44,-414, + -5696749128555729.,5092864957054719.,.499084423374689393391,-44,-414, + -5696749128555608.,5092864957019691.,-.499486058645252253954,-44,-414, + -5696749128553557.,5092864956425934.,.499988127114343030313,-44,-414, + -5696749128539561.,5092864952374151.,-.497851536290372317378,-44,-414, + -5696749128536062.,5092864951361205.,-.496807777094792211208,-44,-414, + -5638498817029594.,5944280983562912.,-.461940763534553940796,-44,-409, + -5638498816970164.,5944280963481916.,-.499870303108722805995,-44,-409, + -5638498816966651.,5944280962294897.,-.496253375373954018788,-44,-409, + -5638498816966642.,5944280962291855.,.464473530902303902777,-44,-409, + -5638498816966548.,5944280962260093.,.498732422768788623912,-44,-409, + -5638498816966370.,5944280962199948.,.499776321266437917475,-44,-409, + -5638498816965377.,5944280961864420.,.499993056834717467497,-44,-409, + -5505190638565440.,6229872943225625.,-.482304839692664955083,-44,-398, + -5505190638524914.,6229872928874262.,.499982869455655179976,-44,-398, + -5505190638524804.,6229872928835308.,.499584974303608508908,-44,-398, + -5505190638523704.,6229872928445768.,.495619419168435080956,-44,-398, + -5505190638523539.,6229872928387337.,.495026686694943640457,-44,-398, + -5505190638523515.,6229872928378838.,.440395062171379210993,-44,-398, + -5505190638519862.,6229872927085212.,-.499858261266539026145,-44,-398, + -5420430315892106.,6445096941756021.,-.499887944696836659661,-44,-391, + -5420430315891987.,6445096941712424.,-.499949788521320029530,-44,-391, + -5420430315889369.,6445096940753289.,.498764258583781058100,-44,-391, + -5420430315888785.,6445096940539334.,.473286786950168772534,-44,-391, + -5420430315888774.,6445096940535304.,.498491902724077983987,-44,-391, + -5220990584968046.,5037139715523998.,-.497624887315354518478,-44,-375, + -5220990584951415.,5037139710762073.,-.499883057743929156024,-44,-375, + -5220990584951022.,5037139710649546.,-.499160429171066417032,-44,-375, + -5220990584950955.,5037139710630362.,-.491403394353753353718,-44,-375, + -5220990584950946.,5037139710627785.,-.445585279632839246421,-44,-375, + -5220990584950891.,5037139710612037.,-.498918994359488672419,-44,-375, + -5220990584947290.,5037139709580969.,-.499806524151255929048,-44,-375, + -5220990584934915.,5037139706037657.,-.497915258136391633900,-44,-375, + -4674746968038891.,5801443769053527.,-.498217306259717154212,-44,-330, + -4674746968027980.,5801443765455364.,-.499944166214375475228,-44,-330, + -4674746968025689.,5801443764699851.,.499885077417835483953,-44,-330, + -4674746968025145.,5801443764520454.,.499422495561364356793,-44,-330, + -4674746968025092.,5801443764502976.,.482833606759471419698,-44,-330, + -8493093674416151.,5354293373536599.,.499972783745731756131,-45,-295, + -8493093674414282.,5354293373252178.,.499376029405043844147,-45,-295, + -8493093674413833.,5354293373183851.,-.499159944911752283629,-45,-295, + -8493093674413805.,5354293373179590.,-.487932760751850663825,-45,-295, + -8493093674405908.,5354293371977839.,-.499901942939061814747,-45,-295, + -8493093674272749.,5354293351713946.,-.456978311836164101139,-45,-295, + -7542952159268998.,5506849710981740.,-.499976920203892214192,-45,-256, + -7542952159265802.,5506849710481520.,.492815481075281434009,-45,-256, + -7542952159265798.,5506849710480894.,.436486088270032388170,-45,-256, + -7542952159265767.,5506849710476042.,.499933296442608073282,-45,-256, + -7402687662027206.,6542497797107338.,-.499680417798739116234,-45,-250, + -7402687662026912.,6542497797052669.,-.497253691651403634783,-45,-250, + -7402687662026716.,6542497797016223.,-.495635620434740547729,-45,-250, + -7402687662026696.,6542497797012504.,-.475062336446038375745,-45,-250, + -7402687662026677.,6542497797008970.,.494482285301316605365,-45,-250, + -7402687662025991.,6542497796881410.,-.499852725199635071252,-45,-250, + -7402687662024776.,6542497796655481.,.499982769230336142870,-45,-250, + -7402687661955560.,6542497783784838.,-.486630193867293102687,-45,-250, + -5533987403460993.,8490909837316888.,-.499784051037183453974,-45,-173, + -5533987403453592.,8490909835530832.,.499981351907065240409,-45,-173, + -5533987403453267.,8490909835452401.,.494034518682252858641,-45,-173, + -5533987403453233.,8490909835444196.,.404181661066307329550,-45,-173, + -5533987403453221.,8490909835441300.,.490115948506677718780,-45,-173, + -5533987403453080.,8490909835407273.,.499843899914579910492,-45,-173, + -5533987403424500.,8490909828510172.,-.497164798278943750606,-45,-173, + -8816008732654722.,7548914371931220.,-.499821982338286642100,-46,-127, + -8816008732643233.,7548914370698719.,.499992327200145713941,-46,-127, + -8816008732639906.,7548914370341811.,-.499936832272867950318,-46,-127, + -8816008732639143.,7548914370259959.,-.488797077144212128527,-46,-127, + -8816008732639114.,7548914370256847.,.491967098814853837992,-46,-127, + -8816008732639020.,7548914370246763.,.498582022805599080446,-46,-127, + -7458231406760163.,8451538560158338.,-.499427954995625163088,-46,-99, + -7458231406760134.,8451538560154854.,.496560693929822678536,-46,-99, + -7458231406760076.,8451538560147888.,.488537996086910727849,-46,-99, + -7458231406760066.,8451538560146687.,.452672014280505141608,-46,-99, + -7458231406759912.,8451538560128192.,-.499664083984990986160,-46,-99, + -7458231406759661.,8451538560098046.,-.499900105445848979805,-46,-99, + -7458231406713043.,8451538554499057.,-.498046854650079490535,-46,-99, + -7458231406624045.,8451538543810078.,-.484208827243449380332,-46,-99, + -7247003435980301.,6720800171728859.,-.499794224686711002082,-46,-95, + -7247003435965027.,6720800170270064.,.499950909350490044688,-46,-95, + -7247003435963223.,6720800170097768.,-.499927343560740695300,-46,-95, + -7247003435962802.,6720800170057558.,.499547380554647844326,-46,-95, + -7247003435962501.,6720800170028810.,.496796677580991686919,-46,-95, + -7247003435962491.,6720800170027855.,.413648815805354899755,-46,-95, + -7247003435962381.,6720800170017349.,.499022345231231825374,-46,-95, + -7247003435940312.,6720800167909577.,-.499659843595399461720,-46,-95, + -5622313485444599.,5423987981236720.,-.499960449850076872159,-46,-62, + -5622313485435543.,5423987980538688.,-.498810733235236617831,-46,-62, + -5622313485435467.,5423987980532829.,.458796468700884263015,-46,-62, + -5622313485435455.,5423987980531905.,-.495265551467690956038,-46,-62, + -5622313485435304.,5423987980520265.,.499454041557854902704,-46,-62, + -5622313485432474.,5423987980302130.,.499832491487752396629,-46,-62, + -5622313485431342.,5423987980214876.,.499986327808417314346,-46,-62, + -5622313485391005.,5423987977105721.,-.498916187336958533550,-46,-62, + -7183204151116525.,6992709483144679.,.490568203648402927683,-47,-20, + -7183204151116474.,6992709483142145.,.494915674206994197569,-47,-20, + -7183204151116423.,6992709483139611.,.499263145683846691165,-47,-20, + -7183204151116184.,6992709483127737.,-.499971240454677817845,-47,-20, + -7183204151112274.,6992709482933464.,-.499995363447746245753,-47,-20, + -4831095367903619.,6473146689471517.,.127793186259825304625,-47,4, + -4831095367903554.,6473146689468527.,.487010673157346082388,-47,4, + -4831095367903552.,6473146689468435.,.498063518929935325584,-47,4, + -4831095367902647.,6473146689426810.,.499476365155271459188,-47,4, + -4831095367902285.,6473146689410161.,-.499958421408147584546,-47,4, + -4831095367895228.,6473146689085578.,-.499981050654600833709,-47,4, + -4831095367863381.,6473146687620792.,-.499739014126657974824,-47,4, + -6476946479458197.,5164231957494715.,-.499971424297302422332,-48,20, + -6476946479431125.,5164231956998024.,-.499577717051919811588,-48,20, + -6476946479431004.,5164231956995804.,-.491116925767321788154,-48,20, + -6476946479430955.,5164231956994905.,-.495955117454969437396,-48,20, + -6476946479430906.,5164231956994005.,.499206691013884345874,-48,20, + -6476946479429471.,5164231956967678.,-.499625991566088971192,-48,20, + -6476946479417893.,5164231956755256.,-.499958920238474981898,-48,20, + -6476946479417066.,5164231956740083.,-.499982366510154472168,-48,20, + -7016733804641895.,8895966829730461.,-.499999915786940342698,-49,36, + -7016733804640817.,8895966829713426.,-.499619104102476182469,-49,36, + -7016733804640665.,8895966829711024.,-.466170230072081369472,-49,36, + -7016733804640655.,8895966829710866.,-.490285435705239162919,-49,36, + -7016733804640650.,8895966829710786.,.497656961479234592425,-49,36, + -5544508544501175.,5206157935361732.,-.499969325610191050605,-49,39, + -5544508544423899.,5206157934647083.,.499977868442926974880,-49,39, + -5544508544423649.,5206157934644772.,-.498572792815051966053,-49,39, + -5544508544423641.,5206157934644698.,-.482526413958353866708,-49,39, + -5544508544423609.,5206157934644402.,-.418340898521047717106,-49,39, + -5263775657348749.,6323719379597360.,-.470027310482980373433,-49,40, + -5263775657348736.,6323719379597213.,.498606681722017066643,-49,40, + -5263775657348067.,6323719379589698.,.499848285131311020010,-49,40, + -5263775657343221.,6323719379535262.,.499873679012219480850,-49,40, + -5263775657318991.,6323719379263083.,-.499992322622894839843,-49,40, + -5067862284394044.,8930234663656590.,.499995606377145566166,-49,41, + -5067862284384784.,8930234663509696.,.499960479970874909384,-49,41, + -5067862284382341.,8930234663470942.,.499735632922062291455,-49,41, + -5067862284381829.,8930234663462820.,.498869865581824379756,-49,41, + -5067862284381690.,8930234663460616.,-.497458925448497452657,-49,41, + -5067862284380154.,8930234663436249.,.499943822868588304999,-49,41, + -4925871372206596.,6939405823318554.,-.499995518781840901042,-49,41, + -4925871372192795.,6939405823148430.,.499947709628118238307,-49,41, + -4925871372192486.,6939405823144622.,-.499908596699585792012,-49,41, + -4925871372192477.,6939405823144511.,-.441651984231194158455,-49,41, + -4925871372185740.,6939405823061464.,.499992757746818098815,-49,41, + -4837866588169186.,5935126035485938.,-.499993263951866015864,-49,41, + -4837866588169046.,5935126035484461.,.493866430238402972835,-49,41, + -4837866588169022.,5935126035484208.,.464242377850734273209,-49,41, + -4837866588169011.,5935126035484092.,.492331353843324583998,-49,41, + -4720078277082580.,4814605977661064.,-.499591692314027817399,-49,41, + -4720078277082475.,4814605977660165.,.492384944428820681259,-49,41, + -4720078277082437.,4814605977659840.,.499005060624652631555,-49,41, + -4720078277081827.,4814605977654624.,-.499987807965981414189,-49,41, + -4720078277054033.,4814605977416917.,-.499994580985302454763,-49,41, + -8886660217099020.,5889658259297368.,-.499983226646116811914,-50,42, + -8886660217069721.,5889658259144103.,-.499985700454732947754,-50,42, + -8886660217066869.,5889658259129184.,-.499951597388308251441,-50,42, + -8886660217061165.,5889658259099346.,-.499883277882148743476,-50,42, + -8886660217059633.,5889658259091332.,-.492852279920161358304,-50,42, + -8886660217059607.,5889658259091195.,.499434147032303889573,-50,42, + -8757940169999925.,5253379812529674.,-.499989862074179850822,-50,42, + -8757940169988505.,5253379812476389.,-.499899795882797669859,-50,42, + -8757940169979369.,5253379812433761.,-.499827353791426496010,-50,42, + -8757940169978911.,5253379812431624.,-.498948056324255866046,-50,42, + -8757940169978827.,5253379812431232.,-.437651416519781518911,-50,42, + -8757940169978782.,5253379812431022.,-.404813930898213190356,-50,42, + -8757940169978456.,5253379812429500.,.499742076299759835947,-50,42, + -8757940169946480.,5253379812280302.,.499998468573146342210,-50,42, + -8535358698054710.,8622084258793145.,.499996354223268948421,-50,43, + -8535358698045843.,8622084258725243.,-.499971277788210110529,-50,43, + -8535358698042709.,8622084258701242.,.499814735005290455779,-50,43, + -8535358698041256.,8622084258690116.,-.494540993257455123318,-50,43, + -8535358698041218.,8622084258689825.,-.496458073363453460650,-50,43, + -8535358698041142.,8622084258689242.,.499707766454014505024,-50,43, + -8298192411034277.,6984413385311917.,-.443345330560915994008,-50,43, + -8298192411034262.,6984413385311824.,-.494350184690992684306,-50,43, + -8298192411033967.,6984413385309994.,-.497445648997235158822,-50,43, + -8298192411033731.,6984413385308530.,-.499922020097000434391,-50,43, + -8298192411030496.,6984413385288462.,-.499968855721708558133,-50,43, + -8298192411027261.,6984413385268393.,.499984366314154422573,-50,43, + -8298192410964267.,6984413384877617.,-.499987673867993010854,-50,43, + -8244336335603565.,6658187117794335.,-.499998026974882675680,-50,43, + -8244336335567397.,6658187117580450.,-.499956142442522292937,-50,43, + -8244336335566899.,6658187117577505.,-.499126055269460167009,-50,43, + -8244336335566760.,6658187117576683.,-.496886331910311528174,-50,43, + -8244336335566749.,6658187117576617.,.452931200158414745977,-50,43, + -8244336335566540.,6658187117575381.,.499464309584966251892,-50,43, + -8244336335551774.,6658187117488060.,.499981128532153307136,-50,43, + -7846976255498413.,4678235656827312.,-.499993475066582938084,-50,43, + -7846976255478484.,4678235656744504.,.499989113575786961077,-50,43, + -7846976255461437.,4678235656673672.,.499925205110035804958,-50,43, + -7846976255461276.,4678235656673004.,-.471272671473240893186,-50,43, + -7846976255461263.,4678235656672950.,-.487580574547219740324,-50,43, + -7846976255461250.,4678235656672895.,.496111522379425103186,-50,43, + -7846976255461192.,4678235656672655.,-.499723737478714594719,-50,43, + -7846976255458555.,4678235656661697.,.499973167946691271905,-50,43, + -7668040568180572.,7981622708436956.,-.499992768334469692776,-50,44, + -7668040568132204.,7981622708094071.,-.499874834787749295621,-50,44, + -7668040568132103.,7981622708093355.,-.497745066000217241006,-50,44, + -7668040568132081.,7981622708093199.,-.457677195562730846948,-50,44, + -7668040568132058.,7981622708093035.,.493302850806990583270,-50,44, + -7668040568127512.,7981622708060809.,-.499945310030979594104,-50,44, + -7668040568125166.,7981622708044178.,-.499980495672280219249,-50,44, + -7570200877287364.,7317310673969412.,.499940197920420767722,-50,44, + -7570200877285771.,7317310673959059.,.499513750256290874208,-50,44, + -7570200877285769.,7317310673959047.,-.498603545965091232172,-50,44, + -7570200877285665.,7317310673958371.,-.400702949445143624127,-50,44, + -7570200877285573.,7317310673957773.,-.314098575548531165897,-50,44, + -7570200877280459.,7317310673924536.,.499975067674809930545,-50,44, + -7570200877273554.,7317310673879661.,-.499989787351242384747,-50,44, + -7570200877217252.,7317310673513751.,-.499982596433817056522,-50,44, + -6983805627860130.,8693443238858879.,-.499999777736651329992,-50,45, + -6983805627814549.,8693443238506936.,-.499985975502782471731,-50,45, + -6983805627809207.,8693443238465689.,-.499961486161464661123,-50,45, + -6983805627808859.,8693443238463001.,.499665724351755489322,-50,45, + -6983805627808737.,8693443238462060.,-.494717839582050836700,-50,45, + -6983805627808730.,8693443238462005.,.456424087080581215658,-50,45, + -6967621294077025.,8569373569964147.,-.499987556201778515528,-50,45, + -6967621294030063.,8569373569606716.,-.499880270604314005407,-50,45, + -6967621294030027.,8569373569606442.,-.498347028177551531034,-50,45, + -6967621294029523.,8569373569602606.,-.476881633282970130698,-50,45, + -6967621294029433.,8569373569601921.,-.473048526871098910096,-50,45, + -6967621294029428.,8569373569601882.,.471608867931166112560,-50,45, + -6967621294028762.,8569373569596813.,.499973857103351595205,-50,45, + -6967621294022239.,8569373569547167.,-.499988710565340841186,-50,45, + -6615287761648223.,6266783723389420.,-.499996258475112666570,-50,45, + -6615287761647859.,6266783723387393.,.499904710498979334389,-50,45, + -6615287761645857.,6266783723376250.,.499360051564788477096,-50,45, + -6615287761645675.,6266783723375237.,.499310538098740620482,-50,45, + -6615287761645638.,6266783723375032.,-.440259967366086183267,-50,45, + -6615287761645622.,6266783723374943.,-.495209375132563841071,-50,45, + -6585707430242324.,6104285548305327.,-.484754324661005523709,-50,45, + -6585707430242305.,6104285548305224.,-.495242300591960298266,-50,45, + -6585707430242203.,6104285548304671.,-.498914592402106739956,-50,45, + -6585707430241916.,6104285548303115.,-.499443491638321979953,-50,45, + -6585707430241629.,6104285548301559.,-.499972390477894883143,-50,45, + -6585707430239722.,6104285548291219.,.499997619292524000618,-50,45, + -5638731028508581.,5265049803090430.,-.499990232746871232479,-50,46, + -5638731028505110.,5265049803074199.,.499943937144628112642,-50,46, + -5638731028492383.,5265049803014689.,.499702988195042586887,-50,46, + -5638731028491914.,5265049803012497.,-.490798531525505490795,-50,46, + -5638731028491908.,5265049803012468.,.453885884006376230338,-50,46, + -5638731028491877.,5265049803012324.,-.498577969076519573524,-50,46, + -5638731028462048.,5265049802872846.,.499995699665972076151,-50,46, + -5534229527508387.,4798405793378645.,.499640789501145630009,-50,46, + -5534229527508211.,4798405793377895.,.496379230715326885698,-50,46, + -5534229527508192.,4798405793377815.,-.469881960282948143657,-50,46, + -5534229527507794.,4798405793376119.,-.499984802985332673413,-50,46, + -5534229527499821.,4798405793342142.,.499990285980998587380,-50,46, + -5534229527462416.,4798405793182746.,-.499997947305605434723,-50,46, + -5402948249602198.,8540707420680334.,-.499987065011528474747,-50,47, + -5402948249555460.,8540707420325842.,.499983828484787303874,-50,47, + -5402948249546227.,8540707420255813.,.499958423571301989181,-50,47, + -5402948249545081.,8540707420247122.,-.499828075299840964330,-50,47, + -5402948249542281.,8540707420225885.,-.497561194134730218104,-50,47, + -5402948249542269.,8540707420225793.,.486734235469651321490,-50,47, + -5402948249542257.,8540707420225702.,.471029665075003051032,-50,47, + -5402948249542216.,8540707420225392.,-.499294283766058321803,-50,47, + -5379832785877681.,8367172636446718.,-.499999055683928136433,-50,47, + -5379832785864805.,8367172636351043.,-.499963529484329155764,-50,47, + -5379832785864438.,8367172636348316.,-.490099189266483270359,-50,47, + -5379832785864431.,8367172636348263.,.496464980719063972682,-50,47, + -5379832785864359.,8367172636347729.,-.498874985125106747705,-50,47, + -4831850099948337.,5143460617548304.,.487752791517590559105,-50,47, + -4831850099948330.,5143460617548273.,-.478448973307552401718,-50,47, + -4831850099948277.,5143460617548030.,.491737664451387994442,-50,47, + -4831850099948157.,5143460617547482.,.499707410362803595104,-50,47, + -4831850099946648.,5143460617540591.,.499926970185818173592,-50,47, + -4831850099946145.,5143460617538295.,-.499999841153354916342,-50,47, + -4802568026215744.,5011465635498064.,-.499996664999188690137,-50,47, + -4802568026186255.,5011465635366857.,.499912432023077074758,-50,47, + -4802568026185741.,5011465635364571.,-.450613046128315647211,-50,47, + -4802568026185732.,5011465635364531.,-.494493842429055281027,-50,47, + -4802568026185594.,5011465635363916.,.499333947666369155918,-50,47, + -4802568026184637.,5011465635359659.,-.499990723296148267148,-50,47, + -4682712477329302.,4505604613804427.,.499998812943811082449,-50,47, + -4682712477306039.,4505604613711379.,.499993846608857617313,-50,47, + -4682712477301832.,4505604613694552.,.223373629282876509355,-50,47, + -4682712477301786.,4505604613694368.,.231283178003029729359,-50,47, + -4682712477300630.,4505604613689744.,.430053578744074310787,-50,47, + -4682712477300229.,4505604613688140.,.499004211944616783561,-50,47, + -4682712477300223.,4505604613688117.,-.499964107753778447181,-50,47, + -4681019096820415.,8997672952849880.,-.499856067201481478555,-50,48, + -4681019096820338.,8997672952849264.,.452818631431594835564,-50,48, + -4681019096820334.,8997672952849233.,-.497691773833069520071,-50,48, + -4681019096813949.,8997672952798232.,-.499926032778261362607,-50,48, + -4681019096807483.,8997672952746584.,-.499995701597313168595,-50,48, + -4561872225366603.,8094622759436659.,.496894138481819515632,-50,48, + -4561872225366576.,8094622759436465.,.498619021912198857442,-50,48, + -4561872225366549.,8094622759436272.,-.499656094652766748330,-50,48, + -4561872225365393.,8094622759427966.,-.499879599512441200152,-50,48, + -4561872225364815.,8094622759423813.,-.499991348742322598952,-50,48, + -4561872225346843.,8094622759294681.,.499995256910491854975,-50,48, + -6156088788838611.,8701540531990260.,-.499999262400582798333,-51,50, + -6156088788838183.,8701540531988619.,.499870634492641749227,-51,50, + -6156088788834117.,8701540531973039.,.498634670656866147851,-51,50, + -6156088788833731.,8701540531971560.,.433096776892667099256,-51,50, + -6156088788833701.,8701540531971445.,.479816629719629375229,-51,50, + -6156088788833689.,8701540531971399.,.498504570850846736842,-51,50, + -5647124200222959.,6957872598582359.,.499998069335807888101,-51,50, + -5647124200220479.,6957872598574797.,.499800932650039974840,-51,50, + -5647124200218060.,6957872598567422.,-.499584895365536747835,-51,50, + -5647124200218040.,6957872598567361.,-.483457452818762311011,-51,50, + -5647124200217999.,6957872598567235.,.499603804403841218602,-51,50, + -5642922688546544.,6945073480024996.,.499993822311452836396,-51,50, + -5642922688543620.,6945073480016098.,-.499924380074737817944,-51,50, + -5642922688542883.,6945073480013854.,.489494323839194820372,-51,50, + -5642922688542837.,6945073480013714.,.491547594393089101042,-51,50, + -5642922688542653.,6945073480013154.,.499760676637648530601,-51,50, + -5642922688533881.,6945073479986458.,-.499993848640181265200,-51,50, + -5213169472822023.,5756059254623593.,-.485911956141791758031,-51,50, + -5213169472822021.,5756059254623588.,-.499564476616284456171,-51,50, + -5213169472820849.,5756059254620650.,-.499941473888040853249,-51,50, + -5213169472799461.,5756059254567034.,-.499995139990692484805,-51,50, + -8724415468946421.,7975271891675484.,.499995517319147739044,-52,51, + -8724415468929820.,7975271891647282.,.499899158794961793900,-52,51, + -8724415468928472.,7975271891644992.,.499529915236084176642,-52,51, + -8724415468928223.,7975271891644569.,.495010670769635524930,-52,51, + -8724415468924511.,7975271891638263.,.499928603542070943668,-52,51, + -8724415468913893.,7975271891620225.,.499987526284834967928,-52,51, + -8099766831116405.,6987540618489811.,-.499946669391345529428,-52,51, + -8099766831116309.,6987540618489669.,.497847901220517088002,-52,51, + -8099766831115925.,6987540618489105.,.489026183699717815998,-52,51, + -8099766831115893.,6987540618489058.,.488291040575277617540,-52,51, + -8099766831113683.,6987540618485813.,-.499979780602875244738,-52,51, + -8099766831112322.,6987540618483814.,-.499996335251418908346,-52,51, + -6700063144980784.,5238640701733832.,-.499935249448330501935,-52,51, + -6700063144980685.,5238640701733728.,-.476423135843152340948,-52,51, + -6700063144980605.,5238640701733644.,-.497827488483583294814,-52,51, + -6700063144949949.,5238640701701447.,-.499975298613165928013,-52,51, + -6700063144931448.,5238640701682016.,-.499999210235302693734,-52,51, + -6254473773345003.,4795550871078184.,.499999167649725169768,-52,51, + -6254473773334379.,4795550871068197.,-.499975419321837595897,-52,51, + -6254473773275947.,4795550871013263.,-.499835170640446435830,-52,51, + -6254473773271370.,4795550871008959.,.499799343159699161349,-52,51, + -6254473773271320.,4795550871008912.,.493022355135925631918,-52,51, + -6254473773270635.,4795550871008269.,-.499822380730251180531,-52,51, + -8245673680828457.,6526263500829415.,.499947398287596964780,-53,52, + -8245673680828375.,6526263500829372.,.499695210867583475828,-53,52, + -8245673680827309.,6526263500828813.,.496416774456629542030,-53,52, + -8245673680827185.,6526263500828748.,.471645173979489266040,-53,52, + -8245673680827166.,6526263500828739.,-.491827893835447140399,-53,52, + -8245673680827145.,6526263500828727.,.495912399632288511981,-53,52, + -8245673680820545.,6526263500825267.,-.499995365893181856469,-53,52, + -8242701861937643.,6524705454050369.,-.499989152126607534141,-53,52, + -8242701861729357.,6524705453941195.,-.499940350410856688633,-53,52, + -8242701861721346.,6524705453936996.,-.499938403744924259834,-53,52, + -8242701861718448.,6524705453935477.,-.499063899735194707876,-53,52, + -8242701861718034.,6524705453935260.,-.498938970535810767190,-53,52, + -8178102513332180.,6491012945006904.,-.499995985108853313847,-53,52, + -8178102513290567.,6491012944985307.,.499980790114483331919,-53,52, + -8178102513290517.,6491012944985282.,-.448641062618341636559,-53,52, + -8178102513290515.,6491012944985281.,-.486585936727650474886,-53,52, + -8178102513290488.,6491012944985267.,-.498841737203288469213,-53,52, + -8003544517573701.,6401635464227793.,.499998457234171278177,-53,52, + -8003544517553222.,6401635464217449.,.495611615716139570630,-53,52, + -8003544517553202.,6401635464217439.,.393551567056580364975,-53,52, + -8003544517553125.,6401635464217401.,-.499379620282427901409,-53,52, + -8003544517552929.,6401635464217302.,-.499568097143246976232,-53,52, + -8003544517552537.,6401635464217104.,-.499945050855791338473,-53,52, + -8003544517536566.,6401635464209037.,-.499996897032731538071,-53,52, + -7834633035949477.,6317438440555928.,.498596627381543855343,-53,52, + -7834633035949231.,6317438440555808.,-.499668869091939550358,-53,52, + -7834633035948125.,6317438440555263.,.499999264707447359388,-53,52, + -7546489395530079.,6178919966200913.,-.499988491590803478257,-53,52, + -7546489395529436.,6178919966200610.,.499984184019189444350,-53,52, + -7546489395524935.,6178919966198496.,.499792914170823998186,-53,52, + -7546489395523715.,6178919966197923.,.498185860623013380504,-53,52, + -7546489395523649.,6178919966197892.,.499738265926118044293,-53,52, + -7546489395456645.,6178919966166423.,-.499998457953293323780,-53,52, + -7532060552269350.,6172151046777684.,.499671759178428127453,-53,52, + -7532060552269175.,6172151046777602.,.499023232124015984838,-53,52, + -7532060552269079.,6172151046777558.,-.484189674144843344087,-53,52, + -7532060552269000.,6172151046777520.,.498374705071933719806,-53,52, + -7532060552267918.,6172151046777014.,-.499920759278347877662,-53,52, + -7532060552263272.,6172151046774837.,-.499995367666610107941,-53,52, + -7165093878956314.,6005275203526650.,.499990608703774815424,-53,52, + -7165093878945451.,6005275203521859.,.499915957069863027148,-53,52, + -7165093878940134.,6005275203519514.,.498774754073446236603,-53,52, + -7165093878940100.,6005275203519500.,-.496530643870145346927,-53,52, + -7165093878940032.,6005275203519470.,-.487141439757071810088,-53,52, + -7165093878939481.,6005275203519227.,-.499296565239985209869,-53,52, + -7165093878938633.,6005275203518853.,-.499854725648910126057,-53,52, + -7165093878916907.,6005275203509270.,.499996008252197542444,-53,52, + -7017962821202702.,5941183073803213.,-.499998313432538330021,-53,52, + -7017962821159790.,5941183073784752.,-.499993424576137281384,-53,52, + -7017962821159353.,5941183073784563.,.499983322398951904995,-53,52, + -7017962821149302.,5941183073780239.,.499448506685808070361,-53,52, + -7017962821146350.,5941183073778970.,-.468671955144732691930,-53,52, + -7017962821146336.,5941183073778964.,-.491555995273844921296,-53,52, + -7017962821146329.,5941183073778960.,.497001984661604346480,-53,52, + -7017962821146243.,5941183073778923.,.499285738154559628869,-53,52, + -6848882081836112.,5869486054436035.,-.499987088697575904747,-53,52, + -6848882081660115.,5869486054362486.,-.499960323617606504530,-53,52, + -6848882081658763.,5869486054361921.,-.499636240179231456625,-53,52, + -6848882081658696.,5869486054361893.,-.498880534857470493007,-53,52, + -6848882081658562.,5869486054361837.,-.497369124212974268704,-53,52, + -6848882081657478.,5869486054361383.,.499932138063397285617,-53,52, + -6471417749984994.,5716852579179082.,.499984888587396568737,-53,52, + -6471417749983889.,5716852579178651.,-.499512948843149318093,-53,52, + -6471417749983866.,5716852579178642.,-.491357700209567867020,-53,52, + -6471417749983848.,5716852579178634.,.471546407416739270427,-53,52, + -6471417749983646.,5716852579178555.,.499692504113529559592,-53,52, + -6471417749937172.,5716852579160386.,.499998015623627592636,-53,52, + -6320301642428664.,5658575598221067.,-.499981299625563514900,-53,52, + -6320301642428267.,5658575598220915.,.498765866865387317304,-53,52, + -6320301642428217.,5658575598220896.,.480975837456966596630,-53,52, + -6320301642368799.,5658575598198297.,-.499983387108846485314,-53,52, + -6150458818223083.,5594977082458783.,-.499286874270788407284,-53,52, + -6150458818223045.,5594977082458768.,.494800913418900538636,-53,52, + -6150458818223007.,5594977082458754.,.488888701108689067730,-53,52, + -6150458818222999.,5594977082458752.,-.459724396219763815824,-53,52, + -6150458818222402.,5594977082458532.,-.499976784343105975128,-53,52, + -6150458818141214.,5594977082428608.,-.499994791496311579697,-53,52, + -5840746347509331.,5484109679795431.,-.499995235308016774164,-53,52, + -5840746347509213.,5484109679795390.,-.496913231969087299483,-53,52, + -5840746347509193.,5484109679795383.,-.445543400894599189584,-53,52, + -5840746347503491.,5484109679793401.,.499995439544697220558,-53,52, + -5301224375154125.,5306391761497969.,.499782879003916970748,-53,52, + -5301224375153926.,5306391761497907.,.498714440656277449709,-53,52, + -5301224375142917.,5306391761494477.,.499908224745938820969,-53,52, + -5301224375134511.,5306391761491859.,-.499997760555601318003,-53,52, + -5286632173782529.,5301852330730806.,.499995427832543784759,-53,52, + -5286632173738303.,5301852330717069.,.499987874826962941135,-53,52, + -5286632173730998.,5301852330714801.,-.499809860232136916382,-53,52, + -5286632173730866.,5301852330714759.,.499783117071972485119,-53,52, + -5286632173730734.,5301852330714718.,.499376094377220551561,-53,52, + -5286632173726040.,5301852330713261.,-.499946363436865115689,-53,52, + -5158589873384194.,5262615595068558.,-.499997850158857276856,-53,52, + -5158589873359597.,5262615595061123.,-.499992395290853244960,-53,52, + -5158589873358717.,5262615595060857.,-.499910888677464884051,-53,52, + -5158589873357837.,5262615595060591.,-.499829382013843715547,-53,52, + -5158589873357804.,5262615595060581.,-.474826325512980736643,-53,52, + -5158589873357794.,5262615595060578.,-.497552672027856796685,-53,52, + -4827510902891409.,5166072474388769.,-.499996972673636685491,-53,52, + -4827510902875907.,5166072474384412.,.499940907074895199931,-53,52, + -4827510902874302.,5166072474383962.,-.498646351953107616084,-53,52, + -4827510902874277.,5166072474383954.,.476453534979217791411,-53,52, + -4827510902874270.,5166072474383953.,-.490518496679723962694,-53,52, + -4827510902874181.,5166072474383928.,-.499162899200282809189,-53,52, + -4827510902874060.,5166072474383894.,-.499679446446525710858,-53,52, + -4827510902870124.,5166072474382788.,-.499953247270450338216,-53,52, + -4827510902862373.,5166072474380610.,-.499984298803576593744,-53,52, + -4504722288324968.,5078668422840897.,.499978909567507821089,-53,52, + -4504722288290757.,5078668422831982.,-.499978059605902849114,-53,52, + -4504722288290239.,5078668422831846.,.499934901407553636139,-53,52, + -4504722288288685.,5078668422831441.,.499673784548704654777,-53,52, + -4504722288288497.,5078668422831393.,-.496496801006980213171,-53,52, + -4504722288288493.,5078668422831391.,.461031484406752657604,-53,52, + -4504722288279008.,5078668422828919.,.499978274537895508455,-53,52, + -7868743568004848.,4940110690624440.,-.499996470271260888958,-54,52, + -7868743567949900.,4940110690618247.,-.499992745704510094083,-54,52, + -7868743567941746.,4940110690617327.,.490726308406879428533,-54,52, + -7868743567941719.,4940110690617324.,.447649219183763974502,-54,52, + -7868743567941684.,4940110690617321.,-.497080340920258060184,-54,52, + -7868743567941613.,4940110690617313.,-.499246019988359761092,-54,52, + -7868743567941125.,4940110690617257.,.499953256278031650219,-54,52, + -7501948289009369.,4899791670364095.,-.499997914593055364643,-54,52, + -7501948289008865.,4899791670364040.,.498492637379065459589,-54,52, + -7501948289004833.,4899791670363608.,.486417053294102794886,-54,52, + -7501948289004413.,4899791670363563.,.485159179966035212714,-54,52, + -7485075199937771.,4897985937895343.,.499996476192357298761,-54,52, + -7485075199918340.,4897985937893266.,.498290195875718218479,-54,52, + -7485075199918265.,4897985937893258.,.481454831210532405412,-54,52, + -7485075199918209.,4897985937893252.,.495551092260582359756,-54,52, + -7485075199918050.,4897985937893235.,.499860119170803601527,-54,52, + -7485075199910388.,4897985937892416.,.499959265447649999268,-54,52, + -7485075199907834.,4897985937892143.,.499992314403500642689,-54,52, + -7250793807649725.,4873356845993420.,.499997792167614663514,-54,52, + -7250793807613697.,4873356845989697.,-.499973034541522129791,-54,52, + -7250793807595683.,4873356845987835.,-.499958440586378674989,-54,52, + -7250793807594048.,4873356845987665.,.499820834725158600050,-54,52, + -7250793807593671.,4873356845987627.,-.468425778851745612321,-54,52, + -7250793807593661.,4873356845987625.,.497933727419453095482,-54,52, + -7250793807593632.,4873356845987623.,-.499623704394062159671,-54,52, + -6713742225384212.,4820002618886339.,.499997952248943582036,-54,52, + -6713742225366644.,4820002618884665.,-.499635471927577929307,-54,52, + -6713742225366560.,4820002618884656.,.491486499415922993706,-54,52, + -6713742225366476.,4820002618884648.,.482608470759528717934,-54,52, + -6713742225364840.,4820002618884493.,-.499825515908395862177,-54,52, + -6713742225363036.,4820002618884320.,.499984440159123329183,-54,52, + -6300104505916805.,4781832049740321.,.499995859685727729972,-54,52, + -6300104505905093.,4781832049739277.,-.499824220683787331691,-54,52, + -6300104505904611.,4781832049739233.,.493864877827915069028,-54,52, + -6300104505904499.,4781832049739224.,-.499302800525722023675,-54,52, + -6300104505899534.,4781832049738781.,-.499994970213292406956,-54,52, + -5733088875683310.,4733600811347966.,.499960362986713142590,-54,52, + -5733088875678181.,4733600811347551.,.499906777813672855740,-54,52, + -5733088875677934.,4733600811347532.,-.485473069230208802095,-54,52, + -5733088875677872.,4733600811347526.,.497953851754867510223,-54,52, + -5733088875677699.,4733600811347513.,-.499903288076800465385,-54,52, + -5733088875667441.,4733600811346682.,.499989542800408090742,-54,52, + -5733088875630574.,4733600811343699.,.499994331836212140713,-54,52, + -5586017142901596.,4721858497059219.,-.499836996328784799736,-54,52, + -5586017142901431.,4721858497059206.,-.496866361650989102067,-54,52, + -5586017142901304.,4721858497059195.,.499359520798250712363,-54,52, + -5586017142900263.,4721858497059113.,.499919706867400815948,-54,52, + -5586017142896556.,4721858497058821.,.499993299462634831844,-54,52, + -5586017142855487.,4721858497055586.,.499999348528522224997,-54,52, + -5137347928755616.,4687977823215297.,.499995993679518519097,-54,52, + -5137347928742470.,4687977823214347.,.499858532377384978625,-54,52, + -5137347928742249.,4687977823214332.,-.470781234750811398327,-54,52, + -5137347928742235.,4687977823214331.,-.482495971129949396180,-54,52, + -5137347928742221.,4687977823214330.,-.494210707509084562627,-54,52, + -5137347928741958.,4687977823214311.,-.499994683773740417191,-54,52, + -5130840493918146.,4687507867094144.,.499999378013501423809,-54,52, + -5130840493903625.,4687507867093097.,-.499984721594440323962,-54,52, + -5130840493895547.,4687507867092513.,.499955259296155521442,-54,52, + -5130840493893912.,4687507867092395.,.499819318429929795684,-54,52, + -5130840493893815.,4687507867092388.,.499199632642749342659,-54,52, + -5130840493893801.,4687507867092387.,.488800915106466480031,-54,52, + -5130840493893787.,4687507867092386.,.478402197570186448525,-54,52, + -5046807759991977.,4681494090352273.,.490651298292529514721,-54,52, + -5046807759991963.,4681494090352272.,.497234999429504645830,-54,52, + -5046807759991808.,4681494090352261.,.498697404874775398646,-54,52, + -5046807759991653.,4681494090352251.,-.499840189679607264671,-54,52, + -5046807759986185.,4681494090351863.,-.499863202511796689428,-54,52, + -5046807759956111.,4681494090349729.,-.499989765378951575483,-54,52, + -5046807759953377.,4681494090349534.,.499998729552836046073,-54,52, + -5010504700974749.,4678927591081369.,.499997823536357428029,-54,52, + -5010504700961460.,4678927591080433.,.492684208846597022516,-54,52, + -5010504700961446.,4678927591080433.,-.493402207782781750501,-54,52, + -5010504700961162.,4678927591080413.,-.496869516549569602835,-54,52, + -5010504700960878.,4678927591080392.,.499663174684805447781,-54,52, + -5010504700959728.,4678927591080311.,.499707523004902689894,-54,52, + -5010504700952828.,4678927591079825.,.499973613325911680828,-54,52, + -8612971451614389.,4632901128904568.,.499995185726210857061,-55,52, + -8612971451601627.,4632901128904184.,-.499987636595398202671,-55,52, + -8612971451598047.,4632901128904075.,.499703751699620358064,-55,52, + -8612971451595362.,4632901128903994.,.499472292950902771119,-55,52, + -8612971451595130.,4632901128903988.,-.499430388027294580404,-55,52, + -8612971451595097.,4632901128903987.,-.494963959028488080737,-55,52, + -8612971451595064.,4632901128903986.,-.490497530029677694367,-55,52, + -6842835487568892.,4585071473649437.,.499994353167189719390,-55,52, + -6842835487550009.,4585071473648987.,-.498616824271658630093,-55,52, + -6842835487549925.,4585071473648984.,.495140346789521790530,-55,52, + -6842835487549885.,4585071473648984.,-.460213381276574011196,-55,52, + -6842835487549883.,4585071473648983.,.492018932320121347071,-55,52, + -6842835487549674.,4585071473648979.,-.499704296825135830596,-55,52, + -6842835487548711.,4585071473648956.,-.499845300013968675006,-55,52, + -6842835487547748.,4585071473648933.,-.499986303199525856823,-55,52, + -6298970528354555.,4572603799520462.,-.499995941991681887759,-55,52, + -6298970528344084.,4572603799520231.,.499819935366161212783,-55,52, + -6298970528341489.,4572603799520174.,.499487799215738399028,-55,52, + -6298970528341488.,4572603799520174.,.477522353305858415372,-55,52, + -6298970528336208.,4572603799520058.,.499967949188656322696,-55,52, + -6070752678071695.,4567682594080166.,.499214291210415066291,-55,52, + -6070752678071652.,4567682594080166.,-.410749974644536435678,-55,52, + -6070752678071648.,4567682594080166.,-.495397813328717639977,-55,52, + -6070752678071317.,4567682594080158.,.499993535555482796220,-55,52, + -6070752678055912.,4567682594079833.,-.499995196461797176727,-55,52, + -6002783559881637.,4566252361603206.,.499996624514547914916,-55,52, + -6002783559861852.,4566252361602793.,-.458124808337722479212,-55,52, + -6002783559861850.,4566252361602793.,-.499970461249743070881,-55,52, + -6002783559854633.,4566252361602641.,.499991005815587472552,-55,52, + -5777052993637214.,4561619030812311.,-.499988962962151757345,-55,52, + -5777052993623900.,4561619030812043.,-.499846159699358678332,-55,52, + -5777052993623105.,4561619030812026.,.497458446644063210953,-55,52, + -5777052993623055.,4561619030812025.,.490999616854415553478,-55,52, + -5777052993622956.,4561619030812023.,.498211133870939110244,-55,52, + -5777052993622658.,4561619030812017.,.499716508324924961322,-55,52, + -5777052993621267.,4561619030811990.,-.499968136417610335658,-55,52, + -5777052993596030.,4561619030811482.,-.499997883164490626965,-55,52, + -4966294589209959.,4546452777593379.,-.499998062439521960731,-55,52, + -4966294589204810.,4546452777593289.,.499992238071379682123,-55,52, + -4966294589199661.,4546452777593200.,.499982538675139243668,-55,52, + -4966294589199256.,4546452777593193.,.499593350826004533621,-55,52, + -4966294589198967.,4546452777593189.,-.495746094330187269210,-55,52, + -4966294589198961.,4546452777593188.,.400544436220206312069,-55,52, + -4966294589198909.,4546452777593188.,-.498270965676377368470,-55,52, + -4966294589198851.,4546452777593186.,.499204162977444314545,-55,52, + -7922455085971660.,4530847165997180.,-.499986390785640219232,-56,52, + -7922455085967884.,4530847165997154.,-.499585355526130964350,-56,52, + -7922455085967739.,4530847165997153.,-.497980972551140097766,-56,52, + -7922455085967738.,4530847165997152.,.495133540434894385704,-56,52, + -7922455085967704.,4530847165997152.,.261026981960067342888,-56,52, + -7922455085967303.,4530847165997149.,.499946689359977444720,-56,52, + -7922455085941742.,4530847165996974.,-.499986874317810744538,-56,52, + -7518049176487624.,4505131720724319.,.499851238691416043035,-58,52, + -7518049176487586.,4505131720724319.,.484362420559222107725,-58,52, + -7518049176487039.,4505131720724319.,.261404959551070715354,-58,52, + -7518049176486943.,4505131720724319.,.222275313743426075229,-58,52, + -7518049176485171.,4505131720724319.,-.499992731789258156222,-58,52, + -7518049176453277.,4505131720724305.,.499997649605865280595,-58,52, + -5034345543218301.,4504286612544905.,-.087752309102376406699,-58,52, + -5034345543218197.,4504286612544905.,-.116136643825913754172,-58,52, + -5034345543216969.,4504286612544905.,-.451290134599945014642,-58,52, + -5034345543216793.,4504286612544905.,-.499325162593610548624,-58,52, + -5034345543216791.,4504286612544905.,-.499871015184447647314,-58,52, + -5034345543165495.,4504286612544891.,-.499898264903020206629,-58,52, + -5034345542982295.,4504286612544841.,-.499995584161891897238,-58,52, + -4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,52, + 0.,4503599627370496.,0.000000000000000000000,0,52, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,52, + 5835457316479768.,4503830378477215.,.499999511639893811506,-59,52, + 5835457316503937.,4503830378477217.,.411442204264803490376,-59,52, + 5835457316503944.,4503830378477217.,.411995810075900436266,-59,52, + 5835457316504368.,4503830378477217.,.445528504919488111454,-59,52, + 5835457316505039.,4503830378477217.,.498595576240359434994,-59,52, + 5835457316505057.,4503830378477218.,-.499980865959676719675,-59,52, + 5835457316517701.,4503830378477218.,.499989401971567113373,-59,52, + 8328945592803082.,4511122976265158.,-.499995799046069966277,-57,52, + 8328945592817470.,4511122976265183.,.499951119550920471490,-57,52, + 8328945592820237.,4511122976265189.,-.499920083963671982611,-57,52, + 8328945592820790.,4511122976265189.,.499382852233285761758,-57,52, + 8328945592820791.,4511122976265190.,-.498810090015905936225,-57,52, + 8328945592820819.,4511122976265190.,-.448212472993273391550,-57,52, + 8328945592820908.,4511122976265190.,-.287384333171333100824,-57,52, + 8328945592841819.,4511122976265228.,-.499999705970907838871,-57,52, + 6916394610522188.,4524361340935612.,.499998185369534695260,-56,52, + 6916394610526349.,4524361340935638.,-.499749457598156726951,-56,52, + 6916394610526639.,4524361340935639.,.242637753058346401072,-56,52, + 6916394610526680.,4524361340935639.,.488975255254616549028,-56,52, + 6916394610526682.,4524361340935640.,-.499008281223614137993,-56,52, + 6916394610527514.,4524361340935644.,.499840543832722374317,-56,52, + 7664074856375585.,4529097216352621.,.499838306067960376961,-56,52, + 7664074856376585.,4529097216352628.,.159904079185900297067,-56,52, + 7664074856376634.,4529097216352628.,.486247302068701770989,-56,52, + 7664074856376636.,4529097216352628.,.499567433614938610329,-56,52, + 7664074856378588.,4529097216352642.,-.499984177256242679808,-56,52, + 7664074856389699.,4529097216352716.,-.499993372064710707475,-56,52, + 7664074856400810.,4529097216352789.,.499997433234507061110,-56,52, + 5852820566561476.,4563154257661648.,.499996099170357218551,-55,52, + 5852820566563094.,4563154257661681.,.499881808282878410382,-55,52, + 5852820566564712.,4563154257661714.,.499767517404602458962,-55,52, + 5852820566564761.,4563154257661715.,.499146009213747561912,-55,52, + 5852820566564906.,4563154257661718.,.456490525791879452477,-55,52, + 5852820566564908.,4563154257661718.,.497281484641233512548,-55,52, + 6575998564310792.,4578824074855026.,-.499738823153342419601,-55,52, + 6575998564310965.,4578824074855029.,.469221195012876805660,-55,52, + 6575998564310966.,4578824074855029.,.492163160435803235233,-55,52, + 6575998564311010.,4578824074855031.,-.498390360955430371433,-55,52, + 6575998564321166.,4578824074855264.,-.499789525531101899310,-55,52, + 6575998564361921.,4578824074856199.,-.499988709768599026220,-55,52, + 6575998564364144.,4578824074856250.,-.499999574194867640076,-55,52, + 6847582036549561.,4585184879271240.,-.499999877884064044460,-55,52, + 6847582036550607.,4585184879271265.,-.499962634222496980103,-55,52, + 6847582036560021.,4585184879271490.,-.499627441094479934526,-55,52, + 6847582036561067.,4585184879271515.,-.499590197394265433199,-55,52, + 6847582036561318.,4585184879271520.,.499462716725577064602,-55,52, + 6847582036561319.,4585184879271521.,-.476636674054821524202,-55,52, + 7706116167838655.,4607008166212156.,.499994747124924295720,-55,52, + 7706116167864824.,4607008166212862.,-.499802424480109899607,-55,52, + 7706116167865084.,4607008166212869.,-.495329470385502006709,-55,52, + 7706116167865121.,4607008166212870.,-.498539088456634459827,-55,52, + 7706116167866383.,4607008166212904.,-.499904980501540386955,-55,52, + 7706116167867942.,4607008166212945.,.499992463485655170101,-55,52, + 8687303334617413.,4635153411183071.,-.499967854299768374331,-55,52, + 8687303334619976.,4635153411183148.,.499921623176942550135,-55,52, + 8687303334621783.,4635153411183203.,.492430513476026124885,-55,52, + 8687303334621816.,4635153411183204.,.496720935933173691841,-55,52, + 8687303334621849.,4635153411183206.,-.498988641609674852611,-55,52, + 8687303334622309.,4635153411183220.,-.499788813418673913430,-55,52, + 8687303334627435.,4635153411183375.,.499990141647820162436,-55,52, + 8687303334672419.,4635153411184745.,-.499998829218157119187,-55,52, + 4579785905290235.,4649924605679017.,.499995218448327371624,-54,52, + 4579785905371363.,4649924605684229.,.499981214822996056587,-54,52, + 4579785905373978.,4649924605684397.,.498452316141922534746,-54,52, + 4579785905374009.,4649924605684399.,.490021189618948713731,-54,52, + 4579785905374087.,4649924605684405.,-.498934548083956763384,-54,52, + 4579785905374445.,4649924605684428.,-.499526267283353377519,-54,52, + 4579785905374803.,4649924605684450.,.499882013519086430117,-54,52, + 4994576600381600.,4677807528209301.,.499940110394941621029,-54,52, + 4994576600383352.,4677807528209424.,.499309048069236514443,-54,52, + 4994576600383680.,4677807528209448.,-.473411835740247787347,-54,52, + 4994576600383694.,4677807528209449.,-.490540166146715657512,-54,52, + 4994576600383708.,4677807528209449.,.492331503446819297586,-54,52, + 4994576600383936.,4677807528209465.,.499098693970500522228,-54,52, + 4994576600386329.,4677807528209633.,.499949075257675159214,-54,52, + 4994576600405245.,4677807528210961.,.499984937932211521662,-54,52, + 4994576600414703.,4677807528211626.,-.499997128796358971289,-54,52, + 7423882302187867.,4891473205414471.,-.499994383586205019194,-54,52, + 7423882302188688.,4891473205414557.,.499867888308075406750,-54,52, + 7423882302191151.,4891473205414818.,.499454704051875667425,-54,52, + 7423882302191302.,4891473205414835.,-.499352600379857712244,-54,52, + 7423882302209666.,4891473205416781.,-.499997224203809430614,-54,52, + 8012612783800355.,4956483412447216.,-.499997403152691746505,-54,52, + 8012612783816952.,4956483412449122.,.499981535779185425162,-54,52, + 8012612783817422.,4956483412449177.,-.496885964231980883117,-54,52, + 8012612783817448.,4956483412449179.,.490521365554733931286,-54,52, + 8012612783817509.,4956483412449186.,.499438562362066908279,-54,52, + 8633994769867430.,5030843467107112.,-.438898653271923127508,-54,52, + 8633994769867454.,5030843467107115.,-.451832103639655962520,-54,52, + 8633994769867542.,5030843467107126.,-.499254754987933294658,-54,52, + 8633994769867775.,5030843467107155.,-.499817002307224219543,-54,52, + 8633994769869631.,5030843467107385.,.499996169291052132901,-54,52, + 8633994769880301.,5030843467108713.,.499999694547718671388,-54,52, + 8675324062254537.,5036000601052381.,-.499701236111730188930,-54,52, + 8675324062254697.,5036000601052401.,-.483358673734845779717,-54,52, + 8675324062254865.,5036000601052422.,-.466198983238689587776,-54,52, + 8675324062255760.,5036000601052534.,-.499782774933332662075,-54,52, + 8675324062259429.,5036000601052992.,.499972608741127619363,-54,52, + 8675324062381809.,5036000601068302.,.499990132107544512989,-54,52, + 4733303198939710.,5139882574443420.,.499979465073926823485,-53,52, + 4733303198943728.,5139882574444525.,.499897543700205903155,-53,52, + 4733303198944008.,5139882574444603.,-.496623844510712547008,-53,52, + 4733303198944408.,5139882574444713.,-.491654399089122767992,-53,52, + 4733303198944419.,5139882574444716.,-.466517739339885837478,-53,52, + 4733303199012154.,5139882574463343.,.499995870978938451048,-53,52, + 5018163383776848.,5220806376565162.,-.499905839923612407583,-53,52, + 5018163383776899.,5220806376565176.,.453293785805852664502,-53,52, + 5018163383776906.,5220806376565179.,-.494306265564599850503,-53,52, + 5018163383781848.,5220806376566628.,-.499942532317123440348,-53,52, + 5018163383789348.,5220806376568827.,-.499997567890917789151,-53,52, + 5184012179842902.,5270321034320674.,.499944179765244842684,-53,52, + 5184012179843310.,5270321034320799.,-.499511354446287136438,-53,52, + 5184012179843922.,5270321034320985.,-.498694655743309252382,-53,52, + 5184012179843945.,5270321034320991.,.491532115613649593557,-53,52, + 5184012179857636.,5270321034325152.,.499998497717575424793,-53,52, + 5359027492695953.,5324510475155138.,.499998299510738245866,-53,52, + 5359027492701106.,5324510475156764.,-.499961137976493370888,-53,52, + 5359027492704702.,5324510475157897.,.499679046016496229515,-53,52, + 5359027492704721.,5324510475157903.,.491334541985342664011,-53,52, + 5359027492706259.,5324510475158389.,-.499920573721033819107,-53,52, + 5488415439820225.,5365863775409127.,.499981193795409163160,-53,52, + 5488415439822269.,5365863775409790.,-.499916957115925363749,-53,52, + 5488415439823257.,5365863775410109.,.488390590389988767638,-53,52, + 5488415439823263.,5365863775410111.,.431639421650343368529,-53,52, + 5488415439823291.,5365863775410121.,-.499866032467970344969,-53,52, + 5488415439840066.,5365863775415553.,.499991375613659848075,-53,52, + 5488415439859907.,5365863775421980.,-.499998416531312868036,-53,52, + 5668948148607397.,5425415531547069.,-.499997125129829197896,-53,52, + 5668948148614724.,5425415531549529.,.499962681239664229315,-53,52, + 5668948148616293.,5425415531550056.,.497224444527950397925,-53,52, + 5668948148616299.,5425415531550059.,-.487489659627418955354,-53,52, + 5668948148616326.,5425415531550068.,-.418703128326551253007,-53,52, + 5668948148616424.,5425415531550100.,.497633170469600377367,-53,52, + 5668948148617079.,5425415531550320.,.499676800195064493281,-53,52, + 5668948148617210.,5425415531550365.,-.499914473856399839796,-53,52, + 5949535300107952.,5522307319226663.,-.497941272214359247089,-53,52, + 5949535300107966.,5522307319226667.,.469410230674402371559,-53,52, + 5949535300108014.,5522307319226685.,-.499670330849742222636,-53,52, + 5949535300109178.,5522307319227098.,-.499873947762234770312,-53,52, + 5949535300114967.,5522307319229151.,.499972498361594018980,-53,52, + 5949535300119592.,5522307319230793.,-.499977437238298793838,-53,52, + 5949535300217912.,5522307319265678.,-.499993885883254137048,-53,52, + 6402079148328611.,5689913795619902.,-.499999768434560434002,-53,52, + 6402079148348633.,5689913795627632.,-.499979749835480788906,-53,52, + 6402079148376296.,5689913795638312.,-.498453693464315885433,-53,52, + 6402079148376314.,5689913795638318.,.450902033300605402793,-53,52, + 6402079148377086.,5689913795638617.,-.498952352093606139251,-53,52, + 6402079148378666.,5689913795639227.,-.499949669220875503293,-53,52, + 6402079148378824.,5689913795639287.,.499950599076027044166,-53,52, + 6710148704139553.,5812203442175372.,.499994694743764470997,-53,52, + 6710148704142713.,5812203442176662.,-.499983127910416245604,-53,52, + 6710148704144407.,5812203442177353.,-.498072504696946428034,-53,52, + 6710148704144608.,5812203442177434.,.492118779416996957036,-53,52, + 6710148704144635.,5812203442177446.,-.494273436149566256548,-53,52, + 6710148704145064.,5812203442177620.,.499716916522047804424,-53,52, + 6710148704145873.,5812203442177951.,-.499960949849219205981,-53,52, + 7103100048439793.,5978075568300094.,-.499996705518185136916,-53,52, + 7103100048443759.,5978075568301825.,-.499733867369160050604,-53,52, + 7103100048445262.,5978075568302480.,.499609311385016308734,-53,52, + 7319052364923764.,6074057399419796.,.499990426577816036454,-53,52, + 7319052364943848.,6074057399428884.,.499913785389575794999,-53,52, + 7319052364945448.,6074057399429608.,.499111026984034139259,-53,52, + 7319052364945764.,6074057399429751.,.488952482221604464958,-53,52, + 7319052364945775.,6074057399429756.,.466446963258489981791,-53,52, + 7319052364945806.,6074057399429770.,.493931409817034268649,-53,52, + 7319052364945848.,6074057399429789.,.498910337412596140440,-53,52, + 7319052364973574.,6074057399442335.,.499999568960418074472,-53,52, + 7719367433303314.,6261259316531482.,-.499976842036077061597,-53,52, + 7719367433303519.,6261259316531581.,-.499871005587663031032,-53,52, + 7719367433307004.,6261259316533264.,-.498071785468396468599,-53,52, + 7719367433307824.,6261259316533660.,-.497648439421761344116,-53,52, + 7719367433307880.,6261259316533687.,-.453717088958146948554,-53,52, + 7719367433307882.,6261259316533688.,-.487862397870156243934,-53,52, + 7719367433312715.,6261259316536021.,.499998617161088443297,-53,52, + 8108726220150774.,6455200747855937.,.499989509398755307966,-53,52, + 8108726220155016.,6455200747858116.,-.499730027749181493509,-53,52, + 8108726220156987.,6455200747859127.,.484841588080150931140,-53,52, + 8108726220156989.,6455200747859129.,-.488284163704746034018,-53,52, + 8108726220157026.,6455200747859148.,-.491110571725282482234,-53,52, + 8108726220157137.,6455200747859205.,-.499589795786238267713,-53,52, + 8108726220172356.,6455200747867019.,-.499997993564752848050,-53,52, + 8145371468091486.,6474069254444266.,.497776098211963227579,-53,52, + 8145371468091513.,6474069254444280.,.439418209994461969762,-53,52, + 8145371468091517.,6474069254444283.,-.495153329000718454224,-53,52, + 8145371468091639.,6474069254444346.,-.499585268353108050197,-53,52, + 8145371468093901.,6474069254445514.,-.499790569901103431982,-53,52, + 8145371468096163.,6474069254446682.,-.499995871040795408826,-53,52, + 8201755169934593.,6503310416106886.,-.499939198867907178205,-53,52, + 8201755169934737.,6503310416106961.,-.495144732081097188124,-53,52, + 8201755169934783.,6503310416106984.,.464720167031706300122,-53,52, + 8201755169934785.,6503310416106986.,-.493546576485124483168,-53,52, + 8201755169951486.,6503310416115685.,-.499988302600062858379,-53,52, + 8201755169957117.,6503310416118617.,.499995334572638592714,-53,52, + 8344755511712701.,6578617262851499.,-.499999990601207506619,-53,52, + 8344755511733460.,6578617262862551.,-.499967754576355394242,-53,52, + 8344755511738152.,6578617262865049.,-.499864119914996149108,-53,52, + 8344755511738708.,6578617262865345.,-.487916630267342528273,-53,52, + 8344755511738723.,6578617262865352.,.498017204885369485839,-53,52, + 8344755511738862.,6578617262865427.,-.498995922698631301549,-53,52, + 8344755511751873.,6578617262872354.,-.499987304218155386061,-53,52, + 8529988344615063.,6678632514923626.,-.499997726079020948568,-53,52, + 8529988344636797.,6678632514935526.,-.497335686471594778607,-53,52, + 8529988344636839.,6678632514935548.,.498896567438485499539,-53,52, + 8529988344637365.,6678632514935836.,.499329080705597777337,-53,52, + 8529988344638154.,6678632514936268.,.499977850648971394760,-53,52, + 8529988344647443.,6678632514941355.,-.499988654998467427332,-53,52, + 8538353789943208.,6683215722758579.,-.499996086006580536238,-53,52, + 8538353789951825.,6683215722763302.,.496433865783495945625,-53,52, + 8538353789951836.,6683215722763309.,-.473165678198936953302,-53,52, + 8538353789951991.,6683215722763394.,-.499341070677613476344,-53,52, + 8538353789952188.,6683215722763501.,.499648914368473182405,-53,52, + 8538353789953142.,6683215722764024.,.499833918139419525666,-53,52, + 8538353789954096.,6683215722764548.,-.499981078014661510960,-53,52, + 9007199254729088.,6949417371949566.,-.499960886896832082030,-53,52, + 9007199254740024.,6949417371955992.,-.499834048619439588110,-53,52, + 9007199254740766.,6949417371956427.,.499808793192956567527,-53,52, + 9007199254740960.,6949417371956541.,.494324576639554203444,-53,52, + 9007199254740991.,6949417371956560.,-.290056921881567029040,-53,52, + 4503599627370497.,6949417371956561.,.472744868584135284771,-52,52, + 4503599627370520.,6949417371956589.,-.497627677608332700024,-52,52, + 4503599627378585.,6949417371966066.,.499999070859877236398,-52,52, + 4837845937970728.,7361733100900373.,-.499992214007234145688,-52,52, + 4837845938025548.,7361733100971259.,-.499986115443986373176,-52,52, + 4837845938038272.,7361733100987712.,-.499911577895793050897,-52,52, + 4837845938038777.,7361733100988364.,.499541240155804044724,-52,52, + 4837845938038835.,7361733100988439.,.497498197482507604771,-52,52, + 4837845938040234.,7361733100990248.,.499942737508604835472,-52,52, + 5224512518066698.,7889483912492031.,.492901409492157314698,-52,52, + 5224512518066714.,7889483912492055.,-.493424813535386277557,-52,52, + 5224512518066787.,7889483912492160.,-.493538206097290310531,-52,52, + 5224512518069707.,7889483912496360.,-.498073906873687662331,-52,52, + 5224512518070948.,7889483912498144.,.499998421300655221789,-52,52, + 5321124250683315.,8030271915074490.,.499427856527920539006,-52,52, + 5321124250683378.,8030271915074584.,-.495647071892128499257,-52,52, + 5321124250683399.,8030271915074615.,-.494005381365128974615,-52,52, + 5321124250683401.,8030271915074617.,.458531922494594372055,-52,52, + 5321124250685148.,8030271915077196.,.499866844567809604961,-52,52, + 5321124250685759.,8030271915078099.,-.499986825789947985789,-52,52, + 5321124250719870.,8030271915128455.,.499999415920792106627,-52,52, + 5931051093837703.,9007199254714087.,.000011075617049383857,-52,52, + 5931051093853191.,9007199254740913.,.002918648811222767012,-52,52, + 5931051093853221.,9007199254740965.,-.035557124122866220779,-52,52, + 5931051093853236.,9007199254740991.,-.054795010589760834567,-52,52, + 5931051093853237.,4503599627370496.,.338627898489558205281,-52,51, + 5931051093853609.,4503599627370819.,-.499921893683869190337,-52,51, + 5931051093856520.,4503599627373340.,-.499971476001471174195,-52,51, + 5931051093878248.,4503599627392157.,-.499997979463261330244,-52,51, + 6467001089609565.,5000770232426510.,.499996003829847824088,-52,51, + 6467001089645124.,5000770232461766.,-.496366654406199009273,-52,51, + 6467001089645125.,5000770232461766.,.495084276089530536396,-52,51, + 6467001089645128.,5000770232461769.,.469437067576720652746,-52,51, + 6467001089645241.,5000770232461882.,-.496607786404169030117,-52,51, + 6467001089646528.,5000770232463158.,-.499260238159081412909,-52,51, + 6467001089646879.,5000770232463506.,-.499983634021361838878,-52,51, + 6467001089655184.,5000770232471739.,.499994145108018662522,-52,51, + 7770194761460789.,6521760332430129.,-.499994552204457403962,-52,51, + 7770194761464766.,6521760332435533.,.499715833194814786778,-52,51, + 7770194761464805.,6521760332435587.,-.496766765464798842257,-52,51, + 7770194761465621.,6521760332436695.,.499905016538530818503,-52,51, + 8853480284534136.,8197834161354742.,.499998657636993562389,-52,51, + 8853480284572429.,8197834161421765.,.499992932661261368175,-52,51, + 8853480284574956.,8197834161426188.,.426402102254961609099,-52,51, + 8853480284574976.,8197834161426223.,.431755558296864419538,-52,51, + 8853480284575196.,8197834161426608.,.490643574768465803313,-52,51, + 8853480284575232.,8197834161426672.,-.499720204352500579307,-52,51, + 8853480284576165.,8197834161428305.,-.499981479721505738831,-52,51, + 9007199254736922.,8471711556222183.,.499996820437803778008,-52,51, + 9007199254740958.,8471711556229503.,-.495700147737558538107,-52,51, + 9007199254740990.,8471711556229561.,-.465933622185498843489,-52,51, + 9007199254740991.,8471711556229562.,.347496581738009913814,-52,51, + 4503599627370497.,8471711556229568.,-.212212806491461308152,-51,51, + 4503599627370680.,8471711556230232.,-.496758170458745195581,-51,51, + 4503599627371283.,8471711556232419.,-.499932238217305219454,-51,51, + 4503599627382638.,8471711556273601.,.499998987321236341495,-51,51, + 4646447207242103.,9007199254554490.,.499998053305875967185,-51,51, + 4646447207290254.,9007199254740979.,-.478900772919726845206,-51,51, + 4646447207290257.,9007199254740990.,.140049265702513257508,-51,51, + 4646447207290258.,4503599627370497.,.006516305954965088897,-51,50, + 4646447207290262.,4503599627370505.,-.247517001630192188749,-51,50, + 4646447207290388.,4503599627370749.,-.249566190555372253333,-51,50, + 4646447207290884.,4503599627371709.,.250303669050767041154,-51,50, + 4646447207291876.,4503599627373630.,.250043388918563936431,-51,50, + 4646447207295781.,4503599627381192.,.250026871285531251957,-51,50, + 4646447207303591.,4503599627396316.,.249993876651030662531,-51,50, + 6234466683503380.,9007199254740837.,-.498759560416169662751,-51,50, + 6234466683503412.,9007199254740963.,.497303370682860936936,-51,50, + 6234466683503413.,9007199254740967.,.465930337279734953064,-51,50, + 6234466683503419.,9007199254740991.,.277692136861016353326,-51,50, + 6234466683503420.,4503599627370498.,-.376840448271048598024,-51,49, + 6234466683503890.,4503599627371430.,.250496702095575327459,-51,49, + 6234466683505930.,4503599627375478.,.250002633620368032439,-51,49, + 6534651015199035.,5141101734029589.,-.499999777429247926850,-51,49, + 6534651015225752.,5141101734090219.,.499991148448846619712,-51,49, + 6534651015230422.,5141101734100818.,-.499860645946957615961,-51,49, + 6534651015230938.,5141101734101988.,.499727465493522881032,-51,49, + 6534651015231350.,5141101734102923.,.483894717457654926598,-51,49, + 6534651015231428.,5141101734103100.,.495460362266356593077,-51,49, + 6534651015231454.,5141101734103159.,.499315577203961279492,-51,49, + 6623841828929846.,5347595755739987.,.499998414249337659389,-51,49, + 6623841828972054.,5347595755839667.,-.497837785513706266451,-51,49, + 6623841828972065.,5347595755839692.,.479915811248492609279,-51,49, + 6623841828972101.,5347595755839777.,.498018491562035690004,-51,49, + 6623841828972325.,5347595755840306.,.499546280210347828370,-51,49, + 6623841828973044.,5347595755842004.,.499985923595270215391,-51,49, + 6623841828977629.,5347595755852833.,-.499992137406012016090,-51,49, + 6693732543055589.,5515253126126363.,-.499999556196339905005,-51,49, + 6693732543070850.,5515253126163546.,-.499841113868401545299,-51,49, + 6693732543070889.,5515253126163641.,-.477430643767937578145,-51,49, + 6693732543070905.,5515253126163680.,-.493877630392909673854,-51,49, + 6693732543071519.,5515253126165175.,.499969258084156642412,-51,49, + 7898550557397854.,4700645223521874.,-.499994022808832850047,-51,48, + 7898550557404886.,4700645223536527.,-.499971184224682876796,-51,48, + 7898550557407035.,4700645223541005.,-.499821988487118884774,-51,48, + 7898550557407620.,4700645223542223.,.499753293550867358679,-51,48, + 7898550557407799.,4700645223542596.,.492785730340409474224,-51,48, + 7898550557407811.,4700645223542621.,.497905223310603175710,-51,48, + 7898550557437897.,4700645223605313.,.499994434811243943237,-51,48, + 8474845626780662.,6069442169650527.,-.499985662517539751555,-51,48, + 8474845626784369.,6069442169660508.,-.499859670847495124928,-51,48, + 8474845626784408.,6069442169660613.,-.493384107319235621324,-51,48, + 8474845626784525.,6069442169660928.,-.473957416723533412524,-51,48, + 8474845626787611.,6069442169669236.,.499980770203675030927,-51,48, + 8474845626843668.,6069442169820168.,.499999910812279555178,-51,48, + 4907776204982580.,5502147286555827.,.499997954628723148755,-50,47, + 4907776204996101.,5502147286621882.,-.499930385669050230379,-50,47, + 4907776205000608.,5502147286643900.,-.499906322766951943213,-50,47, + 4907776205001349.,5502147286647519.,.499653887716097366305,-50,47, + 4907776205001375.,5502147286647647.,-.482817683802622487082,-50,47, + 4907776205001384.,5502147286647690.,.484788310672350411988,-50,47, + 5448610385727236.,8894158164052448.,-.499980331072365869091,-50,47, + 5448610385773937.,8894158164421320.,.499955354246563894765,-50,47, + 5448610385775732.,8894158164435499.,-.494543718217296342584,-50,47, + 5448610385775742.,8894158164435577.,.491559351080209969337,-50,47, + 5448610385775752.,8894158164435656.,.477662420378417906625,-50,47, + 5448610385775880.,8894158164436667.,.499781707457447056239,-50,47, + 5448610385779046.,8894158164461675.,-.499986514611624199972,-50,47, + 5569985055006364.,4953219233384640.,-.499983102051429463132,-50,46, + 5569985055108039.,4953219233831897.,.499975281575670888042,-50,46, + 5569985055108766.,4953219233835095.,.499148967664550360217,-50,46, + 5569985055108949.,4953219233835900.,.497565452933868390488,-50,46, + 5569985055108959.,4953219233835944.,.486549960329405045045,-50,46, + 5569985055108969.,4953219233835988.,.475534467725332439702,-50,46, + 5569985055109310.,4953219233837488.,.499906170160296964572,-50,46, + 7464505152240009.,6661645343471095.,-.499990479460657162218,-50,44, + 7464505152277408.,6661645343692373.,.499992021133896071281,-50,44, + 7464505152281346.,6661645343715674.,-.499955916407175636857,-50,44, + 7464505152285080.,6661645343737766.,.491459700058981904091,-50,44, + 7464505152285104.,6661645343737908.,.492475762105068660233,-50,44, + 7464505152285272.,6661645343738902.,.499588196512430392726,-50,44, + 7464505152285284.,6661645343738974.,-.499903772452796820166,-50,44, + 7573800345510658.,7340741262650818.,-.499970432810278354175,-50,44, + 7573800345510683.,7340741262650980.,.496760849680594878434,-50,44, + 7573800345510756.,7340741262651456.,.447216194574658494376,-50,44, + 7573800345510758.,7340741262651469.,.486954697174930165501,-50,44, + 7573800345516471.,7340741262688717.,.499987469385563670042,-50,44, + 7573800345537886.,7340741262828341.,-.499993901767229558335,-50,44, + 7724960656347081.,8395508117246906.,-.499116205150917021651,-50,44, + 7724960656347092.,8395508117246988.,-.475495827510087603492,-50,44, + 7724960656347208.,8395508117247853.,-.499135481430738636191,-50,44, + 7724960656351145.,8395508117277210.,-.499732993122209587785,-50,44, + 7724960656352923.,8395508117290467.,.499997196536571103956,-50,44, + 7788342745744418.,8881685095300496.,.499997627444520232506,-50,44, + 7788342745746158.,8881685095314222.,.499668174939380434512,-50,44, + 7788342745746436.,8881685095316416.,-.495786758610495387427,-50,44, + 7788342745746445.,8881685095316487.,-.499236738464572079810,-50,44, + 4542341907339422.,7022211662856702.,.499977423319358759624,-49,42, + 4542341907341188.,7022211662878731.,.497917677317308585514,-49,42, + 4542341907341207.,7022211662878969.,-.497008219913987431674,-49,42, + 4542341907341245.,7022211662879443.,-.486860014352582143035,-49,42, + 4542341907341591.,7022211662883759.,-.499721088558299858840,-49,42, + 4542341907342378.,7022211662893575.,.499927287216852424931,-49,42, + 4542341907419042.,7022211663849879.,-.499952188334691099921,-49,42, + 4564032971364046.,7298065279113091.,-.499983053371904118355,-49,42, + 4564032971383472.,7298065279364929.,-.499980539334920156869,-49,42, + 4564032971402898.,7298065279616767.,-.499969334994567769127,-49,42, + 4564032971403009.,7298065279618206.,-.499763336397350542812,-49,42, + 4564032971403010.,7298065279618218.,.464202483411121197839,-49,42, + 4694545676306502.,4601117480685111.,.499997909426242098224,-49,41, + 4694545676312194.,4601117480731633.,.499955318864364923711,-49,41, + 4694545676315040.,4601117480754894.,.499934199977828089378,-49,41, + 4694545676315548.,4601117480759046.,.498524961329434926433,-49,41, + 4945710919737051.,7188325623296342.,-.499999896902468880930,-49,41, + 4945710919749360.,7188325623453515.,.499962530660116711094,-49,41, + 4945710919752053.,7188325623487902.,.499873527269249062764,-49,41, + 4945710919753144.,7188325623501834.,-.487537158439035412816,-49,41, + 4945710919753196.,7188325623502498.,-.497936200530158943789,-49,41, + 4945710919753209.,7188325623502663.,.499464038956643468977,-49,41, + 4945710919753590.,7188325623507529.,-.499805863612293129692,-49,41, + 5043885832655678.,8557875242312002.,.499993917239716987180,-49,41, + 5043885832659483.,8557875242369846.,-.499888250339496144489,-49,41, + 5043885832660028.,8557875242378131.,-.497243219993533580869,-49,41, + 5043885832660216.,8557875242380988.,.448623324445145454659,-49,41, + 5043885832660236.,8557875242381292.,.485417637739470895975,-49,41, + 5043885832660246.,8557875242381445.,-.496185205609315799440,-49,41, + 5043885832689705.,8557875242829276.,-.499989705392142014896,-49,41, + 5359395441741372.,7494447404588835.,-.499998948521156916982,-49,40, + 5359395441747967.,7494447404676633.,-.499837033000684638914,-49,40, + 5359395441748162.,7494447404679228.,.498651469922180395896,-49,40, + 5359395441748178.,7494447404679442.,-.496344345182691824392,-49,40, + 5359395441748226.,7494447404680081.,-.481331790460984686847,-49,40, + 5359395441748229.,7494447404680120.,.457106494210931104678,-49,40, + 5359395441751963.,7494447404729830.,.499958314182522417654,-49,40, + 5417777045983376.,8313402414882149.,-.499999098571969556454,-49,40, + 5417777045993977.,8313402415038700.,-.499870947275204111019,-49,40, + 5417777045994347.,8313402415044164.,-.499300436908078564221,-49,40, + 5417777045995599.,8313402415062652.,.497224668050994176225,-49,40, + 5417777045995616.,8313402415062904.,-.454100470017243957087,-49,40, + 5417777045995642.,8313402415063288.,-.497303622342238326430,-49,40, + 5417777046000921.,8313402415141246.,-.499974067468689664549,-49,40, + 5396865810819085.,7123663344871206.,-.499968818931443439354,-48,26, + 5396865810830673.,7123663345164479.,-.499978757533046260989,-48,26, + 5396865810842261.,7123663345457752.,-.499976622423644042760,-48,26, + 5396865810847035.,7123663345578573.,.497093699128169654620,-48,26, + 5396865810847048.,7123663345578903.,-.494535557776653072837,-48,26, + 5396865810847155.,7123663345581610.,.497439020583972301293,-48,26, + 5396865810847995.,7123663345602869.,.499856307027622197044,-48,26, + 7965945805096429.,8002183149656719.,-.499786367402641454799,-48,13, + 7965945805096692.,8002183149664195.,.449649617845319015704,-48,13, + 7965945805096713.,8002183149664792.,.468425875523719811147,-48,13, + 7965945805096748.,8002183149665787.,.499719638420036186289,-48,13, + 7965945805100583.,8002183149774815.,-.499948734720221626187,-48,13, + 7965945805102660.,8002183149833862.,.499970735192562919012,-48,13, + 7965945805175518.,8002183151905177.,-.499689640550705184286,-48,13, + 4742590337501440.,6902912729958547.,-.499791597756691988853,-47,5, + 4742590337529418.,6902912731330815.,.499995944890535838764,-47,5, + 4742590337535213.,6902912731615050.,-.499906729618965351299,-47,5, + 4742590337536210.,6902912731663951.,-.499371117623517187373,-47,5, + 4742590337536480.,6902912731677193.,.499770983349898577492,-47,5, + 4742590337538744.,6902912731788238.,.499985748240312226939,-47,5, + 7812346276767154.,4773890120435627.,.499999223549589327066,-47,-27, + 7812346276767758.,4773890120456115.,.499795477880875491108,-47,-27, + 7812346276773949.,4773890120666117.,.497712154369573678518,-47,-27, + 7812346276774704.,4773890120691727.,.497458722508517073853,-47,-27, + 7812346276774729.,4773890120692576.,-.489304633812435224223,-47,-27, + 7812346276774742.,4773890120693016.,.477578420960201485716,-47,-27, + 7812346276786872.,4773890121104473.,-.499984259957419659942,-47,-27, + 8537085079154113.,6428300279494627.,-.499786505797731951695,-47,-34, + 8537085079189908.,6428300281129593.,-.498739060923929303068,-47,-34, + 8537085079189945.,6428300281131283.,-.493373885442317404204,-47,-34, + 8537085079189954.,6428300281131694.,-.410987761609338846542,-47,-34, + 8537085079190272.,6428300281146218.,.499988630696702111159,-47,-34, + 7887937924523939.,7407705720475554.,-.498709669735366824573,-46,-108, + 7887937924555848.,7407705723834609.,-.499924082026958885715,-46,-108, + 7887937924562782.,7407705724564550.,-.499955180450885535513,-46,-108, + 7887937924565517.,7407705724852462.,.484621125066195505260,-46,-108, + 7887937924565543.,7407705724855200.,-.499803324367340099474,-46,-108, + 7887937924566955.,7407705725003840.,.499916555920218348053,-46,-108, + 7976418890558873.,6511804223309966.,-.486803229067335768622,-46,-110, + 7976418890693585.,6511804235775986.,-.499926238038002742702,-46,-110, + 7976418890700425.,6511804236408947.,.498975119506248740861,-46,-110, + 7976418890700451.,6511804236411353.,.494877493507082416526,-46,-110, + 7976418890700503.,6511804236416165.,.486682244175667908551,-46,-110, + 7976418890700516.,6511804236417368.,.484633432398422227535,-46,-110, + 7976418890700908.,6511804236453643.,.499777058580786193667,-46,-110, + 7976418890702370.,6511804236588935.,-.499864063559603630815,-46,-110, + 7976418890704811.,6511804236814821.,-.499942600236516785424,-46,-110, + 8046222506214430.,8779666513224927.,.499994955997590156290,-46,-111, + 8046222506214614.,8779666513247885.,-.451995819086715668690,-46,-111, + 8046222506214627.,8779666513249507.,-.486647338969034067781,-46,-111, + 8046222506214687.,8779666513256993.,-.492731273004470103160,-46,-111, + 8046222506214747.,8779666513264479.,-.498815200656963822130,-46,-111, + 6421234419882807.,5526901623081647.,-.495807702859459976745,-45,-210, + 6421234419926133.,5526901629887468.,-.455020184386152560929,-45,-210, + 6421234419926156.,5526901629891080.,.476799843816789748820,-45,-210, + 6421234419926192.,5526901629896736.,-.499481846428508736774,-45,-210, + 6421234419928847.,5526901630313793.,.499759446866686612616,-45,-210, + 6421234419931883.,5526901630790701.,-.499939623526242841926,-45,-210, + 6756582954602484.,4649433839470792.,.499415698389671490689,-45,-224, + 6756582954603126.,4649433839555629.,.497996524024508381845,-45,-224, + 6756582954603202.,4649433839565673.,-.492825581059961912677,-45,-224, + 6756582954604341.,4649433839716185.,.499987837578218607871,-45,-224, + 6756582954614910.,4649433841112825.,-.499740261372253343229,-45,-224, + 8636315524956833.,4901912698559709.,-.499613649465461798330,-45,-301, + 8636315524970754.,4901912700499192.,.499642077986144354495,-45,-301, + 8636315524970888.,4901912700517861.,.478591304076595080281,-45,-301, + 8636315524970913.,4901912700521344.,.497051988455977950220,-45,-301, + 8636315524971892.,4901912700657739.,.499974334795339818199,-45,-301, + 8636315524996214.,4901912704046299.,-.498728346812131777995,-45,-301, + 4505638334066944.,6356350718455076.,-.497923161792008441519,-44,-316, + 4505638334076126.,6356350721772686.,-.499669921115817928843,-44,-316, + 4505638334080717.,6356350723431491.,-.499893957904720324758,-44,-316, + 4505638334081118.,6356350723576378.,.499453578118113417080,-44,-316, + 4505638334081137.,6356350723583244.,-.483120895583154692273,-44,-316, + 4505638334096154.,6356350729009137.,-.497690124073156378095,-44,-316, + 4582746875109235.,7954075502389043.,-.494718295771110974393,-44,-322, + 4582746875109257.,7954075502398990.,-.484118768121196167207,-44,-322, + 4582746875109264.,7954075502402154.,.473799266012428640856,-44,-322, + 4582746875109403.,7954075502465001.,.495314776025352590582,-44,-322, + 4582746875110638.,7954075503023390.,.499449206848737918913,-44,-322, + 4582746875110828.,7954075503109297.,-.499911247597312729022,-44,-322, + 4582746875129791.,7954075511683168.,-.494571849021118208244,-44,-322, + 4582746875136112.,7954075514541125.,-.490738280149710491757,-44,-322, + 4848965914897291.,7079808463743031.,-.483179027637735954009,-44,-344, + 4848965914935530.,7079808479131953.,.499773963740814494046,-44,-344, + 4848965914935614.,7079808479165759.,-.496643933337750456507,-44,-344, + 4848965914935639.,7079808479175820.,-.483673038204358235689,-44,-344, + 4848965914935648.,7079808479179441.,.480996487543705495554,-44,-344, + 4848965914940002.,7079808480931668.,-.499773439889881079648,-44,-344, + 5186340917188073.,5621926320879560.,-.496818148560891880119,-44,-372, + 5186340917201646.,5621926325217077.,-.499778686535376369589,-44,-372, + 5186340917205897.,5621926326575566.,.499761255281790672949,-44,-372, + 5186340917206717.,5621926326837614.,-.499584003788401578012,-44,-372, + 5186340917206789.,5621926326860623.,-.494647882232333169203,-44,-372, + 5399152085230348.,7691275701060621.,-.497497063478143760459,-44,-389, + 5399152085240766.,7691275705615354.,-.499842756744819005237,-44,-389, + 5399152085244531.,7691275707261406.,-.499163054224787022532,-44,-389, + 5399152085244541.,7691275707265777.,.484902965192620932403,-44,-389, + 5399152085244556.,7691275707272335.,.461001998978455143262,-44,-389, + 5399152085244657.,7691275707316493.,-.499931027948111264922,-44,-389, + 5534403477927994.,8195778799077288.,.495250284874012107452,-44,-400, + 5534403477928002.,8195778799081016.,-.496052382435343531306,-44,-400, + 5534403477928115.,8195778799133660.,-.498202377135870301116,-44,-400, + 5534403477928228.,8195778799186303.,.499647966312127623532,-44,-400, + 5534403477929608.,8195778799829212.,.499971476982226414338,-44,-400, + 5534403477930068.,8195778800043516.,-.499909478949758014236,-44,-400, + 5534403477940301.,8195778804810826.,-.497986329962504082513,-44,-400, + 5534403477981693.,8195778824094369.,-.461815381781028886350,-44,-400, + 5547653687336403.,8702925765059417.,.483577404165047872501,-44,-401, + 5547653687336457.,8702925765086132.,-.497475354147246911776,-44,-401, + 5547653687336555.,8702925765134612.,.499873553173188902284,-44,-401, + 5547653687341833.,8702925767745661.,-.499650625774321675009,-44,-401, + 5547653687347111.,8702925770356709.,-.498391439237077559301,-44,-401, + 5557937445668162.,7807431727934700.,.499849859029571352155,-44,-402, + 5557937445668343.,7807431728015029.,-.498888921814914452944,-44,-402, + 5557937445668524.,7807431728095357.,-.497626876192002082109,-44,-402, + 5557937445668534.,7807431728099795.,-.486507402065637299142,-44,-402, + 5557937445668544.,7807431728104233.,-.475387925416555266442,-44,-402, + 5557937445669781.,7807431728653215.,-.499889206976388931447,-44,-402, + 5557937445673738.,7807431730409336.,-.499590813995173003903,-44,-402, + 5557937445685609.,7807431735677699.,-.496325615504508218765,-44,-402, + 5632072767865983.,8250700900944252.,-.499909879133974005525,-44,-408, + 5632072767867007.,8250700901424506.,-.499555298872912508873,-44,-408, + 5632072767867008.,8250700901424974.,.498491936059843061216,-44,-408, + 5632072767867045.,8250700901442327.,.426239647313394222575,-44,-408, + 5632072767867183.,8250700901507049.,.156758459847635463887,-44,-408, + 5632072767871104.,8250700903345991.,-.499810089078719565251,-44,-408, + 5632072767881858.,8250700908389596.,-.497129610021902175684,-44,-408, + 6581541848035283.,7507381152160504.,-.498402689001539306386,-44,-486, + 6581541848041496.,7507381154811872.,-.499630590871741037118,-44,-486, + 6581541848046665.,7507381157017717.,.499095702545655263196,-44,-486, + 6581541848046716.,7507381157039482.,-.495109805030649724449,-44,-486, + 6581541848046759.,7507381157057832.,-.451008517295751079114,-44,-486, + 6581541848046767.,7507381157061246.,-.489315249512789341267,-44,-486, + 6581541848047187.,7507381157240478.,.499583489370896278834,-44,-486, + 6581541848047709.,7507381157463240.,-.499922113980503472743,-44,-486, + 6968330978519075.,6181700943535965.,-.496788908801628130171,-44,-518, + 6968330978536938.,6181700949812826.,.499307063831386590867,-44,-518, + 6968330978536974.,6181700949825477.,-.496103874476665069500,-44,-518, + 6968330978537010.,6181700949838127.,-.491514786898214389742,-44,-518, + 6968330978537375.,6181700949966383.,.499459368363976546908,-44,-518, + 6968330978538686.,6181700950427054.,.499939168625938942144,-44,-518, + 6968330978539123.,6181700950580612.,-.499893269065342434562,-44,-518, + 6968330978552197.,6181700955174672.,-.497692717301887855346,-44,-518, + 7761973902128715.,6556152117765510.,.499969887708502287544,-44,-583, + 7761973902129074.,6556152117899301.,-.497789377863418856338,-44,-583, + 7761973902129080.,6556152117901537.,-.453183659941044711724,-44,-583, + 7761973902138086.,6556152121257840.,-.499141386949237484992,-44,-583, + 7913771579840985.,8947164558816602.,.498380270945586509408,-44,-595, + 7913771579841031.,8947164558839998.,-.480178562588342259347,-44,-595, + 7913771579841128.,8947164558889330.,.499817141116101480227,-44,-595, + 7913771579845326.,8947164561024381.,-.499695796129591403574,-44,-595, + 7913771579981046.,8947164630049866.,-.216601222637963473255,-44,-595, + 8808344494359725.,5749013029932587.,-.498822382396512294085,-44,-669, + 8808344494366584.,5749013032174064.,-.499861746475929277697,-44,-669, + 8808344494370919.,5749013033590714.,-.435189668485412639521,-44,-669, + 8808344494370929.,5749013033593982.,-.499630621141919610756,-44,-669, + 8808344494372605.,5749013034141688.,-.499908040847537708067,-44,-669, + 8808344494379464.,5749013036383165.,-.499306322705319969752,-44,-669, + 4625564355619192.,7135614685389964.,-.447670891014023556079,-43,-705, + 4625564355652837.,7135614712683645.,-.498304484284059041467,-43,-705, + 4625564355652868.,7135614712708792.,.491323990110166058559,-43,-705, + 4625564355652877.,7135614712716094.,-.479429016852182303834,-43,-705, + 4625564355652939.,7135614712766389.,.499828249284759064112,-43,-705, + 4625564355653999.,7135614713626289.,-.499912035141272052599,-43,-705, + 4625564355658820.,7135614717537207.,-.498366810719193825149,-43,-705, + 4664178663129294.,8990368397329646.,-.499913302412312910009,-43,-711, + 4664178663129941.,8990368397990935.,.499930978410657163987,-43,-711, + 4664178663130380.,8990368398439631.,.496761829193857582381,-43,-711, + 4664178663130403.,8990368398463139.,.487484791810139979832,-43,-711, + 4664178663130415.,8990368398475405.,-.473877116336351092721,-43,-711, + 4664178663130588.,8990368398652225.,.499823900673506824988,-43,-711, + 4664178663171118.,8990368440077394.,-.403739920530770586750,-43,-711, + 4887831931625084.,7214847005082417.,-.492974961196899834386,-43,-748, + 4887831931636918.,7214847014789056.,-.499956758558979066773,-43,-748, + 4887831931637364.,7214847015154879.,.481275963574088102956,-43,-748, + 4887831931637377.,7214847015165543.,-.487880651964880483734,-43,-748, + 4887831931637437.,7214847015214757.,-.499372519466327569769,-43,-748, + 4887831931652059.,7214847027208206.,-.489931195956647269708,-43,-748, + 4989511469972917.,5767646392879129.,.499053860038163566568,-43,-765, + 4989511469972985.,5767646392923717.,.471660230514392274199,-43,-765, + 4989511469972995.,5767646392930275.,-.473544685931227234128,-43,-765, + 4989511469973063.,5767646392974862.,.499062079932118746087,-43,-765, + 4989511469977005.,5767646395559653.,.499884660194432438479,-43,-765, + 4989511469989269.,5767646403601226.,-.490148269325651514879,-43,-765, + 4989511469989707.,5767646403888425.,-.489584937633964372021,-43,-765, + 5128618859971983.,5076175952917505.,.499825834294403903218,-43,-788, + 5128618859972195.,5076175953039850.,-.489109882525163575443,-43,-788, + 5128618859972205.,5076175953045620.,.454808316864871650437,-43,-788, + 5128618859972216.,5076175953051968.,.493118343771638611527,-43,-788, + 5128618859972322.,5076175953113140.,.498651737163190770803,-43,-788, + 5128618859977047.,5076175955839912.,-.499228861082758637753,-43,-788, + 5353579675879775.,4726553566564203.,.499993384924382331011,-43,-825, + 5353579675880069.,4726553566722183.,.496917551041868116698,-43,-825, + 5353579675880360.,4726553566878551.,.453061976454965328861,-43,-825, + 5353579675880363.,4726553566880163.,.493846997471758422877,-43,-825, + 5353579675895418.,4726553574969922.,-.493064786104045750761,-43,-825, + 5884039778457535.,4738512154109118.,-.394671283661082662327,-43,-912, + 5884039778485760.,4738512169314108.,-.471686402944823646552,-43,-912, + 5884039778513985.,4738512184519098.,-.499911583311221520904,-43,-912, + 5884039778516104.,4738512185660617.,-.498821604725491767551,-43,-912, + 5884039778516179.,4738512185701019.,.486120549917476234036,-43,-912, + 5884039778516196.,4738512185710177.,.496040819529227613208,-43,-912, + 5884039778516707.,4738512185985457.,-.499876931867516303060,-43,-912, + 6243313862843034.,9006272252385836.,-.210060427227841147163,-43,-970, + 6243314758582472.,9007189441869835.,.413784844360260244941,-43,-970, + 6243314768069474.,9007199156554539.,-.359155672558888708604,-43,-970, + 6243314768164400.,9007199253758762.,.105738205931081010647,-43,-970, + 6243314768165349.,9007199254730538.,.105684656195249555615,-43,-970, + 6243314768165359.,9007199254740778.,.105684650131313781083,-43,-970, + 6243314768165360.,4503599627370901.,.052842325082602236839,-43,-971 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/erf.c b/src/regress/lib/libm/fpaccuracy/erf.c new file mode 100644 index 000000000..1a5bab5b4 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/erf.c @@ -0,0 +1,1308 @@ +/* $OpenBSD: erf.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:29:54. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1277 +#define F erf +#define Fs "erf" +#define Fn fpaccuracy_erf + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -7546096846785676.,-4503599627370496.,.000011622608266262965,-50,52, + -7546096846785669.,-4503599627370496.,.000011622608266263944,-50,52, + -7508441716342214.,-4503599627370496.,.000018265947210011342,-50,52, + -7508441716342203.,-4503599627370496.,.000018265947210013748,-50,52, + -7164018338479428.,-4503599627370496.,.001030178461281915721,-50,52, + -7164018338479422.,-4503599627370496.,.001030178461281986428,-50,52, + -7164018338478840.,-4503599627370496.,.001030178461288844936,-50,52, + -7013995431693187.,-4503599627370496.,.005631190259020606409,-50,52, + -7013995431693156.,-4503599627370496.,.005631190259022562474,-50,52, + -7013995431690068.,-4503599627370496.,.005631190259217411834,-50,52, + -7011467521123082.,-4503599627370496.,.005792950335527736034,-50,52, + -7011467521123050.,-4503599627370496.,.005792950335529812470,-50,52, + -7011467521119875.,-4503599627370496.,.005792950335735833840,-50,52, + -6956517549501669.,-4503599627370496.,.010695253103747872789,-50,52, + -6956517549501668.,-4503599627370496.,.010695253103747991674,-50,52, + -6956517549501611.,-4503599627370496.,.010695253103754768107,-50,52, + -6956517549495852.,-4503599627370496.,.010695253104439425612,-50,52, + -6897379505813777.,-4503599627370496.,.020582335579058853828,-50,52, + -6897379505813776.,-4503599627370496.,.020582335579059080717,-50,52, + -6897379505813668.,-4503599627370496.,.020582335579083584770,-50,52, + -6897379505802900.,-4503599627370496.,.020582335581526729631,-50,52, + -6808033746715005.,-4503599627370496.,.054768624023794864950,-50,52, + -6808033746715002.,-4503599627370496.,.054768624023796653305,-50,52, + -6808033746714740.,-4503599627370496.,.054768624023952836275,-50,52, + -6808033746688464.,-4503599627370496.,.054768624039616438310,-50,52, + -6769642554634171.,-4503599627370496.,.083082232246924411438,-50,52, + -6769642554634167.,-4503599627370496.,.083082232246928008733,-50,52, + -6769642554633796.,-4503599627370496.,.083082232247261657856,-50,52, + -6769642554596677.,-4503599627370496.,.083082232280643657276,-50,52, + -6704129343755513.,-4503599627370496.,.168281228978871225767,-50,52, + -6704129343755507.,-4503599627370496.,.168281228978882052115,-50,52, + -6704129343754914.,-4503599627370496.,.168281228979952056154,-50,52, + -6704129343695658.,-4503599627370496.,.168281229086873066936,-50,52, + -6664353023208306.,-9007199254740991.,-.485058874170695675648,-50,53, + -6664353023200186.,-9007199254740991.,-.485058874126120519467,-50,53, + -6664353023200105.,-9007199254740991.,-.485058874125675865816,-50,53, + -6664353023200104.,-9007199254740991.,-.485058874125670376264,-50,53, + -6584354503857515.,-9007199254740991.,.202188116331600633520,-50,53, + -6584354503857477.,-9007199254740991.,.202188116332081951528,-50,53, + -6584354503853743.,-9007199254740991.,.202188116379377778960,-50,53, + -6584354503480299.,-9007199254740991.,.202188121109517847012,-50,53, + -6570270929571889.,-9007199254740991.,.394273676806151786004,-50,53, + -6570270929571874.,-9007199254740991.,.394273676806371678742,-50,53, + -6570270929570339.,-9007199254740991.,.394273676828874035607,-50,53, + -6570270929416899.,-9007199254740991.,.394273679078230152948,-50,53, + -6424044172336358.,-9007199254740986.,.380065046132076805616,-50,53, + -6424044172336357.,-9007199254740986.,.380065046132142434594,-50,53, + -6424044172336279.,-9007199254740986.,.380065046137261494906,-50,53, + -6424044172328487.,-9007199254740986.,.380065046648642494283,-50,53, + -6424044171549237.,-9007199254740986.,.380065097790024084873,-50,53, + -6419250167527352.,-9007199254740985.,-.297542307422257292545,-50,53, + -6419250166146461.,-9007199254740985.,-.297542212285338887806,-50,53, + -6419250166132652.,-9007199254740985.,-.297542211333963496461,-50,53, + -6419250166132514.,-9007199254740985.,-.297542211324455943125,-50,53, + -6419250166132513.,-9007199254740985.,-.297542211324387047811,-50,53, + -6406976598443937.,-9007199254740984.,-.397185443015756622417,-50,53, + -6406976597649952.,-9007199254740984.,-.397185381080923547346,-50,53, + -6406976597642012.,-9007199254740984.,-.397185380461563513329,-50,53, + -6406976597641933.,-9007199254740984.,-.397185380455401115005,-50,53, + -6406976597641932.,-9007199254740984.,-.397185380455323109963,-50,53, + -6094824714127748.,-9007199254740819.,.375664280886214761276,-50,53, + -6094824714127727.,-9007199254740819.,.375664280921803861080,-50,53, + -6094824714125641.,-9007199254740819.,.375664284456987774957,-50,53, + -6094824713917034.,-9007199254740819.,.375664637987242554012,-50,53, + -6094824693062387.,-9007199254740819.,.375699980758165324676,-50,53, + -6047388880828282.,-9007199254740717.,.170506714222353195341,-50,53, + -6047388880828281.,-9007199254740717.,.170506714225022670631,-50,53, + -6047388880828194.,-9007199254740717.,.170506714457267020853,-50,53, + -6047388880819486.,-9007199254740717.,.170506737703057846392,-50,53, + -6047388879948714.,-9007199254740717.,.170509062207404844857,-50,53, + -6047388792933498.,-9007199254740717.,.170741347274736461441,-50,53, + -5969671014482246.,-9007199254740410.,.107924840725379121993,-50,53, + -5969671014482244.,-9007199254740410.,.107924840736532897688,-50,53, + -5969671014482027.,-9007199254740410.,.107924841946717560505,-50,53, + -5969671014460380.,-9007199254740410.,.107924962669608798795,-50,53, + -5969671012295755.,-9007199254740410.,.107937034540590327302,-50,53, + -5969670796504275.,-9007199254740410.,.109140480670646955525,-50,53, + -5959794848814752.,-9007199254740352.,-.172364867329761146692,-50,53, + -5959794650312191.,-9007199254740352.,-.171150017989455430380,-50,53, + -5959794648319732.,-9007199254740352.,-.171137823991699517269,-50,53, + -5959794648299806.,-9007199254740352.,-.171137702043091499154,-50,53, + -5959794648299607.,-9007199254740352.,-.171137700825196638273,-50,53, + -5959794648299605.,-9007199254740352.,-.171137700812956488918,-50,53, + -5878047634915448.,-9007199254739601.,.224456624725804598298,-50,53, + -5878047634915444.,-9007199254739601.,.224456624778327845065,-50,53, + -5878047634915086.,-9007199254739601.,.224456629479158430669,-50,53, + -5878047634879267.,-9007199254739601.,.224457099811702492149,-50,53, + -5878047631297964.,-9007199254739601.,.224504125227802790658,-50,53, + -5878047279237172.,-9007199254739601.,.229126976893408772518,-50,53, + -5825846315584418.,-9007199254738720.,.232583271178911370659,-50,53, + -5825846315584412.,-9007199254738720.,.232583271306483562228,-50,53, + -5825846315583849.,-9007199254738720.,.232583283277007537805,-50,53, + -5825846315527560.,-9007199254738720.,.232584480095523057041,-50,53, + -5825846309901164.,-9007199254738720.,.232704108710071285322,-50,53, + -5825845771594486.,-9007199254738720.,.244149631398247013777,-50,53, + -5808327540792849.,-9007199254738316.,.349708540792045202998,-50,53, + -5808327540792845.,-9007199254738316.,.349708540891928267920,-50,53, + -5808327540792474.,-9007199254738316.,.349708550156082539445,-50,53, + -5808327540755320.,-9007199254738316.,.349709477919931227895,-50,53, + -5808327537042295.,-9007199254738316.,.349802195000823439494,-50,53, + -5808327187530830.,-9007199254738316.,.358529778364943394579,-50,53, + -5742971020770446.,-9007199254736084.,.303635898049435272995,-50,53, + -5742971020770437.,-9007199254736084.,.303635898457115462740,-50,53, + -5742971020769557.,-9007199254736084.,.303635938319178460191,-50,53, + -5742971020681499.,-9007199254736084.,.303639927152752146362,-50,53, + -5742971011893798.,-9007199254736084.,.304037990681265299706,-50,53, + -5742970282723454.,-9007199254736084.,.337067914027587132638,-50,53, + -5728502683954668.,-9007199254735383.,-.453246880366233781431,-50,53, + -5728502445596837.,-9007199254735383.,-.440939402909062678355,-50,53, + -5728502442577848.,-9007199254735383.,-.440783518877754598610,-50,53, + -5728502442547578.,-9007199254735383.,-.440781955900979023736,-50,53, + -5728502442547275.,-9007199254735383.,-.440781940255720911261,-50,53, + -5728502442547272.,-9007199254735383.,-.440781940100817365593,-50,53, + -5682752878991296.,-9007199254732460.,.303381774931886865553,-50,53, + -5682752878991281.,-9007199254732460.,.303381776101084762870,-50,53, + -5682752878989763.,-9007199254732460.,.303381894423911972195,-50,53, + -5682752878838048.,-9007199254732460.,.303393720081186276592,-50,53, + -5682752863758140.,-9007199254732460.,.304569146610618006307,-50,53, + -5682751925642771.,-9007199254732460.,.377692298573358122898,-50,53, + -5646935439382241.,-9007199254729169.,.322668979235936819399,-50,53, + -5646935439382222.,-9007199254729169.,.322668981275685952268,-50,53, + -5646935439380337.,-9007199254729169.,.322669183640270978068,-50,53, + -5646935439191889.,-9007199254729169.,.322689414516319400109,-50,53, + -5646935420561740.,-9007199254729169.,.324689458384010183122,-50,53, + -5646934554955571.,-9007199254729169.,.417617170850903202077,-50,53, + -5610286279406241.,-9007199254724518.,.374964770781466019021,-50,53, + -5610286279406222.,-9007199254724518.,.374964773605836132350,-50,53, + -5610286279404382.,-9007199254724518.,.374965047123783951696,-50,53, + -5610286279220416.,-9007199254724518.,.374992393864452381945,-50,53, + -5610286261221454.,-9007199254724518.,.377667958836918498277,-50,53, + -5610285700332193.,-9007199254724518.,.461044961630850122787,-50,53, + -5504764998682047.,-9007199254698669.,-.495686021985542511020,-50,53, + -5504764858281643.,-9007199254698669.,-.443040553410292822410,-50,53, + -5504764837167000.,-9007199254698669.,-.435123260991537464430,-50,53, + -5504764836926170.,-9007199254698669.,-.435032957702486799309,-50,53, + -5504764836923758.,-9007199254698669.,-.435032053282217645659,-50,53, + -5504764836923734.,-9007199254698669.,-.435032044283010987319,-50,53, + -5500928418642776.,-9007199254697207.,.323067409546473658713,-50,53, + -5500928418642775.,-9007199254697207.,.323067409934140187219,-50,53, + -5500928418642707.,-9007199254697207.,.323067436295464125630,-50,53, + -5500928418635917.,-9007199254697207.,.323070068551192760030,-50,53, + -5500928417957897.,-9007199254697207.,.323332914211639354039,-50,53, + -5500928359013360.,-9007199254697207.,.346183744225609644369,-50,53, + -5500927990713158.,-9007199254697207.,.488961707064693646819,-50,53, + -5376221586957460.,-9007199254610489.,-.497859149831136416939,-50,53, + -5376221481788685.,-9007199254610489.,-.378991419242028901135,-50,53, + -5376221348093431.,-9007199254610489.,-.227881286668256681628,-50,53, + -5376221345048931.,-9007199254610489.,-.224440214142088222098,-50,53, + -5376221345018097.,-9007199254610489.,-.224405363745748677754,-50,53, + -5376221345017789.,-9007199254610489.,-.224405015626073189742,-50,53, + -5376221345017786.,-9007199254610489.,-.224405012235297129790,-50,53, + -5339882002498937.,-9007199254562401.,.483772462068850370848,-50,53, + -5339882002498912.,-9007199254562401.,.483772500486521301907,-50,53, + -5339882002496444.,-9007199254562401.,.483776293078995655912,-50,53, + -5339882002255320.,-9007199254562401.,.484146829978802989739,-50,53, + -5339881995080461.,-9007199254562401.,.495172485216215688968,-50,53, + -5339881991983522.,-9007199254562401.,.499931572911563751624,-50,53, + -5231748396027427.,-9007199254292224.,.217586089114535324528,-50,53, + -5231748396027416.,-9007199254292224.,.217586130765401272555,-50,53, + -5231748396026358.,-9007199254292224.,.217590136821417018653,-50,53, + -5231748395920646.,-9007199254292224.,.217990409216240423843,-50,53, + -5231748386674876.,-9007199254292224.,.252998985751720838367,-50,53, + -5231748326304937.,-9007199254292224.,.481586354586225841304,-50,53, + -5231748321493857.,-9007199254292224.,.499803242535982697294,-50,53, + -5218115932962414.,-9007199254237592.,.280436829066997021101,-50,53, + -5218115932962405.,-9007199254237592.,.280436867198108731566,-50,53, + -5218115932961484.,-9007199254237592.,.280440769281873784187,-50,53, + -5218115932869556.,-9007199254237592.,.280830248930615213906,-50,53, + -5218115925075682.,-9007199254237592.,.313851258920952224449,-50,53, + -5218115883874082.,-9007199254237592.,.488413834555593886802,-50,53, + -5218115881168270.,-9007199254237592.,.499877797053949204513,-50,53, + -5151535840545578.,-9007199253862399.,.254907919820910507708,-50,53, + -5151535840545560.,-9007199253862399.,.254908051295952604503,-50,53, + -5151535840543788.,-9007199253862399.,.254920994283430227603,-50,53, + -5151535840367509.,-9007199253862399.,.256208565892470186426,-50,53, + -5151535828871736.,-9007199253862399.,.340175638776137591660,-50,53, + -5151535807607863.,-9007199253862399.,.495490589034748015176,-50,53, + -5151535806996772.,-9007199253862399.,.499954102182413443338,-50,53, + -5130880865006699.,-9007199253698147.,-.499986741960907659150,-50,53, + -5130880864856772.,-9007199253698147.,-.498691912223384070915,-50,53, + -5130880858450720.,-9007199253698147.,-.443366674942380316798,-50,53, + -5130880853644399.,-9007199253698147.,-.401857355030301567727,-50,53, + -5130880853560493.,-9007199253698147.,-.401132709076466796290,-50,53, + -5130880853559648.,-9007199253698147.,-.401125411316697525553,-50,53, + -5130880853559639.,-9007199253698147.,-.401125333589078680980,-50,53, + -4968298509618523.,-9007199250813548.,-.499997665535433658114,-50,53, + -4968298509611271.,-9007199250813548.,-.499768937849933175014,-50,53, + -4968298508952306.,-9007199250813548.,-.478985217542517238607,-50,53, + -4968298502984221.,-9007199250813548.,-.290752135918157791480,-50,53, + -4968298502331503.,-9007199250813548.,-.270165444582519936479,-50,53, + -4968298502324327.,-9007199250813548.,-.269939113919957214777,-50,53, + -4968298502324255.,-9007199250813548.,-.269936843043744146371,-50,53, + -4968298502324254.,-9007199250813548.,-.269936811503796742635,-50,53, + -4752492777703000.,-9007199233303196.,.333346613238218265130,-50,53, + -4752492777702997.,-9007199233303196.,.333347108329180427288,-50,53, + -4752492777702725.,-9007199233303196.,.333391996576416509207,-50,53, + -4752492777676226.,-9007199233303196.,.337765135045638271931,-50,53, + -4752492776964371.,-9007199233303196.,.455242794339391230546,-50,53, + -4752492776696859.,-9007199233303196.,.499390385784811776190,-50,53, + -4752492776693202.,-9007199233303196.,.499993901672248732970,-50,53, + -4752492776693165.,-9007199233303195.,-.499999992205838366661,-50,53, + -4741479308328681.,-9007199231408545.,.304048438045819342647,-50,53, + -4741479308328677.,-9007199231408545.,.304049154925570518468,-50,53, + -4741479308328330.,-9007199231408545.,.304111344243985102578,-50,53, + -4741479308294655.,-9007199231408545.,.310146575649972480372,-50,53, + -4741479307494906.,-9007199231408545.,.453477542145985471377,-50,53, + -4741479307238716.,-9007199231408545.,.499391898339794687467,-50,53, + -4741479307235357.,-9007199231408545.,.499993898115760686960,-50,53, + -4741479307235323.,-9007199231408545.,.499999991593695519870,-50,53, + -4509366364590378.,-9007199121614422.,.391257167300767902376,-50,53, + -4509366364590367.,-9007199121614422.,.391267892845387409883,-50,53, + -4509366364589328.,-9007199121614422.,.392280969287179221100,-50,53, + -4509366364536024.,-9007199121614422.,.444255008424532223585,-50,53, + -4509366364480013.,-9007199121614422.,.498868506609552160111,-50,53, + -4509366364478864.,-9007199121614422.,.499988838498419476294,-50,53, + -4509366364478853.,-9007199121614422.,.499999564043047493118,-50,53, + -9003431362539911.,-9007199113947990.,.039714656296090594391,-51,53, + -9003431362539887.,-9007199113947990.,.039727010846252282278,-51,53, + -9003431362537548.,-9007199113947990.,.040931064714098499544,-51,53, + -9003431362352603.,-9007199113947990.,.136135743065047967307,-51,53, + -9003431361678274.,-9007199113947990.,.483262054377431243627,-51,53, + -9003431361646096.,-9007199113947990.,.499826417558344770376,-51,53, + -9003431361645762.,-9007199113947990.,.499998351715307431266,-51,53, + -9003431361645759.,-9007199113947990.,.499999896034082545911,-51,53, + -8993907678352313.,-9007199108961639.,.135000194788775092763,-51,53, + -8993907678352294.,-9007199108961639.,.135010311741050132215,-51,53, + -8993907678350375.,-9007199108961639.,.136032123920832629326,-51,53, + -8993907678200893.,-9007199108961639.,.215626979730767765581,-51,53, + -8993907677690184.,-9007199108961639.,.487564800093334913637,-51,53, + -8993907677667072.,-9007199108961639.,.499871273858572407784,-51,53, + -8993907677666833.,-9007199108961639.,.499998534469078360672,-51,53, + -8993907677666830.,-9007199108961638.,-.499999868117400643418,-51,53, + -8963172421441991.,-9007199091671582.,.499999865963301545057,-51,53, + -8963172421441989.,-9007199091671581.,-.499998946635804567856,-51,53, + -8963172421441857.,-9007199091671581.,-.499920578176808001529,-51,53, + -8963172421428942.,-9007199091671581.,-.492252936904353481270,-51,53, + -8963172421092264.,-9007199091671581.,-.292367057700115030100,-51,53, + -8963172420970653.,-9007199091671581.,-.220166552542073965836,-51,53, + -8963172420969009.,-9007199091671581.,-.219190509005669522846,-51,53, + -8963172420968992.,-9007199091671581.,-.219180416098054605420,-51,53, + -8776075116783095.,-9007198934638812.,.437057950913884911648,-51,53, + -8776075116783088.,-9007198934638812.,.437065948024288123424,-51,53, + -8776075116782385.,-9007198934638812.,.437869086397640235793,-51,53, + -8776075116751901.,-9007198934638812.,.472695359761206839630,-51,53, + -8776075116728420.,-9007198934638812.,.499521095390595596964,-51,53, + -8776075116728005.,-9007198934638812.,.499995209793161789482,-51,53, + -8776075116728001.,-9007198934638812.,.499999779570535924773,-51,53, + -8685046906566951.,-9007198812466228.,.189098324974494045118,-51,53, + -8685046906566902.,-9007198812466228.,.189174914099197750363,-51,53, + -8685046906562207.,-9007198812466228.,.196513402680561382801,-51,53, + -8685046906425813.,-9007198812466228.,.409703138954980034242,-51,53, + -8685046906368854.,-9007198812466228.,.498732525822995855617,-51,53, + -8685046906368051.,-9007198812466228.,.499987649642973202590,-51,53, + -8685046906368043.,-9007198812466227.,-.499999846010127877456,-51,53, + -8212825471907614.,-9007197006026857.,.499998868133904621951,-51,53, + -8212825471907603.,-9007197006026856.,-.499918183661877773518,-51,53, + -8212825471906530.,-9007197006026856.,-.491826963377728143640,-51,53, + -8212825471867626.,-9007197006026856.,-.198461787278064189911,-51,53, + -8212825471844888.,-9007197006026856.,-.027000308385915480718,-51,53, + -8212825471844884.,-9007197006026856.,-.026970145402557495933,-51,53, + -8212825471844493.,-9007197006026856.,-.024021713779312596902,-51,53, + -8007376589149477.,-9007194812139062.,.499999560001756121865,-51,53, + -8007376589149476.,-9007194812139061.,-.499985890950697788634,-51,53, + -8007376589149368.,-9007194812139061.,-.498414593815719852039,-51,53, + -8007376589142012.,-9007194812139061.,-.391391800065405584586,-51,53, + -8007376589126693.,-9007194812139061.,-.168514940696214371872,-51,53, + -8007376589126216.,-9007194812139061.,-.161575045016225068842,-51,53, + -8007376589126211.,-9007194812139061.,-.161502299778489276542,-51,53, + -7674333999733130.,-9007186308963029.,.499999538816717749436,-51,53, + -7674333999684053.,-9007186308963026.,-.499990281524894317557,-51,53, + -7674333999684050.,-9007186308963026.,-.499868024040952331286,-51,53, + -7674333999683710.,-9007186308963026.,-.486012175860853360922,-51,53, + -7674333999678868.,-9007186308963026.,-.288688596776837487205,-51,53, + -7674333999678017.,-9007186308963026.,-.254008223831371897976,-51,53, + -7674333999678007.,-9007186308963026.,-.253600698884891160234,-51,53, + -7670011465092394.,-9007186131651710.,-.499983749753955011341,-51,53, + -7670011465092388.,-9007186131651710.,-.499736015376381808287,-51,53, + -7670011465091825.,-9007186131651710.,-.476490272947409580898,-51,53, + -7670011465083609.,-9007186131651710.,-.137259331919040076311,-51,53, + -7670011465082111.,-9007186131651710.,-.075408315649813634796,-51,53, + -7670011465082087.,-9007186131651710.,-.074417378139489968507,-51,53, + -7670011465068175.,-9007186131651710.,.499996065356904003819,-51,53, + -7663679833600279.,-9007185867705397.,.320001921664500984183,-51,53, + -7663679833600271.,-9007185867705397.,.320338619627713526329,-51,53, + -7663679833599635.,-9007185867705397.,.347106107703136680722,-51,53, + -7663679833596231.,-9007185867705397.,.490371091051087589691,-51,53, + -7663679833596005.,-9007185867705397.,.499882808511961427005,-51,53, + -7663679833596002.,-9007185867705396.,-.499990929751832239419,-51,53, + -7663679833572242.,-9007185867705395.,-.499997978961755305030,-51,53, + -7532107066355573.,-9007179075755116.,.499984333660994182411,-51,53, + -7532107066355554.,-9007179075755115.,-.498829494665798246445,-51,53, + -7532107066355038.,-9007179075755115.,-.466615569224977555598,-51,53, + -7532107066354833.,-9007179075755115.,-.453817401171924620721,-51,53, + -7532107066354830.,-9007179075755115.,-.453630110907733544294,-51,53, + -7532107066307519.,-9007179075755113.,.499999785681193600313,-51,53, + -7503352410222560.,-9007177201795188.,-.499998533236642224704,-51,53, + -7503352410207851.,-9007177201795187.,-.499982995234566847248,-51,53, + -7503352410207850.,-9007177201795187.,-.499915008591149630360,-51,53, + -7503352410207745.,-9007177201795187.,-.492776411032340737348,-51,53, + -7503352410204415.,-9007177201795187.,-.266380888451822212700,-51,53, + -7503352410202849.,-9007177201795187.,-.159913804859131338398,-51,53, + -7503352410202826.,-9007177201795187.,-.158350112060512150663,-51,53, + -7455588096918961.,-9007173714269868.,-.499994564336156280634,-51,53, + -7455588096907082.,-9007173714269868.,.429828555593066410777,-51,53, + -7455588096907077.,-9007173714269868.,.430219928233838138257,-51,53, + -7455588096906741.,-9007173714269868.,.456520169693711411596,-51,53, + -7455588096906200.,-9007173714269868.,.498866689425288162974,-51,53, + -7455588096906186.,-9007173714269868.,.499962532819451856715,-51,53, + -7455588096893410.,-9007173714269867.,.499997904540783457038,-51,53, + -7353432756492485.,-9007164394053441.,.212853044834127948032,-51,53, + -7353432756492455.,-9007164394053441.,.216017609792389211767,-51,53, + -7353432756491051.,-9007164394053441.,.364119249839324346709,-51,53, + -7353432756489787.,-9007164394053441.,.497452920081525428372,-51,53, + -7353432756489763.,-9007164394053441.,.499984572048154228337,-51,53, + -7353432756442363.,-9007164394053436.,.499997206483908564155,-51,53, + -7321972524056644.,-9007160919566748.,.499963473936789033594,-51,53, + -7321972524056643.,-9007160919566747.,-.499920984985839415382,-51,53, + -7321972524056615.,-9007160919566747.,-.496685834819435851237,-51,53, + -7321972524055014.,-9007160919566747.,-.311704569947139787327,-51,53, + -7321972524052838.,-9007160919566747.,-.060287185584671594370,-51,53, + -7321972524052775.,-9007160919566747.,-.053008097710183218178,-51,53, + -7321972524039334.,-9007160919566746.,.499979523288326205240,-51,53, + -7321972524013369.,-9007160919566742.,-.499996402496898652815,-51,53, + -7219622810665258.,-9007147170679837.,.267224298097091902645,-51,53, + -7219622810665223.,-9007147170679837.,.272647789961582519031,-51,53, + -7219622810664197.,-9007147170679837.,.431633580046604763406,-51,53, + -7219622810663762.,-9007147170679837.,.499039836076944471499,-51,53, + -7219622810663756.,-9007147170679837.,.499969577539432499537,-51,53, + -7219622810650849.,-9007147170679835.,.499998420298367575211,-51,53, + -6996596764375574.,-9007099075240717.,.499999578406867816709,-51,53, + -6996596764338946.,-9007099075240706.,.106773628135096894665,-51,53, + -6996596764338842.,-9007099075240706.,.136890055491972664537,-51,53, + -6996596764337733.,-9007099075240706.,.458035420288425839921,-51,53, + -6996596764337590.,-9007099075240706.,.499445507904270871390,-51,53, + -6996596764337588.,-9007099075240705.,-.499975330031171739566,-51,53, + -6996596764323775.,-9007099075240701.,-.499992531089314930717,-51,53, + -6991026823115723.,-9007097449834457.,.499996694910133103966,-51,53, + -6991026823115722.,-9007097449834456.,-.499709240261422424995,-51,53, + -6991026823115628.,-9007097449834456.,-.472067146387638526756,-51,53, + -6991026823114882.,-9007097449834456.,-.252694784367780334484,-51,53, + -6991026823114810.,-9007097449834456.,-.231522116719727246899,-51,53, + -6919542283146118.,-9007074222020222.,-.499842930554472578586,-51,53, + -6919542283146089.,-9007074222020222.,-.489467404460063173868,-51,53, + -6919542283145753.,-9007074222020222.,-.369254412469604676399,-51,53, + -6919542283145707.,-9007074222020222.,-.352796681423283326627,-51,53, + -6919542283140528.,-9007074222020220.,-.499870831651413468211,-51,53, + -6919542283115373.,-9007074222020211.,-.499996386210050277858,-51,53, + -6755947041332678.,-9007000586030504.,.499979120143255441508,-51,53, + -6755947041332666.,-9007000586030503.,-.493346479486077578335,-51,53, + -6755947041332378.,-9007000586030503.,-.333160870590006026345,-51,53, + -6755947041332286.,-9007000586030503.,-.281990467748179483967,-51,53, + -6755947041311103.,-9007000586030492.,.499994786916357486140,-51,53, + -6693368374188346.,-9006962719575065.,-.499999340754088475197,-51,53, + -6693368374138089.,-9006962719575033.,.499976458178789913931,-51,53, + -6693368374138080.,-9006962719575032.,-.494113921624817490338,-51,53, + -6693368374137826.,-9006962719575032.,-.327331307193235220183,-51,53, + -6693368374137715.,-9006962719575032.,-.254445991437666118928,-51,53, + -6693368374136566.,-9006962719575031.,-.499984479696331109833,-51,53, + -6651929526154483.,-9006933968960347.,-.499993381857401051338,-51,53, + -6651929526131383.,-9006933968960331.,.415878418856644150676,-51,53, + -6651929526131344.,-9006933968960331.,.444437682936638680772,-51,53, + -6651929526131270.,-9006933968960331.,.498627055806379924776,-51,53, + -6651929526131268.,-9006933968960330.,-.499908366548491787474,-51,53, + -6651929526128537.,-9006933968960329.,.499972407881355344786,-51,53, + -6576166040923338.,-9006872613931440.,.499992860476703442438,-51,53, + -6576166040913252.,-9006872613931431.,.499937742476347854524,-51,53, + -6576166040907708.,-9006872613931426.,.446962769922060455621,-51,53, + -6576166040907682.,-9006872613931426.,.470163103745025404700,-51,53, + -6576166040907649.,-9006872613931426.,.499609681289560093272,-51,53, + -6576166040906528.,-9006872613931425.,.499900997273584020151,-51,53, + -6536313029100415.,-9006835153231829.,.499714482676186409440,-51,53, + -6536313029100413.,-9006835153231828.,-.498307141093577964350,-51,53, + -6536313029100353.,-9006835153231828.,-.438955854186504434574,-51,53, + -6536313029100294.,-9006835153231828.,-.380593755394539844321,-51,53, + -6536313029099404.,-9006835153231828.,.499783667061596210863,-51,53, + -6536313029096371.,-9006835153231825.,.499991220233465578516,-51,53, + -6536313029052901.,-9006835153231782.,.499998587262530185906,-51,53, + -6407177918309707.,-9006683760450083.,.499977123737270809011,-51,53, + -6407177918308980.,-9006683760450082.,.499914758251500004512,-51,53, + -6407177918307857.,-9006683760450080.,.044522686122345122193,-51,53, + -6407177918307642.,-9006683760450080.,.340240143373274028606,-51,53, + -6407177918307528.,-9006683760450080.,.497039167218017796362,-51,53, + -6407177918307526.,-9006683760450080.,.499790027285469844622,-51,53, + -6407177918213737.,-9006683760449951.,.499997475703833095373,-51,53, + -6381362283378273.,-9006647070604837.,.287566468157997193357,-51,53, + -6381362283378175.,-9006647070604837.,.431426869263022349392,-51,53, + -6381362283378129.,-9006647070604837.,.498953179985801496773,-51,53, + -6381362283378128.,-9006647070604836.,-.499578856737616261020,-51,53, + -6381362283377447.,-9006647070604835.,-.499895865384251291725,-51,53, + -6381362283374041.,-9006647070604831.,.499987054684873939132,-51,53, + -6381362283348836.,-9006647070604793.,-.499998557505385380669,-51,53, + -6373189179225722.,-9006634948583043.,.499991249247149132452,-51,53, + -6373189179214377.,-9006634948583026.,.499961446564200361503,-51,53, + -6373189179212413.,-9006634948583023.,.442926758868228600587,-51,53, + -6373189179212387.,-9006634948583023.,.481886584794957785731,-51,53, + -6373189179212375.,-9006634948583023.,.499868042914987499240,-51,53, + -6373189179193689.,-9006634948582995.,.499995246145963231218,-51,53, + -6370884482049613.,-9006631485076377.,.499966161589897788138,-51,53, + -6370884482049596.,-9006631485076376.,-.474412122474077273262,-51,53, + -6370884482049557.,-9006631485076376.,-.415632891797310043097,-51,53, + -6370884482033689.,-9006631485076353.,.499978195320219118955,-51,53, + -6370884482005822.,-9006631485076311.,.499999256659146281668,-51,53, + -6367009572568964.,-9006625616449033.,.310131822181797161618,-51,53, + -6367009572568878.,-9006625616449033.,.441015426130307983277,-51,53, + -6367009572568840.,-9006625616449033.,.498847716247100839383,-51,53, + -6367009572568839.,-9006625616449032.,-.499630381381404537243,-51,53, + -6367009572567525.,-9006625616449030.,-.499850665234167371885,-51,53, + -6367009572566868.,-9006625616449029.,-.499960807158074133797,-51,53, + -6367009572548470.,-9006625616449002.,.499999024385488207492,-51,53, + -6208725144805072.,-9006330351884959.,-.499997411509180920138,-51,53, + -6208725144792204.,-9006330351884931.,.499256569851924247294,-51,53, + -6208725144792203.,-9006330351884930.,-.498489835651509226339,-51,53, + -6208725144792201.,-9006330351884930.,-.493982646658376157048,-51,53, + -6208725144791760.,-9006330351884930.,.499852526328004711207,-51,53, + -6208725144789985.,-9006330351884926.,.499982757746627435687,-51,53, + -6167723416123381.,-9006233163397845.,.499998042444259596857,-51,53, + -6167723416088051.,-9006233163397756.,-.499988750346561455899,-51,53, + -6167723416082430.,-9006233163397742.,-.499194120786358509218,-51,53, + -6167723416082411.,-9006233163397742.,-.451868894320699586438,-51,53, + -6167723416082298.,-9006233163397742.,-.170408336919630275241,-51,53, + -6167723416082029.,-9006233163397742.,.499617237778801803779,-51,53, + -6167723416080423.,-9006233163397738.,.499844274835069768801,-51,53, + -6167723416079620.,-9006233163397736.,.499957793369064549642,-51,53, + -5736830024850461.,-9004365261525945.,.499989336539118334829,-51,53, + -5736830024850315.,-9004365261525943.,-.499920889580377596268,-51,53, + -5736830024850218.,-9004365261525943.,.164522316354112575491,-51,53, + -5736830024850171.,-9004365261525943.,.486469024384278821675,-51,53, + -5736830024850169.,-9004365261525942.,-.499831115699543131759,-51,53, + -5736830024817030.,-9004365261525716.,.499997773924049662115,-51,53, + -5211344606297417.,-8997611660868471.,-.499247765434316217822,-51,53, + -5211344606297135.,-8997611660868465.,-.491857956806070726409,-51,53, + -5211344606297133.,-8997611660868465.,-.449252355326425343817,-51,53, + -5211344606296619.,-8997611660868454.,-.499612775051755179028,-51,53, + -5211344606295821.,-8997611660868437.,-.499977784641309649441,-51,53, + -5211344606186211.,-8997611660866102.,-.499988423330881020831,-51,53, + -4876722113931729.,-8987446059936190.,.499964618690072543314,-51,53, + -4876722113924685.,-8987446059935898.,.499732320198993101999,-51,53, + -4876722113924613.,-8987446059935895.,.484397748173514476661,-51,53, + -4876722113915687.,-8987446059935524.,-.499996552783030341704,-51,53, + -4751618877829066.,-8981589271058222.,-.499999680684321060138,-51,53, + -4751618877818946.,-8981589271057691.,.499974784288256557681,-51,53, + -4751618877763286.,-8981589271054765.,.499834522001580144647,-51,53, + -4751618877760756.,-8981589271054632.,.499828153695499353151,-51,53, + -4751618877760490.,-8981589271054618.,.483226693665173933825,-51,53, + -4751618877760395.,-8981589271054613.,.477297600798890014350,-51,53, + -4751618877760394.,-8981589271054612.,-.470133231757592455638,-51,53, + -4628339749646957.,-8974306466792598.,.499964806961659505855,-51,53, + -4628339749644897.,-8974306466792461.,-.468572417491973852986,-51,53, + -4628339749644882.,-8974306466792460.,-.478052057473983470806,-51,53, + -4628339749644852.,-8974306466792458.,-.497011337437921335083,-51,53, + -4628339749644004.,-8974306466792402.,-.499593651040354180130,-51,53, + -4628339749643898.,-8974306466792395.,-.499916440234563028206,-51,53, + -4628339749637674.,-8974306466791985.,.499998279642453003117,-51,53, + -4542273746000434.,-8968155427953202.,-.499953031234960743419,-51,53, + -4542273745999773.,-8968155427953151.,-.499402309467159093126,-51,53, + -4542273745999592.,-8968155427953138.,.465952729333044877036,-51,53, + -4542273745999475.,-8968155427953129.,.493281677068183256170,-51,53, + -4542273745999449.,-8968155427953127.,.499354776565137652107,-51,53, + -4542273745978699.,-8968155427951525.,-.499998479722701932701,-51,53, + -8739937159289815.,-8952613099397594.,.499854768614940967377,-52,53, + -8739937159289298.,-8952613099397567.,.499588261547478883455,-52,53, + -8739937159289049.,-8952613099397553.,-.496671622896581003480,-52,53, + -8739937159288915.,-8952613099397546.,-.498674934202671138290,-52,53, + -8739937159286330.,-8952613099397412.,.499992530685029938623,-52,53, + -8739937159278843.,-8952613099397020.,-.499998450359087301428,-52,53, + -8728866355390980.,-8952032173572207.,-.499994493244127037507,-52,53, + -8728866355360861.,-8952032173570619.,-.499986022325651059378,-52,53, + -8728866355359723.,-8952032173570559.,-.499852894923849679802,-52,53, + -8728866355358205.,-8952032173570479.,-.464525928755093975089,-52,53, + -8728866355358187.,-8952032173570479.,.484509568868087793365,-52,53, + -8728866355358111.,-8952032173570475.,.491548336610572918222,-52,53, + -8728866355358016.,-8952032173570469.,-.499653203710952064986,-52,53, + -8585905274322860.,-8944014070717526.,-.499996636056696545454,-52,53, + -8585905274309111.,-8944014070716707.,-.499943569862303274128,-52,53, + -8585905274307768.,-8944014070716628.,.499843416458601812173,-52,53, + -8524144525626389.,-8940237465026756.,-.499998317971534615171,-52,53, + -8524144525615553.,-8940237465026077.,.499979023437900502201,-52,53, + -8524144525569500.,-8940237465023187.,.499882793524712029732,-52,53, + -8524144525567843.,-8940237465023083.,.482898897645044983138,-52,53, + -8524144525567779.,-8940237465023079.,.499140919774504691860,-52,53, + -8524144525567285.,-8940237465023048.,.499509028093541783307,-52,53, + -8524144525566791.,-8940237465023017.,.499877136425451142092,-52,53, + -8378459844685390.,-8930515374463518.,.499979861412760735657,-52,53, + -8378459844682285.,-8930515374463297.,-.497117432353332110443,-52,53, + -8378459844682257.,-8930515374463296.,.486805683840716792736,-52,53, + -8378459844682158.,-8930515374463288.,-.498609012472813726010,-52,53, + -8378459844682031.,-8930515374463280.,.499899407408648825575,-52,53, + -8378459844673323.,-8930515374462663.,.499988546099663403682,-52,53, + -8378459844661256.,-8930515374461808.,.499997239310499928310,-52,53, + -7685757137759551.,-8864872585377586.,.490210978347719089161,-52,53, + -7685757137759543.,-8864872585377585.,.471343801456081144913,-52,53, + -7685757137759502.,-8864872585377580.,.499649519886530045804,-52,53, + -7685757137757806.,-8864872585377372.,.499808019000056551644,-52,53, + -7685757137755792.,-8864872585377125.,.499996237044616116970,-52,53, + -7680038864670185.,-8864169765761677.,.499628289716013872456,-52,53, + -7680038864670120.,-8864169765761668.,-.494058237438423559231,-52,53, + -7680038864670112.,-8864169765761668.,.491334189988749841068,-52,53, + -7680038864669706.,-8864169765761618.,.499999881925639426366,-52,53, + -7326428955739538.,-8814334240980368.,.482487250413042849351,-52,53, + -7326428955739513.,-8814334240980364.,.482695610689270525594,-52,53, + -7326428955738663.,-8814334240980228.,.489779860123999036467,-52,53, + -7326428955737463.,-8814334240980036.,.499781153585799684786,-52,53, + -7326428955737438.,-8814334240980032.,.499989513868023939254,-52,53, + -7326428955718239.,-8814334240976959.,-.499998102462733578260,-52,53, + -7095143132251519.,-8774091990244670.,-.499993981361666443537,-52,53, + -7095143132243126.,-8774091990243088.,.499960457577899410814,-52,53, + -7095143132241774.,-8774091990242832.,-.499927733921894512572,-52,53, + -7095143132241546.,-8774091990242789.,-.496950298736848905453,-52,53, + -7095143132241530.,-8774091990242786.,-.479197496267465316179,-52,53, + -7095143132241493.,-8774091990242780.,.499355859443113618705,-52,53, + -7095143132206850.,-8774091990236245.,-.499998064488903505167,-52,53, + -6791286311414149.,-8710336228448914.,-.499246484295085609554,-52,53, + -6791286311413938.,-8710336228448865.,-.499329836155835106284,-52,53, + -6791286311412461.,-8710336228448522.,-.499913298987217072129,-52,53, + -6791286311412250.,-8710336228448473.,-.499996650792576708497,-52,53, + -5936981026600032.,-8446262199972264.,-.498786413095946394339,-52,53, + -5936981026599853.,-8446262199972193.,-.442858368155471259800,-52,53, + -5936981026599838.,-8446262199972187.,-.488450990087495546606,-52,53, + -5936981026599833.,-8446262199972186.,.496351469268507977451,-52,53, + -5936981026599571.,-8446262199972081.,-.499999660468778945419,-52,53, + -5820702917350475.,-8398507865949299.,-.499904128828856486612,-52,53, + -5820702917349639.,-8398507865948945.,.499583924583255070666,-52,53, + -5820702917349566.,-8398507865948914.,.498343048872542764392,-52,53, + -5820702917349533.,-8398507865948899.,-.488519264804476242604,-52,53, + -5820702917349526.,-8398507865948897.,.483964486839826574952,-52,53, + -5820702917346441.,-8398507865947586.,-.499982108758559256968,-52,53, + -5820702917332740.,-8398507865941768.,-.499999035769952553343,-52,53, + -5511906461543847.,-8255276399546565.,.499993940800493020078,-52,53, + -5511906461537878.,-8255276399543552.,-.499986874885156291909,-52,53, + -5511906461525940.,-8255276399537528.,-.499948476941442032104,-52,53, + -5511906461525506.,-8255276399537310.,.499550322982978670209,-52,53, + -5511906461525421.,-8255276399537267.,.391157230808327190282,-52,53, + -5511906461525399.,-8255276399537256.,.492514312834034319527,-52,53, + -5511906461525397.,-8255276399537254.,-.498271406981803904617,-52,53, + -5409484614183812.,-8202137287682498.,-.499999218019733006134,-52,53, + -5409484614180335.,-8202137287680645.,.499984369342975644789,-52,53, + -5409484614120067.,-8202137287648509.,.499700429984119552150,-52,53, + -5409484614107318.,-8202137287641711.,.499640498274800838946,-52,53, + -5409484614106746.,-8202137287641405.,-.499499376783850609737,-52,53, + -5409484614106671.,-8202137287641366.,.491872143101723633145,-52,53, + -5409484614106581.,-8202137287641318.,.481517966966524597760,-52,53, + -5409484614106579.,-8202137287641316.,-.452045459169786991265,-52,53, + -5358076516284321.,-8174347464713580.,-.499991116425022082290,-52,53, + -5358076516281142.,-8174347464711838.,-.499939193917335009856,-52,53, + -5358076516281100.,-8174347464711815.,-.485153984478021285223,-52,53, + -5358076516281089.,-8174347464711809.,-.457472143910497581617,-52,53, + -5358076516281069.,-8174347464711798.,-.498050615605819278732,-52,53, + -5358076516265789.,-8174347464703426.,.499997043010853115771,-52,53, + -5163948174446745.,-8062395099948100.,-.499994641278106319848,-52,53, + -5163948174415740.,-8062395099929311.,.499895392757364646884,-52,53, + -5163948174415575.,-8062395099929211.,.495056878976364381801,-52,53, + -5163948174415547.,-8062395099929194.,.463932767547695127282,-52,53, + -5163948174415542.,-8062395099929191.,.494089176221172505117,-52,53, + -5163948174414712.,-8062395099928687.,-.499946983874647266684,-52,53, + -5163948174402310.,-8062395099921171.,-.499990883262876231768,-52,53, + -5106131784546875.,-8026837654041456.,-.499997828982986519828,-52,53, + -5106131784519790.,-8026837654024555.,.499987298791753263356,-52,53, + -5106131784505794.,-8026837654015820.,-.499946454396608847496,-52,53, + -5106131784503331.,-8026837654014284.,.499350720155630472665,-52,53, + -5106131784503323.,-8026837654014279.,.491634267619725880185,-52,53, + -5106131784503307.,-8026837654014269.,.476201362547977022395,-52,53, + -5106131784503073.,-8026837654014122.,-.499504874117159555497,-52,53, + -4914119194457234.,-7901109598044968.,-.499997558755922128141,-52,53, + -4914119194428429.,-7901109598025204.,-.499970054914908301162,-52,53, + -4914119194428292.,-7901109598025111.,.499960644165561935650,-52,53, + -4914119194426100.,-7901109598023607.,.498851830301764110796,-52,53, + -4914119194425450.,-7901109598023161.,.483924490731362753895,-52,53, + -4914119194425447.,-7901109598023158.,-.457682866220174974643,-52,53, + -4914119194425415.,-7901109598023137.,.498505326296942108715,-52,53, + -4914119194413958.,-7901109598015275.,-.499990849677020818850,-52,53, + -4576355272201057.,-7649806270428282.,-.499986530672408559847,-52,53, + -4576355272195461.,-7649806270423786.,.499952366228535428790,-52,53, + -4576355272193261.,-7649806270422018.,.441315052180074840195,-52,53, + -4576355272193246.,-7649806270422006.,.495460706863041506491,-52,53, + -4576355272193134.,-7649806270421916.,.499748261831771708426,-52,53, + -4576355272192192.,-7649806270421158.,-.499904623876202948734,-52,53, + -4576355272166539.,-7649806270400544.,.499994144130626085525,-52,53, + -4559405488044149.,-7636133098584962.,.499998995979030906909,-52,53, + -4559405488016945.,-7636133098562933.,.441517637297471220169,-52,53, + -4559405488016940.,-7636133098562929.,.490359998489953561758,-52,53, + -4559405488016898.,-7636133098562894.,-.499364167492835436239,-52,53, + -4559405488014175.,-7636133098560689.,-.499814260673113597917,-52,53, + -4559405488013008.,-7636133098559745.,.499992843075985670055,-52,53, + -8893492457679060.,-7542575059696381.,-.499999805097594789345,-53,53, + -8893492457664910.,-7542575059690358.,-.499979559644952880463,-53,53, + -8893492457664783.,-7542575059690304.,-.441958176438618647831,-53,53, + -8893492457664762.,-7542575059690296.,.496769768816117072833,-53,53, + -8512362176195475.,-7373477870436938.,.499998953188303829504,-53,53, + -8512362176159339.,-7373477870420246.,.499970935944799891986,-53,53, + -8512362176132237.,-7373477870407727.,.499950006077219460680,-53,53, + -8512362176131029.,-7373477870407168.,-.498722609905338561266,-53,53, + -8512362176130964.,-7373477870407138.,-.473816749006349974520,-53,53, + -8512362176130962.,-7373477870407138.,.450026508252086938003,-53,53, + -8512362176130832.,-7373477870407078.,.499838230051317931745,-53,53, + -8448931866443737.,-7343982660524873.,.499984238766203577090,-53,53, + -8448931866436279.,-7343982660521381.,-.499958760227665396438,-53,53, + -8448931866436185.,-7343982660521337.,-.499689873347448067697,-53,53, + -8448931866435433.,-7343982660520985.,-.497538778274696854164,-53,53, + -8448931866435339.,-7343982660520941.,-.497269891386726379522,-53,53, + -8448931866406541.,-7343982660507461.,-.499999589127778059501,-53,53, + -6899679711668352.,-6497169420355206.,-.499994098782035614259,-53,53, + -6899679711654486.,-6497169420346506.,.499988333460584389525,-53,53, + -6899679711647114.,-6497169420341880.,.475170116696436128818,-53,53, + -6899679711647106.,-6497169420341875.,.495219147392192250687,-53,53, + -6899679711647004.,-6497169420341810.,-.499155711236318425227,-53,53, + -6899679711646655.,-6497169420341591.,-.499516747123509067707,-53,53, + -6899679711646306.,-6497169420341372.,-.499877782997699564716,-53,53, + -6899679711643463.,-6497169420339588.,-.499953498818059877075,-53,53, + -6739056859599018.,-6394999040589346.,-.499995816576112161475,-53,53, + -6739056859598548.,-6394999040589043.,-.499868148256453068856,-53,53, + -6739056859596668.,-6394999040587831.,-.499357474741230042627,-53,53, + -6739056859596395.,-6394999040587656.,.498589022029424016798,-53,53, + -8815198240809123.,-4603434575149270.,.499975364842755311826,-54,53, + -8815198240807434.,-4603434575148520.,.498750993530709689321,-54,53, + -8815198240807335.,-4603434575148476.,.459602850987023326529,-54,53, + -8815198240807326.,-4603434575148472.,.456043928937609017923,-54,53, + -8815198240807157.,-4603434575148396.,-.499673607323252368911,-54,53, + -8815198240806594.,-4603434575148147.,.499918268925121220472,-54,53, + -8815198240791983.,-4603434575141659.,.499983820205040171402,-54,53, + -8815198240757703.,-4603434575126436.,-.499999247808770591637,-54,53, + -5928700130568081.,-6455940852387058.,-.499997589389695702391,-54,54, + -5928700130526320.,-6455940852344773.,-.499988727237494704977,-54,54, + -5928700130525603.,-6455940852344048.,.496635069551168677290,-54,54, + -5928700130525523.,-6455940852343966.,-.499557533316420242717,-54,54, + -4568714127776735.,-5046813367341640.,.499859733525582157535,-54,54, + -4568714127776494.,-5046813367341385.,.498653671253064596652,-54,54, + -4568714127776373.,-5046813367341256.,-.472906218932899620625,-54,54, + -4568714127776356.,-5046813367341238.,-.485439426644942291440,-54,54, + -4568714127776339.,-5046813367341220.,-.497972634356976352250,-54,54, + -4568714127773464.,-5046813367338178.,-.499912173768293934237,-54,54, + -4568714127752719.,-5046813367316228.,-.499994164760604275087,-54,54, + -8574465773785676.,-4747822933698832.,.499996559999402696534,-55,54, + -8574465773762263.,-4747822933686350.,.499985633495077410711,-55,54, + -8574465773750549.,-4747822933680105.,.498399849565412328312,-55,54, + -8574465773750534.,-4747822933680097.,.495239205314798755552,-55,54, + -8574465773750444.,-4747822933680049.,.476275339811150597695,-55,54, + -8574465773750429.,-4747822933680041.,.473114695560548117837,-55,54, + -8574465773749930.,-4747822933679774.,-.498696069841924482161,-55,54, + -8574465773747077.,-4747822933678253.,-.499850606267674446425,-55,54, + -8574465773746760.,-4747822933678084.,-.499978888089218998875,-55,54, + -7948481765259257.,-8825493457841094.,-.499526058438213131245,-55,55, + -7948481765259150.,-8825493457840979.,-.498594122082569279937,-55,55, + -7948481765259137.,-8825493457840966.,.473481720652238837761,-55,55, + -7948481765258254.,-8825493457840017.,.499863961798643171338,-55,55, + -7948481765251808.,-8825493457833089.,.499931828960882685478,-55,55, + -7948481765245362.,-8825493457826161.,.499999696670028390218,-55,55, + -6395058138422820.,-7140979009964304.,-.499995940137402946221,-55,55, + -6395058138414221.,-7140979009954903.,.499984848870718049709,-55,55, + -6395058138397023.,-7140979009936099.,.499946429276775793337,-55,55, + -6395058138395406.,-7140979009934330.,-.499824597683624271605,-55,55, + -6395058138395149.,-7140979009934050.,.499593365257236683457,-55,55, + -6395058138395106.,-7140979009934002.,-.484939816040526431845,-55,55, + -6395058138395095.,-7140979009933990.,-.457727374046927750054,-55,55, + -6395058138395074.,-7140979009933967.,-.496685439331872101364,-55,55, + -8610906524393944.,-4835157013247029.,.499964585153879749491,-56,55, + -8610906524391141.,-4835157013245469.,-.499397071327118273982,-56,55, + -8610906524390990.,-4835157013245386.,.485296610396935435426,-56,55, + -8610906524390981.,-4835157013245381.,.491006829837443276142,-56,55, + -8610906524390963.,-4835157013245370.,-.497572731281540594145,-56,55, + -8610906524390616.,-4835157013245177.,-.499634270630723935480,-56,55, + -8610906524390091.,-4835157013244885.,-.499871469933821131867,-56,55, + -8610906524381335.,-4835157013240016.,.499982021383194970226,-56,55, + -8610906524368726.,-4835157013233003.,.499999457905804638165,-56,55, + -8564703869836263.,-4809457592100354.,-.499999725573408289534,-56,55, + -8564703869818040.,-4809457592090218.,.499973086935022751986,-56,55, + -8564703869813100.,-4809457592087470.,.498648699935349460306,-56,55, + -8564703869813073.,-4809457592087454.,-.481925340236388046917,-56,55, + -8564703869813064.,-4809457592087449.,-.475450020293633585363,-56,55, + -8564703869812789.,-4809457592087296.,-.499815244264953375140,-56,55, + -8564703869803060.,-4809457592081884.,-.499994386055538386020,-56,55, + -4503599627370496.,-5081767996463981.,-.069064770199409151260,-1074,1074, + 0.,0.,0.000000000000000000000,0,0, + 4503599627370496.,5081767996463981.,.069064770199409151260,-1074,1074, + 4963799507959443.,5592200894294325.,-.499998750961312893171,-56,56, + 4963799507971862.,5592200894308272.,-.499906884843400088752,-56,56, + 4963799507973008.,5592200894309559.,-.499173711611750486649,-56,56, + 4963799507973390.,5592200894309988.,-.498929320535160617862,-56,56, + 4963799507973406.,5592200894310005.,.469667303174846780694,-56,56, + 4963799507975747.,5592200894312634.,.499960809739380352365,-56,56, + 8015359031380305.,9007199254740601.,.000004185417420590462,-56,56, + 8015359031380436.,9007199254740747.,-.000052260828734792493,-56,56, + 8015359031380637.,9007199254740971.,.015128306381247863544,-56,56, + 8015359031380655.,9007199254740991.,.076189252698552961132,-56,56, + 8015359031380656.,4503599627370496.,.095346319302534939154,-56,55, + 8015359031380698.,4503599627370519.,.499917423339388646300,-56,55, + 6233105730153892.,6963762843351462.,.499997967118101293030,-55,55, + 6233105730177497.,6963762843377313.,-.499967857674822027521,-55,55, + 6233105730218535.,6963762843422253.,.499879723467395989137,-55,55, + 6233105730219240.,6963762843423026.,-.449706208148311888828,-55,55, + 6233105730219250.,6963762843423037.,-.498636505050699953426,-55,55, + 6233105730219986.,6963762843423843.,-.499906357069348716362,-55,55, + 6623011263590896.,7389936056068580.,.499998078245955335724,-55,55, + 6623011263598851.,7389936056077259.,-.499990632718292526852,-55,55, + 6623011263606806.,7389936056085937.,-.499979344386983289958,-55,55, + 6623011263609612.,7389936056088998.,-.473199749953205614092,-55,55, + 6623011263609667.,7389936056089058.,-.474456742935600405644,-55,55, + 6623011263610591.,7389936056090066.,-.495574225044867794989,-55,55, + 6623011263610778.,7389936056090270.,-.499848001187185407133,-55,55, + 6623011263610789.,7389936056090281.,.499900600216195551975,-55,55, + 8117722295955631.,9007199254736941.,-.000020450084441517226,-55,55, + 8117722295958885.,9007199254740431.,-.000062037023302594956,-55,55, + 8117722295959340.,9007199254740919.,-.000682480199090562453,-55,55, + 8117722295959408.,4503599627370496.,-.034453536952360792734,-55,54, + 8117722295959409.,4503599627370497.,-.498190482494314193420,-55,54, + 8117722296000732.,4503599627392657.,-.499991118361421175061,-55,54, + 4887887770555311.,5382978555631087.,-.499990310169652204134,-54,54, + 4887887770566845.,5382978555643177.,.486153023572710913572,-54,54, + 4887887770566866.,5382978555643200.,-.499740074228190877284,-54,54, + 4887887770576081.,5382978555652860.,-.499973229634397015461,-54,54, + 4887887770598694.,5382978555676564.,.499997204666227431356,-54,54, + 5820087125528262.,6345747840956876.,.499999225585050266294,-54,54, + 5820087125533402.,6345747840962102.,-.499984853574540840197,-54,54, + 5820087125574522.,6345747841003902.,-.499857521530692915515,-54,54, + 5820087125578634.,6345747841008082.,-.499844791717185060454,-54,54, + 5820087125578876.,6345747841008328.,-.497898517267798075949,-54,54, + 5820087125578997.,6345747841008451.,-.496925380043905348778,-54,54, + 5820087125578999.,6345747841008453.,-.463851443891448796819,-54,54, + 5903574232630101.,6430488019583934.,-.499993382145297930163,-54,54, + 5903574232639748.,6430488019593710.,.499391509287310865598,-54,54, + 5903574232640119.,6430488019594086.,.498849557806067500536,-54,54, + 5903574232640193.,6430488019594161.,.496046041876587032491,-54,54, + 5903574232640200.,6430488019594169.,-.409624560981617519582,-54,54, + 5903574232641158.,6430488019595140.,-.499972780735799185466,-54,54, + 7084828796305136.,7600639788538656.,.499950333598021682658,-54,54, + 7084828796305166.,7600639788538686.,-.499785104819973015643,-54,54, + 7084828796305616.,7600639788539121.,-.495816681094452014579,-54,54, + 7084828796306006.,7600639788539498.,-.492377380539247575677,-54,54, + 7084828796306007.,7600639788539498.,.474298104846783158290,-54,54, + 7084828796308917.,7600639788542311.,.499960578017444439333,-54,54, + 7084828796320260.,7600639788553276.,.499991307655241199661,-54,54, + 7084828796324041.,7600639788556932.,-.499998450338983716795,-54,54, + 8591720143175582.,9007199254740895.,.000359220696149731352,-54,54, + 8591720143175671.,9007199254740975.,-.005739656117534821750,-54,54, + 8591720143175689.,9007199254740991.,.172802144077404493348,-54,54, + 8591720143175690.,4503599627370496.,.035805010933005890474,-54,53, + 8591720143175691.,4503599627370496.,.485208949827309510478,-54,53, + 8591720143175918.,4503599627370598.,.499903078833615453494,-54,53, + 8591720143211988.,4503599627386808.,.499978980689962229855,-54,53, + 8591720143222809.,4503599627391672.,-.499998254790316965795,-54,53, + 4793639419596473.,4938982043460779.,-.455523506509175877536,-53,53, + 4793639419596480.,4938982043460784.,.494853643604404956491,-53,53, + 4793639419596500.,4938982043460801.,.495931215357465931442,-53,53, + 4793639419596580.,4938982043460870.,-.499758497630691980165,-53,53, + 4793639419597507.,4938982043461658.,-.499813046927857597100,-53,53, + 4793639419600288.,4938982043464022.,-.499976695337286741162,-53,53, + 4793639419637408.,4938982043495575.,.499996394975151757899,-53,53, + 4833672853817651.,4972932026311672.,.499981638059582685970,-53,53, + 4833672853826029.,4972932026318760.,.499027371857956003328,-53,53, + 4833672853826107.,4972932026318826.,.488992228262555832796,-53,53, + 4833672853826237.,4972932026318936.,.472266988935525907521,-53,53, + 4833672853826620.,4972932026319260.,.499914937677526358263,-53,53, + 4833672853827815.,4972932026320272.,-.499982454723815493207,-53,53, + 4833672853905542.,4972932026386030.,.499996634244476277270,-53,53, + 5238337640725295.,5306943541751713.,-.499981484323555803020,-53,53, + 5238337640730325.,5306943541755760.,-.499945848240541811392,-53,53, + 5238337640730806.,5306943541756146.,.499461137895296297511,-53,53, + 5238337640730980.,5306943541756286.,.495088613123545769721,-53,53, + 5238337640731011.,5306943541756311.,.436838335721352032543,-53,53, + 5238337640731026.,5306943541756324.,-.494573088828132394936,-53,53, + 5238337640779269.,5306943541795139.,-.499996845823521490368,-53,53, + 5253043960571894.,5318764604575671.,.499995162813356805449,-53,53, + 5253043960608623.,5318764604605167.,-.499987856224942110901,-53,53, + 5253043960609522.,5318764604605888.,.436493267717497414283,-53,53, + 5253043960609542.,5318764604605904.,.497371601953303450617,-53,53, + 5253043960609674.,5318764604606010.,.499168607908580040619,-53,53, + 5253043960609740.,5318764604606064.,-.499932889114461149448,-53,53, + 5804673005254126.,5745770529096649.,.499995828499550819684,-53,53, + 5804673005259449.,5745770529100615.,-.499991786734603957928,-53,53, + 5804673005264772.,5745770529104580.,-.499979404988904290246,-53,53, + 5804673005267555.,5745770529106653.,-.496967108915532400824,-53,53, + 5804673005267586.,5745770529106676.,-.405665139398703069779,-53,53, + 5804673005267602.,5745770529106688.,-.487573800293282847585,-53,53, + 5804673005267653.,5745770529106726.,-.498657656894937997718,-53,53, + 5804673005267751.,5745770529106798.,.499651795124632718613,-53,53, + 5804673005268923.,5745770529107671.,.499842384503846173665,-53,53, + 5883274318093769.,5803989623814352.,-.499998982083437130993,-53,53, + 5883274318098600.,5803989623817909.,.499988333209668399468,-53,53, + 5883274318117924.,5803989623832141.,.499937569452649907363,-53,53, + 5883274318121518.,5803989623834788.,.457493845071009531608,-53,53, + 5883274318121533.,5803989623834800.,-.495104000192239155388,-53,53, + 5883274318121552.,5803989623834813.,.498272062474278006011,-53,53, + 5883274318121848.,5803989623835032.,-.499658750726013371368,-53,53, + 5883274318122755.,5803989623835699.,.499924872281035130849,-53,53, + 6519271573310182.,6250717946426549.,.499998517471780523788,-53,53, + 6519271573373674.,6250717946468978.,.499983375527129065080,-53,53, + 6519271573379332.,6250717946472760.,-.499545494363036653548,-53,53, + 6519271573379465.,6250717946472848.,.378691101619748702978,-53,53, + 6519271573379519.,6250717946472884.,.464591674424247125139,-53,53, + 6519271573379540.,6250717946472898.,.497997452737023047282,-53,53, + 6519271573379751.,6250717946473040.,-.499687346122952295793,-53,53, + 6519271573380589.,6250717946473600.,-.499971049699347906351,-53,53, + 6584326398944836.,6293964096501537.,-.499996223819997561948,-53,53, + 6584326398952128.,6293964096506358.,.499849972267414674771,-53,53, + 6584326398953055.,6293964096506971.,.499556146265134627779,-53,53, + 6584326398953167.,6293964096507046.,-.437911931963608263088,-53,53, + 6584326398953179.,6293964096507053.,.497359345368946569757,-53,53, + 6584326398958493.,6293964096510567.,.499989989283057838831,-53,53, + 7110581059190164.,6627142197596175.,-.499985609903387836570,-53,53, + 7110581059190559.,6627142197596413.,.499981209306443224426,-53,53, + 7110581059198459.,6627142197601193.,.499317590027944667859,-53,53, + 7110581059204384.,6627142197604778.,.498819871225171029832,-53,53, + 7110581059204389.,6627142197604782.,-.475864093096066114453,-53,53, + 7110581059220303.,6627142197614411.,-.499985748164146627207,-53,53, + 7242069988296072.,6705785896612562.,-.499955501038387990253,-53,53, + 7242069988298870.,6705785896614216.,-.459910836076169059300,-53,53, + 7242069988298875.,6705785896614218.,.495843353817591412529,-53,53, + 7242069988298897.,6705785896614232.,-.498838210649893856402,-53,53, + 7242069988299078.,6705785896614338.,.499463463502038437051,-53,53, + 7242069988300208.,6705785896615006.,.499910379400016272611,-53,53, + 7242069988304909.,6705785896617785.,.499999715684850409606,-53,53, + 8801612647853501.,7503070893334252.,.495503057927716274152,-53,53, + 8801612647853508.,7503070893334256.,-.464608504020868905750,-53,53, + 8801612647853577.,7503070893334286.,-.499993900371455597665,-53,53, + 8801612647887998.,7503070893349233.,.499995496109117063788,-53,53, + 9007199254731442.,7590373954222351.,-.499988025786364281067,-53,53, + 9007199254740960.,7590373954226301.,.493172427637150674962,-53,53, + 9007199254740984.,7590373954226311.,.455752365731467797871,-53,53, + 9007199254740991.,7590373954226314.,.361504847675633624683,-53,53, + 4503599627370497.,7590373954226316.,-.393172660062582403555,-52,53, + 4503599627370533.,7590373954226345.,.494567154219984053312,-52,53, + 4503599627370692.,7590373954226477.,.498751333962270295174,-52,53, + 4503599627370745.,7590373954226522.,-.499853939459038921935,-52,53, + 4503599627395117.,7590373954246756.,-.499999781728011330575,-52,53, + 4840022297356226.,7849350407965067.,-.499999643588003828125,-52,53, + 4840022297385768.,7849350407986072.,-.499996041761808516362,-52,53, + 4840022297388744.,7849350407988188.,-.499724894447422611102,-52,53, + 4840022297390713.,7849350407989588.,-.498201411871639177860,-52,53, + 4840022297390734.,7849350407989602.,.433252114344780355411,-52,53, + 4840022297390976.,7849350407989775.,-.499521535933945882563,-52,53, + 4894314034095532.,7887455338712486.,.499981607612972844462,-52,53, + 4894314034100404.,7887455338715861.,.499860297982622164514,-52,53, + 4894314034100941.,7887455338716233.,.497999635906046522975,-52,53, + 4894314034101081.,7887455338716330.,.480754770544354466457,-52,53, + 4894314034101120.,7887455338716357.,.497379415192430432408,-52,53, + 4894314034119713.,7887455338729237.,.499995201941581364016,-52,53, + 4937145387333868.,7916820629557038.,-.499494263193022899717,-52,53, + 4937145387333980.,7916820629557113.,.492504633711606873973,-52,53, + 4937145387334036.,7916820629557151.,.488504082162367930748,-52,53, + 4937145387334042.,7916820629557156.,-.440495976932254824307,-52,53, + 4937145387334375.,7916820629557382.,-.499999256702462204250,-52,53, + 4978569163106626.,7944644372120187.,-.491596798850826004526,-52,53, + 4978569163106629.,7944644372120189.,-.496903873160645421579,-52,53, + 4978569163106632.,7944644372120190.,.497789052529532223634,-52,53, + 4978569163107196.,7944644372120566.,-.499940917769262237284,-52,53, + 4978569163109834.,7944644372122320.,-.499961595829095482572,-52,53, + 4978569163115110.,7944644372125827.,.499997041236634067498,-52,53, + 5287632052381969.,8135021819692737.,.487033428851661308490,-52,53, + 5287632052381983.,8135021819692745.,.447590811724099583838,-52,53, + 5287632052382013.,8135021819692763.,-.494071939263728356341,-52,53, + 5287632052382268.,8135021819692908.,-.498205322671038984281,-52,53, + 5287632052382370.,8135021819692966.,-.499858676039361143812,-52,53, + 5287632052383587.,8135021819693658.,-.499977608132688077778,-52,53, + 5287632052392055.,8135021819698473.,-.499983468249156638942,-52,53, + 5287632052417459.,8135021819712917.,.499998823845680884908,-52,53, + 5593724136207021.,8295653273712846.,.499997277155932225777,-52,53, + 5593724136214621.,8295653273716514.,-.499970544073709108108,-52,53, + 5593724136327421.,8295653273770940.,-.499494750610869707411,-52,53, + 5593724136348621.,8295653273781169.,-.499405706459319430419,-52,53, + 5593724136348677.,8295653273781196.,-.479405471406750594039,-52,53, + 5593724136348679.,8295653273781196.,.485594536987968571188,-52,53, + 5824740461683331.,8400220385406975.,.499962821205430659458,-52,53, + 5824740461686645.,8400220385408380.,-.499851423132503485843,-52,53, + 5824740461687372.,8400220385408687.,.498982325564475415686,-52,53, + 5824740461687431.,8400220385408712.,.494761130473718740078,-52,53, + 5824740461687457.,8400220385408724.,-.490149904651290373234,-52,53, + 5824740461687837.,8400220385408884.,.499611889656728772274,-52,53, + 5824740461694465.,8400220385411692.,.499983391041090048782,-52,53, + 5824740461705599.,8400220385416410.,-.499996069288305498507,-52,53, + 6024809874779006.,8480241367560410.,.499962200159190727099,-52,53, + 6024809874780436.,8480241367560949.,.498631205193805832660,-52,53, + 6024809874781736.,8480241367561439.,.497421209373371121694,-52,53, + 6024809874781744.,8480241367561443.,-.487201621371310829088,-52,53, + 6024809874795524.,8480241367566636.,.499972399641165862878,-52,53, + 6024809874836819.,8480241367582201.,.499997631046429626980,-52,53, + 6555033062124645.,8650950124236118.,.499989509255478089816,-52,53, + 6555033062146795.,8650950124242128.,-.499978968891227545125,-52,53, + 6555033062147300.,8650950124242264.,.499796015141165369190,-52,53, + 6555033062147617.,8650950124242350.,.497674569451524177973,-52,53, + 6555033062147628.,8650950124242353.,.481828083954090953956,-52,53, + 6555033062147805.,8650950124242401.,.499570999128838822022,-52,53, + 6555033062155756.,8650950124244558.,.499988612414200354784,-52,53, + 7389657687307098.,8824223130810495.,-.499997628010444487041,-52,53, + 7389657687324267.,8824223130813119.,-.499984323210317123994,-52,53, + 7389657687333231.,8824223130814489.,-.499627922705111293215,-52,53, + 7389657687333689.,8824223130814558.,.498159139909507420015,-52,53, + 7389657687333748.,8824223130814568.,-.484658683903845003583,-52,53, + 7389657687333761.,8824223130814570.,-.497821933218703589205,-52,53, + 7389657687334219.,8824223130814639.,.499965129368882080264,-52,53, + 7880112157653199.,8887022975937319.,-.499999978511006125571,-52,53, + 7880112157671827.,8887022975939287.,-.499985514545998265454,-52,53, + 7880112157684681.,8887022975940644.,.491864690005924142463,-52,53, + 7880112157684700.,8887022975940646.,.499165542173143752822,-52,53, + 7880112157685249.,8887022975940704.,.499595428465795117405,-52,53, + 7880112157685798.,8887022975940763.,-.499974685266296178870,-52,53, + 8291650483859002.,8924139415357781.,.499985244491649477936,-52,53, + 8291650483861880.,8924139415358000.,.499877543554198043872,-52,53, + 8291650483862156.,8924139415358022.,-.498048003887314199546,-52,53, + 8291650483862248.,8924139415358029.,-.497356519702204812431,-52,53, + 8291650483862274.,8924139415358030.,.481099769306535009261,-52,53, + 8291650483862287.,8924139415358031.,.470327913810889148261,-52,53, + 8291650483886481.,8924139415359872.,.499999290849179115187,-52,53, + 8497046770060627.,8938517485488997.,.499959745858272220475,-52,53, + 8497046770062652.,8938517485489127.,.499281830817132089732,-52,53, + 8497046770062948.,8938517485489147.,-.498348126165383167628,-52,53, + 8497046770063057.,8938517485489153.,.499146247782435777717,-52,53, + 8497046770067808.,8938517485489459.,-.499975123241420090889,-52,53, + 8497046770126876.,8938517485493251.,-.499996513540214695303,-52,53, + 8893684449330448.,8960130336350853.,-.499994078323117236825,-52,53, + 8893684449359645.,8960130336352186.,.499373294315588109906,-52,53, + 8893684449359688.,8960130336352188.,.464026265384122432334,-52,53, + 8893684449359689.,8960130336352189.,-.490284130637540441688,-52,53, + 8893684449359842.,8960130336352196.,-.499774721952432221059,-52,53, + 8893684449361002.,8960130336352249.,-.499834107115459278367,-52,53, + 8893684449364482.,8960130336352407.,.499987737071957686980,-52,53, + 9007199254581784.,8965065963699246.,.499997800497799771239,-52,53, + 9007199254740588.,8965065963705810.,.499882608236064170776,-52,53, + 9007199254740991.,8965065963705827.,.157472803637255549281,-52,53, + 4503599627370497.,8965065963705827.,.281474715761807817355,-51,53, + 4503599627370500.,8965065963705828.,-.470521459989088637718,-51,53, + 4503599627370512.,8965065963705829.,-.478506162992687674310,-51,53, + 4503599627370548.,8965065963705831.,.497539727996388339446,-51,53, + 4503599627370669.,8965065963705842.,-.499639360625056558909,-51,53, + 4503599627374552.,8965065963706162.,.499977157927015191133,-51,53, + 4507536740054883.,8965390300892239.,-.499992449946996517870,-51,53, + 4507536740066090.,8965390300893159.,-.499977081499658715950,-51,53, + 4507536740066358.,8965390300893181.,-.499441334535369629956,-51,53, + 4507536740067296.,8965390300893258.,-.497566220242909967155,-51,53, + 4507536740067308.,8965390300893258.,.487532395290916442610,-51,53, + 4507536740067320.,8965390300893259.,.472631010824721835377,-51,53, + 4507536740114609.,8965390300897142.,-.499999987564928579362,-51,53, + 4555097501517514.,8969133575842969.,.499999464068745218134,-51,53, + 4555097501529649.,8969133575843885.,-.499973294792152954850,-51,53, + 4555097501586279.,8969133575848155.,-.499846433251237096504,-51,53, + 4555097501589515.,8969133575848399.,-.499839197142574379673,-51,53, + 4555097501589727.,8969133575848414.,.485328149549270861988,-51,53, + 4555097501589740.,8969133575848415.,.465550675525459470751,-51,53, + 4555097501589767.,8969133575848418.,-.498602539754837342836,-51,53, + 5299225235753398.,8999323583732562.,-.499999750454509874666,-51,53, + 5299225235761452.,8999323583732704.,.499988072998711953828,-51,53, + 5299225235784037.,8999323583733106.,-.499921923366321213687,-51,53, + 5299225235784713.,8999323583733118.,-.497439707919456678073,-51,53, + 5299225235784714.,8999323583733118.,-.479684556713186896291,-51,53, + 5299225235785614.,8999323583733133.,.499951528914569896264,-51,53, + 5374978411330833.,9000567063979226.,.351570757220747718083,-51,53, + 5374978411330843.,9000567063979227.,-.497049490945875456737,-51,53, + 5374978411330975.,9000567063979229.,-.498836766745602143164,-51,53, + 5374978411331041.,9000567063979230.,-.499730404645675184277,-51,53, + 5374978411332164.,9000567063979247.,-.499784273785010926210,-51,53, + 5374978411336656.,9000567063979315.,-.499999750747092343448,-51,53, + 5529300613018446.,9002556648694384.,.499997700046157065725,-51,53, + 5529300613029585.,9002556648694506.,-.499991582641914671545,-51,53, + 5529300613032439.,9002556648694537.,-.497744470518847337215,-51,53, + 5529300613032460.,9002556648694537.,-.269627025055447431949,-51,53, + 5529300613032531.,9002556648694538.,-.498372804679267983557,-51,53, + 5529300613032807.,9002556648694540.,.499742192838266963503,-51,53, + 5529300613034372.,9002556648694557.,.499923247568421707196,-51,53, + 5623927893672176.,9003484908926645.,-.499998785948969124392,-51,53, + 5623927893687026.,9003484908926775.,.499978263888510168519,-51,53, + 5623927893688613.,9003484908926789.,.499773790777532237778,-51,53, + 5623927893689180.,9003484908926795.,-.498408903786354666354,-51,53, + 5623927893689205.,9003484908926795.,-.277870221888963621603,-51,53, + 5767148282743462.,9004565963973584.,.499963705444310922825,-51,53, + 5767148282744713.,9004565963973592.,.499605918971268082392,-51,53, + 5767148282744869.,9004565963973593.,.497163221375910974672,-51,53, + 5767148282744870.,9004565963973594.,-.496442180531752712754,-51,53, + 5767148282744895.,9004565963973594.,-.336577228223349625881,-51,53, + 5767148282745026.,9004565963973595.,-.498884878127466082112,-51,53, + 5767148282757380.,9004565963973673.,.499979953457198154202,-51,53, + 5767148282771298.,9004565963973762.,.499996198652361237091,-51,53, + 5950630791471240.,9005523294958420.,.499963387586071775056,-51,53, + 5950630791471479.,9005523294958422.,-.499888958595797242438,-51,53, + 5950630791472913.,9005523294958428.,-.499003035698793231860,-51,53, + 5950630791473630.,9005523294958431.,-.498560074257865295149,-51,53, + 5950630791473631.,9005523294958431.,-.494375356041075337372,-51,53, + 5950630791473655.,9005523294958431.,-.393942118838119297326,-51,53, + 5950630791484861.,9005523294958478.,-.499989782109244724822,-51,53, + 5950630791525485.,9005523294958648.,-.499996955819731367941,-51,53, + 6314957221013819.,9006541002453881.,-.499990634496828615797,-51,53, + 6314957221026510.,9006541002453902.,.499980252635178745084,-51,53, + 6314957221029971.,9006541002453908.,.499657129069835019686,-51,53, + 6314957221029972.,9006541002453909.,-.498609361286591218944,-51,53, + 6314957221030011.,9006541002453909.,-.431002485187217893449,-51,53, + 6314957221030126.,9006541002453909.,-.231648876176283501512,-51,53, + 6314957221030548.,9006541002453909.,.499892193411177807633,-51,53, + 6364655990245315.,9006622023921188.,.499996958955893772478,-51,53, + 6364655990248581.,9006622023921193.,.499990726005633361220,-51,53, + 6364655990249234.,9006622023921194.,.499683294856649566198,-51,53, + 6364655990249235.,9006622023921195.,-.498785782373288878593,-51,53, + 6364655990249293.,9006622023921195.,-.409992261709725252232,-51,53, + 6364655990249426.,9006622023921195.,-.206379533291602303378,-51,53, + 6625816970035678.,9006914177668356.,-.499806955293811345678,-51,53, + 6625816970035679.,9006914177668356.,-.499022842674427558343,-51,53, + 6625816970035718.,9006914177668356.,-.468442450518461450685,-51,53, + 6625816970035742.,9006914177668356.,-.449623747653253087490,-51,53, + 6625816970036953.,9006914177668356.,.499936634418853181689,-51,53, + 6625816970052257.,9006914177668368.,.499996161188388410812,-51,53, + 6679501753504089.,9006953445813756.,.499997291693992260197,-51,53, + 6679501753568692.,9006953445813800.,.499958018091158402925,-51,53, + 6679501753592184.,9006953445813816.,.499943734924278737011,-51,53, + 6679501753593327.,9006953445813817.,.278420819623188191083,-51,53, + 6679501753593429.,9006953445813817.,.347891215632950691228,-51,53, + 6679501753593645.,9006953445813817.,.495004995418268477158,-51,53, + 6679501753593652.,9006953445813817.,.499772571615013486374,-51,53, + 6791796916270045.,9007019601352055.,-.499997593384431309920,-51,53, + 6791796916275981.,9007019601352058.,-.499963174675757218711,-51,53, + 6791796916277960.,9007019601352059.,-.499783236238842977996,-51,53, + 6791796916277963.,9007019601352059.,-.498267046337224596518,-51,53, + 6791796916278024.,9007019601352059.,-.467437851670986815955,-51,53, + 6791796916278040.,9007019601352059.,-.459351505529023641942,-51,53, + 6808057518117189.,9007027642847348.,.499980824416063517911,-51,53, + 6808057518121323.,9007027642847351.,-.499871164841894970789,-51,53, + 6808057518121363.,9007027642847351.,-.480518015246047537622,-51,53, + 6808057518122115.,9007027642847351.,-.116678802844502693726,-51,53, + 6808057518122299.,9007027642847351.,-.027654314703811047199,-51,53, + 6808057518131657.,9007027642847356.,-.499984966823815368580,-51,53, + 6808057518185395.,9007027642847382.,-.499996144878620456079,-51,53, + 6815747461730701.,9007031325296828.,-.499999096494635431262,-51,53, + 6815747461804551.,9007031325296863.,-.499923450128550025813,-51,53, + 6815747461882621.,9007031325296900.,-.499843488668619072134,-51,53, + 6815747461884055.,9007031325296900.,.179778833081904671457,-51,53, + 6815747461884177.,9007031325296900.,.237598863244659538952,-51,53, + 6815747461884702.,9007031325296900.,.486414566813675161308,-51,53, + 6815747461884730.,9007031325296900.,.499684737670679463776,-51,53, + 6815747461884731.,9007031325296901.,-.499841327655856115324,-51,53, + 6820677703548252.,9007033646488948.,.499958490687371471983,-51,53, + 6820677703550390.,9007033646488949.,.499884568003367296849,-51,53, + 6820677703550411.,9007033646488950.,-.490293894286822165518,-51,53, + 6820677703550784.,9007033646488950.,-.315844676869803643153,-51,53, + 6820677703550869.,9007033646488950.,-.276090833758711313043,-51,53, + 6820677703561081.,9007033646488954.,.499982646768957725475,-51,53, + 6820677703573910.,9007033646488961.,-.499993197356538697904,-51,53, + 6911656262413348.,9007071370014893.,.499997236294381495298,-51,53, + 6911656262432497.,9007071370014901.,-.499966585184255470718,-51,53, + 6911656262432498.,9007071370014901.,-.499601028957907429531,-51,53, + 6911656262432556.,9007071370014901.,-.478398767829722745784,-51,53, + 6911656262433244.,9007071370014901.,-.226896084102546378294,-51,53, + 6911656262433343.,9007071370014901.,-.190706017694168834245,-51,53, + 6911656262437968.,9007071370014902.,.499991529150966040908,-51,53, + 7344311964906858.,9007163419108700.,-.499998135858336137125,-51,53, + 7344311964934556.,9007163419108703.,-.499986644316203353103,-51,53, + 7344311964942802.,9007163419108703.,.393149854996690025472,-51,53, + 7344311964942813.,9007163419108703.,.394341281323675755622,-51,53, + 7344311964943335.,9007163419108703.,.450879876113318574798,-51,53, + 7344311964943780.,9007163419108703.,.499078486614000213831,-51,53, + 7344311964943788.,9007163419108703.,.499944978488169202856,-51,53, + 7344311964943789.,9007163419108704.,-.499946710027559674928,-51,53, + 7415579094513404.,9007170391272205.,-.499998919022139282712,-51,53, + 7415579094524765.,9007170391272205.,.499993705266675008731,-51,53, + 7415579094524766.,9007170391272206.,-.499918274961802044531,-51,53, + 7415579094524821.,9007170391272206.,-.495077187528040370441,-51,53, + 7415579094527253.,9007170391272206.,-.281013103185030019463,-51,53, + 7415579094529147.,9007170391272206.,-.114303655922243607089,-51,53, + 7415579094529181.,9007170391272206.,-.111310983690501919654,-51,53, + 7580770473001668.,9007181903991154.,.499997611255573913304,-51,53, + 7580770473020186.,9007181903991155.,.499992128296332526070,-51,53, + 7580770473020188.,9007181903991156.,-.499899869271761968955,-51,53, + 7580770473020345.,9007181903991156.,-.491421678367181843802,-51,53, + 7580770473023891.,9007181903991156.,-.299933366599827149740,-51,53, + 7580770473024958.,9007181903991156.,-.242314069178970310573,-51,53, + 7580770473024972.,9007181903991156.,-.241558052155642576688,-51,53, + 8052554175506276.,9007195424610308.,-.499993741399928051981,-51,53, + 8052554175506293.,9007195424610308.,-.499779382956632653370,-51,53, + 8052554175507337.,9007195424610308.,-.486615252674278590286,-51,53, + 8052554175508982.,9007195424610308.,-.465872920955523840224,-51,53, + 8052554175509025.,9007195424610308.,-.465330720187193102661,-51,53, + 8076840766323584.,9007195719323103.,-.499999287872948138919,-51,53, + 8076840766323585.,9007195719323103.,-.499987616004863462489,-51,53, + 8076840766323725.,9007195719323103.,-.498353554473009129256,-51,53, + 8076840766331767.,9007195719323103.,-.404488391337285695166,-51,53, + 8076840766342656.,9007195719323103.,-.277393419768761523754,-51,53, + 8076840766342913.,9007195719323103.,-.274393749671183160312,-51,53, + 8076840766342916.,9007195719323103.,-.274358734066931287303,-51,53, + 8537173895479771.,9007198512005466.,.100688866738982241590,-51,53, + 8537173895479772.,9007198512005466.,.100691449562365478104,-51,53, + 8537173895479874.,9007198512005466.,.100954897547455556845,-51,53, + 8537173895489440.,9007198512005466.,.125662186031089588867,-51,53, + 8537173895614219.,9007198512005466.,.447944304889759247360,-51,53, + 8537173895634142.,9007198512005466.,.499401895128957955419,-51,53, + 8537173895634371.,9007198512005466.,.499993361683411435841,-51,53, + 8537173895634374.,9007198512005467.,-.499998889846442888402,-51,53, + 8551506777628574.,9007198548145148.,.110431995823664918854,-51,53, + 8551506777628575.,9007198548145148.,.110434456851792540567,-51,53, + 8551506777628670.,9007198548145148.,.110668254523916565403,-51,53, + 8551506777637614.,9007198548145148.,.132679690097026052599,-51,53, + 8551506777764437.,9007198548145148.,.444794660250121281586,-51,53, + 8551506777786608.,9007198548145148.,.499358114840577790653,-51,53, + 8551506777786866.,9007198548145148.,.499993060097165463087,-51,53, + 8551506777786869.,9007198548145149.,-.499999556818455613739,-51,53, + 8819324934169612.,9007198980523099.,.499999851658010322667,-51,53, + 8819324934169640.,9007198980523100.,-.499972617847608298626,-51,53, + 8819324934172330.,9007198980523100.,-.497327723923124062070,-51,53, + 8819324934304612.,9007198980523100.,-.367263836177217467787,-51,53, + 8819324934432581.,9007198980523100.,-.241440627853924426374,-51,53, + 8819324934435097.,9007198980523100.,-.238966816289642776628,-51,53, + 8819324934435123.,9007198980523100.,-.238941252259169390889,-51,53, + 4558535276450371.,9007199162045574.,.367404802015018015905,-50,53, + 4558535276450380.,9007199162045574.,.367410975335922667959,-50,53, + 4558535276451276.,9007199162045574.,.368025563728206027824,-50,53, + 4558535276512221.,9007199162045574.,.409829235111442363201,-50,53, + 4558535276639657.,9007199162045574.,.497240715344197320036,-50,53, + 4558535276643639.,9007199162045574.,.499972066878475986454,-50,53, + 4558535276643679.,9007199162045574.,.499999503860236299483,-50,53, + 4558535276643680.,9007199162045575.,-.499999810215219692792,-50,53, + 4668596200724292.,9007199214067233.,.499999970019043097875,-50,53, + 4668596200724296.,9007199214067234.,-.499998798544072754481,-50,53, + 4668596200724731.,9007199214067234.,-.499864879782921914713,-50,53, + 4668596200764024.,9007199214067234.,-.487768167412508036980,-50,53, + 4668596201104556.,9007199214067234.,-.382932251316524466003,-50,53, + 4668596201140202.,9007199214067234.,-.371958301555620475399,-50,53, + 4668596201140592.,9007199214067234.,-.371838236459784068706,-50,53, + 4668596201140596.,9007199214067234.,-.371837005022903697091,-50,53, + 4762731034098138.,9007199234929549.,-.499999980606785453796,-50,53, + 4762731034098191.,9007199234929549.,-.499991880999513769673,-50,53, + 4762731034103382.,9007199234929549.,-.499198577955240488632,-50,53, + 4762731034466890.,9007199234929549.,-.443646275389602989060,-50,53, + 4762731035300034.,9007199234929549.,-.316322894994514715894,-50,53, + 4762731035327817.,9007199234929549.,-.312077019772374819133,-50,53, + 4762731035328101.,9007199234929549.,-.312033618103621963994,-50,53, + 4762731035328104.,9007199234929549.,-.312033159635290068131,-50,53, + 4822162254825770.,9007199242248901.,-.499999698622369177794,-50,53, + 4822162254826119.,9007199242248901.,-.499965669137446445125,-50,53, + 4822162254860614.,9007199242248901.,-.496602210449039358088,-50,53, + 4822162256541972.,9007199242248901.,-.332660243888358846407,-50,53, + 4822162258142100.,9007199242248901.,-.176638666214708733972,-50,53, + 4822162258173312.,9007199242248901.,-.173595318774922623828,-50,53, + 4822162258173627.,9007199242248901.,-.173564604484155686303,-50,53, + 4822162258173630.,9007199242248901.,-.173564311967100763442,-50,53, + 4855873773999054.,9007199245147465.,-.499999969466010449038,-50,53, + 4855873773999144.,9007199245147465.,-.499993185307128281278,-50,53, + 4855873774007950.,9007199245147465.,-.499329393050302353665,-50,53, + 4855873774327065.,9007199245147465.,-.475274650173749627753,-50,53, + 4855873774510537.,9007199245147465.,-.461444614680118192784,-50,53, + 4855873774513414.,9007199245147465.,-.461227747735370356374,-50,53, + 4855873774513443.,9007199245147465.,-.461225561728628049372,-50,53, + 5060837359194206.,9007199252885341.,.358034307344633690698,-50,53, + 5060837359194228.,9007199252885341.,.358034641019670964092,-50,53, + 5060837359196359.,9007199252885341.,.358066961997144759137,-50,53, + 5060837359404684.,9007199252885341.,.361226637091734642902,-50,53, + 5060837365718278.,9007199252885341.,.456985212393468837173,-50,53, + 5060837368513833.,9007199252885341.,.499385524203573663829,-50,53, + 5060837368553940.,9007199252885341.,.499993828918206818487,-50,53, + 5079609680469678.,9007199253149728.,-.499983364326368044615,-50,53, + 5079609680595274.,9007199253149728.,-.498344058456889630078,-50,53, + 5079609688509884.,9007199253149728.,-.395040878342699693630,-50,53, + 5079609701845196.,9007199253149728.,-.220985552797532038667,-50,53, + 5079609702205669.,9007199253149728.,-.216280582870925125932,-50,53, + 5079609702209335.,9007199253149728.,-.216232733462714877107,-50,53, + 5079609702209372.,9007199253149728.,-.216232250530880792837,-50,53, + 5153985221042512.,9007199253880113.,-.499910242749468663556,-50,53, + 5153985222261458.,9007199253880113.,-.491182390775357136400,-50,53, + 5153985263582158.,9007199253880113.,-.195319497184175941381,-50,53, + 5153985285069451.,9007199253880113.,-.041467044079501237860,-50,53, + 5153985285394468.,9007199253880113.,-.039139870604642923807,-50,53, + 5153985285397735.,9007199253880113.,-.039116478364445597735,-50,53, + 5153985285397768.,9007199253880113.,-.039116242079191082460,-50,53, + 5256850159337630.,9007199254378056.,.298330871528526459303,-50,53, + 5256850159337636.,9007199254378056.,.298330889986440575098,-50,53, + 5256850159338250.,9007199254378056.,.298332778846318419873,-50,53, + 5256850159399611.,9007199254378056.,.298521544857612631061,-50,53, + 5256850165005247.,9007199254378056.,.315766269089942453971,-50,53, + 5256850218627965.,9007199254378056.,.480726811903497019714,-50,53, + 5256850224823770.,9007199254378056.,.499787074802349226402,-50,53, + 5299981789591867.,9007199254489554.,.358340701033076167961,-50,53, + 5299981789591870.,9007199254489554.,.358340707477088319893,-50,53, + 5299981789592171.,9007199254489554.,.358341354026307562923,-50,53, + 5299981789622281.,9007199254489554.,.358406030428264148909,-50,53, + 5299981792500512.,9007199254489554.,.364588482198983126566,-50,53, + 5299981843793685.,9007199254489554.,.474766399265535462639,-50,53, + 5299981855398511.,9007199254489554.,.499693600013348862706,-50,53, + 5404781710834274.,9007199254639152.,-.498391329246114963116,-50,53, + 5404781789893054.,9007199254639152.,-.428304132048296365590,-50,53, + 5404781852326567.,9007199254639152.,-.372955601529565297806,-50,53, + 5404781853441490.,9007199254639152.,-.371967200749176608338,-50,53, + 5404781853452726.,9007199254639152.,-.371957239818139107752,-50,53, + 5404781853452839.,9007199254639152.,-.371957139641456375187,-50,53, + 5404781853452840.,9007199254639152.,-.371957138754937058970,-50,53, + 5445783078932034.,9007199254669814.,-.492821395078721412833,-50,53, + 5445783398166559.,9007199254669814.,-.293579677290209011076,-50,53, + 5445783525214805.,9007199254669814.,-.214286053757392123810,-50,53, + 5445783526980107.,9007199254669814.,-.213184290300151139890,-50,53, + 5445783526997829.,9007199254669814.,-.213173229613741866312,-50,53, + 5445783526998006.,9007199254669814.,-.213173119144184576453,-50,53, + 5445783526998008.,9007199254669814.,-.213173117895940991258,-50,53, + 5676473327624193.,9007199254731956.,.191568398642639412532,-50,53, + 5676473327624218.,9007199254731956.,.191568400704097813916,-50,53, + 5676473327626736.,9007199254731956.,.191568608334187998970,-50,53, + 5676473327878503.,9007199254731956.,.191589368622057775399,-50,53, + 5676473352885191.,9007199254731956.,.193651378269196329889,-50,53, + 5676474841534879.,9007199254731956.,.316402108470339528477,-50,53, + 5707835912338799.,9007199254734210.,.307587326135412435393,-50,53, + 5707835912338811.,9007199254734210.,.307587326882023081082,-50,53, + 5707835912339996.,9007199254734210.,.307587400609824342479,-50,53, + 5707835912458509.,9007199254734210.,.307594774198774707569,-50,53, + 5707835924264082.,9007199254734210.,.308329288032293437179,-50,53, + 5707836775393025.,9007199254734210.,.361284240210344160805,-50,53, + 5723859949422243.,9007199254735139.,-.370808788158255431139,-50,53, + 5723860636116881.,9007199254735139.,-.333832995386927513107,-50,53, + 5723860644974558.,9007199254735139.,-.333356045979664819053,-50,53, + 5723860645063392.,9007199254735139.,-.333351262635009871262,-50,53, + 5723860645064280.,9007199254735139.,-.333351214819870939403,-50,53, + 5723860645064289.,9007199254735139.,-.333351214335258044825,-50,53, + 5998326824932832.,9007199254740550.,-.075805652836319126402,-50,53, + 5998327003617998.,9007199254740550.,-.075045352533735667691,-50,53, + 5998327005408084.,9007199254740550.,-.075037735775189633356,-50,53, + 5998327005425985.,9007199254740550.,-.075037659607009129128,-50,53, + 5998327005426164.,9007199254740550.,-.075037658845369873830,-50,53, + 5998327005426166.,9007199254740550.,-.075037658836859938016,-50,53, + 6123107701054671.,9007199254740861.,-.417310079467817173794,-50,53, + 6123107711617900.,9007199254740861.,-.417296449137933709008,-50,53, + 6123107711723550.,9007199254740861.,-.417296312811789688342,-50,53, + 6123107711724606.,9007199254740861.,-.417296311449173426992,-50,53, + 6123107711724617.,9007199254740861.,-.417296311434979507603,-50,53, + 6182144302132659.,9007199254740919.,-.405850104005926658888,-50,53, + 6182144308913455.,9007199254740919.,-.405845171057517269170,-50,53, + 6182144308981267.,9007199254740919.,-.405845121725095771028,-50,53, + 6182144308981945.,9007199254740919.,-.405845121231858854780,-50,53, + 6182144308981952.,9007199254740919.,-.405845121226766438241,-50,53, + 6211665928221695.,9007199254740937.,.251353937427758882917,-50,53, + 6211665928221709.,9007199254740937.,.251353937435390250103,-50,53, + 6211665928223050.,9007199254740937.,.251353938166366206947,-50,53, + 6211665928357231.,9007199254740937.,.251354011308114752960,-50,53, + 6211665941774931.,9007199254740937.,.251361325264444600503,-50,53, + 6225786010840901.,9007199254740944.,.439005678611434039521,-50,53, + 6225786010840904.,9007199254740944.,.439005678612857774832,-50,53, + 6225786010841190.,9007199254740944.,.439005678748587207803,-50,53, + 6225786010869848.,9007199254740944.,.439005692349056052380,-50,53, + 6225786013735495.,9007199254740944.,.439007052323310677576,-50,53, + 6293819710580307.,9007199254740968.,-.036039859690921938133,-50,53, + 6293819721713359.,9007199254740968.,-.036037161251484804485,-50,53, + 6293819721824690.,9007199254740968.,-.036037134266975596790,-50,53, + 6293819721825804.,9007199254740968.,-.036037133996963262035,-50,53, + 6293819721825815.,9007199254740968.,-.036037133994297072015,-50,53, + 6389294203677342.,9007199254740983.,-.112955816214249526886,-50,53, + 6389294207250380.,9007199254740983.,-.112955483033812692368,-50,53, + 6389294207286110.,9007199254740983.,-.112955479702043819055,-50,53, + 6389294207286467.,9007199254740983.,-.112955479668754104878,-50,53, + 6389294207286471.,9007199254740983.,-.112955479668381110881,-50,53, + 6569890698769607.,9007199254740991.,-.399858675467725589657,-50,53, + 6569890698915515.,9007199254740991.,-.399858673320337933442,-50,53, + 6569890698916974.,9007199254740991.,-.399858673298865234289,-50,53, + 6569890698916989.,9007199254740991.,-.399858673298644473160,-50,53, + 6731131042068102.,4503599627370496.,-.125907038758515872029,-50,52, + 6731131042118297.,4503599627370496.,-.125907038690485120661,-50,52, + 6731131042118799.,4503599627370496.,-.125907038689804745381,-50,52, + 6731131042118804.,4503599627370496.,-.125907038689797968735,-50,52, + 6864747465414291.,4503599627370496.,-.029468529988771595394,-50,52, + 6864747465429354.,4503599627370496.,-.029468529983901004168,-50,52, + 6864747465429504.,4503599627370496.,-.029468529983852501965,-50,52, + 6864747465429506.,4503599627370496.,-.029468529983851855269,-50,52, + 6897504178122751.,4503599627370496.,-.020554067935820121130,-50,52, + 6897504178133505.,4503599627370496.,-.020554067933383460817,-50,52, + 6897504178133613.,4503599627370496.,-.020554067933358989986,-50,52, + 6897504178133614.,4503599627370496.,-.020554067933358763404,-50,52, + 6928675627731366.,4503599627370496.,-.014565814068287022770,-50,52, + 6928675627739117.,4503599627370496.,-.014565814067036967755,-50,52, + 6928675627739194.,4503599627370496.,-.014565814067024549455,-50,52, + 6928675627739195.,4503599627370496.,-.014565814067024388179,-50,52, + 6976637145793397.,4503599627370496.,-.008549236481802437629,-50,52, + 6976637145798033.,4503599627370496.,-.008549236481360633845,-50,52, + 6976637145798080.,4503599627370496.,-.008549236481356154816,-50,52, + 7098277145506707.,4503599627370496.,-.002177954937690413052,-50,52, + 7098277145507924.,4503599627370496.,-.002177954937660364466,-50,52, + 7098277145507936.,4503599627370496.,-.002177954937660068177,-50,52, + 7220869129321865.,4503599627370496.,-.000536272017027692875,-50,52, + 7220869129322171.,4503599627370496.,-.000536272017025801167,-50,52, + 7220869129322174.,4503599627370496.,-.000536272017025782620,-50,52, + 7262957133042046.,4503599627370496.,-.000329664849118786167,-50,52, + 7262957133042235.,4503599627370496.,-.000329664849118063815,-50,52, + 7262957133042237.,4503599627370496.,-.000329664849118056171,-50,52, + 7294157222343578.,4503599627370496.,-.000229430338307279471,-50,52, + 7294157222343710.,4503599627370496.,-.000229430338306926891,-50,52, + 7294157222343711.,4503599627370496.,-.000229430338306924219,-50,52, + 7373614803875309.,4503599627370496.,-.000090524108677854303,-50,52, + 7373614803875361.,4503599627370496.,-.000090524108677798916,-50,52, + 7373614803875362.,4503599627370496.,-.000090524108677797851,-50,52, + 5219368201183516.,4503599627370496.,0.000000000000000000000,-48,52, + 5219368201183517.,4503599627370496.,0.000000000000000000000,-48,52 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/erfc.c b/src/regress/lib/libm/fpaccuracy/erfc.c new file mode 100644 index 000000000..71f8f1e3c --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/erfc.c @@ -0,0 +1,1349 @@ +/* $OpenBSD: erfc.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:31:27. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1318 +#define F erfc +#define Fs "erfc" +#define Fn fpaccuracy_erfc + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -5189335004954488.,4503599627370496.,0.000000000000000000000,-48,51, + -5189335004954487.,4503599627370496.,0.000000000000000000000,-48,51, + -8671776323082271.,9007199022993132.,-.030040963688450559242,-51,52, + -8671776323082233.,9007199022993132.,-.030072041663657267367,-51,52, + -8671776323078453.,9007199022993132.,-.033163482355292103480,-51,52, + -8671776322851964.,9007199022993132.,-.218395575234503075380,-51,52, + -8671776322516102.,9007199022993132.,-.493077441631676869657,-51,52, + -8671776322507723.,9007199022993132.,-.499930135178124221452,-51,52, + -8671776322507638.,9007199022993132.,-.499999651701749529531,-51,52, + -8562585861398472.,9007198914824347.,-.317179563369946384404,-51,52, + -8562585861398450.,9007198914824347.,-.317205641076569410922,-51,52, + -8562585861396335.,9007198914824347.,-.319712656963292143653,-51,52, + -8562585861308368.,9007198914824347.,-.423984366911701665377,-51,52, + -8562585861245329.,9007198914824347.,-.498707664570072958544,-51,52, + -8562585861244250.,9007198914824347.,-.499986657545566103990,-51,52, + -8562585861244239.,9007198914824347.,-.499999696398884408435,-51,52, + -7563844197231410.,9007190110592556.,-.360166648286034102788,-51,52, + -7563844197231406.,9007190110592556.,-.360280251099816371045,-51,52, + -7563844197231043.,9007190110592556.,-.370589706450562859313,-51,52, + -7563844197227029.,9007190110592556.,-.484590130081875795990,-51,52, + -7563844197226493.,9007190110592556.,-.499812907128910789579,-51,52, + -7563844197226486.,9007190110592555.,.499988287946967323727,-51,52, + -7563844197191276.,9007190110592554.,.499999519561344460714,-51,52, + -7128815284540502.,9007165188304461.,.499996709273427211542,-51,52, + -7128815284530520.,9007165188304461.,-.499992206473164628960,-51,52, + -7128815284511778.,9007165188304459.,-.377551038338470308370,-51,52, + -7128815284511766.,9007165188304459.,-.378753188908472321120,-51,52, + -7128815284511166.,9007165188304459.,-.438860717408624676192,-51,52, + -7128815284510568.,9007165188304459.,-.498767887480544090606,-51,52, + -7128815284510556.,9007165188304459.,-.499970038050550193438,-51,52, + -7121484976048114.,9007164446342308.,-.499995421979726018276,-51,52, + -7121484976028557.,9007164446342306.,-.499980356356552691798,-51,52, + -7121484976028527.,9007164446342305.,.496951711545837483410,-51,52, + -7121484976027017.,9007164446342305.,.342532462632475645801,-51,52, + -7121484976025439.,9007164446342305.,.181159234297149957523,-51,52, + -7121484976025406.,9007164446342305.,.177784508989749579360,-51,52, + -6962143799949567.,9007143932099766.,.499994326582437291842,-51,52, + -6962143799930889.,9007143932099764.,-.473458389400977013878,-51,52, + -6962143799930885.,9007143932099764.,-.474095171222598105383,-51,52, + -6962143799930769.,9007143932099764.,-.492561844049612801672,-51,52, + -6962143799930723.,9007143932099764.,-.499884834998258189417,-51,52, + -6962143799930722.,9007143932099763.,.499955969546336465794,-51,52, + -6962143799874188.,9007143932099755.,-.499999907038046178247,-51,52, + -6790658262216689.,9007109139871294.,-.499998789896145885259,-51,52, + -6790658262181182.,9007109139871285.,-.499966686471130381248,-51,52, + -6790658262175201.,9007109139871283.,-.015972206295553663253,-51,52, + -6790658262175087.,9007109139871283.,-.044867813929961779686,-51,52, + -6790658262173549.,9007109139871283.,-.434705046752926736129,-51,52, + -6790658262173294.,9007109139871283.,-.499339958567032565724,-51,52, + -6790658262173291.,9007109139871282.,.499899630705742397074,-51,52, + -6790658262165401.,9007109139871281.,-.499980581917245124558,-51,52, + -6531577903919455.,9007014847671738.,.499929129455245567576,-51,52, + -6531577903919429.,9007014847671738.,.486911794818888151684,-51,52, + -6531577903918917.,9007014847671738.,.230570435825826006463,-51,52, + -6531577903918784.,9007014847671738.,.163981762493588523001,-51,52, + -6531577903883503.,9007014847671720.,.499959326840648390934,-51,52, + -6531577903835567.,9007014847671696.,.499999587427789068993,-51,52, + -6420253047557244.,9006950352520589.,-.499931034977571530732,-51,52, + -6420253047557241.,9006950352520588.,.498072946332183057669,-51,52, + -6420253047557165.,9006950352520588.,.447507139512627572510,-51,52, + -6420253047557131.,9006950352520588.,.424885594356507494236,-51,52, + -6420253047554238.,9006950352520587.,-.499941762611078621079,-51,52, + -6420253047539208.,9006950352520577.,-.499995401006982017918,-51,52, + -6420253047537705.,9006950352520575.,.499999235132493914096,-51,52, + -6230281119217391.,9006788461848703.,-.044277456601333347122,-51,52, + -6230281119217166.,9006788461848703.,-.284748440211399337800,-51,52, + -6230281119216968.,9006788461848703.,-.496362905788367394683,-51,52, + -6230281119216965.,9006788461848703.,-.499569185569837399521,-51,52, + -6230281119216029.,9006788461848702.,-.499928477389633078696,-51,52, + -6230281119196380.,9006788461848681.,-.499992286646389948986,-51,52, + -6230281119193573.,9006788461848677.,.499998597662726189093,-51,52, + -6114939736665313.,9006646078296055.,-.476770180336044032200,-51,52, + -6114939736665302.,9006646078296055.,-.492338094164891572253,-51,52, + -6114939736665297.,9006646078296055.,-.499414418632549681544,-51,52, + -6114939736664590.,9006646078296053.,.499993301639734513121,-51,52, + -6114939736634207.,9006646078296011.,-.499999960180664504247,-51,52, + -5882964036223795.,9006207876878920.,-.499999467852452887582,-51,52, + -5882964036202165.,9006207876878867.,-.499990269837188304648,-51,52, + -5882964036191962.,9006207876878841.,.499597979232525675066,-51,52, + -5882964036191959.,9006207876878841.,.492247078982238606998,-51,52, + -5882964036191554.,9006207876878840.,.499875545193014663179,-51,52, + -5882964036184208.,9006207876878822.,.499971132153024119240,-51,52, + -5842125192747211.,9006102926493904.,.499999694606325565574,-51,52, + -5842125192715276.,9006102926493818.,.499986873630031675099,-51,52, + -5842125192714162.,9006102926493816.,-.499982260117129083013,-51,52, + -5842125192711934.,9006102926493810.,-.499920527634553394492,-51,52, + -5842125192711918.,9006102926493809.,.456991944411888711212,-51,52, + -5842125192711809.,9006102926493809.,.163458160228233281725,-51,52, + -5418104164367640.,9004195062900787.,.496646336822284031209,-51,52, + -5418104164367639.,9004195062900787.,.489741214122006510617,-51,52, + -5418104164367600.,9004195062900787.,.220441428811171697312,-51,52, + -5418104164367496.,9004195062900787.,-.497691332017830868974,-51,52, + -5418104164367206.,9004195062900784.,.499823084900453540266,-51,52, + -5418104164365613.,9004195062900773.,.499962623329449111091,-51,52, + -5418104164351131.,9004195062900673.,.499975675929870912769,-51,52, + -5418104164322167.,9004195062900474.,-.499998228153978078297,-51,52, + -5404202745237089.,9004097633055570.,.499707703758213658704,-51,52, + -5404202745236955.,9004097633055570.,-.453443436084598577261,-51,52, + -5404202745236949.,9004097633055570.,-.496121845331298030530,-51,52, + -5404202745236948.,9004097633055569.,.496765086460918674191,-51,52, + -5404202745235402.,9004097633055558.,.499961637209812876730,-51,52, + -5404202745227248.,9004097633055501.,-.499996529750419550289,-51,52, + -5368612465925438.,9003834649112531.,-.388084104948798212914,-51,52, + -5368612465925424.,9003834649112531.,-.495488898291849990834,-51,52, + -5368612465925423.,9003834649112530.,.496839330755074760332,-51,52, + -5368612465925293.,9003834649112529.,.499509106855154083039,-51,52, + -5368612465924902.,9003834649112526.,.499846664200661063636,-51,52, + -5368612465918906.,9003834649112480.,.499908029218645450778,-51,52, + -5368612465909912.,9003834649112412.,-.499999924349475101563,-51,52, + -8926900130158776.,8984412642398595.,-.499952885158002589096,-52,52, + -8926900130158506.,8984412642398589.,-.490640730176007174103,-52,52, + -8926900130158464.,8984412642398588.,-.422525506067824743201,-52,52, + -8926900130158461.,8984412642398588.,-.489088704345813030763,-52,52, + -8926900130147824.,8984412642398351.,.499997933561813164665,-52,52, + -8651796022054267.,8977515282232655.,-.499996612004008769184,-52,52, + -8651796022046313.,8977515282232430.,.499945723378185718427,-52,52, + -8651796022042336.,8977515282232318.,.499916890499273975325,-52,52, + -8651796022042265.,8977515282232317.,-.499580732620699316738,-52,52, + -8651796022042263.,8977515282232316.,.444095390671694047907,-52,52, + -8201071267867065.,8962092712890800.,-.499997754779372678437,-52,52, + -8201071267811590.,8962092712888528.,-.499967018063469709804,-52,52, + -8201071267811004.,8962092712888504.,-.499822484822629369288,-52,52, + -8201071267807781.,8962092712888372.,-.499027552201305599052,-52,52, + -8201071267807489.,8962092712888360.,-.457999900860739211202,-52,52, + -8201071267807488.,8962092712888360.,-.498955285616427055123,-52,52, + -8201071267797941.,8962092712887968.,.499986450322198306060,-52,52, + -8143793283634361.,8959691823582244.,.499999843871607801710,-52,52, + -8143793283610556.,8959691823581224.,-.499377101762572898414,-52,52, + -8143793283610416.,8959691823581217.,.496005684468762270202,-52,52, + -8143793283610369.,8959691823581215.,.480169905560559147880,-52,52, + -8143793283610113.,8959691823581205.,-.499701571047159633602,-52,52, + -8143793283609670.,8959691823581185.,.499973959661494327951,-52,52, + -8143793283606639.,8959691823581056.,-.499988718673496615803,-52,52, + -7669701491731922.,8935045364765725.,-.499971768586050431547,-52,52, + -7669701491731777.,8935045364765715.,.499772092092328065909,-52,52, + -7669701491731487.,8935045364765697.,.499259813446124097458,-52,52, + -7669701491731455.,8935045364765696.,-.487003610404733365938,-52,52, + -7669701491731439.,8935045364765695.,-.480135322330180123953,-52,52, + -7669701491727991.,8935045364765480.,.499980757455699747132,-52,52, + -7669701491708481.,8935045364764269.,.499999516264522611720,-52,52, + -7366959948100457.,8913962296063090.,.499999687050834548533,-52,52, + -7366959948098951.,8913962296062974.,-.499958857498658321397,-52,52, + -7366959948089413.,8913962296062233.,-.499696309284553949977,-52,52, + -7366959948088911.,8913962296062194.,-.499682491099717872328,-52,52, + -7366959948088834.,8913962296062188.,-.481752084726011028512,-52,52, + -7366959948088808.,8913962296062185.,.498328312231268960768,-52,52, + -7265359816308875.,8905771891374736.,.498433816850889697696,-52,52, + -7265359816308863.,8905771891374735.,.495263692774254781346,-52,52, + -7265359816308767.,8905771891374727.,.469902700160864976062,-52,52, + -7265359816308755.,8905771891374726.,.466732576084152441091,-52,52, + -7265359816308564.,8905771891374710.,.499608101195316850999,-52,52, + -7265359816307619.,8905771891374631.,.499960830116313090328,-52,52, + -7265359816290585.,8905771891373207.,.499969693368933936012,-52,52, + -7265359816230966.,8905771891368224.,-.499999422096881886418,-52,52, + -6886324688258667.,8869457589087412.,.499997783283987352918,-52,52, + -6886324688228595.,8869457589084137.,.499987379171481226497,-52,52, + -6886324688226832.,8869457589083945.,.499953513620211087156,-52,52, + -6886324688226731.,8869457589083935.,-.499481211526102516237,-52,52, + -6886324688226676.,8869457589083929.,-.489272398487283611565,-52,52, + -6886324688226630.,8869457589083924.,-.498915936673170498790,-52,52, + -6802414170988199.,8860055031796485.,.495361293264755748361,-52,52, + -6802414170988173.,8860055031796482.,.498841057969897079731,-52,52, + -6802414170987878.,8860055031796448.,.499861465197648058429,-52,52, + -6802414170985865.,8860055031796217.,-.499955213797316273158,-52,52, + -6802414170980980.,8860055031795653.,.499992883812063929619,-52,52, + -6802414170942759.,8860055031791248.,.499996144330805997305,-52,52, + -6537089584040798.,8826626619875422.,.499995074929673559822,-52,52, + -6537089584011408.,8826626619871389.,.499993564971370375419,-52,52, + -6537089584003902.,8826626619870360.,-.499938782552588947693,-52,52, + -6537089583997030.,8826626619869416.,.499856697731797688043,-52,52, + -6537089583996826.,8826626619869389.,-.493746579692636600820,-52,52, + -6537089583996804.,8826626619869385.,.487335419800586860482,-52,52, + -6537089583996396.,8826626619869330.,-.499871135060119150030,-52,52, + -6329366348348412.,8796147961743480.,.499928703902065579287,-52,52, + -6329366348348144.,8796147961743439.,-.455818282712798900517,-52,52, + -6329366348348131.,8796147961743437.,-.490985114153250640043,-52,52, + -6329366348348099.,8796147961743431.,.499373454608643959509,-52,52, + -6329366348346649.,8796147961743204.,.499996101527011313023,-52,52, + -6116819550558664.,8760592828365111.,.499997998180333836037,-52,52, + -6116819550556113.,8760592828364657.,-.499946594930190255013,-52,52, + -6116819550555928.,8760592828364624.,-.496806551729446327064,-52,52, + -5504847960735054.,8629453523179889.,-.499997814740471484723,-52,52, + -5504847960698082.,8629453523170525.,-.499975433571171487315,-52,52, + -5504847960681602.,8629453523166351.,-.434835148952923120091,-52,52, + -5504847960681582.,8629453523166345.,.499709924185336909995,-52,52, + -5504847960679596.,8629453523165843.,-.499964313459299459255,-52,52, + -5482598653436237.,8623784260024637.,-.499374680811633029811,-52,52, + -5482598653435843.,8623784260024536.,-.498872762983374696626,-52,52, + -5482598653435765.,8623784260024516.,-.493697256410788354341,-52,52, + -5482598653435730.,8623784260024507.,-.465733888077209562597,-52,52, + -5482598653435726.,8623784260024506.,-.491109503124811367547,-52,52, + -5482598653434700.,8623784260024243.,-.499954762907901884194,-52,52, + -5482598653432769.,8623784260023747.,.499967072328846448317,-52,52, + -5482598653420789.,8623784260020676.,.499999989903753055934,-52,52, + -4759359998625002.,8399042539186793.,-.499942235442639095274,-52,52, + -4759359998623919.,8399042539186392.,.499102432136032697521,-52,52, + -4759359998623827.,8399042539186359.,-.480664779861112900520,-52,52, + -4759359998623808.,8399042539186352.,-.498225399730271405846,-52,52, + -4759359998623521.,8399042539186245.,.499674710659565028499,-52,52, + -4759359998593568.,8399042539175183.,-.499969944474432901960,-52,52, + -4759359998562134.,8399042539163573.,-.499997824780002635018,-52,52, + -4548609987128319.,8317284632434672.,.499937511680869465326,-52,52, + -4548609987127997.,8317284632434541.,.493654771948015664572,-52,52, + -4548609987127970.,8317284632434531.,-.491344091322369118134,-52,52, + -4548609987127852.,8317284632434483.,-.499857641913019321282,-52,52, + -4548609987123386.,8317284632432665.,.499960009288178981050,-52,52, + -4548609987113520.,8317284632428652.,-.499995008819185290188,-52,52, + -7842978305359756.,8024667930265473.,-.499992982018600066207,-53,52, + -7842978305191420.,8024667930220977.,-.499954470425165026807,-53,52, + -7842978305181228.,8024667930218282.,.464119671073319383697,-53,52, + -7842978305181213.,8024667930218278.,.499192386152067701970,-53,52, + -7842978305180899.,8024667930218196.,-.499952111535440635292,-53,52, + -7684855370197094.,7982230462862283.,-.499999110505937104015,-53,52, + -7684855370185602.,7982230462859151.,.499987730125393891178,-53,52, + -7684855370174110.,7982230462856020.,.499974563940171498603,-53,52, + -7684855370173453.,7982230462855842.,-.499939171923990229903,-53,52, + -7684855370173442.,7982230462855839.,-.496893587593138430150,-53,52, + -7684855370173365.,7982230462855818.,-.475574497277350702564,-53,52, + -7684855370173354.,7982230462855815.,-.472528912946548865864,-53,52, + -6912592898181884.,7756231440444367.,-.499992420933601872272,-53,52, + -6912592898172691.,7756231440441489.,-.497783813796821742857,-53,52, + -6912592898172659.,7756231440441478.,.484166656708561558070,-53,52, + -6912592898172643.,7756231440441473.,.475141891961232722595,-53,52, + -6912592898172576.,7756231440441452.,.499850689581644887715,-53,52, + -6912592898170471.,7756231440440794.,-.499969922615422397848,-53,52, + -6912592898142991.,7756231440432190.,.499996600508185515832,-53,52, + -6673015710309461.,7679694584154473.,-.499994832202425328956,-53,52, + -6673015710309372.,7679694584154443.,.496768969414799739565,-53,52, + -6673015710309357.,7679694584154439.,-.391416906717170433860,-53,52, + -4787223067032009.,6970362492708740.,-.499995474378886979068,-53,52, + -4787223067031078.,6970362492708343.,.499977422336803630382,-53,52, + -4787223067027354.,6970362492706759.,.499869008764476153631,-53,52, + -4787223067027039.,6970362492706626.,-.485102567603461574259,-53,52, + -4787223067027032.,6970362492706623.,-.462546380411694540477,-53,52, + -4787223067026999.,6970362492706609.,-.499067212221968797101,-53,52, + -4568185063608473.,5765163019278875.,.499996726252521484121,-54,52, + -4568185063576839.,5765163019270507.,.499988100025324537091,-54,52, + -4568185063567218.,5765163019267963.,-.499951301874096267614,-54,52, + -4568185063567116.,5765163019267936.,-.481553403425834204597,-54,52, + -4568185063567097.,5765163019267930.,.492461891383147226806,-54,52, + -4568185063567063.,5765163019267921.,.498594524199212551886,-54,52, + -8625389215245051.,5697340183447304.,.499978579830470656087,-55,52, + -8625389215238504.,5697340183446433.,-.499895167006487130763,-55,52, + -8625389215238474.,5697340183446429.,-.495617820497590230318,-55,52, + -8625389215238399.,5697340183446419.,-.484924454225354948740,-55,52, + -8625389215228218.,5697340183445062.,.499997705917266491724,-55,52, + -4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,52, + 0.,4503599627370496.,0.000000000000000000000,0,52, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,52, + 8574890577410584.,8403179145918467.,-.499261319408321122844,-57,53, + 8574890577410641.,8403179145918462.,.495094135116686398933,-57,53, + 8574890577410655.,8403179145918462.,-.488748384824539794949,-57,53, + 8574890577410769.,8403179145918453.,.499962524225475906816,-57,53, + 8574890577415906.,8403179145918093.,-.499967828493647951629,-57,53, + 8574890577557636.,8403179145908133.,-.499992918581051668613,-57,53, + 4997367477013431.,8303462034391382.,.499999094266705740866,-56,53, + 4997367477026760.,8303462034389511.,.499989468902591291530,-56,53, + 4997367477040089.,8303462034387640.,.499979843586481472017,-56,53, + 4997367477041585.,8303462034387431.,-.494469432385681683489,-56,53, + 4997367477041606.,8303462034387428.,-.442252477035019242059,-56,53, + 4997367477041642.,8303462034387423.,-.495594839291026208095,-56,53, + 4997367477041813.,8303462034387399.,-.498971060007054514603,-56,53, + 4997367477041870.,8303462034387390.,.499903533087604472331,-56,53, + 5439228317199196.,8241464900434221.,.441977427579352199194,-56,53, + 5439228317199217.,8241464900434218.,.496811285390010733042,-56,53, + 5439228317199274.,8241464900434211.,-.497211100552486879040,-56,53, + 5439228317200422.,8241464900434050.,-.499626873569603972197,-56,53, + 5439228317200586.,8241464900434027.,-.499971984000589088228,-56,53, + 5439228317209285.,8241464900432807.,-.499984884227917634337,-56,53, + 5439228317217984.,8241464900431587.,-.499997784433011190543,-56,53, + 6865221281931205.,8041799576613118.,-.499987246171396711164,-56,53, + 6865221281932085.,8041799576612994.,.499877830839587262372,-56,53, + 6865221281932178.,8041799576612982.,-.499000064430826117443,-56,53, + 6865221281932271.,8041799576612969.,-.497877959701236300469,-56,53, + 6865221281932293.,8041799576612965.,.427118667224043478634,-56,53, + 6865221281932314.,8041799576612962.,.491888174743628889204,-56,53, + 6865221281975763.,8041799576606889.,.499999233114893137390,-56,53, + 7772893791358578.,6848055672677767.,.499994782289329600391,-55,53, + 7772893791365170.,6848055672675992.,.499983933679974670216,-55,53, + 7772893791391267.,6848055672668965.,.470966472046005742705,-55,53, + 7772893791391278.,6848055672668963.,-.490957089745230390383,-55,53, + 7772893791391304.,6848055672668956.,-.491867326706332426584,-55,53, + 7772893791391512.,6848055672668900.,-.499149222395070238981,-55,53, + 7772893791391538.,6848055672668892.,.499940540643847344121,-55,53, + 4942283078727667.,6287222359137664.,.499964462400936713404,-54,53, + 4942283078727753.,6287222359137619.,.497672079282702689110,-54,53, + 4942283078727774.,6287222359137609.,-.491259781711266781730,-54,53, + 4942283078740316.,6287222359131046.,-.499993141711052131956,-54,53, + 8591720143175582.,4503599627370544.,.499820389651925134324,-54,53, + 8591720143175671.,4503599627370505.,-.497130171941232589125,-54,53, + 8591720143175689.,4503599627370496.,.413598927961297753326,-54,53, + 8591720143175690.,4503599627370496.,-.035805010933005890474,-54,53, + 8591720143175691.,9007199254740991.,.029582100345380979045,-54,54, + 8591720143175918.,9007199254740787.,.000193842332769093012,-54,54, + 8591720143211988.,9007199254708367.,.000042038620075540291,-54,54, + 8591720143222809.,9007199254698641.,-.000003490419366068411,-54,54, + 5209789679306856.,7446533865162224.,-.499997549343132976518,-53,54, + 5209789679309563.,7446533865157851.,.499972801097603082569,-53,54, + 5209789679314234.,7446533865150307.,.498443993038529186714,-53,54, + 5209789679314247.,7446533865150287.,-.497492610360158305384,-53,54, + 5209789679314260.,7446533865150266.,-.493429213758810742540,-53,54, + 5209789679314486.,7446533865149901.,-.499711703606705012068,-53,54, + 5209789679314977.,7446533865149107.,.499913506539027641069,-53,54, + 6401290443869148.,5672141414715588.,.499999095147738328146,-53,54, + 6401290443872945.,5672141414710417.,.499947284108150846565,-53,54, + 6401290443873050.,5672141414710275.,-.495840295557899744111,-53,54, + 7326634645035384.,4503599627414068.,-.499999969443417747233,-53,54, + 7326634645072561.,4503599627370776.,-.499991117688859030532,-53,54, + 7326634645072713.,4503599627370598.,.498529509786456645079,-53,54, + 7326634645072792.,4503599627370507.,-.495660427247479924538,-53,54, + 7326634645072798.,4503599627370500.,-.482560928794307550436,-53,54, + 7326634645072801.,4503599627370496.,.023988820432281475985,-53,54, + 7326634645072802.,9007199254740990.,-.280989192984376855787,-53,55, + 8332770891498071.,6873000721793561.,-.499999639041742243519,-53,55, + 8332770891501079.,6873000721787792.,-.499568949145519524064,-53,55, + 8332770891501213.,6873000721787535.,-.496225294658961810715,-53,55, + 8332770891502857.,6873000721784382.,-.499979264412267027968,-53,55, + 8357839430195084.,6825045837925990.,.499998948062065940185,-53,55, + 8357839430237778.,6825045837844530.,-.499989537023968970993,-53,55, + 8357839430242616.,6825045837835298.,.499918123044681452032,-53,55, + 8357839430242768.,6825045837835008.,.480899099698612962332,-53,55, + 8357839430242779.,6825045837834987.,.492680617746289387099,-53,55, + 8357839430242790.,6825045837834967.,-.495537864205986620369,-53,55, + 8394559726009392.,6755247541943275.,-.499999282393912650313,-53,55, + 8394559726018152.,6755247541926687.,-.499976320174454651738,-53,55, + 8394559726068522.,6755247541831306.,-.499843703849054458608,-53,55, + 8394559726072902.,6755247541823012.,-.499832125008881438574,-53,55, + 8394559726073137.,6755247541822567.,-.497548398534414098667,-53,55, + 8394559726073419.,6755247541822033.,-.494807926736487387961,-53,55, + 9007199254700790.,5667301202125461.,.499996128546291431431,-53,55, + 9007199254715488.,5667301202101057.,-.499992401087867718695,-53,55, + 9007199254739860.,5667301202060589.,-.499701059695872971283,-53,55, + 9007199254740982.,5667301202058725.,.497850516438893071649,-53,55, + 9007199254740988.,5667301202058716.,-.464729421655395293478,-53,55, + 9007199254740991.,5667301202058711.,-.446019390702534498732,-53,55, + 4503599627370497.,5667301202058706.,-.427309359749670385781,-52,55, + 4503599627371186.,5667301202056418.,-.499835141716609772761,-52,55, + 4503599627372442.,5667301202052247.,-.499969221410862605030,-52,55, + 4578807985004481.,5421692204254618.,.463464929025464082444,-52,55, + 4578807985004495.,5421692204254574.,-.488883811226966735183,-52,55, + 4578807985004514.,5421692204254513.,-.495642815854811211498,-52,55, + 4578807985004533.,5421692204254451.,.497598179517867664843,-52,55, + 4578807985005415.,5421692204251619.,.499627544236155968143,-52,55, + 4578807985005562.,5421692204251147.,.499965771798849299628,-52,55, + 4578807985020357.,5421692204203642.,.499993665308170720612,-52,55, + 4578807985023316.,5421692204194141.,.499999282090164435783,-52,55, + 4662189296985799.,5158971315668499.,-.499998726847407159326,-52,55, + 4662189297004639.,5158971315610260.,.499982370531161125635,-52,55, + 4662189297023479.,5158971315552022.,.499963972324389606860,-52,55, + 4662189297027701.,5158971315538972.,-.499827767260860536868,-52,55, + 4662189297028030.,5158971315537954.,.499004189671450235978,-52,55, + 4662189297028096.,5158971315537750.,.480532788952991079174,-52,55, + 4800693860926275.,4744302318370719.,-.499971528469133966716,-52,55, + 4800693860930236.,4744302318359241.,-.499915946074051622133,-52,55, + 4800693860930725.,4744302318357823.,.498828609771187658743,-52,55, + 4800693860930813.,4744302318357568.,.496557691430514855640,-52,55, + 4800693860930823.,4744302318357540.,-.480973094743889440418,-52,55, + 4800693860931126.,4744302318356661.,.499844084236708217793,-52,55, + 4800693860943009.,4744302318322228.,-.499989024937706179016,-52,55, + 4800693860959743.,4744302318273736.,.499993862721189800300,-52,55, + 4885446509429727.,4503599627377842.,.250003318407296839664,-52,55, + 4885446509432333.,4503599627370590.,.249692762397336729022,-52,55, + 4885446509432356.,4503599627370526.,.245085263286590187802,-52,55, + 4885446509432363.,4503599627370507.,-.234577888616539736014,-52,55, + 4885446509432366.,4503599627370498.,.416995046282138977014,-52,55, + 4885446509432367.,9007199254740991.,.268372049163402458434,-52,56, + 4885446509432874.,9007199254738170.,-.499975954735195111748,-52,56, + 5096918801647790.,7888993406660967.,-.499971733764390135438,-52,56, + 5096918801648306.,7888993406658379.,-.484763767641168115282,-52,56, + 5096918801648307.,7888993406658373.,.499761829193055634897,-52,56, + 5096918801648627.,7888993406656769.,-.452047183725878467342,-52,56, + 5096918801648630.,7888993406656754.,-.498470393220772170040,-52,56, + 5096918801659099.,7888993406604247.,-.499996989058066034164,-52,56, + 5188145608292541.,7441838929220902.,-.499996889232572708754,-52,56, + 5188145608303892.,7441838929166544.,.499991376828927097825,-52,56, + 5188145608309719.,7441838929138641.,-.494288156418831199152,-52,56, + 5188145608309733.,7441838929138573.,.463336708368917315067,-52,56, + 5188145608310003.,7441838929137281.,-.496755184916290267485,-52,56, + 5188145608310358.,7441838929135581.,-.499838970260243134516,-52,56, + 5484934182041247.,6125066785016896.,-.499877907661796784408,-52,56, + 5484934182041382.,6125066785016342.,.496128944916387524379,-52,56, + 5484934182042254.,6125066785012770.,.499965801060796946340,-52,56, + 5484934182048514.,6125066784987127.,.499987317793515862574,-52,56, + 5484934182099601.,6125066784777859.,-.499993586121346880813,-52,56, + 6131653943175781.,7807115349649437.,.499980320212281717680,-52,57, + 6131653943175813.,7807115349649256.,.486781763228913544150,-52,57, + 6131653943175822.,7807115349649206.,-.423180330922027732340,-52,57, + 6131653943175848.,7807115349649059.,-.496404158467635240285,-52,57, + 6131653943198738.,7807115349519578.,-.499996050636527690459,-52,57, + 6147805379822377.,7716197173256829.,.499999122043748866854,-52,57, + 6147805379823444.,7716197173250853.,-.426960581259943610095,-52,57, + 6147805379823479.,7716197173250657.,-.483608743908259653697,-52,57, + 6147805379823489.,7716197173250601.,-.499793933235585893382,-52,57, + 6355092669234228.,6625792274432444.,-.499999900309314532847,-52,57, + 6355092669244994.,6625792274379371.,-.499973500025169111762,-52,57, + 6355092669245378.,6625792274377478.,-.499415241720371430664,-52,57, + 6355092669246018.,6625792274374323.,-.498484810200093257285,-52,57, + 6355092669246061.,6625792274374111.,-.474984796786960628332,-52,57, + 6355092669246075.,6625792274374042.,-.490589443581452282065,-52,57, + 6829477959437529.,4609704907740027.,-.499993882109100371647,-52,57, + 6829477959444444.,4609704907714984.,-.499774758912267228981,-52,57, + 6829477959444452.,4609704907714955.,-.472153391818616028711,-52,57, + 6829477959445168.,4609704907712361.,.499958963695307036455,-52,57, + 6829477959460084.,4609704907658342.,.499998207311141933868,-52,57, + 7010940444951549.,7982844198312799.,-.499998082697024163870,-52,58, + 7010940444956002.,7982844198284301.,.487832673629050152275,-52,58, + 7010940444956007.,7982844198284269.,.490289254361409661579,-52,58, + 7010940444956027.,7982844198284142.,-.499884422708046254752,-52,58, + 7010940444969053.,7982844198200782.,-.499999922127820009310,-52,58, + 7131102741353814.,7245109957148535.,.499996441015381983098,-52,58, + 7131102741358517.,7245109957120858.,-.499969733525768191133,-52,58, + 7131102741359266.,7245109957116450.,-.499539077560001756418,-52,58, + 7131102741359388.,7245109957115732.,-.491458249532619243539,-52,58, + 7131102741359397.,7245109957115679.,-.458075237626520322489,-52,58, + 7131102741359414.,7245109957115578.,.493870451530358880769,-52,58, + 7131102741384009.,7245109956970833.,-.499997424553467403940,-52,58, + 7350797901962646.,6047998066244613.,.499996903500727312532,-52,58, + 7350797901962711.,6047998066244287.,-.499743346101568455544,-52,58, + 7350797901963426.,6047998066240690.,-.496886090709988911541,-52,58, + 7350797901963556.,6047998066240036.,-.496366589529416435255,-52,58, + 7466361669964986.,5490427448846886.,-.499967416516522430005,-52,58, + 7466361669967865.,5490427448833574.,.498324625599510447409,-52,58, + 7466361669967873.,5490427448833538.,-.489523121378572310453,-52,58, + 7466361669967897.,5490427448833427.,-.453066362311513451070,-52,58, + 7466361669968606.,5490427448830148.,.498927062679039262464,-52,58, + 7466361669969841.,5490427448824438.,.499931128631737041319,-52,58, + 7466361669974943.,5490427448800850.,-.499969428088842180944,-52,58, + 7466361670094427.,5490427448248418.,-.499967243667118085640,-52,58, + 7840821197818554.,7961035215571692.,.488867036149254214959,-52,59, + 7840821197818555.,7961035215571686.,-.481651100840660616663,-52,59, + 7840821197818622.,7961035215571218.,.493633720847322622917,-52,59, + 7840821197818724.,7961035215570508.,-.499216252058849028602,-52,59, + 7840821197819131.,7961035215567670.,.499901993863978375731,-52,59, + 7840821197822489.,7961035215544263.,.499998022548806557182,-52,59, + 7915680083177363.,7454089432287919.,-.499966701049695398902,-52,59, + 7915680083269851.,7454089431679652.,-.499981578378303043160,-52,59, + 7915680083272549.,7454089431661908.,-.470723503540483913420,-52,59, + 7915680083272556.,7454089431661861.,.492287914789756829437,-52,59, + 7915680083272582.,7454089431661690.,.497758897161424686743,-52,59, + 7915680083272960.,7454089431659205.,-.499624512581589909397,-52,59, + 7915680083273690.,7454089431654404.,-.499862312390186429056,-52,59, + 7939380041381417.,7299655880037924.,-.499982081456720178367,-52,59, + 7939380041385507.,7299655880011519.,-.499965801128649800263,-52,59, + 7939380041451765.,7299655879583758.,-.499690280500336171811,-52,59, + 7939380041465489.,7299655879495155.,.490589610883029729459,-52,59, + 7939380041465500.,7299655879495084.,.474697238691629641525,-52,59, + 7939380041465546.,7299655879494787.,.499147318625128171366,-52,59, + 7939380041465671.,7299655879493981.,-.499629638023303783207,-52,59, + 7946063086884765.,7256622908666992.,.499998587120650501342,-52,59, + 7946063086889970.,7256622908633565.,-.499952306186798348533,-52,59, + 7946063086890311.,7256622908631375.,-.499564838338696421884,-52,59, + 7946063086890922.,7256622908627450.,.483534115779345964413,-52,59, + 7946063086890948.,7256622908627284.,-.495908481876087521201,-52,59, + 7946063086890993.,7256622908626995.,-.498789900887068183004,-52,59, + 7957299355365792.,7184777257389737.,-.499903231699154233233,-52,59, + 7957299355367049.,7184777257381734.,.497926855450051191481,-52,59, + 7957299355367090.,7184777257381473.,.493878354050042681672,-52,59, + 7957299355367109.,7184777257381353.,-.459217292937357987865,-52,59, + 7957299355367284.,7184777257380238.,.499112274368742548140,-52,59, + 7957299355367519.,7184777257378743.,-.499702306436714655520,-52,59, + 7957299355369992.,7184777257363000.,-.499993601761711211548,-52,59, + 7957299355414700.,7184777257078391.,-.499997727577081961926,-52,59, + 8416284612953882.,4738901360032847.,.499994294252591945071,-52,59, + 8416284612959517.,4738901360008082.,.499822691411266078287,-52,59, + 8416284612960373.,4738901360004321.,-.494879497574304722625,-52,59, + 8416284612960383.,4738901360004277.,-.443415738084044145028,-52,59, + 8416284612960411.,4738901360004154.,-.499317211509374147232,-52,59, + 8416284612960644.,4738901360003129.,.499788384740746643596,-52,59, + 8416284612982951.,4738901359905093.,.499997608767308677966,-52,59, + 8535179372480006.,8482881828385115.,-.499827862939547078249,-52,60, + 8535179372708178.,8482881826569258.,.499948972179939349162,-52,60, + 8535179372716327.,8482881826504406.,.499947451397912995483,-52,60, + 8535179372716734.,8482881826501167.,.481172077250937405524,-52,60, + 8535179372716806.,8482881826500594.,.485221642627905614622,-52,60, + 8535179372717070.,8482881826498494.,-.499929950692809966425,-52,60, + 9007199254740991.,5393061252501100.,-.156518865568710307958,-52,60, + 4503599627370496.,5393061252501095.,-.447267116216278444932,-51,60, + 4503599627370497.,5393061252501084.,-.028763617511400621494,-51,60, + 4503599627370503.,5393061252501020.,.482257374718261045919,-51,60, + 4503599627370515.,5393061252500894.,-.495700640820385595779,-51,60, + 4503599627370558.,5393061252500438.,.499949803521690815567,-51,60, + 4503599627374006.,5393061252463954.,-.499986546340641959215,-51,60, + 4503599627404584.,5393061252140393.,-.499992343964544329394,-51,60, + 4892331225832107.,4893636349117920.,.499995322523835696575,-51,61, + 4892331225837776.,4893636349059542.,.499952847615422870729,-51,61, + 4892331225838179.,4893636349055393.,-.497227780283421254039,-51,61, + 4892331225838199.,4893636349055187.,-.452422848581441751217,-51,61, + 4892331225838216.,4893636349055011.,.485661343371490389834,-51,61, + 4892331225838357.,4893636349053560.,-.498463887856371678713,-51,61, + 5654219377388626.,7077731031437876.,.498844924122453282387,-51,64, + 5654219377388635.,7077731031437724.,.494277126066913277688,-51,64, + 5654219377388843.,7077731031434211.,.499821349633383456340,-51,64, + 5654219377396067.,7077731031312203.,-.499930182284899386932,-51,64, + 5654219377402197.,7077731031208671.,-.499994655352283255348,-51,64, + 6139380150988896.,8512927234267463.,-.440166617750635352329,-51,66, + 6139380150988924.,8512927234266851.,-.457366806584460291002,-51,66, + 6139380150988994.,8512927234265320.,.499632721512526704719,-51,66, + 6139380150989226.,8512927234260249.,.499974016488207384137,-51,66, + 6139380151121085.,8512927231378108.,-.499552903611143746613,-51,66, + 6320764200834842.,5310532034549823.,-.499987383038720629846,-51,66, + 6320764200837095.,5310532034518288.,-.499887224697247759396,-51,66, + 6320764200838617.,5310532034496984.,.228986573284642769580,-51,66, + 6320764200838695.,5310532034495892.,.471333590076185427759,-51,66, + 6320764200838704.,5310532034495766.,.499296707411948162534,-51,66, + 6320764200839026.,5310532034491259.,.499754907284418371388,-51,66, + 6320764200854475.,5310532034275022.,-.499996339039004685786,-51,66, + 6499503522091280.,6591172496409984.,-.499999288950151745717,-51,67, + 6499503522098796.,6591172496276083.,-.499495667060182313086,-51,67, + 6499503522099430.,6591172496264787.,.498684240221692368743,-51,67, + 6499503522099468.,6591172496264111.,-.488806553395941623917,-51,67, + 6499503522100633.,6591172496243355.,.499962569015171517483,-51,67, + 6624288465904613.,4690378569168125.,-.499995856402119376898,-51,67, + 6624288465910553.,4690378569091509.,-.499753012881814414709,-51,67, + 6624288465912038.,4690378569072355.,-.499692116206055433368,-51,67, + 6624288465912215.,4690378569070071.,.498294945122376678684,-51,67, + 6624288465912372.,4690378569068046.,.462611152947021676813,-51,67, + 6624288465912392.,4690378569067788.,.496282007506627211903,-51,67, + 6624288465921007.,4690378568956670.,-.499996137425993795029,-51,67, + 6874109412519667.,4664062595168545.,-.499986424788696649412,-51,68, + 6874109412527331.,4664062595066874.,.499944587704637169876,-51,68, + 6874109412530268.,4664062595027912.,.497048146565238806883,-51,68, + 6874109412530283.,4664062595027714.,-.491730690437901359160,-51,68, + 6874109412530298.,4664062595027515.,-.480509527432948577681,-51,68, + 6874109412530362.,4664062595026666.,-.499299231854221281900,-51,68, + 6874109412530629.,4664062595023124.,-.499562528397317404777,-51,68, + 6874109412531163.,4664062595016039.,.499910886208998826616,-51,68, + 6874109412580445.,4664062594362269.,-.499953541036106534007,-51,68, + 6882135053241298.,4558745572342083.,-.499995726166579773353,-51,68, + 6882135053245591.,4558745572286358.,.499947706912961936282,-51,68, + 6882135053245894.,4558745572282425.,.499244926933320032820,-51,68, + 6882135053247611.,4558745572260138.,.495262568152267836123,-51,68, + 6882135053247662.,4558745572259477.,-.494954728044770494008,-51,68, + 6882135053247663.,4558745572259464.,-.475155067184972781060,-51,68, + 6985772899236306.,6773875917766597.,-.499980669992179977513,-51,69, + 6985772899240630.,6773875917682050.,-.499973817368019277144,-51,69, + 6985772899262250.,6773875917259315.,-.499924444400892705055,-51,69, + 6985772899265375.,6773875917198211.,.499390973110821414603,-51,69, + 6985772899265422.,6773875917197293.,-.489739318993758439562,-51,69, + 6985772899266574.,6773875917174768.,-.499911547838202856236,-51,69, + 7030545580896485.,5950388856980102.,-.499981474870671352992,-51,69, + 7030545580898761.,5950388856940780.,-.499864557662766424482,-51,69, + 7030545580898873.,5950388856938844.,.498383732894920778009,-51,69, + 7030545580898891.,5950388856938534.,-.484040648923682370178,-51,69, + 7030545580898902.,5950388856938343.,.471144451083701736168,-51,69, + 7030545580913042.,5950388856694049.,.499995981090303263625,-51,69, + 7030545580947294.,5950388856102285.,-.499948570275583351433,-51,69, + 7136157866516736.,8739463196729729.,-.499998368650645162242,-51,70, + 7136157866517872.,8739463196700505.,.499982969161780955524,-51,70, + 7136157866521164.,8739463196615821.,-.461338189650306647403,-51,70, + 7136157866521182.,8739463196615357.,.498168561942115714247,-51,70, + 7136157866521280.,8739463196612836.,.499927543245755162595,-51,70, + 7638324022136820.,7600134150008199.,-.499995146175769689615,-51,72, + 7638324022152569.,7600134149633048.,.499814155303767467662,-51,72, + 7638324022153104.,7600134149620305.,-.499811033621577032399,-51,72, + 7638324022153483.,7600134149611277.,-.492068865308647322617,-51,72, + 7638324022153494.,7600134149611014.,.481770617302922570364,-51,72, + 7638324022153522.,7600134149610348.,-.493910699646624217911,-51,72, + 7638324022153639.,7600134149607561.,-.499436202005615759830,-51,72, + 7638324022163425.,7600134149374452.,.499947052507569258298,-51,72, + 7638324022168853.,7600134149245155.,-.499983327195508983000,-51,72, + 7642469412624517.,7502002803787058.,-.499991945722743882470,-51,72, + 7642469412642277.,7502002803369256.,.499925541101765414410,-51,72, + 7642469412643908.,7502002803330888.,-.499574158402034835792,-51,72, + 7642469412644049.,7502002803327570.,.499242859880585049949,-51,72, + 7642469412644190.,7502002803324253.,.498059879573041877750,-51,72, + 7642469412644211.,7502002803323759.,.476607095392542773357,-51,72, + 7642469412644230.,7502002803323313.,-.495183518839056797414,-51,72, + 7642469412644794.,7502002803310045.,-.499915424371045095913,-51,72, + 7898814489372780.,6632316204132686.,-.499995071030141111744,-51,73, + 7898814489379964.,6632316203978622.,-.490960379276050366707,-51,73, + 7898814489379973.,6632316203978429.,-.499857744565249994898,-51,73, + 7898814489381659.,6632316203942272.,-.499964079939190659073,-51,73, + 8066482251687391.,7672089259165768.,-.499945998705846482869,-51,74, + 8066482251710372.,7672089258584386.,-.499985978272566600585,-51,74, + 8066482251721462.,7672089258303826.,.499966421133794314597,-51,74, + 8066482251722263.,7672089258283563.,-.499946462273881816185,-51,74, + 8066482251722360.,7672089258281109.,-.442507694336977476481,-51,74, + 8066482251722377.,7672089258280678.,.485084667132022148032,-51,74, + 8066482251722387.,7672089258280426.,-.498684531992994141875,-51,74, + 8286759450037508.,7353041802381047.,-.499901271800085622821,-51,75, + 8286759450081925.,7353041801276608.,.499979666679172950494,-51,75, + 8286759450082474.,7353041801262958.,-.499908232256795074544,-51,75, + 8286759450082689.,7353041801257611.,.480099245690971158738,-51,75, + 8286759450082704.,7353041801257239.,-.498039767335267508114,-51,75, + 8286759450091028.,7353041801050261.,-.499979908620817695529,-51,75, + 8906077371445537.,6731747257366648.,-.499884589508910498061,-51,78, + 8906077371488167.,6731747256328125.,-.499979039497454175569,-51,78, + 8906077371495540.,6731747256148509.,-.499956142327683329241,-51,78, + 8906077371499697.,6731747256047238.,.499787558277317752099,-51,78, + 8906077371500054.,6731747256038542.,-.490852617869797322100,-51,78, + 8906077371500068.,6731747256038200.,.450690904856481172535,-51,78, + 8906077371500090.,6731747256037665.,-.498312130825478366124,-51,78, + 8906077371501305.,6731747256008065.,.499929371957403223892,-51,78, + 8990371731144839.,4955117177934999.,-.499993953974117381764,-51,78, + 8990371731147484.,4955117177887145.,-.499888203682561582999,-51,78, + 8990371731147993.,4955117177877936.,-.454877253546251914336,-51,78, + 8990371731148015.,4955117177877538.,-.484365974383696884186,-51,78, + 8990371731148026.,4955117177877339.,-.499110334790774964584,-51,78, + 4607114928030643.,8668843363355184.,.494766444219723917274,-50,80, + 4607114928030682.,8668843363352658.,-.499598372805478787121,-50,80, + 4607114928031744.,8668843363283846.,-.499993884144366561566,-50,80, + 4607114928062089.,8668843361317650.,-.499771140182539484979,-50,80, + 4644239646067765.,6561304158402256.,-.499971092484539504098,-50,80, + 4644239646077174.,6561304157937295.,-.499977460446477224748,-50,80, + 4644239646078571.,6561304157868259.,.478555520671330918780,-50,80, + 4644239646078643.,6561304157864701.,.481744068553512500620,-50,80, + 4644239646079027.,6561304157845725.,.498749688960299808703,-50,80, + 4644239646079051.,6561304157844539.,.499812542008523097092,-50,80, + 4644239646129862.,6561304155333632.,-.499527061468143197846,-50,80, + 4662873474512993.,5700655847491603.,-.499705553923900570535,-50,80, + 4662873474556068.,5700655845635155.,.476902704427144276640,-50,80, + 4662873474556078.,5700655845634724.,.496746442667872409591,-50,80, + 4662873474556180.,5700655845630328.,.499152574534345582957,-50,80, + 4662873474556231.,5700655845628131.,-.499644358295408583743,-50,80, + 4662873474557037.,5700655845593393.,.499761087270991095248,-50,80, + 4662873474568678.,5700655845091689.,.499881814175907152784,-50,80, + 4662873474585308.,5700655844374970.,-.499871186476660121230,-50,80, + 4733238930114881.,6672158924208924.,-.499698680819015852598,-50,81, + 4733238930135251.,6672158923166689.,-.499910540597505907075,-50,81, + 4733238930154489.,6672158922182372.,.499544026549317934206,-50,81, + 4733238930154592.,6672158922177102.,.484571115751734886752,-50,81, + 4733238930154598.,6672158922176795.,.493407645344779645102,-50,81, + 4733238930154604.,6672158922176489.,-.497755825048420425911,-50,81, + 4733238930155621.,6672158922124454.,-.499963857935336159502,-50,81, + 4754195564192675.,5679710780000483.,.499999811281980852905,-50,81, + 4754195564194201.,5679710779933740.,-.499645573315272444723,-50,81, + 4754195564194304.,5679710779929234.,.499067773595841193441,-50,81, + 4754195564194407.,5679710779924729.,.497781123987438624808,-50,81, + 4754195564194426.,5679710779923898.,.478126305507868155349,-50,81, + 4754195564194430.,5679710779923724.,-.473379972051687086262,-50,81, + 4823794125837127.,6621743587811281.,-.499044673706552603887,-50,82, + 4823794125905715.,6621743584265146.,.499875823200898450229,-50,82, + 4823794125906225.,6621743584238779.,-.499483758858750877031,-50,82, + 4823794125906970.,6621743584200261.,-.459332376154269974362,-50,82, + 4823794125906990.,6621743584199227.,-.498522940051385735829,-50,82, + 4823794125912043.,6621743583937976.,.499986134590745416540,-50,82, + 4946222989389834.,5033136657972691.,-.499717457723265078559,-50,83, + 4946222989431551.,5033136656293664.,-.499990929837955779517,-50,83, + 4946222989432059.,5033136656273218.,-.498408802529823990914,-50,83, + 4946222989432063.,5033136656273057.,-.490522328764828697299,-50,83, + 4946222989432079.,5033136656272413.,-.458976433654593745153,-50,83, + 4952366756330013.,4791698637217657.,-.499897611003965499869,-50,83, + 4952366756354416.,4791698636281490.,.499977471155947372936,-50,83, + 4952366756356547.,4791698636199739.,.496164030222872907031,-50,83, + 4952366756356569.,4791698636198896.,-.484166275067048702805,-50,83, + 4952366756356591.,4791698636198052.,-.464496580211893423376,-50,83, + 4952366756356649.,4791698636195826.,.496450797828925832092,-50,83, + 4952366756357771.,4791698636152783.,.499605447320047449977,-50,83, + 4952366756357873.,4791698636148870.,.499892252348743909923,-50,83, + 4952366756364889.,4791698635879718.,-.499980419084786164809,-50,83, + 4993202216154006.,6902019544223292.,-.499403487853276336142,-50,84, + 4993202216154540.,6902019544193552.,-.498544549285496480617,-50,84, + 4993202216154641.,6902019544187927.,-.479655485037585075613,-50,84, + 4993202216154654.,6902019544187203.,-.487125209116211378428,-50,84, + 4993202216154680.,6902019544185754.,.497935342948978244686,-50,84, + 4993202216156015.,6902019544111405.,-.499916681274721353463,-50,84, + 4993202216158291.,6902019543984648.,-.499998179567367877860,-50,84, + 5062276122691747.,7876771271597911.,-.499438420735323271798,-50,85, + 5062276122735862.,7876771268757002.,-.499991102453132537991,-50,85, + 5062276122737863.,7876771268628141.,.499803547369057318146,-50,85, + 5062276122738303.,7876771268599806.,.467274910995187998124,-50,85, + 5062276122738313.,7876771268599162.,.489262897689402514001,-50,85, + 5062276122738318.,7876771268598841.,-.499743108944202611387,-50,85, + 5073771874971476.,7169462815723910.,-.499997150259170464828,-50,85, + 5073771874974499.,7169462815546331.,.499410967274308500543,-50,85, + 5073771874975182.,7169462815506211.,-.497744989278942630889,-50,85, + 5073771874975186.,7169462815505976.,-.466981626738572707475,-50,85, + 5073771874975279.,7169462815500512.,.498266554446010426811,-50,85, + 5073771874976742.,7169462815414572.,.499966972176764665912,-50,85, + 5354549613715091.,5407873809135722.,-.499711190602745966487,-50,88, + 5354549613715094.,5407873809135582.,-.465407561072623415617,-50,88, + 5354549613715674.,5407873809108521.,.499960881388813393751,-50,88, + 5354549613727801.,5407873808542734.,-.499968919766158391296,-50,88, + 5383659995165513.,8408174634101973.,-.464921436675505662095,-50,89, + 5383659995165525.,8408174634101098.,-.484457777961311035017,-50,89, + 5383659995165537.,8408174634100222.,.496005880842071720183,-50,89, + 5383659995165586.,8408174634096649.,.499565821881521147513,-50,89, + 5383659995167275.,8408174633973490.,.499826739426770214095,-50,89, + 5383659995168401.,8408174633891385.,-.499998333950293522917,-50,89, + 5806200270454511.,6003312280163447.,.499941174826895511018,-50,94, + 5806200270455752.,6003312280093961.,.370294721161549951116,-50,94, + 5806200270455768.,6003312280093065.,.497551500486549954244,-50,94, + 5806200270455894.,6003312280086010.,.499698642259498298391,-50,94, + 5806200270462432.,6003312279719935.,-.499988494223083093877,-50,94, + 6067766604141680.,7942495479190132.,-.499485919060646312367,-50,98, + 6067766604164462.,7942495477429019.,-.499932738963470823884,-50,98, + 6067766604179071.,7942495476299702.,-.496637280389884298559,-50,98, + 6067766604179094.,7942495476297924.,-.461653529638192185761,-50,98, + 6067766604179104.,7942495476297151.,-.489921463971871770569,-50,98, + 6067766604179213.,7942495476288725.,-.498041943409455598767,-50,98, + 6067766604179355.,7942495476277748.,-.499446591506878290236,-50,98, + 6067766604180841.,7942495476162875.,.499939465106754354767,-50,98, + 6191004707580878.,4730947826622342.,-.499860247910552122061,-50,99, + 6191004707603748.,4730947825548569.,-.499992407356595978812,-50,99, + 6191004707604956.,4730947825491852.,-.499730366099965704077,-50,99, + 6191004707605222.,4730947825479362.,.492049279247959173738,-50,99, + 6191004707605263.,4730947825477437.,.494541633484803713301,-50,99, + 6191004707605345.,4730947825473587.,.499526344271232977250,-50,99, + 6216511745270784.,7342128208576853.,-.498696342537288805224,-50,100, + 6216511745329291.,7342128204296702.,-.499946525481364230972,-50,100, + 6216511745331013.,7342128204170726.,.488140782329146337695,-50,100, + 6216511745331019.,7342128204170288.,-.449182951554725319491,-50,100, + 6216511745331045.,7342128204168385.,.489080868580315329834,-50,100, + 6216511745331365.,7342128204144975.,.498481771502214093414,-50,100, + 6216511745331429.,7342128204140294.,-.499638039096633315586,-50,100, + 6216511745354819.,7342128202429170.,-.499790759603651798905,-50,100, + 6244874199730696.,5531190226273845.,-.499977029908280608218,-50,100, + 6244874199731019.,5531190226255965.,-.499915157189556869034,-50,100, + 6244874199733280.,5531190226130805.,-.499480454914863520351,-50,100, + 6244874199733339.,5531190226127538.,.494338975351268882045,-50,100, + 6244874199746714.,5531190225387152.,-.499936096556892790146,-50,100, + 6244874199778750.,5531190223613766.,-.499434415825197599526,-50,100, + 6315257637921654.,5448301874516995.,-.499826241003780603888,-50,101, + 6315257637931947.,5448301873949618.,-.499951456649511927761,-50,101, + 6315257637942240.,5448301873382240.,.499981515942090124626,-50,101, + 6315257637945584.,5448301873197911.,-.499833430236046356017,-50,101, + 6315257637946995.,5448301873120133.,-.499155418232695146717,-50,101, + 6315257637947052.,5448301873116991.,-.487788530134260299514,-50,101, + 6315257637947060.,5448301873116550.,-.468649317626768874256,-50,101, + 6315257637947256.,5448301873105746.,-.499738600213098524901,-50,101, + 6409934693907386.,8304057244106424.,-.499652156878643158233,-50,103, + 6409934693918398.,8304057243167783.,-.499879644440592701310,-50,103, + 6409934693935792.,8304057241685153.,-.499481152727323687065,-50,103, + 6409934693935897.,8304057241676203.,-.490854291938640566537,-50,103, + 6409934693935960.,8304057241670833.,-.485678170903620753502,-50,103, + 6409934693937523.,8304057241537605.,.499882879683754023546,-50,103, + 6409934693940422.,8304057241290500.,.499978976794707792900,-50,103, + 6410981382560712.,8215310142844844.,-.499976438477727776429,-50,103, + 6410981382560759.,8215310142840879.,.499710317381117202374,-50,103, + 6410981382561699.,8215310142761599.,.493445830294215465435,-50,103, + 6410981382562160.,8215310142722719.,-.445796371397320113763,-50,103, + 6410981382562166.,8215310142722213.,-.488389544193799146755,-50,103, + 6410981382562169.,8215310142721959.,.490313869419477943450,-50,103, + 6410981382563905.,8215310142575545.,-.499976165344548308266,-50,103, + 6410981382646923.,8215310135573771.,-.496916282386176108970,-50,103, + 6717460106441457.,5254698789049485.,.499963152916723928734,-50,107, + 6717460106442067.,5254698789015050.,-.499249372041960554326,-50,107, + 6717460106442719.,5254698788978242.,.498313880215219655568,-50,107, + 6717460106442750.,5254698788976492.,.472124409279132817492,-50,107, + 6717460106442761.,5254698788975871.,.495089435859373621708,-50,107, + 6717460106454172.,5254698788331693.,-.499969909765628424298,-50,107, + 6717460106494799.,5254698786038199.,-.499186384104037525481,-50,107, + 6887421969696298.,6620213780509519.,-.499976648036168608826,-50,110, + 6887421969701635.,6620213780120584.,-.499653515035447463483,-50,110, + 6887421969703414.,6620213779990939.,-.499540791599255429318,-50,110, + 6887421969703438.,6620213779989189.,.495401724332623543017,-50,110, + 6887421969703510.,6620213779983942.,.480229274865045443588,-50,110, + 6887421969703518.,6620213779983359.,.478543447399831671759,-50,110, + 6905088040660569.,5448915937106326.,.490223298940495207691,-50,110, + 6905088040660584.,5448915937105425.,-.483433957107025457749,-50,110, + 6905088040660759.,5448915937094901.,.490564733229469986834,-50,110, + 6905088040664711.,5448915936857261.,.497671928100251743321,-50,110, + 6905088040666003.,5448915936779571.,.499997653320817700925,-50,110, + 6905088040680656.,5448915935898464.,-.499864787463659219186,-50,110, + 7047935352800232.,8869017972707929.,-.499925108596773781066,-50,113, + 7047935352808281.,8869017971904246.,-.499963663612992074058,-50,113, + 7047935352811687.,8869017971564160.,.483517889068011672109,-50,113, + 7047935352811740.,8869017971558868.,.497060128918327874992,-50,113, + 7047935352811826.,8869017971550282.,-.499833588461955678043,-50,113, + 7047935352812785.,8869017971454526.,.499921910113943165441,-50,113, + 7132408634370842.,6815060882167261.,.450769932222749603567,-50,114, + 7132408634370858.,6815060882166019.,.488502577474069852910,-50,114, + 7132408634370866.,6815060882165399.,-.492631099816415536985,-50,114, + 7132408634372244.,6815060882058435.,-.492906178965271011801,-50,114, + 7132408634400334.,6815060879878015.,-.498152045659295129341,-50,114, + 7132408634407595.,6815060879314397.,-.499395948168131052510,-50,114, + 7132408634407648.,6815060879310283.,-.499404858448901947230,-50,114, + 7139974001004988.,6252127760316847.,-.499990241857616846214,-50,114, + 7139974001009878.,6252127759968264.,.474595507420648678067,-50,114, + 7139974001009892.,6252127759967266.,.489246700730872827469,-50,114, + 7139974001009899.,6252127759966767.,.496572297445006441029,-50,114, + 7139974001010036.,6252127759957001.,.497087555342552868344,-50,114, + 7139974001010721.,6252127759908171.,.499664070906869256910,-50,114, + 7139974001010858.,6252127759898406.,-.499820580764950615140,-50,114, + 7139974001014680.,6252127759625955.,.499964044268381569840,-50,114, + 7247015964512343.,7314250867363685.,-.499896535774423971036,-50,116, + 7247015964522160.,7314250866533011.,.499984040143070633748,-50,116, + 7247015964524164.,7314250866363441.,.499767392626542087454,-50,116, + 7247015964526574.,7314250866159517.,.497515991351415539967,-50,116, + 7247015964526652.,7314250866152917.,.467567699626273356795,-50,116, + 7247015964526665.,7314250866151817.,.462576318244346035783,-50,116, + 7247015964526764.,7314250866143441.,-.498511888454327350414,-50,116, + 7247015964526967.,7314250866126264.,-.499531110917736271702,-50,116, + 7473780943395358.,8157514774050776.,-.499743100239021783176,-50,120, + 7473780943416566.,8157514771988134.,-.499535048650740352239,-50,120, + 7473780943416570.,8157514771987744.,.469533315364342258817,-50,120, + 7473780943416760.,8157514771969266.,-.499719372783356813815,-50,120, + 7473780943417051.,8157514771940964.,-.499995778054121262371,-50,120, + 7481036377632512.,7481219186452320.,-.499569846367769024256,-50,120, + 7481036377657771.,7481219184197212.,.499995290533445661107,-50,120, + 7481036377658444.,7481219184137128.,-.499848741283015808747,-50,120, + 7481036377660463.,7481219183956873.,-.499377973051817193400,-50,120, + 7481036377660889.,7481219183918839.,.499236021629685048594,-50,120, + 7481036377660950.,7481219183913393.,.459131468445076499785,-50,120, + 7481036377660957.,7481219183912769.,-.496290365276132021236,-50,120, + 7554375545501906.,6209808485507099.,-.499993356041603493825,-50,121, + 7554375545505255.,6209808485256535.,-.499965970187209839234,-50,121, + 7554375545506280.,6209808485179847.,-.496372430314323350598,-50,121, + 7554375545506291.,6209808485179024.,-.489504592122424797541,-50,121, + 7554375545506302.,6209808485178201.,-.482636753822627126073,-50,121, + 7554375545506417.,6209808485169596.,.498254289408556074713,-50,121, + 7554375545506565.,6209808485158523.,.499748866747850551799,-50,121, + 7557040836129202.,6013532358727527.,-.473977684504476877805,-50,121, + 7557040836129223.,6013532358726004.,.492430089900353112251,-50,121, + 7557040836129246.,6013532358724338.,-.496742347219003767182,-50,121, + 7557040836129426.,6013532358711292.,-.498961404539066081002,-50,121, + 7557040836129516.,6013532358704768.,.499929077300277079014,-50,121, + 7557040836133118.,6013532358443703.,.499973885318634931438,-50,121, + 7557040836136720.,6013532358182639.,-.499970094883243507772,-50,121, + 7657014978688024.,7153275907333483.,.430593645133055367690,-50,123, + 7657014978688051.,7153275907331125.,.488909720409924181861,-50,123, + 7657014978688057.,7153275907330602.,-.498131151646325010944,-50,123, + 7657014978688365.,7153275907303704.,-.499562532850742567092,-50,123, + 7657014978688519.,7153275907290254.,.499721814078203026797,-50,123, + 7657014978696853.,7153275906562436.,.499991254840043524527,-50,123, + 7657014978698242.,7153275906441134.,-.499956714237599481490,-50,123, + 7657014978724787.,7153275904122928.,-.499291148814158109766,-50,123, + 7671260238126795.,6010439711318868.,.499969396128594290299,-50,123, + 7671260238128514.,6010439711192501.,-.499910434567678511638,-50,123, + 7671260238129433.,6010439711124943.,-.494027776321382638185,-50,123, + 7671260238129753.,6010439711101419.,-.496331788582363947572,-50,123, + 7671260238130233.,6010439711066133.,-.499787636145618593581,-50,123, + 7671260238135470.,6010439710681148.,-.499979053766228199029,-50,123, + 7671260238159776.,6010439708894353.,-.499593272167448183668,-50,123, + 7786524800210848.,5810336592763651.,.499800498768846603679,-50,125, + 7786524800210857.,5810336592763002.,.499259235635162679539,-50,125, + 7786524800211208.,5810336592737691.,.478150029391613959484,-50,125, + 7786524800211334.,5810336592728605.,.470572392233565858935,-50,125, + 7786524800212692.,5810336592630679.,-.499985693377214189035,-50,125, + 7786524800221930.,5810336591964516.,-.499953819350424944147,-50,125, + 7798314970528939.,5018865834893341.,-.499622100141646842623,-50,125, + 7798314970559147.,5018865833008941.,.499983049795059271963,-50,125, + 7798314970560334.,5018865832934895.,.498492163754846552666,-50,125, + 7798314970560376.,5018865832932276.,-.494820889068159668663,-50,125, + 7798314970560460.,5018865832927036.,-.481446990652527416631,-50,125, + 7798314970560938.,5018865832897217.,.499418867707325519426,-50,125, + 7893690402536394.,6091816399549975.,-.499998845941949832529,-50,127, + 7893690402538048.,6091816399423237.,.499830438881207107923,-50,127, + 7893690402539044.,6091816399346919.,.451361303865081627264,-50,127, + 7893690402539060.,6091816399345693.,.458614819462205916328,-50,127, + 7893690402539148.,6091816399338950.,.498509159613201073949,-50,127, + 7893690402539702.,6091816399296500.,.499662334359144439409,-50,127, + 7917520715807517.,4512080498729016.,.494508855582243384870,-50,127, + 7917520715807530.,4512080498728277.,-.494253625112403945424,-50,127, + 7917520715807787.,4512080498713647.,.497134281209519904718,-50,127, + 7917520715808057.,4512080498698278.,.499759758672492900414,-50,127, + 7917520715809214.,4512080498632419.,.499899891677107039252,-50,127, + 7917520715810371.,4512080498566561.,-.499959023469125866151,-50,127, + 7917520715817223.,4512080498176530.,-.499968282762981056052,-50,127, + 8200163447686799.,7671612715839677.,-.499905126415628171692,-50,133, + 8200163447696889.,7671612714828953.,.499983893345553632827,-50,133, + 8200163447697662.,7671612714751522.,-.499920059697567265160,-50,133, + 8200163447699044.,7671612714613086.,-.494571769071892862323,-50,133, + 8200163447699056.,7671612714611883.,.456270629240445835381,-50,133, + 8200163447699085.,7671612714608979.,-.495860240734283303379,-50,133, + 8200163447699208.,7671612714596658.,-.499725642650332138274,-50,133, + 8359365508441554.,7526253467343702.,-.499488299498339368502,-50,136, + 8359365508457393.,7526253465757480.,-.499897316264977039440,-50,136, + 8359365508469453.,7526253464549712.,-.497966215906541036417,-50,136, + 8359365508469494.,7526253464545605.,.491427078174579734369,-50,136, + 8359365508469501.,7526253464544904.,.465225933483496232475,-50,136, + 8359365508469644.,7526253464530584.,-.498597436754392335439,-50,136, + 8359365508470026.,7526253464492328.,-.499859733896817237925,-50,136, + 8359365508473232.,7526253464171258.,-.499974976548562136385,-50,136, + 8379044565899892.,5790617994422080.,.499990454103630805722,-50,136, + 8379044565901401.,5790617994305540.,.499945912874064011327,-50,136, + 8379044565902049.,5790617994255495.,.489987141491822194330,-50,136, + 8379044565902062.,5790617994254492.,-.499410175152419782336,-50,136, + 8379044565923188.,5790617992622932.,-.499775389308284697752,-50,136, + 8394569592508004.,4706723138943780.,-.498480878731992532960,-50,136, + 8394569592560178.,4706723135662648.,-.499962864484696456637,-50,136, + 8394569592564232.,4706723135407698.,.499978579966800941775,-50,136, + 8394569592568286.,4706723135152749.,.499933713235385732093,-50,136, + 8394569592568304.,4706723135151618.,-.488719637493474471986,-50,136, + 8394569592568313.,4706723135151052.,-.483046312756705926218,-50,136, + 8409584416404682.,7700953958105961.,.499808886967942288574,-50,137, + 8409584416405155.,7700953958057206.,.480206593457372695877,-50,137, + 8409584416405168.,7700953958055866.,.490238670049041239797,-50,137, + 8409584416405181.,7700953958054527.,-.499729253128163652300,-50,137, + 8409584416413454.,7700953957201777.,.499961587622044831647,-50,137, + 8409584416420033.,7700953956523640.,-.499854826386997819780,-50,137, + 8521610052614201.,6809885195588902.,-.498739308528845288545,-50,139, + 8521610052659341.,6809885191420547.,-.473069652863573667099,-50,139, + 8521610052659344.,6809885191420269.,.498465145626691892188,-50,139, + 8521610052659379.,6809885191417037.,.499704462172070416266,-50,139, + 8521610052660187.,6809885191342424.,.499743964105226000100,-50,139, + 8521610052665035.,6809885190894746.,.499997997181219808829,-50,139, + 8521610052665843.,6809885190820134.,-.499956827059937920227,-50,139, + 8632558864846007.,5992809932082270.,-.499988047706820401356,-50,141, + 8632558864851277.,5992809931648529.,.499550176992122233770,-50,141, + 8632558864854439.,5992809931388285.,.499288055276321513221,-50,141, + 8632558864854597.,5992809931375282.,-.470364217205902350653,-50,141, + 8632558864854607.,5992809931374458.,.493581842439357996893,-50,141, + 8632558864869139.,5992809930178423.,-.499885838348412461499,-50,141, + 8716295061366351.,7548569515087275.,-.499999955623335952331,-50,143, + 8716295061366979.,7548569515021548.,.499423617993785479884,-50,143, + 8716295061367293.,7548569514988685.,.499135617660587932232,-50,143, + 8716295061367422.,7548569514975184.,.457616066291771215009,-50,143, + 8716295061367428.,7548569514974557.,-.497803447142481865583,-50,143, + 8788813969549525.,5501005728491932.,-.499743293064051952043,-50,144, + 8788813969569658.,5501005726943811.,.499946477012672989796,-50,144, + 8788813969571490.,5501005726802941.,-.499911290457056363501,-50,144, + 8788813969572107.,5501005726755497.,-.499316730813543751922,-50,144, + 8788813969572202.,5501005726748192.,-.491121422198641016806,-50,144, + 8788813969572278.,5501005726742348.,-.484565168378261668322,-50,144, + 8788813969572705.,5501005726709513.,.499639161669722038196,-50,144, + 8788813969618467.,5501005723190661.,-.498862661869786055266,-50,144, + 8981003300553026.,5824822577224447.,-.499778575680608549219,-50,148, + 8981003300554868.,5824822577071240.,.498699011278330865941,-50,148, + 8981003300554891.,5824822577069328.,-.496976867625309345975,-50,148, + 8981003300554897.,5824822577068828.,.460672903198012461754,-50,148, + 8981003300555104.,5824822577051611.,.499590022583945529700,-50,148, + 8981003300558575.,5824822576762915.,.499990402303516654605,-50,148, + 8981003300566438.,5824822576108921.,-.499914390230722498536,-50,148, + 8981003300604596.,5824822572935178.,-.498544748030998799992,-50,148, + 4641764318652735.,4616002678650556.,-.498861207822999809604,-49,154, + 4641764318661234.,4616002677492993.,-.499543990268061355000,-49,154, + 4641764318676106.,4616002675467427.,.499836953075456026434,-49,154, + 4641764318676111.,4616002675466747.,-.499692423499440634791,-49,154, + 4641764318676371.,4616002675431335.,-.475219867945714062733,-49,154, + 4641764318676596.,4616002675400690.,-.454041477177318372052,-49,154, + 4641764318676601.,4616002675400009.,-.453570843977223313680,-49,154, + 4641764318678232.,4616002675177866.,.499955028907418333516,-49,154, + 4730651525754977.,5231259229602121.,-.498379806666220431483,-49,158, + 4730651525780585.,5231259225574805.,-.499870209304678543885,-49,158, + 4730651525781242.,5231259225471479.,.499663459479683235015,-49,158, + 4730651525781257.,5231259225469120.,.481387996129289988092,-49,158, + 4730651525781268.,5231259225467391.,-.465347342989588923527,-49,158, + 4730651525785072.,5231259224869144.,-.499970547691732293920,-49,158, + 4805236415165550.,8736871727594735.,-.497846313826348246125,-49,162, + 4805236415186133.,8736871722104377.,-.499941778691112436224,-49,162, + 4805236415188260.,8736871721537015.,.499891296694551344621,-49,162, + 4805236415188489.,8736871721475931.,.499405361398459502906,-49,162, + 4805236415188555.,8736871721458327.,-.496367798848335683841,-49,162, + 4805236415188609.,8736871721443922.,.416181459885514581273,-49,162, + 4805236415188621.,8736871721440722.,-.492140923859257475407,-49,162, + 4805236415200564.,8736871718255018.,-.499415874833629327830,-49,162, + 4842461281703661.,5583725951452332.,-.482948801163174952991,-49,163, + 4842461281779555.,5583725938415418.,-.499926649457653690190,-49,163, + 4842461281784022.,5583725937648085.,.499620999564516626758,-49,163, + 4842461281784085.,5583725937637263.,.490213085542431484645,-49,163, + 4842461281784238.,5583725937610981.,.467365381089874441445,-49,163, + 4842461281784247.,5583725937609435.,.466021402301956473224,-49,163, + 4842461281785508.,5583725937392823.,.499941466755637111631,-49,163, + 4914345661836762.,4814556991410746.,.443805951581089512954,-49,166, + 4914345661836783.,4814556991407590.,.451659409416027155468,-49,166, + 4914345661836902.,4814556991389706.,.496162375972901618967,-49,166, + 4914345661836909.,4814556991388654.,.498780199590541589778,-49,166, + 4914345661865941.,4814556987025571.,-.499161467670127866517,-49,166, + 4914345662249851.,4814556929329526.,-.102488001602646794397,-49,166, + 4914345662311735.,4814556920029268.,.025745156161246129480,-49,166, + 4936345526387713.,4838248002632045.,-.499941932219081631125,-49,167, + 4936345526393018.,4838248001827317.,-.477149023737590316869,-49,167, + 4936345526393109.,4838248001813513.,-.482034922007748649803,-49,167, + 4936345526393434.,4838248001764213.,-.499484239234320481190,-49,167, + 4936345526393447.,4838248001762240.,.499817798458825010347,-49,167, + 4936345526433559.,4838247995677557.,-.496122653907658546335,-49,167, + 4953584815689336.,5630897677118958.,-.496293339998034780560,-49,168, + 4953584815720769.,5630897671550511.,-.499921745074334683116,-49,168, + 4953584815725792.,5630897670660672.,-.499803621456415685670,-49,168, + 4953584815725923.,5630897670637464.,.470736865323008387574,-49,168, + 4953584815725936.,5630897670635161.,.483080582935132476087,-49,168, + 4953584815725949.,5630897670632858.,.495424301483190052126,-49,168, + 4953584815726845.,5630897670474130.,-.499960226387575425546,-49,168, + 5223307858355047.,7578250120822662.,-.485196905819508546253,-49,181, + 5223307858414757.,7578250105821020.,.499804685799585385860,-49,181, + 5223307858414844.,7578250105799162.,.473225912428521551150,-49,181, + 5223307858414848.,7578250105798158.,-.493513340012275315544,-49,181, + 5223307858414877.,7578250105790871.,.497627083754816102293,-49,181, + 5223307858415208.,7578250105707710.,.499954482943294692126,-49,181, + 5223307858422093.,7578250103977912.,-.499766845954058613208,-49,181, + 5250766016553846.,6084494153370362.,-.499942909582670466335,-49,182, + 5250766016554483.,6084494153241198.,.497166114795152629614,-49,182, + 5250766016554513.,6084494153235115.,.467202713780190832103,-49,182, + 5250766016554526.,6084494153232479.,.487551908551698788362,-49,182, + 5250766016554681.,6084494153201050.,.499407779848651619223,-49,182, + 5250766016554780.,6084494153180977.,-.499471288843594971396,-49,182, + 5250766016560087.,6084494152104889.,-.499892253392722733341,-49,182, + 5306702990657940.,7472647227777259.,-.499475955006012149825,-49,185, + 5306702990658095.,7472647227738252.,.483763125202064258601,-49,185, + 5306702990658098.,7472647227737498.,-.471399987377160942292,-49,185, + 5306702990658118.,7472647227732464.,.494179264033069006456,-49,185, + 5306702990658899.,7472647227535925.,-.499948332256297379560,-49,185, + 5306702990661107.,7472647226980278.,-.499963713231320242210,-49,185, + 5341002421907607.,4690896245896029.,.499858171445664208576,-49,186, + 5341002421907833.,4690896245860099.,.498040483318559770937,-49,186, + 5341002421907943.,4690896245842611.,.444058521755079064988,-49,186, + 5341002421907946.,4690896245842134.,.497131741893470940561,-49,186, + 5341002421908681.,4690896245725283.,-.499927870832161409653,-49,186, + 5341002421913090.,4690896245024330.,-.499915854806474653825,-49,186, + 5341002421931800.,4690896242049771.,-.498479077848615256724,-49,186, + 5392915335957219.,6405721128569842.,-.499878125107805317557,-49,189, + 5392915335961479.,6405721127636101.,-.499771568652818708703,-49,189, + 5392915335962899.,6405721127324854.,-.499705965698927630367,-49,189, + 5392915335962915.,6405721127321346.,.491844154962839411649,-49,189, + 5459422009810026.,5191664249107230.,-.498603298918378602901,-49,192, + 5459422009831276.,5191664245286190.,-.495400277347638707028,-49,192, + 5459422009831335.,5191664245275580.,.499436039597555520178,-49,192, + 5459422009831716.,5191664245207071.,.499989724242435413186,-49,192, + 5591478951871710.,6491766576909038.,-.483998871370174195370,-49,199, + 5591478951883803.,6491766574124918.,-.489547541795579871508,-49,199, + 5591478951932175.,6491766562988438.,-.499861603132271048914,-49,199, + 5591478951934465.,6491766562461221.,-.468372797698373706218,-49,199, + 5591478951934474.,6491766562459148.,.499873312221565008058,-49,199, + 5609493202203652.,6846932307381228.,-.498081539507828656858,-49,200, + 5609493202208583.,6846932306180056.,-.498883082952675141568,-49,200, + 5609493202223376.,6846932302576539.,.499970358721733718590,-49,200, + 5609493202223829.,6846932302466191.,-.499426577122464808514,-49,200, + 5609493202224735.,6846932302245493.,-.498215139943158533101,-49,200, + 5609493202224740.,6846932302244275.,-.478340884998585135231,-49,200, + 5704155893657329.,7341515323769764.,-.498948739015416982581,-49,205, + 5704155893672179.,7341515319826246.,-.445191743175071834181,-49,205, + 5704155893672206.,7341515319819076.,-.477819355967036745618,-49,205, + 5704155893672224.,7341515319814296.,-.499571093956713553921,-49,205, + 5704155893673052.,7341515319594414.,.499852306706486348481,-49,205, + 5704155893674523.,7341515319203781.,-.499948168490616667050,-49,205, + 5723614949499519.,7254570616231092.,-.482702997270818890111,-49,206, + 5723614949559028.,7254570600562461.,.499866769276164363683,-49,206, + 5723614949559822.,7254570600353402.,.496685903064191498417,-49,206, + 5723614949559832.,7254570600350770.,-.488240769864443110069,-49,206, + 5723614949559956.,7254570600318120.,.498668564834786596461,-49,206, + 5723614949560023.,7254570600300479.,.499659959759898940515,-49,206, + 5723614949563075.,7254570599496893.,-.499910634534560626693,-49,206, + 5723614949568117.,7254570598169342.,-.499662486676358399266,-49,206, + 5764318435744994.,6589148509207714.,-.499241261894308722794,-49,208, + 5764318435758025.,6589148506069429.,-.498786895461585104460,-49,208, + 5764318435758114.,6589148506047994.,.431311108710477173189,-49,208, + 5764318435758150.,6589148506039324.,.470451894155216820511,-49,208, + 5764318435758174.,6589148506033544.,.496545757426287009170,-49,208, + 5764318435758484.,6589148505958887.,-.499741388432774946346,-49,208, + 5764318435759557.,6589148505700474.,-.499786847659513427131,-49,208, + 5764318435763849.,6589148504666822.,-.499867816785916736505,-49,208, + 5770212395630281.,5311593057209201.,.499885956015905600985,-49,208, + 5770212395630574.,5311593057152262.,-.499581568021016019679,-49,208, + 5770212395630607.,5311593057145848.,.462935779624124221205,-49,208, + 5770212395630652.,5311593057137103.,.411823084287142188902,-49,208, + 5770212395634096.,5311593056467816.,-.499959348154516754004,-49,208, + 5772999759848418.,4796500149241846.,-.499449940796124979909,-49,208, + 5772999759861106.,4796500147014177.,.499533557737579066904,-49,208, + 5772999759861312.,4796500146978009.,.497633998148156254126,-49,208, + 5772999759861518.,4796500146941841.,.495734710004890266857,-49,208, + 5772999759861532.,4796500146939383.,.476188166292521108639,-49,208, + 5772999759861567.,4796500146933238.,.427321812496683505674,-49,208, + 5772999759863152.,4796500146654956.,-.499903425695865737939,-49,208, + 5772999759866324.,4796500146098039.,-.499955137841538577814,-49,208, + 5774786818331507.,8985476322025521.,-.498036841926643816304,-49,209, + 5774786818349172.,8985476316213586.,-.499758456666790004982,-49,209, + 5774786818349611.,8985476316069151.,-.227463754774488261764,-49,209, + 5774786818349642.,8985476316058952.,-.490695704420677584057,-49,209, + 5774786818349643.,8985476316058623.,-.499187057443224470865,-49,209, + 5774786818350703.,8985476315709873.,.499985481215795168557,-49,209, + 5774786818373432.,8985476308231840.,-.496591186931056448568,-49,209, + 5807763702012943.,5354156026571670.,-.498446427474613479042,-49,210, + 5807763702012956.,5354156026569106.,.490226459309647905036,-49,210, + 5807763702013473.,5354156026467178.,-.498704668560126548720,-49,210, + 5807763702016123.,5354156025944718.,-.499965426635548318275,-49,210, + 5964587869600074.,7879352128895663.,-.494192412503544574242,-49,219, + 5964587869612434.,7879352125213584.,-.497811344243350262920,-49,219, + 5964587869631998.,7879352119385413.,-.499714145271634933412,-49,219, + 5964587869632245.,7879352119311831.,-.499148475488080370127,-49,219, + 5964587869632255.,7879352119308851.,.472534359560420290289,-49,219, + 5964587869633552.,7879352118922471.,.499807569890041038511,-49,219, + 5964587869637154.,7879352117849426.,-.499909911040694203196,-49,219, + 5990419976342045.,5921768412589785.,.499808729385470181244,-49,220, + 5990419976342409.,5921768412507939.,.498560121404840916020,-49,220, + 5990419976342436.,5921768412501869.,-.496037944756872125955,-49,220, + 5990419976342456.,5921768412497371.,.470926454674124571332,-49,220, + 5990419976342463.,5921768412495798.,-.490636004721730625401,-49,220, + 5990419976345193.,5921768411881953.,-.499963411245786364460,-49,220, + 6050296687270313.,4822401626183364.,.499505121824762245883,-49,223, + 6050296687270326.,4822401626180961.,-.496956821124788478710,-49,223, + 6050296687270391.,4822401626168941.,-.479266517973263506654,-49,223, + 6050296687270404.,4822401626166537.,-.475728453763102793243,-49,223, + 6050296687270598.,4822401626130662.,-.499852584544169974284,-49,223, + 6050296687276816.,4822401624980812.,-.499731647562937473456,-49,223, + 6050296687304797.,4822401619806487.,-.495809084523583302325,-49,223, + 6050296687307906.,4822401619231562.,-.495031997052320648422,-49,223, + 6221303531759657.,6393718383363886.,-.499893698218476689060,-49,233, + 6221303531763999.,6393718382269488.,-.499667627956595984277,-49,233, + 6221303531764141.,6393718382233697.,-.498275232400779517994,-49,233, + 6221303531764243.,6393718382207987.,.474556048115442290500,-49,233, + 6221303531764263.,6393718382202946.,.488836703426970328885,-49,233, + 6221303531764283.,6393718382197906.,-.496882637303123542909,-49,233, + 6221303531765399.,6393718381916618.,.499984422878564816775,-49,233, + 6230106661715219.,4517870723394610.,-.493504824289443445308,-49,233, + 6230106661733517.,4517870720131148.,-.497835421384994339784,-49,233, + 6230106661757959.,4517870715771898.,.499933282661336412926,-49,233, + 6230106661758227.,4517870715724100.,.499277424907517240731,-49,233, + 6230106661758247.,4517870715720533.,.484303127360135266899,-49,233, + 6230106661760964.,4517870715235955.,-.499929121195056773130,-49,233, + 6396963031328786.,5841937844153325.,-.497579628610377521504,-49,243, + 6396963031350520.,5841937839007836.,.499959558522000242972,-49,243, + 6396963031350818.,5841937838937286.,-.499582698127093770293,-49,243, + 6396963031351263.,5841937838831932.,.497746720145222976609,-49,243, + 6396963031351283.,5841937838827198.,-.468665396388224925446,-49,243, + 6396963031351331.,5841937838815834.,-.388054460470413445157,-49,243, + 6396963031351414.,5841937838796184.,-.498664665152361388392,-49,243, + 6396963031385354.,5841937830760946.,-.494475842016380066825,-49,243, + 6402158253074083.,4732426101017474.,-.498531921113915775080,-49,243, + 6402158253093050.,4732426097376963.,-.499957009874276156176,-49,243, + 6402158253093379.,4732426097313814.,.499884716989557701145,-49,243, + 6402158253093544.,4732426097282145.,-.469799207282992376378,-49,243, + 6402158253093560.,4732426097279074.,-.497162485680214389448,-49,243, + 6402158253093708.,4732426097250666.,.499727283259886124506,-49,243, + 6402158253099482.,4732426096142410.,-.499859551200100982818,-49,243, + 6499233963074382.,5734322226075418.,-.493246185848273121541,-49,249, + 6499233963077622.,5734322225310537.,-.494378284197802413867,-49,249, + 6499233963106782.,5734322218426608.,-.499993086887918363286,-49,249, + 6499233963111716.,5734322217261816.,.495550296441455032988,-49,249, + 6499233963111729.,5734322217258748.,-.471425058197386682977,-49,249, + 6499233963111743.,5734322217255442.,.487216869406219669928,-49,249, + 6499233963111810.,5734322217239626.,-.496425307930785152934,-49,249, + 6499233963113020.,5734322216953976.,-.499507895461266277848,-49,249, + 6499233963113262.,5734322216896845.,.499877288225066517072,-49,249, + 6607157442431528.,8321269799220373.,-.490322191695328275469,-49,256, + 6607157442447086.,8321269793802725.,-.496795715841185890971,-49,256, + 6607157442467571.,8321269786669383.,.499912433432856477499,-49,256, + 6607157442468029.,8321269786509898.,-.474121306643367906748,-49,256, + 6607157442468038.,8321269786506764.,-.477977834341010531721,-49,256, + 6607157442468083.,8321269786491094.,-.497260455187607383328,-49,256, + 6607157442468092.,8321269786487959.,.498883024171396501000,-49,256, + 6607157442468348.,8321269786398815.,-.499701959325888907808,-49,256, + 6607157442470423.,8321269785676253.,-.499916222298604087020,-49,256, + 6686944731964873.,4629756999398065.,-.494808804407162389132,-49,260, + 6686944731999651.,4629756992579286.,.499984017315138412646,-49,260, + 6686944732000137.,4629756992483998.,.498716984652688865587,-49,260, + 6686944732000304.,4629756992451256.,-.497602717397385518070,-49,260, + 6755186601594032.,8114213820740499.,-.499944094010465394347,-49,265, + 6755186601596214.,8114213819983100.,.499937173765041419042,-49,265, + 6755186601596840.,8114213819765808.,.498082935627665004514,-49,265, + 6755186601596876.,8114213819753312.,.472417373023842260027,-49,265, + 6755186601596894.,8114213819747064.,.459584598913662106519,-49,265, + 6755186601596992.,8114213819713048.,-.499171531575507520997,-49,265, + 6755186601597305.,8114213819604401.,.499904227964606984137,-49,265, + 6755186601626449.,8114213809488175.,-.493539585944226011578,-49,265, + 6798270522595899.,5109082290573608.,.495851674517924389001,-49,267, + 6798270522595916.,5109082290569869.,.481450156804061749190,-49,267, + 6798270522596106.,5109082290528080.,.496962791447268859622,-49,267, + 6798270522596658.,5109082290406672.,.499927746658179281002,-49,267, + 6798270522599366.,5109082289811070.,-.499977886526678845166,-49,267, + 6798270522602074.,5109082289215467.,-.499814321574971643677,-49,267, + 6798270522626377.,5109082283870216.,-.495618492405630831790,-49,267, + 6822709264340236.,7123271024750276.,.499882187553016565545,-49,269, + 6822709264341363.,7123271024403447.,-.499764597637937184265,-49,269, + 6822709264341426.,7123271024384058.,.487833283744695427905,-49,269, + 6822709264341430.,7123271024382828.,-.497081134709379971142,-49,269, + 6822709264346202.,7123271022914263.,-.499831351173993652267,-49,269, + 6822709264428930.,7123270997455033.,-.449257022277504232031,-49,269, + 6971295049084114.,5545093609485945.,-.456495837989795766651,-49,278, + 6971295049173521.,5545093587603847.,.499892035324824517236,-49,278, + 6971295049173857.,5545093587521613.,-.499516726340370379437,-49,278, + 6971295049174003.,5545093587485879.,.435264369187871142411,-49,278, + 6971295049174023.,5545093587480984.,.494823441244136277480,-49,278, + 6971295049175284.,5545093587172359.,-.499968368887672003448,-49,278, + 6984903824236531.,6078875561817134.,.499837980237561333762,-49,279, + 6984903824237081.,6078875561669279.,.498151039758387260346,-49,279, + 6984903824237139.,6078875561653688.,-.483844828659228952301,-49,279, + 6984903824242419.,6078875560234280.,-.499853440097380483861,-49,279, + 6984903824325511.,6078875537896884.,-.453729548128395988525,-49,279, + 7038821472157945.,8880464479008878.,-.494718362350487068845,-49,283, + 7038821472182084.,8880464469456238.,.499959942143460224909,-49,283, + 7038821472182442.,8880464469314565.,.491051352193593618091,-49,283, + 7038821472182457.,8880464469308629.,.471125063803147763929,-49,283, + 7038821472182491.,8880464469295174.,.492625491428120798999,-49,283, + 7038821472182687.,8880464469217610.,.498922470438306925499,-49,283, + 7038821472183991.,8880464468701573.,-.499982476934503469640,-49,283, + 7113392074710895.,5032449219119110.,-.451446135146222990477,-49,287, + 7113392074715387.,5032449218101138.,-.455789416020496333992,-49,287, + 7113392074793997.,5032449200286628.,-.498567428973591721277,-49,287, + 7113392074808596.,5032449196978219.,-.499590194105069741512,-49,287, + 7144659810207720.,4909105302660280.,-.499987229266040505140,-49,289, + 7144659810208282.,4909105302535499.,-.499675531375702011632,-49,289, + 7144659810208611.,4909105302462451.,-.451448888590562458726,-49,289, + 7144659810208613.,4909105302462006.,.488054012247659074678,-49,289, + 7144659810208646.,4909105302454679.,.489851881859755524125,-49,289, + 7144659810208811.,4909105302418044.,.498841393452430250636,-49,289, + 7144659810261673.,4909105290681082.,-.485893699970560457875,-49,289, + 7220633304539311.,4965536289337372.,-.499945597706891755453,-49,294, + 7220633304541362.,4965536288871884.,.499915298734504584610,-49,294, + 7220633304541795.,4965536288773613.,-.499620939463249403342,-49,294, + 7220633304541909.,4965536288747740.,-.497189049235333445096,-49,294, + 7220633304541932.,4965536288742520.,-.487926458597168468162,-49,294, + 7220633304541954.,4965536288737526.,.477455154958663393452,-49,294, + 7220633304558636.,4965536284951445.,-.498554934079015126424,-49,294, + 7250356954489191.,5091024646070698.,.499968631539692492892,-49,296, + 7250356954489966.,5091024645889624.,.499529665701960500096,-49,296, + 7250356954490039.,5091024645872568.,.496908003687862152563,-49,296, + 7250356954502922.,5091024642862535.,-.499115847509847057578,-49,296, + 7417592637392967.,8866288373838710.,-.359758983595407637065,-49,308, + 7417592637512837.,8866288323944790.,.499928390238062475720,-49,308, + 7417592637512944.,8866288323900254.,-.492922378802426293159,-49,308, + 7417592637512974.,8866288323887766.,.499736324124180368065,-49,308, + 7417592637518013.,8866288321790366.,-.499774696974726443587,-49,308, + 7440328550666467.,6088641209936345.,-.498300590286852180898,-49,309, + 7440328550681660.,6088641205580416.,-.499968215434367114099,-49,309, + 7440328550682072.,6088641205462292.,.499437460617984798247,-49,309, + 7440328550682341.,6088641205385169.,-.498522163448465278444,-49,309, + 7440328550682375.,6088641205375420.,.486865908802024983712,-49,309, + 7440328550682382.,6088641205373414.,-.457318897920443462479,-49,309, + 7440328550682484.,6088641205344169.,.498845421817746653042,-49,309, + 7440328550700275.,6088641200243378.,-.497841108835394071312,-49,309, + 7451945480030496.,7043612391247191.,-.491959954063923425904,-49,310, + 7451945480048722.,7043612385192703.,-.498482156266559282482,-49,310, + 7451945480057835.,7043612382165459.,-.499797179801904643382,-49,310, + 7451945480061669.,7043612380891843.,.499927570374834888028,-49,310, + 7451945480062576.,7043612380590548.,-.484715328022482420894,-49,310, + 7451945480062581.,7043612380588887.,-.432811449506063274576,-49,310, + 7451945480062613.,7043612380578256.,.499373382247445837350,-49,310, + 7451945480063114.,7043612380411830.,-.499855759771226358463,-49,310, + 7650916432039129.,8565740390476948.,-.499318493926344458853,-49,324, + 7650916432039213.,8565740390442112.,.498579164887457027915,-49,324, + 7650916432039381.,8565740390372442.,.494374906372939239795,-49,324, + 7650916432039391.,8565740390368295.,.470315146901341550240,-49,324, + 7650916432040584.,8565740389873556.,-.499999789392291076539,-49,324, + 7650916432044865.,8565740388098215.,-.499696640657343742483,-49,324, + 7741374642966824.,6695604079688854.,-.499380879682164605316,-49,330, + 7741374642974138.,6695604077290053.,.499742444530512133833,-49,330, + 7741374642975357.,6695604076890253.,.499679666056209045631,-49,330, + 7741374642975700.,6695604076777759.,-.496231983386568359459,-49,330, + 7741374642975702.,6695604076777103.,-.443730004969039041549,-49,330, + 7741374642975738.,6695604076765296.,-.498694382493684490131,-49,330, + 7741374642975776.,6695604076752832.,.498843241536611573829,-49,330, + 7741374643035050.,6695604057312517.,-.471803262173275513691,-49,330, + 7784172485094783.,6545267940112511.,.454574883386878276325,-49,333, + 7784172485094799.,6545267940107353.,.486298197183990577733,-49,333, + 7784172485094807.,6545267940104775.,-.497840144397141044287,-49,333, + 7784172485095815.,6545267939779823.,-.499263074274305262581,-49,333, + 7784172485096319.,6545267939617347.,-.499968505093657562779,-49,333, + 7784172485129859.,6545267928804956.,-.490252808976132111545,-49,333, + 7805573813389664.,4555666505254003.,-.499950872914641997726,-49,334, + 7805573813389767.,4555666505230828.,.198808809431791186638,-49,334, + 7805573813389810.,4555666505221153.,.490524051415087756839,-49,334, + 7805573813389811.,4555666505220928.,.497308127053878266299,-49,334, + 7805573813397329.,4555666503529430.,-.499697966184331168174,-49,334, + 7805573813441108.,4555666493679452.,-.485381494504713543931,-49,334, + 7815809990519179.,5493961148716246.,-.468249501372490105812,-49,335, + 7815809990519182.,5493961148715430.,.469880686702762425382,-49,335, + 7815809990519294.,5493961148685001.,.493407794480606953417,-49,335, + 7815809990519326.,5493961148676308.,-.499870143850066027870,-49,335, + 7815809990520813.,5493961148272309.,-.499989206000049410339,-49,335, + 7815809990549971.,5493961140350451.,-.493646705993098937228,-49,335, + 7865130177589557.,7611048991955875.,-.498382672371049862776,-49,339, + 7865130177592257.,7611048990933265.,-.499503660588651718768,-49,339, + 7865130177602247.,7611048987149607.,.497540308324275672704,-49,339, + 7865130177602697.,7611048986979172.,.497451313420942684888,-49,339, + 7865130177602705.,7611048986976143.,-.458105789825836431896,-49,339, + 7934343210618824.,7660281682326172.,.499726060180703316111,-49,344, + 7934343210619044.,7660281682241575.,.461350157197680044219,-49,344, + 7934343210619059.,7660281682235807.,.481460925021385288773,-49,344, + 7934343210619074.,7660281682230040.,-.498428302822630644904,-49,344, + 7934343210620465.,7660281681695155.,.499862796968905904601,-49,344, + 7934343210622653.,7660281680853800.,-.499874231333960336539,-49,344, + 8065264376389498.,5198758930208451.,-.499583875343981798626,-49,353, + 8065264376389664.,5198758930164419.,-.494162696716790206574,-49,353, + 8065264376390589.,5198758929919059.,.499907912338966638081,-49,353, + 8065264376394281.,5198758928939746.,-.499859516764487442336,-49,353, + 8182153544666602.,6552011711466293.,-.499796464627199681294,-49,362, + 8182153544669347.,6552011710535406.,-.499870637340641578650,-49,362, + 8182153544670951.,6552011709991456.,-.499124304791763789437,-49,362, + 8182153544671075.,6552011709949405.,-.496570966608617765758,-49,362, + 8182153544671100.,6552011709940926.,.479750303542673068496,-49,362, + 8182153544671108.,6552011709938214.,-.487826887697452740942,-49,362, + 8182153544671290.,6552011709876493.,.499792314356070146621,-49,362, + 8182153544679525.,6552011707083833.,-.499358338022725914061,-49,362, + 8182153544718294.,6552011693936453.,-.480497454162348560705,-49,362, + 8279017098042770.,5412832947828746.,.499956264351732915137,-49,369, + 8279017098043461.,5412832947632876.,-.499761257645337282147,-49,369, + 8279017098043574.,5412832947600844.,.497391253060183306514,-49,369, + 8279017098043587.,5412832947597160.,-.485237207029971449290,-49,369, + 8279017098056816.,5412832943847265.,-.498701417813058105449,-49,369, + 8302763666846112.,6232185720104612.,.499787712057450079488,-49,371, + 8302763666846262.,6232185720055517.,.491086280133385836345,-49,371, + 8302763666846312.,6232185720039152.,.488185888574387987389,-49,371, + 8302763666853004.,6232185717848861.,-.499615639833555758892,-49,371, + 8325361018993473.,7596236041647439.,-.496686451609300102548,-49,373, + 8325361019003876.,7596236037486055.,-.499443293334918104688,-49,373, + 8325361019011226.,7596236034545924.,.499018865579484762666,-49,373, + 8325361019011339.,7596236034500723.,-.499635371143998382832,-49,373, + 8325361019012809.,7596236033912697.,-.499803200688710476654,-49,373, + 8325361019014279.,7596236033324671.,-.499925614392520211774,-49,373, + 8360130121069199.,4851077161141821.,-.488060654505495204291,-49,375, + 8360130121106822.,4851077151490780.,-.499854282330967863527,-49,375, + 8360130121111186.,4851077150371327.,.491299589807111892194,-49,375, + 8360130121111188.,4851077150370814.,.451882212540713236321,-49,375, + 8360130121111211.,4851077150364914.,.498582377868135986021,-49,375, + 8360130121111490.,4851077150293345.,.499858866576424868920,-49,375, + 8360130121120141.,4851077148074194.,-.499464584725799056549,-49,375, + 8448311516122150.,5719104458282300.,-.499972669854407989183,-49,382, + 8448311516123221.,5719104457955006.,.499993351720218853116,-49,382, + 8448311516123733.,5719104457798541.,.499050004054745101862,-49,382, + 8448311516123743.,5719104457795486.,-.457999628178976929127,-49,382, + 8537183040081300.,6185431763353909.,-.498263486514632337959,-49,389, + 8537183040086210.,6185431761714091.,-.499332936265976317079,-49,389, + 8537183040095145.,6185431758730023.,-.489982821390873249820,-49,389, + 8537183040095185.,6185431758716664.,-.496093301145863128491,-49,389, + 8537183040095225.,6185431758703304.,.497796247888980501412,-49,389, + 8537183040096030.,6185431758434454.,.499829542079114196536,-49,389, + 8537183040145452.,6185431741928735.,-.477229443559811347470,-49,389, + 8567694211492491.,4750001570572476.,-.499068724359996583270,-49,391, + 8567694211503885.,4750001567639848.,.499553998875628896817,-49,391, + 8567694211504018.,4750001567605617.,-.498959396721865567722,-49,391, + 8567694211504065.,4750001567593519.,.479009612573555919086,-49,391, + 8567694211504078.,4750001567590173.,.494192535465744055397,-49,391, + 8567694211504610.,4750001567453246.,-.499858140986626929259,-49,391, + 8567694211511328.,4750001565724144.,-.499580217791915659043,-49,391, + 8590312325615296.,5569158737174237.,-.485048384756804328193,-49,393, + 8590312325652524.,5569158725910402.,-.499744529451322267996,-49,393, + 8590312325657876.,5569158724291082.,-.498913834500903962777,-49,393, + 8590312325657986.,5569158724257800.,-.486933687144898597672,-49,393, + 8590312325658002.,5569158724252958.,.496627078095374189380,-49,393, + 8590312325658364.,5569158724143430.,.499690513898044803139,-49,393, + 8590312325659702.,5569158723738600.,.499982309886052396484,-49,393, + 8647914104601643.,7714636801792133.,-.425399631114822738112,-49,398, + 8647914104620222.,7714636793953236.,-.455829148179541910196,-49,398, + 8647914104679337.,7714636769011291.,-.499770564655926088610,-49,398, + 8647914104682109.,7714636767841721.,.498367887114369027255,-49,398, + 8647914104682135.,7714636767830752.,-.485054219121786122579,-49,398, + 8647914104682715.,7714636767586037.,-.499851003806214316194,-49,398 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/exp.c b/src/regress/lib/libm/fpaccuracy/exp.c new file mode 100644 index 000000000..2229627bb --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/exp.c @@ -0,0 +1,1364 @@ +/* $OpenBSD: exp.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:32:24. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1333 +#define F exp +#define Fs "exp" +#define Fn fpaccuracy_exp + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -6225613602609743.,8423051462650133.,-.410297254906273462749,-43,1074, + -6225613602575316.,8423051495617087.,-.497917899324182239284,-43,1074, + -6225613602570271.,8423051500448128.,.499965334078705713073,-43,1074, + -6225613602569605.,8423051501085883.,.499298283715614504193,-43,1074, + -6225613602569161.,8423051501511053.,.498880410082727154502,-43,1074, + -6225613602569144.,8423051501527333.,-.469603631462838308799,-43,1074, + -6225613602565448.,8423051505066586.,-.499269435296894781025,-43,1074, + -6225572075955658.,8462910989913446.,-.498285784412160742036,-43,1074, + -6225572075950271.,8462910995096394.,.499811560931156897171,-43,1074, + -6225572075950123.,8462910995238788.,.494977655434360279143,-43,1074, + -6225572075950107.,8462910995254182.,.440401160509570128536,-43,1074, + -6225572075949868.,8462910995484130.,-.499831899330339056690,-43,1074, + -6225572075941586.,8462911003452421.,-.496015040305627177501,-43,1074, + -6225572075927514.,8462911016991396.,-.472084627991477637899,-43,1074, + -6225440769016885.,8590191883151953.,-.498938348936905893034,-43,1074, + -6225440769014024.,8590191885945982.,-.499967465093453672118,-43,1074, + -6225440769012836.,8590191887106173.,-.499778238155546900601,-43,1074, + -6225440769012569.,8590191887366922.,.497760603491180558326,-43,1074, + -6225440769012351.,8590191887579819.,.499502306115632326789,-43,1074, + -6225440769007114.,8590191892694231.,-.498355406349311103962,-43,1074, + -6224918910198348.,4557628269914661.,-.499912392024077890082,-43,1073, + -6224918910197231.,4557628270493426.,-.499932889429967666893,-43,1073, + -6224918910196950.,4557628270639023.,.499178269208320179302,-43,1073, + -6224918910196845.,4557628270693428.,.445466550685098982383,-43,1073, + -6224918910196817.,4557628270707936.,.431143535428479715614,-43,1073, + -6224918910153106.,4557628293356457.,-.443736026942263540080,-43,1073, + -6223856827675392.,5142540280647628.,-.492213751837026751802,-43,1073, + -6223856827666660.,5142540285752697.,-.498567317856660454711,-43,1073, + -6223856827660217.,5142540289519527.,-.499204452346445147218,-43,1073, + -6223856827660120.,5142540289576236.,.497702893778034076299,-43,1073, + -6223856827660084.,5142540289597284.,-.493135457819587694427,-43,1073, + -6223856827659890.,5142540289710704.,-.499318425244210959157,-43,1073, + -6223856827658255.,5142540290666589.,-.499781682949535416272,-43,1073, + -6223856827657928.,5142540290857766.,-.499853013133897537698,-43,1073, + -6220621644826602.,7428655471524307.,-.498154314224747460125,-43,1073, + -6220621644820654.,7428655476547632.,.499877757835557674738,-43,1073, + -6220621644820369.,7428655476788326.,.499532495662122646055,-43,1073, + -6220621644820356.,7428655476799306.,-.475921663652582252989,-43,1073, + -6220621644809043.,7428655486353591.,-.493840096813601523567,-43,1073, + -6220621644767977.,7428655521035485.,-.368288630439661052993,-43,1073, + -6220137504887566.,7848992829750301.,-.499879803194332475655,-43,1073, + -6220137504887349.,7848992829943935.,.496905312492492724147,-43,1073, + -6220137504887340.,7848992829951966.,.441472540276666186809,-43,1073, + -6220137504887187.,7848992830088492.,.499116669826091620949,-43,1073, + -6220137504883507.,7848992833372257.,-.499315594679024866167,-43,1073, + -6220137504873549.,7848992842258051.,-.490358710611843061386,-43,1073, + -6219171112931685.,8760484985733533.,-.481362090694699553130,-43,1073, + -6219171112915490.,8760485001862973.,-.499729325302333484762,-43,1073, + -6219171112913559.,8760485003786155.,.497283574070593588622,-43,1073, + -6219171112913538.,8760485003807070.,.485860348873510064867,-43,1073, + -6219171112913476.,8760485003868819.,.499753975338010199788,-43,1073, + -6219171112912251.,8760485005088861.,-.499839149875320922304,-43,1073, + -6219163119702158.,8768449475565398.,-.499972641525715710679,-43,1073, + -6219163119701506.,8768449476215348.,.454825859624410193851,-43,1073, + -6219163119701499.,8768449476222326.,.455874571184747000791,-43,1073, + -6219163119701296.,8768449476424688.,.486289622053942237461,-43,1073, + -6219163119701205.,8768449476515402.,.499925471211636209266,-43,1073, + -6219060534942154.,8871310485970782.,.499980455799837098762,-43,1073, + -6219060534941588.,8871310486541622.,.499346514788627504019,-43,1073, + -6219060534941305.,8871310486827042.,.499043318670078657874,-43,1073, + -6219060534941178.,8871310486955129.,-.494022621649466940688,-43,1073, + -6219060534938836.,8871310489317156.,-.499678775002908658758,-43,1073, + -6218325260221434.,4822374329857860.,-.498623017192125136334,-43,1072, + -6218325260215126.,4822374333316161.,-.499889953489465044011,-43,1072, + -6218325260215047.,4822374333359471.,.498683144453865133303,-43,1072, + -6218325260214810.,4822374333489404.,.494404772207936735299,-43,1072, + -6218325260214785.,4822374333503111.,-.493388100909887640306,-43,1072, + -6218325260210211.,4822374336010763.,-.499316608932387220747,-43,1072, + -6217363269311158.,5379697311763618.,-.495795542964005285771,-43,1072, + -6217363269306519.,5379697314600834.,-.498551829051448379384,-43,1072, + -6217363269301880.,5379697317438050.,-.499811786600589995432,-43,1072, + -6217363269300848.,5379697318069222.,-.499026360156923426954,-43,1072, + -6217363269300164.,5379697318487556.,.431767577095664043808,-43,1072, + -6217363269300134.,5379697318505904.,.455048757616637820216,-43,1072, + -6217363269300079.,5379697318539542.,.497731084433704480464,-43,1072, + -6217363269300074.,5379697318542601.,-.498388693607827551232,-43,1072, + -6215772516833801.,6446128574437619.,-.492725173458167583776,-43,1072, + -6215772516830689.,6446128576718217.,-.495801885020679455634,-43,1072, + -6215772516821353.,6446128583560010.,.499809143943489808542,-43,1072, + -6215772516821253.,6446128583633294.,.497230746265692750598,-43,1072, + -6215772516820653.,6446128584072998.,.481777856193348002061,-43,1072, + -6215772516820603.,6446128584109640.,.480491469210698411428,-43,1072, + -6215772516820597.,6446128584114038.,-.479662883230423988623,-43,1072, + -6215772516798038.,6446128600646175.,-.478797031411029247967,-43,1072, + -6211605928818977.,5175928609586308.,-.498308039474240291058,-43,1071, + -6211605928818915.,5175928609622790.,.468957685012762396189,-43,1071, + -6211605928818908.,5175928609626910.,-.486351007357198384862,-43,1071, + -6211605928818485.,5175928609875818.,-.499998762309030301174,-43,1071, + -6210711856169584.,5729699331845327.,-.498160847764904872068,-43,1071, + -6210711856162678.,5729699336343835.,.499112633606404463568,-43,1071, + -6210711856162586.,5729699336403764.,-.492211752307017620749,-43,1071, + -6210711856162517.,5729699336448710.,-.485704630405651671164,-43,1071, + -6210711856162512.,5729699336451966.,.471288652997452084361,-43,1071, + -6210711856162213.,5729699336646732.,.499490366137800606480,-43,1071, + -6210711856161748.,5729699336949629.,.499884111131186835647,-43,1071, + -6210711856158981.,5729699338752030.,-.499592298905047990506,-43,1071, + -6210711856097665.,5729699378692745.,-.344304777219392018139,-43,1071, + -6209843471805279.,6324221405092431.,-.475055447764516135054,-43,1071, + -6209843471805278.,6324221405093150.,-.494322851409986253321,-43,1071, + -6209843471805122.,6324221405205310.,.499963180868132647310,-43,1071, + -6209843471800399.,6324221408601057.,-.499012158696686352349,-43,1071, + -6209843471782026.,6324221421810890.,-.477895241178200635262,-43,1071, + -6209516723529581.,6563565044351787.,-.499738523161074369518,-43,1071, + -6209516723527392.,6563565045985198.,.498929410024161713665,-43,1071, + -6209516723526994.,6563565046282182.,.498730888720549156917,-43,1071, + -6209516723526905.,6563565046348593.,.493663208576217414744,-43,1071, + -6209516723526884.,6563565046364264.,-.496296483139695868099,-43,1071, + -6209516723508466.,6563565060107609.,-.485586925683580979444,-43,1071, + -6209516723476694.,6563565083815588.,-.393067429394684072097,-43,1071, + -6208536534405220.,7337282255477480.,-.486944771126434131052,-43,1071, + -6208536534389054.,7337282268962388.,-.499776535359041478428,-43,1071, + -6208536534388785.,7337282269186775.,-.499161844748165537830,-43,1071, + -6208536534388621.,7337282269323575.,.497498805857282115726,-43,1071, + -6208536534387545.,7337282270221124.,-.499957075746042471162,-43,1071, + -6208253758603785.,7576992823373769.,-.488569310377160941606,-43,1071, + -6208253758596529.,7576992829624119.,-.496786758570523197100,-43,1071, + -6208253758589273.,7576992835874469.,-.499848219958769140037,-43,1071, + -6208253758588630.,7576992836428352.,-.499595184553100127032,-43,1071, + -6208253758588504.,7576992836536888.,.449137215338462183056,-43,1071, + -6208253758588494.,7576992836545502.,.492687472398675736350,-43,1071, + -6208253758588447.,7576992836585988.,.497373811759366012681,-43,1071, + -6208086538086236.,7722415221479401.,-.499411265389655110580,-43,1071, + -6208086538083190.,7722415224153596.,.499802307009002506933,-43,1071, + -6208086538082841.,7722415224459997.,-.498915471355757981481,-43,1071, + -6208086538082762.,7722415224529354.,-.478566232367723911223,-43,1071, + -6208086538082746.,7722415224543401.,-.487103019501982312694,-43,1071, + -6208086538082730.,7722415224557448.,-.495639781084912090859,-43,1071, + -6208086538076162.,7722415230323738.,-.497822336079773564369,-43,1071, + -6207410768786836.,8339082866764784.,-.499772834541140210912,-43,1071, + -6207410768784948.,8339082868554690.,.498071700395700753829,-43,1071, + -6207410768784925.,8339082868576496.,-.490829307932360707055,-43,1071, + -6207410768784857.,8339082868640962.,.498507174830279073523,-43,1071, + -6207410768784584.,8339082868899778.,.499818953297052828365,-43,1071, + -6207410768773051.,8339082879833570.,-.492371872724256915144,-43,1071, + -6207410768731696.,8339082919039928.,-.347282691060118431998,-43,1071, + -6205618738951655.,5111721657845031.,-.499867252432780658580,-43,1070, + -6205618738950688.,5111721658406989.,-.499772450351838146860,-43,1070, + -6205618738950319.,5111721658621427.,.488904622717927505964,-43,1070, + -6205618738950282.,5111721658642930.,-.498680106784977837799,-43,1070, + -6205618738945292.,5111721661542796.,-.499143362487022558664,-43,1070, + -6205618738845012.,5111721719819061.,-.133681199744769297882,-43,1070, + -6203181044415121.,6744113497786229.,-.499252607019390733268,-43,1070, + -6203181044414259.,6744113498447139.,-.499699499530944262946,-43,1070, + -6203181044411242.,6744113500760323.,.499246423843163536206,-43,1070, + -6203181044411083.,6744113500882231.,.492252324350712635882,-43,1070, + -6203181044411076.,6744113500887599.,-.489187616807614255419,-43,1070, + -6203181044411055.,6744113500903700.,-.433507414655901469672,-43,1070, + -6203181044403537.,6744113506667878.,-.497524848919402052479,-43,1070, + -6203181044391953.,6744113515549527.,-.484100418007518162199,-43,1070, + -6201059875198657.,8583305283516990.,-.490720816165759213604,-43,1070, + -6201059875187159.,8583305294736840.,-.499911165294070694014,-43,1070, + -6201059875185982.,8583305295885367.,-.499676551970858074287,-43,1070, + -6201059875185914.,8583305295951722.,-.498808683801117499379,-43,1070, + -6201059875185731.,8583305296130295.,-.481764667224295953542,-43,1070, + -6201059875185710.,8583305296150787.,-.496202001466287748224,-43,1070, + -6199622102081305.,5053735986155837.,-.478793129051131864146,-43,1069, + -6199622102056273.,5053736000537803.,.499735051103122845903,-43,1069, + -6199622102055857.,5053736000776813.,.497806411455761166307,-43,1069, + -6199622102055822.,5053736000796923.,-.487932261453738853148,-43,1069, + -6199622102054239.,5053736001706425.,-.499972018308125102735,-43,1069, + -6199622102049050.,5053736004687730.,-.498492291901939756917,-43,1069, + -6199383910512114.,5192457102414389.,.499920123481733042101,-43,1069, + -6199383910511337.,5192457102873063.,.499679783060557347427,-43,1069, + -6199383910511025.,5192457103057241.,.476428653618046204005,-43,1069, + -6199383910511009.,5192457103066687.,-.499122510254270892188,-43,1069, + -6199383910507901.,5192457104901383.,-.499610289263584012900,-43,1069, + -6199383910492931.,5192457113738384.,-.489017685236646469894,-43,1069, + -6199360575552718.,5206250344090618.,-.490783845380598354586,-43,1069, + -6199360575536487.,5206250353697457.,-.499932971670015237432,-43,1069, + -6199360575536207.,5206250353863183.,.499017360529426345764,-43,1069, + -6199360575536173.,5206250353883307.,.491747402914868862057,-43,1069, + -6199360575536165.,5206250353888043.,-.451139634631028190090,-43,1069, + -6199360575534561.,5206250354837422.,-.499903669479432838009,-43,1069, + -6199342464823550.,5216980804149215.,-.450557525061884456014,-43,1069, + -6199342464790812.,5216980823566190.,-.498966941722195784141,-43,1069, + -6199342464785648.,5216980826628968.,.499934695851453948154,-43,1069, + -6199342464785501.,5216980826716155.,-.498327414404312667558,-43,1069, + -6199342464785256.,5216980826861465.,-.495427693609652138477,-43,1069, + -6197539792684951.,6403591081182095.,-.493096851796312526989,-43,1069, + -6197539792672268.,6403591090415370.,-.499740966753384904725,-43,1069, + -6197539792672037.,6403591090583538.,.429142649903828525222,-43,1069, + -6197539792672021.,6403591090595186.,.493481072608835543488,-43,1069, + -6197539792672019.,6403591090596643.,-.498476623063278028988,-43,1069, + -6197539792671522.,6403591090958461.,-.499953734664452220321,-43,1069, + -6197539792653368.,6403591104174646.,-.485570852803981499712,-43,1069, + -6196858617433906.,6919196150534204.,-.498088866535942203920,-43,1069, + -6196858617428862.,6919196154501923.,-.499985275968400897074,-43,1069, + -6196858617427673.,6919196155437215.,.499700815413737700595,-43,1069, + -6196858617427385.,6919196155663763.,-.499515156377532030362,-43,1069, + -6196858617427377.,6919196155670055.,.472728950289404726027,-43,1069, + -6196858617425007.,6919196157534349.,-.499702446337291506375,-43,1069, + -6196858617411064.,6919196168502213.,-.488102118656956630879,-43,1069, + -6195193599779871.,8361101623008254.,-.491765083162250134486,-43,1069, + -6195193599767976.,8361101634315013.,-.499809265860568538839,-43,1069, + -6195193599767521.,8361101634747511.,.478328730963546860642,-43,1069, + -6195193599767510.,8361101634757967.,.497580695768696131737,-43,1069, + -6195193599767457.,8361101634808346.,.499431254925792765162,-43,1069, + -6195193599759873.,8361101642017297.,-.496785647671975484978,-43,1069, + -6195193599731772.,8361101668728624.,-.430958763133861761034,-43,1069, + -6193618165312232.,5000556336808175.,-.499791325338915267070,-43,1068, + -6193618165311257.,5000556337362460.,-.498899608666998549743,-43,1068, + -6193618165310113.,5000556338012821.,-.431108324331269203080,-43,1068, + -6193618165310089.,5000556338026465.,-.492622286628505338795,-43,1068, + -6193618165310087.,5000556338027602.,-.497748448472877444513,-43,1068, + -6193618165297211.,5000556345347575.,-.494619966012294389043,-43,1068, + -6192702369492797.,5549251780336141.,-.499581611908088021753,-43,1068, + -6192702369492529.,5549251780505216.,-.493962875955650498008,-43,1068, + -6192702369492399.,5549251780587230.,-.498698200818786993787,-43,1068, + -6192702369491936.,5549251780879325.,.499831218952857115273,-43,1068, + -6192702369487298.,5549251783805333.,-.498932782471407257957,-43,1068, + -6192702369473782.,5549251792332265.,-.487394048798241979206,-43,1068, + -6191556480754861.,6321367563074429.,-.499846159950821053388,-43,1068, + -6191556480754605.,6321367563258405.,-.490033068684122734753,-43,1068, + -6191556480754573.,6321367563281402.,-.488806055794071541396,-43,1068, + -6191556480754567.,6321367563285713.,.448924018436813792054,-43,1068, + -6191556480752420.,6321367564828669.,-.499808919784306793182,-43,1068, + -5611213340374391.,6921050109868249.,.499992469949787581780,-49,67, + -5611213340370527.,6921050109915755.,-.499852377236649783796,-49,67, + -5611213340370092.,6921050109921103.,-.499058492563410875565,-49,67, + -5611213340370024.,6921050109921939.,-.489738988378931510419,-49,67, + -5611213340369905.,6921050109923402.,-.473429855813101172399,-49,67, + -5611213340369674.,6921050109926241.,.499405520050469212007,-49,67, + -5589917886914230.,7187876824457292.,.499995893392286342540,-49,67, + -5589917886912146.,7187876824483901.,.499980988040915357874,-49,67, + -5589917886910912.,7187876824499658.,-.499068098541687248693,-49,67, + -5589917886910679.,7187876824502632.,.499490708273227329011,-49,67, + -5589917886910062.,7187876824510510.,.499966181194137245141,-49,67, + -5584028471363331.,7263468983198835.,.499982534993258172116,-49,67, + -5584028471359033.,7263468983254291.,-.499976735079197358749,-49,67, + -5584028471356725.,7263468983284069.,.499579978655137572340,-49,67, + -5584028471356643.,7263468983285128.,-.494369910552096752921,-49,67, + -5584028471356602.,7263468983285657.,-.491344855097922479842,-49,67, + -5584028471356592.,7263468983285786.,-.466216792786181851624,-49,67, + -5584028471354735.,7263468983309746.,-.499935581764833639645,-49,67, + -5584028471288952.,7263468984158512.,-.499950878197173628905,-49,67, + -5555479367794746.,7641324342966803.,-.499994468453819568842,-49,67, + -5555479367786824.,7641324343074334.,-.499987253178288616769,-49,67, + -5555479367778902.,7641324343181865.,-.499978524694386501336,-49,67, + -5555479367778590.,7641324343186100.,-.499725688460545438730,-49,67, + -5555479367778339.,7641324343189507.,-.496317155043129129626,-49,67, + -5555479367778325.,7641324343189697.,-.464254527636474196802,-49,67, + -5555479367778278.,7641324343190335.,-.499472849879568416960,-49,67, + -5545533983828497.,7777519696666007.,-.499291603029483386918,-49,67, + -5545533983828356.,7777519696667955.,-.492598352047623681886,-49,67, + -5545533983828345.,7777519696668106.,.479555022162967194327,-49,67, + -5545533983828318.,7777519696668480.,-.497886695671174489052,-49,67, + -5545533983827922.,7777519696673950.,.499634778150198365635,-49,67, + -5545533983827168.,7777519696684367.,.499966079854103593849,-49,67, + -5545533983815066.,7777519696851564.,.499980473357501948006,-49,67, + -5545533983790862.,7777519697185959.,-.499979956697989492881,-49,67, + -5544198963890274.,7795985752496098.,.499991581887239948377,-49,67, + -5544198963889337.,7795985752509075.,-.499911606702247775308,-49,67, + -5544198963889304.,7795985752509531.,.499024567412439801503,-49,67, + -5544198963889040.,7795985752513187.,.490513961294350720803,-49,67, + -5544198963889007.,7795985752513644.,.489450135650140873818,-49,67, + -5544198963888994.,7795985752513825.,-.480665916869010697341,-49,67, + -5544198963848914.,7795985753068871.,-.499983457027017663124,-49,67, + -5539725571714356.,7858182101469882.,-.499983825992129991033,-49,67, + -5539725571709997.,7858182101530728.,.499953314527104436867,-49,67, + -5539725571705784.,7858182101589537.,.495304799892393180503,-49,67, + -5539725571705760.,7858182101589873.,-.490242686231455837352,-49,67, + -5539725571705638.,7858182101591575.,.499890926193145281719,-49,67, + -5539725571681213.,7858182101932523.,-.499991120187787534531,-49,67, + -5537279579440387.,7892399833329940.,-.499985409003241103691,-49,67, + -5537279579437902.,7892399833364779.,-.499703637777604865422,-49,67, + -5537279579434707.,7892399833409572.,-.499341134513379885669,-49,67, + -5537279579434606.,7892399833410987.,.492219624821105206165,-49,67, + -5537279579434605.,7892399833411002.,-.488061951817877311530,-49,67, + -5537279579434555.,7892399833411702.,.497859216264749432671,-49,67, + -5537279579415740.,7892399833675483.,.499999185536052035228,-49,67, + -5522619698229229.,8100626709670379.,-.499985664905489866863,-49,67, + -5522619698217648.,8100626709837024.,.499992680696270331835,-49,67, + -5522619698198372.,8100626710114399.,-.499863063460570449930,-49,67, + -5522619698197910.,8100626710121046.,.497027831575934239665,-49,67, + -5522619698197679.,8100626710124370.,.495473281140133039113,-49,67, + -5522619698196429.,8100626710142358.,-.499951751670686447046,-49,67, + -5522215089853198.,8106450956615090.,-.445815936731088593292,-49,67, + -5522215089852983.,8106450956618186.,-.456651926267646353466,-49,67, + -5522215089852163.,8106450956629994.,-.497979875505925156716,-49,67, + -5522215089852123.,8106450956630570.,-.499995872589777112827,-49,67, + -5512667243305016.,8245112014127694.,-.499977131834094917140,-49,67, + -5512667243266007.,8245112014699029.,.499991483681421208834,-49,67, + -5512667243258558.,8245112014808129.,.499067128465925587058,-49,67, + -5512667243258524.,8245112014808627.,.471945178751364211275,-49,67, + -5512667243258510.,8245112014808833.,-.480399153475301706714,-49,67, + -5512667243258264.,8245112014812435.,.499836152516734664435,-49,67, + -5486380295707439.,8639247989494572.,-.499995867784930781466,-49,67, + -5486380295690305.,8639247989757516.,.499208121409441899926,-49,67, + -5486380295690178.,8639247989759465.,.490389364469220230815,-49,67, + -5486380295690175.,8639247989759512.,-.470448873878382562598,-49,67, + -5486380295690152.,8639247989759864.,.496457965464813625229,-49,67, + -5486380295689973.,8639247989762611.,.499776411280794645363,-49,67, + -5486380295686347.,8639247989818257.,.499959194470169051073,-49,67, + -5482520377158059.,8698687337151401.,-.499988824466790551998,-49,67, + -5482520377149543.,8698687337282989.,.499909895851415661361,-49,67, + -5482520377149189.,8698687337288459.,.498261764566336850584,-49,67, + -5482520377149085.,8698687337290067.,-.496572714027550177104,-49,67, + -5482520377149074.,8698687337290236.,.475127485369303538670,-49,67, + -5482520377144702.,8698687337357792.,.499970635906702814131,-49,67, + -5482520377126504.,8698687337638987.,.499998151449222292026,-49,67, + -5468820810009269.,8912969411908261.,-.499986257982495506391,-49,67, + -5468820810003707.,8912969411996322.,-.499948875464951481856,-49,67, + -5468820810002548.,8912969412014671.,.499879232337228012924,-49,67, + -5468820810001389.,8912969412033021.,.499707377918342689322,-49,67, + -5468820810001174.,8912969412036426.,-.488245118962974263983,-49,67, + -5468820810001168.,8912969412036521.,-.492560072345666882799,-49,67, + -5468820810001156.,8912969412036710.,.498810020891985311796,-49,67, + -5468820809985862.,8912969412278854.,.499997144096377373900,-49,67, + -5468088758157934.,8924567245617942.,-.499680065416048716229,-49,67, + -5468088758157280.,8924567245628310.,-.496373261054579848317,-49,67, + -5468088758157103.,8924567245631116.,-.477129674316887570768,-49,67, + -5468088758157096.,8924567245631226.,.495382783933812194501,-49,67, + -5468088758156224.,8924567245645050.,.499791879670648131689,-49,67, + -5468088758147129.,8924567245789235.,.499908667218926748343,-49,67, + -5468088758139853.,8924567245904584.,-.499996225539976083048,-49,67, + -5465050034928719.,8972871032711372.,.499995101930304386478,-49,67, + -5465050034925308.,8972871032765741.,-.499960380212907013315,-49,67, + -5465050034922979.,8972871032802862.,.479548364328615209704,-49,67, + -5465050034922963.,8972871032803118.,-.496118384855698201417,-49,67, + -5465050034922881.,8972871032804425.,-.496410474311541237770,-49,67, + -5465050034921979.,8972871032818802.,-.499623445760785763904,-49,67, + -5465050034921897.,8972871032820109.,-.499915532932078095938,-49,67, + -5418613610005209.,4872202900799217.,.499999424825948946758,-49,66, + -5418613610005186.,4872202900799417.,-.440268822220093558904,-49,66, + -5418613610005180.,4872202900799468.,.488356852464885061231,-49,66, + -5413189175935966.,4919377048870275.,-.499992893771316741183,-49,66, + -5413189175917223.,4919377049034062.,-.499979581653188469709,-49,66, + -5413189175913505.,4919377049066551.,.499810294184629058378,-49,66, + -5413189175912740.,4919377049073237.,-.494853677310642097522,-49,66, + -5413189175912652.,4919377049074005.,.499224193217602278252,-49,66, + -5413189175912499.,4919377049075343.,-.499708599782331881388,-49,66, + -5398648100197706.,5048100559713005.,-.499967563064809548537,-49,66, + -5398648100196943.,5048100559719846.,.494962279336450424074,-49,66, + -5398648100196699.,5048100559722034.,.498583358024593788504,-49,66, + -5398648100196577.,5048100559723129.,-.499606102275703748761,-49,66, + -5398648100181137.,5048100559861583.,-.499975229871259751737,-49,66, + -5398648100142476.,5048100560208265.,-.499976112914852907700,-49,66, + -5358514779737026.,5421123837406572.,-.499996251483721167256,-49,66, + -5358514779729629.,5421123837477804.,-.496543985518061135878,-49,66, + -5358514779729602.,5421123837478064.,-.490583025147267305028,-49,66, + -5358514779729475.,5421123837479287.,-.499581470643290327836,-49,66, + -5358514779728470.,5421123837488965.,-.499923490231777893244,-49,66, + -5358514779728135.,5421123837492190.,.499962507078179315752,-49,66, + -5357868470793077.,5427351269949503.,-.499999140939170297868,-49,66, + -5357868470792935.,5427351269950872.,-.490417296020906783621,-49,66, + -5357868470792896.,5427351269951248.,-.494827916018121642878,-49,66, + -5357868470792857.,5427351269951624.,-.499238535989288311000,-49,66, + -5340868642030948.,5593744844772584.,.499979021045606473193,-49,66, + -5340868642025579.,5593744844825933.,.498214483458766264495,-49,66, + -5340868642025327.,5593744844828437.,.492916551562019067847,-49,66, + -5340868642025312.,5593744844828587.,-.459779753872679788303,-49,66, + -5340868642024902.,5593744844832660.,.499854565783372764655,-49,66, + -5340868642015093.,5593744844930127.,.499984819950009728982,-49,66, + -5340868641967528.,5593744845402757.,-.499971160960315312315,-49,66, + -5334469363695535.,5657693969289624.,-.499987807872698835679,-49,66, + -5334469363660154.,5657693969645206.,-.499994434343021073961,-49,66, + -5334469363657758.,5657693969669285.,.499779814802982237650,-49,66, + -5334469363655362.,5657693969693365.,.499554166437100360497,-49,66, + -5334469363655262.,5657693969694371.,-.492108003637319124344,-49,66, + -5334469363655202.,5657693969694974.,-.487105305596278650389,-49,66, + -5334469363655183.,5657693969695164.,.464478882130115826723,-49,66, + -5325827369861748.,5745216802156187.,.499991606486685854002,-49,66, + -5325827369851070.,5745216802265162.,.417994829317682970941,-49,66, + -5325827369851055.,5745216802265316.,-.498677762565912837957,-49,66, + -5325827369850695.,5745216802268990.,-.498819966548524481140,-49,66, + -5325827369847995.,5745216802296545.,-.499886421528420257725,-49,66, + -5325827369847635.,5745216802300218.,.499971394459552511722,-49,66, + -5325827369819589.,5745216802586444.,-.499987197536265099835,-49,66, + -5317788020393879.,5827851464853696.,-.499988611004442253779,-49,66, + -5317788020391319.,5827851464880198.,-.499838530572065007367,-49,66, + -5317788020390039.,5827851464893449.,-.499763445161947528686,-49,66, + -5317788020389741.,5827851464896533.,.498691539983861291702,-49,66, + -5317788020389724.,5827851464896709.,.488536287507859967953,-49,66, + -5317788020340803.,5827851465403157.,-.499977368751900601638,-49,66, + -5307605800724622.,5934220364483833.,-.499991321161239819056,-49,66, + -5307605800703105.,5934220364710650.,-.499991539456500497727,-49,66, + -5307605800692292.,5934220364824633.,-.499523627353766061058,-49,66, + -5307605800692183.,5934220364825782.,-.498594086713617049520,-49,66, + -5307605800691287.,5934220364835226.,.499872604410505975682,-49,66, + -5307605800684821.,5934220364903386.,.499968613495469939532,-49,66, + -5299460840243441.,6020702900261359.,.499999980079505628538,-49,66, + -5299460840243382.,6020702900261991.,-.499910302192220214399,-49,66, + -5299460840243323.,6020702900262622.,-.499820584397814059158,-49,66, + -5299460840243310.,6020702900262761.,-.465902510976596220544,-49,66, + -5266341419859532.,6385539126040121.,-.499975533217699977131,-49,66, + -5266341419812858.,6385539126569544.,-.499991555128977501377,-49,66, + -5266341419812444.,6385539126574240.,-.499605847162204511980,-49,66, + -5266341419812068.,6385539126578504.,.466928035529647375228,-49,66, + -5266341419812065.,6385539126578538.,.495916337796622295221,-49,66, + -5266341419812030.,6385539126578936.,-.499220135741937747748,-49,66, + -5242088987167661.,6666646080430568.,-.455828894360704080720,-49,66, + -5242088987167648.,6666646080430721.,.494621796479315352935,-49,66, + -5242088987167629.,6666646080430946.,.499126652328815691702,-49,66, + -5242088987166075.,6666646080449349.,.499155414362023548404,-49,66, + -5242088987130999.,6666646080864731.,.499818128567981947155,-49,66, + -5242088987120565.,6666646080988295.,-.499979740387697680293,-49,66, + -5242088987120343.,6666646080990924.,-.499975414845195711961,-49,66, + -5208774931158033.,7073069528870408.,-.499997836120142582097,-49,66, + -5208774931131577.,7073069529202808.,.499989720448924403460,-49,66, + -5208774931124928.,7073069529286349.,-.499670763050885894150,-49,66, + -5208774931124788.,7073069529288108.,-.498310016648018990355,-49,66, + -5208774931124749.,7073069529288598.,-.490788094357888456384,-49,66, + -5208774931124742.,7073069529288685.,.459279942979830843106,-49,66, + -5208774931123466.,7073069529304718.,-.499746375475441363493,-49,66, + -5208774931119080.,7073069529359825.,-.499972926519636824883,-49,66, + -5161411928696979.,7693902573131249.,.499933735810532843325,-49,66, + -5161411928695498.,7693902573151490.,.499407261999812624180,-49,66, + -5161411928695489.,7693902573151614.,-.496544620527680024152,-49,66, + -5161411928695363.,7693902573153336.,-.439870975706095468179,-49,66, + -5161411928695336.,7693902573153705.,-.427726623194181809690,-49,66, + -5161411928694756.,7693902573161631.,.499818731335340494584,-49,66, + -5161411928689568.,7693902573232537.,-.499999354901616898449,-49,66, + -5120907462136543.,8267883305644441.,-.499963021813889458811,-49,66, + -5120907462135512.,8267883305659582.,.499137114389392536415,-49,66, + -5120907462135429.,8267883305660801.,.496154876317981341722,-49,66, + -5120907462135413.,8267883305661036.,.483531794300781303736,-49,66, + -5120907462135397.,8267883305661271.,.470908712290260008697,-49,66, + -5120907462135196.,8267883305664223.,.499831245102044698945,-49,66, + -5120907462126482.,8267883305792203.,.499986243147870809568,-49,66, + -5120907462112064.,8267883306003957.,-.499982465549239895555,-49,66, + -5119822908949735.,8283827178355618.,.499996684915467611990,-49,66, + -5119822908933105.,8283827178600329.,.499865955757811790322,-49,66, + -5119822908932340.,8283827178611587.,-.499839222566340590743,-49,66, + -5119822908932326.,8283827178611793.,-.489376310654572609571,-49,66, + -5119822908932312.,8283827178611999.,-.478913398737681355071,-49,66, + -5119822908929473.,8283827178653774.,.499958630839684718768,-49,66, + -5119822908895448.,8283827179154454.,-.499982423586557190972,-49,66, + -5095830265885721.,8644511205475953.,-.499986432995252520345,-49,66, + -5095830265879829.,8644511205566429.,-.499920380534126468225,-49,66, + -5095830265869518.,8644511205724762.,-.499802510132419967096,-49,66, + -5095830265869459.,8644511205725667.,.488657100030910619297,-49,66, + -5095830265869414.,8644511205726358.,.496804260388805127294,-49,66, + -5095830265827664.,8644511206367461.,-.499973164505345322802,-49,66, + -4682486076135336.,9007199254695726.,-.373356384253601868191,-51,56, + -4682486076124132.,9007199254740542.,-.373356497987164474113,-51,56, + -4682486076124020.,9007199254740990.,-.373356497998423830195,-51,56, + -4682486076124019.,4503599627370497.,-.186678248999211997999,-51,55, + -6243314768165360.,9007199254740990.,.417762334667717377051,-52,55, + -6243314768165359.,4503599627370496.,.208881167333858623884,-52,54, + -6243314768165345.,4503599627370510.,.208881167333881033589,-52,54, + -6243314768164009.,4503599627371846.,.208881167536259384386,-52,54, + -6243314768165480.,9007199254740871.,.208881167334668554181,-53,54, + -6243314768165360.,9007199254740991.,.208881167333858653783,-53,54, + -6243314768165359.,4503599627370496.,.104440583666929310731,-53,53, + -4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,52, + 0.,4503599627370496.,0.000000000000000000000,0,52, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,52, + 8703077354433851.,4537724661340588.,.499991917976744088436,-60,52, + 8703077354444014.,4537724661340629.,-.499977248240918519940,-60,52, + 8703077354446240.,4537724661340637.,.261222066528338730348,-60,52, + 8703077354446296.,4537724661340637.,.481629596459641017666,-60,52, + 8703077354446301.,4537724661340638.,-.498691159796492706160,-60,52, + 8703077354446809.,4537724661340640.,-.499279995419678602056,-60,52, + 8703077354447317.,4537724661340642.,-.499868831042863616971,-60,52, + 8703077354471200.,4537724661340736.,-.499993164090152190850,-60,52, + 7188956797761022.,4733952147143078.,.499999424531658065295,-57,52, + 7188956797839382.,4733952147145652.,.499972661075387800926,-57,52, + 7188956797841513.,4733952147145722.,.499895363584403615609,-57,52, + 7188956797841787.,4733952147145732.,-.499645311925858997555,-57,52, + 7188956797842244.,4733952147145747.,-.487930307211185940744,-57,52, + 7188956797842274.,4733952147145747.,.497521443645358813364,-57,52, + 7188956797842335.,4733952147145750.,-.498726662946332887325,-57,52, + 9006440473864151.,4794031607398161.,.499440695486077845280,-57,52, + 9006440473864211.,4794031607398163.,.495357297228898703131,-57,52, + 9006440473864241.,4794031607398164.,.493315598100309443669,-57,52, + 9006440473864242.,4794031607398165.,-.473419125203976861402,-57,52, + 9006440473864632.,4794031607398178.,-.499961213875618239883,-57,52, + 9006440473872959.,4794031607398454.,.499997831341072556186,-57,52, + 7591484324345140.,5003962020792021.,.499998822025772271064,-56,52, + 7591484324371809.,5003962020793873.,.499984587364814054365,-56,52, + 7591484324372817.,5003962020793943.,.499459095288630918822,-56,52, + 7591484324373105.,5003962020793963.,.499308954695615592019,-56,52, + 7591484324373134.,5003962020793966.,-.486817274739093327085,-56,52, + 8003388475031819.,5032648172441515.,.499545818127097868810,-56,52, + 8003388475031862.,5032648172441519.,-.497247173586172659701,-56,52, + 8003388475032134.,5032648172441537.,.499783204413645985063,-56,52, + 8003388475032449.,5032648172441560.,-.499979409299709724576,-56,52, + 8003388475040868.,5032648172442148.,-.499983996098175093516,-56,52, + 8003388475066125.,5032648172443912.,-.499997756081369930438,-56,52, + 8715649185183124.,5082640572130131.,.499996979905028026906,-56,52, + 8715649185231369.,5082640572133535.,-.499976771209727734694,-56,52, + 8715649185231936.,5082640572133574.,.493826003871036240111,-56,52, + 8715649185231950.,5082640572133575.,.481327306959454146524,-56,52, + 8715649185232007.,5082640572133580.,-.498131673323413825173,-56,52, + 8715649185232489.,5082640572133614.,-.499872524136310570529,-56,52, + 8715649185240570.,5082640572134183.,.499986780007477456380,-56,52, + 4823460372575182.,5148754873491468.,.498007318459688484964,-55,52, + 4823460372575189.,5148754873491469.,.498353904982400923338,-55,52, + 4823460372575224.,5148754873491475.,-.499913162404033969449,-55,52, + 4823460372578107.,5148754873491886.,.499973829752884527291,-55,52, + 4823460372586763.,5148754873493123.,.499981392944481526160,-55,52, + 4823460372604075.,5148754873495597.,.499996520219251675595,-55,52, + 7429938090848636.,5535042268442735.,.499983045264742994926,-55,52, + 7429938090848968.,5535042268442787.,-.495426594536795943150,-55,52, + 7429938090848981.,5535042268442789.,-.498258899709738206925,-55,52, + 7429938090848994.,5535042268442790.,.498908795117320249922,-55,52, + 7429938090920309.,5535042268453746.,.499997774552686330552,-55,52, + 8992428863893623.,5780366179350775.,.499987546018797375613,-55,52, + 8992428863894720.,5780366179350951.,.499805008984389954591,-55,52, + 8992428863894907.,5780366179350982.,-.498402953116656286789,-55,52, + 8992428863894932.,5780366179350986.,-.487468188691650668256,-55,52, + 8992428863894938.,5780366179350986.,.475156154770351094323,-55,52, + 8992428863920967.,5780366179355162.,.499995485019829500361,-55,52, + 4684840655103873.,5841209562765482.,.499943314793069546455,-54,52, + 4684840655107176.,5841209562766554.,-.494817422796757842838,-54,52, + 4684840655107182.,5841209562766555.,.450696181676463841375,-54,52, + 4684840655107213.,5841209562766566.,-.497483528545213800749,-54,52, + 4684840655107250.,5841209562766577.,.499850365706354882814,-54,52, + 4684840655112499.,5841209562768280.,-.499997987382204238436,-54,52, + 5261029272899527.,6031060016815816.,.469296735884536850477,-54,52, + 5261029272899542.,6031060016815821.,.491163006058366361327,-54,52, + 5261029272899548.,6031060016815823.,.499909514127899336499,-54,52, + 5261029272901606.,6031060016816512.,.499961782017180916691,-54,52, + 5261029272903664.,6031060016817202.,-.499985950014824794125,-54,52, + 5261029272960601.,6031060016836264.,-.499997589699077624681,-54,52, + 5357701474447528.,6063512005085518.,-.499283846710733964827,-54,52, + 5357701474447715.,6063512005085580.,.443519619870456764399,-54,52, + 5357701474447730.,6063512005085585.,.492407598473254381458,-54,52, + 5357701474447733.,6063512005085587.,-.497814805806185590645,-54,52, + 5357701474448039.,6063512005085689.,.499499957691820608528,-54,52, + 5357701474449471.,6063512005086172.,-.499994351666807563517,-54,52, + 6544763739190303.,6476526702129214.,.499993631765069008321,-54,52, + 6544763739207284.,6476526702135319.,.499828681517919182416,-54,52, + 6544763739207501.,6476526702135398.,-.484449970715238943812,-54,52, + 6544763739207526.,6476526702135407.,-.496463640327293564364,-54,52, + 6544763739207615.,6476526702135439.,-.499232304146106769947,-54,52, + 6544763739208366.,6476526702135708.,.499877060714921686276,-54,52, + 6544763739210530.,6476526702136486.,.499973819179020300307,-54,52, + 6544763739231839.,6476526702144148.,-.499997605537977172788,-54,52, + 6750030179323836.,6550746026300389.,-.449349704712974555377,-54,52, + 6750030179323844.,6550746026300391.,.459765922035203143406,-54,52, + 6750030179323855.,6550746026300395.,.459799908813949588674,-54,52, + 6750030179324977.,6550746026300803.,.463266560258917518453,-54,52, + 6750030179335636.,6550746026304679.,.496199750253530799329,-54,52, + 6750030179336857.,6550746026305123.,.499972282999937073615,-54,52, + 6750030179336868.,6550746026305128.,-.499993730218426990122,-54,52, + 6750030179366290.,6550746026315827.,-.499997440633320203907,-54,52, + 7262316160863841.,6739707490193675.,.499998740917333196041,-54,52, + 7262316160884505.,6739707490201407.,-.499962365929029085134,-54,52, + 7262316160951089.,6739707490226318.,-.499836983220147531153,-54,52, + 7262316160955347.,6739707490227911.,-.458888195401186374988,-54,52, + 7262316160955371.,6739707490227920.,-.479794073533596183854,-54,52, + 7262316160955395.,6739707490227928.,.499300048334005969836,-54,52, + 7262316160955681.,6739707490228036.,-.499828332742814372083,-54,52, + 7667186625744786.,6892896237715140.,-.499021772528831527277,-54,52, + 7667186625744854.,6892896237715166.,-.480004600353004163915,-54,52, + 7667186625744867.,6892896237715170.,.494219270798268132727,-54,52, + 7667186625745097.,6892896237715258.,.499718529629063866407,-54,52, + 7667186625745834.,6892896237715540.,.499948763368356372053,-54,52, + 7667186625772021.,6892896237725560.,.499988297221006951339,-54,52, + 7667186625780750.,6892896237728901.,-.499998521591269824288,-54,52, + 7756304500080682.,6927080126912701.,-.499998990955795730432,-54,52, + 7756304500086099.,6927080126914784.,-.499946130974529026959,-54,52, + 7756304500086731.,6927080126915027.,-.476864460727310098174,-54,52, + 7756304500086848.,6927080126915072.,-.486831936329342185566,-54,52, + 7756304500087004.,6927080126915131.,.499878096201736233539,-54,52, + 4889567999033468.,7750273177906813.,-.499967861292226628927,-53,52, + 4889567999035410.,7750273177908484.,-.499906041359189060713,-53,52, + 4889567999035625.,7750273177908668.,.497526137491799914987,-53,52, + 4889567999035883.,7750273177908890.,.494444752118815608866,-53,52, + 4889567999035890.,7750273177908897.,-.482383037406719392735,-53,52, + 4889567999049047.,7750273177920218.,-.499986855914498873426,-53,52, + 4889567999064626.,7750273177933622.,.499994172648737362343,-53,52, + 4930099044602322.,7785226828781103.,-.499997783363789623859,-53,52, + 4930099044602337.,7785226828781115.,.465009332499628155129,-53,52, + 5026050879155359.,7868604557678872.,-.499999720829763675713,-53,52, + 5026050879174250.,7868604557695374.,.499933474480635735593,-53,52, + 5026050879175935.,7868604557696847.,-.499913676762827224112,-53,52, + 5026050879177169.,7868604557697925.,-.489119246104133684354,-53,52, + 5026050879177177.,7868604557697931.,.499605515197214885060,-53,52, + 5035712052418484.,7877048995746359.,-.499990962504582812251,-53,52, + 5035712052438616.,7877048995763965.,-.499957259130472737612,-53,52, + 5035712052438839.,7877048995764160.,-.480187364421120182630,-53,52, + 5035712052438847.,7877048995764167.,-.483962435462847418207,-53,52, + 5035712052438879.,7877048995764195.,-.499062719629694221553,-53,52, + 5035712052474377.,7877048995795239.,-.499996638236511607575,-53,52, + 5388947655781184.,8192100782733707.,.499997377763785209857,-53,52, + 5388947655827994.,8192100782776281.,.470750708044239545898,-53,52, + 5388947655828005.,8192100782776291.,.475315508041040940416,-53,52, + 5388947655828060.,8192100782776341.,.498139508025231183424,-53,52, + 5388947655828502.,8192100782776743.,.499743289727450884612,-53,52, + 5388947655829817.,8192100782777939.,.499989834953645526147,-53,52, + 5828367993162752.,8601665337482620.,-.499997940982850894698,-53,52, + 5828367993164440.,8601665337484232.,-.499343905319096728536,-53,52, + 5828367993164862.,8601665337484635.,-.499180396355955370618,-53,52, + 5828367993164906.,8601665337484677.,-.480206002055393961153,-53,52, + 5828367993164907.,8601665337484677.,.474770688724166638232,-53,52, + 5842346135984328.,8615024501323480.,-.499998865096872205000,-53,52, + 5842346135984581.,8615024501323721.,.484344679609889738680,-53,52, + 5842346135984673.,8615024501323809.,.478651423141306564081,-53,52, + 6083309738850843.,8848607022168410.,.499952626647402031691,-53,52, + 6083309738852036.,8848607022169582.,.494473774960644060545,-53,52, + 6083309738852040.,8848607022169586.,.424044675709650321637,-53,52, + 6083309738852206.,8848607022169750.,-.498762943205050900588,-53,52, + 6083309738852774.,8848607022170308.,-.499695036818160271263,-53,52, + 6083309738876571.,8848607022193685.,.499986276999922397869,-53,52, + 6083309738885147.,8848607022202110.,.499997509827440305361,-53,52, + 6243314768165238.,9007199254740871.,-.208881167333043071806,-53,52, + 6243314768165358.,9007199254740991.,-.208881167333858537917,-53,52, + 6243314768165359.,4503599627370496.,-.104440583666929308309,-53,51, + 6243314768165360.,4503599627370496.,.395559416333070707851,-53,51, + 6466710109371024.,4616693976091040.,-.497576913672189076302,-53,51, + 6466710109371057.,4616693976091056.,.416770921012804141456,-53,51, + 6466710109371063.,4616693976091059.,.492106890955536838951,-53,51, + 6466710109371223.,4616693976091142.,-.498933910570835527515,-53,51, + 6466710109371422.,4616693976091243.,.499709092532771521986,-53,51, + 6466710109372099.,4616693976091591.,-.499882298901902499305,-53,51, + 6466710109374329.,4616693976092733.,.499986530087089389259,-53,51, + 6466710109381696.,4616693976096510.,-.499998372312984986938,-53,51, + 6683043781640158.,4728919409448331.,-.499991809409105789109,-53,51, + 6683043781678814.,4728919409468625.,.499987880003563106398,-53,51, + 6683043781680433.,4728919409469476.,-.499883622722553407584,-53,51, + 6683043781680553.,4728919409469539.,-.498021102844411050084,-53,51, + 6683043781680793.,4728919409469665.,-.494296063085608274821,-53,51, + 6683043781686869.,4728919409472855.,-.499990472073479115475,-53,51, + 7533119765574280.,5196961431751803.,-.499933764737374758577,-53,51, + 7533119765574793.,5196961431752098.,.490100327765266422081,-53,51, + 7533119765574845.,5196961431752128.,.492988773789866961568,-53,51, + 7533119765574975.,5196961431752204.,-.499790111147873889543,-53,51, + 7533119765608900.,5196961431771778.,-.499972162705002301330,-53,51, + 7533119765636596.,5196961431787757.,.499997174199437302327,-53,51, + 7593583889881033.,5231965295675659.,-.499993266160582622048,-53,51, + 7593583889901592.,5231965295687601.,-.499880711562226848477,-53,51, + 7593583889909222.,5231965295692032.,.498799133477240410770,-53,51, + 7593583889909327.,5231965295692093.,.489606654306723988754,-53,51, + 7593583889909358.,5231965295692111.,.496416493789850321154,-53,51, + 7593583889909964.,5231965295692464.,-.499494385979168491092,-53,51, + 7593583889910403.,5231965295692719.,-.499832465533021817895,-53,51, + 7593583889943149.,5231965295711740.,-.499993599219193045741,-53,51, + 7618936725668761.,5246712611536138.,.499957930114930723544,-53,51, + 7618936725669058.,5246712611536312.,-.496914065799628443151,-53,51, + 7618936725669070.,5246712611536318.,.493111308102933510246,-53,51, + 7618936725669161.,5246712611536372.,-.499196273135668597137,-53,51, + 7618936725692421.,5246712611549920.,.499986825637152945168,-53,51, + 7618936725704251.,5246712611556812.,-.499998713025840507697,-53,51, + 8259236168422938.,5633265150051556.,.442142805108046189264,-53,51, + 8259236168422954.,5633265150051566.,.448831882557215559546,-53,51, + 8259236168423066.,5633265150051636.,.495655424701898864134,-53,51, + 8259236168423074.,5633265150051641.,.498999963426552429145,-53,51, + 8259236168423672.,5633265150052015.,.499004233106987683282,-53,51, + 8259236168470316.,5633265150081187.,.499337344683277509709,-53,51, + 8259236168560315.,5633265150137474.,.499980506147801021393,-53,51, + 8259236168563006.,5633265150139157.,.499999745548853325147,-53,51, + 8460168363108705.,5760343938898102.,-.499995347132971453370,-53,51, + 8460168363170815.,5760343938937823.,-.499945539455368041128,-53,51, + 8460168363172252.,5760343938938741.,.499846310085494815699,-53,51, + 8460168363173001.,5760343938939221.,-.494695029239742886512,-53,51, + 8460168363173012.,5760343938939228.,-.459901911392420217776,-53,51, + 8460168363173259.,5760343938939386.,-.496820083363912510144,-53,51, + 8460168363173603.,5760343938939606.,-.499653488855453539470,-53,51, + 8460168363180702.,5760343938944146.,-.499985886934459987932,-53,51, + 8791115980731339.,5975930100402632.,-.499999283144244088499,-53,51, + 8791115980731443.,5975930100402700.,.499998703438413727754,-53,51, + 8791115980739347.,5975930100407944.,.499845686051540315270,-53,51, + 8791115980767739.,5975930100426781.,.499296069444200974371,-53,51, + 8791115980769082.,5975930100427673.,-.471883773234934687909,-53,51, + 8791115980769091.,5975930100427678.,.499269898705861762641,-53,51, + 8837821264166991.,6006997737034383.,.442737591530539404138,-53,51, + 8837821264167003.,6006997737034391.,.445666227362685416826,-53,51, + 8837821264167192.,6006997737034517.,.491792241720391506736,-53,51, + 8837821264167225.,6006997737034539.,.499845990259309817513,-53,51, + 8837821264171323.,6006997737037272.,.499975127628069523172,-53,51, + 8837821264172689.,6006997737038184.,-.499981826306025815691,-53,51, + 8837821264195908.,6006997737053669.,-.499982181011771211582,-53,51, + 9007199254740954.,6121026514868048.,-.498146630215816928306,-53,51, + 9007199254740982.,6121026514868067.,-.470173831002550981488,-53,51, + 9007199254740991.,6121026514868073.,-.354039716969702936578,-53,51, + 4503599627370497.,6121026514868075.,-.315328345625418896886,-52,51, + 4503599627370502.,6121026514868081.,.480376225522199472838,-52,51, + 4503599627370619.,6121026514868240.,.499863190378623198950,-52,51, + 4503599627372621.,6121026514870961.,.499973478562005930005,-52,51, + 4503599627382166.,6121026514883934.,.499999819224224417535,-52,51, + 6243314768165359.,4503599627370496.,-.208881167333858614196,-52,50, + 6243314768165360.,4503599627370497.,-.208881167333858549555,-52,50, + 6243314768165373.,4503599627370510.,-.208881167333837503158,-52,50, + 6243314768166709.,4503599627371846.,-.208881167131583082222,-52,50, + 9007199254740516.,8319337573440062.,.499987184434361897887,-52,50, + 9007199254740991.,8319337573440940.,-.049601067597391320009,-52,50, + 4503599627370497.,8319337573440945.,.492191006600596965677,-51,50, + 4503599627370533.,8319337573441078.,.495200787353423294653,-51,50, + 4503599627370605.,8319337573441345.,-.498779651134545005629,-51,50, + 4503599627397835.,8319337573541947.,-.499992097194679505639,-51,50, + 4682486076114871.,9007199254704398.,.373356572333046540478,-51,50, + 4682486076123928.,9007199254740626.,.373356498005845031363,-51,50, + 4682486076124018.,9007199254740986.,.373356497998425900313,-51,50, + 4682486076124019.,9007199254740990.,.373356497998424289760,-51,50, + 4682486076124020.,4503599627370497.,.186678248999212227782,-51,49, + 5868404969532749.,6456177228149088.,.499608203111354933007,-50,45, + 5868404969532798.,6456177228149369.,.477235305385691896349,-50,45, + 5868404969532813.,6456177228149455.,.490794622410892762007,-50,45, + 5868404969532971.,6456177228150362.,-.499713904854051735950,-50,45, + 5868404969534446.,6456177228158820.,-.499714390592438207646,-50,45, + 5868404969618521.,6456177228640926.,-.499723761590356416304,-50,45, + 5868404970319146.,6456177232658476.,-.498401830259624720159,-50,45, + 5888592265877124.,6572979978478841.,-.499997710034109135843,-50,45, + 5888592265916193.,6572979978706925.,-.499614592253067928903,-50,45, + 5888592265916372.,6572979978707969.,.498621075147742370189,-50,45, + 5888592265916397.,6572979978708115.,.448095330384541403291,-50,45, + 5888592265916409.,6572979978708186.,-.496157027100643953760,-50,45, + 5888592265917915.,6572979978716978.,-.499827885564480456823,-50,45, + 5888592265919063.,6572979978723680.,-.499970072563481835060,-50,45, + 5888592265933234.,6572979978806410.,-.499982516687355560282,-50,45, + 5943141639562568.,6899278768030405.,-.499998435475847156884,-50,45, + 5943141639570855.,6899278768081185.,.499985135962371604044,-50,45, + 5943141639584291.,6899278768163518.,.493322392858145095763,-50,45, + 5943141639584307.,6899278768163617.,-.462029393091549624588,-50,45, + 5943141639584338.,6899278768163806.,.499476521634881767920,-50,45, + 5943141639586130.,6899278768174788.,-.499923495611789856155,-50,45, + 5943141639587429.,6899278768182747.,.499953400134257261839,-50,45, + 6303973650801013.,4752890240688487.,-.499845127628804701128,-50,44, + 6303973650801379.,4752890240690032.,-.462122395655386381438,-50,44, + 6303973650801397.,4752890240690108.,-.476660621938817824112,-50,44, + 6303973650801424.,4752890240690222.,-.498467961361687246273,-50,44, + 6303973650804590.,4752890240703586.,.499975146004215900860,-50,44, + 6303973650809680.,4752890240725073.,.499999045533515440529,-50,44, + 6421931254417273.,5277857836962892.,-.499987002755544646755,-50,44, + 6421931254449666.,5277857837114739.,.499889504545133613529,-50,44, + 6421931254449682.,5277857837114815.,-.497239564726488737894,-50,44, + 6421931254449730.,5277857837115040.,-.488626772534960662751,-50,44, + 6421931254450015.,5277857837116376.,-.499988318700194436360,-50,44, + 6619016067722953.,6287520404862898.,-.499539792612273014123,-50,44, + 6619016067723030.,6287520404863328.,-.497664641794237009645,-50,44, + 6619016067723042.,6287520404863395.,-.484385397508258094426,-50,44, + 6619016067723054.,6287520404863462.,-.471106153221564942226,-50,44, + 6619016067724534.,6287520404871727.,-.499999352386529181083,-50,44, + 6787616684071288.,7303211695695746.,-.499999911787494510236,-50,44, + 6787616684083895.,7303211695777521.,.499170697716938769665,-50,44, + 6787616684084006.,7303211695778242.,-.493221783529829757658,-50,44, + 6787616684084080.,7303211695778722.,-.488150104321573237367,-50,44, + 6787616684084304.,7303211695780175.,-.499825021120510325227,-50,44, + 6787616684090217.,7303211695818530.,-.499975733696390420378,-50,44, + 6792176747023049.,7332850775775826.,-.499981768544265687193,-50,44, + 6792176747028678.,7332850775812487.,-.499509090766758933186,-50,44, + 6792176747028795.,7332850775813249.,-.492570857644494473581,-50,44, + 6792176747028830.,7332850775813476.,.458222630911740903177,-50,44, + 6792176747028834.,7332850775813503.,-.490258113252809569306,-50,44, + 6792176747029105.,7332850775815268.,-.499828530185555448532,-50,44, + 6792176747029532.,7332850775818048.,.499852031450348242049,-50,44, + 6792176747035588.,7332850775857491.,-.499994503081510707407,-50,44, + 6935652144135877.,8329439031012399.,.499998370041115157013,-50,44, + 6935652144155451.,8329439031157208.,.499984585880351086346,-50,44, + 6935652144171171.,8329439031273506.,-.499922485105198687946,-50,44, + 6935652144171470.,8329439031275718.,-.489551745083293544308,-50,44, + 6935652144171475.,8329439031275755.,-.499411766148167566972,-50,44, + 6935652144173098.,8329439031287762.,-.499974595125488086288,-50,44, + 7272069881115083.,5615035464082687.,.499989280571845345190,-50,43, + 7272069881158207.,5615035464297753.,.499982817560081681953,-50,43, + 7272069881162644.,5615035464319881.,.499286951652406788928,-50,43, + 7272069881162722.,5615035464320270.,.497246321929600282519,-50,43, + 7272069881162729.,5615035464320305.,.407319598750666187442,-50,43, + 7272069881163111.,5615035464322210.,.499889848457940221902,-50,43, + 7272069881166536.,5615035464339292.,-.499971103691820686081,-50,43, + 7274706301331302.,5628199101978599.,-.499910790792028312779,-50,43, + 7274706301332168.,5628199101982927.,.499845487384326146905,-50,43, + 7274706301332170.,5628199101982937.,.497535455698056058097,-50,43, + 7274706301332290.,5628199101983537.,.358933554554350550487,-50,43, + 7274706301332448.,5628199101984327.,.176441051479313307794,-50,43, + 7274706301335631.,5628199102000239.,-.499974350785450760265,-50,43, + 7274706301352081.,5628199102082470.,-.499984116787541030424,-50,43, + 7274706301368531.,5628199102164701.,-.499992681350727515054,-50,43, + 7641538687448159.,7795932510450507.,-.499971904202872653801,-50,43, + 7641538687453672.,7795932510488679.,.498950127309547159390,-50,43, + 7641538687453685.,7795932510488770.,-.486722648379283818787,-50,43, + 7641538687453698.,7795932510488860.,-.472395424067075462786,-50,43, + 7641538687454371.,7795932510493520.,-.499916810176958486986,-50,43, + 7641538687462258.,7795932510548130.,.499992502549805088670,-50,43, + 7642555474121747.,7802976103414118.,-.499996356955271630226,-50,43, + 7642555474148729.,7802976103601114.,.496757344112606158364,-50,43, + 7642555474148772.,7802976103601413.,-.494538315747725989312,-50,43, + 7642555474149419.,7802976103605896.,.496896757030105183357,-50,43, + 7642555474161609.,7802976103690378.,.499360201798576837844,-50,43, + 7642555474164714.,7802976103711897.,.499987829177652339703,-50,43, + 7642555474164829.,7802976103712695.,-.499988924224179446403,-50,43, + 7661357941749300.,7934379544144451.,-.499991987523871806333,-50,43, + 7661357941778211.,7934379544348190.,.499993436720606095085,-50,43, + 7661357941794374.,7934379544462093.,.499537912132485245152,-50,43, + 7661357941794459.,7934379544462693.,-.493163854230856467324,-50,43, + 7661357941794480.,7934379544462840.,.496874532909872571014,-50,43, + 7661357941795477.,7934379544469867.,-.499874417280132514605,-50,43, + 7661357941796983.,7934379544480480.,-.499978637164387546398,-50,43, + 7952142228777903.,5136265744572525.,.499985535532051874596,-50,42, + 7952142228791921.,5136265744636475.,-.499956566853401725227,-50,42, + 7952142228793003.,5136265744641410.,.497907829580360302685,-50,42, + 7952142228793108.,5136265744641889.,.499549014329665153258,-50,42, + 7952142228816291.,5136265744747649.,-.499996691505287632166,-50,42, + 7975281835700360.,5242919009446395.,.499991051650093577463,-50,42, + 7975281835705477.,5242919009470224.,-.434646875151428838276,-50,42, + 7975281835705483.,5242919009470252.,-.494761752469299890519,-50,42, + 7975281835705550.,5242919009470564.,-.499377882508745547707,-50,42, + 7975281835705783.,5242919009471648.,.499494381826986860382,-50,42, + 7975281835708378.,5242919009483732.,.499809959025520425634,-50,42, + 7975281835710108.,5242919009491789.,-.499979640702411725997,-50,42, + 7975281835738487.,5242919009623940.,-.499994666000544207256,-50,42, + 8134778399494714.,6040820288507093.,-.499998578165064374157,-50,42, + 8134778399516448.,6040820288623703.,-.499985466906651922132,-50,42, + 8134778399524033.,6040820288664398.,.499375486674664623716,-50,42, + 8134778399524066.,6040820288664576.,-.444859329935547600933,-50,42, + 8134778399524085.,6040820288664677.,.496338805957896421609,-50,42, + 8134778399524356.,6040820288666131.,.499743797046379416812,-50,42, + 8134778399524679.,6040820288667865.,-.499887892084739820398,-50,42, + 8134778399527315.,6040820288682008.,-.499978067152095976359,-50,42, + 8395085770615682.,7612100876152649.,-.499990098397349747781,-50,42, + 8395085770620772.,7612100876187061.,.499979285508313150703,-50,42, + 8395085770623959.,7612100876208609.,-.499843341281507579873,-50,42, + 8395085770624143.,7612100876209853.,-.493557604662163644534,-50,42, + 8395085770624189.,7612100876210164.,-.491986170475561799012,-50,42, + 8395085770649409.,7612100876380674.,-.499993601072879585578,-50,42, + 8472742745130106.,8155662330566785.,-.499951491813866028651,-50,42, + 8472742745234274.,8155662331321345.,-.499966936396901053304,-50,42, + 8472742745247295.,8155662331415665.,-.499963958333403071860,-50,42, + 8472742745247849.,8155662331419678.,-.499426214315535596430,-50,42, + 8472742745247923.,8155662331420214.,-.466863410813475398598,-50,42, + 8472742745247927.,8155662331420243.,-.492130286298846868465,-50,42, + 8472742745247968.,8155662331420539.,.498884239982030638121,-50,42, + 8714420965793325.,5054195295796694.,-.499443204338990540351,-50,41, + 8714420965793370.,5054195295796896.,-.493219623891813092202,-50,41, + 8714420965793374.,5054195295796913.,.462889138814993412560,-50,41, + 8714420965793644.,5054195295798126.,-.499769378328086274742,-50,41, + 8714420965793963.,5054195295799557.,.499904448088544906000,-50,41, + 8714420965797016.,5054195295813262.,.499917609833847190410,-50,41, + 8714420965815334.,5054195295895492.,.499997360720207970657,-50,41, + 8743627225365642.,5187018279798550.,.499996519631877661380,-50,41, + 8743627225395166.,5187018279934568.,-.499945067449790031170,-50,41, + 8743627225396881.,5187018279942469.,-.498891571504956639725,-50,41, + 8743627225396886.,5187018279942492.,-.463903077330088178463,-50,41, + 8743627225397138.,5187018279943652.,.499517029215784100436,-50,41, + 8743627225400825.,5187018279960639.,-.499967334584527663328,-50,41, + 8743627225406484.,5187018279986710.,-.499989470681161483844,-50,41, + 8897696383593928.,5947672229033387.,.499997363231682414894,-50,41, + 8897696383647634.,5947672229317094.,.499881442772650386493,-50,41, + 8897696383647726.,5947672229317580.,.498540623476868096884,-50,41, + 8897696383648002.,5947672229319038.,.494518165827793971699,-50,41, + 8897696383650610.,5947672229332815.,.499987134382937052726,-50,41, + 8979216647911774.,6394283963185212.,-.499999453093079759123,-50,41, + 8979216647926035.,6394283963266203.,.498530224386863072926,-50,41, + 8979216647926088.,6394283963266504.,.499576581598350631333,-50,41, + 8979216647927067.,6394283963272065.,-.499963345852626842585,-50,41, + 8979216647935666.,6394283963320900.,.499992085414094639833,-50,41, + 4523144813459852.,6786784280755118.,-.499944632363066202167,-49,41, + 4523144813466686.,6786784280837507.,-.499833550513852587856,-49,41, + 4523144813466973.,6786784280840967.,-.499389882085002592722,-49,41, + 4523144813466991.,6786784280841184.,-.495877735574233929206,-49,41, + 4523144813467063.,6786784280842052.,-.481829149461773654002,-49,41, + 4523144813482345.,6786784281026287.,.499985765350853256268,-49,41, + 4523144813563492.,6786784282004576.,-.499908533874655077758,-49,41, + 4612325947540188.,7951771630976536.,-.499988583848823195946,-49,41, + 4612325947564656.,7951771631322151.,-.499776743743104971338,-49,41, + 4612325947564688.,7951771631322603.,-.493891218994611992763,-49,41, + 4612325947564808.,7951771631324298.,-.471820500958930055438,-49,41, + 4612325947564816.,7951771631324411.,-.470349119743704479677,-49,41, + 4612325947565335.,7951771631331742.,-.499893259974537711648,-49,41, + 4612325947566014.,7951771631341332.,.499990235362178512814,-49,41, + 4802115455502127.,5569924284824261.,-.499996266819965447588,-49,40, + 4802115455516131.,5569924284962819.,-.499926102538358378170,-49,40, + 4802115455518465.,5569924284985912.,-.499914073387537721701,-49,40, + 4802115455518541.,5569924284986663.,.457241418460021387799,-49,40, + 4802115455518550.,5569924284986753.,-.495200694340781846993,-49,40, + 5059472696392689.,8798134896866938.,-.499954951762682199150,-49,40, + 5059472696394757.,8798134896899258.,-.499116196134546312972,-49,40, + 5059472696394897.,8798134896901446.,-.491322465640583420480,-49,40, + 5059472696394951.,8798134896902289.,.454540830552505434525,-49,40, + 5059472696394959.,8798134896902414.,.483557615180588764037,-49,40, + 5059472696397307.,8798134896939110.,.499983980311234850186,-49,40, + 5059472696445038.,8798134897685081.,-.499962893265201226227,-49,40, + 5079689563131988.,4559919384018729.,-.499841298517049792307,-49,39, + 5079689563131998.,4559919384018810.,-.499401449361875087001,-49,39, + 5079689563132188.,4559919384020349.,-.491044315140172884071,-49,39, + 5079689563132228.,4559919384020673.,-.489284918395732373470,-49,39, + 5079689563134257.,4559919384037107.,.499960511667625069866,-49,39, + 5079689563138805.,4559919384073947.,-.499995795595785410644,-49,39, + 5107897798868229.,4794228683530661.,.499999712805684311629,-49,39, + 5107897798878991.,4794228683622313.,.499931642937809764895,-49,39, + 5107897798879237.,4794228683624409.,-.499884053470839981384,-49,39, + 5107897798880467.,4794228683634884.,-.498962521781872139877,-49,39, + 5107897798881143.,4794228683640640.,.493413874485698097033,-49,39, + 5107897798881174.,4794228683640904.,.497502141344220995447,-49,39, + 5107897798881205.,4794228683641169.,-.498409591782718176636,-49,39, + 5222449517558371.,5876125204514747.,-.499987269938886071305,-49,39, + 5222449517560366.,5876125204535570.,.499929209830594662887,-49,39, + 5222449517588506.,5876125204829298.,.498758996705394408128,-49,39, + 5222449517593546.,5876125204881906.,.498550956640036894297,-49,39, + 5222449517593635.,5876125204882835.,.489023477624836564937,-49,39, + 5222449517593651.,5876125204883002.,.498546627480375647376,-49,39, + 5270585385616002.,6400678781231780.,-.499958612020717457770,-49,39, + 5270585385681089.,6400678781971811.,.499913198434476888435,-49,39, + 5270585385682438.,6400678781987149.,.480890751236119874866,-49,39, + 5270585385682484.,6400678781987672.,.495809185856620053807,-49,39, + 5270585385682630.,6400678781989332.,.499680739500418899201,-49,39, + 5270585385684709.,6400678782012971.,-.499983871146114219312,-49,39, + 5270585385693490.,6400678782112809.,.499990662768329073743,-49,39, + 5489113122559330.,4718260076923816.,-.494964904484934261935,-49,38, + 5489113122559372.,4718260076924168.,-.479795480535398076986,-49,38, + 5489113122559448.,4718260076924805.,-.499965094274240560908,-49,38, + 5489113122565249.,4718260076973424.,.499983458210666083143,-49,38, + 5489113122583048.,4718260077122604.,-.499998885338209891564,-49,38, + 5503648895962147.,4841675431531026.,.474026538389622191256,-49,38, + 5503648895962157.,4841675431531112.,.479459207953365664114,-49,38, + 5503648895962192.,4841675431531413.,.498473551438498955778,-49,38, + 5503648895962197.,4841675431531457.,-.498810113776382810599,-49,38, + 5503648895962565.,4841675431534622.,-.498887872543146249209,-49,38, + 5503648895966613.,4841675431569437.,-.499743082426297121328,-49,38, + 5503648895967717.,4841675431578932.,-.499976278037214237755,-49,38, + 5503648896019257.,4841675432022204.,-.499972673034540718754,-49,38, + 5548511370790109.,5243307955442395.,.499964447379211128198,-49,38, + 5548511370792969.,5243307955469033.,.499775028115672140082,-49,38, + 5548511370794004.,5243307955478673.,.475230988409571061623,-49,38, + 5548511370794020.,5243307955478822.,.499006153152258288900,-49,38, + 5548511370794399.,5243307955482352.,.499680369233093801059,-49,38, + 5548511370810887.,5243307955635921.,.499989991051633732409,-49,38, + 5548511370821276.,5243307955732685.,-.499994558532644383193,-49,38, + 5426391276955121.,4522269201631908.,-.495533761031281710184,-44,-393, + 5426391276962926.,4522269203638271.,-.497924922040598327853,-44,-393, + 5426391276978536.,4522269207650996.,.499963202324621441022,-44,-393, + 5426391276979630.,4522269207932221.,.499564339480825670733,-44,-393, + 5426391276979679.,4522269207944818.,-.499539039514844548921,-44,-393, + 5426391276979826.,4522269207982606.,-.496848965997927255505,-44,-393, + 5426391276979842.,4522269207986718.,.483035686908615044029,-44,-393, + 5426391276980773.,4522269208226043.,-.499919630600159424132,-44,-393, + 5506672652889642.,6777434914917542.,-.479868733054930402463,-44,-399, + 5506672652931234.,6777434930940966.,.499993183408984793342,-44,-399, + 5506672652932303.,6777434931352802.,-.499904842019377794085,-44,-399, + 5506672652932497.,6777434931427540.,.499180893305984144644,-44,-399, + 5506672652932501.,6777434931429082.,-.490528670489501118530,-44,-399, + 5506672652932517.,6777434931435246.,-.449366922167590434901,-44,-399, + 5506672652939980.,6777434934310386.,-.499372782368927578098,-44,-399, + 5562950707693369.,5190862344130093.,-.499178572671096415540,-44,-404, + 5562950707699728.,5190862346006420.,-.499853412062591476749,-44,-404, + 5562950707701702.,5190862346588880.,.499917791660141730303,-44,-404, + 5562950707703179.,5190862347024694.,-.482480157439415283449,-44,-404, + 5562950707703224.,5190862347037972.,-.496161307984171770818,-44,-404, + 5562950707703239.,5190862347042397.,.499278316048570779569,-44,-404, + 5562950707703676.,5190862347171341.,.499754352696099681192,-44,-404, + 5562950707720779.,5190862352217862.,-.497405719564308800364,-44,-404, + 5565768841135267.,6092705146703128.,-.497459892116996634340,-44,-404, + 5565768841147678.,6092705151001432.,-.499793418460564497658,-44,-404, + 5565768841151349.,6092705152272810.,-.368889712773605983193,-44,-404, + 5565768841151388.,6092705152286317.,-.491442021992539497349,-44,-404, + 5565768841151391.,6092705152287355.,.499130878538567073676,-44,-404, + 5565768841151709.,6092705152397488.,.499859339619838273546,-44,-404, + 5565768841151815.,6092705152434200.,-.499897397622640107348,-44,-404, + 5637442019490841.,5597710041498333.,-.481617222128823907944,-44,-410, + 5637442019521855.,5597710051366770.,-.498189316129748957773,-44,-410, + 5637442019535639.,5597710055752742.,-.499970314946619059762,-44,-410, + 5637442019535867.,5597710055825289.,.498868351471383577925,-44,-410, + 5637442019535924.,5597710055843426.,.498578164988976908751,-44,-410, + 5666178554252595.,7167422556471861.,-.499131165962264225512,-44,-412, + 5666178554261238.,7167422559993198.,.498000060593763849613,-44,-412, + 5666178554261257.,7167422560000939.,.493251936640652483434,-44,-412, + 5666178554261440.,7167422560075498.,-.499847987066928674419,-44,-412, + 5666178554266074.,7167422561963486.,-.499726373493812032183,-44,-412, + 5835612929831241.,6663965758005985.,.499961617817991053195,-44,-426, + 5835612929832011.,6663965758297663.,.499547441594252071572,-44,-426, + 5835612929832224.,6663965758378348.,.452681878235297889719,-44,-426, + 5835612929832239.,6663965758384030.,.491635044396679911754,-44,-426, + 5835612929832244.,6663965758385925.,-.495380565806237680240,-44,-426, + 5835612929832396.,6663965758443502.,.499345140950078124409,-44,-426, + 5835612929850957.,6663965765474458.,-.496232229007187003832,-44,-426, + 5835612929855886.,6663965767341576.,-.493972862254011892867,-44,-426, + 6029337333126098.,6161481658421007.,.499883181912481183693,-44,-442, + 6029337333126198.,6161481658456031.,.468154562591019953198,-44,-442, + 6029337333126219.,6161481658463387.,-.498508422172329842234,-44,-442, + 6029337333126728.,6161481658641658.,.499996203964939110423,-44,-442, + 6157045845835045.,8552588211999109.,-.495995574473720164532,-44,-452, + 6157045845835051.,8552588212002025.,.454128898070234624683,-44,-452, + 6157045845835266.,8552588212106550.,-.499743512568511839402,-44,-452, + 6157045845836068.,8552588212496449.,-.499758630177268936643,-44,-452, + 6157045845841682.,8552588215225742.,-.499366756795152460485,-44,-452, + 6157045845842484.,8552588215615641.,-.499239675362923788968,-44,-452, + 6268442428707939.,4697003566225769.,.499978191748679992462,-44,-462, + 6268442428709377.,4697003566609706.,.499703851849360641788,-44,-462, + 6268442428709537.,4697003566652425.,.498284446865743674031,-44,-462, + 6268442428709538.,4697003566652692.,.492025576806331451330,-44,-462, + 6268442428709576.,4697003566662838.,.254188525794703250356,-44,-462, + 6268442428711454.,4697003567164253.,-.499941584978700776831,-44,-462, + 6268442428723437.,4697003570363639.,-.498543326098576589911,-44,-462, + 6328789084993106.,4533522012299038.,.499997184872421281702,-44,-467, + 6328789084993554.,4533522012414488.,.499014248635357652842,-44,-467, + 6328789084993574.,4533522012419643.,-.483172421034064809022,-44,-467, + 6328789084993584.,4533522012422220.,-.474265753671486089610,-44,-467, + 6477002457247986.,5046463781443677.,-.499968450430354858688,-44,-479, + 6477002457249785.,5046463781959734.,.499893541483131872015,-44,-479, + 6477002457250942.,5046463782291630.,-.499611467972078778049,-44,-479, + 6477002457250956.,5046463782295646.,-.484047868566192462759,-44,-479, + 6477002457250977.,5046463782301670.,-.460702463464906550450,-44,-479, + 6477002457259937.,5046463784871920.,-.499340216805272221648,-44,-479, + 6491364931053049.,5708479440245917.,-.404264546180403794277,-44,-480, + 6491364931153237.,5708479472755870.,-.499949562076753023900,-44,-480, + 6491364931154902.,5708479473296145.,-.499526564773482061363,-44,-480, + 6491364931154941.,5708479473308800.,-.409425953744934120456,-44,-480, + 6491364931154949.,5708479473311396.,-.493507876220118788619,-44,-480, + 6544022097453422.,7117648001652270.,-.499980722813437614300,-44,-484, + 6544022097454521.,7117648002096915.,.499914388597169329998,-44,-484, + 6544022097454685.,7117648002163268.,.497171363958934786865,-44,-484, + 6616319171046715.,6775458822281153.,-.460876142972775959730,-44,-490, + 6616319171106439.,6775458845283268.,.499422750989110750243,-44,-490, + 6616319171106489.,6775458845302526.,-.488321391473120983473,-44,-490, + 6616319171106767.,6775458845409594.,.499822174568314341299,-44,-490, + 6616319171106931.,6775458845472758.,-.499977230403468150735,-44,-490, + 6702751591219232.,7202232780986918.,-.499489423505564723226,-44,-497, + 6702751591225682.,7202232783627544.,.499826952023259949739,-44,-497, + 6702751591225692.,7202232783631638.,.495175481024577622713,-44,-497, + 6702751591225842.,7202232783693048.,.425403695304373610899,-44,-497, + 6702751591225877.,7202232783707377.,.409123687311688509918,-44,-497, + 6740450947155521.,7674551267647984.,-.499888961207895965566,-44,-500, + 6740450947157285.,7674551268417524.,.499883883679605422840,-44,-500, + 6740450947157394.,7674551268465076.,-.497293154105309055535,-44,-500, + 6740450947157402.,7674551268468565.,.484565423534201946943,-44,-500, + 6740450947157430.,7674551268480780.,.421070457770587993660,-44,-500, + 6740450947167207.,7674551272745975.,-.498822378107031840555,-44,-500, + 6754791751798074.,8670643500470846.,.476901758284068698907,-44,-501, + 6754791752054319.,8670643626766070.,-.499087291499125652466,-44,-501, + 6754791752062084.,8670643630593198.,-.499945420391107748287,-44,-501, + 6754791752062145.,8670643630623263.,-.489256485285739398970,-44,-501, + 6754791752062168.,8670643630634598.,.498380353375171024470,-44,-501, + 6794379564761482.,5143125257107244.,-.497689520446452497575,-44,-505, + 6794379564776481.,5143125261492244.,-.499993231146673217889,-44,-505, + 6794379564777986.,5143125261932234.,.499381961877450488267,-44,-505, + 6794379564778054.,5143125261952114.,.491381198250977227027,-44,-505, + 6794379564778173.,5143125261986904.,.477380046808542297918,-44,-505, + 6794379564778482.,5143125262077241.,.499848744067854594290,-44,-505, + 6990987887135202.,5602400981877565.,-.498457238772502433724,-44,-521, + 6990987887148032.,5602400985963401.,.499981912608339124366,-44,-521, + 6990987887148193.,5602400986014673.,.499747429974736511617,-44,-521, + 7138546116893110.,6008309010959394.,-.499794147873841422498,-44,-533, + 7138546116894161.,6008309011318345.,-.499914781903716438583,-44,-533, + 7138546116897314.,6008309012395197.,.499851983643510587601,-44,-533, + 7138546116897513.,6008309012463163.,-.467806119110366000408,-44,-533, + 7138546116897528.,6008309012468286.,-.475418507756635561826,-44,-533, + 7138546116897573.,6008309012483655.,-.498255647486688056177,-44,-533, + 7138546116941715.,6008309027559597.,-.481033822268262888509,-44,-533, + 7322656671988654.,6432794440319830.,-.499786304108247129513,-44,-548, + 7322656671992607.,6432794441765292.,-.499711975570447263145,-44,-548, + 7322656671993110.,6432794441949220.,-.499173278819238892384,-44,-548, + 7322656671993181.,6432794441975182.,-.495120673425929496785,-44,-548, + 7322656671993184.,6432794441976278.,.490966058686609870100,-44,-548, + 7322656671993199.,6432794441981763.,.421399722055346487094,-44,-548, + 7322656671994332.,6432794442396059.,-.499830720488863899484,-44,-548, + 7322656671996057.,6432794443026826.,-.499887615613735754632,-44,-548, + 7357968097663255.,5984600918451668.,.499987438374507661708,-44,-551, + 7357968097663930.,5984600918681293.,.494279412716217795644,-44,-551, + 7357968097664389.,5984600918837438.,.490402987855922420282,-44,-551, + 7357968097664400.,5984600918841181.,-.472652824190875824474,-44,-551, + 7357968097667640.,5984600919943381.,-.499899257642944350412,-44,-551, + 7461059150900097.,8199393039510171.,-.499907443546462815761,-44,-559, + 7461059150901532.,8199393040178997.,.499902037663913863965,-44,-559, + 7461059150902133.,8199393040459113.,-.498767817000181853373,-44,-559, + 7461059150902182.,8199393040481950.,.496349372168481760900,-44,-559, + 7461059150902231.,8199393040504788.,.491466624948441772248,-44,-559, + 7461059150902550.,8199393040653469.,-.499503174330105379114,-44,-559, + 7461059150915048.,8199393046478556.,-.497821805469991776915,-44,-559, + 7819356134936067.,5346650313970277.,-.491247855297370443049,-44,-589, + 7819356134936080.,5346650313974227.,.493235036842879823710,-44,-589, + 7819356134936400.,5346650314071482.,.495891763835208068468,-44,-589, + 7819356134936912.,5346650314227091.,-.499853793336025785327,-44,-589, + 7819356134938781.,5346650314795121.,-.499909975341934161979,-44,-589, + 7819356134948190.,5346650317654722.,-.498741147111819273438,-44,-589, + 7819356134974548.,5346650325665495.,-.487217131122968203557,-44,-589, + 7880037969510111.,5259822560398809.,.499952526186295956870,-44,-594, + 7880037969510184.,5259822560420635.,.499628773705556184512,-44,-594, + 7880037969511060.,5259822560682547.,.495750808280009809388,-44,-594, + 7880037969511274.,5259822560746531.,-.436701415711703542669,-44,-594, + 7880037969511279.,5259822560748025.,.494783354714968710659,-44,-594, + 7880037969541126.,5259822569671870.,-.492456670637263373154,-44,-594, + 7880037969578344.,5259822580799542.,-.461767829173061814272,-44,-594, + 7961347698801263.,8357315044723128.,-.498913551177388481065,-44,-600, + 7961347698807226.,8357315047555901.,-.499906521780294532604,-44,-600, + 7961347698807860.,8357315047857088.,-.499787923932430222550,-44,-600, + 7961347698809762.,8357315048760649.,-.499367004011387289028,-44,-600, + 7961347698810225.,8357315048980601.,-.478745023877672185483,-44,-600, + 7961347698810242.,8357315048988677.,-.486627044020655999769,-44,-600, + 7961347698810276.,8357315049004828.,.497608939105793508301,-44,-600, + 7961347698810396.,8357315049061836.,-.499204988578555006138,-44,-600, + 8016984453611790.,6171763796293954.,-.476508049099031332104,-44,-605, + 8016984453625882.,6171763801237768.,-.488148440787511692766,-44,-605, + 8016984453660327.,6171763813321906.,-.462037024362926882668,-44,-605, + 8016984453660333.,6171763813324010.,.482896279804838563869,-44,-605, + 8016984453660367.,6171763813335939.,-.495814983017233699835,-44,-605, + 8016984453660549.,6171763813399789.,-.499504292025148333932,-44,-605, + 8016984453661112.,6171763813597303.,-.499923631650633982405,-44,-605, + 8049376796629557.,4863871102116675.,-.498760123767131995087,-44,-608, + 8049376796641760.,4863871105490549.,-.499823238743066025359,-44,-608, + 8049376796642167.,4863871105603075.,.478629555821789511857,-44,-608, + 8049376796642190.,4863871105609434.,.497067997849503332115,-44,-608, + 8049376796642357.,4863871105655607.,-.499487412875559312430,-44,-608, + 8049376796644363.,4863871106210224.,-.499993003321171536183,-44,-608, + 8049376796668172.,4863871112792914.,-.494683482083369135895,-44,-608, + 8198893031068730.,5830381396852385.,-.485713833510327478030,-44,-620, + 8198893031068737.,5830381396854704.,.445969183752321291088,-44,-620, + 8198893031068761.,5830381396862658.,.497453821375217013733,-44,-620, + 8198893031068878.,5830381396901434.,.498441585180146506953,-44,-620, + 8198893031069112.,5830381396978987.,-.499582113549670973328,-44,-620, + 8198893031085272.,5830381402334715.,-.497355745027235472677,-44,-620, + 8198893031088302.,5830381403338914.,-.496390598137442319413,-44,-620, + 8466376832790243.,5576371105649070.,-.499796636103706420754,-44,-642, + 8466376832790293.,5576371105664919.,-.499872527722895811266,-44,-642, + 8466376832791743.,5576371106124539.,.497946210142283750908,-44,-642, + 8466376832794793.,5576371107091328.,.493481688147187811824,-44,-642, + 8466376832794888.,5576371107121442.,-.406654679036766407027,-44,-642, + 8466376832794893.,5576371107123026.,.493338148247582183422,-44,-642, + 8466376832804192.,5576371110070624.,-.499222218783325976121,-44,-642, + 8627767282620296.,6564063307841327.,-.499354004332431562706,-44,-655, + 8627767282625401.,6564063309746124.,-.499891373446277970825,-44,-655, + 8627767282626443.,6564063310134918.,.499870981509072240823,-44,-655, + 8627767282628002.,6564063310716619.,-.495643107206477793991,-44,-655, + 8627767282628010.,6564063310719603.,.494758492887695777830,-44,-655, + 8627767282628018.,6564063310722588.,.485160094339285827201,-44,-655, + 8627767282628212.,6564063310794975.,-.497600654878117019156,-44,-655, + 8627767282628422.,6564063310873331.,-.499557267204964672147,-44,-655, + 8627767282662178.,6564063323468498.,-.487623989832252571983,-44,-655, + 8666709478645904.,7506548975412648.,-.499423670015152416419,-44,-658, + 8666709478650588.,7506548977411301.,-.499919144847482041534,-44,-658, + 8666709478651783.,7506548977921204.,.499826155462823552723,-44,-658, + 8666709478652872.,7506548978385879.,-.478618465042914549327,-44,-658, + 8666709478652882.,7506548978390146.,-.499540688240339208789,-44,-658, + 8666709478652978.,7506548978431108.,.499606092473660729901,-44,-658, + 8666709478679887.,7506548989913123.,-.491156947331084007535,-44,-658, + 8704521642349227.,8050280648504872.,-.496173250338521215720,-44,-661, + 8704521642361756.,8050280654238211.,-.499735738118914376469,-44,-661, + 8704521642366359.,8050280656344569.,-.497225403767300340701,-44,-661, + 8704521642366369.,8050280656349145.,-.442472445919003708608,-44,-661, + 8704521642366468.,8050280656394447.,.499581977126121989002,-44,-661, + 8704521642367710.,8050280656962793.,.499922764263635876700,-44,-661, + 6199774374005316.,8166861726525475.,-.494040897247223902477,-43,-964, + 6199774374015949.,8166861736397839.,.494754277747294106162,-43,-964, + 6199774374016048.,8166861736489757.,.498561947927976416508,-43,-964, + 6199774374016586.,8166861736989271.,.499070202203718426930,-43,-964, + 6199774374017662.,8166861737988300.,-.499821633143068532741,-43,-964, + 6201894819465859.,5196598473787021.,-.463700063899822926466,-43,-965, + 6201894819498571.,5196598493112775.,-.499817837621532740551,-43,-965, + 6201894819498743.,5196598493214389.,.494312791774253947920,-43,-965, + 6201894819498901.,5196598493307734.,-.499449181407923627559,-43,-965, + 6201894819501132.,5196598494625775.,-.499795269875329941362,-43,-965, + 6202467040859645.,5545896653642939.,.497119394378699421496,-43,-965, + 6202467040859657.,5545896653650505.,.442554002238510165768,-43,-965, + 6202467040859754.,5545896653711664.,-.498515871963471826675,-43,-965, + 6202467040860414.,5545896654127791.,-.499591955239476257605,-43,-965, + 6202467040860634.,5545896654266500.,-.499943711134296513824,-43,-965, + 6202467040863383.,5545896655999732.,-.499501092093739604662,-43,-965, + 6204453807810608.,6951292159804554.,-.499309420044462503482,-43,-965, + 6204453807811111.,6951292160202060.,-.476163251692941258369,-43,-965, + 6204453807811122.,6951292160210752.,.498498250508643036112,-43,-965, + 6204453807812187.,6951292161052390.,.499867895749115578583,-43,-965, + 6204453807819054.,6951292166479178.,-.497304649723563668156,-43,-965, + 6204453807841944.,6951292184568468.,-.457281955074230220341,-43,-965, + 6208860953194042.,5736302310849027.,-.499802101319207243816,-43,-966, + 6208860953194225.,5736302310968368.,.498997359365563586296,-43,-966, + 6208860953194345.,5736302311046626.,-.452608203796167458913,-43,-966, + 6208860953194366.,5736302311060321.,-.469139067585245282826,-43,-966, + 6208860953194401.,5736302311083146.,-.496690434576538037281,-43,-966, + 6208860953196583.,5736302312506120.,-.499856330890161424512,-43,-966, + 6208860953217453.,5736302326116325.,-.480222071655330373352,-43,-966, + 6208860953225801.,5736302331560407.,-.463326558841309633312,-43,-966, + 6209612050139118.,6247645311120999.,-.499237617009622806780,-43,-966, + 6209612050139318.,6247645311263054.,-.491510476381468830036,-43,-966, + 6209612050139358.,6247645311291465.,-.489964660661007368191,-43,-966, + 6209612050139747.,6247645311567762.,-.499924865049005277013,-43,-966, + 6209612050151389.,6247645319836784.,-.494158507671387335572,-43,-966, + 6209612050175971.,6247645337296765.,-.445859316202554879946,-43,-966, + 6210556758280812.,6956006449929601.,-.499651593257812661256,-43,-966, + 6210556758282537.,6956006451293741.,.499881982519241833697,-43,-966, + 6210556758283694.,6956006452208704.,.477690046529803378406,-43,-966, + 6210556758283699.,6956006452212659.,-.490426338521219065481,-43,-966, + 6210556758283730.,6956006452237174.,-.492747875670972086910,-43,-966, + 6210556758283823.,6956006452310719.,-.499711968732174465067,-43,-966, + 6210556758293734.,6956006460148401.,-.495482145073979186302,-43,-966, + 6210556758306656.,6956006470367201.,-.476300653086438434079,-43,-966, + 6210625303036399.,7010423831783938.,-.497631952386994447242,-43,-966, + 6210625303043176.,7010423837185158.,.499730338563242035323,-43,-966, + 6210625303043600.,7010423837523083.,.496604917876197439664,-43,-966, + 6210625303043622.,7010423837540617.,.340782816984097786058,-43,-966, + 6210625303043741.,7010423837635459.,.497927667765692570806,-43,-966, + 6210625303044729.,7010423838422889.,-.499845366167715260088,-43,-966, + 6210625303046988.,7010423840223296.,-.499481974584133489672,-43,-966, + 6210963927903145.,7285567602804018.,-.499939571338740336165,-43,-966, + 6210963927903566.,7285567603152720.,.492753877592023664634,-43,-966, + 6210963927903577.,7285567603161831.,.497313787639209260537,-43,-966, + 6210963927903588.,7285567603170943.,-.498126290919790877836,-43,-966, + 6210963927905338.,7285567604620421.,-.499811876185863493659,-43,-966, + 6210963927914110.,7285567611886033.,-.494772526162103818632,-43,-966, + 6211629331434567.,7858085280804670.,-.444682768004442545631,-43,-966, + 6211629331467554.,7858085310273965.,-.498676473124602261085,-43,-966, + 6211629331467568.,7858085310286472.,-.446503858938083960085,-43,-966, + 6211629331467590.,7858085310306125.,.492624575002683044860,-43,-966, + 6211629331467784.,7858085310479438.,-.498695288654779124868,-43,-966, + 6211629331474224.,7858085316232682.,-.497040806329191334466,-43,-966, + 6211629331481814.,7858085323013291.,-.489683255772224164560,-43,-966, + 6211629331482044.,7858085323218764.,-.489368963754003223213,-43,-966, + 6211778603070456.,7992576665290324.,-.499985292258982551421,-43,-966, + 6211778603070516.,7992576665344843.,-.454005640155683489410,-43,-966, + 6211778603070519.,7992576665347568.,.498293352211485708218,-43,-966, + 6211778603107059.,7992576698549668.,-.431011250824514734736,-43,-966, + 6213068118373552.,4627269394454617.,.497040120289864770702,-43,-967, + 6213068118373569.,4627269394463561.,-.489339264504432102380,-43,-967, + 6213068118373586.,4627269394472504.,-.475718632014779025551,-43,-967, + 6213068118373703.,4627269394534053.,-.499623221942794153781,-43,-967, + 6213068118374290.,4627269394842850.,-.499884320027257108567,-43,-967, + 6213068118378181.,4627269396889748.,-.499390435222986715378,-43,-967, + 6213068118385376.,4627269400674747.,-.495834991992752461655,-43,-967, + 6213068118418047.,4627269417861641.,-.440881888663119372548,-43,-967, + 6213845931996093.,5055082139936123.,-.485192662261547774172,-43,-967, + 6213845932010894.,5055082148442203.,-.498630358984059893374,-43,-967, + 6213845932017361.,5055082152158763.,.499923866955549628538,-43,-967, + 6213845932017384.,5055082152171982.,-.485077171813529574477,-43,-967, + 6214806090309943.,5638124439406335.,-.499974125871206341020,-43,-967, + 6214806090309994.,5638124439439025.,-.492525980772094401195,-43,-967, + 6214806090309996.,5638124439440306.,.468550420937095269183,-43,-967, + 6214806090322429.,5638124447409618.,-.494365263007778583610,-43,-967, + 6214806090326591.,5638124450077379.,-.489971061818390080813,-43,-967, + 6216451576513564.,6797953336852428.,-.499848204842195943105,-43,-967, + 6216451576513589.,6797953336871748.,.445597969117407853790,-43,-967, + 6216451576513601.,6797953336881022.,.499412152123267919676,-43,-967, + 6216451576516277.,6797953338949137.,-.499709039863907990123,-43,-967, + 6216451576527092.,6797953347307378.,-.491989785054847017040,-43,-967, + 6217443062184930.,7609066201885682.,-.492769194330387900024,-43,-967, + 6217443062186706.,7609066203422012.,-.494689999988337676325,-43,-967, + 6217443062196474.,7609066211871827.,-.499709658897902353041,-43,-967, + 6217443062197047.,7609066212367501.,-.462550588594861870866,-43,-967, + 6217443062197066.,7609066212383937.,-.499712300187821859629,-43,-967, + 6218040858377316.,8144167414133611.,-.459237915054726553172,-43,-967, + 6218040858378755.,8144167415465959.,-.463336995674018141339,-43,-967, + 6218040858398901.,8144167434118831.,-.497837699644911020541,-43,-967, + 6218040858404657.,8144167439448223.,-.499848269445885419165,-43,-967, + 6218040858404709.,8144167439496369.,-.498460683733998509545,-43,-967, + 6218040858405125.,8144167439881537.,-.487349751522140447629,-43,-967, + 6218040858405151.,8144167439905610.,-.486654713429784837491,-43,-967, + 6218133856923804.,8230730134747121.,-.494710795448523384752,-43,-967, + 6218133856923815.,8230730134757413.,.487781964505442845296,-43,-967, + 6218133856923979.,8230730134910872.,.499493730367725300882,-43,-967, + 6218133856926035.,8230730136834725.,-.499779405047795308971,-43,-967, + 6218133856943285.,8230730152975993.,-.479858270281631173266,-43,-967, + 6218133856969160.,8230730177187895.,-.390624178738164283697,-43,-967, + 6220261028930001.,5241244683366727.,-.498206000440187841330,-43,-968, + 6220261028932360.,5241244684772362.,-.498837108793245363542,-43,-968, + 6220261028937078.,5241244687583632.,-.498968405343372815302,-43,-968, + 6220261028937272.,5241244687699228.,.444678650285782088031,-43,-968, + 6220261028937286.,5241244687707570.,.492158433344252119829,-43,-968, + 6220261028937329.,5241244687733192.,.495132135755332444201,-43,-968, + 6220261028937415.,5241244687784437.,-.498920083660407157071,-43,-968, + 6221453246990860.,6002034567508848.,-.496277509181143410769,-43,-968, + 6221453246996159.,6002034571124633.,-.499175949198154060693,-43,-968, + 6221453247000652.,6002034574190442.,-.478413569007577645499,-43,-968, + 6221453247000686.,6002034574213642.,-.499171916574800680855,-43,-968, + 6221453247001072.,6002034574477030.,-.499539809591914252394,-43,-968, + 6221453247001458.,6002034574740418.,-.499896144322001579712,-43,-968, + 6221453247017548.,6002034585719467.,-.488923085441504124490,-43,-968, + 6223203870611533.,7323741782255476.,-.286373926081878661150,-43,-968, + 6223203870656407.,7323741819618154.,-.476408948485693993230,-43,-968, + 6223203870678645.,7323741838133803.,-.496873549481067531012,-43,-968, + 6223203870678707.,7323741838185425.,-.487781618045194573030,-43,-968, + 6223203870678720.,7323741838196248.,.481866736304459404009,-43,-968, + 6223203870678844.,7323741838299493.,-.499948156650284926270,-43,-968, + 6224797402101859.,8778318949923941.,-.499843122879664222939,-43,-968, + 6224797402103552.,8778318951613519.,.492344577912619594741,-43,-968, + 6224797402103600.,8778318951661422.,.499806500907078298052,-43,-968, + 6226978761104001.,5624485920947850.,-.499728982116429401639,-43,-969, + 6226978761106173.,5624485922336691.,.499891031951015387872,-43,-969, + 6226978761106666.,5624485922651930.,.498931727363400559399,-43,-969, + 6226978761106673.,5624485922656407.,-.490939778548759035194,-43,-969, + 6226978761119798.,5624485931048926.,-.493748618854657995920,-43,-969, + 6228929253362283.,7020783692584622.,-.496762830781129552508,-43,-969, + 6228929253370719.,7020783699317990.,-.499231361216042206801,-43,-969, + 6228929253370760.,7020783699350714.,.499349935237225056132,-43,-969, + 6228929253374275.,7020783702156285.,-.499759618042659940132,-43,-969, + 6228929253377790.,7020783704961855.,-.497748039641672278868,-43,-969, + 6228929253409507.,7020783730277435.,-.431742159147053547091,-43,-969, + 6229259425821875.,7289326185388989.,-.474877561003811720256,-43,-969, + 6229259425840289.,7289326200648679.,-.498957387663710986152,-43,-969, + 6229259425842085.,7289326202137025.,-.499813407109382055851,-43,-969, + 6229259425844779.,7289326204369543.,.499472362738577570383,-43,-969, + 6229259425844966.,7289326204524510.,.482744377630056356154,-43,-969, + 6229259425844976.,7289326204532797.,.487197519353882415983,-43,-969, + 6229259425845006.,7289326204557659.,-.499442998947239576699,-43,-969, + 6229864060842811.,7808010198472902.,-.495106032929431464728,-43,-969, + 6229864060849615.,7808010204512595.,-.499951575675537618103,-43,-969, + 6229864060852639.,7808010207196902.,.499394457547786461919,-43,-969, + 6229864060852645.,7808010207202229.,-.492669414740879125074,-43,-969, + 6229864060852657.,7808010207212881.,-.476797148419264300158,-43,-969, + 6230458212759317.,8353640298753011.,-.499843617682648357550,-43,-969, + 6230458212760174.,8353640299566902.,.499513957231420883608,-43,-969, + 6230458212760247.,8353640299636231.,-.477199877238704057507,-43,-969, + 6230458212760257.,8353640299645728.,-.487708576879834197974,-43,-969, + 6230458212760267.,8353640299655225.,-.498217265724137307021,-43,-969, + 6230458212762838.,8353640302096901.,-.499642942315578618123,-43,-969, + 6230458212771212.,8353640310049680.,-.493504374395129906952,-43,-969, + 6231243192167606.,4566705527611162.,.483545107700500464505,-43,-970, + 6231243192167612.,4566705527614278.,-.470593451614237569730,-43,-970, + 6231243192167652.,4566705527635045.,-.498183792744401751644,-43,-970, + 6231243192168415.,4566705528031175.,-.499451468343380468357,-43,-970, + 6231243192168742.,4566705528200945.,-.499984239050963498489,-43,-970, + 6231243192185052.,4566705536668678.,-.491026699288817249819,-43,-970, + 6234994166048078.,6995229471629094.,-.499955365198723137353,-43,-970, + 6234994166048948.,6995229472320975.,-.499464239613609315390,-43,-970, + 6234994166049415.,6995229472692363.,.497379337140366598163,-43,-970, + 6234994166049430.,6995229472704292.,.480147658947618131515,-43,-970, + 6234994166049528.,6995229472782229.,-.499098804638069644856,-43,-970, + 6234994166053475.,6995229475921142.,-.499252495510005219299,-43,-970, + 6234994166074773.,6995229492858707.,-.470962417466477517689,-43,-970, + 6237313848723364.,4553055836655102.,-.259300615353088876900,-43,-971, + 6237313848804588.,4553055878698474.,-.497514991319480796956,-43,-971, + 6237313848812872.,4553055882986459.,-.499894864119280345573,-43,-971, + 6237313848813680.,4553055883404698.,-.499427977820795055109,-43,-971, + 6237313848813815.,4553055883474577.,-.458504640919171337595,-43,-971, + 6237313848813831.,4553055883482859.,-.498098841014184524946,-43,-971, + 6237313848814337.,4553055883744775.,.499742352651498403167,-43,-971, + 6237313848818883.,4553055886097888.,-.499214177062254459374,-43,-971, + 6237616720075208.,4712559158444607.,.499574456289646609418,-43,-971, + 6237616720075544.,4712559158624621.,.498206562565694987084,-43,-971, + 6237616720075696.,4712559158706056.,.402351917232725268619,-43,-971, + 6237616720075712.,4712559158714628.,.497525194321722722293,-43,-971, + 6237616720076511.,4712559159142698.,-.499739449728383838540,-43,-971, + 6237616720085337.,4712559163871280.,-.496974320779132796047,-43,-971, + 6237616720119170.,4712559181997511.,-.442420662967178440878,-43,-971, + 6237616720120641.,4712559182785608.,-.438467211689117537452,-43,-971, + 6238540479995416.,5234390713033475.,.436138592621458880053,-43,-971, + 6238540480134464.,5234390795778345.,-.474706153664176268457,-43,-971, + 6238540480161204.,5234390811690820.,-.499910130171550910446,-43,-971, + 6238540480161622.,5234390811939563.,.499705908824794843511,-43,-971, + 6238540480161745.,5234390812012759.,-.495620135006318351177,-43,-971, + 6238540480161770.,5234390812027636.,-.462149693553935308697,-43,-971, + 6238540480161782.,5234390812034777.,-.486083866637844185686,-43,-971, + 6238540480161831.,5234390812063935.,.499518361043476927233,-43,-971, + 6239388580998303.,5764211504080762.,-.494938377080451172589,-43,-971, + 6239388581009926.,5764211511697487.,.497731668953028512569,-43,-971, + 6239388581009964.,5764211511722389.,.466923212827169297126,-43,-971, + 6239388581009980.,5764211511732875.,-.493417157567842784471,-43,-971, + 6239388581010053.,5764211511780713.,-.499969855479601597522,-43,-971, + 6240180939044383.,6307560870883294.,-.498371032888236290146,-43,-971, + 6240180939050615.,6307560875352178.,-.499301815249191555984,-43,-971, + 6240180939050742.,6307560875443248.,-.494794924880048594243,-43,-971, + 6240180939050753.,6307560875451135.,.458351403091111545724,-43,-971, + 6240180939050765.,6307560875459740.,.498147408491685335123,-43,-971, + 6240180939051042.,6307560875658374.,-.499891537085492259841,-43,-971, + 6240180939061244.,6307560882974092.,-.495509735012693191413,-43,-971 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/fpaccuracy.c b/src/regress/lib/libm/fpaccuracy/fpaccuracy.c new file mode 100644 index 000000000..29e8816ac --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/fpaccuracy.c @@ -0,0 +1,56 @@ +/* $OpenBSD: fpaccuracy.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Written by Martynas Venckus. Public domain + */ + +#include +#include + +#include "fpaccuracy.h" + +int +main(int argc, char *argv[]) +{ + FILE *out; + int retval = 0; + + if ((out = fopen("fpaccuracy.out", "w")) == NULL) + err(1, NULL); + + fprintf(out, "%8s %5s %27s %26s %25s\n", "function", "tests", + "max err in ulps", "argument (max err)", "value (max err)"); + retval |= fpaccuracy_Gamma(out); + retval |= fpaccuracy_INV(out); + retval |= fpaccuracy_Pix(out); + retval |= fpaccuracy_acos(out); + retval |= fpaccuracy_acosh(out); + retval |= fpaccuracy_asin(out); + retval |= fpaccuracy_asinh(out); + retval |= fpaccuracy_atan(out); + retval |= fpaccuracy_atanh(out); + retval |= fpaccuracy_cos(out); + retval |= fpaccuracy_cosh(out); + retval |= fpaccuracy_erf(out); + retval |= fpaccuracy_erfc(out); + retval |= fpaccuracy_exp(out); + retval |= fpaccuracy_j0(out); + retval |= fpaccuracy_j1(out); + retval |= fpaccuracy_lgamma(out); + retval |= fpaccuracy_log(out); + retval |= fpaccuracy_log10(out); + retval |= fpaccuracy_pow2_x(out); + retval |= fpaccuracy_powx_275(out); + retval |= fpaccuracy_sin(out); + retval |= fpaccuracy_sinh(out); + retval |= fpaccuracy_sqrt(out); + retval |= fpaccuracy_tan(out); + retval |= fpaccuracy_tanh(out); + retval |= fpaccuracy_y0(out); + retval |= fpaccuracy_y1(out); + + fclose(out); + + return retval; +} + diff --git a/src/regress/lib/libm/fpaccuracy/fpaccuracy.h b/src/regress/lib/libm/fpaccuracy/fpaccuracy.h new file mode 100644 index 000000000..915666485 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/fpaccuracy.h @@ -0,0 +1,35 @@ +/* $OpenBSD: fpaccuracy.h,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Written by Martynas Venckus. Public domain + */ + +int fpaccuracy_Gamma(FILE *); +int fpaccuracy_INV(FILE *); +int fpaccuracy_Pix(FILE *); +int fpaccuracy_acos(FILE *); +int fpaccuracy_acosh(FILE *); +int fpaccuracy_asin(FILE *); +int fpaccuracy_asinh(FILE *); +int fpaccuracy_atan(FILE *); +int fpaccuracy_atanh(FILE *); +int fpaccuracy_cos(FILE *); +int fpaccuracy_cosh(FILE *); +int fpaccuracy_erf(FILE *); +int fpaccuracy_erfc(FILE *); +int fpaccuracy_exp(FILE *); +int fpaccuracy_j0(FILE *); +int fpaccuracy_j1(FILE *); +int fpaccuracy_lgamma(FILE *); +int fpaccuracy_log(FILE *); +int fpaccuracy_log10(FILE *); +int fpaccuracy_pow2_x(FILE *); +int fpaccuracy_powx_275(FILE *); +int fpaccuracy_sin(FILE *); +int fpaccuracy_sinh(FILE *); +int fpaccuracy_sqrt(FILE *); +int fpaccuracy_tan(FILE *); +int fpaccuracy_tanh(FILE *); +int fpaccuracy_y0(FILE *); +int fpaccuracy_y1(FILE *); + diff --git a/src/regress/lib/libm/fpaccuracy/header.h b/src/regress/lib/libm/fpaccuracy/header.h new file mode 100644 index 000000000..f76eb71da --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/header.h @@ -0,0 +1,68 @@ +/* $OpenBSD: header.h,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* C program to test the accuracy of a given function. + This will be done in terms of ulps. A ulp is a "unit in + the last place". No program can guarantee results better + than 0.5 ulp. As a matter of fact, 0.5 ulp could require + infinite computation. So very good implementations + usually achieve 0.51 ulp. 0.6 ulp is still very good, 1 ulp + starts to get a bit sloppy. + + The model of computation is the standard one, the result of f(x) + is the correctly rounded value of f(x) when x is assumed to be + an exact rational. + + This program selects values which are difficult to compute to + measure the quality of the computation. + + Hardware which has floating point registers with extra bits of + precision (e.g. Pentium) usually do much better than others. + This function computes the accuracy for both cases. */ + +/* We represent double precision floating point numbers x as a + pair of an integer and a base 2 exponent. x = mant*2^expo, + or x = scalb(mant,expo). 2^52 <= mant < 2^53. This is to + avoid sloppy compilers which do not transcribe correctly + some input doubles */ + +/* scalb( F(arg[i]), val_e[i] ) == val[i]+eps[i] + to about twice precision. + The scaling is done so that val[i] is in ulps + (val is consequently an integer) + and to avoid underflows in certain cases. */ + +/* Shell sort, needs the definition of KEY(x) + From: Gonnet & Baeza, Hanbook of Algorithms and Data structures, 4.1.4. + Can sort any array r from r[lo] to r[hi] in place. + Uses a temporary variable t, of the same type as r[]. + The comparison is done between KEY(r[i]) vs KEY(r[j]), + so the macro KEY(x) has to be defined appropriately */ +#define SORT(r,lo,up,t) \ + { int SORTd, SORTi, SORTj; \ + for ( SORTd=(up)-(lo)+1; SORTd>1; ) { \ + SORTd = SORTd<5 ? 1 : (5*SORTd-1)/11; \ + for ( SORTi=(up)-SORTd; SORTi>=(lo); SORTi-- ) { \ + (t) = (r)[SORTi]; \ + for ( SORTj=SORTi+SORTd; SORTj<=(up) && KEY((t)) > KEY((r)[SORTj]); SORTj+=SORTd ) \ + (r)[SORTj-SORTd] = (r)[SORTj]; \ + (r)[SORTj-SORTd] = (t); \ + } \ + }} + +double scalb( double x, double n ); diff --git a/src/regress/lib/libm/fpaccuracy/j0.c b/src/regress/lib/libm/fpaccuracy/j0.c new file mode 100644 index 000000000..11a83a604 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/j0.c @@ -0,0 +1,1085 @@ +/* $OpenBSD: j0.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 18:17:02. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1053 +#define F j0 +#define Fs "j0" +#define Fn fpaccuracy_j0 + /* 4 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -7738726398386817.,-4709432060500464.,.426631778818741143117,-48,93, + -7738726398386175.,-5087627885800182.,-.244319750038220555432,-48,95, + -7738726398385938.,-5968004596624071.,-.357471911811650972580,-48,104, + -7738726398385937.,4997807525456558.,.184804083978878967948,-48,104, + -7738726398385936.,7981809823768595.,-.427957581457272629210,-48,103, + -7738726398385904.,5732337618033096.,-.249694050022780667701,-48,98, + -7738726398385856.,6978348354796815.,-.492328447051757543695,-48,97, + -7738726398385852.,7321029983611838.,-.121635533576607449432,-48,97, + -7738726398383926.,5385069820564568.,-.309119138463628250768,-48,92, + -7738726398327398.,4897557629580928.,-.135595450064412363048,-48,87, + -7738726398253205.,5552365007049614.,-.380398993126086394359,-48,86, + -6854611356964819.,5592464255201224.,.203376237505405519365,-48,95, + -6854611356964770.,8954696439900174.,-.287216368804584596128,-48,96, + -6854611356964574.,8644648420074370.,.402446568812316630989,-48,104, + -6854611356964573.,-6014352549590064.,-.474826357234504859091,-48,105, + -6854611356956791.,-5534515805163572.,-.027780867041964344694,-48,90, + -6854611356954784.,-6961835883449269.,-.381387782464329630417,-48,90, + -6854611356933735.,-5482818254355861.,-.272815934599856004046,-48,88, + -5970544926399147.,-6846746571301368.,.490368793918836607858,-48,90, + -5970544926391423.,-7686524494758738.,-.234026881027524847909,-48,93, + -5970544926390518.,-8677666850865074.,.380744764737287267737,-48,95, + -5970544926390276.,-5552990424343133.,-.356562908476333174633,-48,96, + -5970544926390163.,-5373298431082872.,.074267446083067933810,-48,103, + -5970544926390162.,6954106419290648.,.110243207407158219283,-48,106, + -5970544926390160.,6677193384699870.,.014742848865776465714,-48,102, + -5086552309507516.,4977406863959679.,.151280847735994154514,-48,91, + -5086552309506798.,7583575627110846.,.269322342775459817695,-48,92, + -5086552309504644.,7517781194932830.,.005718974853591484082,-48,96, + -5086552309504529.,5764282966417298.,-.439167873484795253616,-48,98, + -5086552309504502.,7354782250853790.,.444801876667116384824,-48,105, + -5086552309504501.,-4924947376643611.,.205049902845397460561,-48,103, + -5086552309504500.,-5844295158000335.,-.265405672625621059553,-48,102, + -5086552309504443.,-6206503716552426.,-.148229054039106404588,-48,97, + -5086552309489882.,-6035316227904027.,-.089599953379071209593,-48,89, + -5086552309472248.,-6657492085911606.,.482698116369451391588,-48,88, + -8405359428530652.,-4836138564343103.,.063891104869036792145,-49,100, + -8405359428530643.,-5201820709133199.,-.145115336141523269778,-49,103, + -8405359428530642.,-5924043811816510.,-.240925520742916547632,-49,105, + -8405359428530641.,8959195212899778.,-.130705272146936020648,-49,105, + -8405359428530612.,6883955108276139.,.114271979892141116735,-49,99, + -8405359428530572.,8092989749361937.,-.018145486682521349582,-49,98, + -8405359428530363.,8098632117351751.,.057467189029660555663,-49,96, + -8405359428528313.,8461215733583305.,.357916840782844155473,-49,93, + -8405359428526263.,7955051226249729.,.278799586313980361786,-49,92, + -6638043763252199.,5535214138670451.,.354353433614563798870,-49,88, + -6638043763211941.,6246351713020946.,.326827316493959579374,-49,92, + -6638043763208887.,7048982350572646.,-.477090133931678620327,-49,104, + -6638043763208886.,-5305062914918467.,-.470376035456197477947,-49,106, + -6638043763208874.,-6364327667522304.,.002089211619910530013,-49,100, + -6638043763208792.,-6160934259243343.,-.086597415551559383739,-49,97, + -6638043763207118.,-7230842221648976.,.135083054629386435976,-49,93, + -4871615725498601.,-5538512595161004.,-.251591017313886979633,-49,91, + -4871615725493972.,-6213321155545315.,.437467632913619633842,-49,100, + -4871615725493962.,-6448561376876568.,.347333021229992447521,-49,106, + -4871615725493961.,8167959470231458.,.237192340688513239176,-49,104, + -4871615725493960.,8974029642341030.,.197559710535800176895,-49,103, + -4871615725493885.,5870746448191273.,-.001496592160069235957,-49,97, + -4871615725493798.,6259079020412915.,-.484767404555433611618,-49,96, + -4871615725493433.,5050840489746512.,.408733104193701887194,-49,94, + -4871615725493068.,8536911224390057.,.378351547844815479064,-49,94, + -6215055430146543.,8363872846193196.,-.046191075361235984953,-50,91, + -6215055430135455.,8611120289364183.,.086717768318848815936,-50,98, + -6215055430135426.,5833615462821513.,.022932520125087587577,-50,98, + -6215055430135368.,8915385911556288.,.483528010945618356783,-50,103, + -6215055430135366.,5571440174924095.,.153452689362328435294,-50,104, + -6215055430135365.,-8931610386722356.,.276156074709931888074,-50,108, + -6215055430134949.,-4981443766547774.,-.461347083266910036633,-50,95, + -6215055430131306.,-6074431593177692.,-.030106864708156865820,-50,92, + -5415185742764999.,-4941466977612132.,-.003075784973312870494,-51,97, + -5415185742764864.,-4956019166821518.,-.060168176450731029863,-51,106, + -5415185742764863.,6874120317961914.,.212833175686510942009,-51,105, + -5415185742764862.,8113125109667295.,-.408615166161446018014,-51,104, + -5415185742764858.,6704346228103163.,.291588489553334696408,-51,102, + -5415185742764829.,5075727140072404.,-.374242799132482033337,-51,99, + -5415185742763581.,5857570631776928.,.377649899761252566595,-51,94, + -5415185742761454.,7785225818873887.,.458714112572214042725,-51,93, + -4894866757611262.,9007199254723505.,-.000055616394185965282,-51,56, + -4894866757610286.,9007199254740981.,.445537735023650089002,-51,56, + -4894866757610285.,4503599627370500.,-.324134004746210286690,-51,55, + -4894866757610281.,4503599627370535.,.488254506221657797551,-51,55, + -4894866757610260.,4503599627370724.,-.496705811196787773828,-51,55, + -4894866757610132.,4503599627371869.,.499726539785468788776,-51,55, + -4894866757607339.,4503599627396876.,-.499995672833912246066,-51,55, + -8803779798143807.,9007199254580758.,-.499997799930712562196,-52,55, + -8803779798110026.,9007199254737293.,-.499970005616246825431,-52,55, + -8803779798109234.,9007199254740962.,.483749305568719462773,-52,55, + -8803779798109228.,9007199254740990.,.286656270047590368086,-52,55, + -8803779798109227.,4503599627370497.,.460237048730367903432,-52,54, + -8803779798109226.,4503599627370500.,-.222854037563059336052,-52,54, + -8803779798109204.,4503599627370551.,-.250857936018448199445,-52,54, + -8803779798109133.,4503599627370715.,.249674937148387160097,-52,54, + -8803779798109062.,4503599627370880.,-.249792189684570156832,-52,54, + -8803779798099706.,4503599627392557.,-.249995549126484352276,-52,54, + -6850623811293932.,9007199254740909.,.000057381104561622354,-52,54, + -6850623811293899.,9007199254740983.,.026142615890717327530,-52,54, + -6850623811293895.,4503599627370496.,-.000499283885787730479,-52,53, + -6850623811293894.,4503599627370497.,.121108068156425525157,-52,53, + -6850623811277831.,4503599627388514.,-.499996085296536672087,-52,53, + -4503599627370497.,4503599627370496.,0.000000000000000000000,-1074,52, + -4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,52, + 0.,4503599627370496.,0.000000000000000000000,0,52, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,52, + 4503599627370497.,4503599627370496.,0.000000000000000000000,-1074,52, + 4681265623863600.,9004823463908359.,.499734607821966428566,-57,53, + 4681265623863603.,9004823463908359.,.496689746433239847508,-57,53, + 4681265623863770.,9004823463908359.,.327192462460790425072,-57,53, + 4681265623863942.,9004823463908359.,.152620409507123622820,-57,53, + 4681265623864585.,9004823463908359.,-.499994881476699182519,-57,53, + 4681265623894143.,9004823463908329.,-.499999190904447877174,-57,53, + 4690264875164385.,8997661415430871.,.499994688339604594937,-56,53, + 4690264875165369.,8997661415430867.,.499048531347976163788,-56,53, + 4690264875166070.,8997661415430865.,-.351219005289864070810,-56,53, + 4690264875166104.,8997661415430865.,-.489463079820098240748,-56,53, + 4690264875166107.,8997661415430864.,.498338913603704578549,-56,53, + 5066450854682150.,8996070572473668.,.498152046373090317217,-56,53, + 5066450854682153.,8996070572473668.,.484976854572528975688,-56,53, + 5066450854682206.,8996070572473668.,.252215132762610657234,-56,53, + 5066450854682377.,8996070572473668.,-.498770799869406536061,-56,53, + 5066450854682605.,8996070572473666.,.499914623287864493178,-56,53, + 5066450854687159.,8996070572473646.,.499973470024982660018,-56,53, + 5066450854689436.,8996070572473637.,-.499997106613191308806,-56,53, + 5820296045629092.,8992513937909048.,.499993364652601656179,-56,53, + 5820296045634643.,8992513937909020.,.499715966774652230718,-56,53, + 5820296045636163.,8992513937909013.,-.167447002924554036884,-56,53, + 5820296045636226.,8992513937909013.,-.485230731273972178293,-56,53, + 5820296045636229.,8992513937909012.,.499636710233198300743,-56,53, + 5820296045679447.,8992513937908794.,.499999061723016926538,-56,53, + 4737290651814182.,8968310770323507.,.499998790837008945260,-55,53, + 4737290651826194.,8968310770323310.,.499773195151615965837,-55,53, + 4737290651826804.,8968310770323300.,.495599234651492133929,-55,53, + 4737290651827109.,8968310770323295.,.493512254400949234905,-55,53, + 4737290651827115.,8968310770323295.,.395110543314050092990,-55,53, + 4737290651828572.,8968310770323271.,.499895034375034688007,-55,53, + 4737290651830950.,8968310770323233.,-.499983126421038865841,-55,53, + 5373795224625389.,8957174083016319.,.498958306655207688209,-55,53, + 5373795224625550.,8957174083016317.,-.494401935138695973845,-55,53, + 5373795224625873.,8957174083016311.,-.499714718365243683140,-55,53, + 5373795224631144.,8957174083016213.,-.499726112803376229964,-55,53, + 5373795224734305.,8957174083014295.,-.499949137478303581516,-55,53, + 5373795224757648.,8957174083013861.,-.499999607995635450510,-55,53, + 5459236500734368.,8955572975966149.,-.499986429323809123907,-55,53, + 5459236500736433.,8955572975966109.,.499958864727334098549,-55,53, + 5459236500742628.,8955572975965992.,.499794746792759804236,-55,53, + 5459236500743634.,8955572975965974.,-.499747642669607136226,-55,53, + 5459236500743740.,8955572975965971.,.498312503172127625580,-55,53, + 5459236500743951.,8955572975965968.,-.486680980105288966504,-55,53, + 5459236500743952.,8955572975965967.,.494432794855481206375,-55,53, + 5459236500771485.,8955572975965447.,.499998788436872883586,-55,53, + 5745533600459923.,8950024981607751.,-.499985601392642849248,-55,53, + 5745533600470592.,8950024981607539.,-.498609743736509249265,-55,53, + 5745533600470642.,8950024981607538.,-.492135960544740398192,-55,53, + 5745533600470646.,8950024981607537.,.428381942110600738760,-55,53, + 5745533600470743.,8950024981607536.,-.499058918497393523437,-55,53, + 5745533600471045.,8950024981607530.,-.499957268019397133128,-55,53, + 5745533600524491.,8950024981606467.,.499999056339533560175,-55,53, + 5902077105825062.,8946872281248930.,-.495118687406341419214,-55,53, + 5902077105825064.,8946872281248929.,.464064649646992798831,-55,53, + 5902077105825846.,8946872281248914.,-.495250562500380800887,-55,53, + 5902077105846524.,8946872281248492.,-.498728768867791692559,-55,53, + 5902077105853972.,8946872281248340.,-.499981582895418265482,-55,53, + 5902077105854070.,8946872281248338.,-.499998067291788571398,-55,53, + 6840309504987318.,8926214505976712.,.499750420605552487631,-55,53, + 6840309504987953.,8926214505976697.,.497671061565033403677,-55,53, + 6840309504987995.,8926214505976697.,-.494592455095962975324,-55,53, + 6840309504987998.,8926214505976696.,.434531579428251338003,-55,53, + 6840309504989646.,8926214505976658.,-.499998788608008819875,-55,53, + 9004953932904603.,8867080179711147.,-.499923797874924780503,-55,53, + 9004953932904861.,8867080179711139.,-.497636398330346204183,-55,53, + 9004953932904990.,8867080179711135.,-.496492698558141498671,-55,53, + 9004953932905021.,8867080179711134.,-.457458166054751872205,-55,53, + 9004953932905022.,8867080179711134.,-.488457052103029680406,-55,53, + 9004953932905474.,8867080179711120.,-.499953545924945897748,-55,53, + 9004953932906345.,8867080179711093.,-.499983293977537688426,-55,53, + 9004953932907216.,8867080179711065.,.499986957967299847461,-55,53, + 9004953932940443.,8867080179710036.,-.499999770277035300301,-55,53, + 4579815632723906.,8862244830436852.,.499994877071083967644,-54,53, + 4579815632729061.,8862244830436527.,.499940591849473193910,-54,53, + 4579815632734216.,8862244830436202.,.499886306267972209398,-54,53, + 4579815632734327.,8862244830436196.,-.498174998430369323867,-54,53, + 4579815632734438.,8862244830436189.,-.496236303128877719595,-54,53, + 4703333026049428.,8854354339431902.,-.497923022865192724732,-54,53, + 4703333026049443.,8854354339431901.,-.468681993433851795994,-54,53, + 4703333026049598.,8854354339431891.,-.499858022643507053793,-54,53, + 4703333026051684.,8854354339431755.,.499927803574294538917,-54,53, + 4703333026074939.,8854354339430250.,.499937094265607065452,-54,53, + 4703333026223771.,8854354339420618.,.499996381492179033515,-54,53, + 5072827470711541.,8829519711697928.,.499999601106392361616,-54,53, + 5072827470757808.,8829519711694703.,.499991754537976691004,-54,53, + 5072827470770132.,8829519711693844.,.466553301081517395507,-54,53, + 5072827470770146.,8829519711693843.,.490695776060199255036,-54,53, + 5072827470770189.,8829519711693840.,.493419092066134176460,-54,53, + 5072827470770275.,8829519711693834.,.498865724077929315774,-54,53, + 5072827470770648.,8829519711693808.,.499233093151190263133,-54,53, + 5072827470771394.,8829519711693756.,.499967831292091050066,-54,53, + 5141719174782312.,8824685727116787.,-.497904882491506286649,-54,53, + 5141719174782326.,8824685727116786.,-.486746104842402657219,-54,53, + 5141719174782397.,8824685727116780.,.498416267520868002182,-54,53, + 5141719174782935.,8824685727116742.,.498660722891052531520,-54,53, + 5141719174785625.,8824685727116552.,.499882999683552859432,-54,53, + 5141719174785894.,8824685727116534.,-.499994772642552486998,-54,53, + 5165144833791311.,8823027445533280.,-.499903257532092690619,-54,53, + 5165144833792199.,8823027445533216.,.499434400326226088008,-54,53, + 5165144833792354.,8823027445533206.,-.497302832818961064951,-54,53, + 5165144833792396.,8823027445533203.,-.477063889542228720221,-54,53, + 5165144833792495.,8823027445533195.,.499213619609975058552,-54,53, + 5165144833795906.,8823027445532954.,-.499952201499170302550,-54,53, + 5165144833800501.,8823027445532627.,.499998854249718011606,-54,53, + 5262383977277716.,8816065075997704.,-.499998796632436019961,-54,53, + 5262383977284553.,8816065075997209.,.499324228648877284182,-54,53, + 5262383977284719.,8816065075997198.,-.494841688837841730970,-54,53, + 5262383977284899.,8816065075997184.,.499436231959273460154,-54,53, + 5262383977286629.,8816065075997059.,.499996248487126208487,-54,53, + 5381802350845751.,8807340861092984.,.499992647115582480675,-54,53, + 5381802350938037.,8807340861086168.,.499980654048926276484,-54,53, + 5381802350944157.,8807340861085716.,.492958204594023052543,-54,53, + 5381802350944184.,8807340861085714.,.498809576139432203438,-54,53, + 5381802350944360.,8807340861085701.,.499914812879637372284,-54,53, + 5381802350947095.,8807340861085500.,-.499955513966604101329,-54,53, + 6140654816902016.,8747443965461852.,-.482034006649242731337,-54,53, + 6140654816902028.,8747443965461851.,-.489877135219431296723,-54,53, + 6140654816902040.,8747443965461850.,-.497720263789621774132,-54,53, + 6140654816902171.,8747443965461838.,.499992249319007812902,-54,53, + 6140654816905231.,8747443965461581.,.499994463852704990972,-54,53, + 6140654816911351.,8747443965461067.,.499998892547111142810,-54,53, + 6214190683260035.,8741232026463510.,.499995525847703040442,-54,53, + 6214190683290260.,8741232026460942.,.499157868816218357100,-54,53, + 6214190683290272.,8741232026460941.,.479604186369333044010,-54,53, + 6214190683290413.,8741232026460929.,.499848417618287547212,-54,53, + 6214190683291896.,8741232026460804.,-.499994171460099139295,-54,53, + 7387245888514666.,8632495343205405.,.499991743334904427282,-54,53, + 7387245888516778.,8632495343205194.,-.499867823293576951840,-54,53, + 7387245888517814.,8632495343205090.,-.492223178914752314464,-54,53, + 7387245888517834.,8632495343205088.,-.499797606629584234897,-54,53, + 7387245888571700.,8632495343199680.,.499996210127949582737,-54,53, + 7489511085201860.,8622162089773208.,-.499991005479420251857,-54,53, + 7489511085218368.,8622162089771528.,.499982076973736346625,-54,53, + 7489511085222173.,8622162089771142.,-.499963551179413221159,-54,53, + 7489511085223058.,8622162089771051.,.488222551049730954734,-54,53, + 7489511085223078.,8622162089771049.,.454057265224283329215,-54,53, + 7489511085223107.,8622162089771047.,-.495482399222624956468,-54,53, + 7489511085223284.,8622162089771029.,-.497845178778129571443,-54,53, + 7489511085223461.,8622162089771010.,.499792041665958881381,-54,53, + 8692194029430317.,8490515924957148.,.499995845711970529451,-54,53, + 8692194029442549.,8490515924955715.,.499980617622720665124,-54,53, + 8692194029445400.,8490515924955382.,-.499614168072075115916,-54,53, + 8692194029445639.,8490515924955354.,-.498878690623604726524,-54,53, + 8692194029445750.,8490515924955340.,.497278790534225061399,-54,53, + 8692194029445767.,8490515924955339.,-.494300694333508502757,-54,53, + 8692194029448012.,8490515924955076.,-.499944431310533274715,-54,53, + 4618094274960923.,8424916342644454.,.499997848590059718193,-53,53, + 4618094274974333.,8424916342641128.,.499979688101454203023,-53,53, + 4618094275001153.,8424916342634476.,.499943340075504604471,-53,53, + 4618094275004822.,8424916342633567.,-.499614207878236520373,-53,53, + 4618094275004826.,8424916342633566.,-.491709664458548951928,-53,53, + 4618094275004846.,8424916342633561.,-.452186947360123142855,-53,53, + 4618094275006846.,8424916342633065.,-.499915237618821275404,-53,53, + 4720482728926520.,8399259164435121.,.499937940350647005731,-53,53, + 4720482728926840.,8399259164435040.,.493417940962944458347,-53,53, + 4720482728926864.,8399259164435034.,.417928941008660772448,-53,53, + 4720482728927077.,8399259164434980.,.497964066413133512387,-53,53, + 4720482728941701.,8399259164431279.,-.499999911230628872222,-53,53, + 4858754629792760.,8363780266554693.,-.451473615185908223172,-53,53, + 4858754629792764.,8363780266554692.,-.491565271971562417666,-53,53, + 4858754629793064.,8363780266554614.,-.498439530897887632924,-53,53, + 4858754629793114.,8363780266554601.,-.499585240719375618295,-53,53, + 4858754629808828.,8363780266550515.,-.499658929556889857807,-53,53, + 4858754629877795.,8363780266532582.,-.499982486441439772087,-53,53, + 4858754629881287.,8363780266531674.,-.499998875340430908528,-53,53, + 4987384221174313.,8329924354778980.,-.498925230180702907816,-53,53, + 4987384221174373.,8329924354778964.,-.481712343051377805650,-53,53, + 4987384221174377.,8329924354778962.,.452768516090570895430,-53,53, + 4987384221174542.,8329924354778919.,-.499896044304732041708,-53,53, + 4987384221176633.,8329924354778361.,.499973072024051787594,-53,53, + 4987384221183837.,8329924354776443.,-.499999615406018916826,-53,53, + 5150299736334938.,8285874971916914.,-.499180724600119386013,-53,53, + 5150299736335000.,8285874971916896.,.489710824868240856237,-53,53, + 5150299736335011.,8285874971916893.,.471610938483575476223,-53,53, + 5150299736335051.,8285874971916882.,.496702260721106077232,-53,53, + 5150299736335215.,8285874971916837.,.499576681894164242419,-53,53, + 5150299736335933.,8285874971916640.,.499965916038790012416,-53,53, + 5150299736348806.,8285874971913108.,.499980690516520057601,-53,53, + 5150299736361679.,8285874971909576.,.499995456897766140822,-53,53, + 5325599447874750.,8237029092932763.,.499997660357432129362,-53,53, + 5325599447905747.,8237029092923995.,-.499991797326424774886,-53,53, + 5325599447909349.,8237029092922976.,-.499829269342401607585,-53,53, + 5325599447909363.,8237029092922972.,-.460406094609652381249,-53,53, + 5325599447911226.,8237029092922444.,.499977800099409140363,-53,53, + 5810529830388041.,8094201717053400.,.499997624726282736221,-53,53, + 5810529830398967.,8094201717050056.,.499987006748493284195,-53,53, + 5810529830415356.,8094201717045040.,.499971069240274386495,-53,53, + 5810529830416627.,8094201717044651.,.499054584693605323678,-53,53, + 5810529830416725.,8094201717044622.,-.494721824031484318549,-53,53, + 5810529830416761.,8094201717044610.,.487156229906124259148,-53,53, + 5810529830416774.,8094201717044607.,-.491610028394198754405,-53,53, + 5810529830416957.,8094201717044550.,.499603412454255750317,-53,53, + 6198568752645782.,7971921034812529.,.499997400561361364194,-53,53, + 6198568752726336.,7971921034786420.,.499949909237057389835,-53,53, + 6198568752727385.,7971921034786081.,-.499814844554206103782,-53,53, + 6198568752727394.,7971921034786078.,-.416876696588859078649,-53,53, + 6198568752734981.,7971921034783618.,.499982036873970307571,-53,53, + 6731593649405894.,7792703850954629.,-.499974890118284045437,-53,53, + 6731593649408048.,7792703850953879.,-.499615514340574923090,-53,53, + 6731593649413792.,7792703850951879.,-.498657179938841753372,-53,53, + 6731593649414039.,7792703850951792.,.498598514422028421941,-53,53, + 6731593649414085.,7792703850951776.,.481893097177195397210,-53,53, + 6731593649422296.,7792703850948917.,.499976117471825585692,-53,53, + 6731593649455818.,7792703850937245.,.499997887258719282756,-53,53, + 6870251226773960.,7744000076139966.,.499995402602394469536,-53,53, + 6870251226842593.,7744000076115650.,-.499323282482209423092,-53,53, + 6870251226842703.,7744000076115611.,-.472848045595378888546,-53,53, + 6870251226842720.,7744000076115605.,-.496029145349279721263,-53,53, + 6870251226842895.,7744000076115543.,-.499363995757819616994,-53,53, + 6870251226845915.,7744000076114473.,-.499771128734039858555,-53,53, + 6870251226847727.,7744000076113830.,.499984591288124750655,-53,53, + 7489401688272973.,7516352090988263.,-.499994867520327894207,-53,53, + 7489401688281155.,7516352090985146.,.499928558213983235701,-53,53, + 7489401688284432.,7516352090983899.,-.499613233559356704594,-53,53, + 7489401688284474.,7516352090983883.,-.494724846395495454018,-53,53, + 7489401688284516.,7516352090983867.,-.489836459231707931945,-53,53, + 7489401688284524.,7516352090983863.,.463475614513767046352,-53,53, + 7489401688284839.,7516352090983744.,-.499861481760281960583,-53,53, + 7489401688285246.,7516352090983588.,.499890270031869284069,-53,53, + 8137473153237458.,7260926833595163.,.499999954859606447890,-53,53, + 8137473153242225.,7260926833593222.,.499758135324124709672,-53,53, + 8137473153243340.,7260926833592769.,-.499669099708162954997,-53,53, + 8137473153243480.,7260926833592711.,.495918512033195274043,-53,53, + 8137473153243490.,7260926833592707.,.424174770014691266172,-53,53, + 8137473153243507.,7260926833592701.,-.497789591416774603479,-53,53, + 8154826004490883.,7253855259227287.,-.499979070490294354638,-53,53, + 8154826004492690.,7253855259226549.,.499580065495566311257,-53,53, + 8154826004492913.,7253855259226459.,-.452881646010391833069,-53,53, + 8154826004492918.,7253855259226457.,-.492174509497094964835,-53,53, + 8154826004492945.,7253855259226445.,.495644027674691104431,-53,53, + 8154826004493021.,7253855259226414.,.498392502676601398626,-53,53, + 8154826004493428.,7253855259226248.,.499953414854011877441,-53,53, + 8154826004506891.,7253855259220757.,.499989186714997963198,-53,53, + 8154826004565833.,7253855259196717.,.499997159176854211632,-53,53, + 8163125809823082.,7250468755884376.,-.499996074491672132968,-53,53, + 8163125809843362.,7250468755876097.,.499567053970703986997,-53,53, + 8163125809843384.,7250468755876089.,-.480512315425356775217,-53,53, + 8163125809844266.,7250468755875728.,.499942056953240933987,-53,53, + 8163125809847027.,7250468755874601.,.499981197500513667869,-53,53, + 8163125809873733.,7250468755863700.,.499997584566716228432,-53,53, + 8538708293438125.,7094418182962923.,.499998307460893904468,-53,53, + 8538708293445868.,7094418182959650.,.499979976271535306357,-53,53, + 8538708293494907.,7094418182938921.,.499863825915002111835,-53,53, + 8538708293497488.,7094418182937830.,.499857710210881764769,-53,53, + 8538708293498316.,7094418182937481.,-.499369358344413332371,-53,53, + 8538708293498633.,7094418182937347.,-.496657982423797197747,-53,53, + 8538708293498659.,7094418182937336.,-.486971875881581456963,-53,53, + 8538708293498666.,7094418182937333.,-.445902539504835447395,-53,53, + 8538708293498730.,7094418182937306.,-.498982892631815276082,-53,53, + 8576285361415661.,7078507438842620.,-.499925527525296729718,-53,53, + 8576285361416175.,7078507438842401.,.498608607295733042764,-53,53, + 8576285361416208.,7078507438842388.,-.497594454087693720730,-53,53, + 8576285361416241.,7078507438842374.,-.493797515471161643889,-53,53, + 8576285361416248.,7078507438842371.,-.462689073946448009915,-53,53, + 8576285361422508.,7078507438839716.,-.499997082586790358425,-53,53, + 8675977383221046.,7036038147500519.,.499993880307880709802,-53,53, + 8675977383239535.,7036038147492609.,-.499938239379825765140,-53,53, + 8675977383239853.,7036038147492472.,.435483989181538829919,-53,53, + 8675977383239881.,7036038147492460.,.454955128803112996116,-53,53, + 8675977383239944.,7036038147492433.,.498765192951547638487,-53,53, + 8675977383268090.,7036038147480391.,-.499995686631765527302,-53,53, + 9007199254673268.,6892288032124250.,-.499998283835843892656,-53,53, + 9007199254740991.,6892288032094448.,-.045816605184552039310,-53,53, + 4503599627370496.,6892288032094448.,-.485867190929485537220,-52,53, + 4503599627370497.,6892288032094447.,-.365968362419352641337,-52,53, + 4503599627370571.,6892288032094382.,-.493455052669919040195,-52,53, + 4503599627370646.,6892288032094315.,.498957085588835238786,-52,53, + 4503599627371038.,6892288032093970.,.499297861541374236109,-52,53, + 4503599627371822.,6892288032093280.,.499979413379887604811,-52,53, + 4809567190591974.,6616401670372428.,.499998868037974115649,-52,53, + 4809567190612649.,6616401670353351.,-.497893441204272621369,-52,53, + 4809567190612740.,6616401670353267.,-.468766873018814381755,-52,53, + 4809567190612882.,6616401670353135.,.499760299312315398306,-52,53, + 4809567190614565.,6616401670351582.,.499980235960146033331,-52,53, + 6525493726732200.,4864957496392604.,-.499999208009205172254,-52,53, + 6525493726763559.,4864957496358091.,.499539799257543374489,-52,53, + 6525493726763609.,4864957496358036.,.472274164148322012965,-52,53, + 6525493726763629.,4864957496358014.,.461367910104583622939,-52,53, + 6525493726764842.,4864957496356679.,.499903602298600089984,-52,53, + 6525493726767776.,4864957496353450.,.499956133520174060727,-52,53, + 6525493726770710.,4864957496350222.,-.499991335871233514839,-52,53, + 7036661010640382.,8587945198020217.,-.499995957448059508231,-52,54, + 7036661010644484.,8587945198010932.,-.499976802138454226887,-52,54, + 7036661010644761.,8587945198010305.,-.497781456997633929972,-52,54, + 7036661010644818.,8587945198010175.,.481009642904021262216,-52,54, + 7036661010644909.,8587945198009969.,.499781398886680387962,-52,54, + 8773809559822897.,4573056052709887.,.499998098515329391076,-52,54, + 8773809559830382.,4573056052692536.,.478685909519951061075,-52,54, + 8773809559830492.,4573056052692281.,.487056739089975179608,-52,54, + 8773809559830668.,4573056052691874.,-.499549933597011263594,-52,54, + 8773809559831259.,4573056052690503.,.499969705286717660702,-52,54, + 9005505644569230.,8074329576221583.,.499961141301619096671,-52,55, + 9005505644575362.,8074329576193290.,.499817408631641622351,-52,55, + 9005505644575805.,8074329576191247.,-.498725264648272909970,-52,55, + 9005505644575919.,8074329576190721.,-.493835568829544357723,-52,55, + 9005505644576191.,8074329576189466.,-.499712785817457134971,-52,55, + 9005505644588455.,8074329576132879.,.499999762892923489192,-52,55, + 9007199254656380.,8066515436487654.,.499999944052064984814,-52,55, + 9007199254734896.,8066515436125397.,.499952826861287185829,-52,55, + 9007199254740986.,8066515436097299.,.467318909861927830452,-52,55, + 9007199254740991.,8066515436097276.,.398326599586990338174,-52,55, + 4503599627370497.,8066515436097263.,-.443068786577970782898,-51,55, + 4503599627370506.,8066515436097180.,-.491441103567715864178,-51,55, + 4503599627370528.,8066515436096977.,-.498573433986936517957,-51,55, + 4503599627370673.,8066515436095638.,.499872570073746509069,-51,55, + 4503599627378384.,8066515436024484.,.499990772307118400764,-51,55, + 4703076146987218.,6236602918621451.,-.499999282140261057856,-51,55, + 4703076147031734.,6236602918215854.,-.472693869978171551590,-51,55, + 4703076147031743.,6236602918215772.,-.474058643205359260118,-51,55, + 4703076147031860.,6236602918214706.,-.491800695153585627109,-51,55, + 4703076147031914.,6236602918214214.,-.499989334511039674501,-51,55, + 4964996273258592.,7756211544616548.,-.499882619005764522161,-51,56, + 4964996273258769.,7756211544613403.,-.497306271071646131959,-51,56, + 4964996273258782.,7756211544613172.,-.485817612746270664494,-51,56, + 4964996273258851.,7756211544611945.,.498237573755749818172,-51,56, + 4964996273262857.,7756211544540766.,-.499949697532326861536,-51,56, + 4964996273267122.,7756211544464983.,.499983261214339216930,-51,56, + 4964996273295846.,7756211543954606.,-.499998345438060068288,-51,56, + 5415185742761454.,7785225818873887.,.458714112572214042725,-51,93, + 5415185742763581.,5857570631776928.,.377649899761252566595,-51,94, + 5415185742764829.,5075727140072404.,-.374242799132482033337,-51,99, + 5415185742764858.,6704346228103163.,.291588489553334696408,-51,102, + 5415185742764862.,8113125109667295.,-.408615166161446018014,-51,104, + 5415185742764863.,6874120317961914.,.212833175686510942009,-51,105, + 5415185742764864.,-4956019166821518.,-.060168176450731029863,-51,106, + 5415185742764999.,-4941466977612132.,-.003075784973312870494,-51,97, + 6114039810598588.,-5372508907254180.,-.499994501546126782411,-51,55, + 6114039810636903.,-5372508907522033.,-.499989921255458184620,-51,55, + 6114039810642345.,-5372508907560078.,.495678484735185480976,-51,55, + 6114039810642346.,-5372508907560084.,-.495134512611632393096,-51,55, + 6114039810642363.,-5372508907560203.,-.338955467507199201930,-51,55, + 6114039810642563.,-5372508907561602.,.498445063180995163080,-51,55, + 6114039810642672.,-5372508907562364.,.499828352443159767263,-51,55, + 6114039810647026.,-5372508907592801.,-.499962071589249899745,-51,55, + 6431139989783992.,-7474291120143852.,.499991569782845554180,-51,55, + 6431139989787274.,-7474291120164372.,-.499990672558353466892,-51,55, + 6431139989787757.,-7474291120167393.,.499097866213514291854,-51,55, + 6431139989787761.,-7474291120167418.,.488738351009038731181,-51,55, + 6431139989787789.,-7474291120167593.,.416221744578805740195,-51,55, + 6431139989841041.,-7474291120500556.,.499999299855112523088,-51,55, + 6457762288050776.,-7639880338829821.,.486477779713558550349,-51,55, + 6457762288050824.,-7639880338830117.,-.499938121501387945562,-51,55, + 6457762288073792.,-7639880338972225.,-.499946201366216993479,-51,55, + 6457762288205858.,-7639880339789346.,-.499967427480876805387,-51,55, + 7310041049604897.,-5978229225622087.,-.499997044555497207811,-51,54, + 7310041049626155.,-5978229225663349.,.483604389687077908493,-51,54, + 7310041049626223.,-5978229225663481.,.498040598163607211922,-51,54, + 7310041049626511.,-5978229225664039.,-.499641342332334549931,-51,54, + 7310041049627341.,-5978229225665650.,-.499905267396953641775,-51,54, + 7310041049631220.,-5978229225673179.,-.499933887126496180054,-51,54, + 7310041049638978.,-5978229225688237.,-.499991061380144847815,-51,54, + 7522245550680576.,-6357370047150495.,-.499854218448936765459,-51,54, + 7522245550680831.,-6357370047150912.,.476671001912242671507,-51,54, + 7522245550680945.,-6357370047151098.,.489705806339937540228,-51,54, + 7522245550681040.,-6357370047151252.,-.499431856622383470137,-51,54, + 7522245550685178.,-6357370047158003.,-.499975520985262518596,-51,54, + 7522245550801175.,-6357370047347248.,-.499980603866723389174,-51,54, + 8170457745697217.,-7103305186309827.,-.399986123197520250662,-51,54, + 8170457745697256.,-7103305186309853.,-.481240164384143122564,-51,54, + 8170457745697265.,-7103305186309859.,-.499991096965351208000,-51,54, + 8170457745697425.,-7103305186309967.,.499992323833218223277,-51,54, + 8279213972432559.,-7167281287174828.,.499988840249532885788,-51,54, + 8279213972438936.,-7167281287178066.,-.362144523440051386231,-51,54, + 8279213972438952.,-7167281287178074.,-.488503961002858383460,-51,54, + 8279213972438954.,-7167281287178076.,.495701109301817289062,-51,54, + 8279213972439080.,-7167281287178139.,-.499379461491722207300,-51,54, + 8279213972440283.,-7167281287178751.,.499970328063225920809,-51,54, + 8279213972481752.,-7167281287199812.,-.499998090168299178964,-51,54, + 4807329510107142.,-6594357418139999.,-.499978014875621497214,-50,54, + 4807329510144595.,-6594357418042872.,.499954181395643179308,-50,54, + 4807329510146754.,-6594357418037272.,-.499916027158451631050,-50,54, + 4807329510146845.,-6594357418037037.,.493141782962963732727,-50,54, + 4807329510146904.,-6594357418036884.,.499629813721656148084,-50,54, + 4807329510153381.,-6594357418020086.,-.499980677009201971519,-50,54, + 4921846542529997.,-6267549883824211.,-.499992543675419447637,-50,54, + 4921846542585299.,-6267549883652356.,-.499559677206744170602,-50,54, + 4921846542585364.,-6267549883652155.,.492683434534236059071,-50,54, + 4921846542585373.,-6267549883652127.,.460840173084423344021,-50,54, + 4921846542585392.,-6267549883652067.,-.495273378864034060796,-50,54, + 4921846542587623.,-6267549883645134.,-.499975178408207803240,-50,54, + 4921846542592522.,-6267549883629910.,-.499990394867278093081,-50,54, + 4922791882675480.,-6264610243666344.,-.499998273296449839716,-50,54, + 4922791882707106.,-6264610243567936.,.499986877371084650074,-50,54, + 4922791882712274.,-6264610243551854.,-.499825422076209712452,-50,54, + 4922791882712283.,-6264610243551826.,-.494987633797598975601,-50,54, + 4922791882717648.,-6264610243535133.,.499982885525717863858,-50,54, + 5019486356201018.,-5944074183919134.,-.499995139184317313330,-50,54, + 5019486356249346.,-5944074183749355.,-.499666863269315022286,-50,54, + 5019486356249461.,-5944074183748951.,-.498155559496413390681,-50,54, + 5019486356249467.,-5944074183748930.,-.419815839298118282480,-50,54, + 5019486356250648.,-5944074183744781.,-.499947577470932320974,-50,54, + 5019486356265200.,-5944074183693660.,.499987634566470969996,-50,54, + 5210952747380005.,-5202448115560570.,-.466344907214089493111,-50,54, + 5210952747380019.,-5202448115560512.,.496173101325034461876,-50,54, + 5210952747380071.,-5202448115560293.,.499811418761721862752,-50,54, + 5210952747380898.,-5202448115556810.,.499982353039254140888,-50,54, + 5210952747392717.,-5202448115507032.,-.499992887691666735229,-50,54, + 5438692383778639.,-8330968838301290.,-.499999244879550768579,-50,55, + 5438692383818136.,-8330968837917329.,.499993475667616048204,-50,55, + 5438692383824103.,-8330968837859322.,.468978011111729591899,-50,55, + 5438692383824110.,-8330968837859253.,-.481954971568838943001,-50,55, + 5438692383824128.,-8330968837859078.,-.498639784174938653389,-50,55, + 5438692383824189.,-8330968837858485.,-.499627204661859315176,-50,55, + 5438692383826227.,-8330968837838673.,-.499829865778197552192,-50,55, + 5438692383828265.,-8330968837818862.,.499967492977796300601,-50,55, + 5488821188141412.,-7837813496112238.,.490686698341896696973,-50,55, + 5488821188141432.,-7837813496112038.,-.493928568964834004242,-50,55, + 5488821188141554.,-7837813496110825.,.499918300501961910480,-50,55, + 5488821188145129.,-7837813496075251.,.499939299411917438320,-50,55, + 5488821188155204.,-7837813495974997.,.499998778649551009371,-50,55, + 5488821188155529.,-7837813495971762.,-.499999295280014844400,-50,55, + 6003625487534780.,-4656954188093081.,.499991148014215065826,-50,56, + 6003625487545992.,-4656954187844711.,-.499716993775409700449,-50,56, + 6003625487546005.,-4656954187844424.,.477183094892407815756,-50,56, + 6003625487547031.,-4656954187821695.,-.499779137948418149175,-50,56, + 6003625487550148.,-4656954187752647.,-.499965570571679238425,-50,56, + 6003625487582962.,-4656954187025750.,.499996691324074845403,-50,56, + 6215055430131306.,-6074431593177692.,-.030106864708156865820,-50,92, + 6215055430134949.,-4981443766547774.,-.461347083266910036633,-50,95, + 6215055430135365.,-8931610386722356.,.276156074709931888074,-50,108, + 6215055430135366.,5571440174924095.,.153452689362328435294,-50,104, + 6215055430135368.,8915385911556288.,.483528010945618356783,-50,103, + 6215055430135426.,5833615462821513.,.022932520125087587577,-50,98, + 6215055430135455.,8611120289364183.,.086717768318848815936,-50,98, + 6215055430146543.,8363872846193196.,-.046191075361235984953,-50,91, + 6626663905734293.,8487189234178489.,-.499998668929047205190,-50,56, + 6626663905758010.,8487189234630186.,.460790692466650264507,-50,56, + 6626663905758011.,8487189234630206.,-.493884823548446598146,-50,56, + 6626663905758033.,8487189234630625.,-.496746175882998598252,-50,56, + 6626663905758055.,8487189234631044.,-.499607528222182118219,-50,56, + 6626663905758408.,8487189234637766.,.499935317702099004041,-50,56, + 6626663905760504.,8487189234677686.,-.499946278933550456214,-50,56, + 6626663905793356.,8487189235303362.,.499995645396329823328,-50,56, + 6672261332018441.,4672726541322972.,-.499921390270633151977,-50,55, + 6672261332019677.,4672726541334463.,.499149487510448530252,-50,55, + 6672261332020248.,4672726541339773.,-.494807253610931786589,-50,55, + 6672261332020295.,4672726541340209.,.498684923490945068873,-50,55, + 6672261332022898.,4672726541364411.,.499964416528593276988,-50,55, + 6672261332031503.,4672726541444418.,.499968027738652167534,-50,55, + 6672261332100343.,4672726542084474.,.499983376889812816831,-50,55, + 6780207145916044.,5645476037532290.,-.499909196724306923576,-50,55, + 6780207145916194.,5645476037533596.,.499734884604464209056,-50,55, + 6780207145916937.,5645476037540071.,-.495361434450803159479,-50,55, + 6780207145916944.,5645476037540131.,.497955289311539627308,-50,55, + 6780207145918887.,5645476037557062.,-.499988397240960981271,-50,55, + 6780207145944174.,5645476037777396.,-.499991403233145027510,-50,55, + 6791075965803034.,5739839461639651.,-.499999251901422133158,-50,55, + 6791075965836321.,5739839461927604.,-.467007427209663216290,-50,55, + 6791075965836324.,5739839461927629.,.484838607753850338930,-50,55, + 6791075965836344.,5739839461927802.,.497145507509272969852,-50,55, + 6791075965836510.,5739839461929238.,.499292775389713297711,-50,55, + 6791075965836593.,5739839461929957.,-.499633590730018983762,-50,55, + 6791075965837486.,5739839461937681.,.499869479694428500344,-50,55, + 6791075965841224.,5739839461970018.,-.499971021533399562623,-50,55, + 6791075965853331.,5739839462074751.,-.499990023280100800418,-50,55, + 7066596398299159.,7884169029722684.,.496945145595048544103,-50,55, + 7066596398299226.,7884169029723144.,-.466045535699557225512,-50,55, + 7066596398299233.,7884169029723191.,.493044990133472746156,-50,55, + 7066596398299354.,7884169029724021.,-.499818777665538285311,-50,55, + 7066596398302434.,7884169029745123.,-.499987447988144045118,-50,55, + 7066596398314485.,7884169029827688.,-.499998702796066938245,-50,55, + 7188466019649112.,8664520612562341.,-.499801582682286539576,-50,55, + 7188466019656423.,8664520612605808.,-.499954150187414990408,-50,55, + 7188466019658860.,8664520612620296.,.499994902966644002604,-50,55, + 7682813899075223.,5306263403375210.,.499983809526607111859,-50,54, + 7682813899130193.,5306263403426255.,.499966526480689844633,-50,54, + 7682813899152181.,5306263403446673.,.499955969406004850252,-50,54, + 7682813899152307.,5306263403446791.,-.496769583719424688742,-50,54, + 7682813899153091.,5306263403447519.,-.476395249147297469179,-50,54, + 7682813899153147.,5306263403447571.,-.474939939636297912033,-50,54, + 7698539309802033.,5320333378708223.,-.499998811365914790972,-50,54, + 7698539309825088.,5320333378728070.,-.499953375699667310775,-50,54, + 7698539309825383.,5320333378728323.,.452118325075974460139,-50,54, + 7698539309825397.,5320333378728336.,-.495918950150772695287,-50,54, + 7698539309825627.,5320333378728534.,-.499388471853952979001,-50,54, + 7698539309826820.,5320333378729561.,-.499993429389166729661,-50,54, + 7969623363009139.,5395758304119822.,.499995553391344193967,-50,54, + 7969623363051049.,5395758304107237.,-.499010340105166428172,-50,54, + 7969623363051069.,5395758304107230.,.494786362543206456312,-50,54, + 7969623363051179.,5395758304107197.,.460668227079092751336,-50,54, + 7969623363051189.,5395758304107194.,.457566578398005667418,-50,54, + 7969623363051695.,5395758304107043.,-.499376845415759413440,-50,54, + 7969623363052664.,5395758304106752.,-.499926606682739156238,-50,54, + 7969623363080069.,5395758304098522.,-.499996572553769555769,-50,54, + 8400948779870126.,4888314000079455.,-.499996712248093689337,-50,54, + 8400948779882015.,4888314000055567.,-.499974909356141380489,-50,54, + 8400948779883312.,4888314000052960.,.499859215517952953033,-50,54, + 8400948779884609.,4888314000050354.,.499693334307446656862,-50,54, + 8400948779884933.,4888314000049704.,-.498035074901609372672,-50,54, + 8400948779885041.,4888314000049487.,-.497277878055672794607,-50,54, + 8400948779885047.,4888314000049474.,.447208632878975546538,-50,54, + 8644324161231746.,8594640134570576.,.499964945096999973924,-50,55, + 8644324161233428.,8594640134561074.,-.493802571719717753261,-50,55, + 8644324161233508.,8594640134560622.,-.479237412428162825846,-50,55, + 8644324161233525.,8594640134560525.,.473857683916241388836,-50,55, + 8644324161233665.,8594640134559734.,.499346712567535322646,-50,55, + 8644324161233942.,8594640134558169.,.499778576045197524608,-50,55, + 8644324161236415.,8594640134544198.,-.499975963269641930568,-50,55, + 8644324161285024.,8594640134269565.,.499988771338351496593,-50,55, + 4800329821555363.,4977060486443726.,.499975665197488058319,-49,57, + 4800329821555730.,4977060486418051.,-.499912359581745782444,-49,57, + 4800329821556831.,4977060486341023.,-.499576434833001787447,-49,57, + 4800329821557093.,4977060486322692.,.495053912180567208110,-49,57, + 4800329821557119.,4977060486320873.,.486887458063177530830,-49,57, + 4800329821557145.,4977060486319054.,.478721003945023669849,-49,57, + 4800329821557198.,4977060486315347.,-.499464460221271949984,-49,57, + 4800329821564302.,4977060485818337.,.499978200901881831623,-49,57, + 4800329821626875.,4977060481440614.,.499993421610480946380,-49,57, + 4834340891480438.,5196711732813957.,.499999144498504032893,-49,58, + 4834340891491043.,5196711731331919.,-.499927732548123423391,-49,58, + 4834340891494578.,5196711730837906.,-.499903045583632393680,-49,58, + 4834340891495311.,5196711730735469.,.424005911903600680459,-49,58, + 4834340891495347.,5196711730730438.,.457103759920606935574,-49,58, + 4834340891495391.,5196711730724289.,.497556685296742668650,-49,58, + 4834340891495395.,5196711730723731.,-.498765776031498611425,-49,58, + 4834340891495666.,5196711730685859.,-.499612530553704655316,-49,58, + 4848601861610046.,6410470281863087.,.499693660457488988327,-49,59, + 4848601861610102.,6410470281847461.,-.498960878015907942135,-49,59, + 4848601861610158.,6410470281831834.,-.497615416372252018035,-49,59, + 4848601861611540.,6410470281446181.,.499874406279637215868,-49,59, + 4848601861612287.,6410470281237728.,.499964810432681828517,-49,59, + 4848601861623436.,6410470278126560.,.499977882571214495531,-49,59, + 4848601861656883.,6410470268793057.,-.499955063589673543164,-49,59, + 4871615725493068.,8536911224390057.,.378351547844815479064,-49,94, + 4871615725493433.,5050840489746512.,.408733104193701887194,-49,94, + 4871615725493798.,6259079020412915.,-.484767404555433611618,-49,96, + 4871615725493885.,5870746448191273.,-.001496592160069235957,-49,97, + 4871615725493960.,8974029642341030.,.197559710535800176895,-49,103, + 4871615725493961.,8167959470231458.,.237192340688513239176,-49,104, + 4871615725493962.,-6448561376876568.,.347333021229992447521,-49,106, + 4871615725493972.,-6213321155545315.,.437467632913619633842,-49,100, + 4871615725498601.,-5538512595161004.,-.251591017313886979633,-49,91, + 5208770298159190.,-5330990863019040.,-.498522432409878776613,-49,55, + 5208770298159204.,-5330990863019227.,-.491953546699624549904,-49,55, + 5208770298159218.,-5330990863019414.,-.485384660985570685359,-49,55, + 5208770298159490.,-5330990863023048.,.499382262212938648246,-49,55, + 5208770298161318.,-5330990863047464.,.499948239153407469698,-49,55, + 5208770298175628.,-5330990863238597.,-.499995293731357489111,-49,55, + 5321794657542527.,-6708139447269174.,-.499694783267287158247,-49,55, + 5321794657683980.,-6708139448816680.,.499949457969658075049,-49,55, + 5321794657704936.,-6708139449045940.,.499936271817335321439,-49,55, + 5321794657706137.,-6708139449059079.,.481993469686976893724,-49,55, + 5321794657706154.,-6708139449059264.,-.499109800377522752169,-49,55, + 5321794657706471.,-6708139449062732.,-.499682540939091458923,-49,55, + 5507952692602254.,-8314305544177374.,.499971405213200856130,-49,55, + 5507952692603284.,-8314305544183747.,.499899787907281723605,-49,55, + 5507952692603807.,-8314305544186982.,-.499165692099571591813,-49,55, + 5507952692603855.,-8314305544187279.,-.493343785492007681968,-49,55, + 5507952692603919.,-8314305544187675.,-.485581243250535640609,-49,55, + 5507952692604314.,-8314305544190120.,.499828199626181993665,-49,55, + 5507952692616167.,-8314305544263459.,.499977341019454526103,-49,55, + 5507952692685732.,-8314305544693883.,-.499913542021596016273,-49,55, + 5534224414514746.,-8467375466410959.,-.499914050730537330979,-49,55, + 5534224414515231.,-8467375466413610.,.494212438470236520524,-49,55, + 5534224414515244.,-8467375466413681.,.463127169198290883517,-49,55, + 5534224414515259.,-8467375466413762.,-.495817372263520516589,-49,55, + 5534224414515453.,-8467375466414822.,-.498166774607938507847,-49,55, + 5534224414518156.,-8467375466429591.,-.499973029724820012415,-49,55, + 5534224414519861.,-8467375466438908.,.499997601589451369465,-49,55, + 6638043763207118.,-7230842221648976.,.135083054629386435976,-49,93, + 6638043763208792.,-6160934259243343.,-.086597415551559383739,-49,97, + 6638043763208874.,-6364327667522304.,.002089211619910530013,-49,100, + 6638043763208886.,-5305062914918467.,-.470376035456197477947,-49,106, + 6638043763208887.,7048982350572646.,-.477090133931678620327,-49,104, + 6638043763211941.,6246351713020946.,.326827316493959579374,-49,92, + 6638043763252199.,5535214138670451.,.354353433614563798870,-49,88, + 6866978591790594.,6514012692584556.,.499989709857814636595,-49,56, + 6866978591822953.,6514012693438523.,.497680500883371733321,-49,56, + 6866978591823058.,6514012693441294.,.489823527166366203518,-49,56, + 6866978591823063.,6514012693441426.,.441830337935037528497,-49,56, + 6866978591823099.,6514012693442376.,.496279375451465574924,-49,56, + 6866978591823432.,6514012693451164.,.499932970979467677341,-49,56, + 6866978591826995.,6514012693545193.,.499986137576601319553,-49,56, + 6871807797845873.,6641171402686716.,.499992646200191866338,-49,56, + 6871807797873772.,6641171403419669.,.499976312743375370151,-49,56, + 6871807797875388.,6641171403462125.,-.499917693538573071360,-49,56, + 6871807797875432.,6641171403463280.,.453055488553773383833,-49,56, + 6871807797875458.,6641171403463964.,-.483823994777843463715,-49,56, + 6871807797892910.,6641171403922456.,.499989799056608706413,-49,56, + 8003153055423094.,4996331391893488.,.499991329604208024771,-49,55, + 8003153055441209.,4996331391702512.,.474172070205992517215,-49,55, + 8003153055441220.,4996331391702397.,-.492501075692226049632,-49,55, + 8003153055441338.,4996331391701153.,-.498631186346718947477,-49,55, + 8003153055441998.,4996331391694195.,-.499019944564371020491,-49,55, + 8003153055443648.,4996331391676800.,-.499991867643459647250,-49,55, + 8026599925728986.,4745248489336305.,.499973222932938880169,-49,55, + 8026599925729982.,4745248489325477.,.473768032582997319710,-49,55, + 8026599925729990.,4745248489325391.,-.498330001129125546744,-49,55, + 8026599925730348.,4745248489321499.,-.499717010638854304213,-49,55, + 8026599925741960.,4745248489195258.,.499986080788792898826,-49,55, + 8026599925754934.,4745248489054211.,.499996646242914880038,-49,55, + 8405359428526263.,7955051226249729.,.278799586313980361786,-49,92, + 8405359428528313.,8461215733583305.,.357916840782844155473,-49,93, + 8405359428530363.,8098632117351751.,.057467189029660555663,-49,96, + 8405359428530572.,8092989749361937.,-.018145486682521349582,-49,98, + 8405359428530612.,6883955108276139.,.114271979892141116735,-49,99, + 8405359428530641.,8959195212899778.,-.130705272146936020648,-49,105, + 8405359428530642.,-5924043811816510.,-.240925520742916547632,-49,105, + 8405359428530643.,-5201820709133199.,-.145115336141523269778,-49,103, + 8405359428530652.,-4836138564343103.,.063891104869036792145,-49,100, + 8622920769889658.,-5538386902446820.,-.486991948774486179446,-49,56, + 8622920769889672.,-5538386902447154.,-.442367650766642658572,-49,56, + 8622920769889699.,-5538386902447798.,-.499163647454597408393,-49,56, + 8622920769892164.,-5538386902506598.,-.499242542164054995433,-49,56, + 8622920769913363.,-5538386903012278.,-.499915959331038008898,-49,56, + 8622920769915828.,-5538386903071078.,-.499993673265064825151,-49,56, + 8862008738802073.,-5254378168330107.,.499996927031479372232,-49,55, + 8862008738804405.,-5254378168350081.,.494213626362297958228,-49,55, + 8862008738804428.,-5254378168350278.,.495014220355769698828,-49,55, + 8862008738804566.,-5254378168351460.,.499817784511523098292,-49,55, + 4875072239702435.,-4715639339504632.,-.499995053391069940445,-48,55, + 4875072239720913.,-4715639339164349.,-.499954282002249645354,-48,55, + 4875072239721736.,-4715639339149193.,-.481497645162456680331,-48,55, + 4875072239721748.,-4715639339148972.,-.494594267432304086113,-48,55, + 4875072239721979.,-4715639339144718.,-.496704244562377114570,-48,55, + 4875072239722364.,-4715639339137629.,.499779133497415795704,-48,55, + 4875072239743667.,-4715639338745321.,-.499986164028317660367,-48,55, + 5086552309472248.,-6657492085911606.,.482698116369451391588,-48,88, + 5086552309489882.,-6035316227904027.,-.089599953379071209593,-48,89, + 5086552309504443.,-6206503716552426.,-.148229054039106404588,-48,97, + 5086552309504500.,-5844295158000335.,-.265405672625621059553,-48,102, + 5086552309504501.,-4924947376643611.,.205049902845397460561,-48,103, + 5086552309504502.,7354782250853790.,.444801876667116384824,-48,105, + 5086552309504529.,5764282966417298.,-.439167873484795253616,-48,98, + 5086552309504644.,7517781194932830.,.005718974853591484082,-48,96, + 5086552309506798.,7583575627110846.,.269322342775459817695,-48,92, + 5086552309507516.,4977406863959679.,.151280847735994154514,-48,91, + 5135851371772858.,4691597054820019.,-.499985837478300814691,-48,57, + 5135851371776895.,4691597055198420.,.499823072332324420012,-48,57, + 5135851371777394.,4691597055245193.,.499056238560633540092,-48,57, + 5135851371777409.,4691597055246600.,-.498962804837351530479,-48,57, + 5135851371777424.,4691597055248006.,-.496981848252766697081,-48,57, + 5135851371777439.,4691597055249412.,-.495000891685611959713,-48,57, + 5135851371777908.,4691597055293373.,-.499729658478267345931,-48,57, + 5135851371835454.,4691597060687358.,.499881723783287095950,-48,57, + 5387492754232336.,5761453297731465.,-.498364727761871065966,-48,55, + 5387492754232390.,5761453297732041.,.493526611717488370904,-48,55, + 5387492754232463.,5761453297732822.,-.498916577851145128992,-48,55, + 5387492754232717.,5761453297735535.,.499979718355649391052,-48,55, + 5387492754279827.,5761453298238907.,.499914148046825083186,-48,55, + 5837710520426888.,5739820167756156.,-.499904769802136979855,-48,56, + 5837710520427393.,5739820167735731.,.486069643533681321759,-48,56, + 5837710520427402.,5739820167735367.,.493740474510893663827,-48,56, + 5837710520427411.,5739820167735004.,-.498588694517201010999,-48,56, + 5837710520429104.,5739820167666532.,.499935303913342164414,-48,56, + 5837710520434449.,5739820167450361.,.499999500753619820917,-48,56, + 5941744889478827.,5113256842792765.,.499909201715594398732,-48,58, + 5941744889480409.,5113256842512193.,-.493411997298525567475,-48,58, + 5941744889480426.,5113256842509177.,.499706548131860708969,-48,58, + 5941744889483041.,5113256842045399.,-.499999671220047620541,-48,58, + 5970544926390160.,6677193384699870.,.014742848865776465714,-48,102, + 5970544926390162.,6954106419290648.,.110243207407158219283,-48,106, + 5970544926390163.,-5373298431082872.,.074267446083067933810,-48,103, + 5970544926390276.,-5552990424343133.,-.356562908476333174633,-48,96, + 5970544926390518.,-8677666850865074.,.380744764737287267737,-48,95, + 5970544926391423.,-7686524494758738.,-.234026881027524847909,-48,93, + 5970544926399147.,-6846746571301368.,.490368793918836607858,-48,90, + 6854611356933735.,-5482818254355861.,-.272815934599856004046,-48,88, + 6854611356954784.,-6961835883449269.,-.381387782464329630417,-48,90, + 6854611356956791.,-5534515805163572.,-.027780867041964344694,-48,90, + 6854611356964573.,-6014352549590064.,-.474826357234504859091,-48,105, + 6854611356964574.,8644648420074370.,.402446568812316630989,-48,104, + 6854611356964770.,8954696439900174.,-.287216368804584596128,-48,96, + 6854611356964819.,5592464255201224.,.203376237505405519365,-48,95, + 7085432669165458.,8379197220034497.,.499999794532511031181,-48,56, + 7085432669167367.,8379197220086383.,.499958444519270564266,-48,56, + 7085432669175003.,8379197220293927.,.499789050468027423940,-48,56, + 7085432669175554.,8379197220308904.,-.499175750961400736650,-48,56, + 7085432669175571.,8379197220309366.,-.444697351534633963831,-48,56, + 7085432669211825.,8379197221294737.,.499930168114881300725,-48,56, + 7092287361616583.,8562913319244086.,-.499939619049962608684,-48,56, + 7092287361616804.,8562913319249925.,-.498837183345556622634,-48,56, + 7092287361616823.,8562913319250426.,.496732709061898977345,-48,56, + 7092287361619292.,8562913319315659.,.499998910609470021287,-48,56, + 7738726398253205.,5552365007049614.,-.380398993126086394359,-48,86, + 7738726398327398.,4897557629580928.,-.135595450064412363048,-48,87, + 7738726398383926.,5385069820564568.,-.309119138463628250768,-48,92, + 7738726398385852.,7321029983611838.,-.121635533576607449432,-48,97, + 7738726398385856.,6978348354796815.,-.492328447051757543695,-48,97, + 7738726398385904.,5732337618033096.,-.249694050022780667701,-48,98, + 7738726398385936.,7981809823768595.,-.427957581457272629210,-48,103, + 7738726398385937.,4997807525456558.,.184804083978878967948,-48,104, + 7738726398385938.,-5968004596624071.,-.357471911811650972580,-48,104, + 7738726398386175.,-5087627885800182.,-.244319750038220555432,-48,95, + 7738726398386817.,-4709432060500464.,.426631778818741143117,-48,93, + 8046051565529697.,-4771782799191321.,-.499998427047246177216,-48,55, + 8046051565532085.,-4771782799211630.,-.327248379551349138484,-48,55, + 8046051565532121.,-4771782799211936.,-.490473250533187553568,-48,55, + 8046051565532123.,-4771782799211953.,-.499541298918738622267,-48,55, + 8046051565533667.,-4771782799225085.,.499925420580635400963,-48,55, + 8048695210899748.,-4794051308714574.,-.499950941256719570608,-48,55, + 8048695210938971.,-4794051309041780.,.499983891936133512202,-48,55, + 8048695210939266.,-4794051309044240.,-.440663308766148967910,-48,55, + 8048695210939272.,-4794051309044290.,-.493693421267229615644,-48,55, + 8048695210939310.,-4794051309044607.,-.496217467055954681319,-48,55, + 8048695210939348.,-4794051309044924.,-.498741512755807471582,-48,55, + 8048695210939763.,-4794051309048386.,-.499990953429565639397,-48,55, + 8082833509084550.,-5042373659345624.,-.499972796764947599874,-48,55, + 8082833509086866.,-5042373659359960.,.494235361526984649359,-48,55, + 8082833509086882.,-5042373659360059.,.461380151386928469035,-48,55, + 8082833509086924.,-5042373659360318.,-.499864775152268271691,-48,55, + 8082833509158450.,-5042373659803032.,-.499809816246704687941,-48,55, + 8383589335329661.,-7915603836714561.,-.498903644472731204157,-48,56, + 8383589335472188.,-7915603833127384.,-.499964327513485392544,-48,56, + 8383589335476315.,-7915603833023515.,.499957107083236707979,-48,56, + 8383589335478043.,-7915603832980023.,-.499348378223181081984,-48,56, + 8383589335478138.,-7915603832977633.,.498953701288533340010,-48,56, + 8383589335478328.,-7915603832972851.,.495557862935715498258,-48,56, + 8383589335478340.,-7915603832972548.,-.483603979369116615962,-48,56, + 8383589335478364.,-7915603832971944.,-.441927663936917079610,-48,56, + 8622875142214369.,-8760285420123741.,-.420023207783816220912,-48,89, + 8622875142237705.,-5448821912278161.,-.162074161204352818251,-48,91, + 8622875142241966.,-5818765102519801.,.073563986546775209809,-48,98, + 8622875142241992.,-6394148481994965.,.117860360894930890382,-48,100, + 8622875142242000.,-4800086939568530.,.370374741449053694436,-48,102, + 8622875142242001.,-8812094264068459.,.009671678222635354446,-48,104, + 8622875142242002.,6304636920548797.,.332449619031595216827,-48,106, + 8622875142242087.,6910763329981357.,.449454419642247953661,-48,97, + 8622875142243055.,5341995648744154.,-.254496821607718081881,-48,93, + 8622875142243539.,7797032119054106.,.497010014524215668931,-48,93, + 8622875142272830.,4886637189911342.,-.363108542025478012780,-48,88, + 8743148203170881.,8550522266050297.,-.499999643731811450471,-48,57, + 8743148203173776.,8550522266242010.,-.499904343457750801625,-48,57, + 8743148203174744.,8550522266306112.,.499781882969982935255,-48,57, + 8743148203174870.,8550522266314456.,.485278222664552777450,-48,57, + 8743148203175041.,8550522266325780.,.465594680745740414213,-48,57, + 8853620773014141.,7493884041627252.,.498821212299160925143,-48,56, + 8853620773014232.,7493884041629475.,.460094501111629500600,-48,56, + 8853620773014253.,7493884041629988.,.451157567646182722167,-48,56, + 8853620773014475.,7493884041635411.,.499538554100052514734,-48,56, + 8853620773016152.,7493884041676378.,-.499853878907749020588,-48,56, + 8853620773017495.,7493884041709185.,-.499963818433621065469,-48,56, + 8853620773027230.,7493884041946992.,.499978615833497119458,-48,56, + 8853620773045357.,7493884042389801.,.499949565711314694850,-48,56, + 8913783750976153.,8777309510065625.,-.499996466569833611956,-48,56, + 8913783750984254.,8777309510212104.,-.499952077211545457116,-48,56, + 8913783750986411.,8777309510251106.,-.499818064485301108316,-48,56, + 8913783750986656.,8777309510255535.,.490924986750947870987,-48,56, + 8913783750986681.,8777309510255988.,-.469203273707732209864,-48,56, + 8913783750986693.,8777309510256205.,-.490064838752943294396,-48,56, + 8913783750998299.,8777309510466059.,.499983895870261408687,-48,56, + 8959635272245616.,4742300537707525.,.499985878071639224001,-48,55, + 8959635272253489.,4742300537757543.,.499638703655357587633,-48,55, + 8959635272253843.,4742300537759792.,.498987923254695896374,-48,55, + 8959635272253877.,4742300537760009.,-.495424863962935660299,-48,55, + 8959635272253928.,4742300537760333.,-.487044044920658345349,-48,55, + 8959635272254922.,4742300537766647.,.499829141820371871977,-48,55, + 8959635272256355.,4742300537775752.,-.499980544384850189903,-48,55, + 8959635272282486.,4742300537941764.,.499978864827253857920,-48,55, + 4562160286572391.,4936861296487315.,.499955184413105356867,-47,55, + 4562160286576274.,4936861296456048.,.497728745588535444379,-47,55, + 4562160286576293.,4936861296455896.,-.495586304105019376224,-47,55, + 4562160286576427.,4936861296454816.,.498928606045595332499,-47,55, + 4562160286576580.,4936861296453585.,-.499871539290669296064,-47,55, + 4562160286578225.,4936861296440338.,.499956597475331338367,-47,55, + 4753524103992884.,7944344407544618.,-.072300375559355280311,-47,90, + 4753524103997946.,7324340094337526.,.126704146400810761571,-47,92, + 4753524103999462.,8099193843997351.,-.466196976299874267655,-47,105, + 4753524103999463.,-7868488949778935.,.228502495764635002331,-47,103, + 4753524103999471.,-5438424264750315.,.057127050719957402002,-47,99, + 4753524103999494.,-4915006229436005.,-.422238904293594678024,-47,97, + 4753524104009618.,-6132458627032215.,-.028939347275586433992,-47,89, + 4753524104028883.,-8882702151890436.,-.470199597725848959245,-47,88, + 4971105597105041.,-4835204079502447.,-.499995972370282723258,-47,55, + 4971105597105927.,-4835204079502767.,.499828373244811065919,-47,55, + 4971105597105938.,-4835204079502770.,-.460670420356621325596,-47,55, + 5002636990876803.,-4725834082040406.,-.499988286390243249766,-47,55, + 5002636990884797.,-4725834081982369.,.499941710456815951304,-47,55, + 5002636990887053.,-4725834081965989.,-.499825115768228387609,-47,55, + 5002636990887568.,-4725834081962250.,-.499328455205668372726,-47,55, + 5002636990887668.,-4725834081961524.,-.479814533241198606763,-47,55, + 5002636990887691.,-4725834081961357.,-.495326330853932671878,-47,55, + 5002636990888794.,-4725834081953350.,.499912391763409239552,-47,55, + 5103591057898466.,-5807784873241563.,.499600445548931004504,-47,56, + 5103591057898524.,-5807784873238407.,.482822319228405758970,-47,56, + 5103591057898703.,-5807784873228666.,-.499992926698390942976,-47,56, + 5103591057965099.,-5807784869615827.,-.499374402327643112009,-47,56, + 5195619699658951.,-5408080866845859.,-.182247742736887003524,-47,91, + 5195619699661035.,-4747537659868191.,-.003669358889536915006,-47,94, + 5195619699661096.,-7240234949517251.,.113374576195929229938,-47,95, + 5195619699661279.,-7611421421760262.,.170256505356873183571,-47,99, + 5195619699661291.,-8227503120084219.,-.398881606443019455369,-47,103, + 5195619699661292.,4941734062356398.,.342238642321197730847,-47,105, + 5195619699661296.,4885897507285295.,-.336246574040451224750,-47,100, + 5195619699670740.,5456973923783924.,-.169992259452796648367,-47,89, + 5195619699722064.,8775067453816088.,.482797554546865767308,-47,87, + 5278026714964817.,5188622707738070.,.499947529905925075685,-47,56, + 5278026714984491.,5188622708822201.,-.499785186857399906673,-47,56, + 5278026714984510.,5188622708823247.,.489642691345715541849,-47,56, + 5278026714984529.,5188622708824294.,.479070569450494986676,-47,56, + 5278026714985532.,5188622708879564.,.499921047684109662715,-47,56, + 5278026714988464.,5188622709041132.,-.499947321132922972936,-47,56, + 5278026715002274.,5188622709802127.,.499959055800035642165,-47,56, + 5455740882088605.,8880185155855152.,.499994669056614568166,-47,56, + 5455740882091672.,8880185155797500.,-.499800273846984810529,-47,56, + 5455740882092137.,8880185155788759.,-.499117446635930528357,-47,56, + 5455740882092142.,8880185155788665.,-.488357416758556546344,-47,56, + 5455740882092177.,8880185155788007.,-.413037207928361154696,-47,56, + 5455740882092973.,8880185155773043.,.499959394325155471410,-47,56, + 5637722229577915.,4682923239589512.,-.409521248185373448745,-47,90, + 5637722229580894.,5517813868433403.,-.395265785908197746872,-47,92, + 5637722229582090.,6807848244582307.,.151996533169686007482,-47,97, + 5637722229582112.,7370264546027656.,-.287884694622738657496,-47,98, + 5637722229582134.,8998660823125772.,-.066446693012152767449,-47,101, + 5637722229582137.,8741849358814708.,-.075252699800133356409,-47,103, + 5637722229582138.,-5478644571969314.,.041556382708956453289,-47,107, + 5637722229588048.,-6553753230544884.,-.283109674564957140648,-47,90, + 5637722229750176.,-5823143023435891.,-.208920073836773890617,-47,85, + 5660976669500064.,-5964495681857818.,-.498796696571222718801,-47,58, + 5660976669581739.,-5964495702572464.,.499975015427372408965,-47,58, + 5660976669583534.,-5964495703027716.,-.487782415214792713983,-47,58, + 5660976669583550.,-5964495703031774.,-.453132894264363719240,-47,58, + 5660976669583587.,-5964495703041158.,-.498005876727310307720,-47,58, + 5660976669583701.,-5964495703070072.,.498871964066993993007,-47,58, + 5660976669583990.,-5964495703143369.,.499728966576335475538,-47,58, + 5660976669585260.,-5964495703465469.,-.499964832184981590907,-47,58, + 5762007131366750.,-6943227688647019.,-.499972936512874468742,-47,56, + 5762007131379024.,-6943227689137024.,-.499980332378361530687,-47,56, + 5762007131380065.,-6943227689178584.,.496844069532394294547,-47,56, + 5762007131380155.,-6943227689182177.,.499451384721094805810,-47,56, + 5762007131380939.,-6943227689213476.,.499941897282076220291,-47,56, + 5849202004088885.,-8897233181435165.,.499951616584837415393,-47,56, + 5849202004090610.,-8897233181441283.,-.499226399233912118040,-47,56, + 5849202004090864.,-8897233181442184.,-.499684962136284972198,-47,56, + 5849202004091118.,-8897233181443086.,.499856503980763652129,-47,56, + 5849202004108474.,-8897233181504651.,-.499910639652038199599,-47,56, + 5849202004119385.,-8897233181543355.,-.499810122166928487147,-47,56, + 5948853825700626.,-7092349162095547.,-.499959170598776298528,-47,56, + 5948853825713266.,-7092349161613631.,.499861890582411661504,-47,56, + 5948853825714010.,-7092349161585264.,-.499513979622824145964,-47,56, + 5948853825714287.,-7092349161574704.,.498030268967088085117,-47,56, + 5948853825714303.,-7092349161574093.,-.480450928846019393058,-47,56, + 5948853825714335.,-7092349161572873.,-.437413324202157086270,-47,56, + 5948853825714382.,-7092349161571081.,-.499201841728621772378,-47,56, + 5948853825719772.,-7092349161365581.,.499949918161993323597,-47,56, + 5948853825748677.,-7092349160263538.,-.499786426260080259526,-47,56, + 6079830183182032.,-8058129517793728.,-.148879137453434844945,-47,91, + 6079830183185431.,-6391973843302317.,.415550303271336690925,-47,94, + 6079830183185521.,-4854293464687202.,.479080526300950750639,-47,94, + 6079830183185796.,-4986420516517044.,-.474509574060769601006,-47,99, + 6079830183185805.,-8427943033464179.,.034152926947716412618,-47,106, + 6079830183185806.,7694199941382491.,.459844329005859234349,-47,103, + 6079830183203564.,4740882058939114.,.475748389888373400268,-47,88, + 6079830183226229.,5395747086860437.,.031660393114721633356,-47,87, + 6521942458727836.,6506894359012497.,-.395970547821338550195,-47,86, + 6521942458821460.,7583908755703801.,-.328047455930044215332,-47,90, + 6521942458828808.,8311073862452251.,.469388886441023131301,-47,100, + 6521942458828815.,7366891995081204.,.247065218293631319128,-47,103, + 6521942458828816.,-8632519930249533.,-.163898477805237331520,-47,106, + 6521942458828833.,-4520635429982554.,.134909166408417072072,-47,98, + 6521942458828858.,-5559519662789073.,.347782073927131285739,-47,97, + 6521942458829060.,-8054267850248700.,.462155863191253519202,-47,95, + 6521942458829262.,-7359327892399962.,-.250380061605464569516,-47,94, + 6574525673420231.,-6140723097119105.,.499970289446798655374,-47,57, + 6574525673422418.,-6140723097361485.,-.499951816142395552261,-47,57, + 6574525673424320.,-6140723097572280.,-.498511059332492971340,-47,57, + 6574525673424384.,-6140723097579373.,-.495307984910630981175,-47,57, + 6574525673424413.,-6140723097582588.,.490518408627578961800,-47,57, + 6574525673424419.,-6140723097583252.,-.477931303019847834194,-47,57, + 6574525673424605.,-6140723097603866.,-.499872358253229137116,-47,57, + 6574525673470183.,-6140723102655188.,-.499689592717030889450,-47,57, + 6694111552432517.,-7838193249364682.,-.498953613693470629311,-47,56, + 6694111552504708.,-7838193250778260.,.497146382740749663139,-47,56, + 6694111552504727.,-7838193250778632.,.456822043727282572983,-47,56, + 6694111552504856.,-7838193250781158.,.498830482651913574621,-47,56, + 6694111552504930.,-7838193250782607.,.499672535882029209027,-47,56, + 6694111552506145.,-7838193250806398.,.499984938251209444581,-47,56, + 6820329768421132.,-7042921138923024.,-.474499564948193898570,-47,56, + 6820329768421144.,-7042921138922651.,.498983601547588812725,-47,56, + 6820329768421521.,-7042921138910902.,.499246441361565905109,-47,56, + 6820329768422652.,-7042921138875654.,-.499964739866602066962,-47,56, + 6820329768434041.,-7042921138520722.,-.499953987968155828445,-47,56, + 6820329768445430.,-7042921138165790.,-.499897707150934889435,-47,56, + 6964058234203175.,-5759002727459402.,-.316969309818321297948,-47,88, + 6964058234225118.,-4570958717017194.,-.384460104896616178869,-47,92, + 6964058234226176.,-5576793167630849.,.066673772127183135038,-47,96, + 6964058234226226.,-4768090465258022.,-.361289144843542391715,-47,97, + 6964058234226251.,-6301370121024807.,-.203554817680668896511,-47,99, + 6964058234226259.,-8858611056889946.,-.275740137345775284145,-47,101, + 6964058234226263.,-5481410746282496.,-.387671651452918363655,-47,104, + 6964058234226264.,5432729340463383.,.099296027777280524936,-47,103, + 6964058234226680.,6651526504296657.,-.354508364924725722376,-47,94, + 7105178455437106.,6820806103990029.,.499964683251853266409,-47,56, + 7105178455443427.,6820806104182511.,.499979262965818202288,-47,56, + 7105178455449748.,6820806104374993.,.499979912415449228884,-47,56, + 7105178455451173.,6820806104418386.,.452042681375984790786,-47,56, + 7105178455451182.,6820806104418661.,-.487207450754093103185,-47,56, + 7105178455451213.,6820806104419604.,.499819871692809870759,-47,56, + 7172554528816176.,8021298084808396.,.499716958585490521642,-47,56, + 7172554528853407.,8021298084977518.,-.465128106167786523170,-47,56, + 7172554528853418.,8021298084977568.,-.497859335221113597509,-47,56, + 7172554528853571.,8021298084978263.,-.498575526233387950826,-47,56, + 7172554528853877.,8021298084979652.,.499992063257614606076,-47,56, + 7406176883194210.,4729830900696556.,-.232322031273193397415,-47,90, + 7406176883198942.,4853030872116483.,-.034568843699432168476,-47,95, + 7406176883199003.,5928971704098697.,.256731323868997758436,-47,96, + 7406176883199064.,8607526655857839.,-.231581002806579968062,-47,98, + 7406176883199096.,5454636179691645.,-.137967060575345612284,-47,101, + 7406176883199098.,5967150451973850.,-.488203856540582312273,-47,103, + 7406176883199099.,-7834186725690055.,-.404605334855419622516,-47,105, + 7406176883199109.,-5075969875961631.,.461090791209211709469,-47,99, + 7406176883199751.,-5048352614898070.,.062730512054199510652,-47,93, + 7483548296460570.,-8239074157962175.,-.499945561005803363670,-47,57, + 7483548296460638.,-8239074157968634.,-.499507666247743221334,-47,57, + 7483548296460647.,-8239074157969489.,-.367096768263587100700,-47,57, + 7483548296465124.,-8239074158394739.,.499973122415419049265,-47,57, + 7483548296476543.,-8239074159479375.,-.499972096140905710289,-47,57, + 7483548296533638.,-8239074164902560.,-.498859772360327056830,-47,57, + 7792547491850024.,-5962700188715346.,-.499972909767329692950,-47,57, + 7792547491850112.,-5962700188706399.,.497973995658712129536,-47,57, + 7792547491850530.,-5962700188663896.,.488221826888593398307,-47,57, + 7792547491850552.,-5962700188661659.,.487708556241936467915,-47,57, + 7792547491863663.,-5962700187328508.,-.499970806395137097104,-47,57, + 7848297920473556.,-4697655415834011.,.204922560766714695225,-47,87, + 7848297920505468.,-7588942737361888.,.167593503308373801436,-47,90, + 7848297920509437.,-7717404085985993.,.272804900751119219084,-47,91, + 7848297920513406.,-8221526312063445.,-.281013862038589141364,-47,96, + 7848297920513486.,-6819050429541786.,-.435771845602447258401,-47,97, + 7848297920513542.,-5263929173265403.,.308435630208115855672,-47,103, + 7848297920513543.,4870545164805172.,-.114647936435654940319,-47,104, + 7848297920513545.,8916838046869280.,.134074309126035269467,-47,102, + 7848297920513559.,7851406292068142.,-.082865627043243264926,-47,99, + 7848297920513566.,5609903530086439.,.180420291651223731445,-47,98, + 8290420964302862.,4737733942183833.,-.043622880915341679512,-47,87, + 8290420964338055.,5720052416413851.,-.010843650242165247635,-47,90, + 8290420964342879.,5235212599238402.,-.096774811857391404574,-47,92, + 8290420964344304.,5866388542158498.,-.357517466570751796213,-47,100, + 8290420964344310.,7938592592826740.,-.039521421025051277229,-47,105, + 8290420964344311.,-5506428549970195.,.461033858775767190170,-47,103, + 8290420964344487.,-5171624716519871.,.228664319054921046054,-47,95, + 8398512618577631.,-5170601448623260.,.499955115451502362290,-47,56, + 8398512618577812.,-5170601448630088.,-.466945896982865501362,-47,56, + 8398512618577823.,-5170601448630503.,-.487033803535482069085,-47,56, + 8398512618577834.,-5170601448630919.,.492878289944031826197,-47,56, + 8398512618577930.,-5170601448634541.,.499383834401789937012,-47,56, + 8398512618582858.,-5170601448820469.,-.499994929598269351020,-47,56, + 8535255807959020.,-7277517389088526.,-.499965562523098422858,-47,56, + 8535255807959631.,-7277517389082877.,-.499425006866064075666,-47,56, + 8535255807959741.,-7277517389081860.,-.494417690993166116893,-47,56, + 8535255807959798.,-7277517389081334.,.499086101702737161569,-47,56, + 8535255807973798.,-7277517388951896.,-.499946311706954127788,-47,56, + 8535255807988576.,-7277517388815266.,-.499847056702086118589,-47,56, + 8732545710124506.,-7259755887050187.,.256254823112709371904,-47,93, + 8732545710125456.,-7812070229980610.,-.479691373352831871889,-47,97, + 8732545710125523.,-5470892226455692.,-.335871306281951758598,-47,102, + 8732545710125524.,-7285637256096030.,.417612431296128630884,-47,104, + 8732545710125525.,7312294393630709.,-.492959564440702024709,-47,104, + 8732545710125563.,8781776516925711.,.206220192799281887023,-47,98, + 8732545710147239.,4836834718874602.,-.114723888328297764697,-47,88, + 8732545710166453.,4558345480751110.,-.494473607220010047892,-47,87 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/j1.c b/src/regress/lib/libm/fpaccuracy/j1.c new file mode 100644 index 000000000..87054a77f --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/j1.c @@ -0,0 +1,1056 @@ +/* $OpenBSD: j1.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 18:17:40. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1024 +#define F j1 +#define Fs "j1" +#define Fn fpaccuracy_j1 + /* 8 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -8175955385384178.,6345669746883215.,-.299105539639046430656,-48,98, + -8175955385384140.,6724269845674079.,-.414317356754924006569,-48,107, + -8175955385384139.,-4912395372406126.,.021479327067878908037,-48,103, + -8175955385384137.,-7788859923963820.,.142258027257096742060,-48,102, + -8175955385384136.,-5227595521422099.,-.390580344976104865394,-48,101, + -8175955385384095.,-7485922932308751.,.035659864887602329222,-48,98, + -8175955385382229.,-4975731088621406.,-.353646347155773900574,-48,92, + -8175955385377253.,-8966216934718857.,.311680560226496229489,-48,91, + -8175955385376631.,-4888005429260077.,.446794957999899049940,-48,90, + -8175955385351834.,-5257463561601989.,-.053631183398833897227,-48,88, + -7291235497584344.,-8215502951236091.,-.175997965559263033147,-48,93, + -7291235497583831.,-5386682322252667.,.391739122290226281784,-48,93, + -7291235497582855.,-4868685703263167.,-.174091009551569229620,-48,103, + -7291235497582854.,6223416113926111.,-.250717002256119399865,-48,106, + -7291235497582830.,8518539514645959.,-.212424240878980776721,-48,99, + -7291235497582805.,8670685942872948.,-.112483991335614276582,-48,98, + -7291235497580265.,7138602662419197.,-.383299138723147918546,-48,92, + -7291235497576186.,4596239200115683.,-.382948734852671903606,-48,90, + -6406394220959916.,6681102318437250.,.168437355163967388074,-48,106, + -6406394220959915.,-5188322245363122.,.341925907482688562565,-48,103, + -6406394220959732.,-8652199286570956.,.434860648159376472895,-48,96, + -6406394220959305.,-7186521374409927.,-.488847732422988269777,-48,94, + -6406394220948496.,-8396860164048770.,-.066801199764308813752,-48,90, + -5521373317393574.,-7404555580895868.,-.384789986518913442525,-48,102, + -5521373317393572.,-7336710240528029.,.220771671215173607932,-48,105, + -5521373317393571.,4653289240697859.,.355039469044606283547,-48,103, + -5521373317393554.,7183764053425361.,-.345414897894010329800,-48,99, + -5521373317393534.,7646548777231367.,.115802024744825947803,-48,98, + -5521373317393089.,6116430248517247.,-.307011313511596854228,-48,94, + -4636070209992637.,5194948698108452.,.496017354463420168388,-48,89, + -4636070209980616.,6115240084029692.,.344497572835170710836,-48,101, + -4636070209980613.,6451454732839930.,-.460778944675535270683,-48,104, + -4636070209980612.,-7705367246959280.,.359716980135678784293,-48,104, + -4636070209979781.,-5748058804912675.,.325238470441809211758,-48,93, + -7500571754953952.,-5713970647511613.,.183573456694062959370,-49,91, + -7500571754949141.,-8749628513350989.,.381826482870974173044,-49,94, + -7500571754948003.,-6715543750931279.,-.488151505985507304315,-49,104, + -7500571754948002.,4606732039934498.,.348088625846449302658,-49,106, + -7500571754947999.,6188340823182086.,-.223538802744803517675,-49,102, + -7500571754947979.,5690559328469585.,-.381003372727502021306,-49,99, + -7500571754947969.,8149067691255501.,.484108026404541356511,-49,99, + -7500571754947841.,4952246841864441.,-.143823798146069855363,-49,96, + -7500571754920925.,6500917074239726.,.479543358271511650312,-49,89, + -5727153412780770.,7692299052474744.,.190757057180968115378,-49,90, + -5727153412766934.,6070843483490475.,.199565749267054440577,-49,96, + -5727153412766767.,6463669329558343.,.435638431316600128578,-49,101, + -5727153412766766.,5339098538288046.,.325120023678227805645,-49,101, + -5727153412766762.,6726522985654847.,.355753474466925589188,-49,104, + -5727153412766761.,-4540086689015075.,.234594756189187142422,-49,105, + -5727153412766662.,-6976016484613995.,-.330121898989058759276,-49,97, + -5727153412766620.,-4964007405849295.,.033585304043011570756,-49,96, + -5727153412765092.,-7332782836126815.,.135553028487202599204,-49,93, + -5727153412764171.,-5689300985954676.,-.463173751175390571169,-49,92, + -7898848377991763.,-8396130603330193.,.134680186079041012792,-50,103, + -7898848377991760.,-4584375293791278.,-.121896254169230918739,-50,107, + -7898848377991759.,4833357853254917.,-.074526546616365083912,-50,104, + -7898848377991730.,5050596751176287.,.146684994652797119214,-50,99, + -7898848377991070.,7284855939304354.,-.083680498962580683669,-50,95, + -7898848377990740.,5384726380241245.,.135819935051989785970,-50,94, + -7898848377977885.,4578448063185753.,-.082629901593374805675,-50,90, + -7898848377973600.,5992415617994179.,-.273879321019697828578,-50,90, + -8628234789829783.,8792270596004384.,-.086374134192605180805,-51,91, + -8628234789814524.,8139983228029557.,-.269401915206049949186,-51,93, + -8628234789811176.,8837952710441753.,-.048816934188895743028,-51,95, + -8628234789810081.,8635358073396803.,-.162562867127809084702,-51,98, + -8628234789809955.,5973026029193264.,-.311607682538247522818,-51,100, + -8628234789809947.,8318317929574569.,.344930936339676685014,-51,101, + -8628234789809931.,8502797375605146.,-.476451722942585667136,-51,104, + -8628234789809929.,4989316471924847.,.203903487780482909497,-51,106, + -8628234789809928.,-4760810021661511.,-.381968161789506953557,-51,105, + -8628234789809695.,-6622206695500239.,-.399862427717394128314,-51,97, + 0.,0.,0.000000000000000000000,0,0, + 8703077354431246.,8703015363518192.,-.499996412485341841154,-60,61, + 8703077354431279.,8703015363518224.,.499298424222610301011,-60,61, + 8703077354433938.,8703015363520883.,.442479357751221393211,-60,61, + 8703077354445577.,8703015363532522.,.193770401503917162392,-60,61, + 8703077354446224.,8703015363533169.,.179944927262811139775,-60,61, + 8703077354446231.,8703015363533176.,.179795347170558049465,-60,61, + 7188956797842247.,7186720945596560.,-.498148364988950503228,-57,58, + 7188956797842248.,7186720945596561.,-.499081336669394686547,-57,58, + 7188956797842249.,7186720945596561.,.499985691650161129874,-57,58, + 7188956797910847.,7186720945665095.,.499994355929456047965,-57,58, + 9006440473825926.,9002044254184875.,.499998630019967908465,-57,58, + 9006440473846415.,9002044254205335.,-.499990532371780518387,-57,58, + 9006440473864172.,9002044254223066.,-.499785913251853940373,-57,58, + 9006440473864173.,9002044254223066.,.498749886974483204228,-57,58, + 9006440473864198.,9002044254223091.,.462144892632911713612,-57,58, + 9006440473864252.,9002044254223145.,.383078104855116600537,-57,58, + 9006440473865538.,9002044254224430.,-.499882804075617464127,-57,58, + 9006440473866904.,9002044254225794.,-.499979694899987529681,-57,58, + 7591484324370971.,7580956715298376.,-.499998897125356612374,-56,57, + 7591484324373132.,7580956715300528.,-.487628221154947637969,-56,57, + 7591484324373135.,7580956715300530.,.499894736747830495723,-56,57, + 8003388475030398.,7991053196600355.,.499999432976884837698,-56,57, + 8003388475031696.,7991053196601648.,-.499598652794888765839,-56,57, + 8003388475031876.,7991053196601827.,-.331592224011466970711,-56,57, + 8003388475031910.,7991053196601861.,-.488746565241269274574,-56,57, + 8003388475031912.,7991053196601863.,-.497990938254787098701,-56,57, + 8715649185225259.,8699720314565722.,-.499990637312887779311,-56,57, + 8715649185227631.,8699720314568080.,.499970289120797384814,-56,57, + 8715649185231966.,8699720314572392.,-.258532823844336696503,-56,57, + 8715649185232008.,8699720314572434.,-.488719013174218183509,-56,57, + 8715649185232010.,8699720314572436.,-.499680260285164976266,-56,57, + 8715649185232375.,8699720314572798.,.499892141966961196852,-56,57, + 8715649185276713.,8699720314616894.,-.499995061867801413529,-56,57, + 4823460372570023.,4812661900687166.,-.499992962491190477351,-55,56, + 4823460372574641.,4812661900691752.,.499949889759885591489,-55,56, + 4823460372574790.,4812661900691900.,.499731501925509471074,-55,56, + 4823460372575197.,4812661900692305.,-.232408658132463332302,-55,56, + 4823460372575236.,4812661900692344.,-.494210786491850996932,-55,56, + 4823460372575237.,4812661900692344.,.499076338422010802222,-55,56, + 4823460372588346.,4812661900705365.,.499996833997455185708,-55,56, + 6866204439028933.,6835079861410527.,.499999972006963565281,-55,56, + 6866204439034012.,6835079861415538.,-.499801278371245887544,-55,56, + 6866204439034895.,6835079861416409.,-.495632052960087960171,-55,56, + 6866204439034896.,6835079861416409.,.490782634724407642777,-55,56, + 6866204439034969.,6835079861416481.,.499054835692575996639,-55,56, + 6866204439035337.,6835079861416844.,.499659903586583847587,-55,56, + 7429938090847012.,7390510838488065.,-.499938609706013521510,-55,56, + 7429938090848710.,7390510838489736.,-.499512695913546395487,-55,56, + 7429938090848773.,7390510838489797.,.498736322089117600707,-55,56, + 7429938090848962.,7390510838489983.,.493483376097007961783,-55,56, + 7429938090848963.,7390510838489984.,.477582566858954066212,-55,56, + 7429938090853867.,7390510838494811.,-.499985936608675927164,-55,56, + 7477266621056646.,7437082017101845.,-.499998264184671749237,-55,56, + 7477266621061055.,7437082017106183.,-.499985317128600966321,-55,56, + 7477266621091918.,7437082017136549.,-.499894690073553503803,-55,56, + 7477266621092539.,7437082017137159.,.499880324607634894222,-55,56, + 7477266621093781.,7437082017138381.,.499430353965043385975,-55,56, + 7477266621094274.,7437082017138867.,-.439556631163039303191,-55,56, + 7477266621094278.,7437082017138870.,.496029681330846223789,-55,56, + 7477266621094402.,7437082017138992.,.499205368641263479702,-55,56, + 8992428863864690.,8922587251986666.,.499999172999847031856,-55,56, + 8992428863870494.,8922587251992336.,-.499991369510146492931,-55,56, + 8992428863893710.,8922587252015012.,-.499953541285242375189,-55,56, + 8992428863893796.,8922587252015095.,.499702008900298767321,-55,56, + 8992428863894785.,8922587252016061.,.495740836031283802355,-55,56, + 8992428863894954.,8922587252016227.,-.435168606046938640948,-55,56, + 8992428863894957.,8922587252016229.,.495051936401375608074,-55,56, + 4539537825720481.,9007199254671797.,.000001380368118097195,-54,56, + 4539537825746337.,9007199254722283.,-.000113689661809773498,-54,56, + 4539537825754562.,9007199254738343.,-.000537054697682172056,-54,56, + 4539537825755743.,9007199254740649.,.000617961100797438762,-54,56, + 4539537825755912.,9007199254740979.,-.012764598029481087425,-54,56, + 4539537825755913.,9007199254740981.,-.060181062876407580283,-54,56, + 4539537825755918.,9007199254740991.,-.297263387111040356548,-54,56, + 4539537825755919.,4503599627370496.,.327660074021016512902,-54,55, + 4539537825755954.,4503599627370530.,.497871939199794152619,-54,55, + 4539537825767258.,4503599627381567.,-.499987376298024103403,-54,55, + 4684840655075750.,4645346655499387.,-.499993469916344217357,-54,55, + 4684840655103837.,4645346655526764.,.499991045764627808595,-54,55, + 4684840655104352.,4645346655527266.,.499848347126715161566,-54,55, + 4684840655106927.,4645346655529776.,.499134853894480642891,-54,55, + 4684840655107125.,4645346655529970.,-.498978261316224049619,-54,55, + 4684840655107202.,4645346655530045.,-.442688917231611656190,-54,55, + 4684840655107204.,4645346655530047.,-.493174908294349843960,-54,55, + 4684840655107244.,4645346655530085.,.497105270450877390978,-54,55, + 5261029272892215.,5205138611503227.,-.499996951478789608140,-54,55, + 5261029272897719.,5205138611508555.,.499996279635679234134,-54,55, + 5261029272899512.,5205138611510291.,.491454830318022924408,-54,55, + 5261029272899513.,5205138611510292.,.459659770948621373458,-54,55, + 5261029272899543.,5205138611510322.,-.494192010133430742172,-54,55, + 5261029272899669.,5205138611510443.,.499630509321832285302,-54,55, + 5357701474447705.,5298680634253037.,.495987218451877799223,-54,55, + 5357701474447796.,5298680634253125.,.495988113894021836127,-54,55, + 5357701474451618.,5298680634256821.,.496025722372613076699,-54,55, + 5357701474648360.,5298680634447077.,.497961422271549395207,-54,55, + 5357701474851381.,5298680634643405.,.499958403501782708950,-54,55, + 5357701474855476.,5298680634647365.,.499998678079934969013,-54,55, + 6544763739207488.,6437373719114762.,-.497590964965029103690,-54,55, + 6544763739207508.,6437373719114781.,-.478493726439620970441,-54,55, + 6544763739207590.,6437373719114858.,.499804951514490273116,-54,55, + 6544763739209894.,6437373719117049.,.499806829598944463651,-54,55, + 6544763739302054.,6437373719204689.,.499881888336460233486,-54,55, + 6544763739442598.,6437373719338340.,.499996110075161988577,-54,55, + 6748349574621056.,6630663842941361.,-.499998524857236766963,-54,55, + 6748349574629998.,6630663842949836.,.499985781699789024619,-54,55, + 6748349574652353.,6630663842971026.,.499946542742137276964,-54,55, + 6748349574653773.,6630663842972372.,.498602068347540248691,-54,55, + 6748349574654080.,6630663842972663.,.499719847470851157076,-54,55, + 6750030179323380.,6632256843643739.,-.499977248530777434990,-54,55, + 6750030179323802.,6632256843644138.,.497225794780136635140,-54,55, + 6750030179323840.,6632256843644175.,-.484068717907639876132,-54,55, + 6750030179323917.,6632256843644248.,-.498797072564517906122,-54,55, + 6750030179324128.,6632256843644447.,.499804449089546321443,-54,55, + 6750030179332682.,6632256843652555.,.499981776614953514117,-54,55, + 6750030179378444.,6632256843695931.,.499995185498280758072,-54,55, + 6921931465611633.,6794967445465399.,-.499864723271157412564,-54,55, + 6921931465611998.,6794967445465743.,.497708220323167798040,-54,55, + 6921931465612162.,6794967445465899.,-.489683662555678205066,-54,55, + 6921931465612181.,6794967445465916.,.469094107110769708286,-54,55, + 6921931465612217.,6794967445465950.,.496251986478760766214,-54,55, + 6921931465617819.,6794967445471246.,-.499902452116337150927,-54,55, + 6921931465632253.,6794967445484889.,-.499990488420563538745,-54,55, + 6921931465634315.,6794967445486837.,.499996934698016653665,-54,55, + 7262316160955297.,7115776556628056.,-.499863753865276701572,-54,55, + 7262316160955347.,7115776556628102.,.487088101099311716043,-54,55, + 7262316160955380.,7115776556628133.,.498476325375917601074,-54,55, + 7262316160955911.,7115776556628632.,.499905025097028074756,-54,55, + 7262316160960126.,7115776556632593.,.499946398425343834050,-54,55, + 7262316160964341.,7115776556636554.,.499987771462153467140,-54,55, + 7262316160990245.,7115776556660898.,-.499995217822208419059,-54,55, + 7667186625704845.,7494880541413992.,.499997020443020141954,-54,55, + 7667186625735629.,7494880541442711.,.499993193135386336752,-54,55, + 7667186625744171.,7494880541450681.,-.499942902959834831179,-54,55, + 7667186625744812.,7494880541451279.,-.498416215770815747561,-54,55, + 7667186625744842.,7494880541451306.,.489174736827560389934,-54,55, + 7667186625744857.,7494880541451320.,.482970213126742627539,-54,55, + 7667186625744976.,7494880541451432.,-.499585674899882707302,-54,55, + 7667186625746750.,7494880541453086.,.499959322052339270959,-54,55, + 7756304500058952.,7577951500930363.,-.499995572890209631280,-54,55, + 7756304500086477.,7577951500955998.,.499976222415069023137,-54,55, + 7756304500086579.,7577951500956093.,.499867126046084341313,-54,55, + 7756304500086681.,7577951500956188.,.499758029676917923434,-54,55, + 7756304500086725.,7577951500956229.,.480103125360750812741,-54,55, + 7756304500104793.,7577951500973057.,.499993777400146223305,-54,55, + 8671512143431446.,8422762759623348.,.499999057501467864943,-54,55, + 8671512143458018.,8422762759647648.,.499977552165911375415,-54,55, + 8671512143471304.,8422762759659798.,.499966794360826189455,-54,55, + 8671512143472649.,8422762759661028.,.497707689153522924685,-54,55, + 8671512143472672.,8422762759661050.,-.468873693315011291849,-54,55, + 8671512143472684.,8422762759661061.,-.494916153733381044547,-54,55, + 8671512143472801.,8422762759661168.,-.498830142812632553669,-54,55, + 8671512143473339.,8422762759661660.,-.499733784906968357733,-54,55, + 4657543646268918.,9007199254725189.,-.000008463476511216135,-53,55, + 4657543646275126.,9007199254736383.,.000049478912754235191,-53,55, + 4657543646276203.,9007199254738325.,.000381695718977736149,-53,55, + 4657543646277280.,9007199254740267.,.000713912428982526743,-53,55, + 4657543646277534.,9007199254740725.,.002649272716113004869,-53,55, + 4657543646277656.,9007199254740945.,-.012169176281734791159,-53,55, + 4657543646277666.,9007199254740963.,.019403081997075395114,-53,55, + 4657543646277682.,4503599627370496.,-.065040652378422780458,-53,54, + 4657543646277683.,4503599627370497.,-.163462039464483162881,-53,54, + 4657543646277686.,4503599627370500.,-.458726200722664559007,-53,54, + 4889567999032922.,4711654290692016.,-.499964442945898624045,-53,54, + 4889567999033781.,4711654290692781.,.499873053251013437956,-53,54, + 4889567999035499.,4711654290694313.,.499548045548820585227,-53,54, + 4889567999035850.,4711654290694626.,.498317499721970739220,-53,54, + 4889567999035887.,4711654290694659.,.492489778366692315000,-53,54, + 4889567999036007.,4711654290694767.,-.499383912515700356953,-53,54, + 4889567999051626.,4711654290708694.,.499989599718812406493,-53,54, + 4930099044600135.,4747761499953253.,.499971363904577781997,-53,54, + 4930099044601780.,4747761499954718.,-.499917995182786965612,-53,54, + 4930099044602298.,4747761499955179.,-.495627835941164488288,-53,54, + 4930099044602316.,4747761499955195.,-.476173737743789981218,-53,54, + 4930099044602334.,4747761499955211.,-.456719639546429634371,-53,54, + 4930099044602398.,4747761499955268.,-.498660623733707525902,-53,54, + 4930099044609696.,4747761499961763.,-.499993478013311633458,-53,54, + 4930099044636734.,4747761499985826.,-.499998666019200358422,-53,54, + 5026050879145820.,4832953341600110.,.499995782240503763039,-53,54, + 5026050879172557.,4832953341623792.,.499986620169414619677,-53,54, + 5026050879173721.,4832953341624824.,-.499976378071333134726,-53,54, + 5026050879177169.,4832953341627878.,-.472375362904471410435,-53,54, + 5026050879177178.,4832953341627885.,.499274407726072628725,-53,54, + 5026050879177213.,4832953341627917.,-.499865373155179247139,-53,54, + 5035712052436386.,4841508541146428.,.499970282120718491937,-53,54, + 5035712052438836.,4841508541148598.,-.493597076333655395113,-53,54, + 5035712052438993.,4841508541148736.,.499876362319537184074,-53,54, + 5035712052446038.,4841508541154974.,-.499993859755201681838,-53,54, + 5280619103506847.,5056970901721599.,-.499997026193988324441,-53,54, + 5280619103513061.,5056970901727030.,.499941906737969499735,-53,54, + 5280619103516168.,5056970901729746.,.499911372530317553682,-53,54, + 5280619103516907.,5056970901730393.,-.499452182340896097984,-53,54, + 5280619103516947.,5056970901730427.,.466752767327054957287,-53,54, + 5280619103516979.,5056970901730455.,.439716727061362209415,-53,54, + 5280619103539840.,5056970901750440.,-.499999426174716623400,-53,54, + 5388947655750085.,5151392215148924.,-.499996575085244237967,-53,54, + 5388947655816853.,5151392215206950.,-.499969734470113082368,-53,54, + 5388947655827981.,5151392215216621.,-.499965281569241497889,-53,54, + 5388947655827996.,5151392215216634.,-.463930049115121240624,-53,54, + 5828367993164410.,5528593569659709.,.499732902721855941666,-53,54, + 5828367993164869.,5528593569660098.,.499286970152245308877,-53,54, + 5828367993164915.,5528593569660137.,.483991735079319518235,-53,54, + 5828367993164928.,5528593569660149.,-.498591700919570297106,-53,54, + 5828367993166305.,5528593569661316.,-.499929498696749833978,-53,54, + 5828367993168659.,5528593569663310.,.499962167044217983921,-53,54, + 5828367993186573.,5528593569678492.,.499987349020828820135,-53,54, + 5828367993195530.,5528593569686083.,.499999933895331568395,-53,54, + 5842346135957115.,5540434989242515.,-.499994987485450305246,-53,54, + 5842346135984638.,5540434989265821.,-.499992367627166423830,-53,54, + 5842346135984664.,5540434989265843.,-.483642403320423490616,-53,54, + 5842346135984677.,5540434989265854.,-.475467421167064929939,-53,54, + 6083309738832363.,5742982945323999.,.499993115391563190695,-53,54, + 6083309738844167.,5742982945333848.,-.499916552951993163058,-53,54, + 6083309738851982.,5742982945340368.,-.496468069881333825587,-53,54, + 6083309738852018.,5742982945340398.,-.461903240024354601810,-53,54, + 6083309738852054.,5742982945340428.,-.427338410167443734984,-53,54, + 6083309738852151.,5742982945340508.,.499127936946670316282,-53,54, + 6083309738852326.,5742982945340655.,-.499515251250770994258,-53,54, + 6083309738853020.,5742982945341234.,-.499848809032528716124,-53,54, + 6083309738877322.,5742982945361508.,.499998262537935986093,-53,54, + 6466710109361875.,6058904374119477.,-.499989797304876612323,-53,54, + 6466710109370927.,6058904374126840.,.499108224670386871857,-53,54, + 6466710109371045.,6058904374126936.,.494677553693895528362,-53,54, + 6466710109371356.,6058904374127189.,.499949259845366277880,-53,54, + 6466710109374965.,6058904374130126.,-.499968465626176882595,-53,54, + 6466710109397536.,6058904374148487.,.499991899876468881990,-53,54, + 6683043781606525.,6233583230259815.,.499993817881135867319,-53,54, + 6683043781677691.,6233583230316842.,.499982636720644428014,-53,54, + 6683043781679503.,6233583230318294.,.498464769631484767092,-53,54, + 6683043781680711.,6233583230319262.,.497452858134429399820,-53,54, + 6683043781680797.,6233583230319331.,.411288102842550708368,-53,54, + 6683043781680842.,6233583230319367.,.470853056468724745599,-53,54, + 6683043781680862.,6233583230319383.,.497326369191431601787,-53,54, + 7533119765570673.,6893388015107713.,.499985074724199086057,-53,54, + 7533119765574788.,6893388015110800.,.499781429137517258736,-53,54, + 7533119765574792.,6893388015110804.,-.499489728720194779780,-53,54, + 7533119765574796.,6893388015110807.,-.498760886577907827547,-53,54, + 7533119765576161.,6893388015111830.,.499956494418577980246,-53,54, + 7533119765639275.,6893388015159177.,.499992105418944121313,-53,54, + 7593583889909334.,6938631575523735.,-.427729610741524095632,-53,54, + 7593583889909354.,6938631575523749.,.499391326221435242216,-53,54, + 7593583889909697.,6938631575524005.,.499515395132235895580,-53,54, + 7593583889911069.,6938631575525030.,-.499988329299246494819,-53,54, + 7593583889919096.,6938631575531020.,.499999717860352806622,-53,54, + 7618936725662702.,6957533397965332.,-.499986285144527000369,-53,54, + 7618936725669072.,6957533397970076.,-.477621792363706022162,-53,54, + 7618936725669076.,6957533397970079.,-.498643855477370913391,-53,54, + 7618936725669409.,6957533397970327.,-.498730609693544512521,-53,54, + 7618936725673738.,6957533397973551.,-.499858415146081811516,-53,54, + 7618936725674404.,6957533397974046.,.499968076216888190237,-53,54, + 7618936725708844.,6957533397999696.,-.499995381869414532404,-53,54, + 8259236168369558.,7421059834483798.,.499995573984815107802,-53,54, + 8259236168422938.,7421059834521306.,.476998114550918957811,-53,54, + 8259236168422948.,7421059834521314.,-.496404470229146155653,-53,54, + 8259236168423022.,7421059834521366.,-.499583597601838587027,-53,54, + 8259236168423661.,7421059834521814.,.499991234934746673621,-53,54, + 8460168363121220.,7560870642288558.,.499998864490160566743,-53,54, + 8460168363169301.,7560870642321682.,.499959128131022673515,-53,54, + 8460168363172776.,7560870642324076.,.499665074742201673685,-53,54, + 8460168363172821.,7560870642324108.,-.498899884228009622715,-53,54, + 8460168363173001.,7560870642324232.,-.493159720110251847147,-53,54, + 8460168363173014.,7560870642324240.,.462810402853721889226,-53,54, + 8460168363173480.,7560870642324561.,.499893272170003796975,-53,54, + 8460168363182542.,7560870642330804.,.499989753621128842012,-53,54, + 8791115980750979.,7785052994558995.,.499996873400101595380,-53,54, + 8791115980769020.,7785052994571006.,.499762825139659761596,-53,54, + 8791115980769053.,7785052994571028.,.469886004344008080126,-53,54, + 8791115980769080.,7785052994571046.,.445441332783871957355,-53,54, + 8791115980769388.,7785052994571251.,.499924338686806681630,-53,54, + 8791115980781906.,7785052994579585.,.499983644331316095321,-53,54, + 8837821264161748.,7816070075385864.,.499997858520029954804,-53,54, + 8837821264165771.,7816070075388529.,.499953307409975735977,-53,54, + 8837821264166956.,7816070075389314.,.492483062828911229233,-53,54, + 8837821264166986.,7816070075389334.,.365711664230624140651,-53,54, + 8837821264167033.,7816070075389366.,-.499563526906821183547,-53,54, + 9007199254630776.,7927246615868532.,-.499998944177438930160,-53,54, + 9007199254740900.,7927246615940144.,.498661363232160097988,-53,54, + 9007199254740960.,7927246615940184.,-.483686539203607069775,-53,54, + 9007199254740991.,7927246615940204.,-.324566288795521940545,-53,54, + 4503599627370497.,7927246615940206.,-.373683683917323835901,-52,54, + 4503599627370500.,7927246615940210.,-.471918474160929575935,-52,54, + 4503599627370623.,7927246615940370.,-.499544874151002740501,-52,54, + 4503599627371132.,7927246615941031.,.499952381128179528691,-52,54, + 4503599627388977.,7927246615964241.,-.499991633832838895050,-52,54, + 5434576820320405.,9007199254726699.,.000006362069286411566,-52,54, + 5434576820331913.,9007199254738365.,.000057956957583276685,-52,54, + 5434576820332787.,9007199254739251.,-.000285710608079087227,-52,54, + 5434576820334504.,4503599627370496.,-.213295073749887661891,-52,53, + 5434576820334505.,4503599627370496.,.293569718201955086833,-52,53, + 5434576820334513.,4503599627370500.,.348488053816691214896,-52,53, + 5434576820334535.,4503599627370511.,.499513476757161834541,-52,53, + 5820205584038554.,4686799745478321.,-.499999694798317723426,-52,53, + 5820205584082231.,4686799745497664.,.494071966744602070823,-52,53, + 5820205584082441.,4686799745497758.,-.499568736258199488282,-52,53, + 5820205584083369.,4686799745498168.,.499961871335518493567,-52,53, + 5820205584100353.,4686799745505690.,.499991844980198441417,-52,53, + 7141873619643821.,5120118378800157.,-.499993048603315619411,-52,53, + 7141873619644359.,5120118378800270.,-.499977481201406144185,-52,53, + 7141873619650815.,5120118378801626.,-.499790676475442740049,-52,53, + 7141873619651353.,5120118378801739.,-.499775109756358314586,-52,53, + 7141873619651391.,5120118378801746.,.481638629154899574168,-52,53, + 7141873619651410.,5120118378801750.,.472345498610430253285,-52,53, + 7353478233081288.,5160493450096148.,-.499997971320994334316,-52,53, + 7353478233127207.,5160493450104025.,-.499958725428940665164,-52,53, + 7353478233128985.,5160493450104330.,-.499717661290068005179,-52,53, + 7353478233129224.,5160493450104370.,.498627453586790441152,-52,53, + 7353478233129247.,5160493450104374.,.444074891419578937066,-52,53, + 7353478233129259.,5160493450104377.,-.497430793189439266427,-52,53, + 7353478233130250.,5160493450104546.,.499891419425194203818,-52,53, + 7353478233135071.,5160493450105373.,.499982624756971207424,-52,53, + 7777516153030435.,5216809883145685.,.499999698764792294275,-52,53, + 7777516153039911.,5216809883146576.,.499968500397750178747,-52,53, + 7777516153040815.,5216809883146662.,-.499612357713508150772,-52,53, + 7777516153040826.,5216809883146663.,-.465315222138349555439,-52,53, + 9007199254730114.,5194675258619754.,.499999498107201005632,-52,53, + 9007199254737722.,5194675258618773.,.499757506423926095799,-52,53, + 9007199254740258.,5194675258618446.,.499676840242887639938,-52,53, + 9007199254740991.,5194675258618352.,-.015725024445927938423,-52,53, + 4503599627370497.,5194675258618352.,-.402554772869134358378,-51,53, + 4503599627370501.,5194675258618351.,-.434100768664359300242,-51,53, + 4503599627370509.,5194675258618349.,-.497192760254843316266,-51,53, + 4503599627370668.,5194675258618307.,.498853906874846085691,-51,53, + 4916525805327143.,5028515015933041.,.499994265768014198285,-51,53, + 4916525805337768.,5028515015927259.,-.499904885824717673328,-51,53, + 4916525805337847.,5028515015927216.,-.498210018624625106752,-51,53, + 4916525805338005.,5028515015927130.,-.494820284237039924129,-51,53, + 4916525805338016.,5028515015927124.,-.481926062223339895740,-51,53, + 4916525805340715.,5028515015925655.,-.499971045141168756892,-51,53, + 4916525805357234.,5028515015916663.,.499997327912318612903,-51,53, + 5274559627536920.,4791457455092406.,-.499753488024016957405,-51,53, + 5274559627537086.,4791457455092277.,-.497793224188302626287,-51,53, + 5274559627537104.,4791457455092263.,-.485532472689080099188,-51,53, + 5274559627537122.,4791457455092249.,-.473271721190060199926,-51,53, + 5274559627537409.,4791457455092025.,.499996927683607348764,-51,53, + 5322620345346316.,4753390163897474.,.499984266003854125928,-51,53, + 5322620345348523.,4753390163895694.,-.499947515777001796740,-51,53, + 5322620345352937.,4753390163892132.,-.499811088369900317290,-51,53, + 5322620345353367.,4753390163891784.,.499749097616485244909,-51,53, + 5322620345353709.,4753390163891509.,-.486647219657327462472,-51,53, + 5322620345353714.,4753390163891504.,.478463945294273626091,-51,53, + 5322620345353740.,4753390163891483.,.497042003042350215172,-51,53, + 5322620345353797.,4753390163891437.,.499309283488594602129,-51,53, + 5322620345405418.,4753390163849780.,.499997650622236204345,-51,53, + 5483662463943775.,4615529115271996.,-.499971889082996518888,-51,53, + 5483662463948515.,4615529115267709.,-.499770606211761712628,-51,53, + 5483662463949959.,4615529115266403.,-.497177644198908815040,-51,53, + 5483662463949980.,4615529115266384.,-.490214727170429611925,-51,53, + 5483662463949990.,4615529115266374.,.465481899985897322447,-51,53, + 5483662463950095.,4615529115266280.,-.499703514876243045241,-51,53, + 5483662463958424.,4615529115258747.,-.499982777442084142119,-51,53, + 5483662463987722.,4615529115232248.,.499995064831128129447,-51,53, + 5571718185699188.,4533613964927403.,.499993105457980759935,-51,53, + 5571718185701069.,4533613964925605.,.499958490238816705505,-51,53, + 5571718185711834.,4533613964915316.,-.489607010370530955128,-51,53, + 5571718185711856.,4533613964915294.,.481152818542632511689,-51,53, + 5571718185711879.,4533613964915272.,.496038094224277796682,-51,53, + 5571718185712083.,4533613964915077.,.497629235039435492354,-51,53, + 5571718185712355.,4533613964914817.,.499750756088992033846,-51,53, + 5571718185727471.,4533613964900369.,-.499995957337869994149,-51,53, + 6099473910240959.,7906983896525167.,-.499882175388971498474,-51,54, + 6099473910240989.,7906983896525093.,-.498279635289304089292,-51,54, + 6099473910241004.,7906983896525056.,-.497478365239788460580,-51,54, + 6099473910297119.,7906983896386642.,-.499928594231024447751,-51,54, + 6099473910386975.,7906983896165001.,.499990952974111996375,-51,54, + 7317086400934487.,8695475200210896.,-.499991457322640172863,-51,55, + 7317086400941478.,8695475200165382.,.499987764035934956296,-51,55, + 7317086400942358.,8695475200159653.,.499842105153032934407,-51,55, + 7317086400944118.,8695475200148195.,.499550785847553485967,-51,55, + 7317086400944314.,8695475200146919.,.494972888797858693496,-51,55, + 7317086400944316.,8695475200146906.,.474518012297220381441,-51,55, + 7404092400504072.,8126657328214731.,.499998723303297276044,-51,55, + 7404092400510227.,8126657328174332.,-.499969777305620286531,-51,55, + 7404092400511458.,8126657328166252.,-.499963480009369788952,-51,55, + 7404092400511490.,8126657328166041.,.459419299437707030824,-51,55, + 7404092400511497.,8126657328165996.,-.486965717558322440570,-51,55, + 7543049467990281.,7209580696438865.,.499731371869919793059,-51,55, + 7543049467990860.,7209580696435025.,.494796079315306918626,-51,55, + 7543049467990871.,7209580696434953.,-.458665558368427344807,-51,55, + 7543049467990947.,7209580696434448.,.499235853997124630218,-51,55, + 7543049467992086.,7209580696426894.,.499889915345717167540,-51,55, + 7543049467993891.,7209580696414924.,-.499951542533465306487,-51,55, + 7543049468006053.,7209580696334264.,-.499991362192458311399,-51,55, + 7958730718298782.,8859855379093024.,-.499974776296762842568,-51,56, + 7958730718301469.,8859855379056963.,-.499079018620394274971,-51,56, + 7958730718301645.,8859855379054600.,.485348838991967282921,-51,56, + 7958730718301664.,8859855379054345.,.495031391802538735072,-51,56, + 7958730718301985.,8859855379050038.,-.499279163340872688612,-51,56, + 7958730718303533.,8859855379029263.,-.499879597376353364961,-51,56, + 7958730718308800.,8859855378958577.,-.499984561119522912060,-51,56, + 7958730718328836.,8859855378689682.,.499995892973090387341,-51,56, + 8036233885275418.,7820126395200607.,.499999221957500606872,-51,56, + 8036233885315364.,7820126394665016.,-.497316340972571616030,-51,56, + 8036233885315516.,7820126394662978.,-.498207342210843360532,-51,56, + 8036233885315820.,7820126394658902.,-.499989344670247866040,-51,56, + 8062587751693826.,7466868853767782.,.499998102448500033887,-51,56, + 8062587751698893.,7466868853699882.,-.499977322840825408029,-51,56, + 8062587751701696.,7466868853662320.,-.470163054057688274917,-51,56, + 8062587751701711.,7466868853662119.,-.479636042266829255603,-51,56, + 8062587751701741.,7466868853661717.,-.498582018684905773290,-51,56, + 8062587751702375.,7466868853653221.,-.498973653589525172482,-51,56, + 8062587751703960.,7466868853631981.,-.499952740315837325289,-51,56, + 8171981788130007.,6003212104257256.,.499757500213074460052,-51,56, + 8171981788130323.,6003212104253037.,-.497357616260398508355,-51,56, + 8171981788130560.,6003212104249872.,-.495193953580107558973,-51,56, + 8171981788131398.,6003212104238680.,.499798237912484016388,-51,56, + 8171981788136962.,6003212104164376.,.499961199161197751299,-51,56, + 8171981788138353.,6003212104145801.,-.499998057913854937553,-51,56, + 8306327458497094.,8429684546844134.,.499996238969961969425,-51,57, + 8306327458497412.,8429684546835700.,-.497155848379149825222,-51,57, + 8306327458497431.,8429684546835196.,-.474973111454464790189,-51,57, + 8306327458497591.,8429684546830952.,-.498697432065023933196,-51,57, + 8628234789809695.,6622206695500239.,.399862427717394128314,-51,97, + 8628234789809928.,4760810021661511.,.381968161789506953557,-51,105, + 8628234789809929.,-4989316471924847.,-.203903487780482909497,-51,106, + 8628234789809931.,-8502797375605146.,.476451722942585667136,-51,104, + 8628234789809947.,-8318317929574569.,-.344930936339676685014,-51,101, + 8628234789809955.,-5973026029193264.,.311607682538247522818,-51,100, + 8628234789810081.,-8635358073396803.,.162562867127809084702,-51,98, + 8628234789811176.,-8837952710441753.,.048816934188895743028,-51,95, + 8628234789814524.,-8139983228029557.,.269401915206049949186,-51,93, + 8628234789829783.,-8792270596004384.,.086374134192605180805,-51,91, + 4580018241300672.,-6593378088042791.,-.499988535122063650899,-50,56, + 4580018241348981.,-6593378089184601.,.499983181974480300798,-50,56, + 4580018241349966.,-6593378089207882.,.499237646467283734946,-50,56, + 4580018241349999.,-6593378089208661.,-.473376163182971011215,-50,56, + 4580018241350010.,-6593378089208921.,-.464247433063957761687,-50,56, + 4580018241350405.,-6593378089218258.,.499920603833541516915,-50,56, + 4621382166193404.,-7562272936993921.,.443181968171564203369,-50,56, + 4621382166193423.,-7562272936994362.,.495668154693418119002,-50,56, + 4621382166193577.,-7562272936997935.,-.499970122829908967783,-50,56, + 4621382166331137.,-7562272940190395.,-.499878859617570726118,-50,56, + 5281225719133822.,-4991943180623968.,-.499167417023135774606,-50,54, + 5281225719133859.,-4991943180624095.,.494394697578351026124,-50,54, + 5281225719133896.,-4991943180624221.,.487956812185866652330,-50,54, + 5281225719134288.,-4991943180625555.,-.499168892142596164443,-50,54, + 5281225719158054.,-4991943180706492.,-.499242855161008179690,-50,54, + 5281225719372880.,-4991943181438099.,-.499798562332568171980,-50,54, + 5281225719396646.,-4991943181519036.,-.499847554046257951992,-50,54, + 5338749892117137.,-5180508430970424.,-.499932575192910151460,-50,54, + 5338749892268184.,-5180508431446159.,-.499960422061171932728,-50,54, + 5338749892279803.,-5180508431482754.,-.499958316420119457412,-50,54, + 5338749892280525.,-5180508431485028.,-.498581110727243611077,-50,54, + 5338749892280605.,-5180508431485280.,-.465187514384390927513,-50,54, + 5338749892280612.,-5180508431485303.,.487734425296977376389,-50,54, + 5338749892280632.,-5180508431485366.,.496082824387814722196,-50,54, + 5338749892281120.,-5180508431486903.,.499783762761396599529,-50,54, + 6015259048274622.,-6234879577705344.,-.499951564844152402390,-50,54, + 6015259048401632.,-6234879577697764.,-.499965656665460431992,-50,54, + 6015259048405871.,-6234879577697512.,.484997004577545430754,-50,54, + 6015259048405888.,-6234879577697511.,.499562790368399497724,-50,54, + 6015259048406575.,-6234879577697470.,.499956605532362611684,-50,54, + 6321255966209085.,-5999741715921784.,.499999731271578029209,-50,54, + 6321255966215602.,-5999741715912284.,-.499930227773730852618,-50,54, + 6321255966223050.,-5999741715901428.,-.499849954627839322969,-50,54, + 6321255966223074.,-5999741715901394.,.481890368876725099576,-50,54, + 6436442976831615.,-5803434035804160.,-.499996090832923907962,-50,54, + 6436442976884988.,-5803434035700256.,.499986470803231752618,-50,54, + 6436442976885251.,-5803434035699743.,-.499282879420146133087,-50,54, + 6436442976885345.,-5803434035699561.,.497175984067504737398,-50,54, + 6591998865358767.,-5451912082806002.,.499998469191413144173,-50,54, + 6591998865359473.,-5451912082804192.,.495382184369867975440,-50,54, + 6591998865359528.,-5451912082804050.,-.499311718759368998000,-50,54, + 6591998865360085.,-5451912082802623.,.499879117468087314243,-50,54, + 6736707155663379.,-5042549895644714.,.499940112169872847223,-50,54, + 6736707155663591.,-5042549895644059.,-.498041233743333400823,-50,54, + 6736707155663803.,-5042549895643405.,-.496022579503333024124,-50,54, + 6736707155664380.,-5042549895641625.,-.499962373555315628101,-50,54, + 6736707155674284.,-5042549895611072.,-.499996373910803355641,-50,54, + 6919987110218562.,-8845664005249789.,.499920526997267172436,-50,55, + 6919987110219512.,-8845664005242832.,-.463354639930443067324,-50,55, + 6919987110219515.,-8845664005242810.,-.496922877291490055818,-50,55, + 6919987110219664.,-8845664005241719.,-.497478666158545524210,-50,55, + 6919987110220260.,-8845664005237355.,-.499701820353504364071,-50,55, + 6919987110223954.,-8845664005210308.,.499941964022374577207,-50,55, + 6919987110240130.,-8845664005091864.,-.499992724449486882856,-50,55, + 7117199285730963.,-7298307911908637.,.499999081453013749628,-50,55, + 7117199285740662.,-7298307911827866.,-.450940155748368085068,-50,55, + 7117199285740671.,-7298307911827792.,.498069180136549456724,-50,55, + 7117199285740906.,-7298307911825835.,.499979617259004952543,-50,55, + 7662745966033303.,-4571106507625692.,-.499977043477476998159,-50,56, + 7662745966054180.,-4571106507221119.,-.499977238515512627400,-50,56, + 7662745966061483.,-4571106507079595.,-.496576332157945382030,-50,56, + 7662745966061578.,-4571106507077755.,.497579917146187641788,-50,56, + 7662745966062222.,-4571106507065274.,-.499929297859619388133,-50,56, + 7662745966067015.,-4571106506972392.,.499974958135968078980,-50,56, + 7898848377973600.,-5992415617994179.,.273879321019697828578,-50,90, + 7898848377977885.,-4578448063185753.,.082629901593374805675,-50,90, + 7898848377990740.,-5384726380241245.,-.135819935051989785970,-50,94, + 7898848377991070.,-7284855939304354.,.083680498962580683669,-50,95, + 7898848377991730.,-5050596751176287.,-.146684994652797119214,-50,99, + 7898848377991759.,-4833357853254917.,.074526546616365083912,-50,104, + 7898848377991760.,4584375293791278.,.121896254169230918739,-50,107, + 7898848377991763.,8396130603330193.,-.134680186079041012792,-50,103, + 8099289753653674.,7564534562330859.,.499999280871029685226,-50,57, + 8099289753655686.,7564534562405060.,-.499967014366436029684,-50,57, + 8099289753660716.,7564534562590560.,-.499882936745909050715,-50,57, + 8099289753660881.,7564534562596644.,.490179458954990093198,-50,57, + 8099289753660947.,7564534562599078.,.486204417156029550410,-50,57, + 8698942762428200.,6729200594559780.,.499985569621601206083,-50,55, + 8698942762428617.,6729200594562524.,-.499982501585186922580,-50,55, + 8698942762431536.,6729200594581725.,-.499759029127515820543,-50,55, + 8698942762433467.,6729200594594426.,.497990694625885106036,-50,55, + 8698942762433621.,6729200594595440.,-.499599437116477887683,-50,55, + 8698942762459738.,6729200594767235.,.499999352387750178854,-50,55, + 8854932537040587.,7679961871808152.,-.499030376506735545526,-50,55, + 8854932537040639.,7679961871808442.,.496547665432559859199,-50,55, + 8854932537040671.,7679961871808622.,-.429250462613657063837,-50,55, + 8854932537040686.,7679961871808706.,-.488218335137645084144,-50,55, + 8854932537041045.,7679961871810715.,-.499516084654329127255,-50,55, + 8854932537041503.,7679961871813277.,.499998205815219199003,-50,55, + 4775738403075966.,4916527499362720.,.499990658556530711371,-49,54, + 4775738403079693.,4916527499364426.,-.499972860507992051596,-49,54, + 4775738403081339.,4916527499365178.,.499774870620209057250,-49,54, + 4775738403081363.,4916527499365189.,.479115055941771086642,-49,54, + 4775738403081374.,4916527499365195.,-.488687359122143004839,-49,54, + 4775738403131436.,4916527499388096.,.499974898171906436668,-49,54, + 5140278602120720.,8214562322817653.,-.495977282387674370843,-49,55, + 5140278602120772.,8214562322817165.,.486951500059592391638,-49,55, + 5140278602120854.,8214562322816397.,.498493041480362053800,-49,55, + 5140278602121554.,8214562322809841.,.499457412951856603056,-49,55, + 5140278602121904.,8214562322806563.,.499939594316619371117,-49,55, + 5140278602138540.,8214562322650755.,.499997859607918947691,-49,55, + 5150039580880087.,8122015786949351.,.499950438563308276034,-49,55, + 5150039580948557.,8122015786292293.,-.492324402666074603996,-49,55, + 5150039580948572.,8122015786292149.,-.436896988435638539569,-49,55, + 5150039580948609.,8122015786291793.,.499823966643536203714,-49,55, + 5150039580957269.,8122015786208689.,.499916893647694665915,-49,55, + 5150039580963764.,8122015786146361.,.499985434346357149445,-49,55, + 5154708221458214.,8076959008108773.,.439955595171289219936,-49,55, + 5154708221458221.,8076959008108706.,-.498228476872052304596,-49,55, + 5154708221458771.,8076959008103368.,-.498405569560656602945,-49,55, + 5154708221463171.,8076959008060664.,-.499822564801911404311,-49,55, + 5154708221463721.,8076959008055326.,-.499999720923620806218,-49,55, + 5365973368511342.,5565422168267320.,.499983605715946572877,-49,55, + 5365973368513593.,5565422168236322.,.499858806438529901749,-49,55, + 5365973368514243.,5565422168227372.,-.499732997623716661075,-49,55, + 5365973368514291.,5565422168226711.,-.496625931094734225580,-49,55, + 5365973368514304.,5565422168226531.,.483382232750996279725,-49,55, + 5365973368514313.,5565422168226408.,-.453535192280347977072,-49,55, + 5365973368575068.,5565422167389764.,.499975510256328432457,-49,55, + 5387110469193442.,5271112918872441.,.499994118281499554911,-49,55, + 5387110469208139.,5271112918665604.,-.499886582106029962277,-49,55, + 5387110469217937.,5271112918527712.,-.499808709680776353402,-49,55, + 5387110469217951.,5271112918527514.,.471410016681851445287,-49,55, + 5443187231493584.,8923045184932171.,.499939961941135654717,-49,56, + 5443187231493698.,8923045184928802.,.496407740170838642074,-49,56, + 5443187231493727.,8923045184927945.,.469193403007333560666,-49,56, + 5443187231493736.,8923045184927679.,.495230332849307532812,-49,56, + 5443187231508870.,8923045184480429.,.499994010756927610748,-49,56, + 5727153412764171.,5689300985954676.,.463173751175390571169,-49,92, + 5727153412765092.,7332782836126815.,-.135553028487202599204,-49,93, + 5727153412766620.,4964007405849295.,-.033585304043011570756,-49,96, + 5727153412766662.,6976016484613995.,.330121898989058759276,-49,97, + 5727153412766761.,4540086689015075.,-.234594756189187142422,-49,105, + 5727153412766762.,-6726522985654847.,-.355753474466925589188,-49,104, + 5727153412766766.,-5339098538288046.,-.325120023678227805645,-49,101, + 5727153412766767.,-6463669329558343.,-.435638431316600128578,-49,101, + 5727153412766934.,-6070843483490475.,-.199565749267054440577,-49,96, + 5727153412780770.,-7692299052474744.,-.190757057180968115378,-49,90, + 6866978591745165.,-7428237609332021.,-.499930225976017093784,-49,55, + 6866978591805891.,-7428237608914995.,-.499984070684161546624,-49,55, + 6866978591820477.,-7428237608814829.,.499916429983624122672,-49,55, + 6866978591821668.,-7428237608806649.,-.499885808480711674274,-49,55, + 6866978591822859.,-7428237608798470.,-.499688015338729328554,-49,55, + 6866978591822957.,-7428237608797798.,.499488630676432351888,-49,55, + 6866978591823055.,-7428237608797125.,.498665276905588495028,-49,55, + 6866978591823070.,-7428237608797021.,-.491256664979228264911,-49,55, + 6871807797875280.,-7394814459206429.,-.499539356224183996633,-49,55, + 6871807797875437.,-7394814459205334.,-.478836668253175165812,-49,55, + 6871807797875438.,-7394814459205328.,.495817488996798646498,-49,55, + 6871807797875714.,-7394814459203402.,-.499635109163250934282,-49,55, + 6871807797877016.,-7394814459194321.,-.499922342933975351555,-49,55, + 6871807797877450.,-7394814459191295.,.499981920824608641237,-49,55, + 6871807797887787.,-7394814459119197.,-.499992941084471808043,-49,55, + 7500571754920925.,-6500917074239726.,-.479543358271511650312,-49,89, + 7500571754947841.,-4952246841864441.,.143823798146069855363,-49,96, + 7500571754947969.,-8149067691255501.,-.484108026404541356511,-49,99, + 7500571754947979.,-5690559328469585.,.381003372727502021306,-49,99, + 7500571754947999.,-6188340823182086.,.223538802744803517675,-49,102, + 7500571754948002.,-4606732039934498.,-.348088625846449302658,-49,106, + 7500571754948003.,6715543750931279.,.488151505985507304315,-49,104, + 7500571754949141.,8749628513350989.,-.381826482870974173044,-49,94, + 7500571754953952.,5713970647511613.,-.183573456694062959370,-49,91, + 8003153055440908.,5934857567807318.,-.499691290066107471308,-49,55, + 8003153055441207.,5934857567809749.,.477361592398526052675,-49,55, + 8003153055441267.,5934857567810237.,.499512672280124846570,-49,55, + 8003153055442172.,5934857567817599.,-.499708548086510704388,-49,55, + 8003153055456076.,5934857567930690.,-.499900458443199047125,-49,55, + 8003153055463660.,5934857567992375.,.499993261987321058973,-49,55, + 8026599925729353.,6120117317124150.,-.499942120883896480553,-49,55, + 8026599925729359.,6120117317124196.,-.499291034543692822961,-49,55, + 8026599925729641.,6120117317126358.,-.468689977373259889723,-49,55, + 8026599925729977.,6120117317128934.,-.432229145392173841421,-49,55, + 8026599925729983.,6120117317128980.,-.431578059127493635293,-49,55, + 8026599925735496.,6120117317171246.,.499994730192474042793,-49,55, + 8026599925750855.,6120117317289000.,.499996298504773633985,-49,55, + 8622920769888699.,6714291542728119.,.499992343740837045408,-49,55, + 8622920769889096.,6714291542725858.,-.499620448618344801135,-49,55, + 8622920769889493.,6714291542723596.,-.499233244198345643853,-49,55, + 8622920769889622.,6714291542722860.,.493335897098716648013,-49,55, + 8622920769889675.,6714291542722559.,-.486461277505701905101,-49,55, + 8622920769901618.,6714291542654510.,.499996573698805895957,-49,55, + 8862008738804197.,4821769136073782.,.499868234935088476780,-49,55, + 8862008738804410.,4821769136071679.,-.459811341595296596704,-49,55, + 8862008738804426.,4821769136071520.,.496269065775762894075,-49,55, + 8862008738804516.,4821769136070631.,.499221357171007418170,-49,55, + 8862008738807248.,4821769136043645.,.499950859629127325991,-49,55, + 8862008738821137.,4821769135906453.,.499997577288606479187,-49,55, + 4636070209979781.,5748058804912675.,-.325238470441809211758,-48,93, + 4636070209980612.,7705367246959280.,-.359716980135678784293,-48,104, + 4636070209980613.,-6451454732839930.,.460778944675535270683,-48,104, + 4636070209980616.,-6115240084029692.,-.344497572835170710836,-48,101, + 4636070209992637.,-5194948698108452.,-.496017354463420168388,-48,89, + 4875072239711275.,-5183523623302987.,-.499995663138819999399,-48,55, + 4875072239711717.,-5183523623309922.,-.499993531528341616361,-48,55, + 4875072239719231.,-5183523623427817.,-.499955248862103146188,-48,55, + 4875072239721712.,-5183523623466745.,.497795796404708245262,-48,55, + 4875072239721738.,-5183523623467152.,-.443380530596617169847,-48,55, + 4875072239721741.,-5183523623467200.,.486483739367744872155,-48,55, + 4875072239721883.,-5183523623469427.,-.499940814948010401996,-48,55, + 5135851371776879.,-6595906247417778.,.499353434572061777342,-48,55, + 5135851371777433.,-6595906247414758.,.498547138712460745379,-48,55, + 5135851371778900.,-6595906247406760.,-.499977714594795493941,-48,55, + 5135851371786348.,-6595906247366159.,-.499983929067408483208,-48,55, + 5135851371793796.,-6595906247325558.,-.499985598075337685979,-48,55, + 5387492754225266.,-6015139969817618.,.499974734886306351358,-48,56, + 5387492754232273.,-6015139969522945.,.499361751163741771086,-48,56, + 5387492754232310.,-6015139969521388.,-.499357046950954259841,-48,56, + 5387492754232384.,-6015139969518276.,-.496794642901445590815,-48,56, + 5387492754233068.,-6015139969489512.,.499863271592968327871,-48,56, + 5387492754243218.,-6015139969062663.,.499980795029084174123,-48,56, + 5387492754332978.,-6015139965287887.,-.499660626174832445906,-48,56, + 5521373317393089.,-6116430248517247.,.307011313511596854228,-48,94, + 5521373317393534.,-7646548777231367.,-.115802024744825947803,-48,98, + 5521373317393554.,-7183764053425361.,.345414897894010329800,-48,99, + 5521373317393571.,-4653289240697859.,-.355039469044606283547,-48,103, + 5521373317393572.,7336710240528029.,-.220771671215173607932,-48,105, + 5521373317393574.,7404555580895868.,.384789986518913442525,-48,102, + 5837710520393737.,5691929576117847.,.499955636718507338479,-48,55, + 5837710520421577.,5691929576374559.,-.499994955099307036291,-48,55, + 5837710520424786.,5691929576404148.,.499971171019042851948,-48,55, + 5837710520426954.,5691929576424140.,-.499740517590209452426,-48,55, + 5837710520427126.,5691929576425726.,-.497872640468897119248,-48,55, + 5837710520427384.,5691929576428105.,-.495070828850371083913,-48,55, + 5837710520427393.,5691929576428187.,.493399001699468861235,-48,55, + 5837710520427995.,5691929576433738.,.499936542783070396081,-48,55, + 5941744889480399.,6240066115734482.,-.480916792132988408532,-48,55, + 5941744889480408.,6240066115734493.,-.496106193869185275228,-48,55, + 5941744889480476.,6240066115734576.,-.499759451637832180952,-48,55, + 5941744889482122.,6240066115736585.,-.499954596415044007949,-48,55, + 5941744889502926.,6240066115761976.,.499990678699844985835,-48,55, + 5941744889508127.,6240066115768324.,.499971669268204367440,-48,55, + 6406394220948496.,8396860164048770.,.066801199764308813752,-48,90, + 6406394220959305.,7186521374409927.,.488847732422988269777,-48,94, + 6406394220959732.,8652199286570956.,-.434860648159376472895,-48,96, + 6406394220959915.,5188322245363122.,-.341925907482688562565,-48,103, + 6406394220959916.,-6681102318437250.,-.168437355163967388074,-48,106, + 7085432669174101.,-7650398443958789.,.499963259375379063984,-48,56, + 7085432669174973.,-7650398443931888.,-.499190237549129244051,-48,56, + 7085432669175561.,-7650398443913750.,.492206297157840042333,-48,56, + 7085432669175574.,-7650398443913348.,-.475670989980520682678,-48,56, + 7085432669175594.,-7650398443912732.,.496825491375456485926,-48,56, + 7085432669175627.,-7650398443911713.,-.498555314306678733267,-48,56, + 7085432669178864.,-7650398443811856.,-.499999311742438867485,-48,56, + 7092287361616809.,-7436799544437925.,.496688068580365858197,-48,56, + 7092287361616826.,-7436799544437390.,.489321188249722043585,-48,56, + 7092287361616943.,-7436799544433708.,.497443247850455222619,-48,56, + 7092287361617345.,-7436799544421057.,.499708795279449755250,-48,56, + 7092287361618702.,-7436799544378352.,.499893846762325252375,-48,56, + 7092287361620059.,-7436799544335646.,-.499920937349269224269,-48,56, + 7092287361641235.,-7436799543669234.,-.499957019572388952141,-48,56, + 7092287361646529.,-7436799543502631.,-.499959784591000921806,-48,56, + 7291235497576186.,-4596239200115683.,.382948734852671903606,-48,90, + 7291235497580265.,-7138602662419197.,.383299138723147918546,-48,92, + 7291235497582805.,-8670685942872948.,.112483991335614276582,-48,98, + 7291235497582830.,-8518539514645959.,.212424240878980776721,-48,99, + 7291235497582854.,-6223416113926111.,.250717002256119399865,-48,106, + 7291235497582855.,4868685703263167.,.174091009551569229620,-48,103, + 7291235497583831.,5386682322252667.,-.391739122290226281784,-48,93, + 7291235497584344.,8215502951236091.,.175997965559263033147,-48,93, + 8046051565523715.,4787627033079332.,.499985167671568669941,-48,56, + 8046051565531418.,4787627032813575.,-.499936172078786082647,-48,56, + 8046051565532079.,4787627032790770.,-.386077831097680984499,-48,56, + 8046051565532127.,4787627032789114.,-.414118376125697991098,-48,56, + 8046051565532269.,4787627032784215.,-.497071655923252133434,-48,56, + 8046051565532273.,4787627032784077.,-.499408368046596909276,-48,56, + 8046051565533130.,4787627032754509.,.499951038841692282596,-48,56, + 8046051565576781.,4787627031248524.,.499940297694656460168,-48,56, + 8048695210933899.,4696225161924058.,-.499998182068882282889,-48,56, + 8048695210939172.,4696225161741362.,.498519085215575071064,-48,56, + 8048695210939189.,4696225161740773.,.495100685922499960480,-48,56, + 8048695210939257.,4696225161738417.,.481427088591545753460,-48,56, + 8048695210939260.,4696225161738314.,-.460352628943607633160,-48,56, + 8048695210939756.,4696225161721128.,.498734065117357467362,-48,56, + 8048695210942968.,4696225161609841.,.499916119901380954876,-48,56, + 8048695210943260.,4696225161599725.,-.499976448657479541093,-48,56, + 8082833509081341.,6968817653867231.,-.499998139542322451428,-48,57, + 8082833509086740.,6968817653475702.,.499906374642154668228,-48,57, + 8082833509086821.,6968817653469828.,.492125706209179238851,-48,57, + 8082833509086875.,6968817653465912.,.486938593633010449954,-48,57, + 8175955385351834.,5257463561601989.,.053631183398833897227,-48,88, + 8175955385376631.,4888005429260077.,-.446794957999899049940,-48,90, + 8175955385377253.,8966216934718857.,-.311680560226496229489,-48,91, + 8175955385382229.,4975731088621406.,.353646347155773900574,-48,92, + 8175955385384095.,7485922932308751.,-.035659864887602329222,-48,98, + 8175955385384136.,5227595521422099.,.390580344976104865394,-48,101, + 8175955385384137.,7788859923963820.,-.142258027257096742060,-48,102, + 8175955385384139.,4912395372406126.,-.021479327067878908037,-48,103, + 8175955385384140.,-6724269845674079.,.414317356754924006569,-48,107, + 8175955385384178.,-6345669746883215.,.299105539639046430656,-48,98, + 8383589335449647.,-7084275698098346.,-.499947529209742243036,-48,56, + 8383589335475953.,-7084275698815891.,-.499984764100106004934,-48,56, + 8383589335477582.,-7084275698860326.,.499977022213057126227,-48,56, + 8383589335478308.,-7084275698880128.,-.498198308804406207167,-48,56, + 8383589335478373.,-7084275698881901.,-.493902709339476912350,-48,56, + 8743148203174694.,-4659966514398274.,.499995029727447398956,-48,55, + 8743148203175047.,-4659966514395405.,.463128678402519123689,-48,55, + 8743148203175063.,-4659966514395274.,-.498882260863600947185,-48,55, + 8853620772987097.,-6875911787859387.,-.499966271819872774560,-48,56, + 8853620773013948.,-6875911787123664.,.499718445999049568978,-48,56, + 8853620773013993.,-6875911787122430.,-.489220991236407682698,-48,56, + 8853620773014238.,-6875911787115717.,-.429002368770542985192,-48,56, + 8853620773014253.,-6875911787115306.,-.425315514170830209236,-48,56, + 8853620773015577.,-6875911787079028.,-.499889074061706200849,-48,56, + 8853620773020459.,-6875911786945260.,-.499939257250644717962,-48,56, + 8853620773025341.,-6875911786811492.,-.499987447835751885742,-48,56, + 8913783750986635.,-5089516494808077.,.498343974599160477570,-48,56, + 8913783750986676.,-5089516494806775.,.422145513587390317556,-48,56, + 8913783750986692.,-5089516494806267.,.489970504439704585717,-48,56, + 8913783750986753.,-5089516494804330.,.498553282206500718877,-48,56, + 8913783750987343.,-5089516494785595.,.499599832902686836447,-48,56, + 8913783750987579.,-5089516494778100.,-.499981540911079091388,-48,56, + 8913783750992356.,-5089516494626410.,-.499981758846138805680,-48,56, + 8913783751049680.,-5089516492806130.,-.499876487879157480571,-48,56, + 8959635272234871.,-7152960898952456.,-.499991844094634167268,-48,57, + 8959635272253937.,-7152960897652336.,-.465431154028942191383,-48,57, + 8959635272253942.,-7152960897651996.,.487058769317326071048,-48,57, + 8959635272253963.,-7152960897650564.,.487516447394197958806,-48,57, + 8959635272254425.,-7152960897619060.,.497585374299423397971,-48,57, + 8959635272254530.,-7152960897611900.,.499873769236176072176,-48,57, + 8959635272256719.,-7152960897462631.,.499962514837285127837,-48,57, + 8959635272291680.,-7152960895078622.,-.499936968963732676807,-48,57, + 4530294701604972.,-8510227373267367.,.063729332090220856734,-47,88, + 4530294701629897.,-6428252223571552.,.379588692056934625601,-47,91, + 4530294701630746.,-8656393860882657.,-.095927935011121540762,-47,92, + 4530294701632444.,-8197526027652037.,-.492761768085646643865,-47,97, + 4530294701632490.,-7322843952924675.,.296748307239074272316,-47,100, + 4530294701632495.,-7924173998796270.,.479525432264716466677,-47,103, + 4530294701632496.,8830166104495798.,-.434702703344086800197,-47,105, + 4530294701632507.,7103525768765388.,.113519766843720362346,-47,99, + 4530294701632553.,4529025987863849.,.457301996934424068766,-47,96, + 4530294701665641.,5124174783535435.,.154577680892696420886,-47,87, + 4562160286572672.,4533030503759849.,.499985879469671521746,-47,57, + 4562160286573524.,4533030503878550.,.499829907823951898746,-47,57, + 4562160286576080.,4533030504234653.,.499360864047926865438,-47,57, + 4562160286576261.,4533030504259870.,.495806458330074678267,-47,57, + 4562160286576286.,4533030504263354.,-.493634758596685714486,-47,57, + 4562160286576289.,4533030504263771.,.467632295361217477671,-47,57, + 4562160286576364.,4533030504274220.,.499308643550695731957,-47,57, + 4562160286630065.,4533030511755866.,.499622065262995517502,-47,57, + 4971105597050323.,6486000568644007.,-.499137381923446709916,-47,62, + 4971105597098558.,6486000356463199.,-.499978695688056023220,-47,62, + 4971105597102966.,6486000337072860.,-.499970141284289803721,-47,62, + 4971105597105856.,6486000324360046.,.498680186929229469697,-47,62, + 4971105597105934.,6486000324016933.,-.485439220626812149833,-47,62, + 4971105597105944.,6486000323972944.,-.457762221350149075843,-47,62, + 4971105597105963.,6486000323889364.,.494824077429156086963,-47,62, + 4971105597106615.,6486000321021283.,.499364557533877205304,-47,62, + 4971105597107374.,6486000317682521.,-.499950750583250386053,-47,62, + 4972580222381393.,4545807978391106.,-.389630475917260533978,-47,88, + 4972580222390054.,7958622137946671.,.051719888200016130159,-47,90, + 4972580222396795.,5232285943668838.,-.283280835509121621371,-47,103, + 4972580222396796.,-8877306251831963.,.176611814038372098213,-47,104, + 4972580222396811.,-4671960599052751.,-.092359268869746671401,-47,98, + 4972580222396936.,-5306133292452232.,-.280029101759785942446,-47,95, + 4972580222398122.,-6263722587594568.,.098727188541403874326,-47,92, + 4972580222398715.,-4531975275306543.,-.213449067793604508329,-47,91, + 5002636990887651.,-8174253030915481.,.499509445810928235929,-47,58, + 5002636990887657.,-8174253030917082.,-.491954619279335700310,-47,58, + 5002636990887669.,-8174253030920286.,-.474882749409563733226,-47,58, + 5002636990889760.,-8174253031478581.,.499891599412814490859,-47,58, + 5002636990890463.,-8174253031666280.,-.499980555708160251501,-47,58, + 5002636990898195.,-8174253033730713.,-.499981731379675890619,-47,58, + 5103591057898063.,-7658019860983813.,.499905555784990223994,-47,56, + 5103591057898508.,-7658019861001508.,-.493608868392891508845,-47,56, + 5103591057898525.,-7658019861002185.,.479672604590754259871,-47,56, + 5103591057898662.,-7658019861007633.,.499646832204860614354,-47,56, + 5103591057944323.,-7658019862823400.,-.499625689753175155802,-47,56, + 5103591057975163.,-7658019864049792.,-.498844613893112295347,-47,56, + 5278026714984531.,-7755298021796733.,.383588193493021481690,-47,56, + 5278026714984561.,-7755298021795583.,.485707995366515301342,-47,56, + 5278026714984564.,-7755298021795468.,.495919975572872714957,-47,56, + 5278026714984662.,-7755298021791711.,.496177997547634057350,-47,56, + 5278026714985936.,-7755298021742870.,.499532618822266306262,-47,56, + 5278026714986132.,-7755298021735355.,-.499951230277888930682,-47,56, + 5278026714993868.,-7755298021438782.,-.499975452022676585870,-47,56, + 5278026715020993.,-7755298020398898.,-.499749559389804615005,-47,56, + 5414841964939692.,-8056857855849967.,.420685184002842782139,-47,94, + 5414841964940137.,-7506327876312727.,-.296795834036366277480,-47,106, + 5414841964940138.,8329513355259727.,-.043663097403423648386,-47,103, + 5414841964940201.,4626571771582670.,.329463073118787201663,-47,96, + 5414841964940933.,7203353479975370.,-.489274716798101127542,-47,93, + 5414841964942683.,5760471571810963.,.410453430712477304651,-47,91, + 5414841964966897.,7568527399945649.,.092288153464905922298,-47,88, + 5455740882079520.,5291123824748225.,.499974731260874139910,-47,57, + 5455740882091745.,5291123826279103.,.499994477392955865869,-47,57, + 5455740882092007.,5291123826311913.,-.499105778148626713679,-47,57, + 5455740882092158.,5291123826330822.,-.494770438282989380231,-47,57, + 5455740882092180.,5291123826333576.,.459503584192096064571,-47,57, + 5455740882092189.,5291123826334703.,.486252047891461490410,-47,57, + 5660976669492923.,8923560177030612.,.498167639494530082178,-47,56, + 5660976669573039.,8923560176055488.,.499993678279303026439,-47,56, + 5660976669583558.,8923560175927458.,-.472020714399800388189,-47,56, + 5660976669583564.,8923560175927384.,.499570479137078082757,-47,56, + 5660976669585676.,8923560175901678.,.499669601902870513424,-47,56, + 5660976669592012.,8923560175824560.,.499954977684742072589,-47,56, + 5762007131375135.,5618549208180319.,-.499977927065428252832,-47,56, + 5762007131380072.,5618549207931939.,.497504497326213090817,-47,56, + 5762007131380185.,5618549207926255.,-.498907265503348835344,-47,56, + 5762007131380721.,5618549207899289.,-.499586117511653579992,-47,56, + 5762007131380989.,5618549207885806.,-.499925573117751545544,-47,56, + 5762007131389904.,5618549207437294.,.499965244363615542274,-47,56, + 5762007131493019.,5618549202249609.,.498237062332640722580,-47,56, + 5849202004053580.,7987687694021860.,.499843359368415891495,-47,60, + 5849202004081708.,7987687665532025.,-.499861365493048783469,-47,60, + 5849202004090577.,7987687656548935.,-.498526113899926022344,-47,60, + 5849202004090599.,7987687656526651.,.495501304764942734263,-47,60, + 5849202004090606.,7987687656519561.,.448146392498613716109,-47,60, + 5849202004091084.,7987687656035413.,-.499803357477129169636,-47,60, + 5857085312151155.,8057383996756547.,.400791066895272358235,-47,90, + 5857085312158169.,6841450571975874.,.486155838641205640111,-47,94, + 5857085312158434.,8916801007804238.,.029028454774996037573,-47,96, + 5857085312158551.,6171143163670341.,.358461579437664162592,-47,99, + 5857085312158558.,4544972578770766.,.278804704432106183200,-47,100, + 5857085312158562.,5719342236486651.,.308964675494726840729,-47,106, + 5857085312158563.,-8196297933090489.,-.486978626608425786064,-47,103, + 5857085312158582.,-5547168639795791.,.452363134192314767279,-47,98, + 5857085312159112.,-4785599340018004.,.128704238068374391854,-47,93, + 5948853825697846.,-5365806024118545.,-.499953724932357994595,-47,56, + 5948853825710317.,-5365806024735763.,.499916904400563385202,-47,56, + 5948853825714338.,-5365806024934771.,.436617665979253377259,-47,56, + 5948853825714346.,-5365806024935167.,.499162710539604725257,-47,56, + 5948853825714474.,-5365806024941502.,.499883425934268689911,-47,56, + 6299314136223042.,-6433428159953780.,.479973143347169268466,-47,92, + 6299314136224047.,-8866879015436748.,.250009627066229762695,-47,94, + 6299314136224555.,-5458498377404949.,.060377147028131728346,-47,98, + 6299314136224575.,-5629714435296768.,-.309344042033706403924,-47,104, + 6299314136224576.,5777997325317101.,-.381992599616582244723,-47,103, + 6299314136224577.,7185425934141292.,.013296575542452433718,-47,102, + 6299314136227316.,5749560411388092.,-.453581850843530715449,-47,91, + 6574525673424365.,7798832453997297.,.498993517961363281278,-47,56, + 6574525673424372.,7798832453997136.,.481838372837532334460,-47,56, + 6574525673424414.,7798832453996170.,.378907501693173609598,-47,56, + 6574525673424773.,7798832453987912.,.499093598835216192608,-47,56, + 6574525673428037.,7798832453912832.,.499891908304323245401,-47,56, + 6574525673428445.,7798832453903447.,.499991404797747098512,-47,56, + 6574525673448439.,7798832453443536.,.499885703493467717706,-47,56, + 6694111552492298.,5511581139748797.,.499988002460280143881,-47,57, + 6694111552504662.,5511581138361424.,-.499649056863629627475,-47,57, + 6694111552504681.,5511581138359291.,.495660431627388581561,-47,57, + 6694111552504719.,5511581138355027.,.486279408326352482569,-47,57, + 6694111552504724.,5511581138354466.,.432413484179696951921,-47,57, + 6694111552505516.,5511581138265596.,-.499948983144614130366,-47,57, + 6741531293813461.,8507803258109556.,.426728203727339976266,-47,104, + 6741531293813462.,-8104886850217130.,-.499877044401975870352,-47,104, + 6741531293816529.,-6220608575326730.,-.014014056952971204006,-47,91, + 6820329768421029.,-8772014788713589.,-.499503379010192217841,-47,57, + 6820329768421044.,-8772014788715071.,-.496084705034755089725,-47,57, + 6820329768421124.,-8772014788722975.,-.477851775428507035907,-47,57, + 6820329768421129.,-8772014788723469.,-.476712217230967681779,-47,57, + 6820329768422782.,-8772014788886785.,-.499973650646035037459,-47,57, + 6820329768437700.,-8772014790360680.,-.499925650867510861771,-47,57, + 6820329768452618.,-8772014791834575.,-.499775909166718993039,-47,57, + 7105178455431748.,-8571249244836019.,-.499935274836417623767,-47,57, + 7105178455451082.,-8571249242938661.,-.499314790706998305305,-47,57, + 7105178455451163.,-8571249242930712.,-.497656746570383801936,-47,57, + 7105178455451178.,-8571249242929240.,-.460312664021358389998,-47,57, + 7105178455451671.,-8571249242880859.,-.499603765139278899201,-47,57, + 7105178455452260.,-8571249242823057.,-.499892594296363371323,-47,57, + 7105178455455875.,-8571249242468296.,-.499964314495756751070,-47,57, + 7105178455483617.,-8571249239745812.,-.499779315593178963796,-47,57, + 7172554528842950.,-5114376664267850.,.499998957584695505076,-47,59, + 7172554528853414.,-5114376659489244.,.419412980813414671522,-47,59, + 7172554528853432.,-5114376659481024.,.498402816857134414870,-47,59, + 7172554528854040.,-5114376659203368.,.499837315781308448485,-47,59, + 7172554528854116.,-5114376659168660.,-.499983366799249252590,-47,59, + 7172554528881993.,-5114376646438041.,-.499922980328721267914,-47,59, + 7183738938491219.,-5267730173835236.,.159368265788771305467,-47,88, + 7183738938503309.,-4597673994879443.,-.117882122293149116094,-47,89, + 7183738938512138.,-8367015091816195.,-.389272064629048060682,-47,94, + 7183738938512615.,-6963005175349023.,.235250124760683491837,-47,97, + 7183738938512664.,-6417959014536603.,-.240136447597810751094,-47,100, + 7183738938512670.,-6126856288248561.,.174237194983770358083,-47,104, + 7183738938512671.,4983279184570473.,.251372196930254477568,-47,103, + 7183738938512673.,5269173460489994.,.304873828177829697745,-47,101, + 7183738938512722.,6490083639812522.,.263102203612664340494,-47,97, + 7183738938513384.,5607700785687153.,.044292837595907708399,-47,93, + 7183738938544378.,7786313859544252.,.192227335375566607766,-47,88, + 7483548296460624.,6683995409255684.,.499601605825813647430,-47,56, + 7483548296460667.,6683995409254387.,.437709587496764656876,-47,56, + 7483548296460691.,6683995409253663.,.496188460719550435459,-47,56, + 7483548296461787.,6683995409220604.,-.499943200009447211769,-47,56, + 7483548296463839.,6683995409158706.,.499999001004871258158,-47,56, + 7625938724585726.,8683108782618250.,.461521428419359172595,-47,96, + 7625938724585868.,4839405778828412.,.323810823808364257047,-47,104, + 7625938724585869.,-5390284584428832.,-.252704109286619092671,-47,103, + 7625938724585876.,-7507524612666259.,-.059900350941500704138,-47,100, + 7625938724591645.,-5507309318052335.,-.458794423261921681582,-47,90, + 7625938724624520.,-4606158693471172.,.283924456239132999960,-47,87, + 7792547491849429.,-7155220209396716.,-.499934276166770967805,-47,56, + 7792547491850088.,-7155220209410071.,-.499553859069617943231,-47,56, + 7792547491850506.,-7155220209418543.,.499170068549251107192,-47,56, + 7792547491850555.,-7155220209419536.,.487058762790581532876,-47,56, + 7792547491850570.,-7155220209419839.,-.496240616348706938390,-47,56, + 7792547491872961.,-7155220209873605.,-.499909263409458627265,-47,56, + 8068131943754897.,-5435979590282736.,-.015206618036888153315,-47,92, + 8068131943756352.,-5316867684940513.,-.300885754644963973389,-47,99, + 8068131943756360.,-6081468928162062.,-.148965810996122375333,-47,101, + 8068131943756363.,-6187491980993110.,-.169259973818061656994,-47,105, + 8068131943756364.,6046127910551711.,-.073352553686451821678,-47,103, + 8068131943756724.,5350637605465794.,-.237470239125136777439,-47,94, + 8068131943757778.,5245385453472067.,.341178974130560016126,-47,92, + 8068131943824599.,7905799300124845.,-.316826555237492616052,-47,87, + 8398512618577814.,5309898617179736.,-.491191500543062418536,-47,56, + 8398512618577849.,5309898617178428.,-.496341939902953274467,-47,56, + 8398512618577884.,5309898617177119.,.498507620414299394565,-47,56, + 8398512618578067.,5309898617170281.,-.499850398041222860472,-47,56, + 8398512618578651.,5309898617148455.,.499925046876871184360,-47,56, + 8398512618582922.,5309898616988841.,.499992391838586299683,-47,56, + 8510319619360831.,6349757215350322.,-.499157270404341553112,-47,92, + 8510319619362525.,7504791500535649.,.152094725466529670415,-47,97, + 8510319619362575.,6915572213399434.,-.082180487444364342634,-47,99, + 8510319619362578.,5529356586074848.,.472876488522923316225,-47,99, + 8510319619362589.,7145055240821963.,.021395896991471779511,-47,103, + 8510319619362590.,-7939032690426071.,-.194902617416862493771,-47,108, + 8510319619364767.,-7858952964726308.,.173054056045701569877,-47,92, + 8510319619371792.,-8304689271096087.,.318138049866651122518,-47,90, + 8510319619410853.,-5444577745698757.,.116930843098592501030,-47,87, + 8535255807951759.,-5204753830162597.,.499994457051512305307,-47,58, + 8535255807959735.,-5204753831807485.,.493357442200812064006,-47,58, + 8535255807959748.,-5204753831810165.,-.492611234125593806265,-47,58, + 8535255807959883.,-5204753831838007.,.499252514581343071895,-47,58, + 8535255807960240.,-5204753831911631.,.499958897465953083997,-47,58, + 8535255807984329.,-5204753836879497.,-.499911660016190845889,-47,58, + 8952502572609147.,-8773885675742826.,.078077371218190871657,-47,90, + 8952502572616927.,-7712480325955205.,.462283693214425607284,-47,92, + 8952502572619118.,-7167755632670539.,.025209153629866444158,-47,105, + 8952502572619119.,5416353090301629.,.415734963563851695037,-47,103, + 8952502572619120.,6312322544385446.,.384998512067496544896,-47,102, + 8952502572619128.,8786372634565621.,.327243922948964090438,-47,100, + 8952502572619132.,6195259316900124.,.388614613325456956714,-47,99, + 8952502572619261.,8039014194319758.,-.459703712669859219625,-47,96, + 8952502572634950.,6965325133102803.,-.265120733071104828026,-47,89 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/lgamma.c b/src/regress/lib/libm/fpaccuracy/lgamma.c new file mode 100644 index 000000000..07a35c709 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/lgamma.c @@ -0,0 +1,1440 @@ +/* $OpenBSD: lgamma.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:37:23. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1408 +#define F lgamma +#define Fs "lgamma" +#define Fn fpaccuracy_lgamma + /* 11 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -8787764928624815.,-6199130211160873.,-.499988260571891090812,-51,53, + -8787764928623695.,-6199130211198751.,-.499886396977245306543,-51,53, + -8787764928622575.,-6199130211236629.,-.499784291768512373489,-51,53, + -8787764928622392.,-6199130211242818.,-.494410442685364545824,-51,53, + -8787764928622381.,-6199130211243191.,.489519133148102590862,-51,53, + -8787764928622370.,-6199130211243563.,.473448709004875933340,-51,53, + -8787764928566198.,-6199130213143279.,-.499689626081508382529,-51,53, + -8567486922694173.,-5365318438847499.,.224189532076725135996,-51,52, + -8567486922694172.,-5365318438847505.,.224194461750600391370,-51,52, + -8567486922694037.,-5365318438848315.,.224859967964672563472,-51,52, + -8567486922683235.,-5365318438913127.,.278111874647707069005,-51,52, + -8567486922640435.,-5365318439169927.,.489138238296558763660,-51,52, + -8567486922638247.,-5365318439183055.,.499927513168590592431,-51,52, + -8567486922638224.,-5365318439183192.,-.499959070569046434817,-51,52, + -8532219487114820.,-5561324781015164.,-.499779397272539523729,-51,52, + -8532219487114679.,-5561324781015888.,-.498961990412848858302,-51,52, + -8532219487114538.,-5561324781016612.,-.498144583096814438597,-51,52, + -8532219487113640.,-5561324781021224.,.499969128106396028963,-51,52, + -8532219487050024.,-5561324781347875.,-.499981707112137925951,-51,52, + -8454022241316495.,-5898533165362690.,-.499964904416217047939,-51,52, + -8454022241314166.,-5898533165370974.,.497617538094342070007,-51,52, + -8454022241314042.,-5898533165371415.,.496200719366012568954,-51,52, + -8454022241314033.,-5898533165371447.,.488033369630264156172,-51,52, + -8454022241314024.,-5898533165371479.,.479866019895958801955,-51,52, + -8454022241313679.,-5898533165372705.,-.499882385497840625482,-51,52, + -8454022241304496.,-5898533165405364.,-.499967422719389211538,-51,52, + -8454022241208504.,-5898533165746756.,-.499895228788649921173,-51,52, + -8261235592148156.,-6301586989454378.,.499977008387054434434,-51,52, + -8261235592143824.,-6301586989457938.,-.499801250003975668766,-51,52, + -8261235592143161.,-6301586989458484.,.499540185277169627999,-51,52, + -8261235592143043.,-6301586989458580.,-.499068729177633713053,-51,52, + -8261235592142998.,-6301586989458617.,-.490063654139172487827,-51,52, + -8261235592134497.,-6301586989465606.,.499984385970786922254,-51,52, + -8261235592107179.,-6301586989488061.,-.499994386330877791839,-51,52, + -7999612650156464.,-6163791505687222.,-.499992307396114301260,-51,52, + -7999612650131380.,-6163791505643148.,-.499988723902149819431,-51,52, + -7999612650124613.,-6163791505631259.,.499933458131934930923,-51,52, + -7999612650123699.,-6163791505629653.,.449383596036576249189,-51,52, + -7999612650123691.,-6163791505629638.,-.494166074496388099141,-51,52, + -7999612650123621.,-6163791505629516.,.499774308364173664394,-51,52, + -7999612650118838.,-6163791505621111.,-.499984857862489644703,-51,52, + -7983592410851888.,-6134517711035043.,-.499916382556730317019,-51,52, + -7983592410851508.,-6134517711034322.,-.496313441924442676025,-51,52, + -7983592410851498.,-6134517711034304.,.477465582846059162088,-51,52, + -7983592410851469.,-6134517711034248.,-.498575245314549537908,-51,52, + -7983592410851430.,-6134517711034175.,.499162951308619656043,-51,52, + -7983592410849676.,-6134517711030846.,-.499996089401050354403,-51,52, + -7935921591095382.,-6034207703920312.,-.499987041014892364774,-51,52, + -7935921591049015.,-6034207703813203.,-.499990728167908821097,-51,52, + -7935921591048257.,-6034207703811452.,-.499882799576735540300,-51,52, + -7935921591046741.,-6034207703807950.,-.499666927574980348079,-51,52, + -7318770392349995.,-5620385408500729.,-.499990232839502688554,-51,53, + -7318770392329306.,-5620385408131419.,-.499984270568311789847,-51,53, + -7318770392326663.,-5620385408084241.,.499969221586259360778,-51,53, + -7318770392321377.,-5620385407989883.,.499876929975036204684,-51,53, + -7318770392321303.,-5620385407988562.,.440473450338657486228,-51,53, + -7318770392321290.,-5620385407988330.,.497605271503157027888,-51,53, + -7104888953219483.,-6278374121690242.,-.499900361471716465007,-51,56, + -7104888953202218.,-6278374117699426.,.498188913372985176840,-51,56, + -7104888953202198.,-6278374117694802.,-.487622631317215056547,-51,56, + -7104888953202145.,-6278374117682552.,.499976776482437140449,-51,56, + -7079054564292958.,-5411280648184932.,-.286880141610978364033,-51,62, + -7079054564197626.,-5411279130370438.,.492085474611223172177,-51,62, + -7079054564197623.,-5411279130322673.,-.446686645996164475970,-51,62, + -7079054564197609.,-5411279130099774.,-.494289869916843126833,-51,62, + -7079054564197544.,-5411279129064887.,.498980996567741860813,-51,62, + -7079054564197103.,-5411279122043570.,.499485492124891639137,-51,62, + -7079054564196662.,-5411279115022253.,.499999107801051796723,-51,62, + -7033805263259537.,5997748696204556.,.499980263150163458684,-51,55, + -7033805263259278.,5997748696241719.,.489033376901559215105,-51,55, + -7033805263259212.,5997748696251190.,-.405648063792226983527,-51,55, + -7033805263259206.,5997748696252051.,-.486982740113747420858,-51,55, + -7033805263257619.,5997748696479763.,.499995988407329526631,-51,55, + -6989023373146411.,6484233875912770.,.499997470636171319888,-51,54, + -6989023373137600.,6484233876658530.,-.499945611411776470099,-51,54, + -6989023373137170.,6484233876694925.,-.497104793744292004084,-51,54, + -6989023373136937.,6484233876714646.,-.483937533645109399229,-51,54, + -6989023373136912.,6484233876716762.,-.495400272878041893170,-51,54, + -6989023373135855.,6484233876806225.,.499955307358542021559,-51,54, + -6989023373116488.,6484233878445440.,-.499928504102137750387,-51,54, + -6704453698403246.,4562490354869916.,.499929278105675052346,-51,51, + -6704453698402795.,4562490354850580.,-.498591675458912223902,-51,51, + -6704453698402755.,4562490354848864.,.468280088855337832926,-51,51, + -6704453698402731.,4562490354847835.,.448403148111221893872,-51,51, + -6704453698402642.,4562490354844019.,.499692830554512205823,-51,51, + -6704453698399171.,4562490354695197.,.499995814388673698407,-51,51, + -6704453698382267.,4562490353970425.,-.499819504264660095906,-51,51, + -6676877748528561.,7250706097980839.,-.499833445423211962974,-51,52, + -6676877748507162.,7250706096811750.,-.498854185940538793336,-51,52, + -6676877748507143.,7250706096810711.,.476426051357287826880,-51,52, + -6676877748507132.,7250706096810111.,-.485253811138797170390,-51,52, + -6676877748506797.,7250706096791808.,.499950418967681631797,-51,52, + -6676877748505988.,7250706096747611.,-.499959026396790215166,-51,52, + -6676877748495106.,7250706096153096.,-.499930420646367644884,-51,52, + -6436965607800170.,6704597177794193.,-.499440241253227848952,-51,54, + -6436965607800157.,6704597177793632.,.475556256995521172423,-51,54, + -6436965607798090.,6704597177704588.,.499999884342961128473,-51,54, + -6198632597789514.,5730520913361978.,-.499940229542432911572,-51,59, + -6198632597785749.,5730520911421872.,.499680866471512095417,-51,59, + -6198632597782737.,5730520909869788.,.499400694881976347681,-51,59, + -6198632597782337.,5730520909663668.,.446244172145898974714,-51,59, + -6198632597782334.,5730520909662123.,-.454154500415223059715,-51,59, + -6198632597782114.,5730520909548757.,-.483390433067817693500,-51,59, + -6198632597781994.,5730520909486921.,-.499337259548293976563,-51,59, + -6095089651997760.,-4577238332220939.,-.499751361344027232280,-51,56, + -6095089651963988.,-4577238333536002.,-.499971761417062654721,-51,56, + -6095089651957118.,-4577238333803517.,.499954445488665053739,-51,56, + -6095089651950529.,-4577238334060089.,.484463879164672927715,-51,56, + -6095089651950512.,-4577238334060750.,-.486133064138985525757,-51,56, + -6095089651950446.,-4577238334063320.,-.489627078724166466638,-51,56, + -6095089651950248.,-4577238334071031.,.499890883185746764490,-51,56, + -5543628548500060.,-8327741726048383.,-.499820764057166955247,-51,60, + -5543628548487799.,-8327741716828666.,-.499824045856446224210,-51,60, + -5543628548487357.,-8327741716496303.,.492841666116972449311,-51,60, + -5543628548487335.,-8327741716479760.,.497001509166225347498,-51,60, + -5543628548487313.,-8327741716463216.,-.498838646719458946701,-51,60, + -5543628548485877.,-8327741715383410.,.499960754549283929263,-51,60, + -5532727847747868.,-7411973986997344.,-.190468734239197544179,-51,92, + -5532727847745645.,-6255817318422089.,-.118903703529426667249,-51,103, + -5532727847745644.,4558830442637421.,-.171177461512801122604,-51,106, + -5532727847745635.,7750111739887057.,-.424508400125741118686,-51,100, + -5532727847745631.,5581473650881526.,-.160936626061717043470,-51,99, + -5532727847744304.,8932587069970857.,-.253648435404406570639,-51,93, + -5532727847738503.,5950035076783722.,.474426003094362931635,-51,90, + -5144474452504162.,7609704634530249.,-.499990146378413213565,-51,54, + -5144474452489804.,7609704634938321.,-.499585616401402937270,-51,54, + -5144474452489785.,7609704634938861.,-.496241989384149683184,-51,54, + -5144474452489735.,7609704634940282.,-.434811391872998682690,-51,54, + -5144474452489728.,7609704634940481.,-.486211108210181504243,-51,54, + -5144474452488909.,7609704634963758.,-.499977900576254766530,-51,54, + -5012999668844666.,5946341991342440.,-.499970697097957388570,-51,53, + -5012999668808972.,5946341992007538.,-.489971441076637962221,-51,53, + -5012999668808552.,5946341992015364.,-.492206812147299510993,-51,53, + -5012999668807142.,5946341992041637.,-.499711219852064087769,-51,53, + -5012999668807082.,5946341992042754.,.499969445438204291256,-51,53, + -5012999668800823.,5946341992159380.,.499991648229878672950,-51,53, + -7917008035365318.,4661777562122917.,-.499999212612348377888,-52,52, + -7917008035362698.,4661777562116420.,-.499897546971797070438,-52,52, + -7917008035360866.,4661777562111877.,-.440284455482126108700,-52,52, + -7917008035360845.,4661777562111824.,.484525519999450190131,-52,52, + -7917008035360795.,4661777562111700.,.495977842582647504745,-52,52, + -7917008035360770.,4661777562111639.,-.498295996121520219604,-52,52, + -7917008035360078.,4661777562109923.,-.499795850332579356703,-52,52, + -7709021669218857.,8469701007226454.,.499929160899447833707,-52,53, + -7709021669218694.,8469701007225913.,-.499763483863387793162,-52,53, + -7709021669217925.,8469701007223355.,.458741771225090963138,-52,53, + -7709021669217919.,8469701007223336.,-.492167160448723076024,-52,53, + -7709021669217879.,8469701007223203.,-.498226704934484390928,-52,53, + -7709021669215557.,8469701007215482.,-.499983243458041641501,-52,53, + -7709021669147235.,8469701006988301.,-.499971036668176163259,-52,53, + -6796847593347915.,7691904369739798.,-.499977050408599818809,-52,53, + -6796847593346177.,7691904369741942.,-.499826971649270605763,-52,53, + -6796847593345308.,7691904369743014.,-.499751927546244405492,-52,53, + -6796847593345278.,7691904369743051.,-.491694100881163828279,-52,53, + -6796847593345265.,7691904369743067.,-.454869042658463438547,-52,53, + -6796847593334636.,7691904369756179.,-.499980818433706795251,-52,53, + -6796847593281520.,7691904369821703.,-.499988537761718988657,-52,53, + -5808188779656299.,5553027521970149.,.499998791892271662160,-52,52, + -5808188779627318.,5553027522058147.,.499990962744027385784,-52,52, + -5808188779619956.,5553027522080502.,-.499941561244046497852,-52,52, + -5808188779616742.,5553027522090260.,.499816288881575370369,-52,52, + -5808188779616275.,5553027522091679.,-.499907754246672269813,-52,52, + -5769709794848142.,5672415179569417.,-.499970251147321899297,-52,52, + -5769709794842157.,5672415179588389.,-.499945460952768185658,-52,52, + -5769709794739747.,5672415179913021.,-.499501580362226560570,-52,52, + -5769709794717137.,5672415179984693.,-.499398566151427411209,-52,52, + -5769709794716984.,5672415179985177.,.499098377717137045981,-52,52, + -5769709794716931.,5672415179985346.,-.494886341054122303872,-52,52, + -5769709794716913.,5672415179985403.,-.436239641766622444583,-52,52, + -5149970467359138.,8593968521160231.,-.499913107351929242889,-52,52, + -5149970467359136.,8593968521160245.,-.499448663329409490737,-52,52, + -5149970467358900.,8593968521161897.,-.444644268351661016023,-52,52, + -5149970467357691.,8593968521170360.,-.163887845130989783142,-52,52, + -5149970467357614.,8593968521170899.,-.146006748959826491124,-52,52, + -5149970467354832.,8593968521190374.,-.499965021142837407524,-52,52, + -5149970467350526.,8593968521220516.,.499983276612641898344,-52,52, + -5149970467294545.,8593968521612397.,-.499972933600296615649,-52,52, + -5093673401579016.,9007199254545201.,-.000000399518942935178,-52,52, + -5093673401561374.,9007199254681049.,-.000021082708345142625,-52,52, + -5093673401553694.,9007199254740187.,.002465280016297885036,-52,52, + -5093673401553654.,9007199254740495.,.012894898582183222510,-52,52, + -5093673401553594.,9007199254740957.,.028539326471685344429,-52,52, + -5093673401553590.,9007199254740988.,-.170417711667279085172,-52,52, + -5093673401553589.,4503599627370498.,-.235078485600993148738,-52,51, + -5093673401553587.,4503599627370505.,.465182254864319976016,-52,51, + -5093673401552940.,4503599627372996.,.499531796816381101183,-52,51, + -5093673401552553.,4503599627374486.,.499985079062129550749,-52,51, + -5000432434638321.,4895414191545395.,.499999709464369033230,-52,51, + -5000432434625343.,4895414191605031.,.499942498370300786310,-52,51, + -5000432434622243.,4895414191619276.,.499158532841865520120,-52,51, + -5000432434622206.,4895414191619447.,-.479883081683326743834,-52,51, + -5000432434622201.,4895414191619469.,.495922105543988737118,-52,51, + -5000432434621954.,4895414191620605.,-.499301645133157539320,-52,51, + -5000432434619474.,4895414191632001.,-.499928745552000618204,-52,51, + -4855233726016026.,5686119621942949.,-.499966526912948266736,-52,51, + -4855233725966239.,5686119622267104.,-.499990212723134979407,-52,51, + -4855233725965593.,5686119622271310.,-.499829533962578576025,-52,51, + -4855233725962686.,5686119622290237.,-.499106383933577599509,-52,51, + -4855233725962363.,5686119622292340.,-.499026024273133333230,-52,51, + -4855233725962361.,5686119622292353.,-.477353700058692799708,-52,51, + -8242701861728634.,5085176099818261.,-.499996864090108364654,-105,47, + -8242701861719146.,5085176099818422.,.499953142118391522233,-105,47, + -8242701861718736.,5085176099818430.,-.499627433072864362202,-105,47, + -8242701861718033.,5085176099818442.,-.496469248582914677147,-105,47, + -8242701861718032.,5085176099818442.,-.479395054863867077897,-105,47, + -8242701861717916.,5085176099818444.,-.498788583454331508078,-105,47, + -8242701861688105.,5085176099818953.,-.499999623998719968488,-105,47, + -8178102513366467.,5086283426442688.,.499999401626001998527,-105,47, + -8178102513319515.,5086283426443496.,.499965466886643061501,-105,47, + -8178102513290693.,5086283426443992.,.499603864416677824770,-105,47, + -8178102513290520.,5086283426443995.,.476771911149201924728,-105,47, + -8178102513290519.,5086283426443995.,.493980975003147333812,-105,47, + -8178102513290170.,5086283426444001.,.499944260030223623434,-105,47, + -8003544517553229.,5089319929075037.,.499098043133833425533,-105,47, + -8003544517553178.,5089319929075038.,.395902189144384314330,-105,47, + -8003544517553172.,5089319929075039.,-.498591440736726970111,-105,47, + -8003544517552774.,5089319929075045.,.499997777149734464717,-105,47, + -6848882081873808.,5111246698737102.,.499990519432316571115,-105,47, + -6848882081673798.,5111246698741212.,.499945235957423840643,-105,47, + -6848882081660464.,5111246698741486.,.499942221326674079014,-105,47, + -6848882081660318.,5111246698741490.,-.499907819178554767602,-105,47, + -6848882081659442.,5111246698741508.,-.499008062208584787269,-105,47, + -6848882081658566.,5111246698741526.,-.498108305236312418312,-105,47, + -6848882081658564.,5111246698741526.,-.457010360585688157600,-105,47, + -5840746347559651.,5133655885869901.,-.499998068541673856102,-105,47, + -5840746347518067.,5133655885870902.,.499980621514314477292,-105,47, + -5840746347517818.,5133655885870908.,.499836207670466532078,-105,47, + -5840746347511427.,5133655885871062.,.496129585765903922735,-105,47, + -5840746347509269.,5133655885871114.,.494877999186833722793,-105,47, + -5840746347509188.,5133655885871116.,.446638250108011948652,-105,47, + -5840746347509186.,5133655885871116.,.494829861241868543556,-105,47, + -5301224375153929.,5147296272996242.,.491638482540691929451,-105,47, + -5301224375153891.,5147296272996244.,-.499533333810281735791,-105,47, + -5301224375153665.,5147296272996250.,-.499660452108028348581,-105,47, + -5301224375153100.,5147296272996265.,-.499978247851275823165,-105,47, + -5301224375105865.,5147296272997519.,-.499997856237210991872,-105,47, + -4827510902874846.,5160470260926370.,.499796530443161788764,-105,47, + -4827510902874264.,5160470260926387.,.466970685146326740944,-105,47, + -4827510902874263.,5160470260926387.,.496123905343412977168,-105,47, + -4827510902874160.,5160470260926390.,.498905585643327653015,-105,47, + -4827510902872685.,5160470260926433.,.499905376353017281903,-105,47, + -4827510902870524.,5160470260926497.,-.499985777708925686328,-105,47, + -4827510902861537.,5160470260926759.,-.499995866048097115194,-105,47, + -4508444030595058.,5170093736149651.,.499988306831076669913,-105,47, + -4508444030595026.,5170093736149652.,.498913789061382431141,-105,47, + -4508444030594674.,5170093736149663.,.487094093595213755592,-105,47, + -4508444030594642.,5170093736149664.,.486019575825604598809,-105,47, + -4508444030594640.,5170093736149665.,-.451547581534995738074,-105,47, + -4508444030558763.,5170093736150785.,-.499999890207752046733,-105,47, + -5441089836923577.,5241183041035887.,-.499995173913662261112,-106,47, + -5441089836921180.,5241183041035949.,-.499960309844253100421,-106,47, + -5441089836918783.,5241183041036011.,-.499925445747530646250,-106,47, + -5441089836917855.,5241183041036035.,-.496574442869208448586,-106,47, + -5441089836917739.,5241183041036038.,-.496155567509130323705,-106,47, + -5441089836917738.,5241183041036038.,-.470289887549129372119,-106,47, + -5137347928742250.,5249267340043155.,.487556757778637597406,-106,47, + -5137347928742249.,5249267340043156.,-.485048273006228081122,-106,47, + -5137347928742213.,5249267340043157.,-.498829381261388956694,-106,47, + -5137347928741775.,5249267340043169.,-.499832865031959396082,-106,47, + -5137347928741702.,5249267340043170.,.499999887673044990033,-106,47, + -5130840493894316.,5249445724023085.,-.499876032967776098426,-106,47, + -5130840493893915.,5249445724023095.,.499439361390531340065,-106,47, + -5130840493893806.,5249445724023098.,.489278209233711132432,-106,47, + -5130840493893804.,5249445724023099.,-.455862362365495984389,-106,47, + -5130840493893769.,5249445724023100.,-.495822365351617067184,-106,47, + -5130840493888410.,5249445724023247.,-.499983965349288964041,-106,47, + -5130840493850422.,5249445724024288.,.499999084263789618043,-106,47, + -5010504700979210.,5252785823751432.,.499989085685430900727,-106,47, + -5010504700967141.,5252785823751771.,.499919897155809180506,-106,47, + -5010504700963118.,5252785823751884.,.499896834494060270221,-106,47, + -5010504700962584.,5252785823751899.,.499148061082692205466,-106,47, + -5010504700961516.,5252785823751929.,.497650514264751760602,-106,47, + -5010504700961447.,5252785823751931.,.435756009835722699873,-106,47, + -5010504700961445.,5252785823751931.,.491932980721838197582,-106,47, + -5010504700895083.,5252785823753796.,-.499996034735463927453,-106,47, + -7922455085967750.,5383408490025783.,-.499142493669966917579,-108,47, + -7922455085967694.,5383408490025783.,.495662685075413502808,-108,47, + -7922455085967692.,5383408490025784.,-.468808558540822780697,-108,47, + -7922455085967356.,5383408490025790.,-.499977486068391083840,-108,47, + -7922455085902676.,5383408490026939.,-.499996030410628264798,-108,47, + -5061503531606603.,5641567757920454.,.499994878075519718297,-110,47, + -5061503531597576.,5641567757920705.,.499979260467408252934,-110,47, + -5061503531596569.,5641567757920734.,-.499911702940239209147,-110,47, + -5061503531596533.,5641567757920735.,-.498914756249644821206,-110,47, + -5061503531596532.,5641567757920735.,-.471109285508239319911,-110,47, + -4503599627370497.,6231120794008786.,.239723196303909676642,-1074,43, + -4503599627370496.,6231120794008786.,.241676321303909676425,-1074,43, + 4503599627370496.,6231120794008786.,.241676321303909676425,-1074,43, + 4503599627370497.,6231120794008786.,.239723196303909676642,-1074,43, + 6842111560909733.,5501593067808421.,.499995928259869882738,-109,47, + 6842111560924804.,5501593067808111.,.499980857065232407076,-109,47, + 6842111560930249.,5501593067808000.,-.499891882641764521852,-109,47, + 6842111560931367.,5501593067807977.,-.496376312932374001164,-109,47, + 6842111560931372.,5501593067807976.,.400777155626263198005,-109,47, + 6842111560931513.,5501593067807974.,-.499495031020136841771,-109,47, + 6842111560935062.,5501593067807901.,-.499963048078989174316,-109,47, + 5635416615580250.,5431347909843357.,-.499997395851632054072,-108,47, + 5635416615593584.,5431347909843024.,-.499986170328462175479,-108,47, + 5635416615604996.,5431347909842738.,.499573460241062596044,-108,47, + 5635416615605036.,5431347909842738.,-.499376558578218489502,-108,47, + 5635416615605116.,5431347909842736.,-.497276596216759389052,-108,47, + 5635416615605154.,5431347909842735.,-.446279114095056380756,-108,47, + 5635416615605156.,5431347909842735.,-.496226615036019203056,-108,47, + 5635416615606918.,5431347909842691.,-.499974944017378615753,-108,47, + 6916394610366713.,5402521558496376.,-.499955372998001267536,-108,47, + 6916394610522401.,5402521558493208.,-.499949759661453954602,-108,47, + 6916394610526480.,5402521558493124.,.498971307126290863509,-108,47, + 6916394610526578.,5402521558493123.,-.495170819731356796036,-108,47, + 6916394610526627.,5402521558493122.,-.492241883160170030011,-108,47, + 6916394610526824.,5402521558493117.,.499125474075080705921,-108,47, + 6916394610528544.,5402521558493082.,.499896308824252177051,-108,47, + 6916394610528888.,5402521558493076.,-.499949524224869076908,-108,47, + 5804122653802441.,5329644728133219.,-.499744169501706555112,-107,47, + 5804122653802482.,5329644728133218.,-.493905969095687593988,-107,47, + 5804122653802485.,5329644728133217.,.433350484592557971578,-107,47, + 5804122653803637.,5329644728133189.,.499828700881634485274,-107,47, + 5804122653810318.,5329644728133027.,.499951064729941817222,-107,47, + 5804122653812545.,5329644728132973.,.499991852720816384287,-107,47, + 4994576600376809.,5253233932607195.,-.499999167806028715401,-106,47, + 4994576600383055.,5253233932607018.,.499826523022174617921,-106,47, + 4994576600383410.,5253233932607008.,.496614566615722497573,-106,47, + 4994576600383692.,5253233932607001.,-.449598874810867956289,-106,47, + 4994576600383694.,5253233932607000.,.494045001491072720758,-106,47, + 4994576600384581.,5253233932606976.,-.499895858596012634755,-106,47, + 4994576600387704.,5253233932606888.,-.499983013072487370260,-106,47, + 7984456451821952.,5187207775310121.,-.499995630871778590635,-106,47, + 7984456451885266.,5187207775309005.,-.499987798229629068810,-106,47, + 7984456451885323.,5187207775309003.,.495305508885906835515,-106,47, + 7984456451885330.,5187207775309003.,.371920476426411739319,-106,47, + 4747578892790082.,5162820043937274.,.499527648075871542756,-105,47, + 4747578892790116.,5162820043937273.,.491629788527292769538,-105,47, + 4747578892792106.,5162820043937214.,.499960950255404017996,-105,47, + 4747578892801349.,5162820043936940.,.499963426887558769796,-105,47, + 4747578892921508.,5162820043933378.,.499995671649252516023,-105,47, + 5359027492704679.,5145770015378166.,-.498900322848597001937,-105,47, + 5359027492704717.,5145770015378165.,-.496847163909365582301,-105,47, + 5359027492705136.,5145770015378153.,.499475825447365828454,-105,47, + 5359027492705631.,5145770015378140.,.499905132683753740116,-105,47, + 5359027492708068.,5145770015378076.,.499998509943841855041,-105,47, + 5488415439764355.,5142412431755011.,-.499995161692557243303,-105,47, + 5488415439823279.,5142412431753500.,-.467205063879457272348,-105,47, + 5488415439823280.,5142412431753500.,-.492847708810114998219,-105,47, + 5488415439823397.,5142412431753497.,-.493037165697036673323,-105,47, + 5488415439826478.,5142412431753418.,-.498026197029623398245,-105,47, + 5488415439827687.,5142412431753387.,-.499983918173332284942,-105,47, + 5668948148605696.,5137857603457198.,-.499995972426741356999,-105,47, + 5668948148611013.,5137857603457065.,.499991685076130751838,-105,47, + 5668948148616330.,5137857603456933.,.499979342702807850107,-105,47, + 5708579506481044.,5136877137314604.,-.499951420259432362740,-105,47, + 5708579506482341.,5136877137314572.,-.475773459630695377211,-105,47, + 5708579506482342.,5136877137314571.,.499572861079121409427,-105,47, + 5708579506485303.,5136877137314499.,-.499971517134434786343,-105,47, + 5708579506489562.,5136877137314394.,-.499991613931099843341,-105,47, + 5708579506540021.,5136877137313150.,-.499994910214436420911,-105,47, + 6402079148376334.,5120741220500864.,-.430355799988577951838,-105,47, + 6402079148376337.,5120741220500864.,-.496305072917055184382,-105,47, + 6402079148376428.,5120741220500862.,-.496766351747516552090,-105,47, + 6402079148377065.,5120741220500848.,-.499995303559949951052,-105,47, + 6402079148383570.,5120741220500704.,.499997896614194738539,-105,47, + 6728987427100881.,5113732230233044.,.499999516916178279028,-105,47, + 6728987427118377.,5113732230232679.,-.430702975493502780930,-105,47, + 6728987427118380.,5113732230232679.,-.493448294850830262475,-105,47, + 6728987427118476.,5113732230232676.,.498701485714705098292,-105,47, + 6728987427118715.,5113732230232671.,.499991043581110269623,-105,47, + 8108726220153573.,5087482420362562.,-.499978654862436945346,-105,47, + 8108726220154322.,5087482420362549.,-.499847674504758378524,-105,47, + 8108726220156569.,5087482420362510.,-.499454733424517919901,-105,47, + 8108726220156972.,5087482420362503.,-.494043805405868563909,-105,47, + 8108726220156975.,5087482420362502.,.453887293313874546244,-105,47, + 8108726220157030.,5087482420362501.,.499290769842501646389,-105,47, + 8108726220168726.,5087482420362299.,-.499999021304542359386,-105,47, + 8488875008830039.,5081034435108701.,.499999249634199531450,-105,47, + 8488875008832512.,5081034435108661.,-.499992897811010804317,-105,47, + 8488875008857242.,5081034435108251.,-.499914371606182127280,-105,47, + 8488875008858569.,5081034435108228.,.499685474940879404725,-105,47, + 8488875008858690.,5081034435108226.,.493620351679704940835,-105,47, + 8488875008858750.,5081034435108225.,.498877315351860439741,-105,47, + 8488875008859715.,5081034435108210.,-.499906518920006056105,-105,47, + 8703077354446139.,5496719022144435.,.499314633303366166667,-60,50, + 8703077354446216.,5496719022144425.,.495501584850349666764,-60,50, + 8703077354446231.,5496719022144424.,-.453293164848279653594,-60,50, + 8703077354446239.,5496719022144423.,-.492650364687547256779,-60,50, + 8703077354446393.,5496719022144402.,.499723538406736820497,-60,50, + 8703077354446647.,5496719022144370.,-.499867556488933430311,-60,50, + 8703077354449010.,5496719022144062.,.499999541043375346985,-60,50, + 7188956797818862.,6690709305721680.,.499998384065855929875,-57,51, + 7188956797824435.,6690709305719892.,-.499988059531023809404,-57,51, + 7188956797841154.,6690709305714525.,-.499947382171234015082,-57,51, + 7188956797842182.,6690709305714194.,.499696246215405578737,-57,51, + 7188956797842241.,6690709305714176.,-.440012922971118248649,-57,51, + 7188956797842263.,6690709305714168.,.497722641061064378795,-57,51, + 9006440473863854.,6169297356385153.,-.499874548069551237513,-57,51, + 9006440473864254.,6169297356385049.,.498816697575085939730,-57,51, + 9006440473870751.,6169297356383377.,-.499940744416269563265,-57,51, + 9006440473877648.,6169297356381600.,.499993060565297975066,-57,51, + 9006440473921962.,6169297356370190.,-.499997246455087278829,-57,51, + 7591484324331334.,4950172656960902.,-.499999146938242667040,-56,51, + 7591484324336030.,4950172656959447.,.499984997217978146615,-56,51, + 7591484324368902.,4950172656949269.,.499874030818979619575,-56,51, + 7591484324373120.,4950172656947964.,-.499288416072411121489,-56,51, + 7591484324373133.,4950172656947959.,.475583771740537205680,-56,51, + 7591484324373359.,4950172656947890.,-.499715117048673806951,-56,51, + 7591484324373598.,4950172656947815.,.499858181977330655324,-56,51, + 8003388475009803.,4825888419155589.,.499993441635249148503,-56,51, + 8003388475029789.,4825888419149711.,.499912370339420204243,-56,51, + 8003388475029806.,4825888419149707.,-.499887558515302449486,-56,51, + 8003388475030673.,4825888419149452.,-.489683930092451235635,-56,51, + 8003388475031846.,4825888419149107.,-.475879021006975963114,-56,51, + 8003388475031863.,4825888419149102.,-.475678949860447867946,-56,51, + 8003388475031870.,4825888419149099.,.465579902964596116876,-56,51, + 8003388475034794.,4825888419148239.,.499992140321951002853,-56,51, + 7429938090810603.,6717807569284082.,-.499996348770151351324,-55,52, + 7429938090848709.,6717807569259644.,.499704701710220688424,-55,52, + 7429938090848801.,6717807569259586.,-.498983890574488881781,-55,52, + 7429938090848971.,6717807569259476.,.481700232379592244747,-55,52, + 7429938090848985.,6717807569259468.,-.496361075141725669303,-55,52, + 7429938090849484.,6717807569259147.,.499882321073729270045,-55,52, + 7429938090850259.,6717807569258651.,-.499940059511140546890,-55,52, + 7429938090855592.,6717807569255230.,.499991870070460743279,-55,52, + 4684840655107122.,5613014568672006.,.498985930537921703001,-54,52, + 4684840655107187.,5613014568671941.,-.487831943085205516919,-54,52, + 4684840655107188.,5613014568671939.,.496986243474445993468,-54,52, + 4684840655107583.,5613014568671539.,-.499830065445873766953,-54,52, + 4684840655112589.,5613014568666457.,-.499988144614594106320,-54,52, + 4684840655150595.,5613014568627874.,-.499989552934145087882,-54,52, + 5261029272888335.,5062278462627670.,-.499997258976106841171,-54,52, + 5261029272896262.,5062278462620530.,.499976577941916317735,-54,52, + 5261029272899129.,5062278462617949.,-.499906730705919784155,-54,52, + 5261029272899471.,5062278462617640.,.497316816110751810626,-54,52, + 5261029272899511.,5062278462617604.,.473600271880147971751,-54,52, + 5261029272899521.,5062278462617595.,.467671135822541658487,-54,52, + 5261029272899632.,5062278462617496.,-.498142274415689125678,-54,52, + 5357701474430687.,4976041322886515.,-.499997931771824299909,-54,52, + 5357701474436272.,4976041322881580.,-.499922860773803914171,-54,52, + 5357701474447442.,4976041322871710.,-.499772702619243630715,-54,52, + 5357701474447674.,4976041322871505.,-.498874328470367158508,-54,52, + 5357701474447708.,4976041322871474.,.458153881534990410294,-54,52, + 5357701474447717.,4976041322871467.,-.494397474640028585006,-54,52, + 5921569018707969.,4503599627399495.,-.499994309232329257151,-54,52, + 5921569018742631.,4503599627371945.,-.499943059993329662435,-54,52, + 5921569018744444.,4503599627370503.,.494058817554909959939,-54,52, + 5921569018744449.,4503599627370500.,-.480033841359085957405,-54,52, + 5921569018744453.,4503599627370496.,.340692031509719895546,-54,52, + 5921569018744454.,9007199254740991.,.091746999453843436131,-54,53, + 5921569018744483.,9007199254740945.,-.007727843948325827824,-54,53, + 5921569018744561.,9007199254740821.,.000581197936694197631,-54,53, + 5921569018750814.,9007199254730881.,.000022728075055625935,-54,53, + 6544763739192154.,8069045669913586.,-.499999046271082659393,-54,53, + 6544763739207503.,8069045669891696.,.451781575733308726042,-54,53, + 6544763739207517.,8069045669891676.,.486528134408392427682,-54,53, + 6544763739207524.,8069045669891667.,-.496098586254048097394,-54,53, + 6544763739207639.,8069045669891503.,-.496394711421031783591,-54,53, + 6544763739208789.,8069045669889863.,-.499355962916455951304,-54,53, + 6544763739209019.,8069045669889535.,-.499948213177487106097,-54,53, + 6544763739212415.,8069045669884692.,-.499997263381419821245,-54,53, + 6750030179322295.,7781276067681555.,.499962877977165410835,-54,53, + 6750030179323810.,7781276067679468.,-.498360930544128244015,-54,53, + 6750030179323839.,7781276067679428.,-.466645676708763889566,-54,53, + 6750030179323847.,7781276067679417.,-.492379399788629803078,-54,53, + 6750030179323966.,7781276067679252.,.499831469400078982371,-54,53, + 6750030179329484.,7781276067671647.,.499995978670252359699,-54,53, + 7262316160906409.,7103725511105703.,-.499999439779431241551,-54,53, + 7262316160953307.,7103725511046172.,.499889885119128836684,-54,53, + 7262316160954599.,7103725511044532.,.499033927477614407394,-54,53, + 7262316160955245.,7103725511043712.,.498605948781522659673,-54,53, + 7262316160955271.,7103725511043679.,.495492748402305219375,-54,53, + 7262316160955349.,7103725511043580.,.486153147265460668667,-54,53, + 7262316160957803.,7103725511040466.,-.499992764805769137921,-54,53, + 7667186625744739.,6605609693943925.,.499639634394366499192,-54,53, + 7667186625744848.,6605609693943796.,-.482041192691016953053,-54,53, + 7667186625744853.,6605609693943790.,-.444503615951762776072,-54,53, + 7667186625744926.,6605609693943703.,-.496454995558136504666,-54,53, + 7667186625745778.,6605609693942686.,.499948080888109642697,-54,53, + 7667186625749108.,6605609693938715.,.499974190793909874658,-54,53, + 7667186625752438.,6605609693934745.,-.499999697293274985636,-54,53, + 7756304500071766.,6500051176756840.,-.499999567127309409608,-54,53, + 7756304500086727.,6500051176739238.,-.496628057694390807486,-54,53, + 7756304500086744.,6500051176739218.,-.497559992992954476083,-54,53, + 7756304500086795.,6500051176739157.,.499644201111662066248,-54,53, + 7756304500087860.,6500051176737905.,-.499915274833590747703,-54,53, + 7756304500090007.,6500051176735379.,-.499966161409311537885,-54,53, + 4851766931887548.,4503599627371154.,-.250163634020963001450,-53,53, + 4851766931887896.,4503599627370533.,-.242221690382635047705,-53,53, + 4851766931887916.,4503599627370497.,.068579570747781856214,-53,53, + 4851766931887917.,9007199254740991.,-.431760732391384454601,-53,54, + 4851766931887947.,9007199254740884.,-.499356948999380294065,-53,54, + 4851766931888687.,9007199254738242.,.499936374945257661683,-53,54, + 4851766931892844.,9007199254723407.,-.499979361658125706537,-53,54, + 4851766931904176.,9007199254682964.,-.499990132595566142958,-53,54, + 4851766931915508.,9007199254642520.,.499999220509993575664,-53,54, + 4889567999011727.,8872977419557002.,.499998387465177242182,-53,54, + 4889567999034320.,8872977419477190.,-.499929407419722173179,-53,54, + 4889567999035285.,8872977419473780.,.499719595492272292260,-53,54, + 4889567999035867.,8872977419471725.,-.498419554653862421203,-53,54, + 4889567999035882.,8872977419471672.,-.488062316251297844475,-53,54, + 4889567999035884.,8872977419471664.,.446651982202393641100,-53,54, + 4889567999037506.,8872977419465934.,.499948029401945253726,-53,54, + 4930099044594220.,8730575250211520.,-.499998843361661120926,-53,54, + 4930099044602329.,8730575250183185.,-.495811881236435344585,-53,54, + 4930099044602335.,8730575250183164.,-.461402567886035993518,-53,54, + 4930099044602503.,8730575250182577.,-.497941794061110074720,-53,54, + 4930099044602677.,8730575250181968.,.499928293142685093669,-53,54, + 4930099044606426.,8730575250168869.,-.499985740591594843091,-53,54, + 5026050879155925.,8399576467583007.,-.499996454876017904315,-53,54, + 5026050879175154.,8399576467517523.,-.499815270079300575144,-53,54, + 5026050879176942.,8399576467511433.,.499629541787441549417,-53,54, + 5026050879177159.,8399576467510695.,-.489811440019468487233,-53,54, + 5026050879177164.,8399576467510677.,.482782085745854593172,-53,54, + 5026050879177196.,8399576467510569.,-.492619349355538663636,-53,54, + 5026050879177307.,8399576467510190.,.498956922643729828997,-53,54, + 5026050879181211.,8399576467496895.,.499981847663922032745,-53,54, + 5035712052396674.,8366717970690738.,-.499995700499541486688,-53,54, + 5035712052415212.,8366717970627769.,.499980899816450525652,-53,54, + 5035712052433750.,8366717970564801.,.499957812038867779795,-53,54, + 5035712052438837.,8366717970547522.,.493802000382144925032,-53,54, + 5035712052438900.,8366717970547309.,-.498214476005781156253,-53,54, + 5035712052439263.,8366717970546076.,-.499833220837465574537,-53,54, + 5388947655809098.,7221403440535126.,-.499997891180020160526,-53,54, + 5388947655827971.,7221403440476738.,.499916009874371737254,-53,54, + 5388947655827992.,7221403440476674.,-.467338894223579236105,-53,54, + 5388947655828003.,7221403440476640.,-.497805748750934595302,-53,54, + 5388947655831483.,7221403440465873.,.499953005704095696097,-53,54, + 5388947655834995.,7221403440455008.,.499990011539172514966,-53,54, + 5842346135984672.,5898482887041997.,.466565499080328625593,-53,54, + 5842346135984688.,5898482887041953.,.475304423737532708764,-53,54, + 5842346135984732.,5898482887041832.,.499336466545782542799,-53,54, + 5842346135985191.,5898482887040571.,-.499965632258799726570,-53,54, + 5842346135996634.,5898482887009109.,-.499995903272593224298,-53,54, + 6083309738851676.,5256162215041380.,.499770801521553009927,-53,54, + 6083309738851981.,5256162215040592.,.498348557405533365530,-53,54, + 6083309738852053.,5256162215040406.,.478340683393745305479,-53,54, + 6083309738852274.,5256162215039836.,-.499739040981976656247,-53,54, + 6083309738860072.,5256162215019688.,.499963736945679975782,-53,54, + 6083309738862171.,5256162215014266.,-.499988021859501194843,-53,54, + 6083309738882563.,5256162214961581.,-.499995618261017128367,-53,54, + 6386112102135678.,4503599627374855.,.499979991289041612433,-53,54, + 6386112102137457.,4503599627370605.,-.499539210412902339620,-53,54, + 6386112102137498.,4503599627370507.,-.470860338703430531290,-53,54, + 6386112102137502.,4503599627370497.,-.029038009756109490216,-53,54, + 6386112102137503.,9007199254740989.,.162835144961444623372,-53,55, + 6386112102137516.,9007199254740927.,.034680283119183703722,-53,55, + 6386112102185680.,9007199254510747.,.000007423949315292103,-53,55, + 6466710109370739.,8625993548742106.,-.499961036677638261271,-53,55, + 6466710109370977.,8625993548740992.,-.499249503405260282917,-53,55, + 6466710109371049.,8625993548740654.,.492562389026767438528,-53,55, + 6466710109371096.,8625993548740435.,-.498893736743388860391,-53,55, + 6466710109387593.,8625993548663218.,-.499993717074881725605,-53,55, + 6466710109390402.,8625993548650070.,-.499999130417287294466,-53,55, + 6683043781664332.,7641212369782655.,-.499995880609601965628,-53,55, + 6683043781680790.,7641212369709814.,.496044176969076951760,-53,55, + 6683043781680797.,7641212369709784.,-.484635596910381295949,-53,55, + 6683043781680844.,7641212369709576.,-.497771221528144115199,-53,55, + 6683043781681309.,7641212369707517.,.499929513773203801730,-53,55, + 6683043781682603.,7641212369701790.,.499982744068867569256,-53,55, + 7467206264095445.,4503599627378914.,.499975424529907408518,-53,55, + 7467206264097624.,4503599627371070.,-.499501979353208464908,-53,55, + 7467206264097644.,4503599627370997.,.494995703973392571926,-53,55, + 7467206264097774.,4503599627370529.,.459230645605725730364,-53,55, + 7467206264097783.,4503599627370497.,.056754603103953536214,-53,55, + 7467206264097784.,9007199254740987.,-.087041025459143747039,-53,56, + 7467206264099080.,9007199254731655.,-.000141264331879535886,-53,56, + 7467206264158691.,9007199254302423.,.000002416082612633057,-53,56, + 7593583889909144.,8112520461222197.,.499942812874013310062,-53,56, + 7593583889909316.,8112520461221001.,-.498865553101726224965,-53,56, + 7593583889909340.,8112520461220833.,.478044907464231428425,-53,56, + 7593583889913345.,8112520461192961.,.499978029614732827015,-53,56, + 7593583889917546.,8112520461163726.,-.499986720381683743492,-53,56, + 7593583889944398.,8112520460976855.,-.499998661780233708787,-53,56, + 7618936725669056.,7936687291731425.,.492997130359946158021,-53,56, + 7618936725669067.,7936687291731349.,.465038030772196598796,-53,56, + 7618936725669090.,7936687291731190.,.497487186180362548307,-53,56, + 7618936725669124.,7936687291730956.,-.498022757997053310960,-53,56, + 7618936725669554.,7936687291727983.,.499939712887405964302,-53,56, + 7618936725674454.,7936687291694116.,.499977196290853869961,-53,56, + 7618936725679354.,7936687291660250.,-.499985275281746447986,-53,56, + 7618936725732360.,7936687291293892.,-.499984595006354944978,-53,56, + 8259236168388673.,7760175117976306.,-.499999215494804258052,-53,57, + 8259236168401361.,7760175117829576.,.499986081311327948743,-53,57, + 8259236168422839.,7760175117581196.,.498228488750651583126,-53,57, + 8259236168422940.,7760175117580028.,.494681722798647881320,-53,57, + 8259236168423367.,7760175117575090.,.499488960187823801116,-53,57, + 8259236168423631.,7760175117572038.,-.499880803746390191128,-53,57, + 8259236168426737.,7760175117536118.,.499958278863420728937,-53,57, + 8460168363162930.,5502760904649730.,-.499994829714209876758,-53,57, + 8460168363172988.,5502760904540007.,.499439470068399028248,-53,57, + 8460168363172999.,5502760904539888.,-.498771528233202950755,-53,57, + 8460168363173010.,5502760904539768.,-.496982526534417196200,-53,57, + 8460168363174668.,5502760904521680.,.499941552134369004694,-53,57, + 8460168363180817.,5502760904454601.,.499993595112752478686,-53,57, + 8791115980677046.,8258614369456463.,-.499963664819336107914,-53,59, + 8791115980759390.,8258614366202834.,.499979895163943942452,-53,59, + 8791115980760063.,8258614366176243.,-.499971651083068356058,-53,59, + 8791115980766120.,8258614365936915.,-.499535320452740755298,-53,59, + 8791115980768812.,8258614365830547.,-.499341253101719700118,-53,59, + 8791115980769087.,8258614365819681.,-.472575509482565959205,-53,59, + 8791115980769089.,8258614365819602.,-.497835394980162693639,-53,59, + 8791115980769208.,8258614365814899.,.499201418000028071691,-53,59, + 8837821264166392.,6426341390423168.,.499834197081058311496,-53,59, + 8837821264166805.,6426341390407082.,.497110422463688947513,-53,59, + 8837821264166982.,6426341390400188.,.495943091112312515144,-53,59, + 8837821264171506.,6426341390223983.,-.499994673942517904523,-53,59, + 8837821264194637.,6426341389323050.,-.499998885792482298619,-53,59, + 9007199154089846.,7797703592459681.,.167726530665721188755,-53,80, + 9007199154131350.,7794488170599980.,-.175806295966180618497,-53,80, + 9007199154133242.,7794341592483208.,-.370732614366268575626,-53,80, + 9007199154136473.,7794091278585063.,-.496521573699845684397,-53,80, + 9007199154136494.,7794089651660933.,.427360404929867406714,-53,80, + 9007199154136513.,7794088179681960.,-.498641823872006166240,-53,80, + 9007199154136553.,7794085080778856.,.499277144240766933115,-53,80, + 9007199154145500.,7793391933627293.,.494243724292261599993,-53,80, + 9007199154389385.,7774497534046185.,-.496051487545322911437,-53,80, + 9007199154389937.,7774454769183367.,-.499869847769099078486,-53,80, + 9007199154389951.,7774453684567281.,-.463637691902508872612,-53,80, + 9007199154408262.,7773035084199422.,-.390743748108708965329,-53,80, + 9007199155140869.,7716278131571353.,-.225056631694483798249,-53,80, + 9007199155184531.,7712895523890369.,.075759600618920778069,-53,80, + 9007199155191310.,7712370337287162.,.499747355725557723709,-53,80, + 9007199155191381.,7712364836734157.,-.493244263824045871825,-53,80, + 9007199155191432.,7712360885632701.,.497781672960683690086,-53,80, + 9007199155192865.,7712249867429074.,-.473407288085002303858,-53,80, + 9007199155197530.,7711888457854807.,-.037255744228236718333,-53,80, + 9007199158376542.,7465602204279318.,.495527898228475215171,-53,80, + 9007199158376559.,7465600887245501.,.486434487476315342055,-53,80, + 9007199158376646.,7465594147131261.,.498832039798188223427,-53,80, + 9007199158377304.,7465543170175286.,-.493348713892296595719,-53,80, + 9007199158379174.,7465398296455415.,-.416229185066667917015,-53,80, + 9007199158397216.,7464000536212686.,-.270346088353214511170,-53,80, + 9007199164817279.,6966621708584093.,-.171273783145066023213,-53,80, + 9007199164856276.,6963600510486627.,-.409299533522103535817,-53,80, + 9007199164858992.,6963390094966646.,.485669289460077093355,-53,80, + 9007199164859040.,6963386376282935.,.498693844905213427989,-53,80, + 9007199164859277.,6963368015282113.,-.498669600380916597396,-53,80, + 9007199164860430.,6963278689400472.,-.474639770697750922827,-53,80, + 9007199164871044.,6962456395464881.,.278979293759429651189,-53,80, + 9007199178624470.,5896943038694171.,.154848235466712447000,-53,80, + 9007199178667656.,5893597307984960.,-.465939119157640455736,-53,80, + 9007199178669216.,5893476450764880.,.499581541796452662484,-53,80, + 9007199178669292.,5893470562849030.,.496861503015911325865,-53,80, + 9007199178669329.,5893467696363682.,.469272725276115493078,-53,80, + 9007199178669330.,5893467618891105.,.495554575378658148893,-53,80, + 9007199178670738.,5893358537502727.,-.475286712410648184781,-53,80, + 9007199178676141.,5892939953169338.,.069858250253567293625,-53,80, + 9007199184602136.,5433837849817348.,-.400538750510303960442,-53,80, + 9007199184604977.,5433617750226579.,-.492233584681093855255,-53,80, + 9007199184604983.,5433617285391118.,-.461594865804373124380,-53,80, + 9007199184605041.,5433612791981662.,-.498708423452441351240,-53,80, + 9007199184605204.,5433600163951639.,-.499120554775200354220,-53,80, + 9007199184606281.,5433516725986395.,-.479341425368334705101,-53,80, + 9007199184625015.,5432065354732099.,.416999718918427505669,-53,80, + 9007199193426413.,4750198372935003.,.321143248190266348692,-53,80, + 9007199193432647.,4749715408892405.,-.416555795450478330460,-53,80, + 9007199193455377.,4747954457226024.,-.393205071896468533347,-53,80, + 9007199193456928.,4747834297259700.,-.476082077451301423023,-53,80, + 9007199193458335.,4747725293344408.,-.484783488794587309430,-53,80, + 9007199193458407.,4747719715318892.,-.492452461755117716014,-53,80, + 9007199193458479.,4747714137293376.,-.499994367473274065486,-53,80, + 9007199193502679.,4744289849407184.,-.258741988203768421881,-53,80, + 9007199193507069.,4743949744795865.,.499849065837121550094,-53,80, + 9007199193507110.,4743946568420224.,.488887016294516046889,-53,80, + 9007199194127225.,4695904661580413.,-.056005349502856300526,-53,80, + 9007199194130230.,4695671856487746.,-.388625267861962671246,-53,80, + 9007199194133235.,4695439051395079.,-.499906379277837317242,-53,80, + 9007199194133240.,4695438664032196.,-.473284794528822363208,-53,80, + 9007199194166966.,4692825823913977.,.436872323293668442599,-53,80, + 9007199198619841.,8695700249313300.,-.466842138011323087066,-53,81, + 9007199198620885.,8695538486573600.,-.499206779627140340354,-53,81, + 9007199198620983.,8695523301948609.,-.495670201265333045122,-53,81, + 9007199198621014.,8695518498648866.,.454526125335028826347,-53,81, + 9007199198621015.,8695518343703713.,.485178404107185122485,-53,81, + 9007199198628878.,8694300009965917.,.019701513968242451054,-53,81, + 9007199204487496.,7786535548610517.,.121405781334876220649,-53,81, + 9007199204491763.,7785874397644025.,-.485350131072080540577,-53,81, + 9007199204492055.,7785829153659442.,-.494944515905878760588,-53,81, + 9007199204492504.,7785759583285888.,-.498117695268117304219,-53,81, + 9007199204492526.,7785756174492529.,-.491337672097311863492,-53,81, + 9007199204492529.,7785755709657070.,.464134169419434664530,-53,81, + 9007199204497647.,7784962700365647.,.141522624556800462960,-53,81, + 9007199204542518.,7778010156419736.,-.253284628660578881280,-53,81, + 9007199234692659.,6212783956322471.,.481650224721673245769,-53,82, + 9007199234699019.,6210813053999197.,-.416927903729967732008,-53,82, + 9007199234699059.,6210800658387101.,-.472922569246414412987,-53,82, + 9007199234699079.,6210794460581052.,.499138925421993612261,-53,82, + 9007199234699221.,6210750456158112.,-.498096740663786139617,-53,82, + 9007199234713486.,6206329870994366.,-.236973212912967342587,-53,82, + 9007199239632554.,4681958402134502.,-.472129186561058101876,-53,82, + 9007199239632566.,4681954683450879.,-.484400695303265316640,-53,82, + 9007199239632578.,4681950964767256.,-.496658085463092305858,-53,82, + 9007199239632663.,4681924624091593.,-.499743738985044038729,-53,82, + 9007199239634291.,4681420122680071.,-.351541669528797616398,-53,82, + 9007199239640803.,4679402117033986.,-.160145555369690802993,-53,82, + 9007199245022901.,6023084288575576.,-.168226388549826984013,-53,83, + 9007199245054411.,6003555001782126.,.458575225316561353892,-53,83, + 9007199245085921.,5984025714988872.,-.219352699649550145543,-53,83, + 9007199245089121.,5982042417060022.,-.483436236259370141928,-53,83, + 9007199245089415.,5981860201562808.,.499267172683315938738,-53,83, + 9007199245089513.,5981799463063737.,.497268166360312037408,-53,83, + 9007199245089530.,5981788926793490.,.486908997689472945597,-53,83, + 9007199245090672.,5981081137345133.,-.373329892980191052268,-53,83, + 9007199250310262.,5492161007259335.,-.057203403101547439859,-53,84, + 9007199250373442.,5413845530424053.,-.457963582787213441843,-53,84, + 9007199250389237.,5394266661215477.,-.451728890335744618691,-53,84, + 9007199250389414.,5394047258882466.,-.480205929891347126417,-53,84, + 9007199250389737.,5393646880613751.,-.489204305282087013161,-53,84, + 9007199250389768.,5393608454216443.,.499700079882284739636,-53,84, + 9007199254740991.,5199096506725914.,-.222054788253108000697,-53,106, + 4503599627370496.,0.,0.000000000000000000000,-52,0, + 4503599627370497.,-5199096506725911.,-.310544111474552478050,-52,105, + 4503599627370560.,-5199096506725808.,.320302099962984354729,-52,99, + 4503599627376904.,-8133742777107448.,.448046414887221003124,-52,93, + 4503599629142780.,-8787417934569841.,.078420141053162276570,-52,85, + 4503599629167746.,-8911205474281152.,.141550238406117533980,-52,85, + 4503599629183306.,-8988355763389671.,-.499824813890124865633,-52,85, + 4503599629183323.,-8988440053551294.,.496958049326008059603,-52,85, + 4503599629184390.,-8993730500754273.,.285944621497854385382,-52,85, + 4503599630028841.,-6590362640165272.,.204464174188472371555,-52,84, + 4503599630041732.,-6622321007014785.,-.233112557010606343226,-52,84, + 4503599630046286.,-6633610930421184.,.433896897584829863474,-52,84, + 4503599630046296.,-6633635721645176.,-.499854478071147064296,-52,84, + 4503599638087619.,-6642264910044693.,-.498351135080695481849,-52,82, + 4503599638087728.,-6642332466129730.,-.490369134332004247064,-52,82, + 4503599638087731.,-6642334325471520.,-.499257871447225365536,-52,82, + 4503599638089081.,-6643171029277024.,-.141018788662215774966,-52,82, + 4503599638155219.,-6684162078378667.,-.296690482104686639580,-52,82, + 4503599645494007.,-5616300236547643.,.103593444643556463583,-52,81, + 4503599645524735.,-5625822545590156.,-.005399290926056497832,-52,81, + 4503599645526776.,-5626455031686080.,-.496359409976742495865,-52,81, + 4503599645526897.,-5626492528412003.,.499203226201498347558,-52,81, + 4503599645526978.,-5626517629526049.,-.460840702529946024938,-52,81, + 4503599645527002.,-5626525066893174.,-.485791828445966754001,-52,81, + 4503599645527018.,-5626530025137925.,.497636836864519087604,-52,81, + 4503599645528696.,-5627050021056082.,-.211583820117970185699,-52,81, + 4503599651583623.,-7503413143052239.,-.009819052118148219384,-52,81, + 4503599651585299.,-7503932519187812.,-.469119302115728251415,-52,81, + 4503599651585722.,-7504063602782888.,-.499777991904884489145,-52,81, + 4503599651585863.,-7504107297314581.,.497799431871156728519,-52,81, + 4503599651590468.,-7505534342126221.,-.417222934651887976697,-52,81, + 4503599651957600.,-7619304986149182.,.064867713708101580623,-52,81, + 4503599651966936.,-7622198121949036.,.483437349220754750984,-52,81, + 4503599651998834.,-7632083002598406.,-.295345978866536545940,-52,81, + 4503599652000240.,-7632518708354029.,-.496494406469989667980,-52,81, + 4503599652000273.,-7632528934733785.,.482814478699707947765,-52,81, + 4503599652000390.,-7632565191898370.,-.497915135307200546776,-52,81, + 4503599656375245.,-8988290299208120.,.478584234201387406274,-52,81, + 4503599656386892.,-8991899591471045.,-.377261304050952476514,-52,81, + 4503599656387700.,-8992149982829200.,-.490120101566393963710,-52,81, + 4503599656387767.,-8992170745478948.,-.494968136474236898779,-52,81, + 4503599656388015.,-8992247598272046.,.420119363672474470113,-52,81, + 4503599656388035.,-8992253796077941.,.494442267721146473509,-52,81, + 4503599657186129.,-4619787690455364.,-.498557120136939156985,-52,80, + 4503599657186207.,-4619799776176853.,-.499776694762814252317,-52,80, + 4503599657190768.,-4620506480993664.,-.444097903728851261937,-52,80, + 4503599657232269.,-4626936859551446.,-.416290964890950695398,-52,80, + 4503599657232345.,-4626948635382640.,-.483932122345916078351,-52,80, + 4503599657236297.,-4627560978604731.,-.220894346846528844827,-52,80, + 4503599657241275.,-4628332295547939.,-.489174631102025322658,-52,80, + 4503599657241389.,-4628349959294730.,-.489762038774094844662,-52,80, + 4503599657241396.,-4628351043910762.,.483927625218169421664,-52,80, + 4503599664816852.,-5802131186802379.,-.442252070478343632178,-52,80, + 4503599664821498.,-5802851061953234.,-.499103228507541252587,-52,80, + 4503599664821941.,-5802919702653154.,-.489786903997803391947,-52,80, + 4503599664822384.,-5802988343353074.,-.461229207036198718959,-52,80, + 4503599664828359.,-5803914140603686.,-.191633804699808600400,-52,80, + 4503599664885894.,-5812828909610025.,-.203513721515801469209,-52,80, + 4503599669039464.,-6456404421078267.,-.204000067044888061778,-52,80, + 4503599669086867.,-6463749285840286.,-.497495871197183509593,-52,80, + 4503599669086898.,-6463754089139816.,-.467772281764659600096,-52,80, + 4503599669086906.,-6463755328700985.,-.492344447425598983493,-52,80, + 4503599669087031.,-6463774696844252.,.499530469081661238080,-52,80, + 4503599669087234.,-6463806150708915.,-.494400528753000876523,-52,80, + 4503599669090123.,-6464253787236079.,.010176974713477744783,-52,80, + 4503599674687277.,-7331505630129837.,.102597480600395480875,-52,80, + 4503599674710362.,-7335082538815501.,-.497447299305518231701,-52,80, + 4503599674710525.,-7335107794874231.,.499245609303040005097,-52,80, + 4503599674710577.,-7335115852021800.,-.488991399552656099676,-52,80, + 4503599674711203.,-7335212847682931.,-.480422564792914293819,-52,80, + 4503599674714404.,-7335708827093922.,.219845113986072980339,-52,80, + 4503599680960619.,-8303529517657273.,-.193309921747171296749,-52,80, + 4503599680961266.,-8303629767166065.,.180989376562681663904,-52,80, + 4503599680979382.,-8306436753412214.,.324753110716182316325,-52,80, + 4503599681002027.,-8309945486219854.,-.495837349678683919397,-52,80, + 4503599681002251.,-8309980193932325.,-.498576867033638669519,-52,80, + 4503599681002276.,-8309984067560949.,-.494113163754800585387,-52,80, + 4503599681002326.,-8309991814818197.,-.485001921492698864768,-52,80, + 4867368130166671.,-5974679820400456.,-.499981558139365397186,-52,57, + 4867368130185424.,-5974679820671497.,-.499966783336803399315,-52,57, + 4867368130222727.,-5974679821210645.,-.498806652742254395511,-52,57, + 4867368130222738.,-5974679821210804.,-.484088993535332111968,-52,57, + 4867368130222758.,-5974679821211094.,.451761295935037129826,-52,57, + 4867368130222930.,-5974679821213579.,-.499926214447326625759,-52,57, + 5048327701446497.,-8422082060457039.,-.499911246427367508963,-52,57, + 5048327701447484.,-8422082060469487.,-.497986609975355979868,-52,57, + 5048327701447497.,-8422082060469651.,-.453381726148122981446,-52,57, + 5048327701447551.,-8422082060470332.,-.498869131770913149702,-52,57, + 5048327701447618.,-8422082060471177.,-.499751653521966686612,-52,57, + 5048327701452169.,-8422082060528574.,-.499995676045978739411,-52,57, + 5095760958848092.,-4504602359862467.,.499981853204825944172,-52,56, + 5095760958848893.,-4504602359867331.,.499801289037169012221,-52,56, + 5095760958859085.,-4504602359929220.,-.499999073636968734464,-52,56, + 5106532173929591.,-4569726118020166.,.499992576867347534616,-52,56, + 5106532173942368.,-4569726118097080.,-.493616186752643168492,-52,56, + 5106532173942373.,-4569726118097111.,.407380288020237035439,-52,56, + 5106532173942419.,-4569726118097388.,.496547855936455531181,-52,56, + 5106532173944035.,-4569726118107116.,.498608509281492967074,-52,56, + 5106532173945146.,-4569726118113803.,-.499974784156008649445,-52,56, + 5106532173991710.,-4569726118394109.,-.499998601916008419085,-52,56, + 5221791327416850.,-5231509736045259.,-.499989864777743958667,-52,56, + 5221791327427272.,-5231509736102232.,.499857510280392896672,-52,56, + 5221791327429004.,-5231509736111700.,.499064588763245735893,-52,56, + 5221791327429332.,-5231509736113493.,.482748147947630748903,-52,56, + 5221791327429407.,-5231509736113903.,.494261156978886556763,-52,56, + 5221791327429437.,-5231509736114067.,.498866360598831287597,-52,56, + 5221791327432050.,-5231509736128351.,.499979612212985867098,-52,56, + 5221791327457239.,-5231509736266047.,.499997223520817607648,-52,56, + 5241359265433015.,-5337575041185282.,-.499916543920823046171,-52,56, + 5241359265598541.,-5337575042074868.,.499101334904987021886,-52,56, + 5241359265598597.,-5337575042075168.,-.461231491306658341093,-52,56, + 5241359265598629.,-5337575042075340.,-.438564534849551702745,-52,56, + 5241359265599249.,-5337575042078672.,-.499392252543049783115,-52,56, + 5241359265600307.,-5337575042084358.,-.499965998886292236086,-52,56, + 5358638315447308.,-5935875701194726.,-.499992098207476818228,-52,56, + 5358638315493654.,-5935875701418649.,-.499419836273539151729,-52,56, + 5358638315493998.,-5935875701420312.,.447505433522883272767,-52,56, + 5358638315494022.,-5935875701420428.,.490314173296243508582,-52,56, + 5358638315494028.,-5935875701420456.,-.498983641760006348320,-52,56, + 5358638315495429.,-5935875701427226.,.499976547096545041885,-52,56, + 5358638315506922.,-5935875701482754.,-.499987818694493612706,-52,56, + 5361875182249838.,-5951490920679083.,-.491425948863521846435,-52,56, + 5361875182249860.,-5951490920679189.,-.461182726139006701828,-52,56, + 5361875182249898.,-5951490920679372.,-.499853523246017812830,-52,56, + 5361875182250493.,-5951490920682239.,.499906365014701513207,-52,56, + 5361875182254527.,-5951490920701670.,.499959162552747067523,-52,56, + 5361875182258561.,-5951490920721100.,-.499987965823482696929,-52,56, + 5361875182296057.,-5951490920901711.,-.499988765593146404337,-52,56, + 5438257955005054.,-6306218822224957.,-.499982881402074707535,-52,56, + 5438257955007272.,-6306218822234877.,-.491987467769390141858,-52,56, + 5438257955007308.,-6306218822235039.,.498223458872823826420,-52,56, + 5438257955007399.,-6306218822235445.,-.498743365422454766818,-52,56, + 5438257955007708.,-6306218822236827.,-.499432911380036271321,-52,56, + 5438257955008017.,-6306218822238210.,.499877543088550412957,-52,56, + 5438257955012307.,-6306218822257396.,-.499986977054822797677,-52,56, + 5438257955034066.,-6306218822354713.,-.499997855208745300805,-52,56, + 5627653235357357.,-7074505687808167.,-.481061996661057493494,-52,56, + 5627653235357442.,-7074505687808477.,-.485585915739820641532,-52,56, + 5627653235357697.,-7074505687809407.,-.499157672791625390357,-52,56, + 5627653235357714.,-7074505687809470.,.499937543414760143470,-52,56, + 5627653235377607.,-7074505687882021.,-.499994790653465122475,-52,56, + 5648553535546598.,-7149803522281396.,-.499991584204692827822,-52,56, + 5648553535552155.,-7149803522301170.,-.499958751147311281475,-52,56, + 5648553535553525.,-7149803522306046.,.499149597409065168860,-52,56, + 5648553535554073.,-7149803522307996.,.498792939056664923265,-52,56, + 5648553535554107.,-7149803522308116.,-.486630649193382125968,-52,56, + 5648553535574657.,-7149803522381242.,.499995583382617968114,-52,56, + 5679432883829376.,-7257670928169507.,-.499994022941792676810,-52,56, + 5679432883882853.,-7257670928352835.,.461391466942995041973,-52,56, + 5679432883882867.,-7257670928352883.,.467327841103842206224,-52,56, + 5679432883882937.,-7257670928353123.,.497009711920432108034,-52,56, + 5679432883882944.,-7257670928353147.,.499977899003223555599,-52,56, + 5794885835800254.,-7625714243020188.,.499994970564079517088,-52,56, + 5794885835816559.,-7625714243068283.,.499932264805173085496,-52,56, + 5794885835818448.,-7625714243073854.,-.499768275277932597207,-52,56, + 5794885835818588.,-7625714243074267.,-.458983772639035133656,-52,56, + 5794885835818607.,-7625714243074324.,.496551267010988603664,-52,56, + 5794885835819820.,-7625714243077902.,.499919854037372900863,-52,56, + 6190687021007412.,-8482692970139081.,.499997491259255474871,-52,56, + 6190687021023676.,-8482692970161913.,-.499989104960835003348,-52,56, + 6190687021033936.,-8482692970176317.,-.495307244009094121256,-52,56, + 6190687021033941.,-8482692970176325.,.485201860307470437443,-52,56, + 6190687021034040.,-8482692970176464.,.499282125794672147700,-52,56, + 6190687021034399.,-8482692970176968.,.499835816100705638987,-52,56, + 6190687021038093.,-8482692970182154.,.499962117008214034662,-52,56, + 6234082493742912.,-8540110864443573.,-.499998739809702347768,-52,56, + 6234082493747755.,-8540110864449592.,.499991497073990227921,-52,56, + 6234082493771970.,-8540110864479682.,.499943982866292480331,-52,56, + 6234082493773528.,-8540110864481617.,-.499233065608129028545,-52,56, + 6234082493773536.,-8540110864481627.,-.440178775718331776399,-52,56, + 6234082493774002.,-8540110864482207.,.499733610770880808542,-52,56, + 6350411099472431.,-8659843259310045.,-.499999014531322654313,-52,56, + 6350411099485073.,-8659843259320383.,.499985733432776189854,-52,56, + 6350411099497715.,-8659843259330720.,.499971057983415849549,-52,56, + 6350411099499854.,-8659843259332468.,-.498844846920033735057,-52,56, + 6350411099499947.,-8659843259332545.,.457728374980341372988,-52,56, + 6350411099499969.,-8659843259332563.,.468960750058112154693,-52,56, + 6350411099500024.,-8659843259332608.,.497041687760178457893,-52,56, + 6350411099500386.,-8659843259332903.,-.499952867455739743988,-52,56, + 6671477663203808.,-8740514407480606.,.499998876124944683073,-52,56, + 6671477663238613.,-8740514407470066.,-.499531244432374601286,-52,56, + 6671477663238646.,-8740514407470057.,.492912817443260138940,-52,56, + 6671477663238666.,-8740514407470050.,-.451060478387898780407,-52,56, + 6671477663239541.,-8740514407469785.,-.499892169678859258717,-52,56, + 6671477663242718.,-8740514407468824.,.499949814077766752066,-52,56, + 6671477663248144.,-8740514407467181.,.499994779220716972579,-52,56, + 6676648134731249.,-8738903659557127.,-.499964690033334778931,-52,56, + 6676648134731886.,-8738903659556923.,-.499344270182379618555,-52,56, + 6676648134731936.,-8738903659556907.,-.486736701847287311655,-52,56, + 6676648134742512.,-8738903659553520.,-.499983658059105196216,-52,56, + 6676648134753775.,-8738903659549914.,.499997801841894351022,-52,56, + 6863840991780194.,-8620575266355509.,-.499977802223355746501,-52,56, + 6863840991831925.,-8620575266306872.,-.499980903249119341253,-52,56, + 6863840991833898.,-8620575266305018.,.496075673913829716163,-52,56, + 6863840991833931.,-8620575266304986.,-.477634479528278043847,-52,56, + 6863840991833948.,-8620575266304970.,-.494394255542527380765,-52,56, + 6863840991834015.,-8620575266304908.,.498376038998698786816,-52,56, + 6863840991834132.,-8620575266304797.,-.499323595871920880934,-52,56, + 6863840991834968.,-8620575266304011.,-.499980814677809685066,-52,56, + 6932976942232550.,-8547837668187651.,-.499993148711425980863,-52,56, + 6932976942255962.,-8547837668160411.,-.499839873827681782224,-52,56, + 6932976942266139.,-8547837668148571.,.499714744248152584036,-52,56, + 6932976942266824.,-8547837668147773.,-.498743049318910870030,-52,56, + 6932976942266879.,-8547837668147710.,.494081507467279964439,-52,56, + 6932976942267668.,-8547837668146791.,-.499762576840620701591,-52,56, + 6932976942309061.,-8547837668098630.,-.499998282198806497316,-52,56, + 6997291737947254.,-8466397669949989.,.499996446739101976508,-52,56, + 6997291737955973.,-8466397669938055.,-.499936878676004056621,-52,56, + 6997291737957560.,-8466397669935883.,-.499580640737721001760,-52,56, + 6997291737957579.,-8466397669935857.,-.495795657374407520113,-52,56, + 6997291737957674.,-8466397669935727.,-.476870740540675377203,-52,56, + 6997291737957682.,-8466397669935717.,.472091357720313307534,-52,56, + 7143909178992168.,-8231973393177179.,-.499962364360252278319,-52,56, + 7143909179126470.,-8231973392931801.,-.499968421931593911383,-52,56, + 7143909179128835.,-8231973392927480.,-.499759544772112460108,-52,56, + 7143909179128968.,-8231973392927238.,.499406536358540990361,-52,56, + 7143909179128985.,-8231973392927206.,-.440549678831352564937,-52,56, + 7143909179130084.,-8231973392925199.,.499927941078229939535,-52,56, + 7408864542568709.,-7641335151856098.,.499996859077542408444,-52,56, + 7408864542568773.,-7641335151855930.,.499919416293091588647,-52,56, + 7408864542572837.,-7641335151845262.,.495001824149134636877,-52,56, + 7408864542578733.,-7641335151829785.,.487867529771954816505,-52,56, + 7408864542578877.,-7641335151829407.,.487693287768960293301,-52,56, + 7417783623950964.,-7617805660286469.,-.499916677561886048926,-52,56, + 7417783623952948.,-7617805660281210.,.497709948036102121705,-52,56, + 7417783623952991.,-7617805660281096.,.499674638134185484865,-52,56, + 7417783623956053.,-7617805660272977.,-.499956020457771879777,-52,56, + 7417783623961142.,-7617805660259485.,-.499995287309441429837,-52,56, + 7602884003726940.,-7077300784553045.,.499997767106356032821,-52,56, + 7602884003734158.,-7077300784530047.,-.499670568640137462357,-52,56, + 7602884003734201.,-7077300784529910.,-.498975879700369979799,-52,56, + 7602884003735593.,-7077300784525475.,-.499743155833283960547,-52,56, + 7602884003739898.,-7077300784511759.,-.499960882277558848408,-52,56, + 8248300471512757.,-8898622854491112.,-.483508535677589106607,-52,57, + 8248300471512764.,-8898622854491044.,.495759024928585951659,-52,57, + 8248300471512956.,-8898622854489152.,.498526401652948539936,-52,57, + 8248300471513052.,-8898622854488206.,.499910090085933479469,-52,57, + 8248300471517393.,-8898622854445429.,.499978800740427579793,-52,57, + 8248300471518840.,-8898622854431169.,-.499998274259968200509,-52,57, + 8270159510114320.,-8681997664862746.,-.499996346366044072526,-52,57, + 8270159510157609.,-8681997664431330.,-.499991221076317815138,-52,57, + 8270159510157902.,-8681997664428410.,-.476705792617490362549,-52,57, + 8270159510157903.,-8681997664428401.,.489243987002573409347,-52,57, + 8270159510157932.,-8681997664428111.,-.498212404013356730055,-52,57, + 8270159510158167.,-8681997664425770.,.499985806877966056441,-52,57, + 8581012629552255.,-5341274587403238.,-.499991323421872539126,-52,57, + 8581012629589795.,-5341274586970933.,-.499970384310411062779,-52,57, + 8581012629616954.,-5341274586658175.,.463687829258890594528,-52,57, + 8581012629616956.,-5341274586658152.,.495387351333350118142,-52,57, + 8581012629617051.,-5341274586657057.,-.498885350107379762050,-52,57, + 8581012629617398.,-5341274586653061.,-.499018269733141344475,-52,57, + 8581012629619827.,-5341274586625089.,-.499948690691410967556,-52,57, + 8772953774077445.,-6084036693191956.,-.499989092071067325821,-52,58, + 8772953774111563.,-6084036692343251.,-.499992264379350099154,-52,58, + 8772953774118041.,-6084036692182108.,.499949758892931709704,-52,58, + 8772953774119769.,-6084036692139122.,-.499756901909009248513,-52,58, + 8772953774119817.,-6084036692137928.,-.471970975416373087838,-52,58, + 8772953774119833.,-6084036692137530.,-.462708999913977236234,-52,58, + 9007199188962818.,-7465184997866566.,.407861727697707924381,-52,80, + 9007199188973011.,-7464028191205503.,-.414708100532245243711,-52,80, + 9007199188973551.,-7463966906441746.,-.452940244523705501711,-52,80, + 9007199188975104.,-7463790656000793.,-.498566228418502499629,-52,80, + 9007199188975116.,-7463789294117154.,-.454127682650501147148,-52,80, + 9007199188975171.,-7463783052150476.,.499619813117514152528,-52,80, + 9007199189043282.,-7456053114105473.,-.195048499719524044938,-52,80, + 9007199195432056.,-6730989214624843.,.347302488431996902817,-52,80, + 9007199195446208.,-6729383099849680.,.299288380499818473601,-52,80, + 9007199195446278.,-6729375155528435.,.471520915642207114853,-52,80, + 9007199195446290.,-6729373793644792.,-.498934593900204592256,-52,80, + 9007199195446493.,-6729350755113181.,-.498301416823879447999,-52,80, + 9007199195447713.,-6729212296942908.,-.456202009034916081355,-52,80, + 9007199195464590.,-6727296921090691.,-.002601474560925404255,-52,80, + 9007199197171615.,-6533566135697192.,-.128362141036021678161,-52,80, + 9007199197192337.,-6531214389626631.,-.499750693663222404305,-52,80, + 9007199197192488.,-6531197252590792.,-.492403272890547022084,-52,80, + 9007199197192495.,-6531196458158668.,.494713560816506774096,-52,80, + 9007199197193113.,-6531126321151061.,-.492404903838155766959,-52,80, + 9007199203226042.,-5846447376827591.,.311827495318413882411,-52,80, + 9007199203243854.,-5844425887536272.,.159523735062286193856,-52,80, + 9007199203255428.,-5843112350760062.,-.499402729757948577956,-52,80, + 9007199203255580.,-5843095100233884.,-.495571518323386232144,-52,80, + 9007199203255621.,-5843090447131429.,.413508729471067906007,-52,80, + 9007199203255651.,-5843087042422315.,.493364484665963164561,-52,80, + 9007199203255879.,-5843061166633047.,-.498601147212776094864,-52,80, + 9007199203261666.,-5842404398244941.,.203314959225349833903,-52,80, + 9007199218995373.,-8113562412222384.,-.353828416629282704861,-52,81, + 9007199218997119.,-8113166104079392.,-.498897003713801198521,-52,81, + 9007199218997325.,-8113119346073976.,-.491391353605233361397,-52,81, + 9007199218997363.,-8113110720810841.,-.499359128505307717960,-52,81, + 9007199221879290.,-7458969175469507.,-.457391630529367851538,-52,81, + 9007199221880337.,-7458731526771846.,.480744417057604246372,-52,81, + 9007199221880338.,-7458731299791236.,-.482025099907010204025,-52,81, + 9007199221880418.,-7458713141342514.,.496662641032380713137,-52,81, + 9007199221880445.,-7458707012866069.,-.497919190160514338175,-52,81, + 9007199221881009.,-7458578995802572.,-.483037445150788097596,-52,81, + 9007199221892854.,-7455890410488520.,-.483015449870330268150,-52,81, + 9007199221906418.,-7452811645507519.,-.363703429697858108940,-52,81, + 9007199222028540.,-7425092319569857.,.468868117420531170961,-52,81, + 9007199222082354.,-7412877585074403.,.476756887767780566800,-52,81, + 9007199222085674.,-7412124009452347.,.070118158997761855268,-52,81, + 9007199222088994.,-7411370433830290.,-.489094955090325139452,-52,81, + 9007199222089519.,-7411251269010538.,.489531188749749377590,-52,81, + 9007199222089538.,-7411246956378965.,-.497511681089824451140,-52,81, + 9007199222089613.,-7411229932833286.,-.498725684098222665197,-52,81, + 9007199223120906.,-7177146419539976.,-.343148782509671471967,-52,81, + 9007199223122902.,-7176693366244148.,.495637964161423107381,-52,81, + 9007199223122917.,-7176689961535011.,.487068982408155700716,-52,81, + 9007199223122925.,-7176688145690137.,-.450827401370752855240,-52,81, + 9007199223123128.,-7176642068626483.,-.498301593575133574590,-52,81, + 9007199225105258.,-6726736993695100.,.249348576668074599025,-52,81, + 9007199225151813.,-6716169911429745.,-.380400554902806627446,-52,81, + 9007199225151903.,-6716149483174909.,-.392724625131891679981,-52,81, + 9007199225153253.,-6715843059352370.,.497143753961897679226,-52,81, + 9007199225153568.,-6715771560460444.,.491607753901787381568,-52,81, + 9007199225153575.,-6715769971596178.,-.486206399936522301965,-52,81, + 9007199225584755.,-6617900472475851.,.316912439109195121431,-52,81, + 9007199225609049.,-6612386205552959.,.498745405730885380358,-52,81, + 9007199225609120.,-6612370089929697.,.495965119253094429202,-52,81, + 9007199225609367.,-6612314025719193.,-.496603245951228399645,-52,81, + 9007199225611701.,-6611784252977031.,-.243390748134690820186,-52,81, + 9007199225612090.,-6611695957520004.,-.160470081207386311608,-52,81, + 9007199229535856.,-5721077159402842.,.310152827743398597662,-52,81, + 9007199229544329.,-5719153952697480.,.499303808954615040116,-52,81, + 9007199229544404.,-5719136929151758.,.483606859088212024210,-52,81, + 9007199229544412.,-5719135113306881.,.495291375970347987159,-52,81, + 9007199229544843.,-5719037284664131.,-.492931881330224934931,-52,81, + 9007199229545100.,-5718978950647457.,-.481432744549555643209,-52,81, + 9007199229584986.,-5709925602051833.,-.197697552500396312990,-52,81, + 9007199231884133.,-5188063814160610.,-.135288806346297419925,-52,81, + 9007199231910441.,-5182092408277798.,-.242083033092535945978,-52,81, + 9007199231918099.,-5180354190767884.,.480853994667047593003,-52,81, + 9007199231918104.,-5180353055864834.,-.474370095256842569220,-52,81, + 9007199231918146.,-5180343522679222.,-.498176567953077809611,-52,81, + 9007199231918235.,-5180323321404950.,.499443614770518283396,-52,81, + 9007199231922590.,-5179334820849231.,.273034206385854876450,-52,81, + 9007199231923595.,-5179106705336372.,-.341370553096560460262,-52,81, + 9007199234847053.,-4515538425415728.,-.442538104273052522148,-52,81, + 9007199234848163.,-4515286476938591.,.499357427543997859353,-52,81, + 9007199234848280.,-4515259920207216.,-.495843131072142056627,-52,81, + 9007199234848572.,-4515193641869086.,-.496368115501830497661,-52,81, + 9007199234850646.,-4514722884083875.,-.284066142764463811756,-52,81, + 9007199234890724.,-4505625955194854.,-.235617404605329657842,-52,81, + 9007199239849393.,-6760208479311252.,-.165059780652195751229,-52,82, + 9007199239861596.,-6754668790533361.,-.197211298137911706987,-52,82, + 9007199239869884.,-6750906359935039.,-.499740850490731448806,-52,82, + 9007199239869903.,-6750897734671844.,.471883544506226912018,-52,82, + 9007199239871189.,-6750313940541842.,-.372302556766126290840,-52,82, + 9007199239873799.,-6749129101755447.,-.331832811453448413938,-52,82, + 9007199242819483.,-5411902796235911.,-.182239751239135612058,-52,82, + 9007199242887571.,-5380993484600078.,-.450748328369432738151,-52,82, + 9007199242893688.,-5378216603809355.,-.196510109701665588602,-52,82, + 9007199242895460.,-5377412184525201.,-.496851625472347420533,-52,82, + 9007199242895545.,-5377373597821391.,.499748265336860773004,-52,82, + 9007199242895630.,-5377335011117580.,.497459102954087159992,-52,82, + 9007199242895666.,-5377318668513612.,-.491410820193791546388,-52,82, + 9007199242895679.,-5377312767017736.,.484879570365363505164,-52,82, + 9007199242898919.,-5375841932660704.,.309108439073200955777,-52,82, + 9007199245003806.,-8840609718176355.,.492397449208844826733,-52,83, + 9007199245003810.,-8840606086486581.,-.467407388518521347729,-52,83, + 9007199245003856.,-8840564322054192.,.495190635424060702612,-52,83, + 9007199245003956.,-8840473529809865.,-.496916528184900670018,-52,83, + 9007199245004752.,-8839750823545030.,-.364422417170358447753,-52,83, + 9007199251495418.,-5893458967920645.,-.497792543345515404216,-52,84, + 9007199251495422.,-5893451704541083.,-.446555160153163368234,-52,84, + 9007199251495535.,-5893246514068455.,-.495033250303132774891,-52,84, + 9007199251495730.,-5892892424314805.,-.471724392934284412491,-52,84, + 9007199251514421.,-5858952467466120.,.447689356035325855707,-52,84, + 9007199254722216.,-8728141747620088.,.077590992430427307664,-52,92, + 9007199254740804.,-5593150911146969.,-.264222217120341264404,-52,98, + 9007199254740990.,-7616205496030156.,.490692624038463458337,-52,105, + 9007199254740991.,-7616205496030157.,.200824490342010405930,-52,106, + 4503599627370496.,0.,0.000000000000000000000,-51,0, + 4503599627370497.,7616205496030161.,-.331220089252651966558,-51,105, + 4503599630225345.,5183962980547302.,.097826087442354933439,-51,83, + 4503599630233746.,5199217893518816.,.342658892347554605424,-51,83, + 4503599630238097.,5207118634661460.,-.499374123137251844746,-51,83, + 4503599630238124.,5207167662473652.,.486513661484982895973,-51,83, + 4503599630238125.,5207169478318549.,-.476954754524065544249,-51,83, + 4503599632550606.,4703138151319532.,.097009877995752232595,-51,82, + 4503599632603920.,4751543128789881.,-.034895337838683472361,-51,82, + 4503599632668824.,4810470927451796.,-.279763909576468468164,-51,82, + 4503599632669657.,4811227226852240.,.499754493234704255748,-51,82, + 4503599632669661.,4811230858542039.,-.445052547581230225610,-51,82, + 4503599635993635.,7829141478140043.,-.205920399330876238013,-51,82, + 4503599635996077.,7831358624766750.,-.166721235993820828315,-51,82, + 4503599635997888.,7833002872326526.,-.477855147735852794839,-51,82, + 4503599635997929.,7833040097147040.,-.482530667102204068870,-51,82, + 4503599635998134.,7833226221249610.,-.490399600321082247379,-51,82, + 4503599635998150.,7833240748008834.,.485683416006215619811,-51,82, + 4503599635998159.,7833248919310899.,-.465200693391120983001,-51,82, + 4503599636013130.,7846841426333287.,.426640343278605697904,-51,82, + 4503599636032625.,7864541374526766.,-.185274936948738607228,-51,82, + 4503599638891344.,5230018269952315.,-.452099392639329963327,-51,81, + 4503599638973383.,5267260795028150.,-.349006590492830144048,-51,81, + 4503599638974070.,5267572666390890.,-.485744508196233143760,-51,81, + 4503599638974379.,5267712940409938.,.495709576791946103973,-51,81, + 4503599638974402.,5267723381518152.,.498739526385508935378,-51,81, + 4503599640397733.,5913860468583801.,-.075191191030418323792,-51,81, + 4503599640398276.,5914106969530134.,.461912725427573066830,-51,81, + 4503599640400448.,5915092973315470.,-.482926823494817217731,-51,81, + 4503599640400753.,5915231431489746.,-.495754732931985862233,-51,81, + 4503599640400768.,5915238240908153.,-.479254102637308757409,-51,81, + 4503599640400775.,5915241418636742.,.461803204530084849248,-51,81, + 4503599640400991.,5915339474261804.,-.492450514414072254249,-51,81, + 4503599640410341.,5919584011735525.,-.435156865746883315252,-51,81, + 4503599640448708.,5937001142137331.,-.244933821095783184839,-51,81, + 4503599641307378.,6326804029166889.,-.487032237194973891536,-51,81, + 4503599641307407.,6326817194042483.,.497176536410661242951,-51,81, + 4503599641307528.,6326872123351001.,-.496954655788096449937,-51,81, + 4503599641321118.,6333041456431576.,-.484047704831217999158,-51,81, + 4503599641339238.,6341267233872431.,-.449501826387278597615,-51,81, + 4503599642470651.,6854884868271650.,-.333517876046824168210,-51,81, + 4503599642503897.,6869977263250294.,-.252635960190884132215,-51,81, + 4503599642504886.,6870426230904570.,-.487678050229266379089,-51,81, + 4503599642505060.,6870505220158204.,-.499936448937263106899,-51,81, + 4503599642505147.,6870544714785020.,.497425876832870825710,-51,81, + 4503599642505170.,6870555155893259.,.474129078495889651399,-51,81, + 4503599642505179.,6870559241544310.,-.491464515006436258937,-51,81, + 4503599642507940.,6871812628494216.,-.315914671979203890330,-51,81, + 4503599651765847.,5537271735044461.,-.055394873696573506007,-51,80, + 4503599651768246.,5537816261540601.,.498326739303572299239,-51,80, + 4503599651768484.,5537870282927047.,-.496445440395940231247,-51,80, + 4503599651771359.,5538522852196078.,.242186173902592518545,-51,80, + 4503599651825362.,5550780486365191.,.255074720511860663856,-51,80, + 4503599652204562.,5636851535707074.,-.185237700733574084386,-51,80, + 4503599652205489.,5637061946737533.,.198330116034084961316,-51,80, + 4503599652219394.,5640218112194440.,-.192061813093222137415,-51,80, + 4503599652230373.,5642710132370756.,-.497577854686094566253,-51,80, + 4503599652230399.,5642716033866756.,-.456629157561384886762,-51,80, + 4503599652230417.,5642720119517832.,.494857754173008893979,-51,80, + 4503599652230518.,5642743044559987.,-.498652750313563396983,-51,80, + 4503599653639927.,5962651566863572.,-.499938872906588125307,-51,80, + 4503599653639942.,5962654971572806.,-.456011066888873430347,-51,80, + 4503599653642521.,5963240354580446.,.010978817237791962177,-51,80, + 4503599653643818.,5963534748438884.,-.345566897781228597778,-51,80, + 4503599654913457.,6251718190377061.,.078205087869851847026,-51,80, + 4503599654934019.,6256385365799147.,.496955080256966987256,-51,80, + 4503599654934024.,6256386500702227.,-.493480650740253452740,-51,80, + 4503599654934039.,6256389905411464.,-.464764779092516855789,-51,80, + 4503599654934125.,6256409425744423.,-.499459316786126018124,-51,80, + 4503599656141403.,6530438129740601.,-.282747597321049477022,-51,80, + 4503599656142717.,6530736382270009.,-.489619684222263240421,-51,80, + 4503599656143046.,6530811058892668.,.494053700969548130353,-51,80, + 4503599656143061.,6530814463601908.,.311335217563038090260,-51,80, + 4503599656143128.,6530829671303179.,.495615048776658322422,-51,80, + 4503599656143292.,6530866896124202.,-.498160522903933026565,-51,80, + 4503599656143374.,6530885508534713.,-.493497442391634614805,-51,80, + 6755399441055743.,6243314768165356.,-.482256173060009587762,-51,53, + 6755399441055745.,6243314768165363.,-.099981492272272472614,-51,53, + 6755399441055756.,6243314768165404.,-.497470747939668178916,-51,53, + 6755399441055824.,6243314768165654.,.499868398845588165215,-51,53, + 6755399441061082.,6243314768185063.,-.499995800200800506052,-51,53, + 6755399441075739.,6243314768239164.,-.499997517025712152136,-51,53, + 9007199254666070.,8069367277764804.,.499997888000017978952,-51,52, + 9007199254740991.,8069367277953024.,-.316329661669870523720,-51,52, + 4503599627370497.,8069367277953031.,.220376348920932690769,-50,52, + 4503599627370507.,8069367277953081.,.465083086193012100344,-50,52, + 4503599627370508.,8069367277953086.,.489553759920225587180,-50,52, + 4503599627370549.,8069367277953292.,.492851382736846729691,-50,52, + 4503599627370631.,8069367277953704.,.499446628375174081890,-50,52, + 4503599627371244.,8069367277956784.,.499969623422830300816,-50,52, + 4503599627377006.,8069367277985735.,.499991660644851082960,-50,52, + 5629499534201416.,7156341023023938.,-.499989203394216394352,-50,51, + 5629499534212940.,7156341023058651.,-.499967214178006717843,-50,51, + 5629499534213103.,7156341023059141.,.494392694582635194619,-50,51, + 5629499534213104.,7156341023059145.,-.493371968553770346879,-50,51, + 5629499534213110.,7156341023059163.,-.419959947372195339744,-50,51, + 5629499534213119.,7156341023059190.,-.309841915599806291514,-50,51, + 5629499534213121.,7156341023059196.,-.285371241872604400607,-50,51, + 5629499534213267.,7156341023059636.,-.499012059782618787482,-50,51, + 5629499534245387.,7156341023156389.,-.499991796259368205180,-50,51, + 6221883346153833.,9007199254590639.,.000004331578510082047,-50,51, + 6221883346197796.,9007199254732753.,.000013806578567803736,-50,51, + 6221883346199748.,9007199254739063.,-.000031249736531625043,-50,51, + 6221883346200337.,9007199254740967.,-.009266156322093906854,-50,51, + 6221883346200344.,9007199254740990.,-.381192547401323302373,-50,51, + 6221883346200345.,4503599627370496.,.425694698365108382251,-50,50, + 6221883346200350.,4503599627370505.,-.492850441306038808508,-50,50, + 6221883346200595.,4503599627370900.,.498437714813143029324,-50,50, + 6221883346200681.,4503599627371039.,.499461312473811770310,-50,50, + 6755399441031747.,5390236507167195.,.499991830200789360886,-50,50, + 6755399441055743.,5390236507208135.,.499563473314952414052,-50,50, + 6755399441055745.,5390236507208139.,-.088201189821446640494,-50,50, + 6755399441056495.,5390236507209419.,-.499949865925676802947,-50,50, + 6755399441087242.,5390236507261877.,-.499998513512592404075,-50,50, + 7881299347880204.,7407578326662376.,.499994854485313119702,-50,50, + 7881299347897411.,7407578326694602.,-.499951128625417330553,-50,50, + 7881299347898367.,7407578326696392.,-.118126774553281691028,-50,50, + 7881299347898369.,7407578326696396.,-.372558104356347412241,-50,50, + 7881299347898370.,7407578326696398.,-.499773769257880068284,-50,50, + 7881299347902827.,7407578326704745.,-.499992234034084648570,-50,50, + 8711254331067231.,9007199254584308.,.499985486498410550531,-50,50, + 8711254331141806.,9007199254731968.,.499981359234759788042,-50,50, + 8711254331146361.,9007199254740987.,.491600304552969341198,-50,50, + 8711254331146363.,9007199254740991.,.451640532410967104194,-50,50, + 8711254331146364.,4503599627370497.,-.284169676830016915256,-50,49, + 8711254331146711.,4503599627370840.,.249320089855020000016,-50,49, + 8711254331146761.,4503599627370890.,-.250177061918862298205,-50,49, + 8711254331148763.,4503599627372872.,-.250043018819267053909,-50,49, + 9007199254667432.,4799239191046808.,.499997858047173567372,-50,49, + 9007199254690192.,4799239191069747.,-.499983090785351081854,-50,49, + 9007199254735712.,4799239191115623.,-.499944896567476679667,-50,49, + 9007199254740954.,4799239191120905.,.496368824262215749402,-50,49, + 9007199254740966.,4799239191120918.,-.409782308004146975269,-50,49, + 9007199254740991.,4799239191120943.,-.214263833559041973155,-50,49, + 4503599627370497.,4799239191120946.,-.190801616625626889663,-49,49, + 4503599627370669.,4799239191121292.,.499532591742831483329,-49,49, + 4503599627372587.,4799239191125158.,.499887311116285459868,-49,49, + 5066549580783943.,5969860710135112.,.499998009877482841064,-49,49, + 5066549580790584.,5969860710149329.,-.499946893216407194468,-49,49, + 5066549580791551.,5969860710151399.,-.499637710291013981066,-49,49, + 5066549580791615.,5969860710151536.,-.498583121134980105843,-49,49, + 5066549580791807.,5969860710151947.,-.495419353661748405544,-49,49, + 5066549580791809.,5969860710151951.,-.214136397750528412471,-49,49, + 5629499534204394.,7206788183599886.,.499996208079432332730,-49,49, + 5629499534209244.,7206788183610808.,-.499946824032170991266,-49,49, + 5629499534212525.,7206788183618196.,-.499702097490429091591,-49,49, + 5629499534212954.,7206788183619162.,-.497841387897568227631,-49,49, + 5629499534213097.,7206788183619484.,-.497221151358974330705,-49,49, + 5629499534213101.,7206788183619493.,-.490210795092105592402,-49,49, + 5629499534213119.,7206788183619533.,.041335808108840718923,-49,49, + 5629499534213121.,7206788183619538.,-.455159013757717065782,-49,49, + 5629499534214094.,7206788183621729.,-.499889851749466942040,-49,49, + 6192449487620669.,8503028354436774.,-.499997623580568628745,-49,49, + 6192449487625519.,8503028354448180.,-.499940659279103130104,-49,49, + 6192449487634423.,8503028354469120.,-.494887615909127436688,-49,49, + 6192449487634431.,8503028354469138.,.319133096624634662517,-49,49, + 6192449487634433.,8503028354469143.,.022638274758076877812,-49,49, + 6192449487634440.,8503028354469159.,.484906398225129956400,-49,49, + 6192449487634477.,8503028354469246.,.499752193693976692264,-49,49, + 6192449487635219.,8503028354470992.,-.499826718746780625795,-49,49, + 6755399441054211.,4926461693298211.,.499979882804944053578,-49,48, + 6755399441055458.,4926461693299734.,.499537347636198108995,-49,48, + 6755399441055711.,4926461693300043.,.496239864573303566999,-49,48, + 6755399441055729.,4926461693300065.,.480194984355578373998,-49,48, + 6755399441055743.,4926461693300083.,-.421173255813746153483,-49,48, + 6755399441055745.,4926461693300085.,.021488424162065863255,-49,48, + 6755399441055747.,4926461693300087.,.464150104137878188731,-49,48, + 6755399441055833.,4926461693300192.,.498602343098100249841,-49,48, + 6755399441056330.,4926461693300800.,-.499970182899666877728,-49,48, + 6755399441115165.,4926461693372657.,-.499999358199501535692,-49,48, + 7318349394474870.,5625900734674555.,-.499870321373237095111,-49,48, + 7318349394476505.,5625900734676620.,-.498946941305812568629,-49,48, + 7318349394477055.,5625900734677314.,.149681718698378402092,-49,48, + 7318349394477057.,5625900734677317.,-.324323267992476247836,-49,48, + 7318349394477060.,5625900734677320.,.464669251971242309895,-49,48, + 7318349394477064.,5625900734677326.,-.483340721410465285567,-49,48, + 7318349394477140.,5625900734677422.,-.495530215662693709290,-49,48, + 7318349394477159.,5625900734677446.,-.498577589225686722863,-49,48, + 7318349394480121.,5625900734681187.,-.499962878048227660146,-49,48, + 7318349394610069.,5625900734845311.,-.499967501743929046604,-49,48, + 7881299347898348.,6347869795332788.,-.492221717406230811045,-49,48, + 7881299347898367.,6347869795332812.,.235500139799867664554,-49,48, + 7881299347898368.,6347869795332814.,-.463040815084021231752,-49,48, + 7881299347898369.,6347869795332815.,-.161581769967910062298,-49,48, + 7881299347898411.,6347869795332869.,.499698124908818436959,-49,48, + 7881299347899028.,6347869795333672.,.499928961563651646301,-49,48, + 7881299347903483.,6347869795339470.,.499974954684701857525,-49,48, + 7881299347907938.,6347869795345269.,-.499979050889088339133,-49,48, + 7881299347972912.,6347869795429830.,-.499981496984919738542,-49,48, + 8444249301280712.,7090698395672247.,.499995031552373575787,-49,48, + 8444249301319514.,7090698395724132.,.499577866123213379370,-49,48, + 8444249301319679.,7090698395724353.,.133177453137850182578,-49,48, + 8444249301319680.,7090698395724354.,.470350783968247002824,-49,48, + 8444249301319681.,7090698395724356.,-.192475885201356115702,-49,48, + 8444249301319686.,7090698395724362.,.493390768950629210114,-49,48, + 8444249301319689.,7090698395724367.,-.495089238558178859644,-49,48, + 8444249301319775.,7090698395724482.,-.498182787143775867598,-49,48, + 8444249301320469.,7090698395725410.,-.499891190829579360557,-49,48, + 8444249301324028.,7090698395730168.,.499993235112529066980,-49,48, + 9007199254725546.,7852946762989718.,-.499996206175901954269,-49,48, + 9007199254739678.,7852946763009086.,-.499818251124624646733,-49,48, + 9007199254740991.,7852946763010885.,-.024568204196344196700,-49,48, + 4503599627370497.,7852946763010889.,.086951788294846441803,-48,48, + 4503599627370499.,7852946763010895.,-.431021555050231904912,-48,48, + 4503599627370507.,7852946763010916.,.497085071569463873347,-48,48, + 4503599627370646.,7852946763011297.,.497937709089018906258,-48,48, + 4503599627370924.,7852946763012059.,.499642984141409915242,-48,48, + 4503599627372148.,7852946763015414.,.499956857244571531353,-48,48, + 4503599627385056.,7852946763050795.,.499998932077178788389,-48,48, + 4785074604081110.,8633361109031438.,.499488816130972664630,-48,48, + 4785074604081151.,8633361109031553.,.443535277556658025471,-48,48, + 4785074604081153.,8633361109031559.,.050561934211578762244,-48,48, + 4785074604081156.,8633361109031567.,.461101919193961481780,-48,48, + 4785074604081166.,8633361109031595.,.496235202468584538162,-48,48, + 4785074604082021.,8633361109033993.,-.499869077471547323169,-48,48, + 4785074604088169.,8633361109051229.,-.499926515027201983828,-48,48, + 4785074604095854.,8633361109072774.,-.499998300530513511835,-48,48, + 5066549580791717.,4715419884532920.,-.499766391129610153963,-48,47, + 5066549580791807.,4715419884533048.,.305392207135098067089,-48,47, + 5066549580791809.,4715419884533051.,.167729064874323141358,-48,47, + 5066549580791812.,4715419884533055.,.461234351483161513850,-48,47, + 5066549580791826.,4715419884533075.,.497592355657752661425,-48,47, + 5066549580792102.,4715419884533471.,-.499921276324817830463,-48,47, + 5066549580792487.,4715419884534021.,.499923838495016146055,-48,47, + 5066549580831103.,4715419884589287.,.499973145775694494627,-48,47, + 5066549580850411.,4715419884616920.,.499997856162646832094,-48,47, + 5348024557491908.,5122203546137130.,-.499991392039065118831,-48,47, + 5348024557501018.,5122203546150420.,.499951160438691509010,-48,47, + 5348024557502443.,5122203546152499.,.498295632869551709987,-48,47, + 5348024557502463.,5122203546152529.,-.322780234182663110872,-48,47, + 5348024557502465.,5122203546152532.,-.404887820887882481047,-48,47, + 5348024557502467.,5122203546152535.,-.486995407593101467239,-48,47, + 5348024557502650.,5122203546152802.,-.499839591119013732618,-48,47, + 5348024557506389.,5122203546158257.,-.499972935788848140103,-48,47, + 5348024557544461.,5122203546213802.,-.499993372427899579522,-48,47, + 5629499534213115.,5536596492695933.,.487688479793216742594,-48,47, + 5629499534213117.,5536596492695936.,.458212472035365064869,-48,47, + 5629499534213119.,5536596492695939.,.428736464277513751445,-48,47, + 5629499534213121.,5536596492695942.,.399260456519662802322,-48,47, + 5629499534213148.,5536596492695983.,-.498665648211289354864,-48,47, + 5629499534213216.,5536596492696083.,.499150088022162348331,-48,47, + 5629499534213657.,5536596492696738.,.499690377428740035164,-48,47, + 5629499534214098.,5536596492697394.,-.499769333146969867060,-48,47, + 5629499534225090.,5536596492713720.,-.499907963814668441365,-48,47, + 5629499534232418.,5536596492724603.,.499999621853579784067,-48,47, + 5910974510923679.,5958208328660780.,-.499327072976693135695,-48,47, + 5910974510923728.,5958208328660854.,-.496489263044349157855,-48,47, + 5910974510923775.,5958208328660924.,.485824554646053778266,-48,47, + 5910974510923777.,5958208328660928.,-.493651453111797170856,-48,47, + 5910974510924020.,5958208328661295.,-.499986395688108600218,-48,47, + 5910974510993792.,5958208328766669.,-.499992823727614063077,-48,47, + 6192449487603334.,6386686769739855.,-.499999895639424176425,-48,47, + 6192449487630879.,6386686769782111.,-.499983446730597268008,-48,47, + 6192449487632053.,6386686769783911.,.499980951504205676586,-48,47, + 6192449487634401.,6386686769787513.,.499909748315374676094,-48,47, + 6192449487634416.,6386686769787537.,-.489017452725679418213,-48,47, + 6192449487634431.,6386686769787560.,-.477944653766714926088,-48,47, + 6192449487634433.,6386686769787563.,-.409801613905518256163,-48,47, + 6473924464322992.,6821712321038503.,-.499999543981636376066,-48,47, + 6473924464344084.,6821712321071339.,-.499864823395046109521,-48,47, + 6473924464345070.,6821712321072874.,-.496255262773950437337,-48,47, + 6473924464345079.,6821712321072888.,-.485066128853120467970,-48,47, + 6473924464345087.,6821712321072900.,-.030675787590155127536,-48,47, + 6473924464345088.,6821712321072902.,-.473876994932284104769,-48,47, + 6473924464345089.,6821712321072903.,.082921797725586996934,-48,47, + 6473924464345246.,6821712321073148.,-.499667754987670989889,-48,47, + 6473924464348195.,6821712321077738.,.499971793454109579717,-48,47, + 6473924464353468.,6821712321085948.,-.499994519201158718927,-48,47, + 6755399441040388.,7262993901751188.,.499993795177196569110,-48,47, + 6755399441055680.,7262993901775328.,-.498086280873643424714,-48,47, + 6755399441055737.,7262993901775417.,.478575335407462885747,-48,47, + 6755399441055743.,7262993901775427.,-.050197126036616902546,-48,47, + 6755399441055744.,7262993901775429.,-.471659202943963269405,-48,47, + 6755399441055745.,7262993901775430.,.106878720148690439315,-48,47, + 6755399441055941.,7262993901775740.,-.499688353689723537811,-48,47, + 6755399441057227.,7262993901777770.,-.499919256455460068064,-48,47, + 6755399441057870.,7262993901778784.,.499965292208543296896,-48,47, + 7036874417726594.,7710265215652964.,-.499992849519418792985,-48,47, + 7036874417766037.,7710265215716048.,-.499525696743482412945,-48,47, + 7036874417766354.,7710265215716555.,-.498837409710301613000,-48,47, + 7036874417766359.,7710265215716562.,.498018872419617640810,-48,47, + 7036874417766389.,7710265215716610.,.479156565199171223180,-48,47, + 7036874417766399.,7710265215716626.,.472869129459036916164,-48,47, + 7036874417766401.,7710265215716630.,-.328388357688989075308,-48,47, + 7036874417767310.,7710265215718084.,-.499916266436785970197,-48,47, + 7036874417770173.,7710265215722662.,.499990881649988333490,-48,47, + 7318349394443729.,8163281714582294.,.499998623475771422552,-48,47, + 7318349394475952.,8163281714634475.,.499994399416531636102,-48,47, + 7318349394477055.,8163281714636262.,-.333509762762249190864,-48,47, + 7318349394477057.,8163281714636265.,-.094767249910275182336,-48,47, + 7318349394477058.,8163281714636267.,-.475395993484288073594,-48,47, + 7318349394477066.,8163281714636279.,.479574057923611303822,-48,47, + 7318349394477129.,8163281714636381.,.499963212760974677957,-48,47, + 7599824371187697.,8621818038216572.,-.493390143166492802447,-48,47, + 7599824371187708.,8621818038216590.,-.468767860942181221128,-48,47, + 7599824371187711.,8621818038216594.,.447038216028086981289,-48,47, + 7599824371187713.,8621818038216598.,-.275757732658400548644,-48,47, + 7599824371187733.,8621818038216630.,.496282780476738897388,-48,47, + 7599824371187816.,8621818038216767.,-.499749090012145905855,-48,47, + 7599824371189075.,8621818038218830.,-.499798788094150556153,-48,47, + 7599824371194111.,8621818038227082.,-.499997579359778396246,-48,47, + 7881299347896770.,4542832920382146.,.499980251004445138887,-48,46, + 7881299347898367.,4542832920383470.,-.289265225079896972997,-48,46, + 7881299347898368.,4542832920383471.,-.460704952992259612368,-48,46, + 7881299347898369.,4542832920383471.,.367855319095377780555,-48,46, + 7881299347898374.,4542832920383476.,-.489343320466434770423,-48,46, + 7881299347898899.,4542832920383911.,-.495200474452259742659,-48,46, + 7881299347899319.,4542832920384259.,-.499886197634511007943,-48,46, + 7881299347904452.,4542832920388511.,.499990428791219836534,-48,46, + 7881299347912134.,4542832920394877.,-.499999391516245094237,-48,46, + 8162774324586971.,4777315967089178.,.499996275515148448315,-48,46, + 8162774324603776.,4777315967103253.,-.499988441744097405821,-48,46, + 8162774324608268.,4777315967107014.,.499896632645651179092,-48,46, + 8162774324609023.,4777315967107647.,-.196026512625605573030,-48,46, + 8162774324609025.,4777315967107648.,.478951174406812037665,-48,46, + 8162774324609031.,4777315967107654.,-.496115764495934382388,-48,46, + 8162774324609191.,4777315967107788.,-.497900801902091766256,-48,46, + 8162774324609351.,4777315967107922.,-.499685839307451429570,-48,46, + 8444249301316776.,5014268345936023.,.499998226958776355032,-48,46, + 8444249301319679.,5014268345938480.,-.244026976648484863435,-48,46, + 8444249301319681.,5014268345938481.,.448192089694277574846,-48,46, + 8444249301319687.,5014268345938487.,-.475150711277434387795,-48,46, + 8444249301319778.,5014268345938564.,-.479183192681599620037,-48,46, + 8444249301320220.,5014268345938938.,-.498769530926856034732,-48,46, + 8444249301320246.,5014268345938960.,-.499921668470511489386,-48,46, + 6038495938339623.,6243314768159065.,-.499988362204694947747,-45,43, + 6038495938340852.,6243314768160644.,.499973791274170804024,-45,43, + 6038495938344517.,6243314768165356.,.216703891321116791355,-45,43, + 6038495938344518.,6243314768165358.,-.497698092280431397528,-45,43, + 6038495938344532.,6243314768165376.,-.499325862702101682090,-45,43, + 6038495938344539.,6243314768165384.,.499860252087066227487,-45,43, + 6038495938366654.,6243314768193815.,.499992914022233325020,-45,43 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/log.c b/src/regress/lib/libm/fpaccuracy/log.c new file mode 100644 index 000000000..1a6e8156d --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/log.c @@ -0,0 +1,1167 @@ +/* $OpenBSD: log.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:38:24. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1135 +#define F log +#define Fs "log" +#define Fn fpaccuracy_log + /* 7 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + 4503599627370496.,-6231120794008786.,-.241676321303909676425,-1074,43, + 4503599627370497.,-6231120794008786.,-.239723196303909676642,-1074,43, + 8703077354446053.,-5501572261029733.,.499621514621872743433,-60,50, + 8703077354446223.,-5501572261029711.,.492185336367534497745,-60,50, + 8703077354446231.,-5501572261029709.,-.472870483785621415080,-60,50, + 8703077354446254.,-5501572261029706.,-.497405966725949963693,-60,50, + 8703077354446339.,-5501572261029696.,.498875944146680649738,-60,50, + 8703077354447112.,-5501572261029595.,-.499642678157737370857,-60,50, + 8703077354463252.,-5501572261027507.,-.499759839298231431362,-60,50, + 8703077354495532.,-5501572261023331.,-.499994173195909857324,-60,50, + 8703077354496877.,-5501572261023158.,.499996062555555789717,-60,50, + 7188956797818971.,-6751046321343478.,.499994446631139239245,-57,51, + 7188956797842251.,-6751046321336185.,-.496292523438553903669,-57,51, + 7188956797842417.,-6751046321336134.,.499953883820660813071,-57,51, + 7188956797858932.,-6751046321330960.,-.499989399976558082222,-57,51, + 9006440473810072.,-6243504471388653.,-.499996690046742276170,-57,51, + 9006440473864255.,-6243504471375107.,.391215141407897593330,-57,51, + 9006440473864475.,-6243504471375052.,.395848819755696496349,-57,51, + 9006440473868471.,-6243504471374053.,.480013268057330741547,-57,51, + 9006440473869407.,-6243504471373819.,.499727463090935286315,-57,51, + 9006440473869419.,-6243504471373816.,.499980209180951803239,-57,51, + 9006440473881290.,-6243504471370847.,-.499990723228182373519,-57,51, + 7591484324373113.,-5067537177406304.,-.495361973228013249741,-56,51, + 7591484324373130.,-5067537177406299.,-.452791219344477411664,-56,51, + 7591484324373140.,-5067537177406296.,-.486573128824755722939,-56,51, + 7591484324373322.,-5067537177406243.,.498596118633496328982,-56,51, + 7591484324373440.,-5067537177406208.,.499969586765078045872,-56,51, + 7591484324384363.,-5067537177402968.,.499989858995970993287,-56,51, + 7591484324388004.,-5067537177401888.,.499996615370297320725,-56,51, + 8003388475019279.,-4948556858219843.,.499980573523722659122,-56,51, + 8003388475023999.,-4948556858218515.,.499384046892417399163,-56,51, + 8003388475031669.,-4948556858216357.,.498414689446153362992,-56,51, + 8003388475031868.,-4948556858216301.,.488220047680452975504,-56,51, + 8003388475031932.,-4948556858216283.,.494991620177620306475,-56,51, + 8003388475031964.,-4948556858216274.,.498377406426149974516,-56,51, + 8003388475045861.,-4948556858212363.,-.499989112732034779575,-56,51, + 8003388475072738.,-4948556858204801.,-.499996107270972561821,-56,51, + 8715649185227471.,-4756579315228300.,-.499995828054817678949,-56,51, + 8715649185231895.,-4756579315227158.,.497176732076184474837,-56,51, + 8715649185231953.,-4756579315227143.,.482221037788334657536,-56,51, + 8715649185231957.,-4756579315227141.,-.484327630783244867734,-56,51, + 8715649185232015.,-4756579315227126.,-.499283325071201283261,-56,51, + 8715649185232553.,-4756579315226988.,.499920752046105599273,-56,51, + 4823460372565450.,-4527979741872897.,-.499997294395935674807,-55,51, + 4823460372575177.,-4527979741868357.,.484087964016708518879,-55,51, + 4823460372575252.,-4527979741868322.,.497330114117962719305,-55,51, + 4823460372575267.,-4527979741868315.,.499978544138148228869,-55,51, + 6866204439029579.,-7465648923506777.,-.499971589634851257031,-55,52, + 6866204439034877.,-7465648923503302.,-.498456899533812862277,-55,52, + 6866204439034903.,-7465648923503285.,-.444844332167335201019,-55,52, + 6866204439034909.,-7465648923503282.,.490604721840304319445,-55,52, + 6866204439034970.,-7465648923503241.,-.498996562415555765342,-55,52, + 6866204439035156.,-7465648923503120.,.499924111818479788460,-55,52, + 6866204439049966.,-7465648923493405.,-.499994256821256759048,-55,52, + 7429938090817022.,-7110287638154998.,.499996599070824049577,-55,52, + 7429938090843364.,-7110287638139031.,.499981512527083215374,-55,52, + 7429938090848932.,-7110287638135655.,-.499793910477546696068,-55,52, + 7429938090848965.,-7110287638135635.,-.497098613961945469562,-55,52, + 7429938090857463.,-7110287638130484.,-.499988623295501060948,-55,52, + 7477266621094147.,-7081690799027612.,.498842323683998226003,-55,52, + 7477266621094235.,-7081690799027558.,-.498264066697951423079,-55,52, + 7477266621094240.,-7081690799027555.,-.486736020696944563200,-55,52, + 7477266621094265.,-7081690799027540.,-.429095790691940470646,-55,52, + 7477266621094494.,-7081690799027403.,.498888716151554335667,-55,52, + 7477266621099699.,-7081690799024268.,.499584602000999817400,-55,52, + 7477266621102822.,-7081690799022386.,-.499997867536839440471,-55,52, + 8992428863870133.,-6250706025508536.,-.499998153221230703738,-55,52, + 8992428863894942.,-6250706025496112.,.374843413731433385486,-55,52, + 8992428863895002.,-6250706025496082.,.424119502771149292999,-55,52, + 8992428863895092.,-6250706025496037.,.498033636330347222069,-55,52, + 8992428863895094.,-6250706025496036.,.499676172631657607787,-55,52, + 8992428863896312.,-6250706025495426.,.499980780088303235320,-55,52, + 8992428863903009.,-6250706025492071.,-.499986416677458325731,-55,52, + 4684840655079740.,-6065625653871184.,-.499994055057430240494,-54,52, + 4684840655100238.,-6065625653851479.,-.499982679602492387014,-54,52, + 4684840655104167.,-6065625653847703.,.499970705719200323608,-54,52, + 4684840655107191.,-6065625653844795.,-.488611877956776502362,-54,52, + 4684840655107243.,-6065625653844746.,.499679691355135845447,-54,52, + 4684840655108096.,-6065625653843926.,.499924087873264952647,-54,52, + 5261029272893535.,-5543231590236901.,.499979674591697309033,-54,52, + 5261029272899439.,-5543231590231846.,-.498071129532142857421,-54,52, + 5261029272899529.,-5543231590231769.,-.455358489394992017482,-54,52, + 5261029272899550.,-5543231590231751.,-.478725540029846461788,-54,52, + 5261029272899571.,-5543231590231734.,.497907409335227338119,-54,52, + 5261029272900467.,-5543231590230966.,-.499086751155135033822,-54,52, + 5261029272901495.,-5543231590230087.,.499897627049921844626,-54,52, + 5261029272940781.,-5543231590196457.,.499995048943685879516,-54,52, + 5357701474447081.,-5461228396073360.,-.499859078752293158157,-54,52, + 5357701474447564.,-5461228396072954.,-.497652648552138633062,-54,52, + 5357701474447702.,-5461228396072838.,-.497022239930245749991,-54,52, + 5357701474447708.,-5461228396072833.,-.453516569990231228376,-54,52, + 5357701474450230.,-5461228396070713.,-.499966639037604463742,-54,52, + 5357701474469262.,-5461228396054715.,-.499981625265750759683,-54,52, + 5357701474488294.,-5461228396038717.,-.499996668323105843224,-54,52, + 6544763739196285.,-4559921889862000.,-.499999620794317564399,-54,52, + 6544763739207501.,-4559921889854283.,.482716550906506529163,-54,52, + 6544763739207533.,-4559921889854260.,-.497361291703853921976,-54,52, + 6544763739207626.,-4559921889854197.,.498037478209174885226,-54,52, + 6544763739208030.,-4559921889853919.,.499554715240163862178,-54,52, + 6544763739208232.,-4559921889853779.,-.499686666250776905307,-54,52, + 6544763739216062.,-4559921889848391.,-.499983783785013532302,-54,52, + 6748349574413313.,-8843929247140112.,.499972997476390758452,-54,53, + 6748349574646638.,-8843929246828687.,.499952910244662438846,-54,53, + 6748349574653578.,-8843929246819423.,-.499940705442234868482,-54,53, + 6748349574653775.,-8843929246819161.,.441128596682365784628,-54,53, + 6748349574653802.,-8843929246819125.,.478737079714073354300,-54,53, + 6748349574653817.,-8843929246819105.,.499630681398293034993,-54,53, + 6748349574655971.,-8843929246816230.,.499951882790209494586,-54,53, + 6750030179224859.,-8841686379068452.,.499996994224154399749,-54,53, + 6750030179312546.,-8841686378951443.,.499968019798837137269,-54,53, + 6750030179322289.,-8841686378938442.,.499964706589967342034,-54,53, + 6750030179322917.,-8841686378937604.,.499348665640835570257,-54,53, + 6750030179323838.,-8841686378936375.,.476152210540984336194,-54,53, + 6750030179323850.,-8841686378936359.,.488879292558120664445,-54,53, + 6750030179323859.,-8841686378936347.,.498424604070954229201,-54,53, + 6921931465612182.,-8615174518082794.,.471107043359692455855,-54,53, + 6921931465612192.,-8615174518082781.,.483658958223790995567,-54,53, + 6921931465612202.,-8615174518082768.,.496210873087870736260,-54,53, + 6921931465612285.,-8615174518082659.,-.499608233540992964110,-54,53, + 6921931465613480.,-8615174518081104.,-.499654407437460342789,-54,53, + 6921931465621845.,-8615174518070219.,-.499977632229463228671,-54,53, + 6921931465622323.,-8615174518069597.,-.499996102614890616007,-54,53, + 7262316160893768.,-8182793247776769.,.499997459642588969170,-54,53, + 7262316160939892.,-8182793247719562.,-.499985429378589046641,-54,53, + 7262316160954967.,-8182793247700865.,-.499502940557201604331,-54,53, + 7262316160955275.,-8182793247700483.,-.497768373362641834787,-54,53, + 7262316160955350.,-8182793247700390.,-.477865475509276550716,-54,53, + 7262316160955354.,-8182793247700386.,.483196012376209281042,-54,53, + 7262316160955404.,-8182793247700324.,.496464610944551623710,-54,53, + 7262316160956020.,-8182793247699560.,.499933745271497327309,-54,53, + 7262316160959487.,-8182793247695260.,.499978368594419592079,-54,53, + 7667186625744417.,-7694144245514838.,-.499903573258606418037,-54,53, + 7667186625744852.,-7694144245514327.,-.473908372339138310455,-54,53, + 7667186625744869.,-7694144245514308.,.497222474592757975790,-54,53, + 7667186625744972.,-7694144245514187.,.498779958943888570316,-54,53, + 7667186625745075.,-7694144245514065.,-.499662556706606354534,-54,53, + 7667186625748262.,-7694144245510322.,.499985040760724516374,-54,53, + 7667186625756610.,-7694144245500514.,-.499996722607223987409,-54,53, + 7756304500086535.,-7590054791578121.,.499997577824789115099,-54,53, + 7756304500086597.,-7590054791578049.,.499021570205288938059,-54,53, + 7756304500086721.,-7590054791577905.,.497069554964562011942,-54,53, + 7756304500086727.,-7590054791577898.,.464717038098016834361,-54,53, + 8671512143472678.,-6585417096504105.,.460554792767319965409,-54,53, + 8671512143472679.,-6585417096504104.,.499266277651879091303,-54,53, + 8671512143472989.,-6585417096503782.,.499826591859433913659,-54,53, + 8671512143473144.,-6585417096503620.,-.499893251041105403840,-54,53, + 8671512143476683.,-6585417096499944.,-.499948245533812981240,-54,53, + 8671512143480222.,-6585417096496269.,.499996758473237777608,-54,53, + 8671512143498072.,-6585417096477727.,-.499998087358500282277,-54,53, + 4889567999035716.,-5502680140721424.,-.499869731260699866514,-53,53, + 4889567999035735.,-5502680140721389.,-.499479947576572483794,-53,53, + 4889567999035887.,-5502680140721109.,-.496361678108449614633,-53,53, + 4889567999038275.,-5502680140716711.,.499996396340268579017,-53,53, + 4930099044601354.,-5428324610131997.,-.499850577532786323128,-53,53, + 4930099044602325.,-5428324610130224.,.499088841307943420969,-53,53, + 4930099044602331.,-5428324610130213.,.460977241423277834874,-53,53, + 4930099044602666.,-5428324610129601.,.499746247841616178461,-53,53, + 4930099044604319.,-5428324610126580.,-.499999521097083347296,-53,53, + 5026050879135738.,-5254706483020803.,.499998258891644851569,-53,53, + 5026050879160202.,-5254706482976961.,.499983212949160318034,-53,53, + 5026050879172434.,-5254706482955040.,.499975609953557468421,-53,53, + 5026050879177119.,-5254706482946643.,-.498964530078431101230,-53,53, + 5026050879177167.,-5254706482946557.,-.478035848522676673189,-53,53, + 5026050879177172.,-5254706482946549.,.482477555806000501830,-53,53, + 5026050879177220.,-5254706482946462.,-.496593762639152165845,-53,53, + 5026050879177499.,-5254706482945962.,-.499945801117867192823,-53,53, + 5035712052399181.,-5237409287697570.,.499997303384593976119,-53,53, + 5035712052431116.,-5237409287640448.,-.499991943839733409436,-53,53, + 5035712052438791.,-5237409287626721.,.499854018375744553577,-53,53, + 5035712052438843.,-5237409287626627.,-.489593279410897776290,-53,53, + 5035712052445425.,-5237409287614855.,.499981442994292553225,-53,53, + 5280619103507963.,-4809671729245876.,.499995905476718730946,-53,53, + 5280619103516978.,-4809671729230499.,.466160247627972974992,-53,53, + 5280619103516988.,-4809671729230481.,-.476750274469629884351,-53,53, + 5280619103517090.,-4809671729230307.,-.494437599867024100263,-53,53, + 5280619103517124.,-4809671729230250.,.499666624999764354900,-53,53, + 5280619103518140.,-4809671729228517.,.499957579670324200532,-53,53, + 5280619103532048.,-4809671729204793.,-.499996590114121633810,-53,53, + 5388947655827640.,-4626764511454458.,.499954771691364585281,-53,53, + 5388947655827850.,-4626764511454107.,.498324824530776361051,-53,53, + 5388947655827990.,-4626764511453873.,.497238193082785360646,-53,53, + 5388947655827993.,-4626764511453867.,-.488499377591166689506,-53,53, + 5388947655835002.,-4626764511442153.,.499956330210529252206,-53,53, + 5388947656004328.,-4626764511159138.,.499987536529861820694,-53,53, + 5828367993164204.,-7841436116879309.,.499867053570916922270,-53,54, + 5828367993164909.,-7841436116877129.,-.476611425586389801198,-53,54, + 5828367993165030.,-7841436116876755.,-.488177235510811468394,-53,54, + 5828367993165151.,-7841436116876381.,-.499743045442997333147,-53,54, + 5828367993167056.,-7841436116870494.,.499985317824431158445,-53,54, + 5828367993192735.,-7841436116791125.,.499998064572969245763,-53,54, + 5842346135984668.,-7798284009337137.,.472475836872415562669,-53,54, + 5842346135984680.,-7798284009337100.,.473498556549031052094,-53,54, + 5842346135984812.,-7798284009336693.,.484748472986785503935,-53,54, + 5842346135984992.,-7798284009336137.,-.499910731885641860351,-53,54, + 5842346135986946.,-7798284009330113.,.499955454121093760158,-53,54, + 5842346135993791.,-7798284009309007.,.499998449085286585949,-53,54, + 6083309738806854.,-7070205774166068.,.499972891269328079377,-53,54, + 6083309738848773.,-7070205774041934.,.499972780061163109732,-53,54, + 6083309738852053.,-7070205774032220.,-.493514704787251381364,-53,54, + 6083309738852079.,-7070205774032144.,.499829601714370497771,-53,54, + 6466710109317002.,-5969191272430426.,-.499997677545264693561,-53,54, + 6466710109371051.,-5969191272279861.,-.497303013936010816927,-53,54, + 6466710109371079.,-5969191272279783.,-.497338621755694015159,-53,54, + 6466710109372353.,-5969191272276234.,-.498958777908555167333,-53,54, + 6466710109373165.,-5969191272273972.,-.499991405271914386511,-53,54, + 6683043781680675.,-5376408675329904.,-.499752243206847849573,-53,54, + 6683043781680721.,-5376408675329781.,.494996034167677827964,-53,54, + 6683043781680790.,-5376408675329595.,.487118450227866093337,-53,54, + 6683043781680803.,-5376408675329559.,-.470887471384197474496,-53,54, + 6683043781681818.,-5376408675326823.,-.499811351305740944766,-53,54, + 6683043781685247.,-5376408675317580.,-.499988678764078044491,-53,54, + 6683043781685628.,-5376408675316554.,.499991617892249517193,-53,54, + 6683043781736278.,-5376408675180025.,.499996413280176004738,-53,54, + 7533119765531087.,-6438883118164418.,-.499991529971284965678,-53,55, + 7533119765564118.,-6438883118006440.,-.499989974217543122710,-53,55, + 7533119765574731.,-6438883117955682.,.499556259755606365052,-53,55, + 7533119765574754.,-6438883117955571.,-.497900673952372802896,-53,55, + 7533119765574800.,-6438883117955351.,-.492814541369338712774,-53,55, + 7533119765577092.,-6438883117944390.,.499737976066827835123,-53,55, + 7533119765580240.,-6438883117929334.,.499980258976533811253,-53,55, + 7593583889908906.,-6150854567347266.,.499999091633551756725,-53,55, + 7593583889909325.,-6150854567345277.,-.497212000403092422825,-53,55, + 7593583889909329.,-6150854567345259.,.481334910412258269777,-53,55, + 7593583889909372.,-6150854567345054.,-.499285798323353167175,-53,55, + 7618936725664347.,-6030764933018858.,-.499970888965788588608,-53,55, + 7618936725669075.,-6030764932996501.,.495434402357093390416,-53,55, + 7618936725669193.,-6030764932995943.,.499549847267642666028,-53,55, + 7618936725670174.,-6030764932991304.,.499865537248732525733,-53,55, + 7618936725676982.,-6030764932959109.,-.499982371775093951199,-53,55, + 7618936725702252.,-6030764932839612.,.499994365348826715475,-53,55, + 8259236168406500.,-6246821630980131.,.499993941179825728652,-53,56, + 8259236168421737.,-6246821630847195.,-.499968794221879875131,-53,56, + 8259236168421835.,-6246821630846341.,.499703296073872073117,-53,56, + 8259236168422815.,-6246821630837791.,.496424198473416442810,-53,56, + 8259236168422913.,-6246821630836936.,.496096288657573368502,-53,56, + 8259236168422931.,-6246821630836778.,-.463147613146439393392,-53,56, + 8259236168422942.,-6246821630836682.,-.493796664249060121551,-53,56, + 8259236168424804.,-6246821630820438.,.499973047265331320546,-53,56, + 8460168363173010.,-4514775779086889.,.495524894735070969980,-53,56, + 8460168363173039.,-4514775779086642.,.496546316035704696989,-53,56, + 8460168363173126.,-4514775779085901.,.499610579932525816262,-53,56, + 8460168363175094.,-4514775779069139.,.499960823286916495204,-53,56, + 8460168363180969.,-4514775779019100.,.499990108886816593346,-53,56, + 8791115980757713.,-6998957239050241.,.499990260090499107358,-53,58, + 8791115980769060.,-6998957238678212.,.498964912594599302028,-53,58, + 8791115980769074.,-6998957238677752.,-.489315193004274890509,-53,58, + 8791115980769079.,-6998957238677589.,.443441912138807174736,-53,58, + 8791115980769402.,-6998957238666999.,.499550904184349007174,-53,58, + 8791115980769744.,-6998957238655785.,-.499863104662119648217,-53,58, + 8791115980771365.,-6998957238602639.,.499990373789785089689,-53,58, + 8837821264115929.,-5471705459729186.,.499997919710572311092,-53,58, + 8837821264160388.,-5471705458279231.,-.499989998923037050633,-53,58, + 8837821264161743.,-5471705458235040.,-.499967252619213878366,-53,58, + 8837821264166907.,-5471705458066626.,.499381365645764877867,-53,58, + 8837821264166982.,-5471705458064180.,.495692586138803446004,-53,58, + 8837821264166995.,-5471705458063756.,.468386531022152672921,-53,58, + 8837821264167163.,-5471705458058276.,-.499876335156824581465,-53,58, + 9006099743113215.,-4503874527653206.,-.033414723122349010281,-53,65, + 9006099743113216.,-4503874527649110.,.466646319485618621577,-53,65, + 9006099743113218.,-4503874527640917.,.466768404700189310113,-53,65, + 9006099743113364.,-4503874527042828.,.475680620449559489630,-53,65, + 9006099743113748.,-4503874525469772.,.499120922435485453527,-53,65, + 9006099743113762.,-4503874525412421.,.499975515511486853278,-53,65, + 9007144712056031.,-7149040448574496.,-.499700370603412342480,-53,70, + 9007144712056157.,-7149040432059324.,-.492828386178602701106,-53,70, + 9007144712056161.,-7149040431535033.,-.318007057123263636739,-53,70, + 9007144712056162.,-7149040431403961.,.475698275104190900686,-53,70, + 9007144712056317.,-7149040411087677.,-.499975405575141633172,-53,70, + 9007144712063593.,-7149039457402031.,.499620221744137048278,-53,70, + 9007144712121801.,-7149031827916855.,.468651190095212642537,-53,70, + 9007198645424876.,-5111314218090799.,-.461914314131743923885,-53,76, + 9007198645424883.,-5111314159370539.,-.489625090878240809769,-53,76, + 9007198645424920.,-5111313848992022.,-.493239954634974081967,-53,76, + 9007198645424994.,-5111313228234989.,.499526492909227930998,-53,76, + 9007198645425824.,-5111306265689878.,.499125090610372758423,-53,76, + 9007198645446574.,-5111132202062103.,.280573865390980498531,-53,76, + 9007198645454874.,-5111062576610993.,.080875438823772626114,-53,76, + 9007198658428780.,-5002229557664588.,.498677711058436664651,-53,76, + 9007198658430460.,-5002215464802214.,-.499413551484759222723,-53,76, + 9007198658433829.,-5002187203579992.,.494707497257907914325,-53,76, + 9007198744410836.,-8561919501076440.,.293278969249397164668,-53,77, + 9007198744447382.,-8561306360905766.,.362926416313293787735,-53,77, + 9007198744459517.,-8561102769378072.,.494391996561506347213,-53,77, + 9007198744459537.,-8561102433833732.,-.496141016007996619705,-53,77, + 9007198744459638.,-8561100739334820.,-.498344111178460583971,-53,77, + 9007198744459739.,-8561099044835909.,.499433792805755251840,-53,77, + 9007198744460163.,-8561091931295922.,.499799067400002952989,-53,77, + 9007198744464282.,-8561022825939303.,.478844615928685109301,-53,77, + 9007198751718468.,-8439317773667289.,-.499377102394774387083,-53,77, + 9007198751718484.,-8439317505231819.,.491862924918402176587,-53,77, + 9007198751718500.,-8439317236796348.,.483102475394367277549,-53,77, + 9007198751720752.,-8439279454503806.,.495312440777695495864,-53,77, + 9007198751734678.,-8439045814980742.,.256198951655525428111,-53,77, + 9007198751825197.,-8437527158080836.,-.103002639420526491842,-53,77, + 9007198756945094.,-8351629535442415.,.366281424988865881812,-53,77, + 9007198756992945.,-8350826728835232.,-.497576672177730536412,-53,77, + 9007198756992959.,-8350826493954196.,.482215656533334629698,-53,77, + 9007198756993096.,-8350824195475477.,.498735606933670475840,-53,77, + 9007198756993590.,-8350815907530315.,.499619428337480528603,-53,77, + 9007198772757595.,-8086339776236440.,.289870463703036976428,-53,77, + 9007198772912155.,-8083746689592744.,.458591327372522804066,-53,77, + 9007198772917675.,-8083654079355470.,.498804471642074458483,-53,77, + 9007198772918582.,-8083638862419744.,.499620689623853413591,-53,77, + 9007198772918621.,-8083638208108284.,-.499276038289169040065,-53,77, + 9007198772918816.,-8083634936550989.,-.493802174107907518677,-53,77, + 9007198772918826.,-8083634768778821.,.480835602023239056613,-53,77, + 9007198805290773.,-7540523593542592.,-.008055561959332187641,-53,77, + 9007198805330998.,-7539848729995319.,.499918013139651049733,-53,77, + 9007198805331010.,-7539848528668716.,-.454985475695252170279,-53,77, + 9007198805332772.,-7539818967212650.,.497107796494765585293,-53,77, + 9007198859717789.,-6627389747069529.,.057831219560811053425,-53,77, + 9007198859768987.,-6626530787127093.,.495000052576861690774,-53,77, + 9007198859769002.,-6626530535468841.,-.469609335131978577233,-53,77, + 9007198859769074.,-6626529327509236.,-.499740229939530887860,-53,77, + 9007198859770402.,-6626507047365412.,.498336195194145292277,-53,77, + 9007198859773058.,-6626462487077762.,.484634251048638457699,-53,77, + 9007198895050039.,-6034612932219114.,.333723596408327282732,-53,77, + 9007198895059780.,-6034449505351532.,.487760316622820602211,-53,77, + 9007198895063331.,-6034389929455137.,.498620219718231038742,-53,77, + 9007198895063404.,-6034388704718320.,.405102299677733753471,-53,77, + 9007198895063431.,-6034388251733470.,.493798636598452333879,-53,77, + 9007198895063434.,-6034388201401819.,-.496346298673839566742,-53,77, + 9007198895064143.,-6034376306355201.,.498930526184047380094,-53,77, + 9007198895064752.,-6034366089030249.,.498357299657518566063,-53,77, + 9007198918829326.,-5635662682489176.,.461730799780658005685,-53,77, + 9007198918835652.,-5635556549816801.,-.496919355688751601485,-53,77, + 9007198918835708.,-5635555610292670.,-.459263649158291708826,-53,77, + 9007198918835732.,-5635555207639471.,-.443127277356142672357,-53,77, + 9007198918835831.,-5635553546695026.,.498423915611885152402,-53,77, + 9007198918836205.,-5635547272016008.,.499674780652718512005,-53,77, + 9007198918838994.,-5635500480358839.,.490091805994005924458,-53,77, + 9007198974129982.,-4707871600082866.,.385837019586237224571,-53,77, + 9007198974141058.,-4707685775632661.,.461451338851861083735,-53,77, + 9007198974141060.,-4707685742078227.,-.493232420429595116457,-53,77, + 9007198974141104.,-4707685003880700.,-.496277009618639988473,-53,77, + 9007198974141148.,-4707684265683173.,-.499325204888918451001,-53,77, + 9007198974141479.,-4707678712424504.,-.499644274275744500877,-53,77, + 9007198974142472.,-4707662052648498.,.498174077896318595431,-53,77, + 9007199052037178.,-6801611419537571.,.397379344973790290822,-53,78, + 9007199052037276.,-6801608131203161.,.400157193567530749143,-53,78, + 9007199052041392.,-6801470021157941.,.484519580762649143116,-53,78, + 9007199052044528.,-6801364794456820.,-.493565099237620035774,-53,78, + 9007199052044577.,-6801363150289615.,-.493513366090922480678,-53,78, + 9007199052044593.,-6801362613418691.,-.411865757724675869901,-53,78, + 9007199068083001.,-6263202931162916.,.491480615743549118801,-53,78, + 9007199068084570.,-6263150284258017.,.499231348857658560401,-53,78, + 9007199068085151.,-6263130789132621.,.496587975438772153135,-53,78, + 9007199068085279.,-6263126494165235.,-.498999913250657551542,-53,78, + 9007199068103247.,-6262523588118566.,-.110286886646569112144,-53,78, + 9007199098157672.,-5254064408943200.,-.337298937459652271382,-53,78, + 9007199098549488.,-5240917245386421.,.165799016747541850017,-53,78, + 9007199112538220.,-4771533280951222.,-.379093409295069091723,-53,78, + 9007199120399774.,-4507743297794382.,.260816813833481129418,-53,78, + 9007199120522022.,-4503641335530093.,-.336215840117471016832,-53,78, + 9007199120523252.,-4503600063578118.,-.333333694686501654422,-53,78, + 9007199120523263.,-4503599694479361.,.166666653628150411108,-53,78, + 9007199120523264.,-4503599660924928.,-.333333337058623676204,-53,78, + 9007199179197695.,-5069624865744057.,.495780282928458848663,-53,79, + 9007199179198777.,-5069552253952600.,.485843633760609308436,-53,79, + 9007199179198809.,-5069550106468934.,.496507532601161204660,-53,79, + 9007199179198825.,-5069549032727100.,-.498163379001560056020,-53,79, + 9007199179199008.,-5069536751804885.,-.499847594356759150588,-53,79, + 9007199179201069.,-5069398440435022.,.480348682168655403330,-53,79, + 9007199179205756.,-5069083901186816.,.318459647989618424087,-53,79, + 9007199179240626.,-5066743815079516.,-.024866175127808608447,-53,79, + 9007199180920365.,-4954018438038642.,.396216765506999864770,-53,79, + 9007199180957334.,-4951537490425098.,.496454299531411944088,-53,79, + 9007199180957374.,-4951534806070516.,.485692145789164533386,-53,79, + 9007199180957505.,-4951526014809259.,-.499637357946038767759,-53,79, + 9007199180958249.,-4951476085814035.,.497287472083432490173,-53,79, + 9007199180961778.,-4951239258631039.,.427869960432910183840,-53,79, + 9007199180974406.,-4950391807889506.,.419963272023154455211,-53,79, + 9007199206410438.,-6486817168264694.,-.497300535217294030137,-53,80, + 9007199206480560.,-6477405552691415.,.426188087830818609337,-53,80, + 9007199206482493.,-6477146109821801.,.489165630000004271438,-53,80, + 9007199206483504.,-6477010415698066.,.499411100651760081649,-53,80, + 9007199206483593.,-6476998470320210.,.498594494825272143463,-53,80, + 9007199206483682.,-6476986524942354.,.497659856899702989222,-53,80, + 9007199206483707.,-6476983169499136.,.474904173889277272957,-53,80, + 9007199206483714.,-6476982229975034.,-.491469086283713521573,-53,80, + 9007199242956138.,-6326945318905878.,.499442305513828052728,-53,82, + 9007199242956222.,-6326900221749210.,-.496476844886689536247,-53,82, + 9007199242956259.,-6326880357525441.,.493282485296356007565,-53,82, + 9007199242960221.,-6324753274969314.,.032619468776231676367,-53,82, + 9007199242961582.,-6324022593657126.,-.343802014477288376068,-53,82, + 9007199243002123.,-6302257309985319.,-.183915422993762650238,-53,82, + 9007199254696586.,-6103114167892676.,-.348419238899448769168,-53,90, + 9007199254718788.,-6103389045792099.,.148193347011748724302,-53,91, + 9007199254740550.,-7775746231632063.,.214843749993758545309,-53,97, + 9007199254740770.,-7810930603720800.,-.257812500001581641068,-53,98, + 9007199254740989.,-6755399441055745.,-.125000000000000249800,-53,104, + 9007199254740990.,-4503599627370497.,.499999999999999925985,-53,104, + 9007199254740991.,-4503599627370496.,-.250000000000000018504,-53,105, + 4503599627370496.,0.,0.000000000000000000000,-52,0, + 4503599627370497.,9007199254740991.,.000000000000000148030,-52,105, + 4503599627370498.,9007199254740990.,.000000000000000592119,-52,104, + 4503599640749356.,7182720759051452.,.498675100868403800302,-52,81, + 4503599640749435.,7182763171853375.,-.497563769770896980999,-52,81, + 4503599640749445.,7182768540562479.,-.446507814187887691865,-52,81, + 4503599640749983.,7183057377112276.,.482729716491162002897,-52,81, + 4503599640773725.,7195803766267079.,.364845722033604063674,-52,81, + 4503599640777682.,7197928164459540.,-.021098597984694819051,-52,81, + 4503599643301003.,8552625806585855.,-.495631776775192999850,-52,81, + 4503599643301013.,8552631175294956.,-.486281886601818721458,-52,81, + 4503599643301033.,8552641912713158.,-.467617869041682392635,-52,81, + 4503599643301211.,8552737475735155.,.496391181157928728263,-52,81, + 4503599643301320.,8552795994664356.,.494959077336912850351,-52,81, + 4503599643307968.,8556365112474705.,-.370776120825771652462,-52,81, + 4503599653610062.,7043629843932755.,.330069961665683230402,-52,80, + 4503599653610709.,7043803521671775.,.409593549872852696610,-52,80, + 4503599653612448.,7044270330927039.,.456402173591617996370,-52,80, + 4503599653612455.,7044272209975221.,-.492594813133597556884,-52,80, + 4503599653612494.,7044282678957944.,-.494202918825538948455,-52,80, + 4503599653612611.,7044314085906113.,-.499571187883244230548,-52,80, + 4503599653612650.,7044324554888835.,.498458071770226978194,-52,80, + 4503599653621022.,7046571896513370.,.310152251584411376254,-52,80, + 4503599659574715.,8644754181480526.,.274126391480709292303,-52,80, + 4503599659576620.,8645265551020549.,.478429847965483615060,-52,80, + 4503599659577255.,8645436007533890.,.498462835035441999726,-52,80, + 4503599659577467.,8645492915850156.,-.473428757201571634680,-52,80, + 4503599659577479.,8645496137075604.,.490346327049240524550,-52,80, + 4503599659577504.,8645502847961956.,.498183518757284858178,-52,80, + 4503599680828599.,7175025085265911.,.145719923565022458549,-52,79, + 4503599680951470.,7191516551527019.,.099421237842497691929,-52,79, + 4503599680956656.,7192212604656145.,.499686342975886959741,-52,79, + 4503599680957321.,7192301859444203.,.493418780661419816740,-52,79, + 4503599681422782.,7254774976590236.,.381576125495551870088,-52,79, + 4503599681424332.,7254983014066139.,.476143650001818818499,-52,79, + 4503599681425499.,7255139646152836.,-.499258686259013681870,-52,79, + 4503599681425535.,7255144477990986.,-.494003840732839577406,-52,79, + 4503599681425607.,7255154141667286.,-.483610021107153203548,-52,79, + 4503599681425882.,7255191051542042.,.499111096690387989749,-52,79, + 4503599681476996.,7262051456408652.,.139388622210154810204,-52,79, + 4503599688887018.,8256607760911813.,.291222674733152968267,-52,79, + 4503599688893244.,8257443400474926.,.368678973491058495279,-52,79, + 4503599689452886.,8332557277177520.,.120728670330334232514,-52,79, + 4503599694023172.,8945970671640540.,-.390110757748773334525,-52,79, + 4503599694474397.,9006533065057990.,.299482761336393191895,-52,79, + 4503599694479310.,9007192476745829.,-.333372083801885418161,-52,79, + 4503599694479360.,9007199187632129.,-.333333340783913841439,-52,79, + 4503599694479361.,4503599660924927.,.333333337058623676204,-52,78, + 4503599718149025.,6092043895382749.,.386842268327538599553,-52,78, + 4503599718152336.,6092266092826974.,.497364705853693315607,-52,78, + 4503599718152920.,6092305284402760.,.486018078008873839678,-52,78, + 4503599718152988.,6092309847805420.,.498065196523572473342,-52,78, + 4503599718153005.,6092310988656086.,-.498933789936281382738,-52,78, + 4503599718153331.,6092332866145308.,.498958419551862760778,-52,78, + 4503599718163264.,6092999458477983.,-.296891026849151191738,-52,78, + 4503599720384784.,6242083138988959.,.359157030400125353411,-52,78, + 4503599720401671.,6243216406351920.,-.499965629951289916354,-52,78, + 4503599720401715.,6243219359141875.,-.495970322310468739424,-52,78, + 4503599720401728.,6243220231557088.,.482477315885234196430,-52,78, + 4503599720401733.,6243220567101402.,-.448889647668644540388,-52,78, + 4503599720403434.,6243334719276707.,.478448467657366623723,-52,78, + 4503599720448296.,6246345357071268.,.347691202347932282572,-52,78, + 4503599750517018.,8264223083982464.,.457918598035532261385,-52,78, + 4503599750519043.,8264358979428348.,.499464234050061839577,-52,78, + 4503599750519237.,8264371998547608.,.498261729456655260163,-52,78, + 4503599750519395.,8264382601747831.,-.441276331319193847549,-52,78, + 4503599750519419.,8264384212360523.,-.482757694811818228616,-52,78, + 4503599750519431.,8264385017666868.,.496498404791227734886,-52,78, + 4503599750520104.,8264430181931105.,.496343236141814680393,-52,78, + 4503599750530423.,8265122678279785.,-.406106497794744771379,-52,78, + 4503599750543828.,8266022272577102.,.052218920730036296927,-52,78, + 4503599772457970.,4868327701966012.,-.498382597078505742375,-52,77, + 4503599772458007.,4868328943479956.,-.494865398198780520781,-52,77, + 4503599772458069.,4868331023854672.,.483978393553083069876,-52,77, + 4503599772458081.,4868331426507844.,-.487861599971870060653,-52,77, + 4503599772458822.,4868356290341154.,.498940188592499396031,-52,77, + 4503599772460242.,4868403937633059.,.482459484912722051128,-52,77, + 4503599776092278.,4990274838641228.,-.499974325004189460826,-52,77, + 4503599776092537.,4990283529238829.,-.488693181069565095910,-52,77, + 4503599776092574.,4990284770752772.,-.487122388455558598870,-52,77, + 4503599776092583.,4990285072742650.,-.459714819008719802257,-52,77, + 4503599776094832.,4990360536657725.,.481325443911612582174,-52,77, + 4503599776096109.,4990403385665974.,.453750512803840759025,-52,77, + 4503599776110193.,4990875966270655.,.345248122822805215138,-52,77, + 4503599776124277.,4991348546875335.,-.241144303395858788464,-52,77, + 4503599804227689.,5934342539708010.,.443263912960349964574,-52,77, + 4503599804231510.,5934470751187648.,-.499720185697614557680,-52,77, + 4503599804231595.,5934473603314255.,.494291960514741593069,-52,77, + 4503599804231617.,5934474341511731.,-.495501900386498867826,-52,77, + 4503599804233175.,5934526619314733.,.490835263808334092172,-52,77, + 4503599804265109.,5935598146504137.,.315043510654304630346,-52,77, + 4503599814622253.,6283126216516352.,.460709409056880310971,-52,77, + 4503599814625062.,6283220470911921.,.499208411026248913074,-52,77, + 4503599814625186.,6283224631661316.,.499909044580656022820,-52,77, + 4503599814625434.,6283232953160107.,-.499033368663724955411,-52,77, + 4503599814625505.,6283235335524679.,.444733421193518932035,-52,77, + 4503599814625515.,6283235671068985.,.493148261435000484171,-52,77, + 4503599814625558.,6283237113909502.,-.498676415462513030770,-52,77, + 4503599814670502.,6284745184238598.,-.044040107722040929844,-52,77, + 4503599826972277.,6697524239224586.,.247328406580649952496,-52,77, + 4503599827000039.,6698455777324481.,.143084184143365459034,-52,77, + 4503599827009704.,6698780080895385.,.499997164866522825049,-52,77, + 4503599827009823.,6698784073872616.,.496019125713697877717,-52,77, + 4503599827009825.,6698784140981478.,-.478838549573748792264,-52,77, + 4503599827013920.,6698921546374426.,.437571308645626381226,-52,77, + 4503599831801273.,6859558449866550.,.446256414596144135018,-52,77, + 4503599831826593.,6860408048046222.,.459247652777174388322,-52,77, + 4503599831829442.,6860503644618651.,-.499869437836820575805,-52,77, + 4503599831829849.,6860517301271855.,-.498965746663204778025,-52,77, + 4503599831829912.,6860519415200975.,-.469452139614558622860,-52,77, + 4503599831829914.,6860519482309835.,.483865268385005157650,-52,77, + 4503599831829956.,6860520891595916.,-.496476047960001923770,-52,77, + 4503599831834626.,6860677590786241.,.416931003854390900494,-52,77, + 4503599838544596.,7085826812483745.,.075476565487331873291,-52,77, + 4503599838555202.,7086182690772849.,.498681997372853779785,-52,77, + 4503599838555270.,7086184972474119.,-.495839967701217617321,-52,77, + 4503599838555767.,7086201649026040.,.499034295757372221472,-52,77, + 4503599840031611.,7135722753836364.,-.499771605565466876002,-52,77, + 4503599840031652.,7135724129568011.,-.462174662943699163098,-52,77, + 4503599840031676.,7135724934874341.,-.488952995788151900013,-52,77, + 4503599840031688.,7135725337527505.,.497656228464364781522,-52,77, + 4503599840043263.,7136113730059565.,-.001830329425833698512,-52,77, + 4503599840058799.,7136635031690499.,-.244777493395986945992,-52,77, + 4503599864046892.,7941541826912274.,.356911560007291084331,-52,77, + 4503599864065704.,7942173052853884.,.400389050620957592826,-52,77, + 4503599864070407.,7942330859339286.,.499274719543417590412,-52,77, + 4503599864070868.,7942346327931626.,-.498837545010743916705,-52,77, + 4503599864070872.,7942346462149346.,.446941970509212277551,-52,77, + 4503599865861064.,8002415334711249.,.388737908373217926950,-52,77, + 4503599865866067.,8002583207525655.,.499292586359653461274,-52,77, + 4503599865866533.,8002598843890139.,.448926702930794274124,-52,77, + 4503599865866560.,8002599749859755.,.471709993595640499140,-52,77, + 4503599865866596.,8002600957819244.,-.497920734475399920190,-52,77, + 4503599865866726.,8002605319895173.,-.499445422043616554236,-52,77, + 4503599878010238.,8410073945412772.,.046938246644827922898,-52,77, + 4503599878044810.,8411233989171311.,.444192862772355398905,-52,77, + 4503599878044818.,8411234257606753.,-.497159984282106266020,-52,77, + 4503599878044954.,8411238821009250.,.499768659714961952758,-52,77, + 4503599878045619.,8411261134705288.,.497472183017636929423,-52,77, + 4503599878046949.,8411305762097364.,.482994731709927202876,-52,77, + 4503599895529293.,8997915851255891.,.499246848233303758567,-52,77, + 4503599895529690.,8997929172364602.,.317031198021776514716,-52,77, + 4503599895529761.,8997931554729132.,.463161038359955201321,-52,77, + 4503599895529779.,8997932158708873.,-.499797927778515949102,-52,77, + 4503599895531722.,8997997354966366.,.484381708965535937875,-52,77, + 4503599895616737.,9000849984832963.,.270104605678724881656,-52,77, + 4503599895750332.,9005332688908935.,.135537190479242264991,-52,77, + 4503599929436228.,5067821862007472.,.384955838830198076906,-52,76, + 4503599929437832.,5067848772660131.,.427089026658694868333,-52,76, + 4503599929444088.,5067953730916388.,-.450295995074867800242,-52,76, + 4503599929444104.,5067953999351826.,-.455284411435076128207,-52,76, + 4503599929444232.,5067956146835330.,-.495226074587527783445,-52,76, + 4503599929444248.,5067956415270767.,.499776925984567630811,-52,76, + 4503599943560043.,5304780140741667.,-.388419077063682713126,-52,76, + 4503599943599556.,5305443058830929.,.428920949890629064674,-52,76, + 4503599943605374.,5305540668666764.,-.499743574306536729414,-52,76, + 4503599943605447.,5305541893403446.,-.498618244205633112482,-52,76, + 4503599943605739.,5305546792350174.,-.494315444494144115702,-52,76, + 4503599943606295.,5305556120481614.,.499300712846452016048,-52,76, + 4503626898691795.,7148991605447137.,.487023070822068187174,-52,70, + 4503626898704691.,7148994986035690.,.498028707625121758896,-52,70, + 4503626898712289.,7148996977793741.,.499826064298891833350,-52,70, + 4503626898712638.,7148997069281444.,-.499777255300782433472,-52,70, + 4503626898712907.,7148997139797752.,.491927668735814792244,-52,70, + 4503626898712911.,7148997140846322.,.142361910918186306901,-52,70, + 4503626898712912.,7148997141108465.,-.445029528681738204365,-52,70, + 4503626898712924.,7148997144254174.,-.493726808420974905390,-52,70, + 4503626898712987.,7148997160769146.,-.499387664565901070069,-52,70, + 4503626898717587.,7148998366624243.,.499354130911352616383,-52,70, + 4504149383182063.,9006649505639629.,-.499965043636543102540,-52,66, + 4504149383184383.,9006649543645869.,.066381869991386236328,-52,66, + 4504149383184384.,9006649543662251.,.066625980819519928801,-52,66, + 4504149383184385.,9006649543678633.,.066870091644016530482,-52,66, + 4504149383184484.,9006649545300451.,.091037045265580680099,-52,66, + 4504149383185904.,9006649568562891.,.437670235251261404552,-52,66, + 4504149383186156.,9006649572691155.,.499184654846514973549,-52,66, + 4504149383186159.,9006649572740301.,.499916967974318859804,-52,66, + 5103246950986835.,9007199254735655.,.000261620544736230628,-52,56, + 5103246950986885.,9007199254736361.,-.002216311730109811802,-52,56, + 5103246950987185.,9007199254740597.,-.017083905524446016630,-52,56, + 5103246950987202.,9007199254740837.,.022073597486419637746,-52,56, + 5103246950987212.,9007199254740978.,.221578011021849438263,-52,56, + 5103246950987213.,4503599627370496.,.170764226187688600303,-52,55, + 5103246950987218.,4503599627370531.,.470640329571487254738,-52,55, + 5103246950987652.,4503599627373595.,.499886103153420948847,-52,55, + 5103246950991687.,4503599627402082.,.499901520180382233220,-52,55, + 5103246951015897.,4503599627573004.,.499993549340163267038,-52,55, + 5782736388127205.,9007199254728821.,.499938316859417888352,-52,55, + 5782736388128264.,9007199254735420.,-.499827500573889070338,-52,55, + 5782736388129119.,9007199254740746.,.497528708265516827452,-52,55, + 5782736388129158.,9007199254740989.,.483373026544672066631,-52,55, + 5782736388129159.,4503599627370498.,-.143110354442044545459,-52,54, + 5782736388129323.,4503599627371009.,-.249796659607748176222,-52,54, + 5782736388144583.,4503599627418547.,-.249998045131436070032,-52,54, + 7425180500309915.,9007199254612425.,-.000016407502644417249,-52,54, + 7425180500362069.,9007199254738957.,.000090661901763466088,-52,54, + 7425180500362895.,9007199254740961.,-.022609647442489585602,-52,54, + 7425180500362907.,9007199254740990.,.090862018763941358247,-52,54, + 7425180500362908.,4503599627370496.,.258492328807237573204,-52,53, + 7425180500362909.,4503599627370497.,.471553648232504303913,-52,53, + 7425180500362942.,4503599627370538.,-.497422810733785233983,-52,53, + 7425180500363003.,4503599627370611.,.499317674206847537749,-52,53, + 7425180500363294.,4503599627370965.,-.499838373051943676844,-52,53, + 7425180500370353.,4503599627379528.,-.499984554609018131420,-52,53, + 9007199254740991.,6243314768165358.,.208881167333858563529,-52,53, + 4503599627370496.,6243314768165359.,.208881167333858619040,-51,53, + 4503599627370497.,6243314768165361.,.208881167333858396996,-51,53, + 6121026514828277.,9007199254682431.,.000012107681292013318,-51,53, + 6121026514864475.,9007199254735697.,.000058391970979837245,-51,53, + 6121026514867196.,9007199254739701.,-.000103896586943812489,-51,53, + 6121026514867828.,9007199254740631.,-.000876615095469726941,-51,53, + 6121026514868021.,9007199254740915.,.002051969264907740602,-51,53, + 6121026514868073.,4503599627370496.,-.239512133537380136096,-51,52, + 6121026514868074.,4503599627370496.,.496246748805504486123,-51,52, + 6121026514877448.,4503599627377394.,-.499990174275792473403,-51,52, + 5812361472633837.,7392227815811744.,-.499996487747482643761,-50,52, + 5812361472642284.,7392227815818289.,-.499959672681051068295,-50,52, + 5812361472644358.,7392227815819896.,-.499832249671428753789,-50,52, + 5812361472644509.,7392227815820012.,.499694867410542235092,-50,52, + 5812361472645264.,7392227815820597.,.497330452774804019098,-50,52, + 5812361472645304.,7392227815820628.,.490582669215824127209,-50,52, + 5995926477572465.,7532259951691896.,-.499998486522667653664,-50,52, + 5995926477583277.,7532259951700017.,-.499957338601110639245,-50,52, + 5995926477585471.,7532259951701664.,.435123151522419151606,-50,52, + 5995926477585503.,7532259951701688.,.470639366506085589556,-50,52, + 5995926477585527.,7532259951701706.,.497276527743751236559,-50,52, + 5995926477585531.,7532259951701710.,-.498283945383311504062,-50,52, + 5995926477586431.,7532259951702386.,-.499390399023387991476,-50,52, + 5995926477586881.,7532259951702724.,-.499943625881477006390,-50,52, + 6025316007234149.,7554280793332148.,.499910923288232836693,-50,52, + 6025316007235127.,7554280793332880.,-.497693471268437940105,-50,52, + 6025316007235135.,7554280793332885.,.481876226935108215792,-50,52, + 6025316007235167.,7554280793332909.,.400155019749213446770,-50,52, + 6025316007235226.,7554280793332953.,.499481543999886951592,-50,52, + 6025316007238750.,7554280793335587.,.499933601850170731358,-50,52, + 6025316007252553.,7554280793345905.,-.499998378220373344451,-50,52, + 6084210162765922.,7598087261799797.,-.499989980853441306341,-50,52, + 6084210162778436.,7598087261809060.,-.498839600523765459011,-50,52, + 6084210162778440.,7598087261809062.,.462004622065590642369,-50,52, + 6084210162778717.,7598087261809268.,-.499532963626234200423,-50,52, + 6084210162780326.,7598087261810459.,-.499944427269840296363,-50,52, + 6084210162804869.,7598087261828625.,.499994283092642753933,-50,52, + 6369701198560743.,7804602721052906.,-.499832060988220170665,-50,52, + 6369701198560999.,7804602721053087.,-.498954835015581541817,-50,52, + 6369701198561098.,7804602721053156.,.497478154714074261381,-50,52, + 6369701198561115.,7804602721053169.,-.482932341999124591816,-50,52, + 6369701198561866.,7804602721053700.,-.499890167420096221218,-50,52, + 6369701198564112.,7804602721055287.,.499993619296197001489,-50,52, + 6369701198581213.,7804602721067378.,.499999227218561790664,-50,52, + 6469155038057471.,7874376729793168.,.499977818608420459551,-50,52, + 6469155038058488.,7874376729793876.,.499831600246132150713,-50,52, + 6469155038060861.,7874376729795528.,.499490423634614737817,-50,52, + 6469155038098332.,7874376729821615.,-.499997321599220199563,-50,52, + 6482505237454243.,7883661095356093.,-.499804847875443283780,-50,52, + 6482505237454338.,7883661095356158.,.499673583431249996675,-50,52, + 6482505237454361.,7883661095356174.,.478494677326409255672,-50,52, + 6482505237454374.,7883661095356184.,-.489997747863308414894,-50,52, + 6482505237458115.,7883661095358782.,.499989741020018908074,-50,52, + 6482505237467700.,7883661095365441.,.499997775059515941031,-50,52, + 6527239159276408.,7914632413699546.,.499998062005897719355,-50,52, + 6527239159283088.,7914632413704156.,-.499967357591999639349,-50,52, + 6527239159286662.,7914632413706621.,.453045153997563760738,-50,52, + 6527239159286678.,7914632413706632.,.492566194896999341417,-50,52, + 6527239159286707.,7914632413706653.,-.498301918472842641940,-50,52, + 6527239159287136.,7914632413706948.,.498855990631868846230,-50,52, + 6527239159289439.,7914632413708537.,.499915814700611072314,-50,52, + 6551699081992638.,7931477485558779.,-.499997597990562108744,-50,52, + 6551699081996771.,7931477485561620.,-.499971959556564868611,-50,52, + 6551699081998284.,7931477485562660.,-.472621659750485401358,-50,52, + 6551699081998428.,7931477485562759.,-.487863931295008248279,-50,52, + 6551699081998540.,7931477485562836.,-.499719031386696795755,-50,52, + 6698297894360613.,8031137779814784.,.499991436762210492420,-50,52, + 6698297894367358.,8031137779819319.,.499772825004146611887,-50,52, + 6698297894367477.,8031137779819400.,-.490594263961860384291,-50,52, + 6698297894367492.,8031137779819410.,-.405346418033306682083,-50,52, + 6698297894367535.,8031137779819439.,-.494302593038244571574,-50,52, + 6698297894406186.,8031137779845425.,.499996864091765211677,-50,52, + 7036523586224213.,8252988659478625.,.499987509838435045174,-50,52, + 7036523586229219.,8252988659481829.,.499726634752521724760,-50,52, + 7036523586229244.,8252988659481846.,-.499475626914634273991,-50,52, + 7036523586229494.,8252988659482006.,-.491498243589320961304,-50,52, + 7036523586229519.,8252988659482022.,-.490700505257102300015,-50,52, + 7036523586229530.,8252988659482029.,-.450349500390944098839,-50,52, + 7036523586230483.,8252988659482639.,-.499939715210110474650,-50,52, + 7036523586239256.,8252988659488254.,-.499997383947500670811,-50,52, + 7060691919401944.,8268430659764162.,-.499998004904786892357,-50,52, + 7060691919442614.,8268430659790102.,.498268938985859419484,-50,52, + 7060691919442625.,8268430659790110.,-.485478763606696380110,-50,52, + 7060691919443169.,8268430659790457.,-.499910600924911366024,-50,52, + 7060691919446430.,8268430659792536.,.499975020767025094660,-50,52, + 7060691919454675.,8268430659797795.,.499992480710799570141,-50,52, + 7099291104851518.,8292983755270752.,.499979184889007122281,-50,52, + 7099291104853345.,8292983755271911.,.499715592645179081944,-50,52, + 7099291104853572.,8292983755272056.,-.497580431151979431007,-50,52, + 7099291104853665.,8292983755272114.,.499122078920982819846,-50,52, + 7099291104854852.,8292983755272868.,-.499954486129629218299,-50,52, + 7099291104957659.,8292983755338085.,.499990762264445175053,-50,52, + 7214758118816450.,8365643625698012.,.499995594161778547405,-50,52, + 7214758118828316.,8365643625705419.,.499966800530457348260,-50,52, + 7214758118828787.,8365643625705714.,-.492196823671727975914,-50,52, + 7214758118828795.,8365643625705719.,-.498433148499107086964,-50,52, + 7236286776332598.,8379062243714833.,-.496770038147226656862,-50,52, + 7236286776332741.,8379062243714922.,-.498812021844581742766,-50,52, + 7236286776332884.,8379062243715010.,.499145994456304436721,-50,52, + 7236286776334780.,8379062243716191.,-.499956111259032092370,-50,52, + 7236286776343598.,8379062243721679.,-.499999558464100304440,-50,52, + 7243607294744579.,8383615963049989.,-.499997209394766443791,-50,52, + 7243607294772866.,8383615963067576.,-.499836169802160622468,-50,52, + 7243607294773096.,8383615963067718.,.499069229538313770940,-50,52, + 7243607294773244.,8383615963067811.,-.484243817844999255355,-50,52, + 7243607294773252.,8383615963067815.,.489631152566659994774,-50,52, + 7243607294773289.,8383615963067838.,.493802890720512571359,-50,52, + 7243607294773823.,8383615963068170.,.499957165684650532491,-50,52, + 7243607294778378.,8383615963071003.,-.499981557292092822300,-50,52, + 7273994527054826.,8402469232294855.,.499992920249544324162,-50,52, + 7273994527108596.,8402469232328147.,-.499984721426097099622,-50,52, + 7273994527111261.,8402469232329797.,-.499704653716089567391,-50,52, + 7273994527114459.,8402469232331777.,-.499368573262042496322,-50,52, + 7273994527114522.,8402469232331816.,-.493733434725255784471,-50,52, + 7273994527114585.,8402469232331855.,-.488098296188806900068,-50,52, + 7273994527114593.,8402469232331859.,.464998229339606880416,-50,52, + 7311312768882809.,8425515272166709.,-.499799626921134359292,-50,52, + 7311312768883171.,8425515272166931.,.483830897914762810588,-50,52, + 7311312768883197.,8425515272166947.,.499229775388739308620,-50,52, + 7311312768883848.,8425515272167349.,-.499821407877568578720,-50,52, + 7311312768891121.,8425515272171829.,-.499973877119193106348,-50,52, + 7311312768892160.,8425515272172469.,-.499995658803223037670,-50,52, + 7548454164495005.,8569269960100435.,-.415629299173498029860,-50,52, + 7548454164495030.,8569269960100450.,-.499993828557305331677,-50,52, + 7571434122736081.,8582959560062135.,.499993695315115219330,-50,52, + 7571434122739398.,8582959560064109.,-.499948214451506448894,-50,52, + 7571434122741328.,8582959560065256.,.492247176814995578202,-50,52, + 7571434122741333.,8582959560065259.,.466320221869710107285,-50,52, + 7571434122741365.,8582959560065279.,-.499612289780163414314,-50,52, + 7571434122754016.,8582959560072804.,-.499993698662456971987,-50,52, + 7938013874342735.,8795892472914501.,-.499997670690379376709,-50,52, + 7938013874374192.,8795892472932347.,.499985009888467103216,-50,52, + 7938013874374437.,8795892472932486.,.499730559305467245958,-50,52, + 7938013874374927.,8795892472932764.,.499221658126597207126,-50,52, + 7938013874374934.,8795892472932768.,.470642959538203309561,-50,52, + 7969971748344972.,8813987241979349.,.499887285977682949975,-50,52, + 7969971748345264.,8813987241979515.,-.499390915323148951760,-50,52, + 7969971748345287.,8813987241979527.,.497241281149473891977,-50,52, + 7969971748345333.,8813987241979553.,.490505674094607061159,-50,52, + 7969971748386542.,8813987242002839.,.499904937218017502834,-50,52, + 7969971748594392.,8813987242120289.,.499991355622772890391,-50,52, + 8319337573402624.,9007199254720249.,.000001074151121414781,-50,52, + 8319337573429631.,9007199254734869.,-.000021397445556592607,-50,52, + 8319337573440637.,9007199254740827.,.000487815350920277103,-50,52, + 8319337573440903.,9007199254740971.,-.002770820890201957125,-50,52, + 8319337573440940.,9007199254740991.,.026851098128525311803,-50,52, + 8319337573440941.,4503599627370496.,-.215903884462511918091,-50,51, + 8319337573440942.,4503599627370496.,.054766682010713475381,-50,51, + 8319337573440951.,4503599627370498.,.490801780269740552554,-50,51, + 8319337573441919.,4503599627370760.,.499910126336379151407,-50,51, + 8319337573444350.,4503599627371419.,-.499942777426139944464,-50,51, + 8345810168402702.,4510753603496676.,-.499996544065231629445,-50,51, + 8345810168410841.,4510753603498871.,.499949987544314051443,-50,51, + 8345810168413554.,4510753603499603.,.499932164271588654690,-50,51, + 8345810168414614.,4510753603499890.,-.499337608247570611133,-50,51, + 8345810168414918.,4510753603499972.,-.476486675089956737898,-50,51, + 8345810168414929.,4510753603499974.,.491445431043979859299,-50,51, + 8345810168414955.,4510753603499982.,-.493442318094003733955,-50,51, + 8345810168415144.,4510753603500033.,-.498972494520772083982,-50,51, + 8515808456091126.,4556160286208384.,.494333930669761973987,-50,51, + 8515808456091145.,4556160286208390.,-.481575088348004557562,-50,51, + 8515808456091213.,4556160286208407.,.499382106746212848578,-50,51, + 8515808456091421.,4556160286208462.,.499957056445280680373,-50,51, + 8515808456100138.,4556160286210768.,-.499986038383875367797,-50,51, + 8515808456115787.,4556160286214906.,-.499998604930366469765,-50,51, + 8579801239787095.,4573018370125797.,-.499997573041462082347,-50,51, + 8579801239792395.,4573018370127188.,-.495861348519788353937,-50,51, + 8579801239792414.,4573018370127192.,.490757253038271933005,-50,51, + 8579801239792475.,4573018370127209.,-.499572499854345995172,-50,51, + 8579801239794643.,4573018370127777.,.499855298904599949152,-50,51, + 8579801239795988.,4573018370128130.,.499961566973836743200,-50,51, + 8666221177826854.,4595586128012986.,-.499996943974396688146,-50,51, + 8666221177831988.,4595586128014320.,-.499859371254851049633,-50,51, + 8666221177833335.,4595586128014669.,.499787163568157578138,-50,51, + 8666221177833462.,4595586128014702.,.499011447101002378153,-50,51, + 8666221177833589.,4595586128014735.,.498235730633363587753,-50,51, + 8666221177833593.,4595586128014737.,-.462418622641215568190,-50,51, + 8746614672445921.,4616378989560418.,.499989514333214002469,-50,51, + 8746614672447094.,4616378989560720.,.486675834651382427876,-50,51, + 8746614672447102.,4616378989560723.,-.453738921902426399061,-50,51, + 8746614672447129.,4616378989560729.,.497361274728454902444,-50,51, + 8746614672447230.,4616378989560755.,.499624973236376176106,-50,51, + 8746614672487005.,4616378989570996.,-.499992791169488866989,-50,51, + 8848436869422460.,4642441517787156.,-.499697735804465580036,-50,51, + 8848436869422503.,4642441517787166.,.443183297010698782407,-50,51, + 8848436869422515.,4642441517787169.,.497010561982363067002,-50,51, + 8848436869423073.,4642441517787311.,.499978383160178515912,-50,51, + 8848436869444642.,4642441517792801.,-.499998442727453361392,-50,51, + 8957999189153254.,4670152343674959.,.499980493873175619594,-50,51, + 8957999189155621.,4670152343675555.,-.499947900171280188477,-50,51, + 8957999189156349.,4670152343675737.,.499651647382926613380,-50,51, + 8957999189156476.,4670152343675769.,.424032337682755106173,-50,51, + 8957999189156512.,4670152343675778.,.473463084539317071497,-50,51, + 8957999189156532.,4670152343675784.,-.499075389429275328760,-50,51, + 8957999189168184.,4670152343678713.,-.499990325439406000454,-50,51, + 8957999189195677.,4670152343685623.,.499996414032666630088,-50,51, + 4630540339110239.,4745078389508945.,-.499995554740397414060,-49,51, + 4630540339111078.,4745078389509352.,.499914893026984385162,-49,51, + 4630540339111771.,4745078389509690.,-.498967180565359945431,-49,51, + 4630540339111804.,4745078389509706.,-.451294898356729598641,-49,51, + 4630540339111808.,4745078389509707.,.493877499486732975045,-49,51, + 4630540339111917.,4745078389509760.,.499825340720441350608,-49,51, + 4630540339132600.,4745078389519819.,-.499998532899338928963,-49,51, + 4751802502281348.,4803288439326168.,-.499993663226666363226,-49,51, + 4751802502333880.,4803288439351062.,-.462887729716299754018,-49,51, + 4751802502333882.,4803288439351062.,.484878854681625365185,-49,51, + 4751802502333939.,4803288439351089.,.496226510022323571402,-49,51, + 4751802502333958.,4803288439351099.,-.499990938197515696129,-49,51, + 4918372782547166.,4880871320313770.,.499959380153030034142,-49,51, + 4918372782547332.,4880871320313847.,-.499545009150502676905,-49,51, + 4918372782548328.,4880871320314303.,-.496571345025565890529,-49,51, + 4918372782548459.,4880871320314362.,.479723383883593443011,-49,51, + 4918372782548470.,4880871320314368.,-.484099196131740687586,-49,51, + 4918372782548494.,4880871320314379.,-.496075734347054250690,-49,51, + 4918372782559273.,4880871320319313.,.499961534280485578504,-49,51, + 4918372782716664.,4880871320391372.,.499988296281180436963,-49,51, + 4961703275491791.,4900622630108037.,.499996937628427407898,-49,51, + 4961703275493329.,4900622630108735.,.499841175412804129264,-49,51, + 4961703275494867.,4900622630109433.,.499685412980818907799,-49,51, + 4961703275494889.,4900622630109443.,.484078503503629245777,-49,51, + 4961703275494911.,4900622630109453.,.468471594026395313343,-49,51, + 5155187794656363.,4986764021219317.,.499996021007423342232,-49,51, + 5155187794693469.,4986764021235526.,-.499982541602095140049,-49,51, + 5155187794695083.,4986764021236230.,.499533291462826984392,-49,51, + 5155187794695447.,4986764021236389.,.495706626770386014128,-49,51, + 5155187794695463.,4986764021236396.,.484549410739691467072,-49,51, + 5155187794695479.,4986764021236403.,.473392194708975228957,-49,51, + 5155187794695621.,4986764021236465.,.499371902435418106683,-49,51, + 5357710127477073.,5073532898967568.,-.499996782969056829458,-49,51, + 5357710127495120.,5073532898975152.,.499988396450992579323,-49,51, + 5357710127495139.,5073532898975160.,.485526143343329572707,-49,51, + 5357710127495151.,5073532898975166.,-.470976332303630075077,-49,51, + 5363132893503144.,5075810888589216.,-.499997474212516201160,-49,51, + 5363132893509134.,5075810888591731.,-.499688549050892643955,-49,51, + 5363132893510332.,5075810888592234.,-.499626764355643716007,-49,51, + 5363132893510594.,5075810888592344.,-.494604904946447359444,-49,51, + 5363132893510644.,5075810888592364.,.498719877382941302410,-49,51, + 5365726582682621.,5076899628531769.,-.482128857008402606800,-49,51, + 5365726582682671.,5076899628531790.,-.498951844665749075515,-49,51, + 5365726582683088.,5076899628531965.,-.499255561735634075824,-49,51, + 5365726582683922.,5076899628532315.,-.499862995916204630975,-49,51, + 5365726582687370.,5076899628533762.,-.499976225575840755262,-49,51, + 5365726582697297.,5076899628537927.,.499987797413126353479,-49,51, + 5365726582749963.,5076899628560029.,.499998269359477276050,-49,51, + 5483096108824850.,5125624360522070.,-.499549436476447383441,-49,51, + 5483096108824889.,5125624360522086.,-.483015895803896767159,-49,51, + 5483096108824906.,5125624360522092.,.498550006540512721180,-49,51, + 5483096108825393.,5125624360522292.,.499879091338816115490,-49,51, + 5483096108826966.,5125624360522939.,-.499934768355982213459,-49,51, + 5483096108848014.,5125624360531583.,-.499986991435419847061,-49,51, + 5483096108853276.,5125624360533743.,.499999947610066989814,-49,51, + 5494838942547461.,5130441754822584.,.499976622228774097584,-49,51, + 5494838942548930.,5130441754823187.,-.499862701612224312874,-49,51, + 5494838942549113.,5130441754823261.,.494030697789094146192,-49,51, + 5494838942549135.,5130441754823271.,-.490309986436052139472,-49,51, + 5494838942553847.,5130441754825201.,.499994373237171210552,-49,51, + 5525992699368825.,5143172592738255.,.499950291049311357303,-49,51, + 5525992699368933.,5143172592738300.,-.490874686735784423009,-49,51, + 5525992699369014.,5143172592738333.,-.483993420075170708913,-49,51, + 5525992699371441.,5143172592739321.,.499967495568419903458,-49,51, + 5525992699376673.,5143172592741454.,-.499998096907293367544,-49,51, + 7684006504407823.,9007199254710437.,.000040723024023824045,-47,51, + 7684006504511812.,9007199254740911.,-.000400660416015497478,-47,51, + 7684006504512085.,9007199254740991.,.002310005576340653528,-47,51, + 7684006504512088.,4503599627370496.,-.059269663882209237237,-47,50, + 7684006504512089.,4503599627370496.,.087255447227664203292,-47,50, + 7684006504514071.,4503599627370787.,-.499974333040649862198,-47,50, + 5426391276978787.,6453179503439572.,-.499833195063644493814,-44,50, + 5426391276979722.,6453179503439765.,.499522760682348358036,-44,50, + 5426391276979828.,6453179503439787.,.493032633738073222084,-44,50, + 5426391276979838.,6453179503439790.,-.432107944275559816940,-44,50, + 5426391276980016.,6453179503439827.,-.499610232918867683853,-44,50, + 5426391276982180.,6453179503440275.,.499968684826271917274,-44,50, + 5426391276986802.,6453179503441234.,.499993526101878181534,-44,50, + 5426971710398363.,6453299928773989.,-.499887225239527311861,-44,50, + 5426971710399515.,6453299928774227.,.498353763814224128842,-44,50, + 5426971710399568.,6453299928774238.,.493932559316344399647,-44,50, + 5426971710399597.,6453299928774245.,-.489618665786314490498,-44,50, + 5426971710399944.,6453299928774317.,-.499697117879244035577,-44,50, + 5426971710402436.,6453299928774833.,.499970021421895151748,-44,50, + 5426971710408090.,6453299928776007.,-.499982625682915753997,-44,50, + 5426971710450160.,6453299928784735.,-.499984054879848012643,-44,50, + 5562950707688706.,6481163010612091.,.499987563271112066104,-44,50, + 5562950707700994.,6481163010614578.,.499923792271353378378,-44,50, + 5562950707703084.,6481163010615002.,-.499598773492534160137,-44,50, + 5562950707703168.,6481163010615019.,-.498622646952395169822,-44,50, + 5562950707703178.,6481163010615021.,-.474696917602395723006,-44,50, + 5562950707704087.,6481163010615205.,-.499848119702642338905,-44,50, + 5562950707732759.,6481163010621008.,-.499996943292287366050,-44,50, + 5565768841055106.,6481733235452177.,.499999089506675966456,-44,50, + 5565768841055368.,6481733235452231.,-.499996056385886492576,-44,50, + 5565768841076852.,6481733235456577.,-.499598028066131183073,-44,50, + 5565768841148116.,6481733235470993.,-.498277859119638727905,-44,50, + 5565768841151260.,6481733235471629.,-.498219620623298113821,-44,50, + 5565768841151344.,6481733235471645.,.494148347575875025658,-44,50, + 5565768841151349.,6481733235471647.,-.494401178126563231462,-44,50, + 5637442019535926.,6496139449339519.,-.432398346079460096950,-44,50, + 5637442019535941.,6496139449339522.,-.436624989277894613802,-44,50, + 5637442019536141.,6496139449339562.,-.492980231924449854475,-44,50, + 5637442019536166.,6496139449339566.,.499975362744631101721,-44,50, + 5637442019539005.,6496139449340134.,-.499987306778562546636,-44,50, + 5637442019591529.,6496139449350623.,.499998815000147998241,-44,50, + 5666178554260214.,6501864080887492.,.499880372417386226210,-44,50, + 5666178554261256.,6501864080887700.,-.449160732574806324362,-44,50, + 5666178554261281.,6501864080887705.,-.481527361773743163820,-44,50, + 5666178554261296.,6501864080887707.,.499052660706884211904,-44,50, + 5666178554261759.,6501864080887799.,.499622687938368615670,-44,50, + 5666178554267320.,6501864080888904.,.499989688288957887607,-44,50, + 5666178554286630.,6501864080892742.,-.499994715605921440566,-44,50, + 5772925638452655.,6522877967813760.,-.499995902524807686115,-44,50, + 5772925638455875.,6522877967814388.,-.499926772243932137353,-44,50, + 5772925638471975.,6522877967817528.,-.499581126093805918436,-44,50, + 5772925638472662.,6522877967817661.,.486769026438412802563,-44,50, + 5772925638472672.,6522877967817663.,.437079800128720375087,-44,50, + 5772925638472739.,6522877967817677.,-.495838016146306034182,-44,50, + 5772925638472780.,6522877967817685.,-.499563844016173111704,-44,50, + 5835612929789917.,6535038034498068.,.499999186059144108191,-44,50, + 5835612929829583.,6535038034505721.,.499991129580119284903,-44,50, + 5835612929831848.,6535038034506159.,-.499933700506118250200,-44,50, + 5835612929832216.,6535038034506230.,-.499479986381621612371,-44,50, + 5835612929832221.,6535038034506230.,.465200091255908653099,-44,50, + 5896103646768513.,6546648798487775.,-.454646017122895260299,-44,50, + 5896103646768518.,6546648798487776.,-.499863016098398944215,-44,50, + 5896103646771194.,6546648798488286.,.499999132095851799464,-44,50, + 6004329071309680.,6567127777311729.,-.499995124959623919098,-44,50, + 6004329071330953.,6567127777315718.,-.499986336900673995988,-44,50, + 6004329071334617.,6567127777316405.,-.446160728425270592355,-44,50, + 6004329071334622.,6567127777316405.,.491412723551074233181,-44,50, + 6004329071335022.,6567127777316480.,.497288881656130652896,-44,50, + 6004329071335198.,6567127777316513.,.499874391220772495607,-44,50, + 6004329071335214.,6567127777316517.,-.499890562455217124206,-44,50, + 6029337333089625.,6571807455008864.,-.499999056696366627485,-44,50, + 6029337333112968.,6571807455013223.,-.499984056901929519548,-44,50, + 6029337333124926.,6571807455015456.,-.499847861256575536176,-44,50, + 6029337333126072.,6571807455015670.,-.499333052975196964308,-44,50, + 6029337333126206.,6571807455015695.,-.476585248170082800918,-44,50, + 6029337333126222.,6571807455015698.,-.488794465506822753040,-44,50, + 6029337333126238.,6571807455015700.,.498996317156429366163,-44,50, + 6029337333128530.,6571807455016129.,-.499974066414622878470,-44,50, + 6304262280168309.,6622010034093840.,-.471526538028809210135,-44,50, + 6304262280168320.,6622010034093841.,.493001336109416757381,-44,50, + 6304262280168572.,6622010034093886.,.498548998184200155910,-44,50, + 6304262280168628.,6622010034093896.,.499781811978352157402,-44,50, + 6304262280170263.,6622010034094189.,-.499938713892264595496,-44,50, + 6304262280173505.,6622010034094768.,-.499996172753861661496,-44,50, + 6305910042742220.,6622304275233693.,.499999352969439885584,-44,50, + 6305910042763951.,6622304275237573.,.499985035462690838676,-44,50, + 6305910042774094.,6622304275239384.,.499932330942286744869,-44,50, + 6305910042774122.,6622304275239389.,.499242054321221421504,-44,50, + 6305910042774374.,6622304275239434.,.493029564730634586368,-44,50, + 6305910042774385.,6622304275239436.,.457044098915131506127,-44,50, + 6305910042775539.,6622304275239643.,-.499976587566679129059,-44,50, + 6535180284081975.,6662513131574840.,.499993506342868966982,-44,50, + 6535180284099632.,6662513131577882.,.499416768770463438805,-44,50, + 6535180284100166.,6662513131577974.,.498493170190608295297,-44,50, + 6535180284101472.,6662513131578199.,.499979650036665918547,-44,50, + 6535815775784050.,6662622610614610.,-.499828122257909234724,-44,50, + 6535815775784526.,6662622610614691.,.498865543916981158655,-44,50, + 6535815775784584.,6662622610614701.,.490303007442084844859,-44,50, + 6535815775785687.,6662622610614891.,.499880977566404482011,-44,50, + 6535815775788723.,6662622610615414.,.499952343944260017578,-44,50, + 6535815775791759.,6662622610615938.,-.499976289920827068119,-44,50, + 6535815775846883.,6662622610625434.,-.499998075643026704343,-44,50, + 6544022097449492.,6664035395406060.,-.499999591379107823014,-44,50, + 6544022097454043.,6664035395406843.,-.499820231341749674258,-44,50, + 6544022097454415.,6664035395406907.,-.497168787302124262641,-44,50, + 6544022097454688.,6664035395406953.,.472518965982705450429,-44,50, + 6544022097454694.,6664035395406955.,-.495180204274792825340,-44,50, + 6616319171106483.,6676405908556587.,.466319041636165963721,-44,50, + 6616319171106495.,6676405908556590.,-.491639374107554657079,-44,50, + 6616319171106683.,6676405908556622.,-.499654554092994581071,-44,50, + 6616319171107682.,6676405908556792.,-.499692664775555078605,-44,50, + 6616319171114675.,6676405908557982.,-.499959440272192216321,-44,50, + 6616319171115674.,6676405908558152.,-.499997551160099472420,-44,50, + 6702751591192446.,6691018882918792.,-.499996384250277145288,-44,50, + 6702751591215235.,6691018882922619.,.499986594121881577567,-44,50, + 6702751591225802.,6691018882924395.,-.499977422210189206922,-44,50, + 6702751591225879.,6691018882924407.,.434157409874026775543,-44,50, + 6702751591225909.,6691018882924412.,.473430721075629143659,-44,50, + 6702751591225927.,6691018882924415.,.496994707796579738297,-44,50, + 6729307497424001.,6695470818561909.,-.499996535290328408797,-44,50, + 6729307497432512.,6695470818563333.,-.499962237595402711781,-44,50, + 6729307497437156.,6695470818564110.,-.498886068868888348835,-44,50, + 6729307497437204.,6695470818564118.,-.467867193742731936225,-44,50, + 6729307497437228.,6695470818564122.,-.452357756179675211824,-44,50, + 6729307497437670.,6695470818564195.,.499941052270725555847,-44,50, + 6743769751755947.,6697887943730548.,-.499998531122083776010,-44,50, + 6743769751757522.,6697887943730810.,.452684990612143432710,-44,50, + 6743769751757534.,6697887943730812.,.456134007920358953488,-44,50, + 6743769751757666.,6697887943730834.,.494073198310494393532,-44,50, + 6743769751757684.,6697887943730837.,.499246724272752168237,-44,50, + 6743769751758846.,6697887943731031.,.499893233597086864759,-44,50, + 6743769751765225.,6697887943732097.,-.499999983022519647772,-44,50, + 6754791752059357.,6699726609557164.,-.499994904110287693864,-44,50, + 6754791752059369.,6699726609557166.,-.499814975840494407879,-44,50, + 6754791752060215.,6699726609557307.,-.487130032829023527838,-44,50, + 6754791752062087.,6699726609557619.,-.459061222823865049905,-44,50, + 6754791752062147.,6699726609557629.,-.458161581478976092478,-44,50, + 6754791752103819.,6699726609564575.,-.499997367531957928478,-44,50, + 6794379564777970.,6706305911042827.,.499974449185760637738,-44,50, + 6794379564778145.,6706305911042856.,.499308651659829325014,-44,50, + 6794379564778157.,6706305911042858.,.487834425543738098722,-44,50, + 6794379564778169.,6706305911042860.,.476360199427643360365,-44,50, + 6794379564797492.,6706305911046062.,.499987591430036445975,-44,50, + 6794379564817014.,6706305911049298.,-.499999275620674823590,-44,50, + 6990987887131860.,6738423488362519.,.499999060890730015200,-44,50, + 6990987887144353.,6738423488364531.,.499985795674119267555,-44,50, + 6990987887146905.,6738423488364943.,-.499936869687106277101,-44,50, + 6990987887148122.,6738423488365138.,.498140762021576094883,-44,50, + 6990987887148184.,6738423488365148.,.483252358705903715950,-44,50, + 6990987887148190.,6738423488365149.,.449553480965672657185,-44,50, + 6990987887148240.,6738423488365158.,-.497937166869618417412,-44,50, + 6990987887148923.,6738423488365267.,.499340583694538936263,-44,50, + 7006147211081704.,6740862257150055.,-.498261792520011060594,-44,50, + 7006147211081716.,6740862257150056.,.430158846535544283715,-44,50, + 7006147211081816.,6740862257150073.,-.499669161334956295624,-44,50, + 7006147211083241.,6740862257150302.,-.499718273514512302222,-44,50, + 7006147211090366.,6740862257151447.,-.499963835110946503153,-44,50, + 7006147211091791.,6740862257151675.,.499987052430035823073,-44,50, + 7006147211111685.,6740862257154873.,-.499996842440843965879,-44,50, + 7054682820201247.,6748635120445515.,.499998921087328246599,-44,50, + 7054682820215013.,6748635120447712.,.499993477653427008916,-44,50, + 7054682820216993.,6748635120448029.,-.499716734670688591083,-44,50, + 7054682820221448.,6748635120448740.,-.499064712724221894594,-44,50, + 7054682820221542.,6748635120448755.,-.497030753118964901889,-44,50, + 7054682820221548.,6748635120448755.,.460545882600512800191,-44,50, + 7138546116889461.,6761940447542520.,-.499999846056318538303,-44,50, + 7138546116897044.,6761940447543715.,.499697260794741630720,-44,50, + 7138546116897513.,6761940447543789.,.470930010734975992439,-44,50, + 7138546116897526.,6761940447543792.,-.478694667838178417270,-44,50, + 7138546116897621.,6761940447543807.,-.495182703565189370443,-44,50, + 7138546116897640.,6761940447543810.,-.498480310710615489205,-44,50, + 7138546116898255.,6761940447543907.,-.499955489369505148609,-44,50, + 7223985620314623.,6775336061277155.,.497419785738619009366,-44,50, + 7223985620314655.,6775336061277160.,.484804715969798261483,-44,50, + 7223985620314777.,6775336061277179.,.499209762475966486855,-44,50, + 7223985620314854.,6775336061277192.,-.499895249155551649557,-44,50, + 7223985620315964.,6775336061277365.,-.499980481779961291843,-44,50, + 7322656671992855.,6790610435874620.,-.499981539205459484995,-44,50, + 7322656671993050.,6790610435874649.,.482372088546730811493,-44,50, + 7322656671993193.,6790610435874671.,.469431415564496255020,-44,50, + 7322656671993200.,6790610435874673.,-.454278967029050725846,-44,50, + 7322656672009856.,6790610435877233.,.499987818897384400670,-44,50, + 7322656672037907.,6790610435881546.,.499996067740341256840,-44,50, + 7371229009394696.,6798054047528491.,.499986647937264498880,-44,50, + 7371229009395370.,6798054047528594.,.448427979053767919897,-44,50, + 7371229009395377.,6798054047528596.,-.482374559050412739768,-44,50, + 7371229009395390.,6798054047528598.,-.496722129815322372934,-44,50, + 7371229009395462.,6798054047528609.,-.499262521744116056541,-44,50, + 7371229009395881.,6798054047528672.,.499842697445911422805,-44,50, + 7371229009429336.,6798054047533782.,.499998074731710370919,-44,50, + 7413149621199186.,6804438967800774.,-.499997584402599382495,-44,50, + 7413149621221355.,6804438967804141.,-.499962487424394857441,-44,50, + 7413149621272027.,6804438967811837.,-.499882303570060073931,-44,50, + 7413149621275194.,6804438967812318.,-.499877293825827888916,-44,50, + 7413149621275273.,6804438967812329.,.498544049957397567593,-44,50, + 7413149621275431.,6804438967812353.,.495386737523464888480,-44,50, + 7413149621275438.,6804438967812355.,-.441462004166657884675,-44,50, + 7461059150898737.,6811691995157751.,-.499995457268225239126,-44,50, + 7461059150902057.,6811691995158251.,.499609976286491756576,-44,50, + 7461059150902216.,6811691995158275.,.493265778671018266091,-44,50, + 7461059150902229.,6811691995158277.,.455011221633252538431,-44,50, + 7461059150902236.,6811691995158279.,-.488664309079391961477,-44,50, + 7461059150903939.,6811691995158535.,.499988718943503663007,-44,50, + 7761862923830923.,6856193179312566.,-.499991399320056219934,-44,50, + 7761862923839761.,6856193179313847.,.499378380609642037286,-44,50, + 7761862923839768.,6856193179313849.,-.485234021692417846474,-44,50, + 7761862923840216.,6856193179313913.,.499572230973844889870,-44,50, + 7761862923841126.,6856193179314045.,.499959931690643811269,-44,50, + 7761862923872190.,6856193179318552.,-.499992236857727881632,-44,50, + 7819356134900845.,6864502143396599.,-.499999146131671336572,-44,50, + 7819356134935938.,6864502143401651.,.499857758399991975661,-44,50, + 7819356134936063.,6864502143401669.,.498460958800187279660,-44,50, + 7819356134936070.,6864502143401671.,-.493617261977410290773,-44,50, + 7819356134942376.,6864502143402578.,.499916991437441625461,-44,50, + 7819356134950960.,6864502143403814.,.499995967633449381790,-44,50, + 7880037969431294.,6873205920324117.,-.499995089424431381665,-44,50, + 7880037969506259.,6873205920334827.,.499982763124299006672,-44,50, + 7880037969511263.,6873205920335542.,.471554682049001347654,-44,50, + 7880037969511270.,6873205920335543.,.471714754677075211218,-44,50, + 7880037969511326.,6873205920335551.,.472995335701634135077,-44,50, + 7880037969512306.,6873205920335691.,.495405503622210828112,-44,50, + 7880037969512502.,6873205920335719.,.499887537204236502241,-44,50, + 7880037969512509.,6873205920335721.,-.499952390167846892108,-44,50, + 8016984453620321.,6892604754146396.,.499998649059367124837,-44,50, + 8016984453659790.,6892604754151939.,.499823601283099663536,-44,50, + 8016984453660324.,6892604754152014.,.494424592367309846877,-44,50, + 8016984453660381.,6892604754152022.,.499466271190610256087,-44,50, + 8016984453668121.,6892604754153109.,.499862658247026529706,-44,50, + 8016984453695891.,6892604754157009.,.499992839345806217678,-44,50, + 8049376796640555.,6897144747345511.,.499904842988626588097,-44,50, + 8049376796641513.,6897144747345645.,.499360702146991276580,-44,50, + 8049376796642135.,6897144747345733.,-.498904909138684357023,-44,50, + 8049376796642171.,6897144747345738.,-.463434751592723486846,-44,50, + 8049376796642185.,6897144747345739.,.494803643008477436266,-44,50, + 8049376796644051.,6897144747346001.,-.499993190890508083380,-44,50, + 8198893031067435.,6917866346374071.,.499924341066597559910,-44,50, + 8198893031068287.,6917866346374188.,.499465254088657227041,-44,50, + 8198893031068724.,6917866346374249.,-.490206836302632757654,-44,50, + 8198893031068731.,6917866346374249.,.471056997489700413703,-44,50, + 8198893031068753.,6917866346374252.,.492171903694170752171,-44,50, + 8198893031068855.,6917866346374266.,.499159196096609127920,-44,50, + 8198893031073734.,6917866346374937.,-.499948650856941717303,-44,50, + 8198893031086900.,6917866346376744.,.499999305138589087180,-44,50, + 8347450336544635.,6938084124663971.,.497706659920313070655,-44,50, + 8347450336544650.,6938084124663974.,-.479100877501920548825,-44,50, + 8347450336544724.,6938084124663984.,-.498018062118326280438,-44,50, + 8347450336545154.,6938084124664042.,-.499834134891083457716,-44,50, + 8347450336549595.,6938084124664641.,-.499985714563094402299,-44,50, + 8347450336602457.,6938084124671771.,-.499988622310312213942,-44,50, + 8638779724390399.,6976708339303656.,-.499994627156476636534,-44,50, + 8638779724393330.,6976708339304037.,.499863250691962029434,-44,50, + 8638779724393752.,6976708339304092.,.499501607710302797274,-44,50, + 8638779724394174.,6976708339304147.,.499139964725956860727,-44,50, + 8638779724394220.,6976708339304153.,.494361207433661971763,-44,50, + 8638779724394289.,6976708339304162.,.487193071495159781735,-44,50, + 8704521642327870.,6985244104466298.,-.499996782068989414935,-44,50, + 8704521642362150.,6985244104470731.,.499985343011513218742,-44,50, + 8704521642366348.,6985244104471274.,.496832627724082306452,-44,50, + 8704521642366371.,6985244104471277.,.471803444195106847006,-44,50, + 8704521642366379.,6985244104471279.,-.493424097901929938013,-44,50, + 8704521642366464.,6985244104471290.,-.498966732683004511789,-44,50, + 8704521642366665.,6985244104471315.,.499691272128380266177,-44,50, + 8704521642367384.,6985244104471408.,.499865926150259875135,-44,50, + 8704521642368103.,6985244104471502.,-.499959419835542399912,-44,50, + 6555195937302533.,9007199254736577.,.000009514277549441562,-41,50, + 6555195937328232.,9007199254740991.,-.020304350140470373704,-41,50, + 6555195937328237.,4503599627370496.,-.080760011355019807800,-41,49, + 6555195937328238.,4503599627370496.,.005118421388023228708,-41,49, + 6555195937328244.,4503599627370497.,-.479610982153718827362,-41,49, + 6555195937328267.,4503599627370498.,.495592970936265588580,-41,49, + 6555195937328302.,4503599627370502.,-.498661883057249684492,-41,49, + 6555195937328465.,4503599627370515.,.499522654058453493010,-41,49, + 6555195937329513.,4503599627370606.,-.499879831242762084639,-41,49, + 6555195937332820.,4503599627370890.,-.499902750126337541375,-41,49, + 6555195937346048.,4503599627372026.,-.499994427093377509462,-41,49, + 9007199254740990.,6243314768165359.,.206928042333858618823,971,43 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/log10.c b/src/regress/lib/libm/fpaccuracy/log10.c new file mode 100644 index 000000000..27b8b0f50 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/log10.c @@ -0,0 +1,1317 @@ +/* $OpenBSD: log10.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:39:14. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1285 +#define F log10 +#define Fs "log10" +#define Fn fpaccuracy_log10 + /* 6 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + 4503599627370496.,-5412282753821250.,.048455703392481968379,-1074,44, + 4503599627370497.,-5412282753821250.,.050152166212416545642,-1074,44, + 4503599627370503.,-5412282753821250.,.060330943132024001312,-1074,44, + 4503599627370694.,-5412282753821250.,.384355341739520919942,-1074,44, + 4503599627370761.,-5412282753821250.,.498018350675131766554,-1074,44, + 4503599627370762.,-5412282753821250.,.499714813495066243994,-1074,44, + 4503599627371941.,-5412282753821248.,.499844478197553116672,-1074,44, + 4503599627373120.,-5412282753821246.,.499974142899516374226,-1074,44, + 7737125245472280.,-5629499534215059.,.499997690394823586707,-86,49, + 7737125245524560.,-5629499534213406.,-.499973174421081144688,-86,49, + 7737125245533516.,-5629499534213123.,-.498590984747027807841,-86,49, + 7737125245533611.,-5629499534213120.,-.496678154465282635773,-86,49, + 7737125245533626.,-5629499534213120.,-.022691918105010451659,-86,49, + 7737125245533627.,-5629499534213120.,.008907164319007661276,-86,49, + 7737125245533641.,-5629499534213120.,.451294318255260813535,-86,49, + 7737125245533643.,-5629499534213119.,-.485507516896703087202,-86,49, + 7737125245533959.,-5629499534213110.,.499802529092795395573,-86,49, + 7737125245534497.,-5629499534213092.,-.499891126786781484167,-86,49, + 7737125245537630.,-5629499534212993.,-.499965892369216147482,-86,49, + 4835703278420175.,-5066549580793747.,.499997690394823586707,-82,49, + 4835703278452850.,-5066549580792094.,-.499973174421081144688,-82,49, + 4835703278457953.,-5066549580791836.,-.499784998631794137331,-82,49, + 4835703278458131.,-5066549580791828.,.499633675729447604502,-82,49, + 4835703278458487.,-5066549580791810.,.498471024450937294856,-82,49, + 4835703278458507.,-5066549580791808.,-.490358337980479000607,-82,49, + 4835703278458516.,-5066549580791808.,-.035331551074617697977,-82,49, + 4835703278458517.,-5066549580791808.,.015226980803811283373,-82,49, + 4835703278458526.,-5066549580791808.,.470253767709671645030,-82,49, + 4835703278468337.,-5066549580791311.,-.499989973527756077437,-82,49, + 6044629098072911.,-4503599627370505.,-.499888718716707181394,-79,49, + 6044629098073145.,-4503599627370496.,-.035331551074617697977,-79,49, + 6044629098073146.,-4503599627370496.,.005115274428125487939,-79,49, + 6044629098073158.,-9007199254740991.,-.019045639077913605994,-79,50, + 6044629098073183.,-9007199254740989.,.003295636059237325591,-79,50, + 6044629098078103.,-9007199254740591.,.000058582887743742087,-79,50, + 6044629098080699.,-9007199254740381.,-.000023407086960887479,-79,50, + 6044629098128861.,-9007199254736485.,-.000003701241994044540,-79,50, + 7555786372591301.,-7881299347898376.,-.499781536920988690500,-76,50, + 7555786372591425.,-7881299347898368.,-.475131357176667455853,-76,50, + 7555786372591432.,-7881299347898368.,-.022126911545943571248,-76,50, + 7555786372591433.,-7881299347898368.,.042588009258445520864,-76,50, + 7555786372591440.,-7881299347898368.,.495592454889168925831,-76,50, + 7555786372591471.,-7881299347898365.,-.498245000174775325497,-76,50, + 7555786372591950.,-7881299347898334.,-.499797934873540729386,-76,50, + 7555786372599089.,-7881299347897872.,-.499978312589712437452,-76,50, + 7555786372599738.,-7881299347897830.,-.499994710585555254579,-76,50, + 4722366482868974.,-6755399441055814.,.499934112856986486930,-72,50, + 4722366482869341.,-6755399441055775.,-.499464390801813226645,-72,50, + 4722366482869640.,-6755399441055745.,.460153722018943383515,-72,50, + 4722366482869645.,-6755399441055744.,-.022126911545943571248,-72,50, + 4722366482869646.,-6755399441055744.,.081416961741078972020,-72,50, + 4722366482869650.,-6755399441055744.,.495592454889168925831,-72,50, + 4722366482869679.,-6755399441055741.,.498364780212810599243,-72,50, + 4722366482869708.,-6755399441055737.,-.498862894463566167337,-72,50, + 4722366482874025.,-6755399441055290.,-.499961914597477185179,-72,50, + 4722366482882321.,-6755399441054431.,-.499989127009613205973,-72,50, + 4722366482920556.,-6755399441050472.,-.499994024356360181084,-72,50, + 5902958103580447.,-5629499534213668.,.499997470344511245692,-69,50, + 5902958103587056.,-5629499534213120.,-.042835686203348082533,-69,50, + 5902958103587057.,-5629499534213120.,.039999412426269957344,-69,50, + 5902958103587062.,-5629499534213120.,.454174905574359946237,-69,50, + 5902958103587075.,-5629499534213118.,-.468968812240607724480,-69,50, + 5902958103587135.,-5629499534213113.,-.498862894463566167337,-69,50, + 5902958103587304.,-5629499534213099.,-.499731226058503989972,-69,50, + 5902958103588475.,-5629499534213002.,-.499830730789467501717,-69,50, + 5902958103590817.,-5629499534212809.,.499970259690878375184,-69,50, + 7378697629468074.,-4503599627371540.,.499993895110679960360,-66,50, + 7378697629483798.,-4503599627370498.,.499266577915372118740,-66,50, + 7378697629483813.,-4503599627370497.,.493287761470790634829,-66,50, + 7378697629483820.,-4503599627370496.,-.042835686203348082533,-66,50, + 7378697629483821.,-4503599627370496.,.023432392700346350491,-66,50, + 7378697629483828.,-9007199254740991.,-.025382109947585739614,-66,51, + 7378697629483964.,-9007199254740973.,-.000464648142884390813,-66,51, + 7378697629493999.,-9007199254739643.,-.000121051925876916116,-66,51, + 7378697629498013.,-9007199254739111.,.000016386054463395241,-66,51, + 4611686018405948.,-6755399441060290.,-.499999881396781651474,-62,51, + 4611686018423165.,-6755399441056639.,-.499953519535860433710,-62,51, + 4611686018427387.,-6755399441055744.,-.191700298652607270838,-62,51, + 4611686018427388.,-6755399441055744.,.020357553839214929209,-62,51, + 4611686018427390.,-6755399441055744.,.444473258822859191356,-62,51, + 4611686018427395.,-6755399441055742.,-.495237478718030957976,-62,51, + 4611686018427428.,-6755399441055735.,-.497328346487934774727,-62,51, + 4611686018427461.,-6755399441055728.,-.499419214257888666656,-62,51, + 4611686018428904.,-6755399441055422.,-.499938068611204681465,-62,51, + 8703077354446029.,-4778604949514421.,-.499924410695911607853,-60,51, + 8703077354446118.,-4778604949514411.,-.499204753621229707789,-60,51, + 8703077354446207.,-4778604949514401.,-.498485096546650077764,-60,51, + 8703077354446216.,-4778604949514400.,-.487176367179563449489,-60,51, + 8703077354446234.,-4778604949514398.,-.464558908445393330374,-60,51, + 8703077354450185.,-4778604949513955.,.499973283603713783013,-60,51, + 8703077354576636.,-4778604949499746.,.499988418055348390769,-60,51, + 5764607523007435.,-4503599627375042.,-.499999881396781651474,-59,51, + 5764607523033501.,-4503599627370621.,.499986570633305053287,-59,51, + 5764607523033613.,-4503599627370601.,-.499629846097193166604,-59,51, + 5764607523034173.,-4503599627370506.,-.497711929755221615186,-59,51, + 5764607523034226.,-4503599627370498.,.493541015898094062534,-59,51, + 5764607523034232.,-4503599627370496.,-.488581292141158428155,-59,51, + 5764607523034234.,-4503599627370496.,-.149288728154242827150,-59,51, + 5764607523034235.,-4503599627370496.,.020357553839214929209,-59,51, + 7188956797842248.,-5863884328859106.,-.486078263848913873876,-57,52, + 7188956797842259.,-5863884328859103.,-.493325109175397726308,-57,52, + 7188956797842270.,-5863884328859101.,.499428045498113841974,-57,52, + 7188956797843097.,-5863884328858875.,-.499948416788266697292,-57,52, + 7188956797844615.,-5863884328858463.,.499986928064899297588,-57,52, + 7188956797875111.,-5863884328850165.,-.499994462845281540084,-57,52, + 9006440473861104.,-5423039079313661.,.499999293096660420404,-57,52, + 9006440473864203.,-5423039079312988.,.495993261630438360331,-57,52, + 9006440473864249.,-5423039079312978.,.485607886524645728788,-57,52, + 9006440473864378.,-5423039079312950.,.499961943292911616798,-57,52, + 7205759403788625.,-4503599627371627.,-.499985789012022190891,-56,52, + 7205759403791226.,-4503599627370922.,.499981355242738476872,-56,52, + 7205759403792777.,-4503599627370501.,.494194750253757098079,-56,52, + 7205759403792788.,-4503599627370498.,.479969313338618012570,-56,52, + 7205759403792793.,-4503599627370496.,-.162860430713719442150,-56,52, + 7205759403792794.,-4503599627370496.,.108573620475812953899,-56,52, + 7205759403793057.,-9007199254740849.,-.008541833356949207402,-56,53, + 7205759403793827.,-9007199254740431.,-.000103001514678987376,-56,53, + 7205759403819907.,-9007199254726273.,.000007016843243872622,-56,53, + 7591484324333081.,-8803213731969180.,-.499990839498066895337,-56,53, + 7591484324371714.,-8803213731949274.,.499987581325177102445,-56,53, + 7591484324372401.,-8803213731948919.,-.499313918954688577040,-56,53, + 7591484324373088.,-8803213731948565.,-.498615419266589951980,-56,53, + 7591484324373121.,-8803213731948548.,-.494215054653557528522,-56,53, + 7591484324373123.,-8803213731948547.,-.463645335586103393694,-56,53, + 7591484324376032.,-8803213731947048.,-.499988952261457568850,-56,53, + 8003388475031835.,-8596523747631344.,.499060200049214272601,-56,53, + 8003388475031874.,-8596523747631324.,-.439101068557767407578,-56,53, + 8003388475031880.,-8596523747631322.,.493489505502688704898,-56,53, + 8003388475032369.,-8596523747631083.,.499621291422470750109,-56,53, + 8003388475032725.,-8596523747630909.,.499995352328300395440,-56,53, + 8715649185154930.,-8263024597387754.,-.499997002912364012912,-56,53, + 8715649185197722.,-8263024597368548.,-.499962813691344868371,-56,53, + 8715649185231047.,-8263024597353591.,-.499796040440802485875,-56,53, + 8715649185231809.,-8263024597353249.,-.497271597562196059239,-56,53, + 8715649185231936.,-8263024597353192.,-.496850857085335355295,-56,53, + 8715649185231956.,-8263024597353184.,.479593354013307166486,-56,53, + 8715649185233382.,-8263024597352543.,-.499934394706573438384,-56,53, + 4823460372571543.,-7865906464255499.,.499995958813231860782,-55,53, + 4823460372574564.,-7865906464253048.,-.499961744626319767649,-55,53, + 4823460372575019.,-7865906464252679.,-.499624358153848799189,-55,53, + 4823460372575183.,-7865906464252546.,-.497304948532745078971,-55,53, + 4823460372595256.,-7865906464236268.,.499996903442179633331,-55,53, + 6866204439023839.,-6484580262615162.,.499997114836160179721,-55,53, + 6866204439034841.,-6484580262608893.,-.499944462840310066436,-55,53, + 6866204439034899.,-6484580262608860.,-.456497508813590510070,-55,53, + 6866204439034920.,-6484580262608848.,-.492490853045364324992,-55,53, + 6866204439034927.,-6484580262608845.,.495511365544036271941,-55,53, + 7429938090840994.,-6175917371978620.,-.499982465478932858752,-55,53, + 7429938090843127.,-6175917371977498.,.499980339808713331215,-55,53, + 7429938090848922.,-6175917371974446.,-.499183067050220400690,-55,53, + 7429938090848960.,-6175917371974426.,-.492620204152230590405,-55,53, + 7429938090849224.,-6175917371974287.,-.499657156653231424852,-55,53, + 7429938090849526.,-6175917371974129.,.499868753737294797699,-55,53, + 7429938090895848.,-6175917371949741.,.499998548443094730657,-55,53, + 7477266621094255.,-6151078473125387.,-.496445016116083754874,-55,53, + 7477266621094274.,-6151078473125378.,.443519078694789398049,-55,53, + 7477266621094406.,-6151078473125308.,-.499888262619841770156,-55,53, + 7477266621094989.,-6151078473125003.,-.499937353440711962086,-55,53, + 7477266621095572.,-6151078473124698.,-.499986444285362899092,-55,53, + 7477266621156852.,-6151078473092640.,.499999208754941614893,-55,53, + 8992428863894944.,-5429294269744736.,.455206186628679357456,-55,53, + 8992428863894951.,-5429294269744732.,-.499739028884614436641,-55,53, + 8992428863895528.,-5429294269744482.,.499776778082875282170,-55,53, + 8992428863899390.,-5429294269742801.,-.499997838434994658874,-55,53, + 4684840655054737.,-5268535501554995.,-.499998009122869612881,-54,53, + 4684840655106266.,-5268535501511970.,.499915124553567168198,-54,53, + 4684840655107072.,-5268535501511297.,.498729962645544739605,-54,53, + 4684840655107175.,-5268535501511210.,-.497699406688513925169,-54,53, + 4684840655107187.,-5268535501511200.,-.477865935154740827005,-54,53, + 4684840655107375.,-5268535501511044.,.499525118871020292242,-54,53, + 4684840655111308.,-5268535501507760.,.499945412550676324780,-54,53, + 4684840655118871.,-5268535501501445.,.499990836050792245689,-54,53, + 5261029272885353.,-4814789783109430.,-.499997819326959411088,-54,53, + 5261029272899320.,-4814789783099046.,.499894695829681241378,-54,53, + 5261029272899476.,-4814789783098930.,.491874593459089583658,-54,53, + 5261029272899515.,-4814789783098901.,.489869567865904264024,-54,53, + 5261029272899523.,-4814789783098895.,.438176229282660192626,-54,53, + 5261029272903808.,-4814789783095709.,.499931749332641219214,-54,53, + 5357701474438019.,-4743562713662630.,-.499995217994721289525,-54,53, + 5357701474446282.,-4743562713656598.,.499968975628592888534,-54,53, + 5357701474447590.,-4743562713655643.,.499842285347932809349,-54,53, + 5357701474447716.,-4743562713655551.,.495242925262713806393,-54,53, + 6544763739207500.,-7921395658694251.,-.485104373659462942594,-54,54, + 6544763739207505.,-7921395658694246.,.491852304398968271952,-54,54, + 6544763739207546.,-7921395658694196.,-.497102935522068006310,-54,54, + 6544763739207633.,-7921395658694092.,-.498056737306747339762,-54,54, + 6544763739207807.,-7921395658693884.,-.499964340880253406350,-54,54, + 6544763739220392.,-7921395658678841.,.499994317027041735060,-54,54, + 6748349574614099.,-7681739340518685.,.499998599851669638480,-54,54, + 6748349574652460.,-7681739340474212.,.499891538351515681332,-54,54, + 6748349574653414.,-7681739340473106.,.499263237205588263107,-54,54, + 6748349574653709.,-7681739340472763.,-.498834612761122398080,-54,54, + 6748349574653772.,-7681739340472690.,-.461140255298323355949,-54,54, + 6748349574653778.,-7681739340472684.,.494830635888574324723,-54,54, + 6748349574658774.,-7681739340466892.,.499926028698806431849,-54,54, + 6748349574671402.,-7681739340452252.,.499994988846817379714,-54,54, + 6750030179296307.,-7679791210214333.,.499996695062685602127,-54,54, + 6750030179306097.,-7679791210202986.,.499984553129260131480,-54,54, + 6750030179323841.,-7679791210182419.,-.497177434318274380459,-54,54, + 6750030179323885.,-7679791210182368.,-.499424680071205775553,-54,54, + 6750030179324344.,-7679791210181837.,.499859733531801724080,-54,54, + 6750030179325677.,-7679791210180292.,.499960219890572207215,-54,54, + 6921931465590491.,-7483045507698244.,-.499997572992716302037,-54,54, + 6921931465612133.,-7483045507673784.,.498156093027803913488,-54,54, + 6921931465612179.,-7483045507673732.,.489927420394691434771,-54,54, + 6921931465612609.,-7483045507673246.,.499963741416277119478,-54,54, + 6921931465622574.,-7483045507661983.,.499991498029183715138,-54,54, + 7262316160940307.,-7107483908079143.,.499993436920224356412,-54,54, + 7262316160954929.,-7107483908063390.,-.499940060779457995754,-54,54, + 7262316160955343.,-7107483908062945.,.494317053514168563894,-54,54, + 7262316160955356.,-7107483908062931.,.498967639228291017823,-54,54, + 7262316160972346.,-7107483908044627.,-.499997668125442907402,-54,54, + 7667186625744855.,-6683048777589059.,-.499451588486088858642,-54,54, + 7667186625744904.,-6683048777589010.,.499871268611034310027,-54,54, + 7667186625747846.,-6683048777586007.,-.499968618102341134013,-54,54, + 7667186625759663.,-6683048777573950.,.499994680525965663514,-54,54, + 7667186625784768.,-6683048777548332.,-.499998728699227341686,-54,54, + 7756304500084488.,-6592637826653493.,.499989126296996139053,-54,54, + 7756304500084834.,-6592637826653144.,.499907594753607965034,-54,54, + 7756304500086564.,-6592637826651399.,.499499936803139700953,-54,54, + 7756304500086679.,-6592637826651283.,.496582664729052286243,-54,54, + 7756304500086680.,-6592637826651281.,-.494747050680295146943,-54,54, + 7756304500086707.,-6592637826651254.,-.260649366732725000033,-54,54, + 7756304500086910.,-6592637826651050.,.499418405166340569340,-54,54, + 7756304500133506.,-6592637826604050.,.499999048640355197408,-54,54, + 8671512143463121.,-5720020612094756.,-.499998118845112635302,-54,54, + 8671512143471118.,-5720020612087541.,-.499979312917251182816,-54,54, + 8671512143472652.,-5720020612086158.,.495272511793382115008,-54,54, + 8671512143472672.,-5720020612086139.,-.460460841210703645953,-54,54, + 8671512143472744.,-5720020612086075.,.498899087974243022951,-54,54, + 8671512143473061.,-5720020612085788.,-.499474557148448398625,-54,54, + 4889567999034235.,-4779567241590217.,-.499904507127373119962,-53,54, + 4889567999034295.,-4779567241590121.,-.496897259623119968046,-53,54, + 4889567999035555.,-4779567241588105.,-.433745062305934501972,-53,54, + 4889567999035885.,-4779567241587577.,-.417205201189665263125,-53,54, + 4889567999035890.,-4779567241587569.,-.416954597233632214871,-53,54, + 4889567999038223.,-4779567241583837.,.499977207758920730269,-53,54, + 4889567999046204.,-4779567241571067.,.499991225857367773552,-53,54, + 4889567999054185.,-4779567241558296.,-.499994776888024584044,-53,54, + 4930099044600809.,-4714982848320760.,.499992314945183857408,-53,54, + 4930099044602259.,-4714982848318459.,.499019963170791755233,-53,54, + 4930099044602305.,-4714982848318386.,.496230495448253065310,-53,54, + 4930099044602334.,-4714982848318339.,-.483788951594567021866,-53,54, + 4930099044602610.,-4714982848317902.,.499474242053321498193,-53,54, + 4930099044602961.,-4714982848317345.,.499928520896195413212,-53,54, + 4930099044616224.,-4714982848296297.,-.499999997357077413899,-53,54, + 5026050879176558.,-4564180059130816.,.499924216713166528767,-53,54, + 5026050879177088.,-4564180059129991.,.498247839024059232653,-53,54, + 5026050879177167.,-4564180059129868.,.469696077059176113692,-53,54, + 5026050879177185.,-4564180059129840.,.488507068003615915347,-53,54, + 5026050879177194.,-4564180059129826.,.497912563475798186836,-53,54, + 5026050879179535.,-4564180059126182.,.499941995999307108009,-53,54, + 5026050879188466.,-4564180059112280.,.499995317389031988651,-53,54, + 5035712052437124.,-4549155906172842.,.499992716797632789805,-53,54, + 5035712052438784.,-4549155906170263.,.499602855283075559486,-53,54, + 5035712052438840.,-4549155906170175.,-.498000658132239261846,-53,54, + 5035712052440043.,-4549155906168307.,.499909580230127460780,-53,54, + 5035712052473010.,-4549155906117089.,.499998207865966565787,-53,54, + 5280619103515292.,-8355255567088503.,.499971094595302565387,-53,55, + 5280619103516946.,-8355255567083601.,-.499656359670307012200,-53,55, + 5280619103516973.,-8355255567083521.,-.495418113773229348515,-53,55, + 5280619103517651.,-8355255567081513.,.499897838619279997436,-53,55, + 5280619103528741.,-8355255567048652.,.499977318276230148718,-53,55, + 5280619103569088.,-8355255566929099.,.499995380349395616846,-53,55, + 5388947655791161.,-8037513185667781.,-.499998602033934571558,-53,55, + 5388947655826010.,-8037513185566596.,.499992967484477082741,-53,55, + 5388947655827980.,-8037513185560875.,-.495990196710006515700,-53,55, + 5388947655827990.,-8037513185560846.,-.460436811762013123532,-53,55, + 5388947655828063.,-8037513185560635.,.499102898356706350122,-53,55, + 5388947655828457.,-8037513185559491.,.499906265249267215720,-53,55, + 5828367993164858.,-6810984871513336.,-.498558710669152104825,-53,55, + 5828367993164896.,-6810984871513234.,-.481991701630903562257,-53,55, + 5828367993164912.,-6810984871513192.,.472352302174475784829,-53,55, + 5828367993165581.,-6810984871511395.,-.499139038818642633942,-53,55, + 5828367993166545.,-6810984871508807.,-.499912810059173506076,-53,55, + 5828367993192500.,-6810984871439127.,-.499999311789197981908,-53,55, + 5842346135973055.,-6773503427170073.,.499998402877040689138,-53,55, + 5842346135980237.,-6773503427150838.,.499968772397473243494,-53,55, + 5842346135984650.,-6773503427139019.,.499532843194074213806,-53,55, + 5842346135984675.,-6773503427138952.,.455116142912562709682,-53,55, + 5842346135984678.,-6773503427138944.,.489786138878762075727,-53,55, + 5842346135986496.,-6773503427134075.,.499803693636767393997,-53,55, + 6083309738848262.,-6141102707175156.,-.499955101029685251840,-53,55, + 6083309738850681.,-6141102707168934.,-.499886763440716314987,-53,55, + 6083309738852053.,-6141102707165406.,.472454599317509816782,-53,55, + 6083309738852067.,-6141102707165370.,.482376449953797692069,-53,55, + 6083309738852088.,-6141102707165316.,.497259225908074119118,-53,55, + 6083309738852095.,-6141102707165297.,-.497779848773875174768,-53,55, + 6083309738852899.,-6141102707163229.,-.499410712381327993527,-53,55, + 6083309738860558.,-6141102707143530.,.499978845595265000459,-53,55, + 6083309738948848.,-6141102706916436.,.499990643101085952093,-53,55, + 6466710109355003.,-5184773661991221.,.499997231590886577146,-53,55, + 6466710109365879.,-5184773661964904.,-.499927402541216808932,-53,55, + 6466710109371043.,-5184773661952409.,-.481134737884715490351,-53,55, + 6466710109371062.,-5184773661952364.,.492017287780144033123,-53,55, + 6466710109371093.,-5184773661952288.,-.499155722977480409208,-53,55, + 6466710109371317.,-5184773661951746.,-.499889736204549730320,-53,55, + 6683043781680113.,-4669889240306415.,.499834107383468395986,-53,55, + 6683043781680781.,-4669889240304851.,.497962564549155460171,-53,55, + 6683043781680790.,-4669889240304829.,-.430206363424230427615,-53,55, + 6683043781688633.,-4669889240286467.,.499915615203282524334,-53,55, + 6683043781697153.,-4669889240266519.,.499997097592025684687,-53,55, + 7533119765568612.,-5592742815521734.,-.499984024582481893146,-53,56, + 7533119765574798.,-5592742815496037.,.487426386606482294495,-53,56, + 7533119765574824.,-5592742815495929.,.497072793075190245064,-53,56, + 7533119765574837.,-5592742815495874.,-.498104003690595574861,-53,56, + 7533119765575038.,-5592742815495040.,.499547061688086489218,-53,56, + 7533119765576283.,-5592742815489868.,.499923063164131370881,-53,56, + 7533119765576698.,-5592742815488143.,-.499951603200470866825,-53,56, + 7533119765656313.,-5592742815157406.,.499994681845003019677,-53,56, + 7593583889909180.,-5342564395175533.,.498783490811309725856,-53,56, + 7593583889909279.,-5342564395175125.,.491554287317651628195,-53,56, + 7593583889909337.,-5342564395174885.,-.482377973317467523964,-53,56, + 7593583889909989.,-5342564395172198.,-.499685455065457865632,-53,56, + 7593583889910410.,-5342564395170464.,.499875204603519760686,-53,56, + 7593583889912482.,-5342564395161924.,-.499911763938025555323,-53,56, + 7593583889939872.,-5342564395049046.,-.499991649106626073447,-53,56, + 7593583889944437.,-5342564395030234.,.499994997114569959490,-53,56, + 7618936725631545.,-5238255864266180.,-.499999752733673216015,-53,56, + 7618936725668054.,-5238255864116223.,.499880213221338840099,-53,56, + 7618936725668687.,-5238255864113622.,-.499738407198950046377,-53,56, + 7618936725669069.,-5238255864112053.,-.463173340953622650631,-53,56, + 7618936725669078.,-5238255864112016.,-.496343273948791245372,-53,56, + 7618936725669199.,-5238255864111519.,-.497850150888075765874,-53,56, + 7618936725673360.,-5238255864094429.,.499917489397087141452,-53,56, + 7618936725683972.,-5238255864050841.,.499991996215078862293,-53,56, + 8259236168421722.,-5425920327421732.,-.499965315173584569374,-53,57, + 8259236168422549.,-5425920327415466.,.499952317369309593741,-53,57, + 8259236168422767.,-5425920327413813.,-.497651015390156779019,-53,57, + 8259236168422940.,-5425920327412503.,.495076615003638551814,-53,57, + 8259236168434236.,-5425920327326902.,.499997439548379045028,-53,57, + 8460168363155807.,-7842968831806098.,.499996607676184453232,-53,58, + 8460168363166725.,-7842968831644554.,-.499990251811821826547,-53,58, + 8460168363172662.,-7842968831556711.,.499925214376339073473,-53,58, + 8460168363172863.,-7842968831553736.,-.499067037215589771132,-53,58, + 8460168363173010.,-7842968831551561.,-.483404654096211505061,-53,58, + 8460168363173015.,-7842968831551488.,.496719916757524532596,-53,58, + 8791115980768044.,-6079217015698469.,-.499990105523048878861,-53,59, + 8791115980768818.,-6079217015676427.,-.499564505065165778010,-53,59, + 8791115980769023.,-6079217015670590.,.497964238917087898578,-53,59, + 8791115980769069.,-6079217015669280.,.487653615596843702138,-53,59, + 8791115980769090.,-6079217015668681.,-.473575147225546704397,-53,59, + 8791115980769205.,-6079217015665406.,-.499351705563969218952,-53,59, + 8791115980791515.,-6079217015030062.,.499995166440597692028,-53,59, + 8837821264139149.,-4752662974862797.,.499997641958770331597,-53,59, + 8837821264166358.,-4752662974092032.,-.499898267362223980114,-53,59, + 8837821264166990.,-4752662974074129.,-.495448819825037644680,-53,59, + 8837821264167106.,-4752662974070844.,.499038736862350832348,-53,59, + 8837821264167451.,-4752662974061071.,.499885349169089852937,-53,59, + 8837821264171075.,-4752662973958411.,-.499917215912688597824,-53,59, + 8837821264189943.,-4752662973423927.,-.499993723288346435938,-53,59, + 9006099743106022.,-7824031469365511.,.499995358302944939043,-53,67, + 9006099743109138.,-7824031447190966.,.499969893275081168993,-53,67, + 9006099743112254.,-7824031425016421.,.499936756126744518746,-53,67, + 9006099743112935.,-7824031420170186.,-.499750583309762590411,-53,67, + 9006099743113215.,-7824031418177609.,.356471843358418391857,-53,67, + 9006099743113216.,-7824031418170492.,-.294041648085928412785,-53,67, + 9006099743113221.,-7824031418134911.,.453390894680485014583,-53,67, + 9006099743113224.,-7824031418113561.,-.498149579669148968533,-53,67, + 9006099743113327.,-7824031417380578.,.498960796679879791798,-53,67, + 9006099743182849.,-7824030922637729.,.498092910049324241690,-53,67, + 9007144712050371.,-6209578279819947.,.499789463270636884003,-53,71, + 9007144712055836.,-6209577657638538.,-.499810397331985640993,-53,71, + 9007144712056048.,-6209577633502682.,.498550675308658490224,-53,71, + 9007144712056137.,-6209577623370175.,-.497420553122232491861,-53,71, + 9007144712056158.,-6209577620979359.,-.473998048586901227517,-53,71, + 9007144712056161.,-6209577620637814.,-.327794834108314773211,-53,71, + 9007144712056162.,-6209577620523966.,.054272904025934472794,-53,71, + 9007144712056171.,-6209577619499331.,.492882546665387314658,-53,71, + 9007144712057074.,-6209577516694241.,-.499955179835599145792,-53,71, + 9007198645421183.,-8879316057025228.,.488976101032133937188,-53,78, + 9007198645422961.,-8879290147110188.,.496890506156041498424,-53,78, + 9007198645424739.,-8879264237195148.,.499690354495466566776,-53,78, + 9007198645424872.,-8879262299051896.,-.476683762544252050988,-53,78, + 9007198645424957.,-8879261060388916.,-.499193488593766897874,-53,78, + 9007198658399535.,-8690188949355324.,-.273479579316638407615,-53,78, + 9007198658422453.,-8689854976671393.,.448191520205094458837,-53,78, + 9007198658430258.,-8689741238264984.,.499682488696668225141,-53,78, + 9007198658430429.,-8689738746366521.,-.496577132464507597391,-53,78, + 9007198658430445.,-8689738513206431.,-.484533669402742252970,-53,78, + 9007198658430453.,-8689738396626386.,-.478512093187690076280,-53,78, + 9007198658430592.,-8689736371048104.,-.498903735453057021534,-53,78, + 9007198658431089.,-8689729128512809.,.499871888413553418201,-53,78, + 9007198744458217.,-7436098327752221.,.498571871304860100483,-53,78, + 9007198744459518.,-7436079368922582.,-.474349030493905306786,-53,78, + 9007198744459520.,-7436079339777572.,.498788106764276404377,-53,78, + 9007198744460190.,-7436069576198896.,.499364872639595020707,-53,78, + 9007198744462498.,-7436035942856233.,.492806624861152209567,-53,78, + 9007198744508919.,-7435359472579042.,-.474586709313371459410,-53,78, + 9007198751706499.,-7330472698581509.,.383554472076394818038,-53,78, + 9007198751718177.,-7330302520862574.,.499994486412583256768,-53,78, + 9007198751718455.,-7330298469706051.,-.498723489267267429405,-53,78, + 9007198751718495.,-7330297886805833.,.494256440385815572579,-53,78, + 9007198751723162.,-7330229876922782.,.482419362073197886964,-53,78, + 9007198756991593.,-7253455637354040.,.498453069446295337939,-53,78, + 9007198756992127.,-7253447855636121.,.498824277292136126379,-53,78, + 9007198756992957.,-7253435760456583.,-.479042654902141245876,-53,78, + 9007198756992972.,-7253435541869001.,-.484677009357773335061,-53,78, + 9007198756993002.,-7253435104693837.,-.495946810333446784922,-53,78, + 9007198756993017.,-7253434886106256.,.498417743146511854405,-53,78, + 9007198756996740.,-7253380632668405.,.488442290824550816838,-53,78, + 9007198772918826.,-7021355947603821.,-.480252666667493618508,-53,78, + 9007198772918860.,-7021355452138637.,.497597030305159272176,-53,78, + 9007198772918944.,-7021354228048179.,-.498311736530184965240,-53,78, + 9007198772919398.,-7021347612130710.,.499793296430528505626,-53,78, + 9007198772942559.,-7021010098332202.,.044375743568381422585,-53,78, + 9007198772949873.,-7020903515027410.,-.279747560858765316617,-53,78, + 9007198805307567.,-6549370844018165.,.055313900315177349459,-53,78, + 9007198805328400.,-6549067255013415.,.494494351939928798727,-53,78, + 9007198805331018.,-6549029104194308.,-.490283871478516598387,-53,78, + 9007198805331036.,-6549028841889212.,.495267506212130270184,-53,78, + 9007198805331170.,-6549026889173490.,.498800174822020439150,-53,78, + 9007198805331237.,-6549025912815628.,-.499444384822102481813,-53,78, + 9007198805332345.,-6549009766479659.,.498681981739495320294,-53,78, + 9007198859763360.,-5755813509509940.,.474289071461962856507,-53,78, + 9007198859768993.,-5755731422587585.,.470160882143171040236,-53,78, + 9007198859769033.,-5755730839687373.,.470658105122175767768,-53,78, + 9007198859770453.,-5755710146729847.,.486632433557115132911,-53,78, + 9007198859771373.,-5755696740024971.,.495240519787049416952,-53,78, + 9007198859771393.,-5755696448574865.,.495412444088673026457,-53,78, + 9007198859795472.,-5755345557219746.,-.067008867393373899672,-53,78, + 9007198895054592.,-5241531845153156.,.437224332548842635125,-53,78, + 9007198895062879.,-5241411082802208.,.499816295600353961334,-53,78, + 9007198895063373.,-5241403883984618.,.497866399480120405282,-53,78, + 9007198895063402.,-5241403461381965.,-.457725924291447492313,-53,78, + 9007198895063406.,-5241403403091944.,-.486083592970601954018,-53,78, + 9007198895063443.,-5241402863909250.,-.498393255409564484235,-53,78, + 9007198918835676.,-4894981874338206.,.497526100719643506643,-53,78, + 9007198918835720.,-4894981233147977.,.493327278659943449544,-53,78, + 9007198918835735.,-4894981014560398.,-.439923035678364547040,-53,78, + 9007198918835901.,-4894978595524535.,.498749180336166348135,-53,78, + 9007198918836126.,-4894975316710864.,.499890355124937188419,-53,78, + 9007198974136351.,-8178225005129931.,.464264823854537486610,-53,79, + 9007198974136538.,-8178219555013018.,.466947473921372225234,-53,79, + 9007198974139904.,-8178121452908584.,.495886386557888595174,-53,79, + 9007198974141026.,-8178088752207106.,.497385832426270305761,-53,79, + 9007198974141039.,-8178088373321973.,.486684146801320404704,-53,79, + 9007198974141052.,-8178087994436840.,.475981914335255635238,-53,79, + 9007198974155225.,-8177674922206851.,.175099850753152467432,-53,79, + 9007199052041097.,-5907690395816518.,.480141670050942328398,-53,79, + 9007199052042543.,-5907648252132090.,.492952949076740255796,-53,79, + 9007199052044618.,-5907587776236385.,-.420261956138390944768,-53,79, + 9007199052044622.,-5907587659656346.,.491217187402047542631,-53,79, + 9007199052044667.,-5907586348130897.,.495353984821810623229,-53,79, + 9007199052044712.,-5907585036605448.,.499484229855547352100,-53,79, + 9007199067960722.,-5443712766757416.,.453167351595547561160,-53,79, + 9007199068058786.,-5440854690504012.,.375773777101853970091,-53,79, + 9007199068083302.,-5440140171440666.,.494439647193403742554,-53,79, + 9007199068085112.,-5440087418972700.,.499693517719227940704,-53,79, + 9007199068085139.,-5440086632057431.,-.499203382138079082393,-53,79, + 9007199068085152.,-5440086253172302.,-.461636064104121122485,-53,79, + 9007199120523059.,-7823565875218210.,.499944109198228105537,-53,80, + 9007199120523258.,-7823554275504326.,-.496390004191888276675,-53,80, + 9007199120523260.,-7823554158924287.,-.471228833739625325275,-53,80, + 9007199120523263.,-7823553984054229.,.066512873402577052041,-53,80, + 9007199120523264.,-7823553925764209.,-.420906570493006702129,-53,80, + 9007199120523377.,-7823547338992004.,-.499345413575703276695,-53,80, + 9007199120527868.,-7823285558514374.,.431371321382871710738,-53,80, + 9007199120534386.,-7822905624167191.,.099744248845087994523,-53,80, + 9007199179190063.,-8807730156900675.,.008801035587392305283,-53,81, + 9007199179193036.,-8807383564446911.,.286898529734615951774,-53,81, + 9007199179198775.,-8806714511607304.,.495122361632260792212,-53,81, + 9007199179198839.,-8806707050484854.,-.498511918581960490061,-53,81, + 9007199179198982.,-8806690379539383.,.499894923924102541808,-53,81, + 9007199179205707.,-8805906378782046.,.189008269619763059020,-53,81, + 9007199180925940.,-8605361549835388.,.103509486735156140358,-53,81, + 9007199180930381.,-8604843817885549.,-.217026500206633258551,-53,81, + 9007199180957027.,-8601737426186523.,.499134547174372652142,-53,81, + 9007199180957381.,-8601696156852984.,-.491057398743272552379,-53,81, + 9007199180957418.,-8601691843391570.,.498574678747195623698,-53,81, + 9007199206467276.,-5627751626390361.,-.247168203290902843922,-53,81, + 9007199206479378.,-5626340774771542.,.378681235847054444103,-53,81, + 9007199206483656.,-5625842045369351.,-.498086512997405791491,-53,81, + 9007199206483702.,-5625836682687608.,.480445982953361798447,-53,81, + 9007199206483713.,-5625835400307190.,-.481213347379641256854,-53,81, + 9007199206483759.,-5625830037625447.,.497285212066292872644,-53,81, + 9007199206484125.,-5625787369331571.,.499145727109257905462,-53,81, + 9007199206484777.,-5625711359146852.,.492700244052596899731,-53,81, + 9007199206527134.,-5620773378481001.,.295381697626909376312,-53,81, + 9007199242897716.,-5522758234398352.,-.224592677437703704608,-53,83, + 9007199242954392.,-5496329073590350.,.409588282031820529547,-53,83, + 9007199242956258.,-5495458920190894.,.487096629793995516625,-53,83, + 9007199242956321.,-5495429542021459.,.496213929287489361397,-53,83, + 9007199242956342.,-5495419749298314.,.499207366270414912228,-53,83, + 9007199242956674.,-5495264931008593.,.495879399953863081602,-53,83, + 9007199242957649.,-5494810268862575.,.450106820037018054424,-53,83, + 9007199254731348.,-4605124114865813.,-.145772999677475806726,-53,93, + 9007199254740480.,-7823553867474413.,.443369586828641146432,-53,98, + 9007199254740896.,-5867665400605674.,.082405543942148722412,-53,100, + 9007199254740911.,-4950842681761033.,-.245565669857734801577,-53,100, + 9007199254740960.,-7823553867474204.,-.095279099602088074758,-53,102, + 9007199254740986.,-5867665400605645.,.397283072411868402017,-53,104, + 9007199254740989.,-5867665400605644.,.374445656694185665153,-53,105, + 9007199254740990.,-7823553867474191.,-.066444642504500458090,-53,106, + 9007199254740991.,-7823553867474191.,.367849839398751465994,-53,107, + 4503599627370496.,0.,0.000000000000000000000,-52,0, + 4503599627370497.,7823553867474189.,.329266714891493147485,-52,106, + 4503599627370498.,7823553867474188.,.460677751084989877914,-52,105, + 4503599627370501.,4889721167171366.,.159319287290926007578,-52,103, + 4503599627370517.,5134207225529925.,.347101131687219028803,-52,101, + 4503599627370569.,8923741130087676.,-.129173805935221925801,-52,100, + 4503599627371103.,4637594919488783.,-.363903055218774661621,-52,96, + 4503599627376043.,5297516272320875.,-.093732541999954987325,-52,93, + 4503599627377359.,6554327416068659.,.194304609982645307903,-52,93, + 4503599627380487.,4770820720815914.,-.203243814524009051195,-52,92, + 4503599640661305.,6197772026084563.,.292320417507903403360,-52,82, + 4503599640675471.,6204377917297944.,.188366648463872860176,-52,82, + 4503599640746301.,6237407373364537.,-.012265486547626541726,-52,82, + 4503599640748662.,6238508355233414.,.467984959082928242446,-52,82, + 4503599640749446.,6238873950229264.,-.466734418171525730360,-52,82, + 4503599640749459.,6238880012391184.,.499372856591623469776,-52,82, + 4503599643257923.,7408627315212669.,.305619186400531623914,-52,82, + 4503599643293407.,7425174219326738.,.493120694483711711501,-52,82, + 4503599643301028.,7428728045170857.,.470485043989035839256,-52,82, + 4503599643301038.,7428732708372332.,.494716146649291550921,-52,82, + 4503599643301040.,7428733641012627.,.499561124654872039338,-52,82, + 4503599643302278.,7429310945355235.,.419126375291282371367,-52,82, + 4503599653608297.,6117607620048888.,.053531155501245695470,-52,81, + 4503599653612281.,6118536529780586.,.499475196830780005731,-52,81, + 4503599653612327.,6118547255143954.,.498821392299383528543,-52,81, + 4503599653612442.,6118574068552374.,.496707602273000411729,-52,81, + 4503599653612451.,6118576166993033.,.453035025617581750653,-52,81, + 4503599659568391.,7507263572553034.,.367194320486930533210,-52,81, + 4503599659575269.,7508867247534501.,.374854396033801290298,-52,81, + 4503599659577281.,7509336365601193.,.499716508043262589789,-52,81, + 4503599659577456.,7509377168613952.,.496693430979719280874,-52,81, + 4503599659577467.,7509379733374754.,.490736160588153472399,-52,81, + 4503599659595400.,7513560992962215.,.176194232126079078966,-52,81, + 4503599680919697.,6242767812207479.,-.178741587914745593882,-52,80, + 4503599680946526.,6245895537990679.,.172103260695306707622,-52,80, + 4503599680948049.,6246073089385357.,-.458626011391993733633,-52,80, + 4503599680955664.,6246960846358742.,.487078836370742113964,-52,80, + 4503599680956602.,6247070198432418.,-.499612449200961812047,-52,80, + 4503599680956632.,6247073695833495.,-.473976307660099540649,-52,80, + 4503599680956652.,6247076027434213.,-.456898489616710899712,-52,80, + 4503599681425018.,6301678152526112.,.495542102793254443598,-52,80, + 4503599681425602.,6301746235267072.,-.490829641829103147925,-52,80, + 4503599681425638.,6301750432148364.,-.497127746362894058652,-52,80, + 4503599681425656.,6301752530589009.,.499710620789908113384,-52,80, + 4503599681430113.,6302272127808965.,.236484192732237868552,-52,80, + 4503599681435208.,6302866103091817.,.305451799989846779863,-52,80, + 4503599681487434.,6308954612046093.,.014847182414120060943,-52,80, + 4503599694413439.,7815868736660571.,.255255780824825569414,-52,80, + 4503599694471868.,7822680391557825.,-.226503933184695169513,-52,80, + 4503599694478885.,7823498433667285.,.497509151718098429675,-52,80, + 4503599694479259.,7823542034600582.,-.498538927709639328024,-52,80, + 4503599694479357.,7823553459444065.,.480507537290829887613,-52,80, + 4503599694479360.,7823553809184172.,.132923405311658340987,-52,80, + 4503599694479361.,7823553925764208.,-.316271357120000608475,-52,80, + 4503599694479377.,7823555791044776.,.496608923481869360193,-52,80, + 4503599694480499.,7823686593844664.,.483312533056480351993,-52,80, + 4503599694483914.,7824084714666070.,.231610780582962242116,-52,80, + 4503599718151123.,5291604387010888.,.479043482826849940676,-52,79, + 4503599718152897.,5291707793501878.,.499061633418519656010,-52,79, + 4503599718152929.,5291709658782438.,-.493059502989965758743,-52,79, + 4503599718153155.,5291722832326385.,.499707631380092418718,-52,79, + 4503599718207503.,5294890778195771.,.220865249406687200396,-52,79, + 4503599720390462.,5422135496407493.,-.322400911862363230903,-52,79, + 4503599720401708.,5422791025943623.,-.499897347659605708336,-52,79, + 4503599720401733.,5422792483194058.,.497351047886377737341,-52,79, + 4503599720404611.,5422960241864250.,.446518103309417499185,-52,79, + 4503599750515393.,7178118243904410.,.396343262702798522674,-52,79, + 4503599750519267.,7178344059430462.,.499618055972174381665,-52,79, + 4503599750519347.,7178348722631827.,-.494101184023967883690,-52,79, + 4503599750519387.,7178351054232509.,-.490991867182326307762,-52,79, + 4503599750520565.,7178419719872593.,.491292191588843462209,-52,79, + 4503599750522502.,7178532627635619.,.437545493683364886430,-52,79, + 4503599750552875.,7180303070323474.,.246030057445962608170,-52,79, + 4503599772429744.,8455506134229064.,.306787468962762549165,-52,79, + 4503599772445449.,8456421578942380.,.468844975752141331968,-52,79, + 4503599772458071.,8457157315534004.,-.464701863757746977255,-52,79, + 4503599772458084.,8457158073304221.,.494927911425524261391,-52,79, + 4503599772458131.,8457160812935010.,-.497198074056832242460,-52,79, + 4503599772458875.,8457204180707483.,.495977827237223806742,-52,79, + 4503599772461154.,8457337023655693.,.438554150309828007469,-52,79, + 4503599775920912.,8659006375404829.,-.229779121272955018205,-52,79, + 4503599775954317.,8660953553413397.,-.225745695279038899256,-52,79, + 4503599776085972.,8668627725564671.,.217155476646089337361,-52,79, + 4503599776092522.,8669009525174182.,-.499677554814705019158,-52,79, + 4503599776092579.,8669012847705134.,.488135748542505121212,-52,79, + 4503599776092586.,8669013255735252.,-.478276043255922609122,-52,79, + 4503599776092611.,8669014712985669.,.498819523127798792270,-52,79, + 4503599804231484.,5154615042743870.,-.499678148420653525938,-52,78, + 4503599804231591.,5154618161259744.,.486509236995549339142,-52,78, + 4503599804231608.,5154618656724884.,-.497000522722217723709,-52,78, + 4503599804232211.,5154636231164814.,.498472990192697292209,-52,78, + 4503599804244339.,5154989701823990.,-.025836432441129022597,-52,78, + 4503599804248887.,5155122253321181.,-.467859347449476670865,-52,78, + 4503599804285998.,5156203853719645.,-.077845992465943211658,-52,78, + 4503599814625422.,5457546450400118.,-.499640956905134006109,-52,78, + 4503599814625504.,5457548840290783.,-.465143153347595382250,-52,78, + 4503599814625522.,5457549364900929.,-.481966533006621300121,-52,78, + 4503599814625540.,5457549889511075.,-.498792009428906917688,-52,78, + 4503599814626611.,5457581103814760.,.496318231673047463463,-52,78, + 4503599814631367.,5457719717473332.,.388666151039387029940,-52,78, + 4503599814685344.,5459292877576084.,-.087801314494787894122,-52,78, + 4503599827004805.,5818343667838230.,.418379713024136042369,-52,78, + 4503599827008934.,5818464007576386.,.497452686591453898285,-52,78, + 4503599827009267.,5818473712864060.,.499506407079290651684,-52,78, + 4503599827009832.,5818490179793597.,.468316194491033176368,-52,78, + 4503599827009833.,5818490208938605.,.498347654718072609996,-52,78, + 4503599827027348.,5819000683754251.,-.493329774295981005673,-52,78, + 4503599831827665.,5958905961190841.,.483584825063132170036,-52,78, + 4503599831829909.,5958971362588791.,-.106805427108142418233,-52,78, + 4503599831830101.,5958976958430327.,-.329956492857667599352,-52,78, + 4503599831830245.,5958981155311479.,-.497476350492006233877,-52,78, + 4503599831830247.,5958981213601495.,-.499803960019130002617,-52,78, + 4503599831830248.,5958981242746502.,.499032225510070873756,-52,78, + 4503599831833691.,5959081589009042.,.453650526097361058121,-52,78, + 4503599831856935.,5959759035574965.,.135744013647713050028,-52,78, + 4503599831872431.,5960210666618912.,-.351993831822616704369,-52,78, + 4503599838493341.,6153177141384835.,.089862629607575556901,-52,78, + 4503599838545775.,6154705330731976.,.208206225448305652923,-52,78, + 4503599838550676.,6154848170415965.,.431722851666609511523,-52,78, + 4503599838555264.,6154981887712464.,.486424104890607164545,-52,78, + 4503599838555286.,6154982528902640.,-.496640893654977315375,-52,78, + 4503599838555398.,6154985793143530.,.498616006222757198806,-52,78, + 4503599838555577.,6154991010099954.,.499795540517668910700,-52,78, + 4503599840025107.,6197820473633538.,.361269069531011686481,-52,78, + 4503599840031652.,6198011227710544.,-.495252095594530040885,-52,78, + 4503599840031689.,6198012306075837.,.497895523136481810526,-52,78, + 4503599840031818.,6198016065781863.,-.499037474790232913014,-52,78, + 4503599840032113.,6198024663559206.,.499819547060559399135,-52,78, + 4503599840032408.,6198033261336550.,.498113387366238792391,-52,78, + 4503599840077818.,6199356736147361.,-.395447718130028925156,-52,78, + 4503599864052596.,6898101829588176.,.418634032237617745808,-52,78, + 4503599864069173.,6898584966382315.,.490586676841451779060,-52,78, + 4503599864070641.,6898627751253752.,-.499476223138286767136,-52,78, + 4503599864070865.,6898634279735497.,-.496461513262748771271,-52,78, + 4503599864070879.,6898634687765606.,-.433783875400200348552,-52,78, + 4503599864071008.,6898638447471611.,-.499171044896219450917,-52,78, + 4503599865858060.,6950722091922752.,.267922937876161960682,-52,78, + 4503599865866469.,6950967172293163.,-.499151525645421466552,-52,78, + 4503599865866505.,6950968221513443.,-.470597224074234575760,-52,78, + 4503599865866532.,6950969008428653.,-.449187001899275872659,-52,78, + 4503599865866889.,6950979413196430.,-.499873201714335505064,-52,78, + 4503599865867589.,6950999814701874.,.496387180210626908896,-52,78, + 4503599878044787.,7305904344653177.,-.499928878449995591449,-52,78, + 4503599878044807.,7305904927553330.,.495253614822917446122,-52,78, + 4503599878048937.,7306025296435130.,.444979412596952601846,-52,78, + 4503599878053087.,7306146248217084.,.278432443696141774067,-52,78, + 4503599895527260.,7815431153860045.,.480941214565219084136,-52,78, + 4503599895529679.,7815501655633397.,.499456303032908264932,-52,78, + 4503599895530112.,7815514275421682.,.499188016097897172055,-52,78, + 4503599895530545.,7815526895209967.,.497706395728708659086,-52,78, + 4503599895536682.,7815705758121526.,.341622585190125819129,-52,78, + 4503599895546104.,7815980362383007.,-.372196757322060783360,-52,78, + 4503599929444085.,8803937272076917.,-.480606622868275677670,-52,78, + 4503599929444104.,8803937825832056.,.494844733904719250130,-52,78, + 4503599929444262.,8803942430743221.,-.498860790107786674866,-52,78, + 4503599929444548.,8803950766215327.,.499463892430537127950,-52,78, + 4503599929446422.,8804005383959133.,.482381689127811289649,-52,78, + 4503599943605736.,4608339347076846.,-.493642899512998996072,-52,77, + 4503599943605863.,4608341197784807.,.499443120530010203986,-52,77, + 4503599943621109.,4608563370175268.,.117018754456355270751,-52,77, + 4503599943758323.,4610562921689380.,-.170127351750161373365,-52,77, + 4503599943773569.,4610785094079833.,-.073735453629040554833,-52,77, + 4503626898712911.,6209540018823364.,.217836019594716144405,-52,71, + 4503626898712912.,6209540019051058.,.224373426011519134932,-52,71, + 4503626898712924.,6209540021783386.,.302822299069637294465,-52,71, + 4503626898712953.,6209540028386512.,.492407045570072993133,-52,71, + 4503626898712954.,6209540028614206.,.498944449863443361542,-52,71, + 4503626898713413.,6209540133125755.,.499607683120873012033,-52,71, + 4503626898713719.,6209540202800122.,-.499956078925870450651,-52,71, + 4503626898718155.,6209541212850734.,.499300242207755991729,-52,71, + 4504149383144373.,7823075825172407.,.497474909022526227862,-52,67, + 4504149383172906.,7823076231174873.,.499798351133309136482,-52,67, + 4504149383174669.,7823076256260996.,.499822497409476982955,-52,67, + 4504149383183484.,7823076381691611.,.499795941818615638885,-52,67, + 4504149383183809.,7823076386316110.,-.499642514392393463558,-52,67, + 4504149383184370.,7823076394298705.,-.489443219308658974156,-52,67, + 4504149383184379.,7823076394426768.,-.467889228025475106204,-52,67, + 4504149383184384.,7823076394497914.,-.344803677423164971822,-52,67, + 4504149383184385.,7823076394512143.,-.120186567312180355710,-52,67, + 4504149383184410.,7823076394867873.,.495241184435715547534,-52,67, + 4504149383184459.,7823076395565106.,-.498520427865923721086,-52,67, + 6005646624948160.,9007199254568222.,-.499998935518059296384,-52,56, + 6005646624980238.,9007199254735373.,.499865747246457241540,-52,56, + 6005646624981201.,9007199254740391.,.498988798768019956208,-52,56, + 6005646624981315.,9007199254740986.,-.469962366525682262003,-52,56, + 6005646624981316.,9007199254740991.,-.259163692537080416944,-52,56, + 6005646624981317.,4503599627370498.,-.024182509274239719767,-52,55, + 6005646624981329.,4503599627370529.,.240609534657332306341,-52,55, + 6005646624981386.,4503599627370678.,-.251628256668553686406,-52,55, + 6005646624981590.,4503599627371209.,.249836490153568209670,-52,55, + 6005646624984683.,4503599627379268.,-.250014188917133656126,-52,55, + 6005646624994925.,4503599627405952.,.249995268996513564534,-52,55, + 8008658488351403.,9007199254622759.,-.000013027686031685165,-52,55, + 8008658488409725.,9007199254736707.,-.000027553098171820155,-52,55, + 8008658488411845.,9007199254740849.,.000589166056742351671,-52,55, + 8008658488411888.,9007199254740933.,.012865825915048782012,-52,55, + 8008658488411918.,4503599627370496.,-.186958949882734839667,-52,54, + 8008658488411919.,4503599627370497.,-.210072011977412038028,-52,54, + 8008658488411929.,4503599627370507.,-.441202632924190730477,-52,54, + 8008658488411932.,4503599627370509.,.489458180791773283200,-52,54, + 8008658488412494.,4503599627371058.,.499917283562999206995,-52,54, + 9007199254643340.,5422874305113771.,.499998431711740291838,-52,54, + 9007199254717314.,5422874305178025.,-.499992513232114170068,-52,54, + 9007199254740988.,5422874305198587.,.475136668967818721204,-52,54, + 9007199254740991.,5422874305198590.,.080903560387330410356,-52,54, + 4503599627370497.,5422874305198593.,-.313329548193158768386,-51,54, + 4503599627370570.,5422874305198720.,-.499340832444681032833,-51,54, + 4503599627370882.,5422874305199262.,-.499827417214080179824,-51,54, + 4503599627371038.,5422874305199532.,.499929290387139522745,-51,54, + 4503599627375113.,5422874305206611.,.499984309337333435191,-51,54, + 7120816245950054.,9007199254699105.,.000003842006123563559,-51,54, + 7120816245983128.,9007199254735443.,-.000014848634465499221,-51,54, + 7120816245988083.,9007199254740887.,-.002013188506237046437,-51,54, + 7120816245988154.,9007199254740965.,.004819933135074049332,-51,54, + 7120816245988174.,9007199254740987.,-.021424257952020977658,-51,54, + 7120816245988178.,9007199254740991.,.373326903830552610909,-51,54, + 7120816245988179.,4503599627370496.,.236007347138097811160,-51,53, + 7120816245988387.,4503599627370610.,.499537553483294148139,-51,53, + 7120816245988691.,4503599627370778.,-.499918298787422723476,-51,53, + 5812361472613257.,6420807498743686.,-.499998651183340918059,-50,53, + 5812361472643105.,6420807498763774.,-.499885783131745331259,-50,53, + 5812361472645307.,6420807498765255.,.467959580493779376778,-50,53, + 5812361472645313.,6420807498765260.,-.493980895355419425075,-50,53, + 5812361472645417.,6420807498765329.,.499050856591139027355,-50,53, + 5812361472645680.,6420807498765507.,-.499340001472671402696,-50,53, + 5812361472646836.,6420807498766285.,-.499871681878532787620,-50,53, + 5995926477584710.,6542437866569278.,-.499966893015783323427,-50,53, + 5995926477585271.,6542437866569643.,.499661026104887569065,-50,53, + 5995926477585458.,6542437866569765.,.499536999137501374495,-50,53, + 5995926477585461.,6542437866569767.,.456754260736924061581,-50,53, + 5995926477592774.,6542437866574539.,-.499967716647761251196,-50,53, + 5995926477754054.,6542437866679759.,-.499985675160749332741,-50,53, + 6025316007234861.,6561564926584206.,-.499744260274169276842,-50,53, + 6025316007235166.,6561564926584404.,-.486567298736218955502,-50,53, + 6025316007235186.,6561564926584416.,.497903321692148913159,-50,53, + 6025316007236600.,6561564926585334.,.499976185868516901258,-50,53, + 6025316007247225.,6561564926592232.,.499993280726757914482,-50,53, + 6084210162701752.,6599614741596823.,-.499999322908825762015,-50,53, + 6084210162707849.,6599614741600743.,-.499978417606829813478,-50,53, + 6084210162770561.,6599614741641063.,-.499763619641722114244,-50,53, + 6084210162778400.,6599614741646103.,-.499736799117382093367,-50,53, + 6084210162778428.,6599614741646121.,-.497440492077779326202,-50,53, + 6084210162778442.,6599614741646130.,-.496292338558009010597,-50,53, + 6369701198561097.,6778991790400979.,.478610063847577445284,-50,53, + 6369701198561110.,6778991790400987.,.462202787171836346640,-50,53, + 6369701198561141.,6778991790401007.,-.499999180285765873078,-50,53, + 6469155038028473.,6839596724335558.,.499995856451383785083,-50,53, + 6469155038059362.,6839596724354236.,.499981267349716072505,-50,53, + 6469155038060131.,6839596724354701.,.499883781054785572182,-50,53, + 6469155038060857.,6839596724355140.,.498491355711316791181,-50,53, + 6469155038060862.,6839596724355144.,-.478102256033643757784,-50,53, + 6469155038060900.,6839596724355166.,.499786294704579703912,-50,53, + 6469155038069402.,6839596724360308.,-.499991119836768070967,-50,53, + 6482505237454335.,6847661021817050.,-.492843897849569780841,-50,53, + 6482505237454360.,6847661021817065.,-.406944270897500310042,-50,53, + 6482505237454393.,6847661021817085.,-.493556763320857692702,-50,53, + 6482505237454683.,6847661021817260.,-.497121090681994414403,-50,53, + 6482505237454915.,6847661021817400.,-.499972552576540386634,-50,53, + 6482505237595195.,6847661021902050.,-.499986722438639480118,-50,53, + 6527239159284927.,6874562367129761.,.499996160117837815828,-50,53, + 6527239159286357.,6874562367130618.,.499545086750162291425,-50,53, + 6527239159286644.,6874562367130790.,.498755255918782711392,-50,53, + 6527239159286654.,6874562367130796.,.491759094565636624216,-50,53, + 6527239159286659.,6874562367130799.,.488261013889060137554,-50,53, + 6527239159287500.,6874562367131303.,.499883844056232432832,-50,53, + 6527239159302651.,6874562367140383.,.499999766182546182315,-50,53, + 6551699081962055.,6889193810617853.,-.499996464984337213327,-50,53, + 6551699081994673.,6889193810637328.,-.499934937749341691332,-50,53, + 6551699081997465.,6889193810638994.,.499886376773371380995,-50,53, + 6551699081998078.,6889193810639360.,.499488979043028819631,-50,53, + 6551699081998284.,6889193810639483.,.494461468541947206324,-50,53, + 6551699081998289.,6889193810639486.,.479776334791872881965,-50,53, + 6551699081998418.,6889193810639564.,-.499100115960832331853,-50,53, + 6551699082012378.,6889193810647899.,-.499993555215517586116,-50,53, + 6698297894212183.,6975757642269906.,-.499996420652874177395,-50,53, + 6698297894350583.,6975757642350731.,-.499948061922667033684,-50,53, + 6698297894367191.,6975757642360430.,-.499942371099268137650,-50,53, + 6698297894367441.,6975757642360575.,.498973899351995970187,-50,53, + 6698297894367477.,6975757642360597.,-.477182157703470830172,-50,53, + 6698297894367494.,6975757642360606.,.450744148686963903621,-50,53, + 7036523586229524.,7168454868046317.,.480569739780153041870,-50,53, + 7036523586229533.,7168454868046322.,.483891617721691846042,-50,53, + 7036523586229569.,7168454868046342.,.497179129487783068206,-50,53, + 7036523586229578.,7168454868046348.,-.499498992570710124883,-50,53, + 7036523586231384.,7168454868047352.,-.499575485771163344552,-50,53, + 7036523586240414.,7168454868052372.,-.499957955638741282540,-50,53, + 7036523586241317.,7168454868052874.,-.499996202979819328306,-50,53, + 7060691919437311.,7181867619090072.,.499998572880472454484,-50,53, + 7060691919441078.,7181867619092159.,.499952333508268013348,-50,53, + 7060691919442605.,7181867619093005.,.491173302789902804204,-50,53, + 7060691919442632.,7181867619093020.,.449760706960230569513,-50,53, + 7060691919442670.,7181867619093042.,-.497412576059405036236,-50,53, + 7060691919442744.,7181867619093083.,-.499802653519020588019,-50,53, + 7099291104809557.,7203194166831670.,-.499996875593144425835,-50,53, + 7099291104850765.,7203194166854376.,-.499988541721734312096,-50,53, + 7099291104852647.,7203194166855412.,.499914767214889416265,-50,53, + 7099291104853088.,7203194166855655.,.495109963371228632105,-50,53, + 7099291104853569.,7203194166855921.,-.469314323831471160911,-50,53, + 7099291104853578.,7203194166855925.,.489771292416124230564,-50,53, + 7214758118824651.,7266305728423966.,-.499978786344920719209,-50,53, + 7214758118827353.,7266305728425431.,-.499891343699216338961,-50,53, + 7214758118828775.,7266305728426201.,.495713520418769623044,-50,53, + 7214758118828786.,7266305728426207.,.459814542573801690193,-50,53, + 7214758118828941.,7266305728426291.,.499419854757377646376,-50,53, + 7214758118834902.,7266305728429523.,.499982859363588109663,-50,53, + 7214758118881310.,7266305728454686.,-.499995772845054327327,-50,53, + 7236286776332599.,7277960991938464.,.499838288153574449216,-50,53, + 7236286776333326.,7277960991938857.,.499994131619806712661,-50,53, + 7243607294770927.,7281916302311482.,-.499822384319538905332,-50,53, + 7243607294772838.,7281916302312514.,-.499409307397470854268,-50,53, + 7243607294773238.,7281916302312730.,-.486763974742851622715,-50,53, + 7243607294773249.,7281916302312735.,.453583771904981879421,-50,53, + 7243607294773275.,7281916302312749.,.494405718527097933638,-50,53, + 7243607294773425.,7281916302312830.,.499147718269091071798,-50,53, + 7243607294777247.,7281916302314894.,.499973871129183373227,-50,53, + 7243607294835451.,7281916302346326.,.499996081157256726724,-50,53, + 7273994527114592.,7298292043927157.,.496229325490227890768,-50,53, + 7273994527114698.,7298292043927215.,-.499554706174492091959,-50,53, + 7273994527114923.,7298292043927335.,.499960320949528514105,-50,53, + 7273994527121091.,7298292043930652.,.499998929718383672581,-50,53, + 7311312768865097.,7318309579777677.,-.499990105825614476816,-50,53, + 7311312768882025.,7318309579786734.,-.499964581858885530314,-50,53, + 7311312768882496.,7318309579786985.,.499504464497006057012,-50,53, + 7311312768883124.,7318309579787321.,.498796526279608639500,-50,53, + 7311312768883167.,7318309579787345.,-.494882520446523644537,-50,53, + 7311312768887720.,7318309579789780.,.499984926599911341747,-50,53, + 7548454164495009.,7443173315221837.,.470469733977897935552,-50,53, + 7548454164495011.,7443173315221839.,-.493085757387057009462,-50,53, + 7548454164495038.,7443173315221852.,.498915109186024355291,-50,53, + 7548454164495285.,7443173315221980.,.499811925611519625240,-50,53, + 7548454164500910.,7443173315224895.,.499992460483431320818,-50,53, + 7548454164528788.,7443173315239342.,.499998286406554977605,-50,53, + 7571434122739820.,7455063950669427.,-.499868504890634838008,-50,53, + 7571434122741322.,7455063950670203.,-.492462348338955630932,-50,53, + 7571434122741324.,7455063950670204.,-.459163538543383586162,-50,53, + 7571434122741622.,7455063950670358.,-.497640879006199094291,-50,53, + 7571434122741742.,7455063950670420.,-.499712291274816043563,-50,53, + 7571434122744655.,7455063950671925.,-.499995824396932350845,-50,53, + 7938013874342320.,7640015128802027.,-.499999679576606551048,-50,53, + 7938013874372280.,7640015128816791.,-.499987869041446524153,-50,53, + 7938013874373459.,7640015128817371.,.499879083244254626457,-50,53, + 7938013874374638.,7640015128817952.,.499746035443662296861,-50,53, + 7938013874374916.,7640015128818089.,.495473781581586172758,-50,53, + 7938013874374930.,7640015128818096.,.394539207645959045162,-50,53, + 7938013874375054.,7640015128818158.,-.499452732927269525535,-50,53, + 7969971748295294.,7655732045490204.,-.499997609139892919474,-50,53, + 7969971748333506.,7655732045508959.,-.499991043833569054855,-50,53, + 7969971748344066.,7655732045514142.,-.499884566191840455235,-50,53, + 7969971748344828.,7655732045514516.,-.499308701309478637849,-50,53, + 7969971748345209.,7655732045514703.,-.499020768881706893947,-50,53, + 7969971748345319.,7655732045514756.,.490563673549844997563,-50,53, + 7969971748345325.,7655732045514759.,.435450097682453669868,-50,53, + 7969971748345372.,7655732045514783.,-.496272913278855098643,-50,53, + 7969971748347332.,7655732045515744.,.499958969915654186756,-50,53, + 8345810168411799.,7835981596899523.,.499989091392562993266,-50,53, + 8345810168412614.,7835981596899905.,.499835321092917952419,-50,53, + 8345810168414916.,7835981596900984.,.473634119382493890460,-50,53, + 8345810168414931.,7835981596900992.,-.495693864122242417666,-50,53, + 8345810168415027.,7835981596901037.,-.499392958552854017029,-50,53, + 8345810168415059.,7835981596901051.,.499374009970160431527,-50,53, + 8345810168418287.,7835981596902564.,.499991959433742438106,-50,53, + 8345810168437751.,7835981596911688.,-.499999450627087877338,-50,53, + 8515808456091080.,7914861083868146.,.499299868899378678818,-50,53, + 8515808456091117.,7914861083868163.,.495425051206344032949,-50,53, + 8515808456091154.,7914861083868180.,.491550233513235541287,-50,53, + 8515808456091326.,7914861083868260.,-.499435405493535638573,-50,53, + 8515808456094426.,7914861083869684.,-.499757969261236635025,-50,53, + 8515808456096751.,7914861083870752.,-.499999892427197270120,-50,53, + 8579801239786836.,7944146575151226.,-.499998485469808853963,-50,53, + 8579801239792407.,7944146575153765.,.478340031811930532432,-50,53, + 8579801239792418.,7944146575153770.,.493554844894143844079,-50,53, + 8579801239792554.,7944146575153832.,.499847079364613602995,-50,53, + 8666221177833593.,7983350786031725.,-.463207492147540594579,-50,53, + 8666221177833604.,7983350786031730.,-.498004621354359542247,-50,53, + 8666221177833748.,7983350786031795.,-.498985221880570673734,-50,53, + 8666221177833892.,7983350786031860.,-.499965822407861844445,-50,53, + 8666221177844094.,7983350786036465.,-.499994204180438190274,-50,53, + 8666221177881827.,7983350786053496.,.499998796213548625323,-50,53, + 8746614672447068.,8019471686161309.,.496727185277263333661,-50,53, + 8746614672447106.,8019471686161326.,.491590803800165970185,-50,53, + 8746614672447229.,8019471686161382.,-.498719062560418622939,-50,53, + 8746614672447627.,8019471686161560.,-.499884321195904246785,-50,53, + 8746614672449380.,8019471686162344.,-.499991603674231704415,-50,53, + 8746614672468265.,8019471686170789.,.499993537757195362996,-50,53, + 8848436869419801.,8064746934932899.,.499960149877544437459,-50,53, + 8848436869420932.,8064746934933400.,-.499895491690547513863,-50,53, + 8848436869422063.,8064746934933900.,-.499751133322549076749,-50,53, + 8848436869422486.,8064746934934087.,-.497044622649612675191,-50,53, + 8848436869422504.,8064746934934094.,.460517356527760786873,-50,53, + 8848436869422581.,8064746934934129.,-.498800843658102139687,-50,53, + 8848436869440867.,8064746934942212.,.499996438879720783044,-50,53, + 8957999189153692.,8112885570022487.,-.499970597007360276251,-50,53, + 8957999189156472.,8112885570023700.,.469761500593918154299,-50,53, + 8957999189156495.,8112885570023711.,-.486604025218865640529,-50,53, + 8957999189156511.,8112885570023718.,-.499727869262556533097,-50,53, + 8957999189156740.,8112885570023817.,.499937112860750078739,-50,53, + 8957999189165655.,8112885570027710.,.499995257726577892432,-50,53, + 4630540339090841.,8243045443032028.,-.499999942429704626026,-49,53, + 4630540339110516.,8243045443048649.,-.499957812364002446261,-49,53, + 4630540339111798.,8243045443049732.,-.495024955310592052917,-49,53, + 4630540339111914.,8243045443049829.,.499181137824533868912,-49,53, + 4630540339112249.,8243045443050112.,.499690113675124465408,-49,53, + 4630540339116385.,8243045443053607.,-.499996084674243743674,-49,53, + 4751802502288025.,8344166656761645.,-.499996096479904023151,-49,53, + 4751802502327707.,8344166656794311.,.499991626989057910349,-49,53, + 4751802502332074.,8344166656797906.,.499965058952615195925,-49,53, + 4751802502333590.,8344166656799155.,-.499128204275450635926,-49,53, + 4751802502333788.,8344166656799317.,.498351699310484113886,-49,53, + 4751802502333873.,8344166656799387.,.472017314484180495285,-49,53, + 4751802502333969.,8344166656799467.,-.498901520144679320646,-49,53, + 4918372782520586.,8478941925147298.,.499998191710081149494,-49,53, + 4918372782548466.,8478941925169473.,-.430297317640235671228,-49,53, + 4918372782548481.,8478941925169484.,.499797573551174956502,-49,53, + 4918372782549468.,8478941925170270.,-.499958586133968185691,-49,53, + 4918372782565690.,8478941925183171.,.499996383784467312697,-49,53, + 4961703275449724.,8513253464551320.,.499998274563258444836,-49,53, + 4961703275494907.,8513253464586943.,-.495342404421033861872,-49,53, + 4961703275494959.,8513253464586984.,-.498856064951563839847,-49,53, + 4961703275495545.,8513253464587446.,-.499990777883008548103,-49,53, + 5155187794682824.,8662896387896959.,.499956211987053520190,-49,53, + 5155187794694864.,8662896387906095.,.499682685064281540292,-49,53, + 5155187794695432.,8662896387906527.,-.499665767563441439384,-49,53, + 5155187794695461.,8662896387906549.,-.494350811800990198306,-49,53, + 5155187794695469.,8662896387906555.,-.423919099866542674884,-49,53, + 5155187794710482.,8662896387917946.,.499992292519352749720,-49,53, + 5155187794739645.,8662896387940075.,.499994058502385966925,-49,53, + 5357710127493616.,8813629367116971.,-.499953351973252725624,-49,53, + 5357710127494861.,8813629367117880.,-.499248459336149949407,-49,53, + 5357710127495150.,8813629367118091.,-.494265556577503461350,-49,53, + 5357710127495276.,8813629367118183.,-.499013495170722223254,-49,53, + 5357710127497829.,8813629367120047.,-.499977679989822584568,-49,53, + 5357710127502042.,8813629367123122.,.499997989574815275997,-49,53, + 5363132893508262.,8817586640398684.,-.499982804808859385657,-49,53, + 5363132893510287.,8817586640400161.,-.499795021951500457286,-49,53, + 5363132893510590.,8817586640400382.,-.496803961157105981604,-49,53, + 5363132893510675.,8817586640400444.,-.499265214731878214097,-49,53, + 5363132893534672.,8817586640417946.,.499997074985395076139,-49,53, + 5365726582682598.,8819477975392048.,-.492680921524555350862,-49,53, + 5365726582682620.,8819477975392064.,-.454015660427590473645,-49,53, + 5365726582682646.,8819477975392083.,-.499229442767625854896,-49,53, + 5365726582682956.,8819477975392309.,-.499855309136662172331,-49,53, + 5365726582689370.,8819477975396985.,-.499901463327787486651,-49,53, + 5365726582702198.,8819477975406337.,-.499993788478613577567,-49,53, + 5483096108824229.,8904121504334032.,-.499866936537612779638,-49,53, + 5483096108824892.,8904121504334505.,-.499201693104971938593,-49,53, + 5483096108825391.,8904121504334860.,.499790699727422999884,-49,53, + 5483096108830203.,8904121504338294.,-.499905906525413469213,-49,53, + 5483096108845138.,8904121504348948.,.499996648189428420324,-49,53, + 5494838942542058.,8912490175378092.,-.499983687892976624376,-49,53, + 5494838942547268.,8912490175381801.,-.499949679232786145078,-49,53, + 5494838942548705.,8912490175382824.,-.499364483988832991153,-49,53, + 5494838942549125.,8912490175383122.,.498718871564303915436,-49,53, + 5494838942549139.,8912490175383132.,.465321650082348215198,-49,53, + 5494838942549184.,8912490175383165.,-.499169418966967095203,-49,53, + 5494838942598410.,8912490175418209.,-.499999909896077141481,-49,53, + 5525992699346453.,8934605905993223.,.499997085753000088629,-49,53, + 5525992699365206.,8934605906006498.,.499952645431489903988,-49,53, + 5525992699367818.,8934605906008348.,-.499893573581465393994,-49,53, + 5525992699368845.,8934605906009074.,.499784042210437924833,-49,53, + 5525992699369016.,8934605906009196.,-.451584144462454084094,-49,53, + 5525992699369023.,8934605906009201.,-.496376994209377423720,-49,53, + 5629499534200817.,9007199254732443.,-.000017378473290768449,-49,53, + 5629499534209279.,9007199254738323.,-.000167985534959634543,-49,53, + 5629499534212730.,9007199254740721.,.000243292361472396405,-49,53, + 5629499534213061.,9007199254740951.,.002600908332812633003,-49,53, + 5629499534213119.,9007199254740991.,.305128828954797014041,-49,53, + 5629499534213121.,4503599627370496.,.347435585522601431262,-49,52, + 5629499534213127.,4503599627370498.,.432049098658208722781,-49,52, + 5629499534213133.,4503599627370501.,-.483337388206186207511,-49,52, + 5629499534213179.,4503599627370516.,.498699545833378846768,-49,52, + 5629499534278866.,4503599627393339.,-.499994364431173399931,-49,52, + 7036874417733527.,9007199254731855.,-.000002328924195760724,-46,52, + 7036874417763144.,9007199254740087.,-.000213169481662788707,-46,52, + 7036874417765425.,9007199254740721.,.000243292352085247115,-46,52, + 7036874417765756.,9007199254740813.,.001186338747535917156,-46,52, + 7036874417766382.,9007199254740987.,-.003072431525467453355,-46,52, + 7036874417766396.,9007199254740991.,-.111793873672324994778,-46,52, + 7036874417766399.,4503599627370496.,-.138974234209040594723,-46,51, + 7036874417766401.,4503599627370496.,.138974234209040574974,-46,51, + 5426391276979793.,5605160498150127.,-.498340601022449469493,-44,51, + 5426391276979843.,5605160498150136.,-.487340624085926626462,-44,51, + 5426391276979965.,5605160498150157.,.499499319638840652757,-44,51, + 5426391276981785.,5605160498150485.,.499898480064381349738,-44,51, + 5426391276982240.,5605160498150567.,.499998270153577362946,-44,51, + 5426971710372686.,5605265098261756.,-.499995159269396128002,-44,51, + 5426971710374878.,5605265098262150.,.499992695888269462995,-44,51, + 5426971710392414.,5605265098265310.,.499895531406015505645,-44,51, + 5426971710398990.,5605265098266495.,.499859092092696707541,-44,51, + 5426971710399495.,5605265098266587.,-.498775093163330092653,-44,51, + 5426971710399595.,5605265098266605.,-.478702654601171523610,-44,51, + 5426971710399606.,5605265098266607.,-.496494686359354352457,-44,51, + 5426971710399889.,5605265098266658.,-.499689685230348477842,-44,51, + 5562950707695949.,5629466663649870.,-.499992677834406003674,-44,51, + 5562950707701791.,5629466663650896.,.499977646599375236278,-44,51, + 5562950707703179.,5629466663651141.,-.495236525022027671955,-44,51, + 5562950707703361.,5629466663651172.,.499627322786789358961,-44,51, + 5562950707730216.,5629466663655894.,-.499995584807771566324,-44,51, + 5565768841101520.,5629961954659738.,.499995915148297356780,-44,51, + 5565768841142577.,5629961954666952.,.499990930485746362889,-44,51, + 5565768841150357.,5629961954668320.,-.499985663686003037211,-44,51, + 5565768841151205.,5629961954668468.,.499502748556137564909,-44,51, + 5565768841151347.,5629961954668493.,.449888779849182675164,-44,51, + 5565768841151353.,5629961954668495.,-.495869556856759012964,-44,51, + 5565768841151666.,5629961954668550.,-.499596121684959789282,-44,51, + 5637442019520522.,5642475033041692.,-.499988104056062189373,-44,51, + 5637442019534455.,5642475033044108.,.499948612241512954136,-44,51, + 5637442019535925.,5642475033044364.,-.494675160951368987031,-44,51, + 5637442019535948.,5642475033044367.,.495204875249846704233,-44,51, + 5637442019536046.,5642475033044384.,.495563290367887639654,-44,51, + 5637442019537124.,5642475033044571.,.499505856646832927219,-44,51, + 5637442019556787.,5642475033047982.,.499990711914620092072,-44,51, + 5666178554261246.,5647447384828970.,.493900820937909819429,-44,51, + 5666178554261252.,5647447384828972.,-.470539613754557560322,-44,51, + 5666178554261275.,5647447384828975.,.499105386590973992140,-44,51, + 5666178554261472.,5647447384829009.,.499977780854214606822,-44,51, + 5666178554262625.,5647447384829209.,-.499992419243012516859,-44,51, + 5666178554295865.,5647447384834945.,.499999366266772070189,-44,51, + 5772925638472642.,5665699815103011.,.499976426207636749393,-44,51, + 5772925638472677.,5665699815103017.,.429040875278780921587,-44,51, + 5772925638472701.,5665699815103021.,.494685068927544721117,-44,51, + 5772925638485682.,5665699815105220.,.499988306225752238638,-44,51, + 5772925638498722.,5665699815107430.,-.499999818745865720760,-44,51, + 5835612929829491.,5676261914827400.,-.499940383616529986143,-44,51, + 5835612929829855.,5676261914827460.,.499941762519159813409,-44,51, + 5835612929832039.,5676261914827826.,.499234639253395590300,-44,51, + 5835612929832224.,5676261914827858.,-.498078006267625464197,-44,51, + 5835612929846605.,5676261914830268.,-.499986956506738929422,-44,51, + 5835612929855162.,5676261914831701.,.499989753894056605952,-44,51, + 5896103646765295.,5686346896283055.,-.499988594963912116988,-44,51, + 5896103646768406.,5686346896283570.,.499168218082976745227,-44,51, + 5896103646768509.,5686346896283588.,-.416963845006273034175,-44,51, + 5896103646768551.,5686346896283595.,-.450726433838868311599,-44,51, + 5896103646768611.,5686346896283605.,-.498958703599804788521,-44,51, + 5896103646769027.,5686346896283673.,.499964226054917119100,-44,51, + 5896103646829360.,5686346896293681.,-.499994684010982430550,-44,51, + 6004329071212296.,5704134711264240.,.499999279214967165140,-44,51, + 6004329071266424.,5704134711273057.,-.499938218518973451630,-44,51, + 6004329071334084.,5704134711284077.,-.499860202447742877921,-44,51, + 6004329071334612.,5704134711284162.,.497184449628024934896,-44,51, + 6004329071334618.,5704134711284163.,.474423593401569749708,-44,51, + 6004329071334655.,5704134711284170.,-.499268353328258804318,-44,51, + 6029337333097935.,5708199427683352.,.499997333119733481644,-44,51, + 6029337333126129.,5708199427687926.,-.499987221635238118721,-44,51, + 6029337333126203.,5708199427687938.,-.497362509208663365536,-44,51, + 6304262280168312.,5751804833829838.,.484042964997938768291,-44,51, + 6304262280168325.,5751804833829841.,-.499341217059581001974,-44,51, + 6304262280168686.,5751804833829897.,-.499471195735444947730,-44,51, + 6304262280170130.,5751804833830121.,-.499991110470967850076,-44,51, + 6304262280185537.,5751804833832511.,-.499998264863347672255,-44,51, + 6305910042749690.,5752060408437772.,-.499996142464717951625,-44,51, + 6305910042755719.,5752060408438706.,.499986952989959180465,-44,51, + 6305910042773806.,5752060408441511.,.499936233990341371607,-44,51, + 6305910042774367.,5752060408441599.,-.498074959446134451764,-44,51, + 6305910042774380.,5752060408441601.,-.481986092270957378546,-44,51, + 6535180284037603.,5786985377295174.,.499999466718162729372,-44,51, + 6535180284090970.,5786985377303161.,-.499976486585385709521,-44,51, + 6535180284094612.,5786985377303705.,.499968937575769327705,-44,51, + 6535180284100165.,5786985377304536.,.467760518640522753592,-44,51, + 6535180284100172.,5786985377304538.,-.484738213384512564873,-44,51, + 6535180284100212.,5786985377304544.,-.499016682099021623149,-44,51, + 6535180284100633.,5786985377304607.,-.499297565321451502001,-44,51, + 6535180284101475.,5786985377304733.,-.499859331778486692026,-44,51, + 6535815775749321.,5787080469582329.,.499999010697835993179,-44,51, + 6535815775753224.,5787080469582913.,.499988308931599446951,-44,51, + 6535815775780545.,5787080469587001.,.499913386803002716199,-44,51, + 6535815775784448.,5787080469587585.,.499902682246783053645,-44,51, + 6535815775784575.,5787080469587605.,-.497279321212480585060,-44,51, + 6535815775784582.,5787080469587606.,-.449879904080324751074,-44,51, + 6544022097454393.,5788307598866346.,-.499907312651883802975,-44,51, + 6544022097454480.,5788307598866359.,-.498553246033192102004,-44,51, + 6544022097454654.,5788307598866385.,-.495845112796327242536,-44,51, + 6544022097454674.,5788307598866387.,.492971914012463496479,-44,51, + 6544022097454681.,5788307598866389.,-.460942126604461902890,-44,51, + 6544022097457344.,5788307598866787.,-.499955007095981204009,-44,51, + 6544022097460295.,5788307598867227.,.499997298261054270140,-44,51, + 6616319171093301.,5799052490062837.,-.499998583830160993619,-44,51, + 6616319171106460.,5799052490064782.,-.495860335412426693306,-44,51, + 6616319171106487.,5799052490064785.,.494952927955226532891,-44,51, + 6616319171106690.,5799052490064815.,.499956352533727412329,-44,51, + 6616319171117684.,5799052490066440.,.499994034981559277314,-44,51, + 6702751591225878.,5811745158329061.,-.498502666117754705328,-44,51, + 6702751591226159.,5811745158329101.,.499932954672734735671,-44,51, + 6702751591232540.,5811745158330032.,.499995930238937189200,-44,51, + 6729307497419250.,5815612060490681.,-.499997137115532599777,-44,51, + 6729307497431285.,5815612060492430.,-.499991730215634605747,-44,51, + 6729307497436666.,5815612060493211.,.499927595280805231476,-44,51, + 6729307497437230.,5815612060493293.,.463866361195165086584,-44,51, + 6729307497437244.,5815612060493295.,.498432217086568911241,-44,51, + 6743769751750153.,5817711548736150.,-.499998910928946841671,-44,51, + 6743769751754987.,5817711548736850.,.499975649698349432580,-44,51, + 6743769751757504.,5817711548737216.,-.498589520318766945594,-44,51, + 6743769751757518.,5817711548737218.,-.468386863338710747149,-44,51, + 6743769751758166.,5817711548737312.,-.499006740266436084745,-44,51, + 6743769751759821.,5817711548737551.,.499950209823162080940,-44,51, + 6754791752038960.,5819308593579163.,.499998832151120058504,-44,51, + 6754791752061422.,5819308593582416.,-.499913269737703409460,-44,51, + 6754791752062092.,5819308593582513.,-.498753137603265932559,-44,51, + 6754791752062147.,5819308593582520.,.464028664287939667130,-44,51, + 6754791752062161.,5819308593582522.,.490918577496599831104,-44,51, + 6754791752062168.,5819308593582524.,-.495636465899071662261,-44,51, + 6754791752062389.,5819308593582556.,-.499731407391525944724,-44,51, + 6754791752066554.,5819308593583159.,-.499982228022010212333,-44,51, + 6794379564739824.,5825023302236630.,-.499999796082499045253,-44,51, + 6794379564754678.,5825023302238768.,-.499980073445761594537,-44,51, + 6794379564776959.,5825023302241975.,-.499950498254659913897,-44,51, + 6794379564778154.,5825023302242147.,-.498467829804744926751,-44,51, + 6794379564778161.,5825023302242148.,-.490927763964541660129,-44,51, + 6794379564778168.,5825023302242149.,-.483387698124339431539,-44,51, + 6794379564778286.,5825023302242166.,-.499140873961086669650,-44,51, + 6794379564778418.,5825023302242185.,-.499813918117797528101,-44,51, + 6990987887109277.,5852920275443047.,.499998554010371221300,-44,51, + 6990987887144141.,5852920275447924.,.499974084730539433143,-44,51, + 6990987887145199.,5852920275448072.,.499801244501231032857,-44,51, + 6990987887147844.,5852920275448442.,.499369143829968988382,-44,51, + 6990987887148180.,5852920275448490.,-.498795387683093174277,-44,51, + 6990987887148194.,5852920275448491.,.459614423503813545586,-44,51, + 6990987887155586.,5852920275449525.,.499994729642849122197,-44,51, + 7006147211081140.,5855038563100257.,-.499890760416634248708,-44,51, + 7006147211081620.,5855038563100324.,-.499695373999862028990,-44,51, + 7006147211081706.,5855038563100336.,-.495493700600675226535,-44,51, + 7006147211081720.,5855038563100337.,.458678664836387748668,-44,51, + 7006147211085897.,5855038563100920.,.499962266848578131494,-44,51, + 7006147211091134.,5855038563101652.,-.499989320011259620499,-44,51, + 7006147211132070.,5855038563107366.,-.499992806415676991695,-44,51, + 7054682820221209.,5861789986378716.,.499721125112962770043,-44,51, + 7054682820221411.,5861789986378745.,-.498348782794506364455,-44,51, + 7054682820221512.,5861789986378759.,-.497383736748541603791,-44,51, + 7054682820221548.,5861789986378763.,.493059249960862725673,-44,51, + 7054682820223301.,5861789986379006.,.499908019418544775084,-44,51, + 7054682820224347.,5861789986379152.,-.499998533460913035335,-44,51, + 7138546116893913.,5873346846652852.,.499975431928656019084,-44,51, + 7138546116895497.,5873346846653069.,.499857535896670737670,-44,51, + 7138546116897081.,5873346846653286.,.499739639816534501198,-44,51, + 7138546116897373.,5873346846653327.,-.497756841031777217300,-44,51, + 7138546116897519.,5873346846653347.,-.496505081456546685268,-44,51, + 7138546116901906.,5873346846653948.,-.499988168931361700325,-44,51, + 7138546116927469.,5873346846657450.,-.499996875871697107238,-44,51, + 7223985620312852.,5884982128905322.,.499981147093985028947,-44,51, + 7223985620314093.,5884982128905490.,.499871717096311354959,-44,51, + 7223985620314551.,5884982128905553.,-.498557065295294380412,-44,51, + 7223985620314647.,5884982128905565.,.497405460665792120140,-44,51, + 7223985620314654.,5884982128905566.,.445027728183781255179,-44,51, + 7223985620321768.,5884982128906530.,-.499999254723066305182,-44,51, + 7322656671993204.,5898249282110012.,.496920860181360681566,-44,51, + 7322656671993219.,5898249282110015.,-.499822103664137804838,-44,51, + 7322656671993526.,5898249282110056.,-.499828097036241608561,-44,51, + 7322656672000587.,5898249282110999.,-.499965945069048645426,-44,51, + 7322656672002429.,5898249282111244.,.499998094425021616851,-44,51, + 7371229009390497.,5904714721042824.,-.499997120438890337181,-44,51, + 7371229009394017.,5904714721043290.,.499969547597061485625,-44,51, + 7371229009395223.,5904714721043451.,-.499473690621457873715,-44,51, + 7371229009395321.,5904714721043464.,-.497770073164411297853,-44,51, + 7371229009395351.,5904714721043467.,.482343279118323505146,-44,51, + 7371229009395374.,5904714721043471.,-.466236484131590782589,-44,51, + 7413149621275409.,5910260592336724.,.498724620494993036383,-44,51, + 7413149621275439.,5910260592336728.,.456330834030527652324,-44,51, + 7413149621275447.,5910260592336730.,-.488307509026665821664,-44,51, + 7413149621275644.,5910260592336755.,.499973293189585547103,-44,51, + 7413149621279654.,5910260592337285.,-.499996164386062757071,-44,51, + 7461059150899351.,5916560491843206.,.499989618412495482582,-44,51, + 7461059150902212.,5916560491843582.,-.499840128592786783892,-44,51, + 7461059150902227.,5916560491843583.,.466256534739557374301,-44,51, + 7461059150902235.,5916560491843585.,-.485158578149860690884,-44,51, + 7461059150946485.,5916560491849384.,.499998235054100081561,-44,51, + 7761862923838164.,5955213729277231.,.499989555800237344203,-44,51, + 7761862923839767.,5955213729277433.,.467561204153223358870,-44,51, + 7761862923839783.,5955213729277435.,.483457115802200750442,-44,51, + 7761862923839799.,5955213729277437.,.499353027451173986525,-44,51, + 7761862923839926.,5955213729277454.,-.499473173835248350176,-44,51, + 7761862923867983.,5955213729280989.,-.499998609333126846705,-44,51, + 7819356134936071.,5962430803784780.,.473157403102710360012,-44,51, + 7819356134936199.,5962430803784796.,.481746821393661719639,-44,51, + 7819356134936463.,5962430803784829.,.499462496617921276729,-44,51, + 7819356134936471.,5962430803784830.,.499999335261063255174,-44,51, + 7880037969507938.,5969990808372563.,-.499994661829980522605,-44,51, + 7880037969510170.,5969990808372840.,-.499866303147570491157,-44,51, + 7880037969510589.,5969990808372891.,.499709764176984551128,-44,51, + 7880037969511145.,5969990808372961.,-.498466146489688546990,-44,51, + 7880037969511266.,5969990808372976.,-.481882127049088006323,-44,51, + 7880037969511274.,5969990808372977.,-.489050125763767171524,-44,51, + 7880037969511282.,5969990808372978.,-.496218124478447344672,-44,51, + 8016984453625142.,5986840421332387.,.499999093022386921388,-44,51, + 8016984453660040.,5986840421336644.,.499380310829109443650,-44,51, + 8016984453660081.,5986840421336650.,-.499273634109003088045,-44,51, + 8016984453660286.,5986840421336675.,-.492543358799949410460,-44,51, + 8016984453660327.,5986840421336680.,-.491197303738215407731,-44,51, + 8016984453663024.,5986840421337008.,.499785879168937120217,-44,51, + 8016984453664516.,5986840421337190.,.499988663288044267258,-44,51, + 8049376796585031.,5990783809313562.,-.499997617104082235271,-44,51, + 8049376796610909.,5990783809316706.,-.499969750584135334983,-44,51, + 8049376796641100.,5990783809320374.,-.499937252419167261765,-44,51, + 8049376796641314.,5990783809320399.,.499599263533427856613,-44,51, + 8049376796642170.,5990783809320503.,.497745327336896116975,-44,51, + 8198893031065787.,6008782361548741.,.499975545692301524791,-44,51, + 8198893031068168.,6008782361549025.,.499926634697337589242,-44,51, + 8198893031068713.,6008782361549091.,-.493784686814579288380,-44,51, + 8198893031068738.,6008782361549093.,.488155160822385090172,-44,51, + 8198893031068889.,6008782361549111.,.499071840549456622639,-44,51, + 8198893031068998.,6008782361549125.,-.499670423753724376737,-44,51, + 8198893031085665.,6008782361551112.,.499987196770975933175,-44,51, + 8198893031105543.,6008782361553483.,.499998842101223321856,-44,51, + 8347450336544563.,6026343300644223.,.498841949256834019547,-44,51, + 8347450336544640.,6026343300644233.,-.480235141531828983932,-44,51, + 8347450336544657.,6026343300644235.,-.488602810926739821886,-44,51, + 8347450336544674.,6026343300644237.,-.496970480321654715899,-44,51, + 8347450336547909.,6026343300644615.,.498946549454539360737,-44,51, + 8347450336578262.,6026343300648171.,.499895415498719697924,-44,51, + 8347450336581608.,6026343300648564.,-.499999985886095490183,-44,51, + 8638779724394281.,6059891867216395.,-.491670744572102408173,-44,51, + 8638779724394290.,6059891867216396.,-.472834938855851483251,-44,51, + 8638779724394546.,6059891867216425.,-.492616465149603000902,-44,51, + 8638779724396454.,6059891867216641.,-.499425653334772749015,-44,51, + 8638779724396613.,6059891867216659.,-.499993085685690255947,-44,51, + 8704521642366309.,6067305938638189.,-.499683864400677488330,-44,51, + 8704521642366371.,6067305938638195.,.465953647236539529847,-44,51, + 8704521642366389.,6067305938638197.,.488235505453786790493,-44,51, + 8704521642366398.,6067305938638198.,.499376434562408852620,-44,51, + 8704521642367386.,6067305938638310.,-.499819347741881686344,-44,51, + 8704521642368463.,6067305938638431.,-.499954831098057052153,-44,51, + 8704521642390813.,6067305938640942.,-.499980881840587086158,-44,51, + 8704521642405713.,6067305938642616.,-.499998252584119045966,-44,51, + 8796093022207186.,6755399441055653.,.499978683068583661624,-43,51, + 8796093022207996.,6755399441055744.,-.444717549468929972632,-43,51, + 8796093022207999.,6755399441055744.,-.111179387367232474199,-43,51, + 8796093022208001.,6755399441055744.,.111179387367232461559,-43,51, + 8796093022208256.,6755399441055772.,.461923166011097601451,-43,51, + 8796093022208796.,6755399441055832.,.498792344313040094595,-43,51, + 8796093022208814.,6755399441055835.,-.499978683076958631871,-43,51, + 8796093022231597.,6755399441058368.,-.499996298934445626810,-43,51, + 5497558138867998.,9007199254738857.,-.000011492769040960767,-39,51, + 5497558138870033.,9007199254739219.,.000073775663175568155,-39,51, + 5497558138879792.,9007199254740955.,-.000500115815665266611,-39,51, + 5497558138879983.,9007199254740989.,-.024079336388727801953,-39,51, + 5497558138879994.,9007199254740991.,-.067322118725432274070,-39,51, + 5497558138879999.,4503599627370496.,-.088943509893785982392,-39,50, + 5497558138880001.,4503599627370496.,.088943509893785966214,-39,50, + 5497558138880028.,4503599627370498.,.490418277026000938420,-39,50, + 5497558138880208.,4503599627370515.,-.499749942092867323278,-39,50, + 5497558138892002.,4503599627371564.,-.499994255945993312339,-39,50, + 6871947673398053.,5629499534198751.,-.499994227456292802785,-36,50, + 6871947673572082.,5629499534211134.,-.499927375808645442839,-36,50, + 6871947673599993.,5629499534213120.,-.498083655405201709779,-36,50, + 6871947673599999.,5629499534213120.,-.071154807915028784620,-36,50, + 6871947673600001.,5629499534213120.,.071154807915028774265,-36,50, + 6871947673600260.,5629499534213139.,-.499749942092867323278,-36,50, + 6871947673602087.,5629499534213269.,-.499915881357486928024,-36,50, + 8589934591997848.,6755399441055621.,.499882693471108593767,-33,50, + 8589934591999675.,6755399441055725.,.499749942092167366694,-33,50, + 8589934591999956.,6755399441055741.,.495350761390980548879,-33,50, + 8589934591999991.,6755399441055743.,.487685383011792519629,-33,50, + 8589934591999999.,6755399441055744.,-.056923846332023026867,-33,50, + 8589934592000001.,6755399441055744.,.056923846332023020240,-33,50, + 8589934592000009.,6755399441055745.,-.487685383011793056401,-33,50, + 8589934592000202.,6755399441055755.,.498616959068515557751,-33,50, + 8589934592003979.,6755399441055970.,.499984555067151448452,-33,50, + 8589934592063989.,6755399441059387.,-.499997073745783497788,-33,50, + 5368709119999731.,7881299347898343.,.499976538696676873676,-29,50, + 5368709119999797.,7881299347898350.,-.488865288641427597985,-29,50, + 5368709119999995.,7881299347898368.,-.455390770656184400489,-29,50, + 5368709119999999.,7881299347898368.,-.091078154131236846169,-29,50, + 5368709120000001.,7881299347898368.,.091078154131236829204,-29,50, + 5368709120021240.,7881299347900302.,.499993743643741629993,-29,50, + 6710886399990187.,9007199254740277.,.000058807615574757185,-26,50, + 6710886399998257.,9007199254740865.,.000621879386860931376,-26,50, + 6710886399999602.,9007199254740963.,.000715724613330955918,-26,50, + 6710886399999959.,9007199254740989.,.012636544495422598279,-26,50, + 6710886399999986.,9007199254740991.,-.020075326269853646107,-26,50, + 6710886399999987.,9007199254740991.,.052787197035135970616,-26,50, + 6710886399999999.,4503599627370496.,-.036431261652494737789,-26,49, + 6710886400000001.,4503599627370496.,.036431261652494732360,-26,49, + 6710886400000151.,4503599627370502.,-.498879490473356893430,-26,49, + 6710886400011158.,4503599627370903.,-.499982481801684049209,-26,49, + 6710886400032129.,4503599627371667.,-.499994369798596240527,-26,49, + 8388607999981146.,5066549580791258.,.499994242473891526059,-23,49, + 8388607999999999.,5066549580791808.,-.029145009321995789797,-23,49, + 8388608000000001.,5066549580791808.,.029145009321995786322,-23,49, + 8388608000000015.,5066549580791808.,.437175139829936430029,-23,49, + 8388608000000017.,5066549580791808.,.495465158473927894969,-23,49, + 8388608000000223.,5066549580791814.,.499337078804974349168,-23,49, + 8388608000000772.,5066549580791830.,.499947196579713051754,-23,49, + 5242879999987144.,5629499534212520.,.498816249540423279253,-19,49, + 5242879999999925.,5629499534213117.,-.497401118639519582513,-19,49, + 5242879999999990.,5629499534213120.,-.466320149151933053671,-19,49, + 5242879999999999.,5629499534213120.,-.046632014915193265343,-19,49, + 5242880000000001.,5629499534213120.,.046632014915193256448,-19,49, + 5242880000000011.,5629499534213121.,-.487047835932874668259,-19,49, + 5242880000000311.,5629499534213135.,-.497443361375325996809,-19,49, + 5242880000023471.,5629499534214215.,-.499977927948868432152,-19,49, + 5242880000023664.,5629499534214224.,-.499999049357025279420,-19,49, + 9007199254740990.,5422874305198591.,-.052203938626100463765,971,44 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/obj b/src/regress/lib/libm/fpaccuracy/obj new file mode 120000 index 000000000..105482789 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libm/fpaccuracy \ No newline at end of file diff --git a/src/regress/lib/libm/fpaccuracy/pow2_x.c b/src/regress/lib/libm/fpaccuracy/pow2_x.c new file mode 100644 index 000000000..35abb1614 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/pow2_x.c @@ -0,0 +1,1499 @@ +/* $OpenBSD: pow2_x.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:40:39. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1467 +#define F pow2_x +#define Fs "pow2_x" +#define Fn fpaccuracy_pow2_x + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -8978350369394041.,5467256732866502.,.498257556096271592293,-43,1073, + -8978350369394000.,5467256732884166.,.494851169252276389381,-43,1073, + -8978350369393959.,5467256732901830.,.491444839478360552504,-43,1073, + -8978350369393479.,5467256733108629.,-.499649410318153210411,-43,1073, + -8978350369392595.,5467256733489482.,-.499894185599401408611,-43,1073, + -8978350369388778.,5467256735133957.,-.499515277245534750993,-43,1073, + -8978350369384961.,5467256736778432.,-.498641733618678966706,-43,1073, + -8978350369318907.,5467256765236423.,-.404394717203865548794,-43,1073, + -8978265489008005.,5503948253274504.,-.490667823494606041800,-43,1073, + -8978265488988249.,5503948261843087.,-.499749658968435295126,-43,1073, + -8978265488986399.,5503948262645470.,-.499815804570816768269,-43,1073, + -8978265488984642.,5503948263407516.,.489959405982984026495,-43,1073, + -8978265488984635.,5503948263410553.,-.466256418020247464542,-43,1073, + -8978265488984617.,5503948263418360.,-.496525672052810567593,-43,1073, + -8978265488984549.,5503948263447853.,-.499764976239586580115,-43,1073, + -8978265488979296.,5503948265726187.,-.499523567497142480725,-43,1073, + -8977997097604419.,5621594827356193.,.499024322765455004029,-43,1073, + -8977997097604304.,5621594827407137.,.497504827994062075149,-43,1073, + -8977997097604303.,5621594827407580.,.488795964846828278682,-43,1073, + -8977997097603845.,5621594827610471.,-.499859687321880072964,-43,1073, + -8977997097601204.,5621594828780411.,-.499803247332236162564,-43,1073, + -8977997097591329.,5621594833154950.,-.497056302316688033740,-43,1073, + -8977997097544595.,5621594853857705.,-.437778647053901554503,-43,1073, + -8976930418185147.,6114552367698786.,.499959005521648955935,-43,1073, + -8976930418185104.,6114552367719505.,.499076524284384896880,-43,1073, + -8976930418184932.,6114552367802381.,.495547301393138650036,-43,1073, + -8976930418184901.,6114552367817318.,.448399712087558391964,-43,1073, + -8976930418184889.,6114552367823100.,.494665171184779586859,-43,1073, + -8976930418164743.,6114552377530193.,-.492296796599885326793,-43,1073, + -8976930418154541.,6114552382445896.,-.482496838703195565032,-43,1073, + -8974759521484945.,7255370393439719.,-.499406088117639858669,-43,1073, + -8974759521481212.,7255370395574008.,-.499868748172038012218,-43,1073, + -8974759521480066.,7255370396229216.,.499311531115235955275,-43,1073, + -8974759521479858.,7255370396348138.,-.495595302527205974378,-43,1073, + -8974759521479839.,7255370396359000.,.480831574250392222858,-43,1073, + -8974759521479824.,7255370396367577.,-.485147195752272990610,-43,1073, + -8974759521479684.,7255370396447619.,.499051439722636958040,-43,1073, + -8974759521473364.,7255370400060989.,-.499061878308459821850,-43,1073, + -8968146807763509.,6108540743684044.,-.498777239600158890158,-43,1072, + -8968146807755654.,6108540747465154.,-.499510541476030013447,-43,1072, + -8968146807755599.,6108540747491628.,.490944516664924668745,-43,1072, + -8968146807755434.,6108540747571053.,.462310379558389378799,-43,1072, + -8968146807755423.,6108540747576348.,.460401473803052395077,-43,1072, + -8968146807754603.,6108540747971066.,.499932332307042512924,-43,1072, + -8968146807753032.,6108540748727289.,-.499870842157659791559,-43,1072, + -8968146807703789.,6108540772431070.,-.449426334037213538606,-43,1072, + -8967157225741524.,6603954725247649.,-.498256753782224736106,-43,1072, + -8967157225733885.,6603954729223007.,-.499990624499175388204,-43,1072, + -8967157225732453.,6603954729968223.,.499034339764812835035,-43,1072, + -8967157225732386.,6603954730003090.,.495499159274760528488,-43,1072, + -8967157225732329.,6603954730032753.,.462641016319702826493,-43,1072, + -8967157225732319.,6603954730037957.,.491964162872499884255,-43,1072, + -8967157225731907.,6603954730252364.,-.499918634189039005443,-43,1072, + -8967157225699373.,6603954747183153.,-.477734261224996617317,-43,1072, + -8965181920559350.,7716231510506501.,-.488970022208407832755,-43,1072, + -8965181920542526.,7716231520736372.,-.499545655166909272557,-43,1072, + -8965181920537894.,7716231523552870.,-.492943656595374215627,-43,1072, + -8965181920537875.,7716231523564422.,.499745299470173429902,-43,1072, + -8965181920536918.,7716231524146328.,.499942990208944112676,-43,1072, + -8965165582422571.,7726172349174687.,-.497564052659583007636,-43,1072, + -8965165582419852.,7726172350830111.,-.498662528488139321580,-43,1072, + -8965165582412577.,7726172355259389.,.499774716411709654246,-43,1072, + -8965165582412504.,7726172355303834.,.498672246404754022225,-43,1072, + -8965165582412492.,7726172355311141.,-.474111696799205813089,-43,1072, + -8965165582411695.,7726172355796383.,-.499829790699195956611,-43,1072, + -8964955899162533.,7854895526357707.,.499944218966081691550,-43,1072, + -8964955899162389.,7854895526446841.,-.494180101709591994296,-43,1072, + -8964955899162387.,7854895526448078.,.464234845402410262819,-43,1072, + -8964955899135985.,7854895542790368.,-.483046788978838812345,-43,1072, + -8964955899069615.,7854895583872018.,-.290122387335894958199,-43,1072, + -8963452997644447.,8842487093398705.,-.485723184131789952927,-43,1072, + -8963452997632501.,8842487101722715.,-.496874800905984538959,-43,1072, + -8963452997622546.,8842487108659389.,.499817967775707915263,-43,1072, + -8963452997621647.,8842487109285815.,.499284938913075841702,-43,1072, + -8963452997621642.,8842487109289300.,-.485145042825452986858,-43,1072, + -8963452997621454.,8842487109420299.,-.499711360030022045820,-43,1072, + -8963452997589598.,8842487131617659.,-.471816694337822352051,-43,1072, + -8961486688192218.,5162234617648831.,.497997621264105668592,-43,1071, + -8961486688192160.,5162234617672425.,.487394050857734416815,-43,1071, + -8961486688192049.,5162234617717580.,-.498415929768170104150,-43,1071, + -8961486688191851.,5162234617798124.,.499869950280320674644,-43,1071, + -8961486688191286.,5162234618027963.,-.499963936965048748132,-43,1071, + -8961486688178460.,5162234623245489.,-.496979998774885031230,-43,1071, + -8961486688165634.,5162234628463015.,-.488722650984788618578,-43,1071, + -8958235190127275.,6669821928022105.,-.499758077324172558261,-43,1071, + -8958235190126852.,6669821928244431.,-.499922583306765681743,-43,1071, + -8958235190124314.,6669821929578386.,.499246008019139550512,-43,1071, + -8958235190123923.,6669821929783894.,-.489038029871434233811,-43,1071, + -8958235190123918.,6669821929786521.,.477863749777947459895,-43,1071, + -8958235190123891.,6669821929800712.,.499133377777036723653,-43,1071, + -8958235190072408.,6669821956859837.,-.445050645203228607452,-43,1071, + -8949718684248528.,6524479740906490.,.498711854741917532895,-43,1070, + -8949718684248478.,6524479740932198.,-.492928748075165802411,-43,1070, + -8949718684248157.,6524479741097237.,-.499259005667471925574,-43,1070, + -8949718684245289.,6524479742571791.,-.499557151922209091181,-43,1070, + -8949718684243855.,6524479743309068.,-.499581254769327261112,-43,1070, + -8949718684232012.,6524479749398030.,-.494502973935788658747,-43,1070, + -8947891199738794.,7535085078250550.,-.475490545703853216707,-43,1070, + -8947891199738785.,7535085078255894.,-.477118000608834467757,-43,1070, + -8947891199738686.,7535085078314678.,-.495019754420596211600,-43,1070, + -8947891199738659.,7535085078330710.,-.499901971323748317643,-43,1070, + -8947891199734972.,7535085080519968.,-.499608781627636697969,-43,1070, + -8947891199731285.,7535085082709226.,-.498679520733652217200,-43,1070, + -8946116222148642.,8666295263641493.,-.465084729903933050730,-43,1070, + -8946116222126411.,8666295278823463.,-.494894250181113909947,-43,1070, + -8946116222112811.,8666295288111159.,.499666762146384562981,-43,1070, + -8946116222112774.,8666295288136427.,.498856718106263101072,-43,1070, + -8946116222112626.,8666295288237499.,.495617278675558364591,-43,1070, + -8946116222112614.,8666295288245695.,-.477618299885982350320,-43,1070, + -8946116222111578.,8666295288953198.,.499739298623567077835,-43,1070, + -8946116222104180.,8666295294005433.,-.498107375440140847894,-43,1070, + -8945448348632486.,4567307165303174.,.499994436680491437937,-43,1069, + -8945448348631875.,4567307165523080.,.499478499139882751069,-43,1069, + -8945448348631660.,4567307165600461.,.497662807085175396413,-43,1069, + -8945448348631626.,4567307165612698.,.492724631652324755785,-43,1069, + -8945448348631615.,4567307165616658.,-.479461241615265250791,-43,1069, + -8945448348631479.,4567307165665606.,-.499213573056946679997,-43,1069, + -8945448348608793.,4567307173830561.,-.492617116568191930953,-43,1069, + -8943444842034329.,5348432554474611.,-.499977687708116060071,-43,1069, + -8943444842033034.,5348432555020408.,.499498894306934712598,-43,1069, + -8943444842032976.,5348432555044854.,-.493573438254430010272,-43,1069, + -8943444842032452.,5348432555265702.,-.499945999132866134583,-43,1069, + -8942866848298541.,5597669961514147.,-.499855385971036355243,-43,1069, + -8942866848297522.,5597669961963633.,.484375477134837638596,-43,1069, + -8942866848297503.,5597669961972014.,.497820752580390453888,-43,1069, + -8942866848297352.,5597669962038621.,.499412598317378247094,-43,1069, + -8942866848294153.,5597669963449720.,-.499789792425086706348,-43,1069, + -8942866848275931.,5597669971487553.,-.491901083899341353089,-43,1069, + -8942525049648792.,5750488175455277.,-.424539776123799537670,-43,1069, + -8942525049594271.,5750488200161376.,-.498048446427998859590,-43,1069, + -8942525049585337.,5750488204209803.,-.499990372035499835888,-43,1069, + -8942525049584420.,5750488204625340.,-.499916476801236896706,-43,1069, + -8942525049583793.,5750488204909463.,.490336720958349370123,-43,1069, + -8942525049583786.,5750488204912636.,-.471494503815938907344,-43,1069, + -8942525049583739.,5750488204933933.,.499067318014100175719,-43,1069, + -8942525049583503.,5750488205040877.,-.499812554377577411353,-43,1069, + -8941143777139872.,6411744510254083.,-.499831718295150788418,-43,1069, + -8941143777139018.,6411744510685571.,.498335370322820891733,-43,1069, + -8941143777139014.,6411744510687593.,-.475912022297757187845,-43,1069, + -8941143777138979.,6411744510705276.,.499423319445971144669,-43,1069, + -8941143777138940.,6411744510724982.,-.499488670872154338044,-43,1069, + -8941143777131601.,6411744514433059.,-.498797835844431803744,-43,1069, + -8941143777112302.,6411744524184003.,-.485793172531141698334,-43,1069, + -8937480868180381.,8557215813025705.,-.485561789464899332505,-43,1069, + -8937480868158565.,8557215827736740.,.499985793781749176511,-43,1069, + -8937480868157309.,8557215828583691.,-.499342934772660232533,-43,1069, + -8937480868157077.,8557215828740133.,.494420803304375013178,-43,1069, + -8937480868157071.,8557215828744179.,.433914731022637001036,-43,1069, + -8937480868156780.,8557215828940407.,.499372521629779067258,-43,1069, + -8937480868122800.,8557215851853912.,-.468808440437864191542,-43,1069, + -8932498220540170.,6336134363987827.,-.491027529105314344089,-43,1068, + -8932498220518814.,6336134374650840.,-.498822453898262945659,-43,1068, + -8932498220518757.,6336134374679300.,-.499708927141562745962,-43,1068, + -8932498220517627.,6336134375243507.,-.499712623443719104586,-43,1068, + -8932498220509717.,6336134379192956.,-.498331768066954672923,-43,1068, + -8932498220508587.,6336134379757163.,-.497933541657097649449,-43,1068, + -8928162550622381.,8916710216211244.,.499978105923508028654,-43,1068, + -8928162550622335.,8916710216243566.,.492982227771090423091,-43,1068, + -8928162550622243.,8916710216308210.,.478990822956167890882,-43,1068, + -8928162550603512.,8916710229469586.,-.490302531382178271026,-43,1068, + -8928162550584643.,8916710242727927.,-.460869215663977068186,-43,1068, + -8925223742344723.,5620176161303510.,.492523331197610507256,-43,1067, + -8925223742344715.,5620176161307054.,-.471494103811558482696,-43,1067, + -8925223742344665.,5620176161329198.,-.496603022014354465428,-43,1067, + -8925223742344499.,5620176161402716.,-.499964004766493023929,-43,1067, + -8925223742334383.,5620176165882885.,-.498147202440345952099,-43,1067, + -8925223742315346.,5620176174313982.,-.484944956731696570856,-43,1067, + -8924736878827604.,5839987678726389.,-.499833209895087804952,-43,1067, + -8924736878827211.,5839987678907248.,-.498381585275549308164,-43,1067, + -8924736878827181.,5839987678921054.,-.467736192991787597309,-43,1067, + -8924736878827151.,5839987678934860.,-.437090768069860763274,-43,1067, + -8924736878827017.,5839987678996526.,.499792528390477290224,-43,1067, + -8924736878819381.,5839987682510622.,-.498826786270887261872,-43,1067, + -8924736878811158.,5839987686294855.,-.495368230862561251900,-43,1067, + -8924689182264072.,5861978988043487.,-.213180400561091527668,-43,1067, + -8924689182253848.,5861978992766300.,-.258031266656107822919,-43,1067, + -8924689182150472.,5861979040519187.,-.497784435897343085439,-43,1067, + -8924689182139112.,5861979045766756.,.499591733548276498524,-43,1067, + -8924689182138536.,5861979046032830.,.471414811726767240659,-43,1067, + -8924689182138521.,5861979046039759.,.481097865735930887763,-43,1067, + -8924689182138491.,5861979046053618.,-.499536001674939972345,-43,1067, + -8924652163763887.,5879104056762749.,-.499939556608492019704,-43,1067, + -8924652163763760.,5879104056821585.,.499355894152055307787,-43,1067, + -8924652163763693.,5879104056852625.,.491110424335406665765,-43,1067, + -8924652163763672.,5879104056862354.,.443749937678070848288,-43,1067, + -8924652163763633.,5879104056880422.,.498651933742542141240,-43,1067, + -8924652163758186.,5879104059403928.,-.499490485840733468985,-43,1067, + -8924652163599066.,5879104133121592.,-.005420965280295248337,-43,1067, + -8920967501964396.,7859806858126174.,-.498569013619348614091,-43,1067, + -8920967501964265.,7859806858207310.,.477405946391634573819,-43,1067, + -8920967501964254.,7859806858214124.,-.494077034115037755621,-43,1067, + -8920967501964011.,7859806858364629.,.499527720928596611027,-43,1067, + -8920967501963555.,7859806858647060.,.499880224930680855861,-43,1067, + -8920967501960434.,7859806860580103.,-.499627678132284730273,-43,1067, + -8920967501898997.,7859806898632106.,-.396033809451118540236,-43,1067, + -8919575179764656.,8771250679305382.,-.499956404817024586862,-43,1067, + -8919575179764292.,8771250679556975.,-.499591134371777116172,-43,1067, + -8919575179764176.,8771250679637152.,.489537775865433994692,-43,1067, + -8919575179764139.,8771250679662727.,-.496688193424769280597,-43,1067, + -8919575179751225.,8771250688588749.,-.495435240627552755645,-43,1067, + -8916171883705449.,5734598716069026.,-.474252311529484469328,-43,1066, + -8916171883668130.,5734598732933339.,.499370268719994019654,-43,1066, + -8916171883667552.,5734598733194535.,.498494271957738870474,-43,1066, + -8916171883667446.,5734598733242436.,.494874705360746682949,-43,1066, + -8916171883667427.,5734598733251023.,-.477472155798779614276,-43,1066, + -8916171883667417.,5734598733255541.,.484450554017579290189,-43,1066, + -8916171883666213.,5734598733799624.,.499970840833439303814,-43,1066, + -8916171883645492.,5734598743163366.,-.491445259763374452908,-43,1066, + -8912951695636517.,7391081766857324.,.499884483054192599152,-43,1066, + -8912951695636510.,7391081766861402.,-.490888197056794183922,-43,1066, + -8912951695636489.,7391081766873633.,-.463206223896191806622,-43,1066, + -8912951695635975.,7391081767173002.,-.499936379810811477795,-43,1066, + -8912951695618852.,7391081777145949.,-.492870758036638252194,-43,1066, + -8912951695607256.,7391081783899806.,-.480385044077839907394,-43,1066, + -8911079808990999.,8565838087909053.,-.499152018281912475606,-43,1066, + -8911079808986922.,8565838090661039.,-.499929058827113841722,-43,1066, + -8911079808985439.,8565838091662068.,-.498766019524237768480,-43,1066, + -8911079808985428.,8565838091669493.,-.469087367054727639838,-43,1066, + -8911079808985350.,8565838091722143.,-.258638555825509928864,-43,1066, + -8911079808985069.,8565838091911818.,.499519459882143044165,-43,1066, + -8908737612404941.,5151067090740494.,-.495890131854248834667,-43,1065, + -8908737612404918.,5151067090749830.,-.499180951523386791061,-43,1065, + -8908737612404608.,5151067090875662.,.499944434360804066067,-43,1065, + -8908737612390934.,5151067096426116.,-.496866637461083298465,-43,1065, + -5629499534408815.,9007199252570665.,.000266619289039501697,-49,63, + -5629499534257246.,9007199254251619.,.000183083792268700606,-49,63, + -5629499534215909.,9007199254710061.,.000214746109515744973,-49,63, + -5629499534214924.,9007199254720985.,-.000219660041404196147,-49,63, + -5629499534213286.,9007199254739151.,.001088432973400855521,-49,63, + -5629499534213264.,9007199254739395.,-.011104009972414788825,-49,63, + -5629499534213132.,9007199254740859.,-.084258667508516226800,-49,63, + -5629499534213121.,9007199254740981.,-.090354888959118123028,-49,63, + -5629499534213119.,4503599627370502.,-.454822555520434110838,-49,62, + -5611213340421876.,4606149963635716.,-.499991772326404210871,-49,62, + -5611213340408204.,4606149963713255.,.499982027090009309064,-49,62, + -5611213340370606.,4606149963926490.,.499916705987580539779,-49,62, + -5611213340369909.,4606149963930443.,.497282469463048443860,-49,62, + -5611213340369903.,4606149963930478.,-.474045802285706501225,-49,62, + -5611213340369769.,4606149963931237.,.499622795390934711355,-49,62, + -5589917886980197.,4728523302577820.,-.499982670355103249907,-49,62, + -5589917886911881.,4728523302975564.,-.499977812267795725780,-49,62, + -5589917886911004.,4728523302980669.,.499905364727248172878,-49,62, + -5589917886910959.,4728523302980931.,.495338367116300273659,-49,62, + -5589917886910914.,4728523302981193.,.490771369519868874099,-49,62, + -5584028471488697.,4762936814610892.,-.499912333745481317281,-49,62, + -5584028471357626.,4762936815379557.,-.499886168986474610260,-49,62, + -5584028471357043.,4762936815382975.,.499702234059890896990,-49,62, + -5584028471356615.,4762936815385486.,-.497169399877266277054,-49,62, + -5584028471356593.,4762936815385615.,-.478317007193433195207,-49,62, + -5584028471356578.,4762936815385702.,.489082351456638591070,-49,62, + -5584028471356460.,4762936815386394.,.499290639560531705091,-49,62, + -5584028471355080.,4762936815394488.,-.499968356506631920397,-49,62, + -5555479367779159.,4933340294014915.,.499974687637111990965,-49,62, + -5555479367778365.,4933340294019738.,.499835400783778627216,-49,62, + -5555479367778325.,4933340294019981.,.472120575374357934645,-49,62, + -5555479367778311.,4933340294020067.,-.487579613516112187902,-49,62, + -5555479367765015.,4933340294100831.,-.499986915130634239559,-49,62, + -5555479367743402.,4933340294232115.,-.499996052884626922987,-49,62, + -5545533983873938.,4994123008801254.,.499993380696976826860,-49,62, + -5545533983829130.,4994123009076785.,.499924523658797617718,-49,62, + -5545533983828426.,4994123009081114.,.499745023560261028819,-49,62, + -5545533983828359.,4994123009081526.,.492625667922574999944,-49,62, + -5545533983828346.,4994123009081606.,.431542807877408817765,-49,62, + -5545533983828312.,4994123009081816.,-.497443133773130188226,-49,62, + -5545533983823793.,4994123009109603.,.499984287681792389831,-49,62, + -5544198963911455.,5002338994210823.,.499997527432371705215,-49,62, + -5544198963890270.,5002338994341307.,.499866215206740299888,-49,62, + -5544198963889347.,5002338994346993.,-.499809006033577888000,-49,62, + -5544198963889077.,5002338994348656.,-.498630575489191897285,-49,62, + -5544198963889008.,5002338994349080.,.490559467960847030968,-49,62, + -5544198963888995.,5002338994349161.,-.439013422399596245331,-49,62, + -5544198963888964.,5002338994349351.,.498158915976826526455,-49,62, + -5544198963886848.,5002338994362384.,.499986933349032755637,-49,62, + -5539725571706545.,5029967815792997.,-.499808899525845744498,-49,62, + -5539725571705950.,5029967815796682.,-.496811317586051844905,-49,62, + -5539725571705800.,5029967815797610.,.495541014421491686747,-49,62, + -5539725571705769.,5029967815797802.,.487293829724444428846,-49,62, + -5539725571701573.,5029967815823790.,-.499970199062699808143,-49,62, + -5539725571688235.,5029967815906396.,-.499999721082238318540,-49,62, + -5537279579435519.,5045139371119434.,-.499960168735062967241,-49,62, + -5537279579434599.,5045139371125149.,-.494246743336202906405,-49,62, + -5537279579434566.,5045139371125354.,-.499476587739668326412,-49,62, + -5537279579429400.,5045139371157444.,.499996963813440388342,-49,62, + -5537279579406646.,5045139371298792.,-.499996504411863300367,-49,62, + -5522619698209655.,5137032867772541.,-.499992574287038177310,-49,62, + -5522619698197739.,5137032867847910.,.499525209616703695107,-49,62, + -5522619698197699.,5137032867848164.,-.496112526742242010919,-49,62, + -5522619698197690.,5137032867848220.,.429868982578712450324,-49,62, + -5522619698195672.,5137032867860984.,.499945199583216004846,-49,62, + -5522619698159681.,5137032868088632.,-.499993414945458448444,-49,62, + -5522215089901295.,5139592697029149.,-.499995272470046865640,-49,62, + -5522215089853586.,5139592697331063.,.499993353568232820353,-49,62, + -5522215089853199.,5139592697333513.,-.463032510358659468737,-49,62, + -5522215089853193.,5139592697333551.,-.493467019867719280941,-49,62, + -5522215089853126.,5139592697333975.,-.499985709366498904759,-49,62, + -5512667243258521.,5200370515052777.,.469764377272265010211,-49,62, + -5512667243258511.,5200370515052842.,-.499283342352916907296,-49,62, + -5512667243258382.,5200370515053668.,-.499998925447079800854,-49,62, + -5486380295690163.,5371441901051536.,-.497877443403507247659,-49,62, + -5486380295689464.,5371441901056159.,-.499596949831703468419,-49,62, + -5486380295689231.,5371441901057699.,.499829882243084673449,-49,62, + -5486380295687556.,5371441901068778.,-.499998672446978576725,-49,62, + -5482520377150936.,5397031125536727.,-.499990224253695854930,-49,62, + -5482520377149256.,5397031125547891.,-.498701385249506394127,-49,62, + -5482520377149163.,5397031125548509.,-.491487180987203024899,-49,62, + -5482520377149070.,5397031125549127.,-.484272976654132430519,-49,62, + -5482520377148447.,5397031125553266.,.499538307961114934735,-49,62, + -5482520377148027.,5397031125556057.,.499860524100604206906,-49,62, + -5482520377110599.,5397031125804776.,-.499991048055859959852,-49,62, + -5468820810006754.,5488840160161980.,-.499990961034309801743,-49,62, + -5468820810001169.,5488840160199725.,-.499540297723746847306,-49,62, + -5468820809999237.,5488840160212781.,.499720403974957084447,-49,62, + -5468820809995886.,5488840160235428.,.499990980423531966165,-49,62, + -5468088758172730.,5493789802668338.,.499999731438511635614,-49,62, + -5468088758158661.,5493789802763506.,.499901203004023745409,-49,62, + -5468088758157235.,5493789802773152.,.499464838872169360258,-49,62, + -5468088758157112.,5493789802773985.,-.482339979961479669941,-49,62, + -5468088758157095.,5493789802774100.,-.487955280115568648671,-49,62, + -5468088758157061.,5493789802774330.,-.499185880416525520694,-49,62, + -5468088758154209.,5493789802793621.,.499941446262281273845,-49,62, + -5465050034960486.,5514383369215978.,-.499997109816913112905,-49,62, + -5465050034927880.,5514383369437363.,.499963416689054273034,-49,62, + -5465050034922991.,5514383369470558.,.499467556985473864757,-49,62, + -5465050034922972.,5514383369470688.,-.495625390330676555287,-49,62, + -5465050034922582.,5514383369473335.,.499835165425622363704,-49,62, + -5465050034914226.,5514383369530071.,-.499989134477519804487,-49,62, + -5418613610006378.,5838862067506944.,-.499996007758853011882,-49,62, + -5418613610005559.,5838862067512831.,.499867016145151686993,-49,62, + -5418613610005205.,5838862067515376.,.496144808534919101722,-49,62, + -5418613610005189.,5838862067515492.,-.475774839240471522659,-49,62, + -5418613610005168.,5838862067515642.,.498580623057767270253,-49,62, + -5418613610005131.,5838862067515909.,-.498983562407266224622,-49,62, + -5418613609969840.,5838862067769625.,-.499996132012095302030,-49,62, + -5413189176026263.,5877990229377965.,-.499944178164345138276,-49,62, + -5413189175930539.,5877990230070760.,.499964141511256555710,-49,62, + -5413189175914585.,5877990230186226.,.499956800121293235067,-49,62, + -5413189175912736.,5877990230199609.,-.487131781692805435708,-49,62, + -5413189175912715.,5877990230199760.,.498953204843392000943,-49,62, + -5413189175912357.,5877990230202351.,.499830594969784325765,-49,62, + -5398648100196943.,5984178047331884.,.469080090281899765329,-49,62, + -5398648100196932.,5984178047331966.,-.480948630836148037806,-49,62, + -5398648100196875.,5984178047332386.,-.494733822066631872098,-49,62, + -5398648100196856.,5984178047332526.,-.499328885803576306295,-49,62, + -5398648100196636.,5984178047334147.,-.499903307782317733470,-49,62, + -5398648100179226.,5984178047462427.,-.499905036604970668123,-49,62, + -5398648099787501.,5984178050348727.,-.499216936169586998841,-49,62, + -5358514779804355.,6287315668269162.,-.499975112074386671678,-49,62, + -5358514779770767.,6287315668529180.,.499969579091866066390,-49,62, + -5358514779729715.,6287315668846981.,.499916582758657268263,-49,62, + -5358514779729599.,6287315668847880.,-.494724487426670872734,-49,62, + -5357868470838364.,6292321012309275.,-.499995792637746937418,-49,62, + -5357868470804257.,6292321012573521.,.499989142978805698687,-49,62, + -5357868470803635.,6292321012578341.,-.499981709219036075238,-49,62, + -5357868470794927.,6292321012645807.,-.499573252470458507368,-49,62, + -5357868470793061.,6292321012660264.,-.499485631912732444563,-49,62, + -5357868470792958.,6292321012661062.,-.497873077399074530362,-49,62, + -5357868470792954.,6292321012661092.,.492480808215147796553,-49,62, + -5357868470792942.,6292321012661185.,.463542465058730562141,-49,62, + -5340868642028359.,6425416777215903.,-.499998993486152830896,-49,62, + -5340868642025332.,6425416777239851.,-.491842383509212095642,-49,62, + -5340868642025321.,6425416777239938.,-.465714295236189839261,-49,62, + -5340868642025298.,6425416777240119.,.498008071156665507673,-49,62, + -5340868642025106.,6425416777241638.,.499516521245907729282,-49,62, + -5340868642023728.,6425416777252540.,.499926137111259473168,-49,62, + -5334469363672613.,6476244431329665.,-.499995935321730859346,-49,62, + -5334469363655234.,6476244431468245.,.499276443211663847006,-49,62, + -5334469363655195.,6476244431468556.,.487191264589072356256,-49,62, + -5334469363655157.,6476244431468860.,-.498943012003191134071,-49,62, + -5334469363654656.,6476244431472854.,.499655079513939032023,-49,62, + -5334469363654078.,6476244431477464.,-.499966280903661829168,-49,62, + -5334469363646217.,6476244431540147.,.499993362682147579964,-49,62, + -5325827369889416.,6545524051723201.,-.499990280793474807589,-49,62, + -5325827369852871.,6545524052017729.,.499948195996102648987,-49,62, + -5325827369851085.,6545524052032124.,-.498303205487227852434,-49,62, + -5325827369851068.,6545524052032261.,-.489327994710969616190,-49,62, + -5325827369850866.,6545524052033888.,.499671568849945074475,-49,62, + -5325827369849417.,6545524052045566.,.499970430223474857394,-49,62, + -5325827369845963.,6545524052073403.,.499992782836871481829,-49,62, + -5317788020390738.,6610637732577304.,.499765424369390740140,-49,62, + -5317788020390265.,6610637732581154.,.494826948247288445221,-49,62, + -5317788020389749.,6610637732585354.,.489439522307684948525,-49,62, + -5317788020389720.,6610637732585591.,-.464351631396543468830,-49,62, + -5317788020389713.,6610637732585648.,-.487680530565266865644,-49,62, + -5317788020388552.,6610637732595098.,-.499802228754086066151,-49,62, + -5317788020379636.,6610637732667670.,-.499868153254167390013,-49,62, + -5317788020361804.,6610637732812814.,-.499997612154287881949,-49,62, + -5307605800716371.,6694037865264005.,-.499993368592104512614,-49,62, + -5307605800692549.,6694037865460351.,-.499855076320245027263,-49,62, + -5307605800692260.,6694037865462732.,.499726856714551943556,-49,62, + -5307605800692194.,6694037865463276.,.485790550882910183685,-49,62, + -5307605800692186.,6694037865463342.,.423495241088139364697,-49,62, + -5307605800692132.,6694037865463788.,-.496998100009575166179,-49,62, + -5307605800687669.,6694037865500573.,-.499993948070141864362,-49,62, + -5299460840249897.,6761508119000738.,.499986730586718923312,-49,62, + -5299460840243558.,6761508119053512.,.498335337170221762052,-49,62, + -5299460840243309.,6761508119055585.,.494957652414863344231,-49,62, + -5299460840242771.,6761508119060064.,.499707877884641623040,-49,62, + -5299460840241901.,6761508119067307.,.499954531298153873329,-49,62, + -5299460840221476.,6761508119237352.,-.499999680834426579416,-49,62, + -5266341419814166.,7042936020215739.,.499991093211369154262,-49,62, + -5266341419812219.,7042936020232624.,-.499047898548833286046,-49,62, + -5266341419812088.,7042936020233760.,-.492819909381413245873,-49,62, + -5266341419812076.,7042936020233864.,-.431180704257679217478,-49,62, + -5266341419812024.,7042936020234315.,-.497410815370397918118,-49,62, + -5266341419811765.,7042936020236560.,.499635362402048927790,-49,62, + -5266341419811116.,7042936020242188.,.499955710622685951672,-49,62, + -5266341419757968.,7042936020703078.,-.499989167907690033667,-49,62, + -5242088987167799.,7256419951881689.,.499455552637424890315,-49,62, + -5242088987167661.,7256419951882922.,.482682578821542043903,-49,62, + -5242088987167646.,7256419951883057.,-.497401440058865006523,-49,62, + -5242088987167447.,7256419951884835.,-.499849423638020057652,-49,62, + -5242088987158861.,7256419951961548.,-.499941405783048958923,-49,62, + -5242088987153137.,7256419952012689.,.499997723336957658807,-49,62, + -5208774931130610.,7560258704526730.,-.499999950326645250666,-49,62, + -5208774931127828.,7560258704552626.,.499955902195756158228,-49,62, + -5208774931125046.,7560258704578523.,.499911843426048781462,-49,62, + -5208774931124761.,7560258704581176.,.499547881235715654745,-49,62, + -5208774931124748.,7560258704581298.,-.486433632806905297965,-49,62, + -5208774931124735.,7560258704581419.,-.472415146847589227982,-49,62, + -5161411928745807.,8014259341233911.,-.499984901564640583957,-49,62, + -5161411928695765.,8014259341727714.,-.499869289329642967539,-49,62, + -5161411928695402.,8014259341731296.,-.498969094900795501915,-49,62, + -5161411928695334.,8014259341731967.,-.490536000449577504776,-49,62, + -5161411928689125.,8014259341793236.,-.499931595336773147514,-49,62, + -5161411928682485.,8014259341858758.,-.499993365657161387133,-49,62, + -5120907462136524.,8424082600055129.,.499969614622434485761,-49,62, + -5120907462135952.,8424082600061062.,.499566891454412983280,-49,62, + -5120907462135404.,8424082600066747.,-.437881867381718032087,-49,62, + -5120907462135380.,8424082600066995.,.499164172464945501751,-49,62, + -5120907462126612.,8424082600157940.,.499984555370016136562,-49,62, + -5120907462116700.,8424082600260752.,-.499999249134291836442,-49,62, + -5119822908942615.,8435339509051847.,-.499996707063361083854,-49,62, + -5119822908933082.,8435339509150859.,-.499925169907471116410,-49,62, + -5119822908932370.,8435339509158254.,-.498975691349634234282,-49,62, + -5119822908932326.,8435339509158710.,.495465006976186060282,-49,62, + -5119822908932313.,8435339509158846.,-.483450241240992593738,-49,62, + -5119822908932181.,8435339509160216.,.499871853906962336668,-49,62, + -5119822908927865.,8435339509205044.,-.499990427442313907372,-49,62, + -5095830265894774.,8688250089639967.,-.499997087255609230089,-49,62, + -5095830265877103.,8688250089829005.,-.499979217621152448760,-49,62, + -5095830265873035.,8688250089872523.,-.499634982118530826457,-49,62, + -5095830265869645.,8688250089908788.,-.499347952691434957045,-49,62, + -5095830265869602.,8688250089909247.,.499180762813321813822,-49,62, + -5095830265869473.,8688250089910627.,.494766909473719581938,-49,62, + -5095830265869450.,8688250089910874.,-.459508428695588370327,-49,62, + -5095830265869440.,8688250089910981.,-.483106401810505444698,-49,62, + -5095830265860110.,8688250090010789.,.499985255879740230770,-49,62, + -5066549580987503.,9007199252570665.,.000266619289039501697,-49,62, + -5066549580835934.,9007199254251619.,.000183083792268700606,-49,62, + -5066549580794597.,9007199254710061.,.000214746109515744973,-49,62, + -5066549580793612.,9007199254720985.,-.000219660041404196147,-49,62, + -5066549580791974.,9007199254739151.,.001088432973400855521,-49,62, + -5066549580791952.,9007199254739395.,-.011104009972414788825,-49,62, + -5066549580791820.,9007199254740859.,-.084258667508516226800,-49,62, + -5066549580791809.,9007199254740981.,-.090354888959118123028,-49,62, + -5066549580791807.,4503599627370502.,-.454822555520434110838,-49,61, + -4503599627566191.,9007199252570665.,.000266619289039501697,-49,61, + -4503599627414622.,9007199254251619.,.000183083792268700606,-49,61, + -4503599627373285.,9007199254710061.,.000214746109515744973,-49,61, + -4503599627372300.,9007199254720985.,-.000219660041404196147,-49,61, + -4503599627370662.,9007199254739151.,.001088432973400855521,-49,61, + -4503599627370640.,9007199254739395.,-.011104009972414788825,-49,61, + -4503599627370508.,9007199254740859.,-.084258667508516226800,-49,61, + -4503599627370497.,9007199254740981.,-.090354888959118123028,-49,61, + -9007199254740990.,4503599627370502.,-.454822555520434110838,-50,60, + -7881299347902961.,9007199254715523.,-.000002458622032915512,-50,60, + -7881299347898369.,9007199254740986.,.454822555520439231574,-50,60, + -7881299347898367.,4503599627370499.,-.227411277760217908875,-50,59, + -7881299347898366.,4503599627370502.,-.454822555520434110838,-50,59, + -7881299347898357.,4503599627370526.,.498475944637696882534,-50,59, + -7881299347898036.,4503599627371416.,.499455783701442239929,-50,59, + -7881299347895745.,4503599627377769.,-.499781559181926237259,-50,59, + -7881299347893775.,4503599627383231.,-.499998734680567230945,-50,59, + -6755399441060337.,9007199254715523.,-.000002458622032915512,-50,59, + -6755399441058367.,9007199254726447.,-.000436858148598096929,-50,59, + -6755399441055755.,9007199254740931.,.003048110725019307635,-50,59, + -6755399441055746.,9007199254740981.,-.090354888959118123028,-50,59, + -6755399441055745.,9007199254740986.,.454822555520439231574,-50,59, + -6755399441055743.,4503599627370499.,-.227411277760217908875,-50,58, + -6755399441055412.,4503599627371416.,.499455783701442239929,-50,58, + -5629499534217713.,9007199254715523.,-.000002458622032915512,-50,58, + -5629499534215743.,9007199254726447.,-.000436858148598096929,-50,58, + -5629499534213452.,9007199254739151.,.001088432973400855521,-50,58, + -5629499534213131.,9007199254740931.,.003048110725019307635,-50,58, + -5629499534213122.,9007199254740981.,-.090354888959118123028,-50,58, + -5629499534213121.,9007199254740986.,.454822555520439231574,-50,58, + -5629499534213119.,4503599627370499.,-.227411277760217908875,-50,57, + -5629499534213109.,4503599627370526.,.498475944637696882534,-50,57, + -4503599627375089.,9007199254715523.,-.000002458622032915512,-50,57, + -4503599627370497.,9007199254740986.,.454822555520439231574,-50,57, + -9007199254740990.,4503599627370499.,-.227411277760217908875,-51,56, + -9007199254740988.,4503599627370502.,-.454822555520434110838,-51,56, + -9007199254740970.,4503599627370526.,.498475944637696882534,-51,56, + -9007199254740328.,4503599627371416.,.499455783701442239929,-51,56, + -9007199254735746.,4503599627377769.,-.499781559181926237259,-51,56, + -9007199254731806.,4503599627383231.,-.499998734680567230945,-51,56, + -6755399441055745.,9007199254740989.,.227411277760219189059,-51,56, + -6755399441055743.,4503599627370497.,.386294361119890832198,-51,55, + -6755399441055740.,4503599627370502.,-.454822555520434110838,-51,55, + -6755399441055722.,4503599627370526.,.498475944637696882534,-51,55, + -6755399441055080.,4503599627371416.,.499455783701442239929,-51,55, + -6755399441054759.,4503599627371861.,.499945703299270638189,-51,55, + -6755399441046558.,4503599627383231.,-.499998734680567230945,-51,55, + -4503599627370497.,9007199254740989.,.227411277760219189059,-51,55, + -9007199254740990.,4503599627370497.,.386294361119890832198,-52,54, + -9007199254740984.,4503599627370502.,-.454822555520434110838,-52,54, + -9007199254740948.,4503599627370526.,.498475944637696882534,-52,54, + -9007199254739664.,4503599627371416.,.499455783701442239929,-52,54, + -9007199254739022.,4503599627371861.,.499945703299270638189,-52,54, + -9007199254722620.,4503599627383231.,-.499998734680567230945,-52,54, + -4503599627388868.,9007199254715523.,-.000002458622032915512,-52,54, + -4503599627372466.,9007199254738261.,.000108594229503068588,-52,54, + -4503599627370817.,9007199254740547.,-.000489919473896025936,-52,54, + -4503599627370540.,9007199254740931.,.003048110725019307635,-52,54, + -4503599627370514.,9007199254740967.,.046701499842003425948,-52,54, + -4503599627370497.,9007199254740991.,-.386294361119890512152,-52,54, + -9007199254740990.,4503599627370497.,-.306852819440054637242,-53,53, + -9007199254740982.,4503599627370499.,.465735902799727880611,-53,53, + -9007199254740904.,4503599627370526.,.498475944637696882534,-53,53, + -9007199254737052.,4503599627371861.,.499945703299270638189,-53,53, + -4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,52, + 0.,4503599627370496.,0.000000000000000000000,0,52, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,52, + 8703077354446111.,4527225890137045.,-.499940051979896991006,-60,52, + 8703077354446125.,4527225890137045.,-.461834704924138873146,-60,52, + 8703077354446223.,4527225890137045.,-.195097275533832039147,-60,52, + 8703077354447948.,4527225890137050.,-.499974156163632643264,-60,52, + 8703077354449785.,4527225890137054.,.499991739652637226548,-60,52, + 8703077354508202.,4527225890137213.,.499995950814492086307,-60,52, + 7188956797837108.,4662041946773222.,.499998807267276815650,-57,52, + 7188956797842192.,4662041946773336.,.498049936007053510250,-57,52, + 7188956797842237.,4662041946773338.,-.492919320327849474467,-57,52, + 7188956797842238.,4662041946773338.,-.470496414913069538313,-57,52, + 7188956797843084.,4662041946773356.,.499281565990795086997,-57,52, + 7188956797843530.,4662041946773366.,.499897380982698054076,-57,52, + 9006440473863973.,4702973853929170.,.499462962432673560262,-57,52, + 9006440473864194.,4702973853929175.,.498433143490128084608,-57,52, + 9006440473864238.,4702973853929176.,.493703224786635502003,-57,52, + 9006440473864241.,4702973853929177.,-.438437451488602620959,-57,52, + 9006440473864813.,4702973853929190.,-.499926394633986841280,-57,52, + 9006440473869676.,4702973853929300.,-.499962636793394325500,-57,52, + 9006440473874539.,4702973853929410.,-.499998878950228971255,-57,52, + 7591484324372716.,4844781445711790.,.499790933726418537698,-56,52, + 7591484324373124.,4844781445711810.,-.485921524495133466676,-56,52, + 7591484324373188.,4844781445711812.,.496711815391688676262,-56,52, + 7591484324373231.,4844781445711815.,-.499331409371851665146,-56,52, + 7591484324373982.,4844781445711850.,-.499993311637271411391,-56,52, + 8003388474978634.,4864015761325463.,-.499999234446632507624,-56,52, + 8003388475029672.,4864015761327851.,-.499985335143109562644,-56,52, + 8003388475031852.,4864015761327952.,.499309901774758955888,-56,52, + 8003388475031873.,4864015761327953.,.481871920112051577056,-56,52, + 8003388475032023.,4864015761327961.,-.499827948907281070942,-56,52, + 8715649185231383.,4897455917443630.,.499957912989740487089,-56,52, + 8715649185231850.,4897455917443653.,-.499513265636524911676,-56,52, + 8715649185231935.,4897455917443657.,-.495134358105963014539,-56,52, + 8715649185231956.,4897455917443657.,.494182783754529252662,-56,52, + 8715649185237093.,4897455917443899.,.499999818872379511501,-56,52, + 4823460372458353.,4941525535432862.,.499995829569183548194,-55,52, + 4823460372560290.,4941525535442553.,.499952715687048661279,-55,52, + 4823460372575174.,4941525535443968.,.499838512356244360833,-55,52, + 4823460372578824.,4941525535444315.,.499944878841286137509,-55,52, + 7429938090806177.,5195637528189570.,-.499995803056228552311,-55,52, + 7429938090843653.,5195637528193316.,-.499980085955423443372,-55,52, + 7429938090848335.,5195637528193784.,-.499871387199459300056,-55,52, + 7429938090848375.,5195637528193787.,.498420869945156008873,-55,52, + 7429938090848865.,5195637528193836.,.477501019966943251113,-55,52, + 7429938090848965.,5195637528193846.,.473231662828589214155,-55,52, + 8992428863865199.,5354191040255252.,-.499999987241966212069,-55,52, + 8992428863870286.,5354191040255776.,-.499984122439403833217,-55,52, + 8992428863890634.,5354191040257872.,-.499920662716329850845,-55,52, + 8992428863894391.,5354191040258258.,.499894474889603115822,-55,52, + 8992428863894857.,5354191040258307.,-.498531435642286502440,-55,52, + 8992428863894925.,5354191040258314.,-.494009894689822397712,-55,52, + 8992428863894944.,5354191040258315.,.463135829988073622394,-55,52, + 8992428863894954.,5354191040258316.,.493212527186966551907,-55,52, + 4684840655107187.,5393192297008990.,.447759095589102187187,-54,52, + 4684840655107192.,5393192297008991.,.485339127173763146298,-54,52, + 4684840655107221.,5393192297008998.,-.496696689635199354414,-54,52, + 4684840655107327.,5393192297009019.,.499999979959684497480,-54,52, + 5261029272893198.,5514095936971714.,.499994288752848279160,-54,52, + 5261029272899528.,5514095936973058.,-.476161937693097033615,-54,52, + 5261029272899542.,5514095936973060.,.494190955329343976846,-54,52, + 5261029272899674.,5514095936973089.,-.499624624744704973627,-54,52, + 5261029272900315.,5514095936973225.,-.499895737071965612724,-54,52, + 5261029272904194.,5514095936974048.,-.499976305982370377670,-54,52, + 5261029272930065.,5514095936979537.,-.499998060582698988656,-54,52, + 5357701474445815.,5534644885011323.,-.499998369106116903158,-54,52, + 5357701474447698.,5534644885011724.,-.498702550707324434277,-54,52, + 5357701474447712.,5534644885011726.,.482719723035526326591,-54,52, + 5357701474447806.,5534644885011747.,-.499159296119576971481,-54,52, + 5357701474448022.,5534644885011792.,.499927213056204681986,-54,52, + 6544763739207500.,5793302292861274.,.496516400693664187354,-54,52, + 6544763739207509.,5793302292861277.,-.497282818590200689143,-54,52, + 6544763739207666.,5793302292861311.,.499775245013601566086,-54,52, + 6544763739207989.,5793302292861384.,-.499907847061987500539,-54,52, + 6544763739211053.,5793302292862067.,-.499997612093658381443,-54,52, + 6750030179316033.,5839239651458275.,-.499997531419140782843,-54,52, + 6750030179323270.,5839239651459901.,-.499899083302559855435,-54,52, + 6750030179323813.,5839239651460023.,-.499338981401294685059,-54,52, + 6750030179323844.,5839239651460029.,.465702203053550591459,-54,52, + 6750030179323853.,5839239651460031.,.487810934024313679461,-54,52, + 6750030179328562.,5839239651461090.,-.499965272399276763376,-54,52, + 6750030179346383.,5839239651465094.,-.499999200303761050216,-54,52, + 7262316160940686.,5955481305381648.,-.499999961171879633317,-54,52, + 7262316160955340.,5955481305385005.,.484971200913631926255,-54,52, + 7262316160955349.,5955481305385008.,-.452665980711364995902,-54,52, + 7262316160955375.,5955481305385014.,-.494728949850240981439,-54,52, + 7262316160955615.,5955481305385069.,-.498387126516507096801,-54,52, + 7262316160955711.,5955481305385091.,-.499850397182871339942,-54,52, + 7262316160957090.,5955481305385406.,.499963662733217778096,-54,52, + 7667186625394737.,6048984370271638.,-.499990292200953479912,-54,52, + 7667186625699679.,6048984370342613.,-.499876979329302749143,-54,52, + 7667186625743503.,6048984370352813.,-.499860626404752319481,-54,52, + 7667186625744474.,6048984370353038.,.499592090992681814503,-54,52, + 7667186625744706.,6048984370353092.,.497401597107427654332,-54,52, + 7667186625744852.,6048984370353126.,.478781717335057932507,-54,52, + 7667186625744865.,6048984370353130.,-.495478956891239704937,-54,52, + 7667186625745329.,6048984370353238.,-.499859944659641242340,-54,52, + 7756304500063635.,6069762085709031.,-.499995130179589279925,-54,52, + 7756304500083451.,6069762085713659.,-.499920408128700752512,-54,52, + 7756304500086718.,6069762085714422.,-.496476518158237349240,-54,52, + 7756304500086731.,6069762085714425.,-.460344050888496931408,-54,52, + 7756304500086855.,6069762085714453.,.499688713838334153306,-54,52, + 7756304500087630.,6069762085714634.,.499893493384158938167,-54,52, + 4889567999025855.,6561063454364383.,-.499998785136737502100,-53,52, + 4889567999035845.,6561063454369427.,-.496059554984035707301,-53,52, + 4889567999035847.,6561063454369428.,-.486248956539172453923,-53,52, + 4889567999035881.,6561063454369445.,-.319468782976473367309,-53,52, + 4889567999035946.,6561063454369477.,.499375666481752843278,-53,52, + 4889567999036150.,6561063454369581.,-.499943292140594180103,-53,52, + 4889567999040533.,6561063454371793.,.499983200202211637651,-53,52, + 4930099044602323.,6581559742000859.,-.496149587143097688233,-53,52, + 4930099044602331.,6581559742000863.,-.444288892307457055497,-53,52, + 4930099044602554.,6581559742000976.,-.498672023762970525807,-53,52, + 4930099044602708.,6581559742001053.,.499646351824936367160,-53,52, + 4930099044603865.,6581559742001639.,.499999342472732045051,-53,52, + 5026050879177168.,6630337540270521.,.474354489574068028536,-53,52, + 5026050879177170.,6630337540270522.,.494827034306604964671,-53,52, + 5026050879177317.,6630337540270597.,.499559072148499782646,-53,52, + 5026050879179222.,6630337540271569.,.499657929972248927450,-53,52, + 5026050879185572.,6630337540274809.,.499987457080537029601,-53,52, + 5026050879246434.,6630337540305863.,.499996305715756458630,-53,52, + 5035712052426564.,6635268854219734.,.499996002303389742038,-53,52, + 5035712052438847.,6635268854226006.,.393383760946608721892,-53,52, + 5035712052438857.,6635268854226011.,.499541367200463514038,-53,52, + 5035712052440741.,6635268854226973.,.499634385496813257563,-53,52, + 5035712052447335.,6635268854230340.,.499959950632391182401,-53,52, + 5035712052448277.,6635268854230822.,-.499993539923052755637,-53,52, + 5388947655825165.,6818110368144556.,.499986645391770865986,-53,52, + 5388947655826360.,6818110368145184.,-.499894394583714840165,-53,52, + 5388947655827555.,6818110368145811.,-.499775434501541000203,-53,52, + 5388947655827879.,6818110368145980.,.498583178953268833760,-53,52, + 5388947655827999.,6818110368146043.,.460938220974644418915,-53,52, + 5388947655828001.,6818110368146045.,-.489689194991661061989,-53,52, + 5388947655828041.,6818110368146065.,.497762485682263236704,-53,52, + 5388947655833692.,6818110368149030.,.499998673540179519255,-53,52, + 5828367993123534.,7052610723955642.,-.499999735246719701334,-53,52, + 5828367993162872.,7052610723976992.,-.499966951604823835339,-53,52, + 5828367993164475.,7052610723977861.,.499780178551544381919,-53,52, + 5828367993164908.,7052610723978097.,-.497168974669155004100,-53,52, + 5828367993164943.,7052610723978115.,.498458691929975791420,-53,52, + 5828367993174994.,7052610723983570.,.499992322271644369360,-53,52, + 5842346135983921.,7060201194194451.,-.499856024382647990212,-53,52, + 5842346135984672.,7060201194194859.,-.469283083081269581420,-53,52, + 5842346135984683.,7060201194194865.,-.492803319626613443581,-53,52, + 5842346135984729.,7060201194194889.,.499748418456548855885,-53,52, + 5842346135989023.,7060201194197223.,-.499878465303882573066,-53,52, + 5842346136014533.,7060201194211083.,-.499990653584775943083,-53,52, + 5842346136017084.,7060201194212468.,.499998129083618678139,-53,52, + 6083309738847399.,7192342035029183.,.499997932274913878903,-53,52, + 6083309738851746.,7192342035031590.,-.499778666276599574701,-53,52, + 6083309738851961.,7192342035031708.,.499542251920369954081,-53,52, + 6083309738852017.,7192342035031739.,.494714212009206145901,-53,52, + 6083309738852055.,7192342035031761.,-.472847672216150366513,-53,52, + 6083309738852064.,7192342035031766.,-.491480750058988953067,-53,52, + 6466710109370302.,7407710009701898.,.499849810758719796603,-53,52, + 6466710109370823.,7407710009702196.,-.499509077910733002408,-53,52, + 6466710109371030.,7407710009702314.,-.497334970334638192156,-53,52, + 6466710109371037.,7407710009702317.,.493076714462653910336,-53,52, + 6466710109371044.,7407710009702321.,.483488399259948162397,-53,52, + 6466710109371137.,7407710009702374.,.498957925852775786657,-53,52, + 6466710109373535.,7407710009703741.,.499989375119289790322,-53,52, + 6466710109409412.,7407710009724193.,.499991617639209510776,-53,52, + 6683043781636026.,7532065180902585.,.499999665921501415798,-53,52, + 6683043781680608.,7532065180928426.,.499522581789826627117,-53,52, + 6683043781680765.,7532065180928518.,-.498796804851076115012,-53,52, + 6683043781680784.,7532065180928529.,-.485854565017734987994,-53,52, + 6683043781680796.,7532065180928535.,.469687902245436125637,-53,52, + 6683043781681845.,7532065180929144.,-.499974751140866478271,-53,52, + 6683043781693744.,7532065180936041.,-.499989917050420728493,-53,52, + 7533119765574791.,8041267246475283.,-.482528706935127870229,-53,52, + 7533119765574799.,8041267246475287.,.467983932908682407347,-53,52, + 7533119765574854.,8041267246475322.,-.497241668165039431440,-53,52, + 7533119765574875.,8041267246475334.,.497854011425032049623,-53,52, + 7533119765575683.,8041267246475834.,.499630635668493211526,-53,52, + 7533119765575885.,8041267246475960.,-.499925208265783709245,-53,52, + 7533119765578128.,8041267246477348.,-.499943811821259619901,-53,52, + 7533119765584857.,8041267246481512.,-.499999621050194561762,-53,52, + 7593583889890302.,8078770481630060.,.499999433455757599458,-53,52, + 7593583889909242.,8078770481641836.,-.499466602436435764654,-53,52, + 7593583889909279.,8078770481641859.,-.496561652225764568084,-53,52, + 7593583889909316.,8078770481641882.,-.493656702015027874711,-53,52, + 7593583889909332.,8078770481641891.,.453545438616662332098,-53,52, + 7593583889909583.,8078770481642048.,-.499720980222094407895,-53,52, + 7593583889909924.,8078770481642260.,-.499975358002189841704,-53,52, + 7593583889917841.,8078770481647181.,.499983855042650508670,-53,52, + 7618936725665402.,8094547728899355.,.499962454331181297495,-53,52, + 7618936725667200.,8094547728900475.,.499817455706088381872,-53,52, + 7618936725668998.,8094547728901595.,.499672457235963936040,-53,52, + 7618936725669059.,8094547728901633.,.497442843831186017485,-53,52, + 7618936725669067.,8094547728901638.,.480756992892867717585,-53,52, + 7618936725678407.,8094547728907457.,-.499973975501083170062,-53,52, + 7618936725720119.,8094547728933439.,.499999292492698262252,-53,52, + 8259236168414635.,8503389324638753.,-.499998623676889750241,-53,52, + 8259236168421741.,8503389324643403.,-.499948655290719713200,-53,52, + 8259236168422175.,8503389324643686.,.499491492030570482142,-53,52, + 8259236168422826.,8503389324644112.,.498651713030290378209,-53,52, + 8259236168422907.,8503389324644166.,-.496844480668712406942,-53,52, + 8259236168422933.,8503389324644183.,-.483053135436223500688,-53,52, + 8259236168422936.,8503389324644184.,.480076635167527409812,-53,52, + 8460168363171364.,8635896467805670.,-.499939841868421864547,-53,52, + 8460168363172956.,8635896467806728.,-.498688464442073657156,-53,52, + 8460168363172968.,8635896467806735.,.476195339910878445811,-53,52, + 8460168363173010.,8635896467806763.,.388288655146268801369,-53,52, + 8460168363173275.,8635896467806940.,-.499693998723592668867,-53,52, + 8460168363174390.,8635896467807680.,.499926155787845833054,-53,52, + 8460168363187290.,8635896467816254.,-.499984159591263182031,-53,52, + 8460168363195253.,8635896467821545.,.499993686411651414381,-53,52, + 8791115980768813.,8858660167162050.,-.499913991316333017964,-53,52, + 8791115980769080.,8858660167162232.,-.481639092850316880656,-53,52, + 8791115980769168.,8858660167162292.,-.490597178748338557726,-53,52, + 8791115980769256.,8858660167162352.,-.499555264645953974138,-53,52, + 8791115980771493.,8858660167163876.,.499998847388589608838,-53,52, + 8837821264155853.,8890557211901519.,.499999789028371787214,-53,52, + 8837821264157186.,8890557211902431.,.499964058742212310738,-53,52, + 8837821264166517.,8890557211908815.,.499713949358597725422,-53,52, + 8837821264166536.,8890557211908828.,.498963252537822804771,-53,52, + 8837821264166916.,8890557211909088.,.483949316126315806512,-53,52, + 8837821264166992.,8890557211909140.,.480946528844926730235,-53,52, + 9007199254704248.,9007199254715523.,-.000002458622032915512,-53,52, + 9007199254737052.,9007199254738261.,.000108594229503068588,-53,52, + 9007199254740350.,9007199254740547.,-.000489919473896025936,-53,52, + 9007199254740904.,9007199254740931.,.003048110725019307635,-53,52, + 9007199254740956.,9007199254740967.,.046701499842003425948,-53,52, + 9007199254740991.,9007199254740991.,.306852819440054717253,-53,52, + 4503599627370497.,4503599627370497.,-.306852819440054637242,-52,51, + 4503599627370501.,4503599627370499.,.465735902799727880611,-52,51, + 4503599627370540.,4503599627370526.,.498475944637696882534,-52,51, + 4503599627372466.,4503599627371861.,.499945703299270638189,-52,51, + 9007199254740991.,9007199254740991.,-.386294361119890512152,-52,51, + 4503599627370497.,4503599627370497.,.386294361119890832198,-51,50, + 4503599627370500.,4503599627370502.,-.454822555520434110838,-51,50, + 4503599627370518.,4503599627370526.,.498475944637696882534,-51,50, + 4503599627371160.,4503599627371416.,.499455783701442239929,-51,50, + 4503599627371481.,4503599627371861.,.499945703299270638189,-51,50, + 4503599627379682.,4503599627383231.,-.499998734680567230945,-51,50, + 6755399441055743.,9007199254740989.,.227411277760219189059,-51,50, + 6755399441055745.,4503599627370497.,.386294361119890832198,-51,49, + 6755399441055748.,4503599627370502.,-.454822555520434110838,-51,49, + 6755399441055766.,4503599627370526.,.498475944637696882534,-51,49, + 6755399441056408.,4503599627371416.,.499455783701442239929,-51,49, + 6755399441056729.,4503599627371861.,.499945703299270638189,-51,49, + 6755399441064930.,4503599627383231.,-.499998734680567230945,-51,49, + 9007199254731806.,9007199254715523.,-.000002458622032915512,-51,49, + 9007199254735746.,9007199254726447.,-.000436858148598096929,-51,49, + 9007199254740328.,9007199254739151.,.001088432973400855521,-51,49, + 9007199254740970.,9007199254740931.,.003048110725019307635,-51,49, + 9007199254740988.,9007199254740981.,-.090354888959118123028,-51,49, + 9007199254740991.,9007199254740989.,.227411277760219189059,-51,49, + 4503599627370497.,4503599627370499.,-.227411277760217908875,-50,48, + 4503599627370507.,4503599627370526.,.498475944637696882534,-50,48, + 5629499534208527.,9007199254715523.,-.000002458622032915512,-50,48, + 5629499534210497.,9007199254726447.,-.000436858148598096929,-50,48, + 5629499534212788.,9007199254739151.,.001088432973400855521,-50,48, + 5629499534213109.,9007199254740931.,.003048110725019307635,-50,48, + 5629499534213118.,9007199254740981.,-.090354888959118123028,-50,48, + 5629499534213119.,9007199254740986.,.454822555520439231574,-50,48, + 5629499534213121.,4503599627370499.,-.227411277760217908875,-50,47, + 5629499534213131.,4503599627370526.,.498475944637696882534,-50,47, + 5868404969502442.,5217176454040533.,.499999946279241622341,-50,47, + 5868404969519913.,5217176454096648.,.499984457539526224675,-50,47, + 5868404969532797.,5217176454138031.,-.457785149320526437878,-50,47, + 5868404969532811.,5217176454138076.,-.491269220431662803275,-50,47, + 5868404969532844.,5217176454138182.,-.498767388049236503589,-50,47, + 5868404969533382.,5217176454139910.,-.499798120419898546642,-50,47, + 5868404969537384.,5217176454152763.,.499969572362533115803,-50,47, + 5888592265882432.,5282420499191297.,.499998815567891947896,-50,47, + 5888592265910092.,5282420499281249.,.499855082508731476801,-50,47, + 5888592265916158.,5282420499300977.,-.499742394717522499096,-50,47, + 5888592265916392.,5282420499301737.,.482468980040293805412,-50,47, + 5888592265916400.,5282420499301763.,.498954839008311021682,-50,47, + 5888592265917007.,5282420499303737.,.499819388580313037093,-50,47, + 5943141639571899.,5462830750683704.,.499999134231711975984,-50,47, + 5943141639584239.,5462830750725206.,-.497950972199586321706,-50,47, + 5943141639584250.,5462830750725242.,.496459283113610877893,-50,47, + 5943141639584294.,5462830750725390.,.474100304368904945908,-50,47, + 5943141639584305.,5462830750725427.,.468510559683354780316,-50,47, + 5943141639584776.,5462830750727012.,-.498104871617453831135,-50,47, + 5943141639590683.,5462830750746878.,-.499797725808064028235,-50,47, + 5943141639591399.,5462830750749285.,.499997084653745843654,-50,47, + 6303973650795881.,6821702937224042.,.499995401555320400524,-50,47, + 6303973650797894.,6821702937232497.,-.499758825934414440462,-50,47, + 6303973650801249.,6821702937246587.,-.499349181802030932589,-50,47, + 6303973650801264.,6821702937246649.,.496181710860034587140,-50,47, + 6303973650801369.,6821702937247090.,.464897959510781860877,-50,47, + 6303973650801379.,6821702937247132.,.461918554621863500517,-50,47, + 6421931254341636.,7335520459500137.,.499977745483205527648,-50,47, + 6421931254443646.,7335520459960817.,.499958549616371716786,-50,47, + 6421931254449386.,7335520459986739.,.499762270042759648993,-50,47, + 6421931254449698.,7335520459988149.,-.499551532075756433257,-50,47, + 6421931254449727.,7335520459988279.,.465255838894923263505,-50,47, + 6421931254449729.,7335520459988288.,.497311519651608050722,-50,47, + 6421931254450977.,7335520459993925.,-.499943686008497520464,-50,47, + 6619016067711014.,8281808293214681.,-.499995872424830048630,-50,47, + 6619016067722434.,8281808293272906.,.499866733769412778066,-50,47, + 6619016067722860.,8281808293275079.,-.496986019235341565312,-50,47, + 6619016067723053.,8281808293276063.,-.467391139540608784489,-50,47, + 6619016067723073.,8281808293276165.,-.495412395524106073652,-50,47, + 6619016067724361.,8281808293282732.,-.499981278217278593271,-50,47, + 6755399441051151.,9007199254715523.,-.000002458622032915512,-50,47, + 6755399441055743.,9007199254740986.,.454822555520439231574,-50,47, + 6755399441055745.,4503599627370499.,-.227411277760217908875,-50,46, + 6755399441055746.,4503599627370502.,-.454822555520434110838,-50,46, + 6755399441055755.,4503599627370526.,.498475944637696882534,-50,46, + 6755399441056076.,4503599627371416.,.499455783701442239929,-50,46, + 6755399441058367.,4503599627377769.,-.499781559181926237259,-50,46, + 6755399441060337.,4503599627383231.,-.499998734680567230945,-50,46, + 6787616684046200.,4593816523061540.,.499998602615888325829,-50,46, + 6787616684056161.,4593816523089711.,.499986402461617908571,-50,46, + 6787616684082745.,4593816523164895.,-.499944920132527471556,-50,46, + 6787616684082809.,4593816523165076.,-.499643820417536482971,-50,46, + 6787616684083833.,4593816523167972.,-.494826224007787592771,-50,46, + 6787616684084077.,4593816523168662.,-.431178280843935112075,-50,46, + 6787616684084089.,4593816523168696.,-.493621824620087701737,-50,46, + 6787616684086044.,4593816523174224.,.499950838529416443057,-50,46, + 6792176747028827.,4606731092011600.,.432635072134825283885,-50,46, + 6792176747028851.,4606731092011668.,.498564882473464862073,-50,46, + 6792176747028912.,4606731092011841.,.499469817088700294742,-50,46, + 6792176747028973.,4606731092012015.,-.499625248289567406913,-50,46, + 6792176747030065.,4606731092015112.,-.499818876584956904091,-50,46, + 6792176747031157.,4606731092018208.,.499987497201695638757,-50,46, + 6792176747077570.,4606731092149840.,-.499998465730385465948,-50,46, + 6935652144114442.,5032150734044894.,-.499998633804924916552,-50,46, + 6935652144165858.,5032150734204179.,.499985939918855751954,-50,46, + 6935652144171318.,5032150734221094.,.498428662006390430030,-50,46, + 6935652144171420.,5032150734221410.,.492905065047937870012,-50,46, + 6935652144171471.,5032150734221568.,.490143266576152680879,-50,46, + 6935652144172012.,5032150734223245.,-.499937771809327570662,-50,46, + 7272069881149969.,6190148894558330.,-.499998149253967947334,-50,46, + 7272069881160471.,6190148894598351.,.499965298257546842575,-50,46, + 7272069881162729.,6190148894606956.,.496719994451848308315,-50,46, + 7272069881162745.,6190148894607017.,.471010550357730570018,-50,46, + 7272069881162766.,6190148894607097.,.499766904985112510802,-50,46, + 7272069881163427.,6190148894609617.,-.499854503595616368198,-50,46, + 7274706301332422.,6200204168254250.,-.499756223539923270134,-50,46, + 7274706301332433.,6200204168254291.,.488163068422539533875,-50,46, + 7274706301332455.,6200204168254375.,.464001652348318171236,-50,46, + 7274706301333581.,6200204168258674.,-.499896277931641493224,-50,46, + 7274706301334740.,6200204168263097.,.499963670833274199229,-50,46, + 7274706301348812.,6200204168316811.,.499989115952893822371,-50,46, + 7274706301355848.,6200204168343669.,-.499997986985353339462,-50,46, + 7641538687453691.,7771151201542685.,-.499884679351986500835,-50,46, + 7641538687453705.,7771151201542751.,.479179065523183090778,-50,46, + 7641538687454312.,7771151201545656.,-.499985709691129442148,-50,46, + 7641538687484069.,7771151201688020.,-.499994619682019688422,-50,46, + 7642555474142749.,7776017254425356.,-.499983921081378867187,-50,46, + 7642555474143844.,7776017254430597.,.499967791292715099750,-50,46, + 7642555474148224.,7776017254451565.,.499774676126671369771,-50,46, + 7642555474148774.,7776017254454198.,.467786960181386662570,-50,46, + 7642555474148788.,7776017254454265.,.488790909241687660561,-50,46, + 7642555474148802.,7776017254454333.,-.490205141697433691627,-50,46, + 7642555474149178.,7776017254456133.,-.497527652417747533926,-50,46, + 7642555474149319.,7776017254456807.,.499726406169555537856,-50,46, + 7642555474225781.,7776017254822848.,-.499982496679512645324,-50,46, + 7661357941778388.,7866551682051031.,.499997563781503834994,-50,46, + 7661357941794453.,7866551682128834.,-.491624878094722540229,-50,46, + 7661357941794504.,7866551682129080.,.498877909029357025748,-50,46, + 7661357941794816.,7866551682130591.,.499600842192562883569,-50,46, + 7661357941795128.,7866551682132103.,-.499676224353999492906,-50,46, + 7661357941806080.,7866551682185143.,-.499940248199562687355,-50,46, + 7661357941808818.,7866551682198402.,.499993801717277966002,-50,46, + 7881299347893775.,9007199254715523.,-.000002458622032915512,-50,46, + 7881299347898367.,9007199254740986.,.454822555520439231574,-50,46, + 7881299347898369.,4503599627370499.,-.227411277760217908875,-50,45, + 7881299347898370.,4503599627370502.,-.454822555520434110838,-50,45, + 7881299347898379.,4503599627370526.,.498475944637696882534,-50,45, + 7881299347898700.,4503599627371416.,.499455783701442239929,-50,45, + 7881299347900991.,4503599627377769.,-.499781559181926237259,-50,45, + 7881299347902961.,4503599627383231.,-.499998734680567230945,-50,45, + 7952142228756981.,4704364005498082.,-.499993418724064884396,-50,45, + 7952142228792622.,4704364005601305.,-.499972393432776076546,-50,45, + 7952142228792988.,4704364005602365.,-.495539069059371876339,-50,45, + 7952142228792998.,4704364005602393.,.466330693905002143530,-50,45, + 7952142228793094.,4704364005602672.,-.499719581627935342287,-50,45, + 7952142228808410.,4704364005647030.,-.499990413506139474766,-50,45, + 7975281835700737.,4771860255602282.,-.499970819696538951623,-50,45, + 7975281835704640.,4771860255613748.,-.499745957771214512586,-50,45, + 7975281835705427.,4771860255616060.,-.498163334311682359375,-50,45, + 7975281835705475.,4771860255616201.,-.486630976046648540790,-50,45, + 7975281835705941.,4771860255617570.,-.499670997673678721470,-50,45, + 7975281835714004.,4771860255641257.,-.499975000676509413468,-50,45, + 7975281835780339.,4771860255836132.,-.499991130549820740382,-50,45, + 8134778399524007.,5264195980835611.,-.497113944315334961366,-50,45, + 8134778399524061.,5264195980835786.,-.491698887264717215394,-50,45, + 8134778399524065.,5264195980835798.,.471665191035559985151,-50,45, + 8134778399524144.,5264195980836054.,.498105737472575913470,-50,45, + 8134778399524717.,5264195980837912.,-.499990045592573812792,-50,45, + 8134778399551494.,5264195980924691.,.499991866260007806822,-50,45, + 8395085770606831.,6179167963701071.,-.499993876848480499466,-50,45, + 8395085770623720.,6179167963765319.,-.499827672569974821635,-50,45, + 8395085770624011.,6179167963766426.,-.497160346836265401751,-50,45, + 8395085770624190.,6179167963767106.,.442624709297761552714,-50,45, + 8395085770624205.,6179167963767164.,-.495382129570281135924,-50,45, + 8395085770624833.,6179167963769553.,-.499935116372819908827,-50,45, + 8395085770625946.,6179167963773786.,.499957442725495029940,-50,45, + 8395085770634947.,6179167963808027.,.499987131038057415837,-50,45, + 8472742745230410.,6481761058822439.,-.499996073685695086290,-50,45, + 8472742745233333.,6481761058834102.,.499991960404652698284,-50,45, + 8472742745245025.,6481761058880758.,.499944306661000602882,-50,45, + 8472742745247934.,6481761058892367.,-.365958705205296498827,-50,45, + 8472742745247948.,6481761058892422.,.499932445698826770797,-50,45, + 8714420965793256.,7521598086853414.,.499804511831178873372,-50,45, + 8714420965793367.,7521598086853928.,.494669226697232379173,-50,45, + 8714420965793375.,7521598086853966.,-.460655838896650043466,-50,45, + 8714420965793413.,7521598086854142.,-.498449900465099982042,-50,45, + 8714420965794420.,7521598086858805.,-.499992530529071758387,-50,45, + 8743627225390060.,7658063315506043.,.499996242201832796696,-50,45, + 8743627225396889.,7658063315538239.,.486988829789208052695,-50,45, + 8743627225396896.,7658063315538272.,.489172011600212724448,-50,45, + 8743627225396924.,7658063315538404.,.497904738845653630175,-50,45, + 8743627225396931.,7658063315538438.,-.499912079342630588715,-50,45, + 8743627225400137.,7658063315553552.,.499985205372280266830,-50,45, + 8897696383646856.,8420001496409038.,-.499939029968981568172,-50,45, + 8897696383647003.,8420001496409800.,-.499570679919212378526,-50,45, + 8897696383647934.,8420001496414626.,-.497237794669266262971,-50,45, + 8897696383647983.,8420001496414880.,-.497115011158436184426,-50,45, + 8897696383647999.,8420001496414962.,.441700591622269832137,-50,45, + 8897696383654979.,8420001496451145.,-.499992617376558994582,-50,45, + 8897696383711987.,8420001496746656.,-.499993452735654413087,-50,45, + 8979216647919140.,8853359649423372.,-.499997203377398641159,-50,45, + 8979216647922239.,8853359649440262.,.499966071320188807240,-50,45, + 8979216647925338.,8853359649457153.,.499929378243495198156,-50,45, + 8979216647925873.,8853359649460070.,-.499754268315866044764,-50,45, + 8979216647926035.,8853359649460952.,.476042459457470739479,-50,45, + 8979216647926075.,8853359649461170.,.494757700896542284125,-50,45, + 9007199254349602.,9007199252570665.,.000266619289039501697,-50,45, + 9007199254652740.,9007199254251619.,.000183083792268700606,-50,45, + 9007199254735414.,9007199254710061.,.000214746109515744973,-50,45, + 9007199254737384.,9007199254720985.,-.000219660041404196147,-50,45, + 9007199254740660.,9007199254739151.,.001088432973400855521,-50,45, + 9007199254740704.,9007199254739395.,-.011104009972414788825,-50,45, + 9007199254740968.,9007199254740859.,-.084258667508516226800,-50,45, + 9007199254740991.,9007199254740986.,.454822555520439231574,-50,45, + 4503599627370497.,4503599627370502.,-.454822555520434110838,-49,44, + 4523144813466884.,4613295806809459.,-.499297145969298596199,-49,44, + 4523144813467056.,4613295806810436.,-.497363867501431514515,-49,44, + 4523144813467078.,4613295806810560.,.467999691387290531440,-49,44, + 4523144813467081.,4613295806810578.,-.491268914218530552728,-49,44, + 4523144813467375.,4613295806812248.,-.499592263283647849228,-49,44, + 4523144813467866.,4613295806815037.,-.499887378911888151178,-49,44, + 4523144813471475.,4613295806835536.,.499980142685226584162,-49,44, + 4523144813478202.,4613295806873748.,-.499989462386372314189,-49,44, + 4523144813508719.,4613295807047092.,-.499996256053235631482,-49,44, + 4612325947558647.,5148725368218194.,-.499983880353316917366,-49,44, + 4612325947558971.,5148725368220247.,.499882447404848613002,-49,44, + 4612325947563993.,5148725368252084.,.497810632438428268999,-49,44, + 4612325947564803.,5148725368257219.,.497476487170884917718,-49,44, + 4612325947564812.,5148725368257277.,-.446971669969986597270,-49,44, + 4612325947573660.,5148725368313368.,.499995926724060318887,-49,44, + 4802115455481652.,6504098966353419.,.499997370347200403149,-49,44, + 4802115455518545.,6504098966648871.,.399343761839865119389,-49,44, + 4802115455518557.,6504098966648967.,.499492631198561693995,-49,44, + 4802115455519276.,6504098966654726.,-.499920943801586059143,-49,44, + 4802115455522631.,6504098966681594.,-.499966139453300065962,-49,44, + 4802115455525986.,6504098966708461.,.499988775884905556727,-49,44, + 5059472696353164.,8929055048048181.,-.499985163239851381582,-49,44, + 5059472696383016.,8929055048376377.,.499993299907515147660,-49,44, + 5059472696385063.,8929055048398882.,.499958766456358382063,-49,44, + 5059472696394953.,8929055048507615.,-.477735371384427588764,-49,44, + 5059472696394957.,8929055048507658.,.498815612043058624765,-49,44, + 5059472696395298.,8929055048511407.,.499786950032528277075,-49,44, + 5066549580596113.,9007199252570665.,.000266619289039501697,-49,44, + 5066549580747682.,9007199254251619.,.000183083792268700606,-49,44, + 5066549580789019.,9007199254710061.,.000214746109515744973,-49,44, + 5066549580790004.,9007199254720985.,-.000219660041404196147,-49,44, + 5066549580791642.,9007199254739151.,.001088432973400855521,-49,44, + 5066549580791664.,9007199254739395.,-.011104009972414788825,-49,44, + 5066549580791796.,9007199254740859.,-.084258667508516226800,-49,44, + 5066549580791807.,9007199254740981.,-.090354888959118123028,-49,44, + 5066549580791809.,4503599627370502.,-.454822555520434110838,-49,43, + 5079689563129230.,4577055780623428.,-.499993783317175893324,-49,43, + 5079689563131560.,4577055780636558.,.499958280579085092849,-49,43, + 5079689563132172.,4577055780640008.,-.499195935017613917767,-49,43, + 5079689563132205.,4577055780640193.,.476339867156412497292,-49,43, + 5079689563132227.,4577055780640317.,.460030401943294875425,-49,43, + 5079689563132419.,4577055780641399.,.499511432953187027867,-49,43, + 5107897798880038.,4738819685345705.,.499960309286003717675,-49,43, + 5107897798881140.,4738819685352135.,.447829563087119790675,-49,43, + 5107897798881164.,4738819685352275.,.482991869982039845792,-49,43, + 5107897798881176.,4738819685352346.,-.499426976568948328314,-49,43, + 5107897798883337.,4738819685364954.,.499979090575359269657,-49,43, + 5107897798886636.,4738819685384203.,.499997950053805423428,-49,43, + 5222449517538544.,5456638600810190.,-.499986936282803115795,-49,43, + 5222449517592907.,5456638601175435.,-.499864570432382898064,-49,43, + 5222449517593170.,5456638601177202.,-.499606390922713589171,-49,43, + 5222449517593632.,5456638601180306.,-.491548294733219537012,-49,43, + 5222449517593639.,5456638601180353.,-.461123172050102447030,-49,43, + 5222449517593664.,5456638601180521.,-.495319162464232413192,-49,43, + 5222449517593696.,5456638601180736.,-.499090030186774254011,-49,43, + 5222449517596621.,5456638601200387.,.499979127824972921929,-49,43, + 5270585385640589.,5789821915182105.,-.499987594314045539610,-49,43, + 5270585385676446.,5789821915437725.,-.499982969006734537714,-49,43, + 5270585385682320.,5789821915479600.,-.499841692695157090577,-49,43, + 5270585385682436.,5789821915480426.,.449429060788843357148,-49,43, + 5270585385682452.,5789821915480541.,-.488602559410990867405,-49,43, + 5270585385682514.,5789821915480983.,-.498475087664124213267,-49,43, + 5270585385689614.,5789821915531597.,.499993674261712227704,-49,43, + 5489113122526546.,7577396357262741.,-.499993315357427284274,-49,43, + 5489113122559371.,7577396357568994.,-.456648627884208387956,-49,43, + 5489113122559383.,7577396357569106.,-.498186473716861026270,-49,43, + 5489113122559480.,7577396357570010.,.499382605863259630993,-49,43, + 5489113122559865.,7577396357573603.,-.499956613294090822100,-49,43, + 5489113122568917.,7577396357658056.,.499995534995302994208,-49,43, + 5503648895898286.,7714234138504659.,-.499974842901028731474,-49,43, + 5503648895950630.,7714234139001841.,-.499983456490458363557,-49,43, + 5503648895951543.,7714234139010512.,.499978468825273897489,-49,43, + 5503648895960673.,7714234139097232.,.499598258159877254695,-49,43, + 5503648895962150.,7714234139111262.,-.427078711691723606919,-49,43, + 5503648895962182.,7714234139111566.,-.479653974127875062969,-49,43, + 5503648895962194.,7714234139111680.,-.499369697538344350998,-49,43, + 5503648895962499.,7714234139114576.,.499522333010931907815,-49,43, + 5548511370782210.,8152342696180245.,-.499999611017932165074,-49,43, + 5548511370793033.,8152342696288884.,-.499946602784304043586,-49,43, + 5548511370793721.,8152342696295789.,.499502440858304209252,-49,43, + 5548511370794012.,8152342696298710.,.496362430554863175387,-49,43, + 5548511370794065.,8152342696299242.,.499226964873433020501,-49,43, + 5548511370800363.,8152342696362460.,.499997724095106597971,-49,43, + 5629499534017425.,9007199252570665.,.000266619289039501697,-49,43, + 5629499534168994.,9007199254251619.,.000183083792268700606,-49,43, + 5629499534210331.,9007199254710061.,.000214746109515744973,-49,43, + 5629499534211316.,9007199254720985.,-.000219660041404196147,-49,43, + 5629499534212954.,9007199254739151.,.001088432973400855521,-49,43, + 5629499534212976.,9007199254739395.,-.011104009972414788825,-49,43, + 5629499534213108.,9007199254740859.,-.084258667508516226800,-49,43, + 5629499534213119.,9007199254740981.,-.090354888959118123028,-49,43, + 5629499534213121.,4503599627370502.,-.454822555520434110838,-49,42, + 5426391276979760.,6171883528749693.,.499548756881675847362,-44,-256, + 5426391276979822.,6171883528764771.,-.495997908487646170693,-44,-256, + 5426391276979839.,6171883528768905.,-.478647794171130015118,-44,-256, + 5426391276979991.,6171883528805868.,-.499987825454056851255,-44,-256, + 5426391277018838.,6171883538252584.,-.492704910792221852041,-44,-256, + 5506672652879599.,4560457981990708.,-.490086818771931960945,-44,-261, + 5506672652929202.,4560457990903669.,.499978458046844147075,-44,-261, + 5506672652931294.,4560457991279572.,.499841486780678485041,-44,-261, + 5506672652932504.,4560457991496992.,.494996292062968998124,-44,-261, + 5506672652932520.,4560457991499867.,.470138904381217189690,-44,-261, + 5506672652932539.,4560457991503282.,-.496879241136836228496,-44,-261, + 5506672652932660.,4560457991525024.,-.497363160522913391772,-44,-261, + 5506672652933265.,4560457991633734.,-.499781202627411629592,-44,-261, + 5506672652937449.,4560457992385540.,-.499903807385714565251,-44,-261, + 5562950707703165.,5235095141729844.,.499241066940454628315,-44,-264, + 5562950707703180.,5235095141732939.,-.492349495526194357484,-44,-264, + 5562950707704950.,5235095142098031.,.499976972000520112259,-44,-264, + 5562950707709231.,5235095142981062.,-.499833240386563414593,-44,-264, + 5562950707725760.,5235095146390453.,-.497936324024171069552,-44,-264, + 5565768841137126.,5849884319338643.,-.499085983446758285100,-44,-264, + 5565768841151354.,5849884322618061.,-.420299534294856278803,-44,-264, + 5565768841151362.,5849884322619905.,-.496723652271072815473,-44,-264, + 5565768841151415.,5849884322632120.,.496966580816771001745,-44,-264, + 5565768841152828.,5849884322957803.,.498566540643742853991,-44,-264, + 5565768841154084.,5849884323247300.,-.499996051015771453538,-44,-264, + 5637442019523229.,6158404352799899.,-.499227792673740273634,-44,-268, + 5637442019535910.,6158404355876898.,-.498557196509076715628,-44,-268, + 5637442019535927.,6158404355881022.,.490246879316363825853,-44,-268, + 5637442019536091.,6158404355920816.,.499886340940724360453,-44,-268, + 5637442019536716.,6158404356072471.,-.499960914516512294320,-44,-268, + 5666178554258968.,4776783453951195.,-.499944886742069443450,-44,-270, + 5666178554261170.,4776783454365631.,.499131226849700209011,-44,-270, + 5666178554261256.,4776783454381818.,-.496362800262842078266,-44,-270, + 5666178554261619.,4776783454450137.,.499401387295407413673,-44,-270, + 5666178554262517.,4776783454619149.,.499946193169750142184,-44,-270, + 5666178554281160.,4776783458127937.,-.498528414959072663857,-44,-270, + 5835612929791082.,7398683857392519.,-.490285253920812893948,-44,-279, + 5835612929832190.,7398683869376096.,-.496572336568118316324,-44,-279, + 5835612929832223.,7398683869385715.,.481074667498134124754,-44,-279, + 5835612929832225.,7398683869386299.,-.489977028823116114361,-44,-279, + 5835612929832328.,7398683869416325.,-.499139327257392774788,-44,-279, + 5835612929832777.,7398683869547214.,.499756542754880209917,-44,-279, + 5835612929833537.,7398683869768766.,-.499879914884285857765,-44,-279, + 5835612929838995.,7398683871359852.,-.499705781991491611724,-44,-279, + 5835612929841724.,7398683872155395.,-.499490404481375943908,-44,-279, + 6029337333034302.,7460260725316394.,-.451090927571183074015,-44,-290, + 6029337333089910.,7460260741661846.,-.492417422190763112677,-44,-290, + 6029337333126190.,7460260752326013.,-.499643605168245523564,-44,-290, + 6029337333126207.,7460260752331009.,.491508731928824455600,-44,-290, + 6029337333126982.,7460260752558813.,.499927653955805057887,-44,-290, + 6157045845814039.,8929717502718032.,-.496946623810720595848,-44,-297, + 6157045845814361.,8929717502831324.,-.497006028996714789236,-44,-297, + 6157045845824182.,8929717506286730.,-.498127422971412660073,-44,-297, + 6157045845834808.,8929717510025366.,-.497834757146934675606,-44,-297, + 6157045845835000.,8929717510092918.,.495973747716591644679,-44,-297, + 6157045845835056.,8929717510112621.,.452501324564641402254,-44,-297, + 6157045845835062.,8929717510114732.,.483557853233973195418,-44,-297, + 6157045845835130.,8929717510138658.,-.497801453634950315596,-44,-297, + 6157045845873479.,8929717523631313.,-.489767129505768794243,-44,-297, + 6268442428701097.,5620806524057176.,-.499688905848665638948,-44,-304, + 6268442428702763.,5620806524426136.,-.499830586880144663139,-44,-304, + 6268442428709427.,5620806525901975.,.499844881072463453513,-44,-304, + 6268442428709554.,5620806525930102.,-.497756580498565295128,-44,-304, + 6268442428709582.,5620806525936303.,-.489353734193208104347,-44,-304, + 6268442428709597.,5620806525939624.,.479433507713048396242,-44,-304, + 6328789084985243.,7574167972273737.,-.499589622587651935271,-44,-307, + 6328789084993139.,7574167974630129.,.499673315980800645344,-44,-307, + 6328789084993146.,7574167974632219.,-.499440487378029376652,-44,-307, + 6328789084993307.,7574167974680266.,-.479057805611248401596,-44,-307, + 6328789084993573.,7574167974759648.,-.445381402750077488199,-44,-307, + 6328789084993580.,7574167974761737.,-.444495170387052322216,-44,-307, + 6328789084995397.,7574167975303981.,.499850629217549613490,-44,-307, + 6328789084997655.,7574167975977834.,-.499912106866014368019,-44,-307, + 6477002457216950.,5084275526228931.,-.495429788055383358801,-44,-316, + 6477002457239465.,5084275530739244.,-.499480540397444977191,-44,-316, + 6477002457250918.,5084275533033563.,.499505669695246360690,-44,-316, + 6477002457250958.,5084275533041576.,.491733053553383691255,-44,-316, + 6477002457250967.,5084275533043379.,.414984216661864194540,-44,-316, + 6477002457251817.,5084275533213655.,.499819169543913559376,-44,-316, + 6477002457258892.,5084275534630954.,-.499715681026167977380,-44,-316, + 6491364931154882.,8953516025250841.,-.496160975841784861898,-44,-316, + 6491364931154931.,8953516025268127.,-.462788343151553429849,-44,-316, + 6491364931154949.,8953516025274477.,-.491345326843020341870,-44,-316, + 6491364931155025.,8953516025301287.,.499191902776011912788,-44,-316, + 6491364931155445.,8953516025449453.,.499530672145932984521,-44,-316, + 6491364931156075.,8953516025671703.,-.499956576478787530298,-44,-316, + 6491364931167911.,8953516029847162.,-.498821738954047730017,-44,-316, + 6491364931209442.,8953516044498310.,-.479351727763725962689,-44,-316, + 6544022097449506.,8911496337897258.,-.499814084089566450928,-44,-319, + 6544022097452956.,8911496339108624.,-.499947532513560440712,-44,-319, + 6544022097454681.,8911496339714307.,-.499952507517149004084,-44,-319, + 6616319171067012.,4807478929483446.,-.494188221684716613397,-44,-324, + 6616319171103002.,4807478936300628.,-.499966191714694851605,-44,-324, + 6616319171105089.,4807478936695945.,-.499893564162874422129,-44,-324, + 6616319171106388.,4807478936941999.,.499209740896920105909,-44,-324, + 6616319171106474.,4807478936958290.,-.485452721298911693891,-44,-324, + 6616319171106486.,4807478936960563.,-.460056781402955225024,-44,-324, + 6616319171106505.,4807478936964161.,.496820125630239872745,-44,-324, + 6616319171106782.,4807478937016630.,.499710076235977284550,-44,-324, + 6702751591224365.,4526496367389519.,.499996213155903866478,-44,-329, + 6702751591224503.,4526496367414132.,-.499550847571858512992,-44,-329, + 6702751591225722.,4526496367631538.,-.495544071981264488286,-44,-329, + 6702751591225880.,4526496367659716.,.461497767540141465122,-44,-329, + 6702751591225883.,4526496367660252.,-.495014094569379838755,-44,-329, + 6702751591263985.,4526496374455661.,-.494902916653210793864,-44,-329, + 6740450947105953.,4998014454460926.,-.489717451131415057808,-44,-331, + 6740450947143341.,4998014461823597.,-.499220241568372733649,-44,-331, + 6740450947151684.,4998014463466551.,-.499833838557351414249,-44,-331, + 6740450947155700.,4998014464257405.,.499943493907124775265,-44,-331, + 6740450947156944.,4998014464502382.,-.499104078410965927008,-44,-331, + 6740450947157431.,4998014464598284.,.485194877132358293999,-44,-331, + 6740450947157512.,4998014464614235.,.494903916810582820756,-44,-331, + 6740450947157566.,4998014464624870.,-.498623361788846527887,-44,-331, + 6754791752059396.,8794097065749098.,-.499946508390329018864,-44,-331, + 6754791752060188.,8794097066023521.,.498785004193397922278,-44,-331, + 6754791752062069.,8794097066675278.,.495806667610091234946,-44,-331, + 6754791752062152.,8794097066704038.,-.423515559333023642710,-44,-331, + 6754791752062166.,8794097066708889.,-.494244600390935938072,-44,-331, + 6754791752062168.,8794097066709581.,.495651251104940320679,-44,-331, + 6794379564732387.,5230112843794016.,-.491487682723538734970,-44,-334, + 6794379564757711.,5230112849012556.,-.498277326147141166190,-44,-334, + 6794379564776704.,5230112852926461.,-.499952469722761614246,-44,-334, + 6794379564777409.,5230112853071740.,.499251963290619655540,-44,-334, + 6794379564778114.,5230112853217020.,.498460431834162961933,-44,-334, + 6794379564778156.,5230112853225675.,.477136808392557349293,-44,-334, + 6794379564778170.,5230112853228560.,.470028937094815412148,-44,-334, + 6990987887109262.,5908251725332788.,-.493051658133335059071,-44,-345, + 6990987887140197.,5908251732534152.,-.499700524288652717386,-44,-345, + 6990987887148175.,5908251734391351.,.499749890329375057068,-44,-345, + 6990987887148194.,5908251734395775.,-.486964183735217596806,-44,-345, + 6990987887148928.,5908251734566642.,.499978858181518751322,-44,-345, + 7138546116873513.,7729877522753201.,-.496544189384772327518,-44,-353, + 7138546116878318.,7729877524216630.,-.497774589177882037532,-44,-353, + 7138546116897515.,7729877530063341.,-.467043269303913860389,-44,-353, + 7138546116897522.,7729877530065472.,.479470800760170583617,-44,-353, + 7138546116897538.,7729877530070346.,-.499925608313908537376,-44,-353, + 7322656671992078.,5336592887257907.,.499999328545569420324,-44,-364, + 7322656671992859.,5336592887422126.,-.499936812322397084051,-44,-364, + 7322656671993058.,5336592887463968.,.498799857189924439286,-44,-364, + 7322656671993197.,5336592887493196.,-.481981872505308670243,-44,-364, + 7322656671993212.,5336592887496350.,-.487102193479162290525,-44,-364, + 7322656671993242.,5336592887502658.,-.497342829834715186119,-44,-364, + 7357968097663804.,5363374957105977.,.499984140124120317247,-44,-366, + 7357968097664342.,5363374957219669.,-.499783941152849068886,-44,-366, + 7357968097664370.,5363374957225586.,-.496054332937268169865,-44,-366, + 7357968097664398.,5363374957231503.,-.492324718193907017653,-44,-366, + 7357968097672384.,5363374958919117.,-.499747445410868455011,-44,-366, + 7357968097698124.,5363374964358534.,-.495264510568199188524,-44,-366, + 7461059150902210.,4867527186045587.,.492376753873787253054,-44,-372, + 7461059150902224.,4867527186048272.,.478672092386185542049,-44,-372, + 7461059150902275.,4867527186058054.,-.499823447650922128612,-44,-372, + 7461059150902786.,4867527186156055.,.499957618588801087314,-44,-372, + 7461059150911761.,4867527187877324.,-.499652084684765640294,-44,-372, + 7819356134935638.,6276736201578648.,-.499960271305822903730,-44,-392, + 7819356134935923.,6276736201649131.,-.498744243849929770514,-44,-392, + 7819356134936059.,6276736201682764.,.494818771015156736559,-44,-392, + 7819356134936072.,6276736201685980.,-.491090637244327163330,-44,-392, + 7819356134947135.,6276736204421957.,-.499400070583664619628,-44,-392, + 7880037969479055.,8570488960775738.,-.493096503149208498047,-44,-395, + 7880037969501214.,8570488968258491.,-.499334279743728793479,-44,-395, + 7880037969503389.,8570488968992955.,-.499639577559790876194,-44,-395, + 7880037969509914.,8570488971196346.,.499822176546702340593,-44,-395, + 7880037969511271.,8570488971654584.,.498861852302507008081,-44,-395, + 7880037969511680.,8570488971792697.,.499314135192767249735,-44,-395, + 7961347698810188.,6594670221502742.,.499369509627989069840,-44,-400, + 7961347698810231.,6594670221513915.,.432258376965258171127,-44,-400, + 7961347698810255.,6594670221520151.,.487824264640463809523,-44,-400, + 7961347698810261.,6594670221521711.,-.498284262519337564580,-44,-400, + 7961347698810620.,6594670221614991.,.499556199837459319320,-44,-400, + 7961347698811484.,6594670221839489.,.499935312084203079643,-44,-400, + 7961347698817027.,6594670223279759.,-.499765512925414122416,-44,-400, + 8016984453633574.,7381345780991594.,-.495905894320822144382,-44,-403, + 8016984453660065.,7381345788696006.,.499923160763013649072,-44,-403, + 8016984453660148.,7381345788720146.,-.498944810078943883314,-44,-403, + 8016984453660314.,7381345788768424.,-.496680514939632262884,-44,-403, + 8016984453660320.,7381345788770168.,.491353140195116406513,-44,-403, + 8016984453660326.,7381345788771913.,.479386795742389204266,-44,-403, + 8016984453678617.,7381345794091510.,-.498096773587908978120,-44,-403, + 8049376796641490.,6612406404265507.,-.499994054059168897341,-44,-405, + 8049376796642171.,6612406404442930.,.473637409077124662578,-44,-405, + 8049376796642186.,6612406404446838.,.490677803259607117700,-44,-405, + 8049376796642201.,6612406404450747.,-.492281800248222205694,-44,-405, + 8049376796642549.,6612406404541413.,-.496943953254184970047,-44,-405, + 8049376796642781.,6612406404601856.,.499948635389944491367,-44,-405, + 8198893031063934.,4672482745522309.,-.499915390548840137548,-44,-414, + 8198893031068322.,4672482746330138.,.499611518236732009635,-44,-414, + 8198893031068733.,4672482746405804.,-.475357271807470488922,-44,-414, + 8198893031068743.,4672482746407645.,-.477181314690379446654,-44,-414, + 8198893031068833.,4672482746424214.,-.493597667994953654318,-44,-414, + 8198893031068863.,4672482746429737.,-.499069772706502492085,-44,-414, + 8198893031069965.,4672482746632614.,.499926105248037062512,-44,-414, + 8466376832793595.,5384763999923516.,.499940227322585181902,-44,-429, + 8466376832794867.,5384764000193390.,-.499828221022357757671,-44,-429, + 8466376832794873.,5384764000194662.,.486021959856355297168,-44,-429, + 8466376832798330.,5384764000928115.,-.499915452535461715152,-44,-429, + 8466376832806528.,5384764002667438.,-.499433620829095090759,-44,-429, + 8627767282607862.,6074931139311478.,-.498082377548557337167,-44,-438, + 8627767282627737.,6074931144068708.,-.499846283966154143984,-44,-438, + 8627767282627944.,6074931144118254.,.499400229782509610865,-44,-438, + 8627767282627958.,6074931144121606.,-.495819798176303645521,-44,-438, + 8627767282628014.,6074931144135010.,-.476699891527012947024,-44,-438, + 8627767282628025.,6074931144137642.,.455627236468666278099,-44,-438, + 8627767282634431.,6074931145670967.,-.499853293378442802203,-44,-438, + 8627767282638406.,6074931146622413.,-.499508089567416365055,-44,-438, + 8666709478615150.,7044394057341837.,-.492217497388840429235,-44,-440, + 8666709478651848.,7044394067527555.,.499992428400354559326,-44,-440, + 8666709478652401.,7044394067681043.,.499524438528100029391,-44,-440, + 8666709478652864.,7044394067809552.,-.464698449176974145109,-44,-440, + 8666709478652882.,7044394067814548.,-.471946807836910858724,-44,-440, + 8666709478652945.,7044394067832034.,-.497316035243713776527,-44,-440, + 8666709478652954.,7044394067834531.,.499059792955692229487,-44,-440, + 8666709478662609.,7044394070514327.,-.499472096087458981444,-44,-440, + 8704521642362387.,7812846536877131.,-.499902121695399124500,-44,-442, + 8704521642365749.,7812846537912065.,-.499909478305566505638,-44,-442, + 8704521642366371.,7812846538103537.,-.474910683474141435667,-44,-442, + 8704521642366377.,7812846538105384.,-.477884948776088395943,-44,-442, + 8704521642366419.,7812846538118313.,-.498704793663808942124,-44,-442, + 8918028527502122.,8188167299261490.,-.488934713485145863072,-43,-961, + 8918028527521514.,8188167311774015.,-.499958460860216901232,-43,-961, + 8918028527522971.,8188167312714132.,-.496868816425169605972,-43,-961, + 8918028527522979.,8188167312719293.,.435886949725039659380,-43,-961, + 8918028527523120.,8188167312810273.,-.499292137764226819171,-43,-961, + 8918028527523596.,8188167313117407.,.499685217831620983562,-43,-961, + 8918028527524399.,8188167313635537.,-.499913006726693083640,-43,-961, + 8922371199869951.,5764698951501434.,-.499956207362952489585,-43,-962, + 8922371199871398.,5764698952158760.,-.499933089103210190758,-43,-962, + 8922371199871715.,5764698952302763.,-.499226930835093232537,-43,-962, + 8922371199871745.,5764698952316391.,-.454995877798081430530,-43,-962, + 8922371199871756.,5764698952321387.,.494555516387737142791,-43,-962, + 8922371199933481.,5764698980361089.,-.431802358721287102876,-43,-962, + 8923543109217644.,6322415876760098.,-.499892526430424868752,-43,-962, + 8923543109218505.,6322415877189062.,.499811550236301528849,-43,-962, + 8923543109218915.,6322415877393332.,-.452700088532725515784,-43,-962, + 8923543109218924.,6322415877397816.,-.497999050480282256253,-43,-962, + 8923543109221728.,6322415878794817.,-.499876358974185102858,-43,-962, + 8923543109229035.,6322415882435290.,-.497968675127896480674,-43,-962, + 8923543109303827.,6322415919697950.,-.358453517528640895644,-43,-962, + 8927612007905576.,8712315267700716.,-.475799758792600822854,-43,-962, + 8927612007920614.,8712315278024985.,-.494003129122600577569,-43,-962, + 8927612007935487.,8712315288235974.,-.483015881762023869646,-43,-962, + 8927612007935575.,8712315288296390.,-.492059345646423621334,-43,-962, + 8927612007935652.,8712315288349254.,-.499972032868998550456,-43,-962, + 8936637841673181.,8871479109224838.,-.498547551963505200859,-43,-963, + 8936637841679336.,8871479113527723.,-.499627314619079559977,-43,-963, + 8936637841680339.,8871479114228907.,.497145095950214270906,-43,-963, + 8936637841680362.,8871479114244987.,-.484982105054916685627,-43,-963, + 8936637841680453.,8871479114308603.,.498775776716509575668,-43,-963, + 8936637841680510.,8871479114348451.,.499591385577407420274,-43,-963, + 8936637841689127.,8871479120372491.,-.497856810930629963349,-43,-963, + 8936637841752911.,8871479164963103.,-.355015550891579893968,-43,-963, + 8938176088222735.,5007369944587362.,-.499987530382115908802,-43,-964, + 8938176088223278.,5007369944801624.,-.499542622793033346443,-43,-964, + 8938176088223709.,5007369944971691.,.497133802835681456998,-43,-964, + 8938176088223726.,5007369944978400.,-.484435686098963462817,-43,-964, + 8938176088223731.,5007369944980372.,.462161524748092922430,-43,-964, + 8938176088223765.,5007369944993788.,.499022579123606210928,-43,-964, + 8940110850503086.,5832078146551141.,-.499988904629820319574,-43,-964, + 8940110850503311.,5832078146654545.,.490798626171141406941,-43,-964, + 8940110850503337.,5832078146666495.,-.488043585431753975800,-43,-964, + 8940110850520999.,5832078154783557.,-.494353597900130185393,-43,-964, + 8940251230171576.,5896951675957387.,-.499924024676709366063,-43,-964, + 8940251230171705.,5896951676017331.,.494847493466482425990,-43,-964, + 8940251230171734.,5896951676030808.,-.498575879802467906245,-43,-964, + 8940251230189366.,5896951684224220.,-.494285371862360239505,-43,-964, + 8940944733884848.,6228184211671291.,-.441311013983338890729,-43,-964, + 8940944733884853.,6228184211673745.,-.483448455417900875013,-43,-964, + 8940944733884925.,6228184211709082.,-.490227504867895598084,-43,-964, + 8940944733885021.,6228184211756198.,-.499265925590949358950,-43,-964, + 8940944733885472.,6228184211977544.,.499943764250378426046,-43,-964, + 8940944733915564.,6228184226746445.,-.481799700412600322323,-43,-964, + 8940944733990794.,6228184263668695.,-.282939261196432463160,-43,-964, + 8942307480356773.,6934240877101175.,-.484129989632511678646,-43,-964, + 8942307480374006.,6934240886517804.,-.497876950574313144462,-43,-964, + 8942307480383784.,6934240891860796.,.499603144794157046261,-43,-964, + 8942307480383884.,6934240891915440.,-.495696920688932076744,-43,-964, + 8942307480383891.,6934240891919265.,-.485367909146919627785,-43,-964, + 8942307480383919.,6934240891934565.,-.444051841879654726644,-43,-964, + 8942307480385914.,6934240893024692.,.499804842755581538080,-43,-964, + 8942307480391239.,6934240895934433.,-.498836224581620605387,-43,-964, + 8942613188620169.,7103317436084606.,-.499048783764927276080,-43,-964, + 8942613188626747.,7103317439766664.,.472062588382727181577,-43,-964, + 8942613188626755.,7103317439771143.,-.499391267689653271510,-43,-964, + 8942613188627035.,7103317439927873.,.499725548273640808740,-43,-964, + 8942613188628086.,7103317440516175.,-.499987265523310416931,-43,-964, + 8945254115904634.,8746656457254135.,-.392885739710211433139,-43,-964, + 8945254115955533.,8746656492336347.,-.496137647801301657098,-43,-964, + 8945254115966881.,8746656500157973.,-.499935302065668030459,-43,-964, + 8945254115967048.,8746656500273078.,-.499762723547320724441,-43,-964, + 8945254115967382.,8746656500503288.,-.499413022204674044391,-43,-964, + 8945254115967398.,8746656500514316.,-.475444022156411361890,-43,-964, + 8945254115967438.,8746656500541886.,-.415521461203853590252,-43,-964, + 8946847078309036.,4958248189206604.,-.499809113646532770716,-43,-965, + 8946847078309139.,4958248189246847.,.499617994961276694796,-43,-965, + 8946847078309757.,4958248189488311.,.496187506121411215476,-43,-965, + 8946847078309931.,4958248189556297.,-.495067500299710753142,-43,-965, + 8946847078312577.,4958248190590138.,-.499899451583492102387,-43,-965, + 8946847078317837.,4958248192645317.,-.499038570410373356808,-43,-965, + 8948813482418940.,5789283286078991.,-.400832433136300407777,-43,-965, + 8948813482492293.,5789283319543028.,-.499964826131824750779,-43,-965, + 8948813482493140.,5789283319929434.,-.499693536690946044722,-43,-965, + 8948813482493213.,5789283319962736.,.496789139367907130226,-43,-965, + 8948813482493218.,5789283319965018.,-.476054505946624083144,-43,-965, + 8952183438217363.,7550145104069035.,-.489874231679965973414,-43,-965, + 8952183438234167.,7550145114066816.,-.499611013967647831715,-43,-965, + 8952183438237842.,7550145116253309.,.499964322674834268731,-43,-965, + 8952183438238151.,7550145116437153.,.485263597278827689751,-43,-965, + 8952183438238235.,7550145116487130.,.490976795313775106395,-43,-965, + 8952183438238375.,7550145116570426.,-.499500472816914189762,-43,-965, + 8954214000884692.,8860282019064038.,-.469660075825149941393,-43,-965, + 8954214000917820.,8860282042194185.,.499875744653180159932,-43,-965, + 8954214000917893.,8860282042245154.,.492992893998501309444,-43,-965, + 8954214000917903.,8860282042252137.,-.453155418874410794375,-43,-965, + 8954214000917932.,8860282042272385.,-.496985495092170868601,-43,-965, + 8954214000919417.,8860282043309220.,-.499946513274896668328,-43,-965, + 8955438287551924.,4878839080959657.,-.499947025655506350012,-43,-966, + 8955438287552039.,4878839081003869.,.499808406537911628121,-43,-966, + 8955438287552065.,4878839081013865.,.482361864131919485784,-43,-966, + 8955438287552078.,4878839081018863.,.473638600609003569189,-43,-966, + 8955438287556051.,4878839082546327.,-.499777352907449281148,-43,-966, + 8955438287613369.,4878839104582855.,-.443101502974948007261,-43,-966, + 8955628748487397.,4952616119299434.,-.485305079125907078340,-43,-966, + 8955628748509478.,4952616127917088.,-.498794817314556014188,-43,-966, + 8955628748511346.,4952616128646121.,-.499293381212892011906,-43,-966, + 8955628748516950.,4952616130833219.,.499854816019511470714,-43,-966, + 8955628748518290.,4952616131356187.,.497652893451510006598,-43,-966, + 8955628748518308.,4952616131363212.,.440907273355871279169,-43,-966, + 8955628748518483.,4952616131431511.,-.499674624877235907003,-43,-966, + 8959985196784881.,6981135103209888.,-.493747784486158302743,-43,-966, + 8959985196787433.,6981135104613808.,-.495547317926877080320,-43,-966, + 8959985196800831.,6981135111984387.,.499637125669789922322,-43,-966, + 8959985196801788.,6981135112510857.,.499590928408569557433,-43,-966, + 8959985196801796.,6981135112515259.,-.497274494203014242736,-43,-966, + 8959985196801860.,6981135112550467.,-.472197775215390390566,-43,-966, + 8959985196801868.,6981135112554868.,-.469063172856900627328,-43,-966, + 8962426859346884.,8462280614249243.,-.437474700357803561752,-43,-966, + 8962426859389487.,8462280642658721.,-.498982344711941694791,-43,-966, + 8962426859395412.,8462280646609761.,-.499277761791363496510,-43,-966, + 8962426859395545.,8462280646698451.,-.487448877650156124197,-43,-966, + 8962426859395659.,8462280646774471.,-.477309094272951141460,-43,-966, + 8962426859395672.,8462280646783139.,.471215661245181204642,-43,-966, + 8962426859395995.,8462280646998529.,.499948976753894358161,-43,-966, + 8966012136681064.,5612507118204378.,-.499073415351578362769,-43,-967, + 8966012136686995.,5612507120827511.,.499830214936367260632,-43,-967, + 8966012136688336.,5612507121420602.,.495199907753424920148,-43,-967, + 8966012136688347.,5612507121425468.,-.477992177142745521103,-43,-967, + 8966012136688376.,5612507121438294.,-.498225835291193659034,-43,-967, + 8966012136688823.,5612507121635991.,-.499754720361971226319,-43,-967, + 8969275689044218.,7258484290366882.,-.499867904092405396679,-43,-967, + 8969275689045848.,7258484291299211.,-.499815033706306207701,-43,-967, + 8969275689046425.,7258484291629244.,-.473387251231202209333,-43,-967, + 8969275689046426.,7258484291629816.,-.492405560939094030653,-43,-967, + 8969275689046479.,7258484291660130.,.499624089042216970722,-43,-967, + 8969275689056890.,7258484297615025.,-.497530463376002095639,-43,-967, + 8973743112284807.,5160659834998532.,.357591355992872660335,-43,-968, + 8973743112284861.,5160659835020492.,.474144632853348268907,-43,-968, + 8973743112284873.,5160659835025373.,-.499954626265140030622,-43,-968, + 8973743112294448.,5160659838919227.,-.498517615716866265899,-43,-968, + 8973743112330586.,5160659853615425.,-.466415385599738680579,-43,-968, + 8977737720437900.,7069900481835974.,-.499708206513041578724,-43,-968, + 8977737720441351.,7069900483758595.,.499886449073245633805,-43,-968, + 8977737720441509.,7069900483846621.,-.499829821114464068968,-43,-968, + 8977737720441559.,7069900483874477.,-.487081577060528482781,-43,-968, + 8977737720441567.,7069900483878933.,.474958152173372018515,-43,-968, + 8978413913667608.,7456838920238987.,-.499959468707162809898,-43,-968, + 8978413913668808.,7456838920944120.,.499053232228349751710,-43,-968, + 8978413913668826.,7456838920954698.,-.490961069664348520616,-43,-968, + 8978413913668911.,7456838921004645.,-.499361737013918924882,-43,-968, + 8978413913673917.,7456838923946229.,-.499403929539395298213,-43,-968, + 8979652206164545.,8221158654736991.,-.498509752988348213604,-43,-968, + 8979652206164564.,8221158654749299.,.487495010138994971399,-43,-968, + 8979652206164583.,8221158654761608.,.473499791695752163411,-43,-968, + 8979652206164690.,8221158654830927.,.499948116176547712117,-43,-968, + 8979652206165333.,8221158655247490.,-.499980951334568148369,-43,-968, + 8980869029263653.,4524249542216467.,-.499170425784297920192,-43,-969, + 8980869029270909.,4524249544803365.,.499951633614558753690,-43,-969, + 8980869029271312.,4524249544947042.,.497878975468072373418,-43,-969, + 8980869029271314.,4524249544947756.,-.464910455625936800871,-43,-969, + 8980869029271339.,4524249544956669.,-.499778334819233291783,-43,-969, + 8982476667097608.,5135290058826667.,.428075595980660428052,-43,-969, + 8982476667097629.,5135290058835165.,.490584670691631628559,-43,-969, + 8982476667097632.,5135290058836379.,.499514539655476427806,-43,-969, + 8982476667097744.,5135290058881702.,.499563186335321230518,-43,-969, + 8982476667098752.,5135290059289610.,-.499980993035111894745,-43,-969, + 8990158661607529.,4703671901737740.,-.498919348564301519459,-43,-970, + 8990158661607564.,4703671901750713.,-.490129428762040177996,-43,-970, + 8990158661607637.,4703671901777770.,.499632519108048699611,-43,-970, + 8990158661609003.,4703671902284088.,.499864250768466869691,-43,-970, + 8990158661610369.,4703671902790407.,-.499849515913109909243,-43,-970, + 8990158661620039.,4703671906374664.,-.497728846339486117690,-43,-970, + 8994909371864365.,6839451622330989.,-.457650865066260233554,-43,-970, + 8994909371897599.,6839451640242802.,-.497218880058206183049,-43,-970, + 8994909371908812.,6839451646286165.,.499803864638581488383,-43,-970, + 8994909371909015.,6839451646395574.,.479733181798881302743,-43,-970, + 8994909371909040.,6839451646409048.,.492039868994003149522,-43,-970, + 8994909371909065.,6839451646422523.,-.495653417266494397332,-43,-970, + 8994909371909217.,6839451646504444.,.499171973589693187749,-43,-970, + 8994909371910356.,6839451647118320.,.499901358429171528692,-43,-970, + 8994909371913444.,6839451648782631.,-.499599909487883532003,-43,-970, + 8995529652246672.,7182063315994533.,-.499005134170069313918,-43,-970, + 8995529652253335.,7182063319765517.,-.493558641838429570061,-43,-970, + 8995529652253359.,7182063319779100.,-.480478263461969684531,-43,-970, + 8995529652253554.,7182063319889462.,-.499199236863164234602,-43,-970, + 8995529652257299.,7182063322008978.,-.499434539853491084104,-43,-970, + 8995529652258904.,7182063322917342.,-.499343905787051022042,-43,-970, + 8997421512909510.,8336709289986388.,-.499891064422357859967,-43,-970, + 8997421512909642.,8336709290073104.,.498359456096568316440,-43,-970, + 8997421512910660.,8336709290741877.,-.499950923850713228925,-43,-970, + 8997421512922669.,8336709298631153.,-.495616048077816550061,-43,-970, + 8999158423446624.,4779772305988671.,-.499816935390269434721,-43,-971, + 8999158423446731.,4779772306028973.,-.496558076593852151391,-43,-971, + 8999158423446754.,4779772306037636.,-.449128557900034527407,-43,-971, + 8999158423446919.,4779772306099783.,.499822797429635945296,-43,-971, + 8999158423455205.,4779772309220741.,-.499071752815968489045,-43,-971, + 8999158423480063.,4779772318583612.,-.483528411993507582356,-43,-971, + 9000781172713929.,5431787826008698.,.499932794070619481143,-43,-971, + 9000781172714251.,5431787826146526.,-.495824777048767613882,-43,-971, + 9000781172714279.,5431787826158510.,.461066034216995088432,-43,-971, + 9000781172714280.,5431787826158938.,.495240706536997652445,-43,-971, + 9000781172714485.,5431787826246686.,-.498950755657214561378,-43,-971, + 9000781172745268.,5431787839422862.,-.483818282588662140967,-43,-971, + 9000781172763176.,5431787847088098.,-.459659759391467863297,-43,-971 }; +#define pow2_x(x) pow(2.0,x) +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/powx_275.c b/src/regress/lib/libm/fpaccuracy/powx_275.c new file mode 100644 index 000000000..25c6e5c1a --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/powx_275.c @@ -0,0 +1,1096 @@ +/* $OpenBSD: powx_275.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:41:27. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1063 +#define F powx_275 +#define Fs "powx_275" +#define Fn fpaccuracy_powx_275 + /* 4 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + 0.,0.,0.000000000000000000000,0,0, + 5794623555225975.,4503599627370498.,-.401234208872365203239,-424,1074, + 5794623555225976.,4503599627370500.,-.263925571437350333251,-424,1074, + 5794623555225987.,4503599627370523.,.246469440347855838027,-424,1074, + 5794623555226038.,4503599627370632.,.249209949534832220514,-424,1074, + 5794623555226231.,4503599627371045.,-.250223025487490151514,-424,1074, + 5794623555228059.,4503599627374952.,-.250033792900379646585,-424,1074, + 5794623555243932.,4503599627408877.,.249968315751961221052,-424,1074, + 5794623555460863.,4503599627872526.,-.249986566955736393547,-424,1074, + 5801879526975853.,4519124875655536.,.499880787565182862235,-424,1074, + 5801879526975860.,4519124875655551.,.493841529406561781089,-424,1074, + 5801879526976184.,4519124875656246.,-.499975562472112620580,-424,1074, + 5801879526990093.,4519124875686039.,-.499981458213562627075,-424,1074, + 5801879527031820.,4519124875775418.,-.499998395490629630402,-424,1074, + 5801934240157729.,4519242071951303.,-.499875835268300070178,-424,1074, + 5801934240158419.,4519242071952781.,-.499354530606754548166,-424,1074, + 5801934240159109.,4519242071954259.,-.498833225637607189318,-424,1074, + 5801934240159130.,4519242071954303.,.483791335822798916001,-424,1074, + 5801934240159151.,4519242071954348.,.466415897283489945517,-424,1074, + 5801934240161355.,4519242071959069.,.499965111218282449381,-424,1074, + 5801934240172923.,4519242071983849.,-.499990687226544597629,-424,1074, + 5801934240192088.,4519242072024900.,.499996287520134175196,-424,1074, + 5802107242938487.,4519612658721711.,.499961257097487513073,-424,1074, + 5802107242939085.,4519612658722993.,-.499411545891042693031,-424,1074, + 5802107242939205.,4519612658723250.,-.442429499640171242420,-424,1074, + 5802107242939233.,4519612658723310.,-.462467022180295849209,-424,1074, + 5802107242939282.,4519612658723415.,-.497532686624295041435,-424,1074, + 5802107242940084.,4519612658725132.,.499963989431139588891,-424,1074, + 5802107242956054.,4519612658759342.,.499991403397868416777,-424,1074, + 5802107242960845.,4519612658769605.,.499999659720415380799,-424,1074, + 5802794815336015.,4521085688828972.,.499945910601530444661,-424,1074, + 5802794815336541.,4521085688830100.,-.499934835149346513509,-424,1074, + 5802794815337067.,4521085688831227.,-.499815580721446926447,-424,1074, + 5802794815337088.,4521085688831271.,.494485758337370542094,-424,1074, + 5802794815337221.,4521085688831556.,.458394239049831818578,-424,1074, + 5802794815337228.,4521085688831571.,.456494685403435871841,-424,1074, + 5802794815361284.,4521085688883113.,.499971655606520407692,-424,1074, + 5802794815386553.,4521085688937254.,.499997813198152338440,-424,1074, + 5804194156717762.,4524084530449935.,.499974753256584775634,-424,1074, + 5804194156719567.,4524084530453804.,.499526058059125778431,-424,1074, + 5804194156719644.,4524084530453970.,-.451739620304132557150,-424,1074, + 5804194156719679.,4524084530454045.,-.429587655922528737278,-424,1074, + 5804194156728822.,4524084530473642.,.499995523793499172498,-424,1074, + 5808456655226878.,4533227025750316.,.499110775101091766824,-424,1074, + 5808456655226919.,4533227025750404.,.495178834489402757759,-424,1074, + 5808456655226960.,4533227025750492.,.491246893878800735867,-424,1074, + 5808456655226967.,4533227025750508.,-.485034169152169024060,-424,1074, + 5808456655227384.,4533227025751402.,.499365361774368640102,-424,1074, + 5808456655228649.,4533227025754118.,-.499998170818110303991,-424,1074, + 5809094531300835.,4534596195999605.,-.499960166168727159096,-424,1074, + 5809094531303917.,4534596196006221.,-.499849972374870091181,-424,1074, + 5809094531305083.,4534596196008724.,-.496563635288669029971,-424,1074, + 5809094531305090.,4534596196008739.,-.469957285063369634862,-424,1074, + 5809094531305233.,4534596196009046.,-.497856130453889157431,-424,1074, + 5809094531305458.,4534596196009529.,-.499794873174437344859,-424,1074, + 5809094531317861.,4534596196036153.,.499999728744809380773,-424,1074, + 5810367796078526.,4537329984316694.,-.499168510319037666546,-424,1074, + 5810367796078587.,4537329984316824.,.497204108782836747668,-424,1074, + 5810367796078614.,4537329984316882.,.479205104123779056229,-424,1074, + 5810367796078621.,4537329984316898.,-.488424267454418191960,-424,1074, + 5810367796078804.,4537329984317291.,-.499306410130330364470,-424,1074, + 5810367796080194.,4537329984320276.,-.499995908436995106995,-424,1074, + 5810378327492973.,4537352600370448.,.499882091593123157484,-424,1074, + 5810378327493590.,4537352600371774.,-.499818314992044455782,-424,1074, + 5810378327493929.,4537352600372501.,.498725546000328898171,-424,1074, + 5810378327493990.,4537352600372632.,.495513674387378384236,-424,1074, + 5810378327494017.,4537352600372690.,.477698583674217856793,-424,1074, + 5810378327494024.,4537352600372706.,-.489883106510598645071,-424,1074, + 5810378327499821.,4537352600385154.,.499965761315843957161,-424,1074, + 5810378327503245.,4537352600392508.,-.499992392448533821996,-424,1074, + 5810378327526596.,4537352600442654.,-.499998863312403744461,-424,1074, + 5810513487463212.,4537642860737116.,.499999490454089086211,-424,1074, + 5810513487510835.,4537642860839390.,.499994134541686063194,-424,1074, + 5810513487514135.,4537642860846477.,.499972819496912254150,-424,1074, + 5810513487517245.,4537642860853156.,.460558798735090922833,-424,1074, + 5810513487517252.,4537642860853171.,.493589056573229937439,-424,1074, + 5810513487517435.,4537642860853564.,.499951511495823132333,-424,1074, + 5811482244950417.,4539723644347390.,.496999572130934813680,-424,1074, + 5811482244950424.,4539723644347406.,-.465583729294438567361,-424,1074, + 5811482244950444.,4539723644347448.,.498463980918955002598,-424,1074, + 5811482244950471.,4539723644347506.,.499928389707446769863,-424,1074, + 5811482244956618.,4539723644360711.,.499992136162537770421,-424,1074, + 5812749711131041.,4542446937848432.,-.498025114544756110430,-424,1074, + 5812749711131081.,4542446937848517.,.462869125662462112664,-424,1074, + 5812749711131088.,4542446937848533.,-.493974382301168268491,-424,1074, + 5812749711131249.,4542446937848878.,.498624934544082853491,-424,1074, + 5812749711131759.,4542446937849975.,-.499973502667710421809,-424,1074, + 5812749711144596.,4542446937877562.,-.499989405060775914039,-424,1074, + 5812749711157433.,4542446937905148.,.499994799162663465041,-424,1074, + 5814845598876774.,4546952468628283.,-.499974749041045529588,-424,1074, + 5814845598877007.,4546952468628784.,-.461770942485408254575,-424,1074, + 5814845598877020.,4546952468628811.,.493150299941477568449,-424,1074, + 5814845598877040.,4546952468628855.,-.499278557863099908720,-424,1074, + 5814845598934229.,4546952468751833.,-.499974948489634398005,-424,1074, + 5820335265434354.,4558767083799682.,.499998381711642489921,-424,1074, + 5820335265456617.,4558767083847635.,.499977901699774762110,-424,1074, + 5820335265461957.,4558767083859137.,.499703531639376218298,-424,1074, + 5820335265463737.,4558767083862971.,.499612079056432983586,-424,1074, + 5820335265463815.,4558767083863140.,-.493650355335666821310,-424,1074, + 5820335265463867.,4558767083863252.,-.489158644928211059445,-424,1074, + 5820335265477990.,4558767083893672.,-.499996540016768841189,-424,1074, + 5821513246291288.,4561304824446578.,-.499998606527450247829,-424,1074, + 5821513246292374.,4561304824448917.,.499290562884082365750,-424,1074, + 5821513246292736.,4561304824449697.,.499053619524353170140,-424,1074, + 5821513246292807.,4561304824449850.,.482432561582539524502,-424,1074, + 5821513246292820.,4561304824449878.,.493473776325941385962,-424,1074, + 5821513246292833.,4561304824449907.,-.495485008930547287708,-424,1074, + 5822657381594805.,4563770511580419.,.499997774911388972108,-424,1074, + 5822657381631611.,4563770511659752.,.499986418207514445092,-424,1074, + 5822657381635323.,4563770511667753.,.480694988467331159870,-424,1074, + 5822657381635336.,4563770511667782.,-.498629038614672800326,-424,1074, + 5822657381635722.,4563770511668613.,.499903695769557563232,-424,1074, + 5823087887139730.,4564698499026831.,-.499999170232184122243,-424,1074, + 5823087887148207.,4564698499045105.,-.499623899778199045510,-424,1074, + 5823087887148573.,4564698499045893.,.492252631762846409416,-424,1074, + 5823087887148618.,4564698499045990.,.499450565974703670021,-424,1074, + 5823087887150429.,4564698499049895.,-.499761458321543564354,-424,1074, + 5823087887153762.,4564698499057080.,-.499967790139125596849,-424,1074, + 5824379330264850.,4567483023283851.,.499996238781001378880,-424,1074, + 5824379330295351.,4567483023349628.,.499987855315693698687,-424,1074, + 5824379330304760.,4567483023369920.,-.499949037550427786160,-424,1074, + 5824379330305073.,4567483023370595.,-.499096687480396244259,-424,1074, + 5824379330305188.,4567483023370843.,-.495588635521786595849,-424,1074, + 5824379330305897.,4567483023372371.,.499952311090568137982,-424,1074, + 5824751900105899.,4568286534582424.,-.499134686580198465331,-424,1074, + 5824751900105912.,4568286534582452.,-.460817104615423399429,-424,1074, + 5824751900106186.,4568286534583043.,-.499354223178532099674,-424,1074, + 5824751900107047.,4568286534584899.,.499987167346713399274,-424,1074, + 5824751900111588.,4568286534594693.,.499997923697665721558,-424,1074, + 5824972220600412.,4568761736155453.,-.499997846848843599280,-424,1074, + 5824972220622765.,4568761736203666.,.499976349170448445244,-424,1074, + 5824972220622988.,4568761736204147.,.496799785942881476361,-424,1074, + 5824972220623001.,4568761736204176.,-.463026650477462461427,-424,1074, + 5824972220623039.,4568761736204258.,-.499442387705532204290,-424,1074, + 5824972220626225.,4568761736211130.,-.499982879341415683898,-424,1074, + 5825862576983018.,4570682435130607.,-.499940837998616820142,-424,1074, + 5825862576984675.,4570682435134181.,.499797153123777868000,-424,1074, + 5825862576984910.,4570682435134689.,-.484548997659266214612,-424,1074, + 5825862576984948.,4570682435134771.,-.499039013527205348031,-424,1074, + 5825862576987297.,4570682435139838.,.499986060032112734095,-424,1074, + 5825862577013936.,4570682435197312.,.499998628075704230326,-424,1074, + 5828223656670358.,4575778302862388.,-.499992544228967472078,-424,1074, + 5828223656674514.,4575778302871360.,.486169988128034412748,-424,1074, + 5828223656674533.,4575778302871402.,-.491997218748374644240,-424,1074, + 5828223656674709.,4575778302871781.,.499717075460223856280,-424,1074, + 5828223656675671.,4575778302873858.,.499882706659804512537,-424,1074, + 5828223656718634.,4575778302966618.,-.499996085767847514755,-424,1074, + 5831435428574152.,4582716003303659.,-.485624266825245951081,-424,1074, + 5831435428574214.,4582716003303793.,-.495787950601097040031,-424,1074, + 5831435428574245.,4582716003303859.,.499130207511912298772,-424,1074, + 5831435428574636.,4582716003304704.,.499549556668213442517,-424,1074, + 5831435428575027.,4582716003305549.,.499968905923665394672,-424,1074, + 5831435428591753.,4582716003341697.,-.499995104442296956418,-424,1074, + 5834230164143656.,4588758313166480.,-.499998661496710233747,-424,1074, + 5834230164174760.,4588758313233756.,-.437856116520859289507,-424,1074, + 5834230164174778.,4588758313233794.,.495050216152168727956,-424,1074, + 5834230164174821.,4588758313233888.,-.498562433572524574921,-424,1074, + 5834230164180768.,4588758313246751.,-.498897954871572064725,-424,1074, + 5834230164199548.,4588758313287371.,-.499957345177485009640,-424,1074, + 5834230164200174.,4588758313288725.,-.499992654246929471492,-424,1074, + 5836124494713731.,4592856799259171.,-.499999193361049167274,-424,1074, + 5836124494754159.,4592856799346663.,.499993668914830329789,-424,1074, + 5836124494765300.,4592856799370775.,-.499884434995442970320,-424,1074, + 5836124494765434.,4592856799371064.,.498680894825724408201,-424,1074, + 5836124494765501.,4592856799371209.,.497963559740677735029,-424,1074, + 5836124494765525.,4592856799371261.,.438005111352712942355,-424,1074, + 5836124494768102.,4592856799376838.,.499966717869843420581,-424,1074, + 5836438322751220.,4593536007937139.,-.499997575478954936448,-424,1074, + 5836438322790515.,4593536008022188.,-.499992614774026588594,-424,1074, + 5836438322808383.,4593536008060860.,.499933626761892878238,-424,1074, + 5836438322809545.,4593536008063376.,-.499735366921110777330,-424,1074, + 5836438322809764.,4593536008063849.,.497745261734187526031,-424,1074, + 5836438322809983.,4593536008064323.,.495225890420610896496,-424,1074, + 5836438322810007.,4593536008064375.,.440155274388138719745,-424,1074, + 5836469067683191.,4593602551715529.,-.499974245163201725583,-424,1074, + 5836469067686093.,4593602551721810.,-.434360967827058360139,-424,1074, + 5836469067686117.,4593602551721862.,-.488952725676061073158,-424,1074, + 5836469067686123.,4593602551721874.,.497399334861746655775,-424,1074, + 5836469067686269.,4593602551722190.,.498632807955602350350,-424,1074, + 5836469067686415.,4593602551722506.,.499866281063291462736,-424,1074, + 5836469067696160.,4593602551743599.,-.499995362767016359008,-424,1074, + 5836492929401685.,4593654198013140.,-.499992926924190532535,-424,1074, + 5836492929412603.,4593654198036771.,-.498955697869898812403,-424,1074, + 5836492929412749.,4593654198037087.,-.495461336158536267622,-424,1074, + 5836492929412755.,4593654198037099.,.490983637610719767614,-424,1074, + 5836492929412785.,4593654198037164.,.423208506457350387992,-424,1074, + 5836492929413120.,4593654198037889.,.499719541951068763976,-424,1074, + 5836492929413710.,4593654198039167.,-.499858037151563221323,-424,1074, + 5836492929418284.,4593654198049067.,-.499973024089613164312,-424,1074, + 5838868030776118.,4598796715873573.,-.499998275535968609328,-424,1074, + 5838868030778673.,4598796715879106.,.499957641265896323783,-424,1074, + 5838868030781228.,4598796715884640.,.499913562305551385473,-424,1074, + 5838868030781692.,4598796715885646.,-.499703052753503385747,-424,1074, + 5838868030781813.,4598796715885908.,-.419861695881703600082,-424,1074, + 5838868030781849.,4598796715885986.,-.445694019455201344239,-424,1074, + 5838868030781921.,4598796715886142.,-.497358666599672864275,-424,1074, + 5839765509705727.,4600740871007861.,.499998510584665543108,-424,1074, + 5839765509719316.,4600740871037302.,.499963140977539334191,-424,1074, + 5839765509720553.,4600740871039982.,.499739160456376445827,-424,1074, + 5839765509720763.,4600740871040437.,.471406876068807307187,-424,1074, + 5839765509721147.,4600740871041269.,.419599270405582962743,-424,1074, + 5839765509721153.,4600740871041282.,.418789776567854697409,-424,1074, + 5841959245140038.,4605495230860762.,-.499981673913169075705,-424,1074, + 5841959245171832.,4605495230929690.,-.499909716990253607658,-424,1074, + 5841959245173124.,4605495230932490.,.499527076419281460227,-424,1074, + 5841959245173255.,4605495230932775.,-.498208047408230261858,-424,1074, + 5841959245173320.,4605495230932915.,.418946280467751913945,-424,1074, + 5841959245173362.,4605495230933006.,.473107538481384273594,-424,1074, + 5841959245173380.,4605495230933045.,.496319506201863118062,-424,1074, + 5841959245174029.,4605495230934452.,.499906564708579864942,-424,1074, + 5841959245216421.,4605495231026357.,-.499996411054583507498,-424,1074, + 5844034950734967.,4609996668885862.,-.499941476055392428804,-424,1074, + 5844034950737684.,4609996668891756.,-.499836902749865448177,-424,1074, + 5844034950737873.,4609996668892165.,.498698159760047395252,-424,1074, + 5844034950737938.,4609996668892307.,-.496514649424302674263,-424,1074, + 5844034950737950.,4609996668892333.,-.464861629581113341315,-424,1074, + 5844034950752722.,4609996668924378.,-.499994131682261050889,-424,1074, + 5845241552768567.,4612614628905188.,.499997903837291118519,-424,1074, + 5845241552777968.,4612614628925589.,.499985853846428971466,-424,1074, + 5845241552806153.,4612614628986753.,.438360878440408316296,-424,1074, + 5845241552806171.,4612614628986792.,.499950048392181273372,-424,1074, + 5846751312614612.,4615891681566489.,.499992080725155529677,-424,1074, + 5846751312616202.,4615891681569942.,-.499863136541314563075,-424,1074, + 5846751312617792.,4615891681573394.,-.499718352164959454397,-424,1074, + 5846751312617868.,4615891681573559.,-.498453569977529080129,-424,1074, + 5846751312617903.,4615891681573634.,.488971000767944563516,-424,1074, + 5846751312642285.,4615891681626569.,.499996448946942476623,-424,1074, + 6092204591263861.,6146497604530337.,-.499994493275101261973,-57,65, + 6092204591309969.,6146497604658264.,-.499991180470747194712,-57,65, + 6092204591310071.,6146497604658546.,.499791946633200996871,-57,65, + 6092204591310479.,6146497604659678.,.498924455131911958962,-57,65, + 6092204591310488.,6146497604659703.,.469493554585584946777,-57,65, + 4690264875164174.,5035738396306293.,.499975033552533996091,-56,63, + 4690264875165249.,5035738396309468.,-.499828748877260009533,-56,63, + 4690264875166050.,5035738396311832.,.499387224298103436730,-56,63, + 4690264875166071.,5035738396311895.,-.496888012350712124865,-56,63, + 4690264875166324.,5035738396312642.,-.499632530033972850647,-56,63, + 4690264875169275.,5035738396321354.,.499975887492988907680,-56,63, + 4690264875276396.,5035738396637636.,-.499999558175007322753,-56,63, + 5794623555225974.,9007199254740991.,-.077085692614758855501,-56,63, + 5794623555225975.,4503599627370498.,-.401234208872365203239,-56,62, + 5794623555225976.,4503599627370500.,-.263925571437350333251,-56,62, + 5794623555225987.,4503599627370523.,.246469440347855838027,-56,62, + 5794623555226038.,4503599627370632.,.249209949534832220514,-56,62, + 5794623555226231.,4503599627371045.,-.250223025487490151514,-56,62, + 5794623555228059.,4503599627374952.,-.250033792900379646585,-56,62, + 5794623555243932.,4503599627408877.,.249968315751961221052,-56,62, + 5794623555460863.,4503599627872526.,-.249986566955736393547,-56,62, + 5842839436868889.,4607403699571492.,-.499719222984977756895,-56,62, + 5842839436868978.,4607403699571684.,.499261436055484566616,-56,62, + 5842839436869138.,4607403699572031.,.463721047826557119304,-56,62, + 5842839436869150.,4607403699572057.,.486055518710057844678,-56,62, + 5842839436869156.,4607403699572070.,.497222754151843280361,-56,62, + 5842839436869874.,4607403699573628.,-.499764737812350827008,-56,62, + 5842839436874799.,4607403699584308.,-.499992302496800204157,-56,62, + 5842839436918946.,4607403699680041.,.499999000401144913071,-56,62, + 5900554809886357.,4733645527396477.,-.499937352141593561326,-56,62, + 5900554809887007.,4733645527397910.,.499347943029033238477,-56,62, + 5900554809887657.,4733645527399344.,.498633238476104243881,-56,62, + 5900554809887662.,4733645527399356.,-.470603028480923784156,-56,62, + 5900554809889185.,4733645527402716.,-.499969942830329201956,-56,62, + 5900554809892013.,4733645527408954.,.499997471713800851156,-56,62, + 7368421503186009.,8720073939626903.,.499999638657185701311,-56,62, + 7368421503203682.,8720073939684420.,-.499682116090984026063,-56,62, + 7368421503203835.,8720073939684917.,.432080952440198507756,-56,62, + 7368421503203851.,8720073939684970.,-.496623563267913868581,-56,62, + 7368421503205309.,8720073939689715.,-.499822556339101835521,-56,62, + 7368421503206936.,8720073939695010.,-.499962994541165636862,-56,62, + 7368421503214454.,8720073939719477.,-.499997273074098508776,-56,62, + 7455738725683985.,9007199254728054.,.499995417880570788716,-56,62, + 7455738725687262.,9007199254738942.,-.499953976105533185166,-56,62, + 7455738725687743.,9007199254740540.,-.499641390264143371836,-56,62, + 7455738725687833.,9007199254740839.,-.497503900169834076786,-56,62, + 7455738725687879.,9007199254740991.,.325810816991918754397,-56,62, + 7455738725687880.,4503599627370497.,.324028394552074548797,-56,61, + 7455738725687886.,4503599627370507.,.290766310888773766211,-56,61, + 7455738725687892.,4503599627370517.,.257504227225487019894,-56,61, + 7956945734378106.,5385958377363938.,.499754832309596971139,-56,61, + 7956945734378438.,5385958377364556.,.498188237207625544281,-56,61, + 7956945734378539.,5385958377364745.,-.496264251052395688032,-56,61, + 7956945734378561.,5385958377364785.,.455439167346965477701,-56,61, + 7956945734378568.,5385958377364798.,.485526618655894674784,-56,61, + 7956945734379369.,5385958377366289.,.499819261424417029385,-56,61, + 7956945734383158.,5385958377373343.,-.499987447312811876686,-56,61, + 7956945734398480.,5385958377401864.,-.499997519670368091644,-56,61, + 4796518653536083.,4503599627370496.,-.051295777934376595639,-55,60, + 4796518653536084.,4503599627370499.,-.469235773614683680032,-55,60, + 4796518653536096.,4503599627370530.,-.484515721778295212116,-55,60, + 4796518653536108.,4503599627370561.,-.499795669941771087661,-55,60, + 4796518653538137.,4503599627375799.,.499953096701139095198,-55,60, + 4796518653541671.,4503599627384925.,-.499991624784745019495,-55,60, + 4796518653577535.,4503599627477528.,-.499995908687845688107,-55,60, + 5713480873007781.,7286014558745253.,-.499996658755256415360,-55,60, + 5713480873019685.,7286014558786999.,-.499984243103900100488,-55,60, + 5713480873035436.,7286014558842235.,.499864408087982925983,-55,60, + 5713480873035799.,7286014558843509.,-.499631172518666520614,-55,60, + 5713480873036000.,7286014558844213.,.384945654809610104209,-55,60, + 5713480873036016.,7286014558844269.,.495160725643576425963,-55,60, + 5713480873036162.,7286014558844782.,-.499126752983778157177,-55,60, + 5713480873037541.,7286014558849618.,-.499965334231885452715,-55,60, + 6171512184102595.,9007199254541332.,-.499999555344330257304,-55,60, + 6171512184144009.,9007199254707550.,-.499985022669456855317,-55,60, + 6171512184147104.,9007199254719972.,-.499935565359464487310,-55,60, + 6171512184152336.,9007199254740970.,.499824963679540170657,-55,60, + 6171512184152338.,9007199254740979.,-.473034455072515669253,-55,60, + 6171512184152341.,9007199254740991.,-.432323583200590893428,-55,60, + 6171512184152342.,4503599627370497.,.290623353711693154015,-55,59, + 7697218762743597.,8268008834612817.,.499998635743369922634,-55,59, + 7697218762753082.,8268008834640836.,-.499982459439956187103,-55,59, + 7697218762762567.,8268008834668854.,-.499963494203565494097,-55,59, + 7697218762766170.,8268008834679496.,.499938296195954034783,-55,59, + 7697218762766387.,8268008834680138.,-.497847246540764147253,-55,59, + 7940668094892133.,9007199254447133.,.000013061552442926380,-55,59, + 7940668094980555.,9007199254722953.,.000063332378720779959,-55,59, + 7940668094981929.,9007199254727239.,-.000071556879357264140,-55,59, + 7940668094984677.,9007199254735811.,-.000341331502004688182,-55,59, + 7940668094986051.,9007199254740097.,-.000476216866574068126,-55,59, + 7940668094986294.,9007199254740855.,.003866740223662201861,-55,59, + 7940668094986335.,9007199254740983.,-.102396382238591847126,-55,59, + 7940668094986337.,9007199254740989.,.136322489836449711196,-55,59, + 7940668094986338.,4503599627370496.,.127840962936985760772,-55,58, + 7940668094986344.,4503599627370505.,.485919271049558410131,-55,58, + 7940668094986428.,4503599627370636.,.499015584626874797536,-55,58, + 9004953932904849.,6364686498494171.,.499597999859120350549,-55,58, + 9004953932904991.,6364686498494448.,-.495649929159863965917,-55,58, + 9004953932905009.,6364686498494482.,.490867938993203084217,-55,58, + 9004953932906554.,6364686498497486.,-.499681710745793845522,-55,58, + 9004953932914120.,6364686498512191.,.499995551512811711886,-55,58, + 5072827470769305.,8835337534909137.,.499907140689544772477,-54,58, + 5072827470770099.,8835337534912940.,.499244027476561791381,-54,58, + 5072827470770118.,8835337534913032.,-.496993502927611889500,-54,58, + 5072827470770137.,8835337534913123.,-.493231033331189083486,-54,58, + 5072827470770370.,8835337534914239.,-.499722853494969071139,-54,58, + 5072827470772229.,8835337534923142.,.499984043776068487452,-54,58, + 5072827470785784.,8835337534988066.,.499998736299058108701,-54,58, + 5108489452273399.,9007199254703299.,-.000004963810200275892,-54,58, + 5108489452274080.,9007199254706601.,.000040615379002101375,-54,58, + 5108489452280209.,9007199254736319.,.000450862746108624266,-54,58, + 5108489452280890.,9007199254739621.,.000496449638485474310,-54,58, + 5108489452281128.,9007199254740775.,.003449239365489990544,-54,58, + 5108489452281161.,9007199254740935.,.012262021141787626672,-54,58, + 5108489452281168.,9007199254740969.,-.046474661511492452820,-54,58, + 5108489452281172.,9007199254740988.,.348532948400955472822,-54,58, + 5108489452281173.,4503599627370497.,-.401357574560464196606,-54,57, + 5381802350912964.,5197645946949783.,-.499995513983718993160,-54,57, + 5381802350944164.,5197645947032647.,-.434544484995477394774,-54,57, + 5381802350944170.,5197645947032663.,-.499147282793667878891,-54,57, + 5381802350944263.,5197645947032909.,.499509351338355285155,-54,57, + 5381802350944975.,5197645947034800.,.499977346231017670018,-54,57, + 5381802350962095.,5197645947080269.,.499994433901446154011,-54,57, + 6140654816900934.,7470433102230458.,-.499952321079925531009,-54,57, + 6140654816902025.,7470433102234107.,.463705183754833001058,-54,57, + 6140654816902028.,7470433102234118.,-.499731138411792824462,-54,57, + 6140654816927928.,7470433102320767.,-.499978857127078940330,-54,57, + 6140654816945924.,7470433102380973.,-.499996161859104716250,-54,57, + 6214190683270275.,7719034453620866.,.499995002550474064606,-54,57, + 6214190683283356.,7719034453665551.,-.499980738054787321205,-54,57, + 6214190683289376.,7719034453686114.,.499724694636824168986,-54,57, + 6214190683290280.,7719034453689203.,-.484372692526411507336,-54,57, + 6214190683290304.,7719034453689284.,.498350385701206313164,-54,57, + 6214190683290417.,7719034453689671.,-.499661787636313601029,-54,57, + 6483795374744825.,8675329373952739.,-.499778189357035759422,-54,57, + 6483795374744981.,8675329373953313.,-.497039620163013842380,-54,57, + 6483795374745006.,8675329373953404.,.490578740286992995527,-54,57, + 6483795374746279.,8675329373958089.,-.499894344778172742917,-54,57, + 6483795374747733.,8675329373963438.,.499989501900243686001,-54,57, + 6483795374782058.,8675329374089737.,.499999078190160484909,-54,57, + 6572914059951319.,9007199254174613.,.499998346307300167473,-54,57, + 6572914060097215.,9007199254724417.,.499970523916776238519,-54,57, + 6572914060101033.,9007199254738806.,-.499865416679894739475,-54,57, + 6572914060101613.,9007199254740991.,.209955211748525659053,-54,57, + 6572914060101614.,4503599627370497.,.489210209864433063823,-54,56, + 6572914060101616.,4503599627370501.,.257675417844775037415,-54,56, + 6572914060101642.,4503599627370550.,.247723121589403300501,-54,56, + 6572914060101737.,4503599627370729.,.249820500659197586721,-54,56, + 6853956391842224.,5053171960153468.,-.496282563213832395001,-54,56, + 6853956391842333.,5053171960153688.,.498455141690232793942,-54,56, + 6853956391842879.,5053171960154795.,.499618324146282279644,-54,56, + 6853956391843061.,5053171960155165.,-.499993948334073356845,-54,56, + 6853956391879167.,5053171960228369.,-.499997511269759646292,-54,56, + 7296490382839952.,6001902562721395.,-.499995031108701600664,-54,56, + 7296490382853406.,6001902562751829.,-.499493988209981312891,-54,56, + 7296490382853509.,6001902562752061.,.494563661003253077362,-54,56, + 7296490382853513.,6001902562752071.,-.457123420580582881622,-54,56, + 7296490382853551.,6001902562752157.,-.498150695626591545153,-54,56, + 7296490382854089.,6001902562753373.,.499936831437664883676,-54,56, + 7296490382859305.,6001902562765172.,.499982455131597320277,-54,56, + 7489511085214645.,6448703923648302.,-.499999165282018927064,-54,56, + 7489511085218065.,6448703923656399.,.499951948791760810812,-54,56, + 7489511085223070.,6448703923668251.,-.479651745409071366572,-54,56, + 7489511085223089.,6448703923668296.,-.490763128037972803789,-54,56, + 7489511085223108.,6448703923668340.,.498125489333325489061,-54,56, + 7489511085223195.,6448703923668546.,.499878632036031952819,-54,56, + 7562936006333671.,6624057162948083.,-.499942568478349078392,-54,56, + 7562936006335181.,6624057162951719.,.499940295948545778566,-54,56, + 7562936006335230.,6624057162951838.,-.478209200482538933939,-54,56, + 7562936006335274.,6624057162951944.,-.499404666664413476593,-54,56, + 7562936006342824.,6624057162970129.,-.499990325077018872428,-54,56, + 7562936006385569.,6624057163073085.,-.499994225169226635339,-54,56, + 7765625607324670.,7123782233096924.,-.499991073099893159720,-54,56, + 7765625607441240.,7123782233390996.,-.499032861486222526051,-54,56, + 7765625607441261.,7123782233391048.,.477822420349341247866,-54,56, + 7765625607441284.,7123782233391107.,-.499907509068563149590,-54,56, + 7765625607443574.,7123782233396884.,-.499974393084748831861,-54,56, + 8457137798722898.,9007199254616503.,-.499999864718288678046,-54,56, + 8457137798765281.,9007199254740637.,-.499642643842089601401,-54,56, + 8457137798765295.,9007199254740678.,-.495560700404496966114,-54,56, + 8457137798765393.,9007199254740965.,-.466987096338022476555,-54,56, + 8457137798765402.,9007199254740991.,-.107220132698972798671,-54,56, + 8457137798765403.,4503599627370497.,-.089178568369537679865,-54,55, + 8457137798765407.,4503599627370503.,-.231452576449739771698,-54,55, + 8457137798766504.,4503599627372109.,.249900707737835095488,-54,55, + 8457137798773364.,4503599627382155.,.249976859606026810059,-54,55, + 8457137798775079.,4503599627384667.,-.250004100198736596442,-54,55, + 8772260217975747.,4980260352256653.,.498576031726424918336,-54,55, + 8772260217975772.,4980260352256693.,-.470103566260346926997,-54,55, + 8772260217975788.,4980260352256718.,-.490058508971778749718,-54,55, + 8772260217976547.,4980260352257903.,-.499171103753722088516,-54,55, + 8772260217977600.,4980260352259547.,-.499955770525605559163,-54,55, + 8772260217989126.,4980260352277542.,-.499997599051341269052,-54,55, + 4763879177146146.,6250574324769432.,-.438408596674961711936,-53,55, + 4763879177146164.,6250574324769497.,-.490617611463746023466,-53,55, + 4763879177146187.,6250574324769579.,.498226425195654536547,-53,55, + 4763879177146991.,6250574324772480.,.499557098425792062267,-53,55, + 4763879177147259.,6250574324773448.,-.499999343640427960472,-53,55, + 5235202198127209.,8102049804079330.,-.499995678369347549282,-53,55, + 5235202198130921.,8102049804095128.,-.499981528111753947543,-53,55, + 5235202198182889.,8102049804316300.,-.499781366227760661172,-53,55, + 5235202198190313.,8102049804347896.,-.499752458030590897484,-53,55, + 5235202198191110.,8102049804351287.,.473849787986950237070,-53,55, + 5235202198191114.,8102049804351304.,.497556700139881978970,-53,55, + 5235202198191157.,8102049804351488.,-.497593994214664205583,-53,55, + 5325599447795869.,8492611657315659.,.499999713248809295247,-53,55, + 5325599447905475.,8492611657796321.,.499976603269260498503,-53,55, + 5325599447909287.,8492611657813039.,-.499640698258539230650,-53,55, + 5325599447909370.,8492611657813402.,.485414853908599356971,-53,55, + 5325599447909383.,8492611657813459.,.495122350032062438977,-53,55, + 5325599447910626.,8492611657818911.,-.499768596422703942692,-53,55, + 5440751171643860.,9007199254712590.,.499999746068344740153,-53,55, + 5440751171650098.,9007199254740990.,-.112720714454404268360,-53,55, + 5440751171650099.,4503599627370497.,.219961162456027470272,-53,54, + 5440751171650101.,4503599627370502.,-.227395798177511124308,-53,54, + 5440751171650119.,4503599627370543.,-.253608443879226684672,-53,54, + 5440751171650461.,4503599627371321.,.248351287833250142710,-53,54, + 5440751171650727.,4503599627371927.,-.250124476331172679639,-53,54, + 5440751171650765.,4503599627372013.,.250093271649567368019,-53,54, + 5440751171655343.,4503599627382434.,.250010391381180509054,-53,54, + 5589512544177990.,4850385081882150.,-.499996179206798678079,-53,54, + 5589512544198114.,4850385081930172.,.499987401836347799711,-53,54, + 5589512544198158.,4850385081930277.,.499589830987461937996,-53,54, + 5589512544198202.,4850385081930382.,.499192260140022529675,-53,54, + 5589512544198215.,4850385081930414.,-.478197931246444118351,-53,54, + 6506752823286480.,7366305871077176.,-.499999590733279153267,-53,54, + 6506752823293807.,7366305871099986.,.499988261906153921482,-53,54, + 6506752823323115.,7366305871191230.,.499940121978955469284,-53,54, + 6506752823324854.,7366305871196644.,.493249694352990874662,-53,54, + 6506752823324907.,7366305871196809.,.497071090215539002015,-53,54, + 6506752823324960.,7366305871196975.,-.499107513919560836545,-53,54, + 6506752823325216.,7366305871197772.,-.499517375369189514859,-53,54, + 6506752823325472.,7366305871198569.,-.499927236763943538168,-53,54, + 6662098319833407.,7860103262927456.,.499951867413699242510,-53,54, + 6662098319837145.,7860103262939585.,-.499587562545249563673,-53,54, + 6662098319837358.,7860103262940276.,-.417699359559893081153,-53,54, + 6662098319837374.,7860103262940327.,.494555153341976744640,-53,54, + 6662098319837464.,7860103262940620.,-.499013211580940160018,-53,54, + 6662098319838695.,7860103262944614.,-.499931624444766417519,-53,54, + 6662098319850821.,7860103262983956.,.499957417453333594944,-53,54, + 6662098319972719.,7860103263379457.,-.499996495711509372439,-53,54, + 6870251226833589.,8554066029353326.,-.499998934066742316718,-53,54, + 6870251226842042.,8554066029382268.,.499876443063054543073,-53,54, + 6870251226842667.,8554066029384408.,.494543677372850386770,-53,54, + 6870251226842700.,8554066029384521.,.486262107353876690723,-53,54, + 6870251226842707.,8554066029384545.,.454202380380277100567,-53,54, + 6870251226842759.,8554066029384724.,-.498241305707981955460,-53,54, + 6870251226843009.,8554066029385579.,.499625588131389077593,-53,54, + 6870251226845785.,8554066029395084.,.499939580986930137194,-53,54, + 6870251226849528.,8554066029407901.,-.499997268870135366504,-53,54, + 7000423551336091.,9007199254635622.,.499994875745671602838,-53,54, + 7000423551345340.,9007199254668349.,-.499990684651924079972,-53,54, + 7000423551363838.,9007199254733801.,-.499961578448769910038,-53,54, + 7000423551365573.,9007199254739939.,.499933047264850908920,-53,54, + 7000423551365870.,9007199254740990.,.383488496429134042746,-53,54, + 7000423551365871.,4503599627370497.,-.039091517022464247688,-53,53, + 7000423551365872.,4503599627370499.,-.269927282259495074484,-53,53, + 7000423551365874.,4503599627370502.,.268401187266444598715,-53,53, + 7000423551366043.,4503599627370801.,.257156862214737482070,-53,53, + 7000423551366147.,4503599627370985.,.250237277573811486577,-53,53, + 7012681319255917.,4525318872203478.,-.499962998930125984925,-53,53, + 7012681319258947.,4525318872208855.,-.495392848197860284822,-53,53, + 7012681319259018.,4525318872208981.,-.499576187851422720159,-53,53, + 7012681319259262.,4525318872209414.,-.499868228333970866909,-53,53, + 7012681319276475.,4525318872239960.,-.499978378299731130413,-53,53, + 7012681319307312.,4525318872294682.,.499998903571191820550,-53,53, + 7095605717278978.,4674002693828957.,-.499995950808485463089,-53,53, + 7095605717292451.,4674002693853362.,.493263646509421531458,-53,53, + 7095605717292467.,4674002693853391.,.476852465199144668484,-53,53, + 7095605717292504.,4674002693853459.,-.498598391580432522439,-53,53, + 7095605717293236.,4674002693854785.,-.499409936391188361996,-53,53, + 7095605717293724.,4674002693855669.,-.499950966132032090695,-53,53, + 7478367277406223.,5400532398039120.,-.499996484045279542833,-53,53, + 7478367277424196.,5400532398074813.,-.499870723571140414256,-53,53, + 7478367277424338.,5400532398075095.,-.498756949091088826896,-53,53, + 7478367277424479.,5400532398075375.,-.483566511041765691063,-53,53, + 7478367277424480.,5400532398075377.,-.497643174601666574232,-53,53, + 7478367277425972.,5400532398078339.,.499974794543813479298,-53,53, + 7478367277438546.,5400532398103311.,-.499992762190996087990,-53,53, + 8163125809842152.,6871843327117109.,.499984066108709672256,-53,53, + 8163125809843387.,6871843327119969.,-.485167530389539319911,-53,53, + 8163125809843406.,6871843327120012.,.499676291208707552319,-53,53, + 8163125809881080.,6871843327207227.,.499999532653574212728,-53,53, + 8576285361381307.,7871196698905416.,.499996885765339404568,-53,53, + 8576285361413320.,7871196698986215.,-.499984570199098589599,-53,53, + 8576285361415641.,7871196698992073.,-.499858255963592851066,-53,53, + 8576285361416101.,7871196698993233.,.499735929867041462522,-53,53, + 8576285361416164.,7871196698993393.,-.493797909891148052208,-53,53, + 8576285361416248.,7871196698993605.,-.485176362898887752477,-53,53, + 8576285361420743.,7871196699004949.,.499988567760847638810,-53,53, + 8675977383239664.,8125377234912493.,-.499724771687437114070,-53,53, + 8675977383239770.,8125377234912766.,-.499074890718463536073,-53,53, + 8675977383239843.,8125377234912954.,-.489193368915681982024,-53,53, + 8675977383239850.,8125377234912972.,-.460848565454995827773,-53,53, + 8675977383239876.,8125377234913039.,-.498425009743652964925,-53,53, + 8675977383241181.,8125377234916400.,-.499858078396239778079,-53,53, + 8675977383242698.,8125377234920307.,-.499991383909545100642,-53,53, + 8675977383250389.,8125377234940114.,.499991988010107554689,-53,53, + 8772776522318303.,8377121886572922.,.499996435979228794975,-53,53, + 8772776522342296.,8377121886635928.,-.499988727851801186703,-53,53, + 8772776522343066.,8377121886637950.,-.499821531433135290605,-53,53, + 8772776522346146.,8377121886646038.,-.499152742652675931798,-53,53, + 8772776522346400.,8377121886646704.,.498305008332187525564,-53,53, + 8772776522346408.,8377121886646726.,-.493901046754354413963,-53,53, + 8772776522346416.,8377121886646747.,-.486107101840862828287,-53,53, + 8772776522346531.,8377121886647049.,-.499069143705716487325,-53,53, + 9007199254740988.,9007199254740981.,.000000000000004274359,-53,53, + 9007199254740991.,9007199254740989.,.250000000000000267147,-53,53, + 4503599627370497.,4503599627370499.,-.249999999999999465705,-52,52, + 4503599627370498.,4503599627370502.,-.499999999999997862821,-52,52, + 5794623555225974.,9007199254740991.,-.077085692614758855501,-52,52, + 5794623555225975.,4503599627370498.,-.401234208872365203239,-52,51, + 5794623555225976.,4503599627370500.,-.263925571437350333251,-52,51, + 5794623555225987.,4503599627370523.,.246469440347855838027,-52,51, + 5794623555226038.,4503599627370632.,.249209949534832220514,-52,51, + 5794623555226231.,4503599627371045.,-.250223025487490151514,-52,51, + 5794623555228059.,4503599627374952.,-.250033792900379646585,-52,51, + 5794623555243932.,4503599627408877.,.249968315751961221052,-52,51, + 5794623555460863.,4503599627872526.,-.249986566955736393547,-52,51, + 7455738725683985.,9007199254728054.,.499995417880570788716,-52,51, + 7455738725687262.,9007199254738942.,-.499953976105533185166,-52,51, + 7455738725687743.,9007199254740540.,-.499641390264143371836,-52,51, + 7455738725687833.,9007199254740839.,-.497503900169834076786,-52,51, + 7455738725687879.,9007199254740991.,.325810816991918754397,-52,51, + 7455738725687880.,4503599627370497.,.324028394552074548797,-52,50, + 7455738725687886.,4503599627370507.,.290766310888773766211,-52,50, + 7455738725687892.,4503599627370517.,.257504227225487019894,-52,50, + 9007199254740826.,7574121564787246.,-.499962978579520695166,-52,50, + 9007199254740938.,7574121564787504.,.496132919559023347413,-52,50, + 9007199254740986.,7574121564787615.,.494459733048696054807,-52,50, + 9007199254740991.,7574121564787627.,.056785442787263158969,-52,50, + 4503599627370497.,7574121564787634.,-.005819131369591187094,-51,50, + 4503599627384757.,7574121564853586.,-.499970599789647155186,-51,50, + 4503599627434961.,7574121565085776.,-.499994362137668908665,-51,50, + 4796518653536083.,4503599627370496.,-.051295777934376595639,-51,49, + 4796518653536084.,4503599627370499.,-.469235773614683680032,-51,49, + 4796518653536096.,4503599627370530.,-.484515721778295212116,-51,49, + 4796518653536108.,4503599627370561.,-.499795669941771087661,-51,49, + 4796518653538137.,4503599627375799.,.499953096701139095198,-51,49, + 4796518653541671.,4503599627384925.,-.499991624784745019495,-51,49, + 4796518653577535.,4503599627477528.,-.499995908687845688107,-51,49, + 6171512184102595.,9007199254541332.,-.499999555344330257304,-51,49, + 6171512184144009.,9007199254707550.,-.499985022669456855317,-51,49, + 6171512184147104.,9007199254719972.,-.499935565359464487310,-51,49, + 6171512184152336.,9007199254740970.,.499824963679540170657,-51,49, + 6171512184152338.,9007199254740979.,-.473034455072515669253,-51,49, + 6171512184152341.,9007199254740991.,-.432323583200590893428,-51,49, + 6171512184152342.,4503599627370497.,.290623353711693154015,-51,48, + 7940668094892133.,9007199254447133.,.000013061552442926380,-51,48, + 7940668094980555.,9007199254722953.,.000063332378720779959,-51,48, + 7940668094981929.,9007199254727239.,-.000071556879357264140,-51,48, + 7940668094984677.,9007199254735811.,-.000341331502004688182,-51,48, + 7940668094986051.,9007199254740097.,-.000476216866574068126,-51,48, + 7940668094986294.,9007199254740855.,.003866740223662201861,-51,48, + 7940668094986335.,9007199254740983.,-.102396382238591847126,-51,48, + 7940668094986337.,9007199254740989.,.136322489836449711196,-51,48, + 7940668094986338.,4503599627370496.,.127840962936985760772,-51,47, + 7940668094986344.,4503599627370505.,.485919271049558410131,-51,47, + 7940668094986428.,4503599627370636.,.499015584626874797536,-51,47, + 5108489452273399.,9007199254703299.,-.000004963810200275892,-50,47, + 5108489452274080.,9007199254706601.,.000040615379002101375,-50,47, + 5108489452280209.,9007199254736319.,.000450862746108624266,-50,47, + 5108489452280890.,9007199254739621.,.000496449638485474310,-50,47, + 5108489452281128.,9007199254740775.,.003449239365489990544,-50,47, + 5108489452281161.,9007199254740935.,.012262021141787626672,-50,47, + 5108489452281168.,9007199254740969.,-.046474661511492452820,-50,47, + 5108489452281172.,9007199254740988.,.348532948400955472822,-50,47, + 5108489452281173.,4503599627370497.,-.401357574560464196606,-50,46, + 5868404969503300.,6594556693949959.,-.499997467149814455248,-50,46, + 5868404969532331.,6594556694039672.,.499809793645665196289,-50,46, + 5868404969532763.,6594556694041008.,-.498022974535858387216,-50,46, + 5868404969532785.,6594556694041075.,.488198504866906955637,-50,46, + 5868404969532796.,6594556694041109.,.481309244568456887347,-50,46, + 5868404969533782.,6594556694044157.,-.499855359912381788928,-50,46, + 5868404969539298.,6594556694061203.,-.499960777784651085045,-50,46, + 5868404969542056.,6594556694069725.,.499986523793892307817,-50,46, + 5888592265868254.,6657129087080110.,-.499997879698722449943,-50,46, + 5888592265916367.,6657129087229688.,.499972974819358040228,-50,46, + 5888592265916394.,6657129087229772.,.440550349789974918516,-50,46, + 5888592265932371.,6657129087279443.,.499984538487133801024,-50,46, + 5943141639584260.,6828096002239787.,.499520244875141579230,-50,46, + 5943141639584304.,6828096002239927.,-.483160906769983986591,-50,46, + 5943141639584329.,6828096002240006.,-.496047924749366555377,-50,46, + 5943141639584492.,6828096002240520.,.499928718039313650934,-50,46, + 5943141639586975.,6828096002248365.,.499990095600329073660,-50,46, + 5943141639635939.,6828096002403066.,.499993398226607914592,-50,46, + 6303973650799885.,8029619524061083.,.499957177620893549184,-50,46, + 6303973650800963.,8029619524064860.,-.499634562062589828504,-50,46, + 6303973650801323.,8029619524066121.,-.497642934989056174132,-50,46, + 6303973650801329.,8029619524066142.,-.480943074536762937740,-50,46, + 6303973650801377.,8029619524066310.,-.347344190917156839473,-50,46, + 6303973650801502.,8029619524066748.,-.499430431480585411036,-50,46, + 6303973650804915.,8029619524078703.,-.499993137953588208926,-50,46, + 6303973650824496.,8029619524147291.,-.499998297146083674617,-50,46, + 6421931254449700.,8449595918040786.,.497640282623353823750,-50,46, + 6421931254449721.,8449595918040862.,.481662056252698541354,-50,46, + 6421931254449886.,8449595918041459.,.498975991926965724718,-50,46, + 6421931254450072.,8449595918042133.,-.499688298735310838998,-50,46, + 6421931254450761.,8449595918044625.,.499883227011859503810,-50,46, + 6421931254455267.,8449595918060929.,.499983811871232845808,-50,46, + 6421931254476233.,8449595918136791.,-.499991765466078153533,-50,46, + 6572914059951319.,9007199254174613.,.499998346307300167473,-50,46, + 6572914060097215.,9007199254724417.,.499970523916776238519,-50,46, + 6572914060101033.,9007199254738806.,-.499865416679894739475,-50,46, + 6572914060101613.,9007199254740991.,.209955211748525659053,-50,46, + 6572914060101614.,4503599627370497.,.489210209864433063823,-50,45, + 6572914060101616.,4503599627370501.,.257675417844775037415,-50,45, + 6572914060101642.,4503599627370550.,.247723121589403300501,-50,45, + 6572914060101737.,4503599627370729.,.249820500659197586721,-50,45, + 6619016067721093.,4591000586801888.,-.499994999970589925465,-50,45, + 6619016067722454.,4591000586804484.,-.499732959226047417917,-50,45, + 6619016067722670.,4591000586804896.,-.496752356053587046055,-50,45, + 6619016067723048.,4591000586805617.,-.491536300445165357927,-50,45, + 6619016067723059.,4591000586805637.,.490096971015417932357,-50,45, + 6619016067725122.,4591000586809573.,-.499954025798136590393,-50,45, + 6787616684074364.,4919806245206315.,-.499991963602854803521,-50,45, + 6787616684083411.,4919806245224347.,.499693092116404692778,-50,45, + 6787616684084004.,4919806245225530.,-.498669541758861789529,-50,45, + 6787616684084006.,4919806245225533.,.487845255429048482379,-50,45, + 6787616684084054.,4919806245225629.,.164200387939511695983,-50,45, + 6787616684085339.,4919806245228190.,.499957581628507164596,-50,45, + 6787616684115891.,4919806245289088.,.499999684937303110152,-50,45, + 6792176746997089.,4928900968393166.,-.499997260057312827827,-50,45, + 6792176747008229.,4928900968415396.,.499988672145668153528,-50,45, + 6792176747028690.,4928900968456229.,-.499049567480032573152,-50,45, + 6792176747028841.,4928900968456530.,-.163232880016646921995,-50,45, + 6792176747028913.,4928900968456674.,-.479929558837924719213,-50,45, + 6792176747028918.,4928900968456683.,.498077616244029966160,-50,45, + 6792176747029145.,4928900968457136.,.499603364978311686318,-50,45, + 6792176747030509.,4928900968459858.,.499960727974804542953,-50,45, + 6935652144129278.,5220540683637435.,.499998093656542766236,-50,45, + 6935652144171448.,5220540683724725.,.496548079297940906463,-50,45, + 6935652144171462.,5220540683724754.,.475916153907916893273,-50,45, + 6935652144171591.,5220540683725022.,-.499906587181058458877,-50,45, + 6935652144174693.,5220540683731443.,-.499923195866054584359,-50,45, + 6935652144187101.,5220540683757127.,-.499989580349195626882,-50,45, + 7272069881158716.,5946823116905280.,.499957767652968474561,-50,45, + 7272069881162743.,5946823116914337.,-.398137457091666537397,-50,45, + 7272069881162791.,5946823116914445.,-.453540628329462622979,-50,45, + 7272069881162831.,5946823116914535.,-.499709937693340222020,-50,45, + 7272069881163048.,5946823116915022.,.499821559022714265245,-50,45, + 7272069881171495.,5946823116934019.,-.499982325503739179994,-50,45, + 7272069881201385.,5946823117001237.,-.499998365443452868569,-50,45, + 7274706301332130.,5952753900207502.,-.499472042154777232154,-50,45, + 7274706301332166.,5952753900207583.,-.489653678404533318576,-50,45, + 7274706301332430.,5952753900208177.,-.417652344214641499249,-50,45, + 7274706301332450.,5952753900208222.,-.412197697683566878422,-50,45, + 7274706301333045.,5952753900209561.,-.499921963285054811650,-50,45, + 7274706301337628.,5952753900219874.,-.499989703503406064867,-50,45, + 7274706301353211.,5952753900254939.,.499998250671448460076,-50,45, + 7641538687446296.,6815106478715312.,.499991834495328043334,-50,45, + 7641538687452518.,6815106478730572.,.499865382339198542722,-50,45, + 7641538687452982.,6815106478731711.,-.499501166741420220693,-50,45, + 7641538687453678.,6815106478733418.,-.498550990135613144639,-50,45, + 7641538687453700.,6815106478733471.,.458375595910960510403,-50,45, + 7641538687453720.,6815106478733521.,-.489872962228282083327,-50,45, + 7641538687477870.,6815106478792750.,.499993248561419317112,-50,45, + 7642555474072367.,6817600527310573.,-.499997005219315488650,-50,45, + 7642555474148773.,6817600527498009.,-.456376653893085340768,-50,45, + 7642555474148795.,6817600527498063.,-.486885256832491017065,-50,45, + 7642555474148806.,6817600527498089.,.497860441697908098188,-50,45, + 7642555474148870.,6817600527498247.,-.499982766851148905266,-50,45, + 7661357941794337.,6863825320053738.,-.499182886644935159366,-50,45, + 7661357941794406.,6863825320053907.,.498207181149540903242,-50,45, + 7661357941794447.,6863825320054009.,-.488850894507544869798,-50,45, + 7661357941794723.,6863825320054689.,-.499290623296479252757,-50,45, + 7661357941797039.,6863825320060395.,-.499937041444905972842,-50,45, + 7661357941797425.,6863825320061345.,.499955222490495880521,-50,45, + 7661357941815815.,6863825320106654.,-.499996147262936517170,-50,45, + 7952142228791108.,7604256952789567.,.499919648251137287398,-50,45, + 7952142228792812.,7604256952794048.,.499762906290969644076,-50,45, + 7952142228792947.,7604256952794404.,-.491446694672770586388,-50,45, + 7952142228793001.,7604256952794546.,-.487930535055313533269,-50,45, + 7952142228797365.,7604256952806021.,.499930962571298061496,-50,45, + 7952142228828650.,7604256952888291.,.499987874018613929176,-50,45, + 7952142228834907.,7604256952904745.,.499999324277379502243,-50,45, + 7975281835699572.,7665262100163193.,.499987563314242554540,-50,45, + 7975281835705442.,7665262100178708.,.499457310602587822861,-50,45, + 7975281835705470.,7665262100178783.,-.493730908612883412102,-50,45, + 7975281835705739.,7665262100179494.,-.499717728909778568719,-50,45, + 7975281835706913.,7665262100182597.,-.499823776851809680082,-50,45, + 7975281835709261.,7665262100188802.,.499964129662205085613,-50,45, + 7975281835737154.,7665262100262527.,-.499999818067679318022,-50,45, + 8134778399506418.,8094241347448823.,-.499990454537149537490,-50,45, + 8134778399507768.,8094241347452516.,.499959713915988919314,-50,45, + 8134778399521943.,8094241347491303.,.499436547444870716623,-50,45, + 8134778399523968.,8094241347496844.,.499361819032861731279,-50,45, + 8134778399524059.,8094241347497094.,-.497678576113176949680,-50,45, + 8134778399524063.,8094241347497104.,.447506461462933193118,-50,45, + 8134778399546626.,8094241347558844.,-.499992681230194566705,-50,45, + 8395085770602557.,8826622022349221.,.499999358959018699855,-50,45, + 8395085770611237.,8826622022374319.,-.499990056973311353343,-50,45, + 8395085770619917.,8826622022399416.,-.499979427495333450466,-50,45, + 8395085770623470.,8826622022409689.,-.499859856040489940468,-50,45, + 8395085770624188.,8826622022411764.,.496223976098000489697,-50,45, + 8395085770624234.,8826622022411897.,.498758594880695314472,-50,45, + 8395085770625044.,8826622022414239.,.499911664958837472209,-50,45, + 8457137798722898.,9007199254616503.,-.499999864718288678046,-50,45, + 8457137798765281.,9007199254740637.,-.499642643842089601401,-50,45, + 8457137798765295.,9007199254740678.,-.495560700404496966114,-50,45, + 8457137798765393.,9007199254740965.,-.466987096338022476555,-50,45, + 8457137798765402.,9007199254740991.,-.107220132698972798671,-50,45, + 8457137798765403.,4503599627370497.,-.089178568369537679865,-50,44, + 8457137798765407.,4503599627370503.,-.231452576449739771698,-50,44, + 8457137798766504.,4503599627372109.,.249900707737835095488,-50,44, + 8457137798773364.,4503599627382155.,.249976859606026810059,-50,44, + 8457137798775079.,4503599627384667.,-.250004100198736596442,-50,44, + 8472742745247061.,4526488915454581.,-.499942402312974558979,-50,44, + 8472742745247515.,4526488915455248.,-.499706367114082792015,-50,44, + 8472742745247888.,4526488915455795.,.498284912952954515266,-50,44, + 8472742745247920.,4526488915455843.,-.488482591168014279397,-50,44, + 8472742745247969.,4526488915455915.,-.499470331852645553831,-50,44, + 8472742745272453.,4526488915491886.,-.499956830972575474956,-50,44, + 8472742745348629.,4526488915603801.,-.499998943056433549425,-50,44, + 8714420965735435.,4890478770598941.,-.499998094570922305475,-50,44, + 8714420965793287.,4890478770688223.,-.499264525965738974632,-50,44, + 8714420965793368.,4890478770688348.,-.493351861561322473841,-50,44, + 8714420965793379.,4890478770688364.,.482759734839434115747,-50,44, + 8714420965793414.,4890478770688418.,.497660268842090929238,-50,44, + 8714420965793622.,4890478770688740.,-.499502271934287791615,-50,44, + 8714420965794292.,4890478770689774.,-.499977763767044203666,-50,44, + 8714420965798520.,4890478770696299.,-.499993252302668956601,-50,44, + 8743627225392581.,4935684581983408.,-.499997518607790312626,-50,44, + 8743627225396879.,4935684581990079.,.482054433370665269787,-50,44, + 8743627225396888.,4935684581990093.,.453166222015078381507,-50,44, + 8743627225396908.,4935684581990125.,-.499918692108357935215,-50,44, + 8897696383647864.,5178556948374555.,.499159474934102204743,-50,44, + 8897696383647869.,5178556948374564.,-.498189617465745341568,-50,44, + 8897696383647969.,5178556948374724.,-.445171465461043607319,-50,44, + 8897696383647999.,5178556948374772.,-.429266019859019241729,-50,44, + 8897696383648242.,5178556948375160.,.499568089527819628371,-50,44, + 8897696383648620.,5178556948375765.,.499976704166515859214,-50,44, + 8897696383658428.,5178556948391463.,.499997070093012807048,-50,44, + 8979216647864350.,5310080971201311.,.499999774070088865124,-50,44, + 8979216647917660.,5310080971288008.,.499984704693979320649,-50,44, + 8979216647922249.,5310080971295472.,-.499960275772045396856,-50,44, + 8979216647926030.,5310080971301620.,.465654902234749834760,-50,44, + 8979216647926046.,5310080971301646.,.486138859622877660888,-50,44, + 8979216647926054.,5310080971301659.,.496380838316972001448,-50,44, + 8979216647926252.,5310080971301981.,.499869811002270871565,-50,44, + 8979216647926838.,5310080971302935.,-.499905249563380100534,-50,44, + 4523144813466156.,5419874714790440.,-.499995484027231416870,-49,44, + 4523144813466864.,5419874714792772.,.499832043468986357009,-49,44, + 4523144813467030.,5419874714793320.,-.497383536149868003530,-49,44, + 4523144813467074.,5419874714793464.,.491306310222108869588,-49,44, + 4523144813467135.,5419874714793665.,.498353597241886974412,-49,44, + 4612325947535165.,5718838972547393.,.499995866615750073032,-49,44, + 4612325947554868.,5718838972614575.,.499985704569392784468,-49,44, + 4612325947555998.,5718838972618429.,-.499964109320768487230,-49,44, + 4612325947562778.,5718838972641547.,-.499662957970896527262,-49,44, + 4612325947564811.,5718838972648478.,.490692841331761179610,-49,44, + 4612325947564816.,5718838972648496.,-.460634370173446019783,-49,44, + 4612325947564833.,5718838972648554.,-.495146889290908573006,-49,44, + 4612325947564894.,5718838972648761.,.498661130349509425287,-49,44, + 4612325947565038.,5718838972649253.,-.499562560972047934824,-49,44, + 4802115455518516.,6389509738921133.,.488722298975452526489,-49,44, + 4802115455518528.,6389509738921177.,.397250391961628306538,-49,44, + 4802115455518557.,6389509738921284.,-.490473383320987495652,-49,44, + 4802115455518733.,6389509738921928.,-.498728019494876438720,-49,44, + 4802115455518777.,6389509738922088.,.499208321468105169248,-49,44, + 4802115455520701.,6389509738929128.,.499879233373879493668,-49,44, + 4802115455521182.,6389509738930889.,-.499953037878412596564,-49,44, + 4802115455526998.,6389509738952169.,.499996072602847795113,-49,44, + 5059472696394693.,7375939554798564.,-.499916709111073569689,-49,44, + 5059472696394803.,7375939554799004.,.498948037514439199456,-49,44, + 5059472696394913.,7375939554799445.,.497812784156730847855,-49,44, + 5059472696394914.,7375939554799450.,-.493106627237353176184,-49,44, + 5059472696394934.,7375939554799530.,-.311494855118742453284,-49,44, + 5059472696396455.,7375939554805628.,-.499919583873299426792,-49,44, + 5059472696431695.,7375939554946908.,-.499976175034029061645,-49,44, + 5059472696445791.,7375939555003420.,-.499998329320300910521,-49,44, + 5079689563114601.,7457274269715831.,.499999643137234624765,-49,44, + 5079689563131583.,7457274269784391.,-.499945962004399488956,-49,44, + 5079689563132202.,7457274269786890.,-.499767314078172036990,-49,44, + 5079689563132229.,7457274269786999.,-.496528503898016463453,-49,44, + 5107897798587314.,7571709460771369.,-.499955703591511005479,-49,44, + 5107897798868529.,7571709461917733.,.499933544000819853149,-49,44, + 5107897798878755.,7571709461959419.,.499931597806561358239,-49,44, + 5107897798879775.,7571709461963578.,-.498895108941420383979,-49,44, + 5107897798881135.,7571709461969122.,-.497330715678429008865,-49,44, + 5222449517577989.,8047890943190293.,.499992189244824929046,-49,44, + 5222449517583809.,8047890943214957.,.499924087624960173556,-49,44, + 5222449517593641.,8047890943256624.,-.443833462065235146300,-49,44, + 5222449517593645.,8047890943256641.,-.492630759657190112519,-49,44, + 5222449517593666.,8047890943256730.,-.498816572014580921456,-49,44, + 5222449517593994.,8047890943258119.,.499805025532212173283,-49,44, + 5222449517636025.,8047890943436239.,-.499997471047048369019,-49,44, + 5270585385680732.,8253530120721969.,.499921956420404759398,-49,44, + 5270585385682390.,8253530120729109.,.498201404036825194854,-49,44, + 5270585385682439.,8253530120729321.,-.488580445762721854728,-49,44, + 5270585385682625.,8253530120730122.,-.499629916399140710033,-49,44, + 5270585385685347.,8253530120741843.,.499957943709759674593,-49,44, + 5270585385689962.,8253530120761717.,.499993961452542633417,-49,44, + 5270585385719013.,8253530120886823.,-.499995295674790222129,-49,44, + 5440751171643860.,9007199254712590.,.499999746068344740153,-49,44, + 5440751171650098.,9007199254740990.,-.112720714454404268360,-49,44, + 5440751171650099.,4503599627370497.,.219961162456027470272,-49,43, + 5440751171650101.,4503599627370502.,-.227395798177511124308,-49,43, + 5440751171650119.,4503599627370543.,-.253608443879226684672,-49,43, + 5440751171650461.,4503599627371321.,.248351287833250142710,-49,43, + 5440751171650727.,4503599627371927.,-.250124476331172679639,-49,43, + 5440751171650765.,4503599627372013.,.250093271649567368019,-49,43, + 5440751171655343.,4503599627382434.,.250010391381180509054,-49,43, + 5489113122559165.,4614545108579451.,-.499499761846116646333,-49,43, + 5489113122559351.,4614545108579881.,-.495641153443437322740,-49,43, + 5489113122559367.,4614545108579917.,.493938081689167020615,-49,43, + 5489113122559646.,4614545108580562.,.499725994344286591064,-49,43, + 5489113122560701.,4614545108583002.,-.499893188466271738368,-49,43, + 5489113122563292.,4614545108588992.,-.499905794143350654744,-49,43, + 5489113122581429.,4614545108630922.,-.499993895338771910110,-49,43, + 5503648895962153.,4648227533867779.,-.433274037614883296478,-49,43, + 5503648895962159.,4648227533867793.,-.497836701652630444061,-49,43, + 5503648895962252.,4648227533868009.,-.498557994234311498460,-49,43, + 5503648895962438.,4648227533868440.,.499999420621488524962,-49,43, + 5548511370765353.,4753168593815795.,-.499996692038437404431,-49,43, + 5548511370793981.,4753168593883237.,-.499993111167168124857,-49,43, + 5548511370794012.,4753168593883310.,-.470022448862571743159,-49,43, + 5548511370794026.,4753168593883343.,-.488745375563487712760,-49,43, + 7000423551336091.,9007199254635622.,.499994875745671602838,-49,43, + 7000423551345340.,9007199254668349.,-.499990684651924079972,-49,43, + 7000423551363838.,9007199254733801.,-.499961578448769910038,-49,43, + 7000423551365573.,9007199254739939.,.499933047264850908920,-49,43, + 7000423551365870.,9007199254740990.,.383488496429134042746,-49,43, + 7000423551365871.,4503599627370497.,-.039091517022464247688,-49,42, + 7000423551365872.,4503599627370499.,-.269927282259495074484,-49,42, + 7000423551365874.,4503599627370502.,.268401187266444598715,-49,42, + 7000423551366043.,4503599627370801.,.257156862214737482070,-49,42, + 7000423551366147.,4503599627370985.,.250237277573811486577,-49,42, + 5391944524843955.,7388738333997151.,-.499999489592096266144,-44,30, + 5391944524844607.,7388738333999608.,-.499974393507649082157,-44,30, + 5391944524844702.,7388738333999965.,.498495520842531336271,-44,30, + 5391944524844892.,7388738334000681.,.495435349576006708345,-44,30, + 5391944524844905.,7388738334000730.,.484699653648858333682,-44,30, + 5391944524844918.,7388738334000779.,.473963957721916657318,-44,30, + 5525041108958247.,7901200041274066.,.499991525887906924978,-44,30, + 5525041108962214.,7901200041289668.,-.499970562059058815495,-44,30, + 5525041108962422.,7901200041290486.,-.499464414377533350441,-44,30, + 5525041108963462.,7901200041294576.,-.496933675161535069104,-44,30, + 5525041108963566.,7901200041294985.,-.496680601165834569997,-44,30, + 5525041108963581.,7901200041295043.,.493740515276964736270,-44,30, + 5525041108985912.,7901200041382865.,-.499995754986962433209,-44,30, + 5561849956166468.,8046803259806519.,-.499997076410380970503,-44,30, + 5561849956171154.,8046803259825162.,.499935465012591972555,-44,30, + 5561849956178134.,8046803259852934.,-.454497019415200095312,-44,30, + 5561849956178136.,8046803259852942.,-.497177372553860125787,-44,30, + 5561849956178183.,8046803259853128.,.499834328689070674253,-44,30, + 5740281853541402.,8776810910236599.,-.499985718996622168381,-44,30, + 5740281853542081.,8776810910239453.,.499226912049509120253,-44,30, + 5740281853542291.,8776810910240336.,.488674117647349401739,-44,30, + 5740281853542296.,8776810910240358.,-.487767615552013019660,-44,30, + 5740281853542335.,8776810910240521.,.495986865494059930461,-44,30, + 5740281853542633.,8776810910241775.,-.499940433115170398445,-44,30, + 5740281853563008.,8776810910327445.,.499997054426356970710,-44,30, + 5802440503229527.,4520326585306423.,-.498399599826849285766,-44,29, + 5802440503229534.,4520326585306437.,.498098290796437616727,-44,29, + 5802440503229618.,4520326585306617.,.456072978278349951284,-44,29, + 5802440503229639.,4520326585306662.,.445566650149540392030,-44,29, + 5802440503229815.,4520326585307040.,-.499629242728328909280,-44,29, + 5802440503231529.,4520326585310711.,.499997119723521000660,-44,29, + 5810784377748907.,4538224641877859.,-.499997233427354549363,-44,29, + 5810784377789191.,4538224641964378.,.499949776361528313909,-44,29, + 5810784377849617.,4538224642094158.,.499872259174295131015,-44,29, + 5810784377850084.,4538224642095161.,.499573784266233128311,-44,29, + 5810784377850551.,4538224642096164.,.499275309499236677652,-44,29, + 5810784377850578.,4538224642096222.,.488551414816807522216,-44,29, + 5838743078966644.,4598526081681729.,-.499999922447928060634,-44,29, + 5838743078973113.,4598526081695740.,-.499985831197996295806,-44,29, + 5838743078992520.,4598526081737773.,-.499943394452474423475,-44,29, + 5838743078995233.,4598526081743648.,.499907974069704017924,-44,29, + 5838743078995764.,4598526081744799.,-.424190412144030626625,-44,29, + 5838743078995800.,4598526081744877.,-.452942845101048342981,-44,29, + 5838743078995860.,4598526081745006.,.499136433305791705882,-44,29, + 5854030530689175.,4631712589792234.,-.499999622327616398870,-44,29, + 5854030530690142.,4631712589794338.,-.499748882816558658493,-44,29, + 5854030530690523.,4631712589795166.,.480701512131971145175,-44,29, + 5854030530690529.,4631712589795180.,-.464488245427139374823,-44,29, + 5854030530690580.,4631712589795291.,-.498601184678633390850,-44,29, + 5945654788420645.,4833809671485538.,.499805178936501631386,-44,29, + 5945654788421290.,4833809671486981.,-.443733437470984546716,-44,29, + 5945654788421294.,4833809671486989.,.499252369559900699617,-44,29, + 5945654788422206.,4833809671489029.,-.499983627123397008079,-44,29, + 5945654788445744.,4833809671541653.,.499998042571028062663,-44,29, + 5948183590548371.,4839465536165579.,.499997275338976687181,-44,29, + 5948183590574305.,4839465536223605.,-.488234296315334778113,-44,29, + 5948183590574326.,4839465536223651.,.497392569638535935906,-44,29, + 5948183590575577.,4839465536226450.,.498307299128571889579,-44,29, + 5948183590577801.,4839465536231426.,.499933487432295516814,-44,29, + 5948183590577940.,4839465536231738.,-.499964875690616218826,-44,29, + 5948183590587750.,4839465536253687.,-.499986010731256754816,-44,29, + 6007857631791038.,4974155852717137.,-.440414991500531915895,-44,29, + 6007857631791045.,4974155852717152.,.497462706886210946111,-44,29, + 6007857631791753.,4974155852718764.,.499949915313211137608,-44,29, + 6007857631809460.,4974155852759081.,-.499992067495528267984,-44,29, + 6172151054084379.,5357237510440696.,.499996293502059472755,-44,29, + 6172151054089362.,5357237510452591.,-.499958711045402024985,-44,29, + 6172151054093244.,5357237510461857.,-.493903176151917202441,-44,29, + 6172151054093275.,5357237510461931.,-.499522001051185106189,-44,29, + 6172151054094345.,5357237510464485.,-.499913698788567421818,-44,29, + 6196275544945199.,5415017760409567.,.499999974136640902599,-44,29, + 6196275544965223.,5415017760457690.,.499991284819316549885,-44,29, + 6196275544974837.,5415017760480796.,-.499912910284080936752,-44,29, + 6196275544975080.,5415017760481379.,.493744598391285272856,-44,29, + 6196275544975204.,5415017760481677.,.498738553450949321110,-44,29, + 6196275544980042.,5415017760493305.,-.499965030509597522026,-44,29, + 6281897839648856.,5623287519186109.,-.499939722871248462508,-44,29, + 6281897839649391.,5623287519187426.,-.499572352103017613548,-44,29, + 6281897839649417.,5623287519187490.,-.495816180808345251686,-44,29, + 6281897839649469.,5623287519187618.,-.488303838217609783804,-44,29, + 6281897839651518.,5623287519192662.,-.499980952733485864382,-44,29, + 6281897839749490.,5623287519433838.,-.499992362523089434880,-44,29, + 6286473163651925.,5634557695316376.,-.499995125481234864710,-44,29, + 6286473163663992.,5634557695346118.,.499988111108874978867,-44,29, + 6286473163674794.,5634557695372744.,-.499115233192102155629,-44,29, + 6286473163674865.,5634557695372919.,-.496794953112903660238,-44,29, + 6286473163674880.,5634557695372955.,.475526232819763938072,-44,29, + 6286473163675192.,5634557695373724.,.499806900254251655028,-44,29, + 6286473163676059.,5634557695375861.,.499971447610389841626,-44,29, + 6305465183888185.,5681493472220351.,-.499105328141311622612,-44,29, + 6305465183888208.,5681493472220407.,.491846431637806268955,-44,29, + 6305465183888229.,5681493472220460.,-.472936744215724895281,-44,29, + 6305465183888298.,5681493472220630.,.499918535124808016274,-44,29, + 6305465183892387.,5681493472230762.,.499994442759938685414,-44,29, + 6305465183919022.,5681493472296761.,-.499999944512983143996,-44,29, + 6595692839622149.,6429934672570396.,-.499795245012896026918,-44,29, + 6595692839624352.,6429934672576301.,.498661217761151553352,-44,29, + 6595692839624371.,6429934672576352.,.435552126896777906610,-44,29, + 6595692839624399.,6429934672576428.,-.499556007008146796625,-44,29, + 6595692839628313.,6429934672586920.,.499971280483672881365,-44,29, + 6595692839636727.,6429934672609477.,.499977090741192853704,-44,29, + 6595692839670383.,6429934672699706.,-.499999164656843814691,-44,29, + 6629595552698622.,6521233393493861.,-.499974497076710581389,-44,29, + 6629595552699612.,6521233393496539.,-.499820089098550244833,-44,29, + 6629595552702087.,6521233393503234.,-.499434066091363185261,-44,29, + 6629595552702165.,6521233393503444.,.494517493492686043927,-44,29, + 6629595552702182.,6521233393503490.,.480378730838504135042,-44,29, + 6629595552702226.,6521233393503610.,-.497392184265479025958,-44,29, + 6629595552711353.,6521233393528298.,.499990978481090761595,-44,29, + 6629595552737310.,6521233393598513.,.499999494192119989681,-44,29, + 6720477275924846.,6770031984933178.,-.499983607067297726175,-44,29, + 6720477275925930.,6770031984936180.,.480983144487638499619,-44,29, + 6720477275925943.,6770031984936216.,.494592524354603456636,-44,29, + 6720477275926165.,6770031984936831.,.496229626716975949484,-44,29, + 6720477275926683.,6770031984938267.,-.499950467632562789555,-44,29, + 6720477275954164.,6770031985014397.,-.499998786281871967105,-44,29, + 6971310528846797.,7487814498639568.,.477619809405398491222,-44,29, + 6971310528846818.,7487814498639631.,-.493686230239934117286,-44,29, + 6971310528846883.,7487814498639822.,.499890313717061185916,-44,29, + 6971310528851553.,7487814498653616.,.499928172363723587781,-44,29, + 6971310528860893.,7487814498681205.,-.499996061830638962423,-44,29, + 6975349959700915.,7499752006952404.,.486357825540346186467,-44,29, + 6975349959700938.,7499752006952472.,.491449638895077889362,-44,29, + 6975349959700961.,7499752006952540.,.496541452250202003386,-44,29, + 6975349959700984.,7499752006952609.,-.498366734394281471463,-44,29, + 6975349959701169.,7499752006953155.,.499110894783927989067,-44,29, + 6975349959705492.,7499752006965937.,.499628690862846694277,-44,29, + 6975349959708636.,7499752006975234.,-.499994721463350379608,-44,29, + 7081598889495011.,7818105745969214.,-.499987754710906836657,-44,29, + 7081598889498538.,7818105745979922.,-.499811535698512585356,-44,29, + 7081598889498566.,7818105745980007.,-.491587851472811956732,-44,29, + 7081598889499510.,7818105745982872.,.499953502766443381622,-44,29, + 7121594379294885.,7940133289157588.,-.499993367103336818049,-44,29, + 7121594379309277.,7940133289201715.,-.499973190540149047350,-44,29, + 7121594379311865.,7940133289209650.,-.489130190595883300749,-44,29, + 7121594379311880.,7940133289209696.,-.497954516315655109744,-44,29, + 7121594379312788.,7940133289212480.,-.498787032903455624883,-44,29, + 7121594379314150.,7940133289216655.,.499964193379551542490,-44,29, + 7121594379342934.,7940133289304910.,-.499994879640003348162,-44,29, + 7175606840587144.,8106840822629895.,-.499929303273238457004,-44,29, + 7175606840587565.,8106840822631203.,-.499759991842884141629,-44,29, + 7175606840587593.,8106840822631289.,.493125378043232577639,-44,29, + 7175606840592907.,8106840822647800.,-.499986912101145630280,-44,29, + 7175606840646037.,8106840822812869.,-.499996269267745355851,-44,29, + 7225852774693333.,8263907506743708.,.499996895568554609040,-44,29, + 7225852774720432.,8263907506828937.,-.499876491162569701857,-44,29, + 7225852774720756.,8263907506829955.,.499792910453630206339,-44,29, + 7225852774721018.,8263907506830780.,-.494301585711835048226,-44,29, + 7225852774721039.,8263907506830846.,-.448026717081612796045,-44,29, + 7225852774721080.,8263907506830974.,.499462312149789232242,-44,29, + 7225852774726526.,8263907506848103.,-.499921744903500518571,-44,29, + 7225852774735667.,8263907506876852.,-.499989572477262409203,-44,29, + 7289491647830646.,8465601405792988.,.498652694907040482222,-44,29, + 7289491647830667.,8465601405793056.,-.433778700354984903770,-44,29, + 7289491647830677.,8465601405793088.,-.496841269527259103862,-44,29, + 7289491647835974.,8465601405810004.,.498915850695731229147,-44,29, + 7289491647856842.,8465601405876650.,.499946753766984765266,-44,29, + 7289491647857952.,8465601405880196.,-.499998401611036700549,-44,29, + 7340397650634917.,8629174763079288.,.499973749554137872329,-44,29, + 7340397650636038.,8629174763082912.,.498259262777415792318,-44,29, + 7340397650636111.,8629174763083148.,.494579372057480591100,-44,29, + 7340397650636124.,8629174763083191.,-.478678690673035936851,-44,29, + 7340397650636824.,8629174763085453.,.499733316337639903214,-44,29, + 7340397650643069.,8629174763105642.,.499994738453839135093,-44,29, + 7340397650647145.,8629174763118820.,-.499994747889270189850,-44,29, + 7547394028331349.,4657493086707718.,.492862927956186854075,-44,28, + 7547394028331382.,4657493086707774.,.494642619346500546564,-44,28, + 7547394028331481.,4657493086707942.,.499981693520012659356,-44,28, + 7547394028412956.,4657493086846207.,.499993791897177039455,-44,28, + 7698971732358935.,4919267023373549.,.487489915057292915955,-44,28, + 7698971732358939.,4919267023373557.,-.484047176100543844911,-44,28, + 7698971732358972.,4919267023373615.,-.499228178152453289685,-44,28, + 7698971732360553.,4919267023376393.,-.499263457766172736930,-44,28, + 7698971732387957.,4919267023424545.,-.499874812448812612041,-44,28, + 7698971732393227.,4919267023433805.,-.499992346270461910655,-44,28, + 7698971732393754.,4919267023434730.,.499995900957457123115,-44,28, + 7907184582625980.,5293836997716152.,.499996677604394662778,-44,28, + 7907184582627157.,5293836997718319.,.494673899304416684625,-44,28, + 7907184582627176.,5293836997718354.,.475896386320346649701,-44,28, + 7907184582627201.,5293836997718401.,-.496179288658468760447,-44,28, + 7907184582627308.,5293836997718598.,-.496663177564921150059,-44,28, + 7907184582628057.,5293836997719976.,.499949600220536171230,-44,28, + 8203203347810910.,5856861658382923.,.497333321043598392177,-44,28, + 8203203347810937.,5856861658382977.,-.490208045832017928426,-44,28, + 8203203347810938.,5856861658382978.,.473216347987409553368,-44,28, + 8203203347811074.,5856861658383245.,.498933907433449175855,-44,28, + 8203203347811156.,5856861658383406.,.499734200632599188345,-44,28, + 8203203347812441.,5856861658385930.,-.499919740939666429361,-44,28, + 8203203347814929.,5856861658390814.,.499972084659142196510,-44,28, + 8203203347823678.,5856861658407992.,.499993641488265873116,-44,28, + 8456356263809299.,6367433229746555.,-.499975567120362825438,-44,28, + 8456356263810162.,6367433229748342.,-.499707239950624990600,-44,28, + 8456356263810544.,6367433229749133.,-.498429718436396748917,-44,28, + 8456356263810643.,6367433229749337.,.499283565945294510375,-44,28, + 8456356263824168.,6367433229777344.,-.499987391924154010676,-44,28, + 8456356263839037.,6367433229808133.,-.499999121988219662963,-44,28, + 8463134721329837.,6381479119717622.,-.498938182949552871144,-44,28, + 8463134721330068.,6381479119718101.,-.499755931514821990299,-44,28, + 8463134721331291.,6381479119720637.,-.499756392152308207930,-44,28, + 8463134721410786.,6381479119885477.,-.499784957933069540831,-44,28, + 8463134721935453.,6381479120973421.,-.499905534687458156304,-44,28, + 8613088740472716.,6697264298292089.,-.470107036460137089031,-44,28, + 8613088740472723.,6697264298292103.,.498081685005084176173,-44,28, + 8613088740472817.,6697264298292304.,.499473087540117835954,-44,28, + 8613088740475709.,6697264298298488.,.499727729110877799466,-44,28, + 8613088740478601.,6697264298304672.,.499982374315319736052,-44,28, + 8613088740510225.,6697264298372295.,-.499999096749825111438,-44,28, + 5794623555225974.,9007199254740991.,-.077085692614758855501,320,-971 }; +#define powx_275(x) pow(x,2.75) +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/sin.c b/src/regress/lib/libm/fpaccuracy/sin.c new file mode 100644 index 000000000..fbdb7223f --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/sin.c @@ -0,0 +1,1288 @@ +/* $OpenBSD: sin.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:42:09. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1257 +#define F sin +#define Fs "sin" +#define Fn fpaccuracy_sin + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -7958517471031996.,6212835604728892.,.130833791443020784676,-48,101, + -7958517471031995.,-5588727300024200.,.261667582886055137131,-48,102, + -7958517471031969.,-7405673258539934.,-.120911444006621323138,-48,96, + -7958517471029387.,-5735734868167607.,-.235319538568943385656,-48,89, + -7958517470771212.,-8960446310473519.,.138230043465246743807,-48,83, + -7074237752028441.,-6523320454730237.,.439258852050649861914,-48,101, + -7074237752028440.,4967757600021511.,-.121482295898715466354,-48,102, + -7074237752028407.,4683147721975992.,.053738419552382839132,-48,95, + -7074237752025168.,7195810507888803.,-.124160499281507210719,-48,89, + -7074237751701192.,5622082568348465.,.271200950923179606269,-48,82, + -6189958033024886.,6833805304731581.,-.009351495544320606337,-48,101, + -6189958033024885.,-8693575800037644.,-.037405982177248259838,-48,103, + -6189958033024884.,-5590296602375202.,.495324252227861954253,-48,100, + -6189958033024814.,-5013160476848593.,.476489441494583545252,-48,94, + -6189958033017771.,-7822191026877127.,-.258179019650541974984,-48,88, + -6189958032313442.,-6111250908646246.,.449802454767560031340,-48,81, + -5305678314198564.,-6089706763479862.,-.090896353359190238911,-48,83, + -5305678314023102.,-7792428794092300.,.313759545668310313647,-48,90, + -5305678314021348.,-5008333671416556.,.080607629348272501979,-48,96, + -5305678314021331.,-7144290154732925.,-.420555860962008546748,-48,101, + -5305678314021330.,7451636400032266.,.317776556151927322001,-48,103, + -8842797190035551.,5902350754727548.,-.299073565063304663147,-49,102, + -8842797190035550.,-6209697000026889.,.401852869873393727593,-49,103, + -8842797190035547.,-7531611566059105.,-.074768391265781521372,-49,100, + -8842797190035219.,-5829077737928285.,.241603372279800849465,-49,93, + -8842797190002404.,-4555598928011245.,.275327658586077643888,-49,86, + -7074237752028441.,-6523320454730237.,.439258852050644463614,-49,102, + -7074237752028440.,4967757600021511.,-.121482295898714870318,-49,103, + -7074237752028432.,4658842052371168.,.214953678252997362028,-49,98, + -7074237752027622.,7197629755056780.,-.496641351311827911854,-49,92, + -7074237751946628.,5622096781216965.,.089850199524424779073,-49,85, + -5611213340383481.,4652070016093056.,-.499998959884557667038,-49,53, + -5611213340369957.,4652070015907767.,-.497442054272881026266,-49,53, + -5611213340369917.,4652070015907218.,.472396915142160649035,-49,53, + -5611213340369897.,4652070015906944.,.457316399840873879892,-49,53, + -5611213340369820.,4652070015905889.,.499256415876099806074,-49,53, + -5611213340369556.,4652070015902273.,-.499806386949586537223,-49,53, + -5611213340361068.,4652070015785981.,-.499977653344776178378,-49,53, + -5589917886911323.,8714095416787853.,-.499998315907917689630,-49,54, + -5589917886910908.,8714095416776230.,-.389376806057253401320,-49,54, + -5589917886910893.,8714095416775810.,-.493812173259762111249,-49,54, + -5589917886910892.,8714095416775781.,.499225468926517333395,-49,54, + -5584028471356741.,8548676923307456.,.499554512628701620738,-49,54, + -5584028471356586.,8548676923303091.,-.442341916454404957759,-49,54, + -5584028471356562.,8548676923302415.,-.459151686176827992968,-49,54, + -5584028471356508.,8548676923300894.,-.496973668109088894332,-49,54, + -5584028471356502.,8548676923300724.,.498823889449137751487,-49,54, + -5584028471355552.,8548676923273966.,-.499896176080930915301,-49,54, + -5584028471354124.,8548676923233742.,.499922458563984758803,-49,54, + -5584028471315813.,8548676922154622.,.499938137545812416381,-49,54, + -5584028471277502.,8548676921075502.,.499914224631142269594,-49,54, + -5555479367778394.,7733877897149014.,.498194433718948127849,-49,54, + -5555479367778323.,7733877897146963.,-.467976183757718174230,-49,54, + -5555479367778303.,7733877897146385.,-.486615794336733055531,-49,54, + -5555479367778293.,7733877897146096.,-.495935599629901068532,-49,54, + -5555479367778182.,7733877897142888.,-.499385438547949837018,-49,54, + -5555479367777001.,7733877897108755.,.499945535966937517766,-49,54, + -5555479367774104.,7733877897025029.,.499997748435205964563,-49,54, + -5545533983891579.,7445255117838313.,.499953679017880276498,-49,54, + -5545533983828595.,7445255116003015.,.499866878281156920177,-49,54, + -5545533983828480.,7445255115999665.,-.498323381954439508972,-49,54, + -5545533983828365.,7445255115996314.,-.496513642500731957644,-49,54, + -5545533983828343.,7445255115995672.,.442963003272399324280,-49,54, + -5545533983828329.,7445255115995264.,.495357232394835337739,-49,54, + -5545533983827488.,7445255115970758.,.499896273374760833679,-49,54, + -5545533983824167.,7445255115873987.,.499984285918123912375,-49,54, + -5545533983823060.,7445255115841731.,-.499986434146571281581,-49,54, + -5544198963895300.,7406332917910339.,-.499994971767098549189,-49,54, + -5544198963889625.,7406332917744797.,-.499933748091774878947,-49,54, + -5544198963889044.,7406332917727848.,.499720054538118231755,-49,54, + -5544198963888997.,7406332917726477.,.491086196574639771345,-49,54, + -5544198963846191.,7406332916477809.,.499981272734332414279,-49,54, + -5539725571708487.,7275609834821478.,.499985253055923466757,-49,54, + -5539725571705812.,7275609834743170.,.499796602236188531044,-49,54, + -5539725571705768.,7275609834741882.,.442971067914837318139,-49,54, + -5539725571705750.,7275609834741356.,-.489366650683980435597,-49,54, + -5539725571705739.,7275609834741033.,.496426965724191393968,-49,54, + -5539725571704334.,7275609834699904.,-.499933870432698202045,-49,54, + -5539725571682372.,7275609834056988.,-.499994340368070567080,-49,54, + -5537279579438704.,7203937359838968.,.499999058449149989697,-49,54, + -5537279579436764.,7203937359782069.,-.499799330481731796179,-49,54, + -5537279579434630.,7203937359719479.,-.499577657119091292292,-49,54, + -5537279579434627.,7203937359719391.,-.489268067210660436512,-49,54, + -5537279579434606.,7203937359718775.,-.417100937857372813839,-49,54, + -5522619698292048.,6771570642152360.,.499911939891685382213,-49,54, + -5522619698198654.,6771570639382933.,.499855746087560314850,-49,54, + -5522619698197691.,6771570639354378.,-.490905381817256626937,-49,54, + -5522619698197688.,6771570639354289.,-.450378157947609811314,-49,54, + -5522619698197642.,6771570639352925.,-.495627391970439596103,-49,54, + -5522619698197593.,6771570639351471.,.499650597825074524915,-49,54, + -5522619698194632.,6771570639263669.,-.499979542608105490634,-49,54, + -5522215089853399.,6759570976392264.,.499936161964552260624,-49,54, + -5522215089853198.,6759570976386302.,.479076040222845856731,-49,54, + -5522215089853195.,6759570976386213.,.493690068250024921094,-49,54, + -5522215089852920.,6759570976378056.,.499975969926121114745,-49,54, + -5522215089852441.,6759570976363849.,-.499984227006159248299,-49,54, + -5522215089827465.,6759570975623015.,.499996720135387389244,-49,54, + -5512667243258777.,6475406094855963.,-.499449014049899453593,-49,54, + -5512667243258525.,6475406094848437.,.485772164743541172920,-49,54, + -5512667243258460.,6475406094846497.,-.490262055222627687090,-49,54, + -5512667243258316.,6475406094842197.,-.498707096685920387008,-49,54, + -5512667243257819.,6475406094827355.,.499923555564536308278,-49,54, + -5512667243256400.,6475406094784983.,-.499961994257300891459,-49,54, + -5512667243248347.,6475406094544510.,.499982023697618042065,-49,54, + -5512667243195772.,6475406092974559.,.499956505097263724003,-49,54, + -5486380295692487.,5683674037828652.,.499988359788258983742,-49,54, + -5486380295690170.,5683674037758296.,-.458277432697175324799,-49,54, + -5486380295690148.,5683674037757627.,.499822762165220324823,-49,54, + -5486380295662463.,5683674036916957.,.499992918459051883178,-49,54, + -5482520377149080.,5566332839437440.,.487703427588966263896,-49,54, + -5482520377149057.,5566332839436741.,-.495500261287941987039,-49,54, + -5482520377149004.,5566332839435127.,.499726020829895036327,-49,54, + -5482520377148587.,5566332839422436.,.499902616149026765141,-49,54, + -5482520377148170.,5566332839409746.,-.499920791586071278634,-49,54, + -5482520377119890.,5566332838549071.,-.499942237071479593698,-49,54, + -5482520376995458.,5566332834762100.,.499796522579056940346,-49,54, + -5468820810102350.,5147792518152047.,.499920089577544279220,-49,54, + -5468820810014038.,5147792515443904.,-.499966681744417248146,-49,54, + -5468820810002999.,5147792515105386.,-.499961435610613204563,-49,54, + -5468820810001172.,5147792515049359.,.375752621569139357980,-49,54, + -5468820810001109.,5147792515047427.,.440432415677242355858,-49,54, + -5468820810001052.,5147792515045679.,.498952229338544443015,-49,54, + -5468820810000726.,5147792515035683.,-.499688837402113392338,-49,54, + -5468820810000077.,5147792515015780.,.499949033793940553710,-49,54, + -5468088758213645.,5125339332333894.,.499975877850471021692,-49,54, + -5468088758161793.,5125339330743205.,-.499979960944669530267,-49,54, + -5468088758157272.,5125339330604511.,.498980402986912199716,-49,54, + -5468088758157179.,5125339330601658.,.490996173426713311532,-49,54, + -5468088758157117.,5125339330599756.,.485673353642204136528,-49,54, + -5468088758157114.,5125339330599664.,.453157733328473626638,-49,54, + -5468088758156903.,5125339330593191.,.499559104230962947533,-49,54, + -5468088758156534.,5125339330581872.,-.499862196727079936656,-49,54, + -5468088758153151.,5125339330478090.,-.499976828204930801832,-49,54, + -5465050034923429.,5032044667506620.,-.499991903237315811647,-49,54, + -5465050034923261.,5032044667501457.,.497994140674588895473,-49,54, + -5465050034923009.,5032044667493714.,.494973205702164560771,-49,54, + -5465050034922987.,5032044667493039.,-.481481002954396447392,-49,54, + -5465050034922976.,5032044667492701.,-.469708107285558868958,-49,54, + -5465050034910518.,5032044667109913.,.499993772397313803075,-49,54, + -5418613610005258.,7179474664950594.,.499626489065263885410,-49,55, + -5418613610005191.,7179474664946392.,.497470679233703312017,-49,55, + -5418613610003410.,7179474664834694.,.499866204489753984131,-49,55, + -5418613610002486.,7179474664776744.,.499986033189289251994,-49,55, + -5418613609935690.,7179474660587536.,.499939208604795184661,-49,55, + -5413189175949861.,6838945386852834.,-.499994430708534262693,-49,55, + -5413189175913193.,6838945384548748.,-.499979024543708126849,-49,55, + -5413189175912759.,6838945384521476.,.491948550330228003409,-49,55, + -5413189175912741.,6838945384520345.,.436314210029839216095,-49,55, + -5413189175912710.,6838945384518398.,-.492833820503886967775,-49,55, + -5413189175912600.,6838945384511486.,-.499488122565106247413,-49,55, + -5398648100197461.,5923056452061726.,-.499918759733346049624,-49,55, + -5398648100196958.,5923056452029972.,-.499263816261055743070,-49,55, + -5398648100196935.,5923056452028520.,-.471400866672594514359,-49,55, + -5398648100196927.,5923056452028014.,.494812333181944021226,-49,55, + -5398648100192903.,5923056451773983.,-.499948291604580587179,-49,55, + -5398648100183787.,5923056451198496.,.499991479786349834335,-49,55, + -5398648100150194.,5923056449077796.,.499975520867696132095,-49,55, + -5358514779854742.,6753142658154098.,.499846278992070624700,-49,56, + -5358514779729599.,6753142642206296.,-.439943425700363057491,-49,56, + -5358514779729592.,6753142642205404.,-.496395482115909679733,-49,56, + -5358514779729450.,6753142642187308.,-.498708626770999343783,-49,56, + -5358514779729379.,6753142642178260.,-.499865199259673395736,-49,56, + -5358514779728511.,6753142642067645.,-.499920206819331293038,-49,56, + -5358514779727643.,6753142641957030.,-.499975230433822410286,-49,56, + -5357868470797996.,6670774773654320.,-.499959177001602339099,-49,56, + -5357868470793064.,6670774773025735.,-.499507634405544337416,-49,56, + -5357868470792944.,6670774773010440.,.461573905262571767782,-49,56, + -5357868470792933.,6670774773009039.,-.491993620283016909869,-49,56, + -5357868470792913.,6670774773006490.,-.498480030372430683336,-49,56, + -5357868470792138.,6670774772907716.,-.499828427821700124302,-49,56, + -5357868470785354.,6670774772043092.,.499980673381329165717,-49,56, + -5357868470738641.,6670774766089505.,.499966539808520790108,-49,56, + -5340868642030055.,9002858075942352.,-.499999567510129621708,-49,57, + -5340868642030053.,9002858075941841.,-.499986682883159495444,-49,57, + -5340868642029943.,9002858075913736.,-.499278028574795899252,-49,57, + -5340868642026707.,9002858075086938.,-.478430861081203575908,-49,57, + -5340868642025337.,9002858074736903.,-.469605048527975030810,-49,57, + -5340868642025317.,9002858074731793.,-.469476204943967136017,-49,57, + -5334469363683153.,7367296052893990.,.499999809069905540594,-49,57, + -5334469363655190.,7367296045744822.,.470704330379467058803,-49,57, + -5334469363655175.,7367296045740987.,.491609112821074163907,-49,57, + -5334469363655169.,7367296045739453.,.499971025796252439448,-49,57, + -5334469363643210.,7367296042681952.,.499988907616124526959,-49,57, + -5325827369906433.,5157057057842082.,.499972107232987246078,-49,57, + -5325827369870741.,5157057048710782.,.499970344688235904690,-49,57, + -5325827369852895.,5157057044145132.,.499961689579452355385,-49,57, + -5325827369851541.,5157057043798730.,.499512541657770195514,-49,57, + -5325827369851071.,5157057043678488.,-.440082073532463514451,-49,57, + -5325827369851053.,5157057043673883.,-.488832505675048997707,-49,57, + -5325827369851047.,5157057043672347.,.494917350276250866076,-49,57, + -5325827369850864.,5157057043625529.,.499287956509482997091,-49,57, + -5317788020392809.,6199691505849210.,.499994874906830447356,-49,58, + -5317788020390040.,6199691504431810.,.499980448898540918953,-49,58, + -5317788020389736.,6199691504276199.,-.489909190252342854372,-49,58, + -5317788020389719.,6199691504267497.,-.476185913547710102449,-49,58, + -5317788020389677.,6199691504245997.,.498895122992438415707,-49,58, + -5307605800727999.,7894970124880674.,.499988124870354061428,-49,61, + -5307605800692179.,7894969978162814.,.499707353695941054856,-49,61, + -5307605800691221.,7894969974238870.,-.499742247059479801221,-49,61, + -5307605800678684.,7894969922887619.,-.499848367687876068394,-49,61, + -5307605800660774.,7894969849528688.,.499993239049629048278,-49,61, + -5305678314065639.,6089754163653848.,.365188728149908596756,-49,86, + -5305678314021773.,7789699923340335.,-.255037977637273428780,-49,93, + -5305678314021334.,8541471979738975.,.355138965240439868439,-49,100, + -5305678314021331.,7144290154732925.,.420555860962015638086,-49,102, + -5305678314021330.,-7451636400032266.,-.317776556151927824906,-49,104, + -5299460840261238.,-6366563696336530.,-.499997766638501205250,-49,59, + -5299460840243913.,-6366563714076249.,.499696208616982453112,-49,59, + -5299460840243897.,-6366563714092632.,.498945568033319992978,-49,59, + -5299460840243417.,-6366563714584122.,.476426352914880372482,-49,59, + -5299460840243305.,-6366563714698803.,.471171870053246023999,-49,59, + -5299460840242584.,-6366563715437062.,.499846142664231251180,-49,59, + -5299460840241255.,-6366563716797875.,.499996112194083414221,-49,59, + -5266341419853530.,-5031025950084337.,-.499985273828726109257,-49,56, + -5266341419832068.,-5031025952824769.,-.499976674386093474558,-49,56, + -5266341419812069.,-5031025955378394.,-.491481975117204309773,-49,56, + -5266341419812037.,-5031025955382480.,-.495768592841602642216,-49,56, + -5266341419812005.,-5031025955386567.,.499944789450255146948,-49,56, + -5266341419810606.,-5031025955565201.,-.499960762586839321008,-49,56, + -5242088987178115.,-8122135881181049.,.499999686447252564259,-49,56, + -5242088987167728.,-8122135882502112.,.499094325479729869910,-49,56, + -5242088987167690.,-8122135882506945.,.496876712021787047118,-49,56, + -5242088987167652.,-8122135882511778.,.494659098600852416370,-49,56, + -5242088987167283.,-8122135882558709.,.499440696516818663247,-49,56, + -5242088987166393.,-8122135882671902.,-.499866546183490115412,-49,56, + -5242088987163685.,-8122135883016318.,.499994237962218467258,-49,56, + -5208774931143459.,-6171234740779278.,.499999901220162336585,-49,55, + -5208774931125089.,-6171234741937583.,.499859190769440055705,-49,55, + -5208774931124849.,-6171234741952715.,-.499598238280683264229,-49,55, + -5208774931124812.,-6171234741955049.,.496318741507212026866,-49,55, + -5208774931124738.,-6171234741959715.,.488152701162978151466,-49,55, + -5208774931119458.,-6171234742292640.,-.499910442751117803191,-49,55, + -5208774931108436.,-6171234742987623.,-.499990506212703052710,-49,55, + -5161411928706809.,-4566159379852245.,.499995283505396611547,-49,54, + -5161411928699038.,-4566159380092796.,.499966325677312653601,-49,54, + -5161411928695974.,-4566159380187641.,-.499787485701841872908,-49,54, + -5161411928695530.,-4566159380201386.,.497637234313890733334,-49,54, + -5161411928695330.,-4566159380207576.,-.494513791778157687485,-49,54, + -5161411928695308.,-4566159380208258.,.496349595386901953454,-49,54, + -5161411928674193.,-4566159380861871.,-.499991735252788297500,-49,54, + -5120907462136485.,-5807077948366709.,-.499992327046999084216,-49,54, + -5120907462135402.,-5807077948399515.,-.492508340717233961295,-49,54, + -5120907462135354.,-5807077948400969.,-.497716806199694032913,-49,54, + -5120907462135330.,-5807077948401697.,.499678961074907786984,-49,54, + -5119822908964471.,-5839920192101598.,-.499983317297960421500,-49,54, + -5119822908932313.,-5839920193075081.,.485312256992592576282,-49,54, + -5119822908932302.,-5839920193075414.,.495009326342811597355,-49,54, + -5119822908932291.,-5839920193075746.,-.495293604304739649363,-49,54, + -5119822908929922.,-5839920193147460.,-.497806525450835266515,-49,54, + -5119822908927862.,-5839920193209820.,-.499991590209490134858,-49,54, + -5095830265926884.,-6560698847046669.,-.499963642042803225310,-49,54, + -5095830265902192.,-6560698847782550.,.499983110454627245500,-49,54, + -5095830265871327.,-6560698848702400.,.499934300555017496062,-49,54, + -5095830265869551.,-6560698848755329.,.499446104674266205616,-49,54, + -5095830265869465.,-6560698848757892.,.496044087837560189246,-49,54, + -5095830265869455.,-6560698848758190.,.472392690540903385772,-49,54, + -7074237752028441.,-6523320454730237.,.439258852050643114039,-50,103, + -7074237752028440.,4967757600021511.,-.121482295898714721309,-50,104, + -7074237752028438.,5124569327373185.,-.140185286987342823443,-50,101, + -7074237752028235.,7222498929773102.,.013434604850808816997,-50,95, + -7074237752007987.,5622153632690964.,.359479648623543693521,-50,88, + -7074237752028441.,6523320454730237.,-.439258852050642776645,-51,104, + -7074237752028440.,-4967757600021511.,.121482295898714684057,-51,105, + -7074237752028439.,-5745539027375874.,.280370573974678975280,-51,103, + -7074237752028389.,-7216422512371896.,-.053738419562667649482,-51,98, + -7074237752023327.,-5622106160680017.,-.437919826571286137851,-51,91, + -8871213671092317.,-7504962526444771.,-.499994356426362647532,-53,53, + -8871213671077773.,-7504962526436729.,-.478099669195175532480,-53,53, + -8871213671077764.,-7504962526436725.,.498399028018327575475,-53,53, + -8871213671077339.,-7504962526436490.,.499726396442283465672,-53,53, + -8871213671077254.,-7504962526436443.,.499991870129079707039,-53,53, + -8108579655028955.,-7056886948212518.,.499990962962087826487,-53,53, + -8108579655012266.,-7056886948202146.,-.499918615255350226267,-53,53, + -8108579655012126.,-7056886948202060.,.499902384250890642569,-53,53, + -8108579655011706.,-7056886948201799.,.499365382779842431918,-53,53, + -8108579655010726.,-7056886948201190.,.498112379407066840301,-53,53, + -8108579655010710.,-7056886948201180.,.440949065066979909969,-53,53, + -8108579654961919.,-7056886948170860.,.499994795686109707594,-53,53, + -7881394195549603.,-6913478057984781.,.499997922780307662077,-53,53, + -7881394195509958.,-6913478057959368.,-.499987891080840223787,-53,53, + -7881394195507972.,-6913478057958095.,-.496279269228611509884,-53,53, + -7881394195507958.,-6913478057958087.,.477563591148176267211,-53,53, + -7881394195507933.,-6913478057958070.,-.497717015321804016997,-53,53, + -7881394195507894.,-6913478057958045.,-.499154761414866911796,-53,53, + -7881394195507855.,-6913478057958021.,.499407492492199805718,-53,53, + -7881394195506479.,-6913478057957139.,.499962912475768844569,-53,53, + -7109328173650617.,-6393815952054821.,.499925342262490988657,-53,53, + -7109328173649467.,-6393815952054011.,.498586434490820526144,-53,53, + -7109328173647742.,-6393815952052796.,.496578073028738672583,-53,53, + -7109328173647715.,-6393815952052776.,-.486062057844455988951,-53,53, + -7109328173647708.,-6393815952052772.,.444364574892132551247,-53,53, + -7109328173643186.,-6393815952049587.,.499969323535347987772,-53,53, + -7109328173635755.,-6393815952044352.,-.499986690839933034561,-53,53, + -7109328173568531.,-6393815951997003.,-.499992294503629014633,-53,53, + -7006352135983028.,-6320868855797199.,-.471216124094699415249,-53,53, + -7006352135983014.,-6320868855797189.,-.497392370402231408043,-53,53, + -7006352135982096.,-6320868855796535.,-.499520521105642805661,-53,53, + -7006352135981943.,-6320868855796426.,-.499875212883161362791,-53,53, + -7006352135976289.,-6320868855792398.,-.499910684219115423114,-53,53, + -7006352135962154.,-6320868855782328.,-.499999351662503538231,-53,53, + -6828286958492436.,-6192785514806772.,-.499998774494554852054,-53,53, + -6828286958448748.,-6192785514775049.,.499978681245168085331,-53,53, + -6828286958433006.,-6192785514763617.,-.461574910858342634174,-53,53, + -6828286958432984.,-6192785514763601.,-.486295669263749309140,-53,53, + -6828286958432973.,-6192785514763593.,-.498656048466438792369,-53,53, + -6828286958432648.,-6192785514763358.,.499787293276448747138,-53,53, + -6828286958432082.,-6192785514762946.,-.499846763853613616849,-53,53, + -6828286958426904.,-6192785514759187.,.499967463748915666781,-53,53, + -6595469068453604.,-6021675207910344.,.499959047936277295473,-53,53, + -6595469068453405.,-6021675207910196.,.491475843050525314827,-53,53, + -6595469068453366.,-6021675207910167.,.494838431038084219155,-53,53, + -6595469068453288.,-6021675207910108.,-.498436392986459293200,-53,53, + -6595469068434273.,-6021675207895967.,-.499984826009113774815,-53,53, + -6595469068421188.,-6021675207886236.,-.499998549369526037637,-53,53, + -5292230209358232.,-4992944525072436.,.499999481635783697188,-53,53, + -5292230209355334.,-4992944525070023.,-.499893485408907668274,-53,53, + -5292230209321524.,-4992944525041883.,-.498644729406671084529,-53,53, + -5292230209316533.,-4992944525037729.,-.498460383275853242916,-53,53, + -5292230209316521.,-4992944525037720.,.489117699706072252043,-53,53, + -5292230209316509.,-4992944525037710.,.476695782688006609165,-53,53, + -4510984822842145.,-8649522041055297.,.499997213742297123022,-53,54, + -4510984822809884.,-8649522040998699.,.499990902936971901598,-53,54, + -4510984822796066.,-8649522040974456.,-.499949771801003272215,-53,54, + -4510984822793725.,-8649522040970350.,.499770803412660980321,-53,54, + -4510984822793611.,-8649522040970150.,.498902860486254760781,-53,54, + -4510984822793517.,-8649522040969985.,.410467890004119957023,-53,54, + -4510984822793497.,-8649522040969950.,.498034917561234091462,-53,54, + -4510984822791441.,-8649522040966343.,.499925350660094160222,-53,54, + -8644717199335558.,-8316727887441656.,-.499996832825479521771,-54,54, + -8644717199268023.,-8316727887381749.,-.499963765314177643427,-54,54, + -8644717199267660.,-8316727887381428.,.499607005765053084990,-54,54, + -8644717199267616.,-8316727887381388.,-.470141991679659172714,-54,54, + -8644717199267607.,-8316727887381380.,-.486681559338798749537,-54,54, + -8644717199267598.,-8316727887381373.,.496778873002063749500,-54,54, + -8644717199256354.,-8316727887371398.,-.499987654192388166384,-54,54, + -7492339963682932.,-7278196578327819.,-.477091118135622734778,-54,54, + -7492339963682920.,-7278196578327809.,.499905023288848217810,-54,54, + -7492339963678486.,-7278196578323753.,.499979279851929900305,-54,54, + -7492339963677008.,-7278196578322400.,-.499995967862390412146,-54,54, + -7298995560608219.,-7100919050987427.,-.499994123597666439878,-54,54, + -7298995560597338.,-7100919050977428.,.499983171831126739590,-54,54, + -7298995560586568.,-7100919050967530.,.487278043582559372036,-54,54, + -7298995560586556.,-7100919050967518.,-.484323856280368884332,-54,54, + -7298995560586494.,-7100919050967462.,.495732994427885320356,-54,54, + -7298995560586457.,-7100919050967428.,.499960469850593227963,-54,54, + -4924871031076076.,-4863752809009387.,.499987547927853871713,-54,54, + -4924871031066975.,-4863752809000623.,-.489125572617140940294,-54,54, + -4924871031066921.,-4863752809000571.,-.494554878020471691327,-54,54, + -4924871031066867.,-4863752809000519.,-.499984183423758738532,-54,54, + -4924871031040344.,-4863752808974982.,.499988651277477875482,-54,54, + -4514338150834310.,-8934474822275393.,.494879526103372287052,-54,55, + -4514338150834294.,-8934474822275362.,.495352170604725579023,-54,55, + -4514338150834150.,-8934474822275083.,.499605971117222369366,-54,55, + -4514338150834134.,-8934474822275051.,-.499921384381353858084,-54,55, + -4514338150832021.,-8934474822270958.,.499997230149849336978,-54,55, + -6979532375146596.,-6935959796480662.,.499999987383497452755,-55,55, + -6979532375142586.,-6935959796476727.,.491772176343512067159,-55,55, + -6979532375142585.,-6935959796476726.,.473066882625058946330,-55,55, + -6979532375142533.,-6935959796476674.,-.499608390734495973722,-55,55, + -6979532375141143.,-6935959796475310.,-.499966659378782135058,-55,55, + -5360050515998697.,-5340300145254397.,-.499987017892626368724,-55,55, + -5360050515985027.,-5340300145240878.,-.499517649909795716333,-55,55, + -5360050515984665.,-5340300145240520.,-.498188468391681664079,-55,55, + -5360050515984574.,-5340300145240431.,.496620800995553349550,-55,55, + -5360050515984564.,-5340300145240421.,.386160281147998835220,-55,55, + -5360050515983669.,-5340300145239536.,.499943754793535928378,-55,55, + -5360050515967102.,-5340300145223151.,-.499999476024108801728,-55,55, + -5003579018638415.,-4987510616361550.,-.499997804217384712225,-55,55, + -5003579018617746.,-4987510616341081.,.499879441918079049952,-55,55, + -5003579018617038.,-4987510616340379.,-.316709987136791542247,-55,55, + -5003579018617019.,-4987510616340360.,-.499641059385412662963,-55,55, + -5003579018615461.,-4987510616338817.,-.499988983767624437070,-55,55, + -4503599627370496.,-4503599627370496.,0.000000000000000000000,-1074,1074, + 0.,0.,0.000000000000000000000,0,0, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,1074, + 4789513629070445.,4789513629070445.,.000000000000000000000,-1073,1073, + 4808649095124370.,4808649095124370.,.000000000000000000000,-1073,1073, + 4869155331943481.,4869155331943481.,.000000000000000000000,-1073,1073, + 5109627874242034.,5109627874242034.,.000000000000000000000,-1073,1073, + 5599035507166465.,5599035507166465.,.000000000000000000000,-1073,1073, + 7089807759713476.,7089807759713476.,.000000000000000000000,-1073,1073, + 7312899440849907.,7312899440849907.,.000000000000000000000,-1073,1073, + 7758212862373409.,7758212862373409.,.000000000000000000000,-1073,1073, + 7761896134481174.,7761896134481174.,.000000000000000000000,-1073,1073, + 7809167192039829.,7809167192039829.,.000000000000000000000,-1073,1073, + 8147981785960724.,8147981785960724.,.000000000000000000000,-1073,1073, + 8591267199417325.,8591267199417325.,.000000000000000000000,-1073,1073, + 4662142971001321.,4662142971001321.,-.000000000000000000000,-1072,1072, + 5622124846588744.,5622124846588744.,0.000000000000000000000,-1072,1072, + 5828119186624356.,5828119186624356.,-.000000000000000000000,-1072,1072, + 6028194942529344.,6028194942529344.,-.000000000000000000000,-1072,1072, + 6103477745868087.,6103477745868087.,.000000000000000000000,-1072,1072, + 6329313323327537.,6329313323327537.,-.000000000000000000000,-1072,1072, + 6394464867675505.,6394464867675505.,0.000000000000000000000,-1072,1072, + 6432992472198426.,6432992472198426.,.000000000000000000000,-1072,1072, + 6588689718419168.,6588689718419168.,.000000000000000000000,-1072,1072, + 7001573392314120.,7001573392314120.,-.000000000000000000000,-1072,1072, + 7563218214160189.,7563218214160189.,-.000000000000000000000,-1072,1072, + 8051935603675861.,8051935603675861.,-.000000000000000000000,-1072,1072, + 8383198532805953.,8383198532805953.,.000000000000000000000,-1072,1072, + 8438077864727187.,8438077864727187.,-.000000000000000000000,-1072,1072, + 8443454242934633.,8443454242934633.,0.000000000000000000000,-1072,1072, + 8447626959944861.,8447626959944861.,-.000000000000000000000,-1072,1072, + 8862962614828875.,8862962614828875.,0.000000000000000000000,-1072,1072, + 4509952695599631.,4509952695599631.,0.000000000000000000000,-1071,1071, + 4701762730015372.,4701762730015372.,.000000000000000000000,-1071,1071, + 4883252779508383.,4883252779508383.,0.000000000000000000000,-1071,1071, + 4988752457694256.,4988752457694256.,.000000000000000000000,-1071,1071, + 5120758840307769.,5120758840307769.,-.000000000000000000000,-1071,1071, + 6175493946614273.,6167937026292498.,-.499999067951243516795,-56,56, + 6175493946645879.,6167937026323988.,-.499892592376961776181,-56,56, + 6175493946646315.,6167937026324422.,-.100093616768275752673,-56,56, + 6175493946646415.,6167937026324522.,-.467112200344297032582,-56,56, + 6175493946646424.,6167937026324530.,.499856127133860469561,-56,56, + 6175493946649966.,6167937026328060.,-.499942103136513075772,-56,56, + 6175493946654053.,6167937026332132.,-.499991613915906569388,-56,56, + 6823990675709392.,6813795146809843.,.499748043248782396478,-56,56, + 6823990675709394.,6813795146809845.,.490786295160713891913,-56,56, + 6823990675709432.,6813795146809883.,.320513081487411307830,-56,56, + 6823990675710731.,6813795146811176.,.499857698285743931650,-56,56, + 6823990675712070.,6813795146812509.,.499967353320352635938,-56,56, + 6823990675721220.,6813795146821618.,.499969850319866248778,-56,56, + 6823990675812720.,6813795146912708.,.499994814272255037251,-56,56, + 8359220028884124.,8340483278553595.,-.499993321859920667023,-56,56, + 8359220028897663.,8340483278567042.,.499987179515833959409,-56,56, + 8359220028905102.,8340483278574432.,-.499949673424760108166,-56,56, + 8359220028906441.,8340483278575762.,-.499803880463028768588,-56,56, + 8359220028906590.,8340483278575909.,.498718690971668418706,-56,56, + 8359220028906722.,8340483278576041.,-.388496212186884669242,-56,56, + 8359220028906738.,8340483278576057.,-.496037412569741490874,-56,56, + 8359220028906739.,8340483278576057.,.497241262406329944120,-56,56, + 8513798801089932.,8494003767665470.,-.499981069172221956340,-56,56, + 8513798801093231.,8494003767668745.,.499677621686796846142,-56,56, + 8513798801093472.,8494003767668985.,-.180553434847085717025,-56,56, + 8513798801093516.,8494003767669029.,-.487317611143738433693,-56,56, + 8513798801093518.,8494003767669030.,.498738562660959094844,-56,56, + 8513798801094235.,8494003767669742.,.499876871644601407052,-56,56, + 8513798801104849.,8494003767680282.,.499991253069771531189,-56,56, + 8513798801139990.,8494003767715178.,.499993086846188599808,-56,56, + 4515410989972602.,9007199254723903.,.000013631360214449974,-55,56, + 4515410989976172.,9007199254730987.,-.000850993029360901694,-55,56, + 4515410989981017.,9007199254740601.,-.002024411985236287351,-55,56, + 4515410989981214.,4503599627370496.,-.046134101095920915704,-55,55, + 4515410989981215.,4503599627370497.,-.053977359446699445840,-55,55, + 4515410989981236.,4503599627370518.,-.218685784813049380123,-55,55, + 4515410989981271.,4503599627370553.,-.493199827090302670653,-55,55, + 4515410989981272.,4503599627370553.,.498956914558918601453,-55,55, + 7082784227656672.,7037251671944098.,-.499999183600064468351,-55,55, + 7082784227659216.,7037251671946592.,.499953154216911612401,-55,55, + 7082784227659839.,7037251671947204.,-.499665436016433429356,-55,55, + 7082784227659943.,7037251671947305.,.497187961440395517273,-55,55, + 7082784227659948.,7037251671947310.,.400882836318126200864,-55,55, + 4551882811606989.,4503599627370496.,-.114840883649549053627,-54,54, + 4551882811606990.,4503599627370497.,-.146595047097694837625,-54,54, + 4551882811607000.,4503599627370507.,-.464136681579153440884,-54,54, + 4551882811607001.,4503599627370508.,-.495890845027299377538,-54,54, + 4551882811607190.,4503599627370691.,-.497427736727130580774,-54,54, + 4551882811607505.,4503599627370996.,-.499989222894617538298,-54,54, + 4551882811611410.,4503599627374777.,-.499997488037651785881,-54,54, + 5299073463177461.,5222983057736055.,.498886881027664175727,-54,54, + 5299073463177624.,5222983057736211.,.497499342704822375411,-54,54, + 5299073463177647.,5222983057736234.,-.490426506261011814085,-54,54, + 5299073463177648.,5222983057736234.,.466620195957864767150,-54,54, + 5299073463178043.,5222983057736613.,-.499932427587144400499,-54,54, + 5299073463183095.,5222983057741448.,-.499992818060202327354,-54,54, + 5299073463216969.,5222983057773866.,.499998131961369860507,-54,54, + 5354986034440022.,5276468756249209.,-.499999044014156103768,-54,54, + 5354986034456712.,5276468756265167.,-.486586295166978421083,-54,54, + 5354986034456735.,5276468756265189.,-.495315564599493213917,-54,54, + 5354986034456758.,5276468756265210.,.495955165967983392040,-54,54, + 5354986034458468.,5276468756266845.,.499126873351934945124,-54,54, + 5354986034458924.,5276468756267281.,.499972661979625699611,-54,54, + 6318840445917290.,6190060189901315.,-.499999512892226335106,-54,54, + 6318840445924434.,6190060189908023.,.499987248917136001931,-54,54, + 6318840445926142.,6190060189909627.,.499424173348862110527,-54,54, + 6318840445926224.,6190060189909705.,-.493577098430405724337,-54,54, + 6318840445926240.,6190060189909720.,-.467821249021497329526,-54,54, + 6318840445926257.,6190060189909735.,.497044340975462489538,-54,54, + 7852441928000621.,7606123709016936.,-.499990910280040077776,-54,54, + 7852441928001915.,7606123709018108.,.499636856990325822143,-54,54, + 7852441928002193.,7606123709018361.,-.495806327480667539168,-54,54, + 7852441928002204.,7606123709018370.,.475596999752457339033,-54,54, + 7852441928002300.,7606123709018457.,.498753310150517715760,-54,54, + 7852441928043633.,7606123709055926.,-.499999025718848555392,-54,54, + 8717776617210548.,8381466754453032.,-.499993539374519683516,-54,54, + 8717776617240079.,8381466754479171.,.499867942514535255871,-54,54, + 8717776617241185.,8381466754480150.,.499557989788494364559,-54,54, + 8717776617241211.,8381466754480174.,-.485982750511051229531,-54,54, + 8717776617246027.,8381466754484437.,-.499990646297247408193,-54,54, + 4716158501326072.,9007199254695575.,-.000002654216819555679,-53,54, + 4716158501347800.,9007199254733209.,-.000055760604160935966,-53,54, + 4716158501350711.,9007199254738251.,-.000154926620515093651,-53,54, + 4716158501352062.,9007199254740591.,.000486099068752993849,-53,54, + 4716158501352271.,9007199254740953.,-.000895119032945395364,-53,54, + 4716158501352286.,9007199254740979.,-.020133005499760983828,-53,54, + 4716158501352293.,9007199254740991.,.104222647482383192838,-53,54, + 4716158501352294.,4503599627370496.,.418136727525630244136,-53,53, + 4716158501366617.,4503599627382900.,.499995126345973997280,-53,53, + 6059040276400288.,5612305914300059.,-.499992090484602280462,-53,53, + 6059040276406439.,5612305914304870.,-.499951379573784375501,-53,53, + 6059040276408142.,5612305914306202.,-.499777533396664803784,-53,53, + 6059040276408523.,5612305914306499.,.499086961815732357961,-53,53, + 6059040276408601.,5612305914306561.,-.493271487984542781251,-53,53, + 6059040276408624.,5612305914306578.,.496161276817859841421,-53,53, + 6059040276423189.,5612305914317970.,.499996893251050569100,-53,53, + 6179968525049261.,5706381209621443.,.499998312101238506751,-53,53, + 6179968525077420.,5706381209643231.,-.499953762943618508092,-53,53, + 6179968525077557.,5706381209643336.,.498803528220126304305,-53,53, + 6179968525077663.,5706381209643419.,-.487559443581093793237,-53,53, + 6179968525077672.,5706381209643425.,.475862568247068101188,-53,53, + 6179968525077694.,5706381209643442.,.497560819382550969454,-53,53, + 6179968525079033.,5706381209644479.,-.499986532026468045913,-53,53, + 6230674196595456.,5745522248169652.,.499960572474548751572,-53,53, + 6230674196597144.,5745522248170952.,.487591535456410254729,-53,53, + 6230674196597157.,5745522248170962.,.499344617516506509261,-53,53, + 6230674196598349.,5745522248171881.,-.499911242870143885690,-53,53, + 6230674196611622.,5745522248182102.,.499985533123381035197,-53,53, + 6230674196619705.,5745522248188327.,.499998006507367039503,-53,53, + 7511273082104712.,6670465360114516.,.499877093640175246900,-53,53, + 7511273082104883.,6670465360114631.,.408244419709601485687,-53,53, + 7511273082104901.,6670465360114644.,-.496137967020072450377,-53,53, + 7511273082109230.,6670465360117552.,.499898023719732812068,-53,53, + 7511273082130314.,6670465360131720.,.499995675233507257562,-53,53, + 7511273082131067.,6670465360132226.,.499999162111589540034,-53,53, + 7913137471600263.,6933782166632562.,-.499999964275395803283,-53,53, + 7913137471604960.,6933782166635560.,-.499820316118815270902,-53,53, + 7913137471605007.,6933782166635589.,.499329874091660803160,-53,53, + 7913137471605029.,6933782166635604.,-.458514717724776966630,-53,53, + 7913137471606146.,6933782166636317.,-.499987856822825551848,-53,53, + 8575032706797082.,7337163377200022.,-.498809031934412171223,-53,53, + 8575032706797170.,7337163377200073.,-.455385260047651846611,-53,53, + 8575032706797182.,7337163377200080.,-.494918382063147883040,-53,53, + 8575032706797563.,7337163377200300.,.499904993938082219667,-53,53, + 8575032706800649.,7337163377202090.,.499970448414374118348,-53,53, + 8575032706802192.,7337163377202986.,-.499996824670457054436,-53,53, + 8668443273566846.,7390949614701891.,.499996050709032043072,-53,53, + 8668443273592922.,7390949614716795.,.499765219549314360204,-53,53, + 8668443273592950.,7390949614716812.,-.496553482097434607970,-53,53, + 8668443273592985.,7390949614716832.,-.491951859155971256475,-53,53, + 8668443273594012.,7390949614717419.,-.499784237466141380609,-53,53, + 8668443273604877.,7390949614723629.,-.499880436477139606720,-53,53, + 8668443273617915.,7390949614731081.,-.499995889485948603343,-53,53, + 9007199254740991.,7579296827247853.,.475702091928739384102,-53,53, + 4503599627370497.,7579296827247855.,.096609009533158396171,-52,53, + 4503599627370502.,7579296827247860.,.499632068214549030637,-52,53, + 4503599627372090.,7579296827249576.,.499755504951558026099,-52,53, + 4503599627375266.,7579296827253009.,-.499997624401461796309,-52,53, + 7074237752025378.,4503599627370496.,-.000000001041115290277,-52,52, + 7074237752028409.,4503599627370496.,-.000000000000108599078,-52,52, + 7074237752028440.,4503599627370496.,-.000000000000000008443,-52,52, + 7074237752028441.,4503599627370496.,-.000000000000000058233,-52,52, + 9007199254726846.,8190223105253956.,-.499989547748931710791,-52,53, + 9007199254731014.,8190223105250486.,.499981015573400766164,-52,53, + 9007199254739350.,8190223105243548.,.499922121172875354416,-52,53, + 9007199254740632.,8190223105242481.,.499433214817996139387,-52,53, + 9007199254740954.,8190223105242214.,-.499129521515825802680,-52,53, + 9007199254740960.,8190223105242209.,-.492891560081449646724,-52,53, + 9007199254740990.,8190223105242184.,-.461701752909786923899,-52,53, + 9007199254740991.,8190223105242183.,-.293995426004071092180,-52,53, + 4503599627370497.,8190223105242180.,.209123554713073980121,-51,53, + 4503599627398210.,8190223105196049.,.499998010581159252123,-51,53, + 7074237752023327.,5622106160680017.,.437919826571286137851,-51,91, + 7074237752028389.,7216422512371896.,.053738419562667649482,-51,98, + 7074237752028439.,5745539027375874.,-.280370573974678975280,-51,103, + 7074237752028440.,4967757600021511.,-.121482295898714684057,-51,105, + 7074237752028441.,-6523320454730237.,.439258852050642776645,-51,104, + 5868404969532796.,-7905417279733033.,.492220531012408382921,-50,53, + 5868404969532802.,-7905417279733010.,.496291553949242031832,-50,53, + 5868404969532808.,-7905417279732986.,-.499637423113699813370,-50,53, + 5868404969533790.,-7905417279729222.,.499986667276751569123,-50,53, + 5868404969563021.,-7905417279617149.,-.499998576677265831494,-50,53, + 5888592265913846.,-7826752402509450.,-.499940151275240182854,-50,53, + 5888592265915295.,-7826752402503713.,-.499815531399605783997,-50,53, + 5888592265916351.,-7826752402499532.,-.497654309576559749417,-50,53, + 5888592265916400.,-7826752402499338.,-.492819176957391865321,-50,53, + 5888592265916523.,-7826752402498852.,.498909829478483303589,-50,53, + 5888592265916744.,-7826752402497976.,-.499690898560575029636,-50,53, + 5888592265937423.,-7826752402416102.,-.499981216464609389611,-50,53, + 5888592265945282.,-7826752402384986.,-.499994142173612461207,-50,53, + 5943141639396850.,-7601676205109238.,-.499893626943081000086,-50,53, + 5943141639401450.,-7601676205089498.,-.499870197228951777147,-50,53, + 5943141639532090.,-7601676204528882.,-.499151819546339765033,-50,53, + 5943141639583610.,-7601676204307794.,-.498840376670392537314,-50,53, + 5943141639584300.,-7601676204304833.,-.498836097545815242002,-50,53, + 5943141639584307.,-7601676204304803.,-.459705619337168926494,-50,53, + 6303973650769013.,-5692554797346166.,-.499999662710007091071,-50,53, + 6303973650790851.,-5692554797210777.,.499981461210906541811,-50,53, + 6303973650801380.,-5692554797145499.,-.400017716190711180780,-50,53, + 6303973650801405.,-5692554797145344.,-.406428578874477712295,-50,53, + 6303973650801720.,-5692554797143391.,-.487205448449462562407,-50,53, + 6303973650801770.,-5692554797143082.,.499972826262151797586,-50,53, + 6421931254427748.,-4931372232082266.,-.499987628729420483311,-50,53, + 6421931254447243.,-4931372231951758.,.499985874816579163918,-50,53, + 6421931254448585.,-4931372231942774.,.499881514832406803639,-50,53, + 6421931254449711.,-4931372231935236.,.490852079595273694023,-50,53, + 6421931254449724.,-4931372231935148.,-.480832984903530012676,-50,53, + 6421931254449747.,-4931372231934995.,.492339593292504727589,-50,53, + 6421931254449927.,-4931372231933790.,.499777161854284737290,-50,53, + 6619016067705734.,-7086718655199506.,-.499997865983038989555,-50,54, + 6619016067722837.,-7086718654947922.,-.499009383037874049590,-50,54, + 6619016067723054.,-7086718654944730.,-.443334081600853272709,-50,54, + 6619016067723068.,-7086718654944525.,.495741744307349091927,-50,54, + 6619016067723461.,-7086718654938744.,.499798857748984756989,-50,54, + 6619016067724216.,-7086718654927638.,.499959472508696247377,-50,54, + 6787616684047236.,-4536564471785779.,-.499997595257032970650,-50,54, + 6787616684084059.,-4536564471215599.,-.495720138590037201162,-50,54, + 6787616684084088.,-4536564471215150.,-.449740068615834755366,-50,54, + 6787616684084092.,-4536564471215089.,.487636492760153501535,-50,54, + 6787616684084187.,-4536564471213617.,-.499670174543296474009,-50,54, + 6787616684085209.,-4536564471197792.,-.499958740754567139117,-50,54, + 6787616684092299.,-4536564471088009.,.499996416524817898678,-50,54, + 6792176747025452.,-8931835744354410.,.499989740419401007360,-50,55, + 6792176747028249.,-8931835744267700.,.499920502652228237112,-50,55, + 6792176747028830.,-8931835744249688.,.123073806977045155424,-50,55, + 6792176747029016.,-8931835744243922.,.322568669105142440685,-50,55, + 6792176747029178.,-8931835744238900.,.496322258899193984066,-50,55, + 6792176747029181.,-8931835744238807.,.499539917971198076900,-50,55, + 6935652144170605.,-8847099188080298.,.499797165179434916065,-50,56, + 6935652144171270.,-8847099188038060.,.496793445521866944726,-50,56, + 6935652144171460.,-8847099188025992.,.495935240472298841916,-50,56, + 6935652144171462.,-8847099188025864.,-.472494845895303987129,-50,56, + 6935652144172854.,-8847099187937450.,-.499834950975552923672,-50,56, + 6935652144177542.,-8847099187639688.,-.499957274368803098073,-50,56, + 6935652144179886.,-8847099187490808.,.499981621453105179212,-50,56, + 6935652144228825.,-8847099184382409.,.499994484567286342654,-50,56, + 7074237752007987.,-5622153632690964.,-.359479648623543693521,-50,88, + 7074237752028235.,-7222498929773102.,-.013434604850808816997,-50,95, + 7074237752028438.,-5124569327373185.,.140185286987342823443,-50,101, + 7074237752028440.,-4967757600021511.,.121482295898714721309,-50,104, + 7074237752028441.,6523320454730237.,-.439258852050643114039,-50,103, + 7272069881162685.,6298102991156363.,.499080184494525663552,-50,55, + 7272069881162744.,6298102991158222.,.428853389145144958080,-50,55, + 7272069881162754.,6298102991158538.,-.498303694814091268283,-50,55, + 7272069881163097.,6298102991169345.,-.499791674916673878680,-50,55, + 7272069881163852.,6298102991193132.,.499848483439577371619,-50,55, + 7272069881169206.,6298102991361822.,.499945631114899160899,-50,55, + 7272069881171883.,6298102991446167.,.499994151545558823903,-50,55, + 7274706301332278.,6381152088344754.,.499775270030966279430,-50,55, + 7274706301332448.,6381152088350108.,.496660691543178402004,-50,55, + 7274706301332450.,6381152088350171.,.484859343560103312135,-50,55, + 7274706301333549.,6381152088384784.,-.499981376185130108794,-50,55, + 7274706301345751.,6381152088769074.,.499994136767206642675,-50,55, + 7641538687419749.,8697591601478064.,-.499998752335907685830,-50,54, + 7641538687451807.,8697591601927247.,-.499992735287590017407,-50,54, + 7641538687453706.,8697591601953854.,.476705883918684904076,-50,54, + 7641538687453708.,8697591601953882.,.499851432741035436388,-50,54, + 7642555474090221.,8711834833233132.,.499984866895210017569,-50,54, + 7642555474142065.,8711834833959186.,.499986864166218432863,-50,54, + 7642555474143372.,8711834833977491.,-.499974746919883907649,-50,54, + 7642555474148600.,8711834834050707.,-.499821308662440209074,-50,54, + 7642555474148782.,8711834834053255.,.335685177197282008586,-50,54, + 7642555474148816.,8711834834053731.,.491768806398587973821,-50,54, + 7642555474148818.,8711834834053760.,-.499049803648641435557,-50,54, + 7661357941793655.,8973928672413302.,.499949668543048829575,-50,54, + 7661357941794129.,8973928672419879.,-.496447165522681127655,-50,54, + 7661357941794445.,8973928672424263.,-.494045055783457866794,-50,54, + 7661357941794453.,8973928672424373.,.493357529264056710465,-50,54, + 7661357941796989.,8973928672459556.,.499976966490210665386,-50,54, + 7661357941800323.,8973928672505811.,-.499995814251665851145,-50,54, + 7952142228788689.,6332885946315814.,-.499997738894701410755,-50,53, + 7952142228792455.,6332885946337238.,-.499925351608991001520,-50,53, + 7952142228792696.,6332885946338608.,.499548210858245298521,-50,53, + 7952142228792937.,6332885946339979.,.499021773035322505369,-50,53, + 7952142228792982.,6332885946340235.,.494774097891010743236,-50,53, + 7952142228792998.,6332885946340327.,-.484513964384960261621,-50,53, + 7975281835689739.,6463175724981405.,-.499994950935294709874,-50,53, + 7975281835699968.,6463175725038400.,.499973713573631907708,-50,53, + 7975281835705454.,6463175725068968.,.498392507725017444253,-50,53, + 7975281835705468.,6463175725069047.,-.493591112026850900558,-50,53, + 7975281835705475.,6463175725069086.,-.489582921903159816142,-50,53, + 7975281835706204.,6463175725073147.,.499270019610585810297,-50,53, + 7975281835706704.,6463175725075933.,.499855025941002225238,-50,53, + 7975281835723919.,6463175725171855.,.499996016461349682237,-50,53, + 8134778399524060.,7284178321557554.,-.498476895292401164733,-50,53, + 8134778399524067.,7284178321557586.,.441435385242444914949,-50,53, + 8134778399524393.,7284178321559121.,-.499792693018050125605,-50,53, + 8134778399528953.,7284178321580579.,-.499792870122803932802,-50,53, + 8134778399991793.,7284178323758565.,.499567611574241207790,-50,53, + 8395085770619731.,8304408067720316.,.499974100617459173593,-50,53, + 8395085770623139.,8304408067730874.,.499849561262352463508,-50,53, + 8395085770624190.,8304408067734131.,-.497254588730703147046,-50,53, + 8395085770624241.,8304408067734289.,-.499017016745093950716,-50,53, + 8395085770624843.,8304408067736153.,.499787263052316894937,-50,53, + 8395085770635618.,8304408067769534.,.499979743272606824196,-50,53, + 8395085770683279.,8304408067917188.,.499986750496020102476,-50,53, + 8472742745241456.,8525053540527131.,.499991846512155159947,-50,53, + 8472742745247233.,8525053540542049.,.499953826610962223149,-50,53, + 8472742745247640.,8525053540543100.,.499778039352638510886,-50,53, + 8472742745247901.,8525053540543774.,.482466293128984567667,-50,53, + 8472742745247920.,8525053540543824.,-.453659849334304244482,-50,53, + 8472742745247968.,8525053540543947.,.497179369694994299114,-50,53, + 8472742745248047.,8525053540544151.,.499602250980311781006,-50,53, + 8472742745292635.,8525053540659291.,.499993411694784706460,-50,53, + 8714420965774119.,8948712322874838.,-.499998884140770938848,-50,53, + 8714420965792848.,8948712322891884.,.499768873343361115357,-50,53, + 8714420965793260.,8948712322892259.,.499176412174042336694,-50,53, + 8714420965793360.,8948712322892351.,-.481549913533209153620,-50,53, + 8714420965793371.,8948712322892361.,-.469429809365316513674,-50,53, + 8714420965793427.,8948712322892412.,-.498636551796560846139,-50,53, + 8714420965794251.,8948712322893162.,-.499821478701429096606,-50,53, + 8714420965796066.,8948712322894813.,.499995686027846610166,-50,53, + 8743627225396470.,8972282029192496.,-.499689675983590365841,-50,53, + 8743627225396497.,8972282029192515.,-.498866162974343137348,-50,53, + 8743627225396848.,8972282029192762.,-.488160494323668815658,-50,53, + 8743627225396892.,8972282029192792.,.476144489719182419842,-50,53, + 8743627225396902.,8972282029192800.,-.486513468454807873099,-50,53, + 8743627225397675.,8972282029193344.,-.499973637446233566539,-50,53, + 8743627225401317.,8972282029195906.,.499997928590394201598,-50,53, + 8897696383646605.,8996493776079214.,-.499851663604137145277,-50,53, + 8897696383647995.,8996493776078672.,-.499321686626042079514,-50,53, + 8897696383649921.,8996493776077920.,.499973783991547446575,-50,53, + 8897696383661259.,8996493776073499.,.499979504685551484367,-50,53, + 8897696383695273.,8996493776060236.,.499991192854784239773,-50,53, + 8979216647905793.,8941163147859879.,-.499999844558201124916,-50,53, + 8979216647925187.,8941163147841125.,.499984897954134123087,-50,53, + 8979216647926004.,8941163147840336.,-.496973625029862008780,-50,53, + 8979216647926034.,8941163147840306.,.494570125566547555918,-50,53, + 8979216647926125.,8941163147840219.,-.497747164329842228470,-50,53, + 8979216647926488.,8941163147839867.,.499932217150609929105,-50,53, + 4523144813455067.,8860484359923904.,.499994688918557629673,-49,53, + 4523144813456221.,8860484359920586.,-.499998145988077256999,-49,53, + 4523144813464299.,8860484359897353.,-.499949032862063536373,-49,53, + 4523144813466607.,8860484359890715.,-.499935335638483853420,-49,53, + 4523144813466954.,8860484359889716.,.499200159687281869610,-49,53, + 4523144813467067.,8860484359889392.,-.498199521235874841518,-49,53, + 4612325947553258.,8494113961762945.,.499996908975443983895,-49,53, + 4612325947564114.,8494113961705158.,.499972816894571976549,-49,53, + 4612325947564665.,8494113961702226.,-.499015225584006380608,-49,53, + 4612325947564795.,8494113961701534.,-.495146706847043378343,-49,53, + 4612325947564820.,8494113961701400.,.428674162088903895269,-49,53, + 4612325947564826.,8494113961701368.,.490391170631038590048,-49,53, + 4612325947565151.,8494113961699639.,-.499937534778315546115,-49,53, + 4802115455492662.,7024722001562261.,.499988415850531659792,-49,53, + 4802115455517437.,7024722001314154.,-.499867705508902486547,-49,53, + 4802115455518129.,7024722001307224.,-.499298796326153221565,-49,53, + 4802115455518475.,7024722001303759.,-.499014345715236385365,-49,53, + 4802115455518542.,7024722001303088.,-.467167357030784363889,-49,53, + 4802115455518544.,7024722001303068.,-.496067446922330183338,-49,53, + 4802115455520828.,7024722001280195.,-.499970160934779790348,-49,53, + 4802115455531347.,7024722001174853.,-.499994704636042189412,-49,53, + 5059472696394537.,7629809413056530.,.499867273686662177248,-49,54, + 5059472696394705.,7629809413051661.,-.498294908191864463686,-49,54, + 5059472696394955.,7629809413044413.,.480630415135719970965,-49,54, + 5059472696394957.,7629809413044356.,-.495538182283726362785,-49,54, + 5059472696395628.,7629809413024904.,.499897378056000434343,-49,54, + 5059472696398901.,7629809412930026.,.499987519224829257364,-49,54, + 5059472696432638.,7629809411952055.,.499985043884926743002,-49,54, + 5079689563117984.,7038967591717587.,.499996052218113004271,-49,54, + 5079689563118416.,7038967591704862.,.499969542210204143164,-49,54, + 5079689563128352.,7038967591412187.,.499358667975769231129,-49,54, + 5079689563132229.,7038967591297987.,-.484676584509126418288,-49,54, + 5079689563132240.,7038967591297662.,.499119033334887178339,-49,54, + 5107897798820630.,6199578063912964.,.499959609591848065640,-49,54, + 5107897798875374.,6199578062268163.,.499979346633581159916,-49,54, + 5107897798880780.,6199578062105738.,.499868514060393820656,-49,54, + 5107897798881111.,6199578062095793.,.498936811139054419082,-49,54, + 5107897798881133.,6199578062095133.,-.498103966774578559323,-49,54, + 5107897798881795.,6199578062075243.,-.499967379331999013509,-49,54, + 5222449517569069.,5307259332638852.,.499997814072804293847,-49,55, + 5222449517587295.,5307259331485114.,-.499986772480007871000,-49,55, + 5222449517593643.,5307259331083274.,-.463331772065680424250,-49,55, + 5222449517593653.,5307259331082641.,-.481547501960986238673,-49,55, + 5222449517593663.,5307259331082008.,-.499763231857966728856,-49,55, + 5222449517594816.,5307259331009020.,.499963099791992557917,-49,55, + 5270585385650166.,8977972334548269.,.499983231304848825274,-49,57, + 5270585385680819.,8977972326716343.,.499963758482573360756,-49,57, + 5270585385682436.,8977972326303196.,-.457562556851685401596,-49,57, + 5270585385682450.,8977972326299619.,-.496155858606588581448,-49,57, + 5270585385682452.,8977972326299107.,.498330812570829121091,-49,57, + 5270585385682814.,8977972326206616.,-.499581706183026542408,-49,57, + 5270585385683721.,8977972325974875.,-.499876348203938038873,-49,57, + 5270585385687530.,8977972325001664.,.499988566637272296796,-49,57, + 5305678314021330.,7451636400032266.,.317776556151927824906,-49,104, + 5305678314021331.,-7144290154732925.,-.420555860962015638086,-49,102, + 5305678314021334.,-8541471979738975.,-.355138965240439868439,-49,100, + 5305678314021773.,-7789699923340335.,.255037977637273428780,-49,93, + 5305678314065639.,-6089754163653848.,-.365188728149908596756,-49,86, + 5489113122509524.,-5766590505972803.,-.499976845738517727153,-49,54, + 5489113122558586.,-5766590507460176.,.499838728546571021502,-49,54, + 5489113122559364.,-5766590507483761.,-.481493589234718853990,-49,54, + 5489113122559383.,-5766590507484337.,-.488749776806258401415,-49,54, + 5489113122559402.,-5766590507484913.,-.496005964371229138246,-49,54, + 5489113122559557.,-5766590507489613.,.497430400475700476436,-49,54, + 5489113122560101.,-5766590507506104.,-.499799386537413228184,-49,54, + 5489113122567268.,-5766590507723381.,.499932948024559935773,-49,54, + 5489113122573056.,-5766590507898851.,.499996522995190166771,-49,54, + 5503648895911618.,-6205288324971386.,-.499973738980018623286,-49,54, + 5503648895962147.,-6205288326489359.,.485689825768444636719,-49,54, + 5503648895962219.,-6205288326491522.,.490478552617422010395,-49,54, + 5503648895962363.,-6205288326495847.,-.499943993380108278789,-49,54, + 5503648895962988.,-6205288326514624.,.499958155433257052862,-49,54, + 5503648895973012.,-6205288326815761.,.499989824024073405078,-49,54, + 5548511370793943.,-7531909000925620.,-.498524734181729257128,-49,54, + 5548511370794001.,-7531909000927306.,-.486574568763232663608,-49,54, + 5548511370794016.,-7531909000927743.,.482033232651114828833,-49,54, + 5548511370794103.,-7531909000930272.,.499958480959782308538,-49,54, + 5548511370804647.,-7531909001236772.,-.499996300034844049055,-49,54, + 7074237751946628.,-5622096781216965.,-.089850199524424779073,-49,85, + 7074237752027622.,-7197629755056780.,.496641351311827911854,-49,92, + 7074237752028432.,-4658842052371168.,-.214953678252997362028,-49,98, + 7074237752028440.,-4967757600021511.,.121482295898714870318,-49,103, + 7074237752028441.,6523320454730237.,-.439258852050644463614,-49,102, + 8842797190002404.,4555598928011245.,-.275327658586077643888,-49,86, + 8842797190035219.,5829077737928285.,-.241603372279800849465,-49,93, + 8842797190035547.,7531611566059105.,.074768391265781521372,-49,100, + 8842797190035550.,6209697000026889.,-.401852869873393727593,-49,103, + 8842797190035551.,-5902350754727548.,.299073565063304663147,-49,102, + 5305678314021330.,-7451636400032266.,-.317776556151927322001,-48,103, + 5305678314021331.,7144290154732925.,.420555860962008546748,-48,101, + 5305678314021348.,5008333671416556.,-.080607629348272501979,-48,96, + 5305678314023102.,7792428794092300.,-.313759545668310313647,-48,90, + 5305678314198564.,6089706763479862.,.090896353359190238911,-48,83, + 6189958032313442.,6111250908646246.,-.449802454767560031340,-48,81, + 6189958033017771.,7822191026877127.,.258179019650541974984,-48,88, + 6189958033024814.,5013160476848593.,-.476489441494583545252,-48,94, + 6189958033024884.,5590296602375202.,-.495324252227861954253,-48,100, + 6189958033024885.,8693575800037644.,.037405982177248259838,-48,103, + 6189958033024886.,-6833805304731581.,.009351495544320606337,-48,101, + 7074237751701192.,-5622082568348465.,-.271200950923179606269,-48,82, + 7074237752025168.,-7195810507888803.,.124160499281507210719,-48,89, + 7074237752028407.,-4683147721975992.,-.053738419552382839132,-48,95, + 7074237752028440.,-4967757600021511.,.121482295898715466354,-48,102, + 7074237752028441.,6523320454730237.,-.439258852050649861914,-48,101, + 7958517470771212.,8960446310473519.,-.138230043465246743807,-48,83, + 7958517471029387.,5735734868167607.,.235319538568943385656,-48,89, + 7958517471031969.,7405673258539934.,.120911444006621323138,-48,96, + 7958517471031995.,5588727300024200.,-.261667582886055137131,-48,102, + 7958517471031996.,-6212835604728892.,-.130833791443020784676,-48,101, + 8842797189902967.,-4555529036101627.,-.181000287630395951828,-48,83, + 8842797190034224.,-5833325713030551.,-.189599135426896881270,-48,90, + 8842797190035537.,-7512402425727896.,-.268692097813642185791,-48,97, + 8842797190035550.,-6209697000026889.,.401852869873394891725,-48,102, + 8842797190035551.,5902350754727548.,-.299073565063308661913,-48,101, + 4863538453516224.,8618527817847321.,-.135593642405418129307,-47,80, + 4863538454509520.,5515529430533692.,-.005719729398922638716,-47,86, + 4863538454519453.,7015031191576063.,.268472581138259342165,-47,93, + 4863538454519552.,6211266302377890.,.364490460784791977980,-47,100, + 4863538454519553.,-5591865904726203.,-.271019078430361802978,-47,101, + 5305678314021330.,-7451636400032266.,-.317776556151925310381,-47,102, + 5305678314021331.,7144290154732925.,.420555860961980181399,-47,100, + 5305678314021401.,4981626859270331.,-.020151907546313475028,-47,93, + 5305678314028419.,7794210523408067.,-.078443169238682495950,-47,87, + 5305678314730268.,6089729273174733.,.497070764995780233326,-47,80, + 5747818173215646.,5282152198434968.,.029678169246222224809,-47,81, + 5747818173520033.,6761389711969284.,.336619188159492966303,-47,88, + 5747818173523077.,8648054024831531.,.087324931721656571241,-47,95, + 5747818173523107.,6521751152379235.,-.205602182708881605514,-47,100, + 5747818173523108.,-4970896204723514.,-.411204365417702485823,-47,101, + 6189958030179114.,-6111247206630105.,.027270142024565772512,-47,78, + 6189958032996427.,-7822541802532018.,.185508344975829410276,-47,85, + 6189958033024600.,-5018017932717172.,-.130877636204264942796,-47,91, + 6189958033024882.,-7298747928558097.,.247662126114567147423,-47,98, + 6189958033024885.,-8693575800037644.,-.037405982177245065461,-47,102, + 6189958033024886.,6833805304731581.,-.009351495544345431876,-47,100, + 6632097890420188.,4523620098869152.,-.394781996261123698126,-47,78, + 6632097892505598.,5790236735164387.,.086990841343358342309,-47,85, + 6632097892526452.,7415406560539019.,.137594939313521536976,-47,92, + 6632097892526661.,7919717628560786.,-.387847413101467332520,-47,99, + 6632097892526662.,6832236002380579.,.224305173797444419749,-47,100, + 6632097892526663.,-8699853009441651.,-.102779304810085740922,-47,102, + 7074237750719446.,-5622087605065932.,-.237057684164276992758,-47,79, + 7074237752015350.,-7196455207724585.,.281050460666808032482,-47,86, + 7074237752028309.,-4618855395199534.,-.013434604221042098557,-47,92, + 7074237752028439.,-5745539027375874.,.280370573974757354721,-47,99, + 7074237752028440.,-4967757600021511.,.121482295898717850495,-47,101, + 7074237752028441.,6523320454730237.,-.439258852050671455114,-47,100, + 7516377611074848.,7823193474107748.,.338346432660412223080,-47,81, + 7516377611525664.,5006948355430679.,-.472211052807333875441,-47,87, + 7516377611530172.,6444791989308228.,-.442902929327722852851,-47,94, + 7516377611530217.,7142720852381924.,-.345787469696229964857,-47,100, + 7516377611530218.,-7457913609436273.,-.383149878784765988291,-47,102, + 7958517469988862.,-8960446905669580.,.366279451512945860217,-47,80, + 7958517471021564.,-5734673449087726.,.191175345516176573307,-47,86, + 7958517471031891.,-7340180360492776.,.469772139667680334380,-47,93, + 7958517471031994.,-5900781452376546.,.065416895721598740370,-47,99, + 7958517471031995.,-5588727300024200.,.261667582886058531739,-47,101, + 7958517471031996.,6212835604728892.,.130833791443002130311,-47,100, + 8400657330533772.,7453205702383268.,.084119886810095222043,-47,100, + 8400657330533773.,-6215974209430896.,.336479547240554211743,-47,102, + 8400657330533817.,-6216730636890021.,-.436185626666522155004,-47,94, + 8400657330538200.,-4867727672642911.,-.292469397407354042386,-47,87, + 8400657330976454.,-7605204634249781.,-.476404135737427877345,-47,81, + 8842797189505217.,-4555528742993407.,.215488982227191020622,-47,80, + 8842797190030247.,-5831089171922790.,.202601590744756815128,-47,87, + 8842797190035497.,-7507600140645094.,-.067173024274345874707,-47,94, + 8842797190035549.,-6056023877377218.,-.149536782531559519992,-47,99, + 8842797190035550.,-6209697000026889.,.401852869873399548252,-47,101, + 8842797190035551.,5902350754727548.,-.299073565063324656974,-47,100, + 5426391276952917.,4925247681619198.,.494231855162409579292,-44,53, + 5426391276979477.,4925247693004797.,.499955051979762759576,-44,53, + 5426391276979769.,4925247693129971.,-.498990200890980739318,-44,53, + 5426391276979846.,4925247693162978.,.449917845381466080822,-44,53, + 5426391276979852.,4925247693165550.,.497884702167299361906,-44,53, + 5426391276980436.,4925247693415896.,.499989354267011247465,-44,53, + 5506672652921126.,-8188620198921929.,-.498286649998564224711,-44,53, + 5506672652932514.,-8188620196493254.,-.499300362549874968302,-44,53, + 5506672652932777.,-8188620196437165.,-.499897918051488508456,-44,53, + 5506672652934479.,-8188620196074186.,-.499918461986345175647,-44,53, + 5562950707701891.,7959710905218892.,.499967564823230441438,-44,53, + 5562950707703171.,7959710904912156.,-.482759247640939889669,-44,53, + 5562950707703182.,7959710904909519.,.496295261195173847465,-44,53, + 5562950707703276.,7959710904886993.,.499124573415829356887,-44,53, + 5562950707703323.,7959710904875731.,-.499460855694455345789,-44,53, + 5562950707727338.,7959710899120817.,.492489509254662793523,-44,53, + 5565768841151349.,7185351745633006.,.460015450913106399819,-44,53, + 5565768841151353.,7185351745631771.,.497344327751846622222,-44,53, + 5565768841151380.,7185351745623435.,.499314236696976869443,-44,53, + 5565768841153925.,7185351744837690.,.499735222860429397297,-44,53, + 5565768841154943.,7185351744523392.,.499861511516499523021,-44,53, + 5565768841195046.,7185351732141965.,.477834574786233926276,-44,53, + 5637442019535798.,5203844502139369.,-.499998370441910635843,-44,59, + 5637442019535926.,5203844506333502.,-.402291701083010287657,-44,59, + 5637442019535968.,5203844507709702.,-.479606760227487710915,-44,59, + 5637442019535980.,5203844508102901.,.498303217426182945233,-44,59, + 5666178554236040.,8984047687816206.,.490790283457037061337,-44,53, + 5666178554260108.,8984047686933247.,-.499950692518811249492,-44,53, + 5666178554261242.,8984047686891645.,-.487630763286210855775,-44,53, + 5666178554261258.,8984047686891058.,-.464529514596860695906,-44,53, + 5666178554261277.,8984047686890361.,-.499596791430407763452,-44,53, + 5666178554304651.,8984047685299139.,.472660546074007600680,-44,53, + 5835612929826931.,-8660970603896953.,-.499603964551493496872,-44,53, + 5835612929831679.,-8660970603229427.,-.499823767782800121910,-44,53, + 5835612929832212.,-8660970603154493.,.495557413543751236776,-44,53, + 5835612929832217.,-8660970603153790.,.450485980089220286503,-44,53, + 5835612929832234.,-8660970603151400.,.497243111577029755454,-44,53, + 5835612929832278.,-8660970603145213.,-.499385451722040243428,-44,53, + 6029337333126160.,-5229716333760498.,.499636891025268202806,-44,54, + 6029337333126170.,-5229716333770296.,-.498273536302551578277,-44,54, + 6029337333126200.,-5229716333799693.,-.492004808147136014217,-44,54, + 6029337333126210.,-5229716333809492.,-.489915228715705857083,-44,54, + 6029337333127597.,-5229716335168614.,.499925809656522217981,-44,54, + 6029337333128076.,-5229716335637985.,-.499970129887732817225,-44,54, + 6157045845774343.,-8604786539146163.,-.448756141808213140500,-44,53, + 6157045845834325.,-8604786548223139.,.499928894242406496499,-44,53, + 6157045845834989.,-8604786548323621.,.498653601542129651089,-44,53, + 6157045845835056.,-8604786548333759.,-.498462351040450453628,-44,53, + 6157045845837447.,-8604786548695585.,-.499936509254591950781,-44,53, + 6245226045767564.,-8897040800882148.,.499846673315729735514,-44,68, + 6245226045767679.,-8897042730261987.,.376442884067159831739,-44,68, + 6245226045767681.,-8897042763816419.,.391688038921992588840,-44,68, + 6245226045767686.,-8897042847702499.,.429800926562162656205,-44,68, + 6245226045767695.,-8897042998697443.,.498404126125586224275,-44,68, + 6245226045770319.,-8897087022112206.,-.499852602615462184402,-44,68, + 6245226045789735.,-8897412768537914.,-.492997460757270432277,-44,68, + 6245226045794589.,-8897494205144341.,-.489590274736833273543,-44,68, + 6268442428667591.,-8724803201165547.,-.475131916511628419737,-44,53, + 6268442428709253.,-8724803206464970.,.499988060178560209852,-44,53, + 6268442428709592.,-8724803206508090.,-.426949504109109647412,-44,53, + 6268442428709617.,-8724803206511270.,-.436310553145773695832,-44,53, + 6268442428709772.,-8724803206530986.,-.494348663903624203231,-44,53, + 6268442428709787.,-8724803206532894.,-.499965219323303649732,-44,53, + 6328789084878694.,9000816055887664.,.308073197232497249527,-44,53, + 6328789084993582.,9000816053673514.,.456042396987204418544,-44,53, + 6328789084993593.,9000816053673302.,.461312887707819192528,-44,53, + 6328789084993670.,9000816053671818.,.498206224218223319307,-44,53, + 6328789084994243.,9000816053660776.,-.499982544782687729517,-44,53, + 6477002457250980.,-5149761703815698.,-.476445643598413541145,-44,53, + 6477002457250996.,-5149761703822419.,-.488008689319655696671,-44,53, + 6477002457251012.,-5149761703829140.,-.499571730781114811527,-44,53, + 6477002457251186.,-5149761703902232.,.499680468381039434212,-44,53, + 6477002457252483.,-5149761704447054.,.499869343589285731031,-44,53, + 6477002457253780.,-5149761704991875.,-.499913789618991677101,-44,53, + 6477002457300567.,-5149761724645373.,-.479541476118260561827,-44,53, + 6491364931154787.,-8911683808844645.,.499987029016280960443,-44,53, + 6491364931154921.,-8911683808854609.,-.499037530238177602331,-44,53, + 6491364931154932.,-8911683808855428.,.478654506518541560133,-44,53, + 6491364931199883.,-8911683812198238.,-.470906303351489321554,-44,53, + 6544022097406501.,8620355612595320.,.467638257865309584112,-44,53, + 6544022097454683.,8620355619747341.,.475233332465172859282,-44,53, + 6544022097454811.,8620355619766341.,.489446581178867916962,-44,53, + 6544022097454907.,8620355619780592.,-.499893781770684553020,-44,53, + 6544022097457720.,8620355620198146.,.499841827033605565242,-44,53, + 6616319171054698.,-7038283486052072.,-.469501887304552167571,-44,53, + 6616319171103679.,-7038283470402668.,-.499931956426577423904,-44,53, + 6616319171106486.,-7038283469505833.,-.461375217829566587559,-44,53, + 6616319171106502.,-7038283469500721.,-.469704982880274065438,-44,53, + 6616319171106558.,-7038283469482829.,-.498859114710038639007,-44,53, + 6616319171106560.,-7038283469482190.,-.499900332384927417062,-44,53, + 6702751591225331.,-6911136938702042.,-.499901622292520280918,-44,53, + 6702751591225878.,-6911136938881648.,.489449222635582561857,-44,53, + 6702751591225904.,-6911136938890184.,-.494603404497053322307,-44,53, + 6702751591225959.,-6911136938908243.,-.499330065996669533303,-44,53, + 6702751591228717.,-6911136939813820.,-.499900393888011884951,-44,53, + 6702751591275684.,-6911136955235225.,-.472296297299590642865,-44,53, + 6740450947157420.,-8914209096688882.,-.499818179497634070369,-44,56, + 6740450947157433.,-8914209096636044.,.474424742811021796630,-44,56, + 6740450947157886.,-8914209094794809.,.499969614194196520990,-44,56, + 6740450947176444.,-8914209019365140.,-.494813130033361534063,-44,56, + 6740450947195002.,-8914208943935472.,-.479676014431182924500,-44,56, + 6754791752061971.,5741424028077882.,.499346245211323599310,-44,53, + 6754791752062152.,5741424028149287.,.339646895953593158995,-44,53, + 6754791752062218.,5741424028175324.,.463734274844893711222,-44,53, + 6754791752062238.,5741424028183215.,-.498663505081765213797,-44,53, + 6754791752062503.,5741424028287757.,.499565210337415099326,-44,53, + 6754791752063567.,5741424028707507.,.499987388995084943961,-44,53, + 6754791752068088.,5741424030491050.,.499667341039408164496,-44,53, + 6794379564777760.,7162509413519012.,.499407557313294621873,-44,55, + 6794379564778169.,7162509412698099.,.493647710047810053082,-44,55, + 6794379564778218.,7162509412599751.,-.497262653594461616350,-44,55, + 6794379564778308.,7162509412419109.,.499024288831760417044,-44,55, + 6794379564779633.,7162509409759672.,.499893690249861681412,-44,55, + 6794379564782054.,7162509404900429.,.499867856182108426368,-44,55, + 6794379564797676.,7162509373545165.,.495613374470409585149,-44,55, + 6794379564805487.,7162509357867533.,.491368113306582766685,-44,55, + 6990987887114136.,9005430516762466.,.483118656654022787301,-44,53, + 6990987887148174.,9005430517107821.,-.497046306006405550962,-44,53, + 6990987887148195.,9005430517108034.,-.428297779814023674419,-44,53, + 6990987887148304.,9005430517109139.,.499968173786287331341,-44,53, + 6990987887160697.,9005430517234880.,.497713642538579754837,-44,53, + 7138546116895383.,-8855698191057577.,-.499929779277591103536,-44,54, + 7138546116897457.,-8855698192907019.,.497269586714890451726,-44,54, + 7138546116897501.,-8855698192946254.,-.473858890916259283224,-44,54, + 7138546116897512.,-8855698192956063.,-.466641001668219719365,-44,54, + 7138546116897596.,-8855698193030969.,.497568448578792224737,-44,54, + 7138546116898569.,-8855698193898619.,.499675961621264825078,-44,54, + 7138546116898708.,-8855698194022569.,.499979246340926745022,-44,54, + 7138546116938886.,-8855698229850360.,-.475511599357758988408,-44,54, + 7322656671988526.,9006019365558209.,.499684161023428603712,-44,53, + 7322656671992129.,9006019365588068.,-.499889961190417678738,-44,53, + 7322656671992805.,9006019365593670.,-.499297051828828868256,-44,53, + 7322656671993143.,9006019365596471.,-.499005583901724068444,-44,53, + 7322656671993202.,9006019365596959.,.432997615552879820564,-44,53, + 7322656671993237.,9006019365597249.,.477406245325911791449,-44,53, + 7322656671993251.,9006019365597365.,.495169687253818395756,-44,53, + 7322656671995394.,9006019365615124.,.499892148514659518513,-44,53, + 7357968097658117.,-7349500407631196.,-.499530412912279483570,-44,54, + 7357968097663086.,-7349500412276730.,.499948908795689701337,-44,54, + 7357968097664220.,-7349500413336910.,.499509762692673592962,-44,54, + 7357968097664354.,-7349500413462187.,.497696219712441083607,-44,54, + 7357968097664385.,-7349500413491168.,-.495260583974085226672,-44,54, + 7357968097664395.,-7349500413500518.,.474753355188824612008,-44,54, + 7461059150899550.,6681804354461914.,.499940445808595919156,-44,61, + 7461059150900673.,6681804207268677.,-.499841381398710924567,-44,61, + 7461059150902114.,6681804018394717.,.499508214769176875630,-44,61, + 7461059150902234.,6681804002666144.,-.463073993658175168728,-44,61, + 7461059150902243.,6681804001486500.,.489732328176735951908,-44,61, + 7461059150902263.,6681803998865071.,.495968592659861673026,-44,61, + 7461059150911416.,6681802799168092.,.499088677083036878159,-44,61, + 7819356134935921.,-8992864847946726.,.499961999365180756841,-44,53, + 7819356134936048.,-8992864847950392.,-.499110626364389961580,-44,53, + 7819356134936056.,-8992864847950623.,-.491178177648423745660,-44,53, + 7819356134936072.,-8992864847951085.,-.475313274637448723670,-44,53, + 7819356134945628.,-8992864848227005.,-.498671005488200974539,-44,53, + 7880037969502917.,8724180330457179.,.498986018163460575286,-44,53, + 7880037969509904.,8724180329567466.,.499813008835845570037,-44,53, + 7880037969511237.,8724180329397724.,.489080245982470808667,-44,53, + 7880037969511261.,8724180329394668.,.368856541404398022983,-44,53, + 7880037969511302.,8724180329389447.,.496807675187885486122,-44,53, + 7880037969512233.,8724180329270895.,.499782860769904710937,-44,53, + 7880037969524011.,8724180327771104.,.497717905973426752505,-44,53, + 7880037969547434.,8724180324788458.,.481565552205218558087,-44,53, + 7961347698809129.,5771335184486205.,.499915941399055986332,-44,55, + 7961347698810220.,5771335186691721.,-.498543958951099784511,-44,55, + 7961347698810229.,5771335186709914.,.484053438105025143985,-44,55, + 7961347698810910.,5771335188086593.,-.499414565947128831835,-44,55, + 7961347698813726.,5771335193779287.,.499838843015274278763,-44,55, + 7961347698822920.,5771335212365451.,.498502402727158080399,-44,55, + 8016984453607759.,-6516512838653414.,-.470915152196985767883,-44,55, + 8016984453656019.,-6516512935859793.,-.499786586287429021557,-44,55, + 8016984453658967.,-6516512941797722.,.499790444859640472227,-44,55, + 8016984453660324.,-6516512944531021.,-.465064594797044156166,-44,55, + 8016984453660333.,-6516512944549149.,-.467779052953875844919,-44,55, + 8016984453660432.,-6516512944748557.,-.497637980113707535607,-44,55, + 8016984453660441.,-6516512944766686.,.499647582195882027690,-44,55, + 8049376796585164.,-8101215316279530.,-.457467052802254938237,-44,53, + 8049376796616936.,-8101215309169198.,-.491640695946622821024,-44,53, + 8049376796640765.,-8101215303836449.,-.499930134247179088071,-44,53, + 8049376796642080.,-8101215303542162.,-.499451244072310853513,-44,53, + 8049376796642133.,-8101215303530302.,.497527181057887862593,-44,53, + 8049376796642167.,-8101215303522693.,.438985077403533811467,-44,53, + 8049376796642186.,-8101215303518441.,.494505679717702118892,-44,53, + 8049376796642422.,-8101215303465626.,.499920264532193347655,-44,53, + 8198893031068675.,8016624414346944.,-.499442883396543154676,-44,53, + 8198893031068710.,8016624414355113.,.470106087399978985622,-44,53, + 8198893031068738.,8016624414361649.,.445745241190653217313,-44,53, + 8198893031070646.,8016624414807029.,.499965450760607561252,-44,53, + 8198893031087230.,8016624418678194.,.495567980269726537177,-44,53, + 8466376832747454.,-5042111624814001.,-.481686871650184682798,-44,53, + 8466376832794331.,-5042111644702130.,.499795228414465004828,-44,53, + 8466376832794728.,-5042111644870561.,-.499184761080705102410,-44,53, + 8466376832794854.,-5042111644924019.,.493582831953224211446,-44,53, + 8466376832794873.,-5042111644932079.,-.483698222845541927771,-44,53, + 8466376832796400.,-5042111645579927.,-.499898501663844152242,-44,53, + 8466376832799305.,-5042111646812408.,-.499834100656945073611,-44,53, + 8627767282627698.,6064183514929205.,.499920468043830143403,-44,54, + 8627767282627973.,6064183515194370.,.498927256763518660558,-44,54, + 8627767282628024.,6064183515243547.,-.446711647126084877935,-44,54, + 8627767282628028.,6064183515247403.,.498728436687970271543,-44,54, + 8627767282632720.,6064183519771600.,.499730882303583829407,-44,54, + 8627767282642764.,6064183529456390.,.497869167514491598415,-44,54, + 8666709478623493.,4971138076363839.,.493072283521916481495,-44,53, + 8666709478648689.,4971138065606164.,.499928376372564124609,-44,53, + 8666709478652430.,4971138064008909.,-.499883385489109573165,-44,53, + 8666709478652875.,4971138063818911.,.461898971855566850371,-44,53, + 8666709478652876.,4971138063818485.,-.497737475867194416354,-44,53, + 8666709478662662.,4971138059640257.,.499215906118167084101,-44,53, + 8704521642365796.,-9007033143360346.,.499913265715819016289,-44,53, + 8704521642366353.,-9007033143362077.,-.480432401340219255340,-44,53, + 8704521642366371.,-9007033143362133.,-.451071787547565965935,-44,53, + 8704521642366408.,-9007033143362249.,.498169503749933824341,-44,53, + 8704521642366545.,-9007033143362675.,.499414631922834162618,-44,53, + 8704521642369815.,-9007033143372842.,-.499900847405102495998,-44,53, + 8704521642385891.,-9007033143422830.,-.494456430823921458056,-44,53, + 7146344544202515.,-5664593475764366.,-.264191654117720678617,-36,68, + 7146344544205550.,-5651558250023401.,-.492275489606574606073,-36,68, + 7146344544206764.,-5646344159727012.,-.495459653897401249922,-36,68, + 7146344544206806.,-5646163771100614.,.496437567296774464323,-36,68, + 7146344544206847.,-5645987677441510.,.276276348322878160942,-36,68, + 7146344544206848.,-5645983382474215.,.490443865143164849654,-36,68, + 7146344544206849.,-5645979087506919.,-.295387422453062310149,-36,68, + 7146344544224381.,-5570679720887042.,.447827479311610627319,-36,68, + 7170739958448096.,-6501843853097744.,-.498018990749645833128,-36,69, + 7170739958448119.,-6502041421593349.,.486885101881944715732,-36,69, + 7170739958448121.,-6502058601462531.,-.470914903643388072262,-36,69, + 7170739958448127.,-6502110141070080.,-.344281875414016273441,-36,69, + 7170739958448129.,-6502127320939263.,-.302059851020595902141,-36,69, + 7170739958448167.,-6502453738453739.,-.498794942903490688595,-36,69, + 7170739958449067.,-6510184679586070.,.107330671873303471485,-36,69, + 7170739958449967.,-6517915620718399.,-.169889677795187091615,-36,69, + 7170739958494683.,-6902023135909449.,.189697677001847768205,-36,69, + 7158542251322394.,4877362288068754.,-.459864201856895264983,-35,69, + 7158542251327426.,4790913186337764.,.489986480020034407409,-35,69, + 7158542251327472.,4790122912355327.,-.486061500180152524195,-35,69, + 7158542251327487.,4789865214317575.,-.001846514977179322205,-35,69, + 7158542251327488.,4789848034448392.,-.436264640562781418045,-35,69, + 7158542251327489.,4789830854579208.,.129313176692518967076,-35,69, + 7158542251327548.,4788817242297385.,.491223746876062042566,-35,69, + 7158542251327792.,4784625354216627.,.312603422958985270626,-35,69, + 5371956115275269.,6779401237121191.,-.472545200358289849985,-34,71, + 5371956115275774.,6848807908624262.,-.496061838569303186396,-34,71, + 5371956115275775.,6848945347577733.,-.074236621364534482445,-34,71, + 5371956115275777.,6849220225484676.,-.230655802809018470595,-34,71, + 5371956115275838.,6857604001646432.,.453951120246026480724,-34,71, + 5371956115281547.,7642242987014378.,.158653370331579616131,-34,71, + 5371956115312579.,5953624295560178.,.117148012027400209323,-34,70, + 7161591678107647.,5461501442824271.,.367204809242481278970,-33,71, + 7161591678107649.,5460951687010385.,-.162309375639435698215,-33,71, + 7161591678107654.,5459577297475669.,-.487389942332281208200,-33,71, + 7161591678107722.,5440885599803526.,.308062685516740952231,-33,71, + 7161591678107926.,5384810506787098.,-.346674160702762396684,-33,71, + 7161591678137217.,-5333276531008744.,.392644044316313122487,-33,72, + 4923784867822300.,6589305048283398.,.289680922363736285539,-32,69, + 4923784867862330.,8700989927483741.,.375226168990261485895,-32,72, + 4923784867864257.,6582231020762181.,.117604572506830375355,-32,72, + 4923784867871965.,-7571218424532180.,.476643823333144494098,-32,74, + 4923784867872710.,-5423881537652133.,.002039768250550315580,-32,73, + 4923784867872760.,-5533832700429714.,-.497395360720570532642,-32,73, + 4923784867872767.,-5549225863218576.,.152190781783874938035,-32,73, + 4923784867872768.,-5551424886474127.,-.468094569271074963661,-32,73, + 4923784867872769.,-5553623909729679.,-.088078976979909598166,-32,73, + 4588037610665507.,-6850191620325553.,.442125291434398896354,-30,71, + 4588037610666381.,-4928245294979136.,.228395855102084936530,-30,71, + 4588037610668031.,-5199427693287393.,-.317535561337497733613,-30,73, + 4588037610668033.,-5181835507242980.,.025710854981768624036,-30,73, + 4588037610668038.,-5137855042131947.,.462347583777452769433,-30,73, + 4588037610668062.,-4926748809598985.,.492208546298728625198,-30,73, + 4588037610668129.,-8674821154222239.,.038553450329220524799,-30,74, + 4588037610768106.,6836481095720302.,-.016288723779051301828,-30,66, + 5818983827634773.,6201168844505622.,.235478712776202786271,-30,72, + 5818983827635815.,6473617519748019.,-.084631118551208453720,-30,74, + 5818983827636223.,-5631955090988658.,.399195708307081972945,-30,77, + 5818983827636224.,-5772692579343986.,.499399987357493704568,-30,77, + 5818983827636225.,-5913430067699313.,-.395388720923602004402,-30,77, + 5818983827638308.,-4672962786119567.,-.328373171793910596211,-30,71, + 5818983827647871.,-6425555544614704.,-.359205869376511516992,-30,69, + 5818983827666997.,-8470092619419134.,.141839141613328287534,-30,68, + 5378363199848147.,-5312688698518718.,.077471598562072647154,-26,70, + 5378363199848322.,-8936224563050060.,-.454746988297900643881,-26,72, + 5378363199848439.,-5624651954149625.,.175621376109609486018,-26,75, + 5378363199848441.,-8997504094614022.,.056640525419207801348,-26,76, + 5378363199848447.,-8968418614233196.,.484670612069352553853,-26,78, + 5378363199848449.,4963921984997782.,-.433895313344602229315,-26,85, + 5378363199848497.,6756611336071036.,.288962397877130385941,-26,73, + 5378363199849255.,7089726719167689.,.462475989520125993049,-26,69, + 5378363199850363.,8417898892831053.,-.224282263620340510952,-26,68, + 5378363199859402.,6021480136746468.,.349598647942496311757,-26,65, + 5378363199895558.,6474612310849757.,-.363851591904364337193,-26,63, + 5560206444457848.,4652813891337958.,-.012324416651601840789,-25,65, + 5560206444461755.,5712351583125413.,.245250154454826018792,-25,69, + 5560206444461838.,8504400282982534.,.332012545318330609467,-25,70, + 5560206444462079.,6391452069778419.,.377448972963056097547,-25,78, + 5560206444462081.,-5811473219851781.,.359401038364582028115,-25,77, + 5560206444462084.,-4830568025490804.,-.355598969944805715713,-25,75, + 5560206444462087.,-8208267746018625.,.062608276728609194611,-25,75, + 8249388044351482.,4785926593330462.,-.334087245181575095084,-25,62, + 8249388044378847.,8199283857602472.,.151943823554669171443,-25,65, + 8249388044385273.,4535288819325084.,.374432768529834303742,-25,67, + 8249388044386191.,7966113965513265.,-.487048013623771510126,-25,71, + 8249388044386303.,5428135528320559.,.175382541432844737181,-25,77, + 8249388044386305.,-7158127452840863.,.354577739125881952027,-25,78, + 8249388044386311.,-7650165372660800.,.368834950717042344353,-25,75, + 8249388044386323.,-5290241063692808.,-.350816535029397638575,-25,73, + 8249388044386366.,-8696832531120730.,-.479991921534667629965,-25,72, + 6904797244423595.,-5250893179935818.,.203320686825141879679,-24,67, + 6904797244423774.,-7352785059376571.,-.019896615523172469739,-24,68, + 6904797244424132.,-8438259649871543.,.063570278119088233819,-24,71, + 6904797244424188.,-8911364831858104.,.071032210903440853208,-24,75, + 6904797244424191.,-8623861563209766.,.411355773421189600412,-24,77, + 6904797244424193.,4695268473136104.,-.156635787444181080085,-24,76, + 6904797244424201.,5090508186512263.,-.105458961261277232928,-24,73, + 8967144255500256.,5638292417329436.,-.310012125566755782466,-23,61, + 8967144255520753.,8449182442499160.,.261233383607616852575,-23,72, + 8967144255520767.,4543064756842390.,.270923321049377290109,-23,75, + 8967144255520769.,-8928268995797161.,.218342493204407957496,-23,76, + 8967144255521090.,-5664529744248972.,-.273686360091744592503,-23,67, + 8967144255523395.,-5776814727830040.,.383583528766174465582,-23,64, + 8967144255562421.,-5724720000282061.,.252945315172533760352,-23,60, + 5346671783305164.,-4532174741094225.,-.287186992345632965535,-21,60, + 5346671783313066.,-6016511092550103.,.129014449183179290452,-21,65, + 5346671783313392.,-9006670999530532.,-.446523518098164248234,-21,70, + 5346671783313405.,-6753286420561068.,.212629783463605132047,-21,72, + 5346671783313407.,-8998747172771154.,-.130827102482143670028,-21,74, + 5346671783313409.,4507825668355074.,-.399648554978521816834,-21,73, + 5346671783314057.,5708672534279079.,.197609700359476432314,-21,64, + 5346671783318008.,5057750463849714.,.274933782613593596632,-21,61, + 5346671783332169.,5156915884907076.,-.256113842129952063110,-21,59, + 6467564815197495.,7694158457753160.,.069595014158335943481,-20,57, + 6467564815252374.,4969792286143380.,-.123932645506241227276,-20,62, + 6467564815252536.,8514618217166241.,.025524871209206437933,-20,63, + 6467564815253503.,4504306727569052.,.416375462631839455536,-20,72, + 6467564815253505.,-9005785054341149.,.499619536438339366537,-20,73, + 6467564815253508.,-9006845704619530.,.463341029355129047210,-20,71, + 6467564815257616.,-4521180052804444.,.393213159223261121202,-20,60, + 6467564815278584.,-6893280570123314.,-.439221696876370466024,-20,58, + 7804232761081636.,-7740558902619957.,-.213007320049015036990,-19,64, + 7804232761081813.,-6051701073430576.,-.274896714167321374940,-19,66, + 7804232761081855.,-9006500434641636.,-.373046353784050331636,-19,72, + 7804232761081857.,4503949037414712.,.480044869367149458447,-19,71, + 7804232761081860.,4503686979838540.,-.263425036978154096491,-19,69, + 7804232761081865.,5066593256798838.,.037561568739374830105,-19,68, + 5519007584323628.,8412923421012485.,-.421225712864406194777,-18,56, + 5519007584350422.,8536296274778100.,.461182643099359286862,-18,59, + 5519007584353556.,6579468656466393.,-.003381311206845869310,-18,61, + 5519007584354303.,4503601697385909.,.278266040396377130279,-18,70, + 5519007584354305.,-9007195114666475.,.223198743361498887020,-18,71, + 5519007584354313.,-5066549321043188.,-.157556302660084088134,-18,67, + 5519007584354314.,-5629499274094495.,.139965468666348370777,-18,67, + 5519007584354348.,-6192449393869971.,-.286757037157812236112,-18,65, + 5519007584354417.,-7951667813477454.,-.460149721453701021042,-18,64, + 7304668022890131.,8375572950390052.,-.051890879738437208388,-12,53, + 7304668022910929.,-6614516798179550.,.324696568804068586505,-12,59, + 7304668022910975.,-9007199139549656.,-.035521643731176792368,-12,65, + 7304668022910977.,9007199190975358.,-.168854982196523057174,-12,65, + 7304668022911101.,8794727752652333.,-.243620194290625766355,-12,58, + 7304668022911680.,6162005947942807.,-.130318021606954128614,-12,55, + 7304668022915561.,8104968146647738.,.269916011962678463381,-12,53, + 7304668022922744.,4779753490759630.,-.300840654282271858760,-12,54, + 7347785269663743.,9007198903458364.,-.021919879766200681973,-11,64, + 7347785269663745.,-9007198890195746.,.111413503171721881634,-11,64, + 5500059640559615.,9007197819972738.,.419116646084534239269,-10,63, + 5500059640559617.,-9007197826197851.,-.447546919358002225496,-10,63, + 4586976137695743.,-9007193528220571.,-.199161840817056272896,-9,62, + 4586976137695745.,9007193528017475.,-.332693586842657359045,-9,62, + 8944333985714495.,9006832755334834.,-.081722808608585275535,-6,59, + 8944333985714497.,-9006832755343096.,.064132570972028475637,-6,59, + 6851593493588863.,9001336337944357.,.314533243558015997417,-4,57, + 6851593493588865.,-9001336337944208.,-.097401991988137061758,-4,57 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/sinh.c b/src/regress/lib/libm/fpaccuracy/sinh.c new file mode 100644 index 000000000..7ce48e143 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/sinh.c @@ -0,0 +1,927 @@ +/* $OpenBSD: sinh.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:42:49. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 895 +#define F sinh +#define Fs "sinh" +#define Fn fpaccuracy_sinh + /* 17 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -6249411755243645.,-9007199254740283.,.103196517177171991624,-43,-971, + -5721046972942144.,-5700537334419854.,.488633430151361302024,-43,-885, + -5721046972925447.,-5700537323598927.,-.499993262587769738941,-43,-885, + -5721046972925000.,-5700537323309238.,.499549777642449147226,-43,-885, + -5721046972924579.,-5700537323036397.,-.478522700109195028439,-43,-885, + -5721046972924566.,-5700537323027972.,-.489722295628078899978,-43,-885, + -5721046972924553.,-5700537323019548.,.499078096401502879238,-43,-885, + -5721046972923304.,-5700537322210101.,.499919233049550397837,-43,-885, + -5435857074785285.,-6660138328011533.,.499988305908686520015,-43,-838, + -5435857074785138.,-6660138327900229.,.499586499698867517568,-43,-838, + -5435857074785097.,-6660138327869185.,.472263215193107128569,-43,-838, + -5435857074785091.,-6660138327864642.,.492654917518360661059,-43,-838, + -5435857074745612.,-6660138297972325.,.432898752682019111154,-43,-838, + -5235936078127544.,-7703011132717425.,-.021130257123692267836,-43,-805, + -5235936077964368.,-7703010989819149.,.493230038989191235512,-43,-805, + -5235936077952827.,-7703010979712337.,-.499800232388637983583,-43,-805, + -5235936077952801.,-7703010979689568.,-.494860588081076550372,-43,-805, + -5235936077952749.,-7703010979644030.,-.484981501371774916622,-43,-805, + -5235936077952734.,-7703010979630895.,.479406646689007276023,-43,-805, + -5235936077951816.,-7703010978826974.,.499918672130069824958,-43,-805, + -5225924999061917.,-4936371603070496.,.458340416052601789607,-43,-804, + -5225924999026132.,-4936371582987936.,-.499758023350565745101,-43,-804, + -5225924999025778.,-4936371582789272.,.468419395215638885728,-43,-804, + -5225924999025768.,-4936371582783660.,.473170053633392021195,-43,-804, + -5225924999025713.,-4936371582752794.,.499298560886554899661,-43,-804, + -5225924999024870.,-4936371582279702.,.499753168346571589856,-43,-804, + -5225924999014345.,-4936371576373067.,.495680978753790352389,-43,-804, + -5225924998993295.,-4936371564559797.,.466333776981019908368,-43,-804, + -4971314683742176.,-5829729209623624.,.499934297002806820308,-43,-762, + -4971314683741026.,-5829729208861445.,-.499707763893671754629,-43,-762, + -4971314683740785.,-5829729208701720.,.498615487851377866449,-43,-762, + -4971314683740692.,-5829729208640082.,-.497883348709443840095,-43,-762, + -4971314683735035.,-5829729204890830.,.498806064878813457761,-43,-762, + -4971314683713612.,-5829729190692448.,.472367804728957995232,-43,-762, + -4869231612618775.,-6965511757490930.,.499932956335965530438,-43,-745, + -4869231612618421.,-6965511757210602.,.499634260854882019723,-43,-745, + -4869231612618085.,-6965511756944527.,-.466761377580478837717,-43,-745, + -4869231612618067.,-6965511756930274.,.499324283534049688957,-43,-745, + -4869231612612465.,-6965511752494123.,.498566753095184560226,-43,-745, + -4869231612580738.,-6965511727369924.,.437216570061713941935,-43,-745, + -8534672888137416.,-8456907839345218.,.499644358190255861918,-44,-646, + -8534672888136250.,-8456907838784698.,-.499734927073299245668,-44,-646, + -8534672888130502.,-8456907836021523.,.499351477196144463478,-44,-646, + -7158307767713492.,-4618956345038370.,.479727690196613904010,-44,-534, + -7158307767704351.,-4618956342638334.,.486192513383065557347,-44,-534, + -7158307767664740.,-4618956332238178.,.499796133155530736014,-44,-534, + -7158307767661693.,-4618956331438166.,.499872620271206537692,-44,-534, + -7158307767661370.,-4618956331353360.,.497903455556788530845,-44,-534, + -7158307767661239.,-4618956331318964.,-.499799652584513212479,-44,-534, + -6250969613670285.,-6958782866547250.,.452851240622714691497,-44,-459, + -6250969613607375.,-6958782841662507.,.499932321326358825308,-44,-459, + -6250969613605867.,-6958782841066001.,.499714433895651669815,-44,-459, + -6250969613605826.,-6958782841049782.,-.498965944153735010881,-44,-459, + -6250969613605539.,-6958782840936256.,-.489729648825306896263,-44,-459, + -6250969613605523.,-6958782840929928.,.486394968187523441491,-44,-459, + -6250969613599794.,-6958782838663759.,.499645621102067057771,-44,-459, + -5459523783335213.,-7434151719843577.,-.499591391095298434203,-44,-394, + -5459523783334868.,-7434151719697787.,.497436802692919091976,-44,-394, + -5459523783334674.,-7434151719615805.,-.478148599300799582633,-44,-394, + -5459523783334662.,-7434151719610734.,-.486947726021343999889,-44,-394, + -5459523783334650.,-7434151719605663.,-.495746856200918139592,-44,-394, + -5459523783333167.,-7434151718978973.,-.499865989236733256088,-44,-394, + -5459523783332144.,-7434151718546672.,.499959003620505940753,-44,-394, + -5459523783316006.,-7434151711727034.,.495827026187236150671,-44,-394, + -5459523783307937.,-7434151708317215.,.491415067269702064510,-44,-394, + -5030775358099659.,-6650615977671784.,.493535544800728213787,-44,-359, + -5030775358077030.,-6650615969117031.,-.499978497044351894036,-44,-359, + -5030775358076870.,-6650615969056545.,.499895611579419945056,-44,-359, + -5030775358075910.,-6650615968693623.,.499128710674809762532,-44,-359, + -5030775358075133.,-6650615968399883.,.492243498749564351271,-44,-359, + -5030775358075110.,-6650615968391188.,.498474498121009757484,-44,-359, + -7955510253569616.,-5197079999041438.,.499307211626394206970,-45,-273, + -7955510253569030.,-5197079998954880.,.499311412372823090569,-45,-273, + -7955510253535628.,-5197079994021074.,.497167833874311902828,-45,-273, + -7955510253488455.,-5197079987053155.,.486161956021728411676,-45,-273, + -7955510253487283.,-5197079986880039.,.485769583255697595845,-45,-273, + -7751426433577010.,-8052724835052215.,.499994874334898042543,-45,-264, + -7751426433576071.,-8052724834837303.,-.499151617332687077639,-45,-264, + -7751426433575578.,-8052724834724470.,.498099312921261030111,-45,-264, + -7751426433575562.,-8052724834720808.,.453385320680740763943,-45,-264, + -7003193523298569.,-5024709179687964.,.496680272115105273290,-45,-234, + -7003193523258104.,-5024709173909124.,.497741173467663583202,-45,-234, + -7003193523257993.,-5024709173893272.,.499217705944284324046,-45,-234, + -7003193523257919.,-5024709173882703.,-.499797966854662273165,-45,-234, + -7003193523255905.,-5024709173595083.,.499956133683260691720,-45,-234, + -7003193523247775.,-5024709172434031.,.499789178112664875582,-45,-234, + -5975887011649500.,-4612370767312408.,.492560625462261950644,-45,-192, + -5975887011586304.,-4612370759027951.,-.499147458237990535322,-45,-192, + -5975887011586271.,-4612370759023625.,-.480918013580890699847,-45,-192, + -5975887011586260.,-4612370759022183.,-.474841532930178197480,-45,-192, + -5975887011585976.,-4612370758984953.,-.499776188569182041599,-45,-192, + -5975887011585812.,-4612370758963455.,.499909295949794966802,-45,-192, + -5975887011582685.,-4612370758553532.,.499990795988161628606,-45,-192, + -4747724051188513.,-7190476227191179.,.491462149330925953727,-45,-141, + -4747724051138016.,-7190476216871328.,.499949075802417797213,-45,-141, + -4747724051134310.,-7190476216113948.,-.491238653104580364251,-45,-141, + -4747724051134291.,-7190476216110066.,.455649277656138895815,-45,-141, + -4747724051134269.,-7190476216105570.,.499414247496321477456,-45,-141, + -4747724051133949.,-7190476216040173.,.499631672789483973386,-45,-141, + -4747724051133309.,-7190476215909378.,-.499935260970947308971,-45,-141, + -8424068809083671.,-7365300827610203.,.499987635546417494092,-46,-119, + -8424068809081261.,-7365300827357954.,-.499828913112171405756,-46,-119, + -8424068809080660.,-7365300827295050.,.499385614205833352194,-46,-119, + -8424068809080651.,-7365300827294107.,-.495634471830749428288,-46,-119, + -8424068809080468.,-7365300827274953.,-.394376247372096382131,-46,-119, + -8424068809080408.,-7365300827268673.,-.361176840360023988950,-46,-119, + -8424068809080056.,-7365300827231830.,-.499740427077654155771,-46,-119, + -8424068809072225.,-7365300826412182.,.499952121209178058934,-46,-119, + -8016516981130201.,-5756315058339859.,.499968542829346114619,-46,-111, + -8016516981127512.,-5756315058119892.,-.499892246276529318209,-46,-111, + -8016516981127234.,-5756315058097152.,.499749781043947208397,-46,-111, + -8016516981127143.,-5756315058089708.,.496035461117028983267,-46,-111, + -8016516981127138.,-5756315058089298.,-.493179611685422918464,-46,-111, + -8016516981127128.,-5756315058088480.,-.471609757377512614550,-46,-111, + -8016516981121856.,-5756315057657219.,-.499998751845499024132,-46,-111, + -8016516981054818.,-5756315052173367.,.496967176001010149099,-46,-111, + -6891469569620391.,-5500270997873606.,.499971075875240210987,-46,-88, + -6891469569613060.,-5500270997300589.,.499983276118816582180,-46,-88, + -6891469569612846.,-5500270997283861.,-.499880857445968225320,-46,-88, + -6891469569612687.,-5500270997271433.,-.495107045696365773310,-46,-88, + -6891469569612681.,-5500270997270965.,.486205173065108392998,-46,-88, + -6891469569612632.,-5500270997267134.,-.499745041879616345663,-46,-88, + -5216203569105290.,-7498687993325713.,.499970661049328473930,-48,27, + -5216203569084809.,-7498687992780084.,-.499343542191538636196,-48,27, + -5216203569084745.,-7498687992778379.,-.495093621944900208387,-48,27, + -5216203569084731.,-7498687992778007.,.474586048057374822869,-48,27, + -5216203569084347.,-7498687992767776.,-.499914439112750273611,-48,27, + -5216203569080818.,-7498687992673761.,-.499946913494335220802,-48,27, + -5216203569073760.,-7498687992485732.,.499984601595814006122,-48,27, + -5544508544477059.,-5206157906112364.,.499973825086226750072,-49,39, + -5544508544424086.,-5206157905622470.,.499625209586812794666,-49,39, + -5544508544423711.,-5206157905619002.,.497470537669592263203,-49,39, + -5544508544423606.,-5206157905618030.,-.463132770881208476972,-49,39, + -5544508544423590.,-5206157905617882.,-.495224703628661116096,-49,39, + -5544508544423586.,-5206157905617846.,.496752313183818614613,-49,39, + -5544508544421344.,-5206157905597112.,.499870195217508106658,-49,39, + -5544508544419973.,-5206157905584433.,.499992641715481637258,-49,39, + -5067862284381690.,-8930234392711664.,.456667332461447960776,-49,41, + -5067862284381683.,-8930234392711553.,.499651285672965880664,-49,41, + -5067862284381427.,-8930234392707491.,-.499792712111563037005,-49,41, + -5067862284379752.,-8930234392680921.,.499938897438004709926,-49,41, + -5067862284368934.,-8930234392509312.,.499994636311456246048,-49,41, + -4925871372192576.,-6939405474722284.,.499859124031280354099,-49,41, + -4925871372192524.,-6939405474721643.,.496630880581564485289,-49,41, + -4925871372192475.,-6939405474721038.,-.487180348877159353838,-49,41, + -4925871372192472.,-6939405474721002.,.493402637072639391475,-49,41, + -4925871372191958.,-6939405474714666.,.499954226895404851945,-49,41, + -4925871372191649.,-6939405474710856.,-.499998224808640154612,-49,41, + -8886660217089530.,-5889656617147711.,-.499997917295227595621,-50,42, + -8886660217060374.,-5889656616995194.,-.499898008961099608289,-50,42, + -8886660217059859.,-5889656616992501.,.499795035963514957947,-50,42, + -8886660217059634.,-5889656616991324.,.489952191126314368569,-50,42, + -8886660217059608.,-5889656616991188.,.497703684596633122503,-50,42, + -8886660217059595.,-5889656616991119.,-.498420568669385291912,-50,42, + -8886660217057020.,-5889656616977649.,-.499955365688751794488,-50,42, + -8886660217053666.,-5889656616960105.,.499987225317925649305,-50,42, + -8757940169978781.,-5253377971443196.,-.355194991690824129798,-50,42, + -8757940169978712.,-5253377971442874.,-.405432979323745568745,-50,42, + -8757940169978586.,-5253377971442286.,-.497171913313035155170,-50,42, + -8757940169978583.,-5253377971442272.,-.499356173646915378357,-50,42, + -8757940169976751.,-5253377971433724.,-.499877824502232300211,-50,42, + -8757940169976293.,-5253377971431588.,.499991760610686674624,-50,42, + -8535358698091333.,-8622079772265642.,.499991699837314875736,-50,43, + -8535358698071029.,-8622079772110155.,.499973414768370168341,-50,43, + -8535358698043957.,-8622079771902839.,.499944672922062387345,-50,43, + -8535358698042504.,-8622079771891711.,-.499909256517106866153,-50,43, + -8535358698041250.,-8622079771882108.,-.431648309710920863791,-50,43, + -8535358698041241.,-8622079771882040.,.489894232930849291805,-50,43, + -8535358698041203.,-8622079771881749.,.491962746301138322855,-50,43, + -8535358698041051.,-8622079771880584.,-.499763200315920969627,-50,43, + -8244336335744702.,-6658181308392277.,.499889976671729543712,-50,43, + -8244336335569978.,-6658181307359019.,.499961621328739114023,-50,43, + -8244336335566793.,-6658181307340183.,-.498951131466104953955,-50,43, + -8244336335566758.,-6658181307339977.,.479082794031386745158,-50,43, + -8244336335566735.,-6658181307339841.,.493219373640520810683,-50,43, + -8244336335566654.,-6658181307339362.,.499526458328826456162,-50,43, + -8244336335565380.,-6658181307331828.,.499961341361998221676,-50,43, + -6615287761668760.,-6266684952758672.,.499992513259035515626,-50,45, + -6615287761647093.,-6266684952638072.,-.499944838938921883554,-50,45, + -6615287761645904.,-6266684952631454.,-.499710702564995684913,-50,45, + -6615287761645798.,-6266684952630865.,.498628084695061849589,-50,45, + -6615287761645639.,-6266684952629980.,.496136265481000064152,-50,45, + -6615287761630235.,-6266684952544240.,-.499990007418711933352,-50,45, + -5638731028491902.,-5264579533832137.,.475195816630148920570,-50,46, + -5638731028491899.,-5264579533832122.,-.495893342323734866592,-50,46, + -5638731028491865.,-5264579533831964.,.498429522862969962036,-50,46, + -5638731028491346.,-5264579533829536.,-.499994976794773493747,-50,46, + -5638731028451361.,-5264579533642555.,.499994687519251507255,-50,46, + -5402948249543905.,-8539547774764383.,.499999080572487437220,-50,47, + -5402948249542551.,-8539547774754112.,.499913651115049092610,-50,47, + -5402948249542259.,-8539547774751896.,-.483856620372064902557,-50,47, + -5402948249542230.,-8539547774751676.,-.499368051475770375963,-50,47, + -4682712477323126.,-9006812065339118.,.499998320973654298833,-50,48, + -4682712477311895.,-9006812065249229.,-.499994621678534777368,-50,48, + -4682712477301827.,-9006812065168650.,.357904274015796732226,-50,48, + -4682712477301790.,-9006812065168354.,.489682407286344683488,-50,48, + -4682712477301787.,-9006812065168329.,-.499632879205658816968,-50,48, + -4682712477300664.,-9006812065159341.,-.499988460537842049093,-50,48, + -4561872225458195.,-8089727403672502.,.499974406931278888508,-50,48, + -4561872225375105.,-8089727403075128.,-.499971261545582475809,-50,48, + -4561872225367964.,-8089727403023789.,.499947105886512316412,-50,48, + -4561872225366597.,-8089727403013960.,-.495587393025202025578,-50,48, + -4561872225366407.,-8089727403012594.,-.496429789575017746339,-50,48, + -4561872225365647.,-8089727403007130.,-.499799378078063384632,-50,48, + -4561872225363235.,-8089727402989789.,-.499967096529320062643,-50,48, + -6156088788834369.,-8628392493932935.,-.499945834454412328929,-51,50, + -6156088788833787.,-8628392493930687.,.499525091027730030976,-51,50, + -6156088788833728.,-8628392493930459.,.490880391001474321316,-51,50, + -6156088788833706.,-8628392493930373.,-.495393903925086351078,-51,50, + -6156088788832402.,-8628392493925335.,.499984249865788556384,-51,50, + -6156088788775720.,-8628392493706300.,-.499999748147892485594,-51,50, + -5642922688621064.,-6853203268973461.,.499993073324413455790,-51,50, + -5642922688548194.,-6853203268748713.,.499980521444273195503,-51,50, + -5642922688544300.,-6853203268736702.,-.499855674479599118574,-51,50, + -5642922688542911.,-6853203268732419.,.498661917855201891115,-51,50, + -5642922688542899.,-6853203268732381.,-.490551753064713923809,-51,50, + -5642922688542887.,-6853203268732344.,-.479765423984824362801,-51,50, + -5642922688542816.,-6853203268732125.,-.499279643599460153360,-51,50, + -5642922688542353.,-6853203268730697.,-.499773780126771439649,-51,50, + -8724415468929568.,-7650775081309048.,-.499997763675435797856,-52,51, + -8724415468928298.,-7650775081306800.,.499944601070122876805,-52,51, + -8724415468928250.,-7650775081306714.,-.498482774132528145985,-52,51, + -8724415468928228.,-7650775081306676.,.460571345565966348404,-52,51, + -8724415468928215.,-7650775081306653.,.481830598114990915647,-52,51, + -6700063144990205.,-4729984566682336.,.499988738435749189829,-52,51, + -6700063144985236.,-4729984566676556.,.499944496079727709842,-52,51, + -6700063144980702.,-4729984566671281.,-.497278409898661896973,-52,51, + -6700063144980690.,-4729984566671268.,.461264449629220514177,-52,51, + -6700063144980653.,-4729984566671224.,-.499895066826686786236,-52,51, + -6700063144946256.,-4729984566631214.,.499999726583254591939,-52,51, + -6254473773402130.,-8467988133364602.,.499992134390615213122,-52,52, + -6254473773285819.,-8467988133116900.,.499955008067602727142,-52,52, + -6254473773271982.,-8467988133087431.,-.499826246001599561421,-52,52, + -6254473773271319.,-8467988133086020.,.459713032800417290765,-52,52, + -6254473773271311.,-8467988133086003.,.496932209617420593484,-52,52, + -6254473773271203.,-8467988133085773.,.499391096644349934820,-52,52, + -6254473773271149.,-8467988133085657.,-.499379459844011557223,-52,52, + -6254473773267925.,-8467988133078792.,.499948795015072668314,-52,52, + -8422041052112379.,-4852017663486211.,-.499998844646772541296,-53,52, + -8422041051876011.,-4852017663312488.,-.499831490087573354651,-53,52, + -8422041051759723.,-4852017663227020.,-.499750381530682911159,-53,52, + -8422041051758459.,-4852017663226091.,-.499749504359073445712,-53,52, + -8422041051758010.,-4852017663225761.,-.498958053551334991547,-53,52, + -8422041051757995.,-4852017663225750.,-.474432726687142053562,-53,52, + -7740586541161069.,-8729170298445368.,-.499988417106562716536,-53,53, + -7740586541072463.,-8729170298321979.,-.499981349569158503641,-53,53, + -7740586541071388.,-8729170298320483.,.499939729568257190286,-53,53, + -7740586541070448.,-8729170298319173.,-.495478117613482128587,-53,53, + -7740586541070443.,-8729170298319167.,.467312212986360808726,-53,53, + -7740586541070420.,-8729170298319135.,.496147733745603674670,-53,53, + -7740586541070313.,-8729170298318986.,.499860808581333029838,-53,53, + -7552125243356080.,-8468618685427996.,-.499999006937180570526,-53,53, + -7552125243333006.,-8468618685396325.,-.499892636369387142506,-53,53, + -7552125243331970.,-8468618685394904.,.496991743011209338828,-53,53, + -7552125243331954.,-8468618685394882.,.458333586707328473954,-53,53, + -7552125243331868.,-8468618685394763.,-.499454003426489002024,-53,53, + -7552125243328505.,-8468618685390147.,-.499915232171724542972,-53,53, + -7552125243310501.,-8468618685365436.,.499994363471813928075,-53,53, + -6638553928827430.,-7256111712172735.,.498692282436965544211,-53,53, + -6638553928827423.,-7256111712172726.,.487563471445247952568,-53,53, + -6638553928826712.,-7256111712171812.,-.499948616450610795971,-53,53, + -6638553928817906.,-7256111712160504.,-.499992848061859893462,-53,53, + -6638553928770821.,-7256111712100042.,.499997649128187086265,-53,53, + -6320301642435279.,-6851880967197170.,.499997484542004383569,-53,53, + -6320301642428580.,-6851880967188753.,.499968377554108246844,-53,53, + -6320301642428233.,-6851880967188317.,.490263929007094727915,-53,53, + -6320301642428221.,-6851880967188301.,-.432261873248315323429,-53,53, + -6320301642428194.,-6851880967188268.,.492055071676967594990,-53,53, + -6320301642428038.,-6851880967188072.,.499219642355174488237,-53,53, + -6277581004380230.,-6798281224554127.,-.499998868838553604106,-53,53, + -6277581004371059.,-6798281224542637.,-.499939675717452178599,-53,53, + -6277581004369050.,-6798281224540120.,-.499599591718984136635,-53,53, + -6277581004369046.,-6798281224540115.,-.488150432766611754211,-53,53, + -6277581004369022.,-6798281224540085.,-.419455479052405614884,-53,53, + -6277581004368002.,-6798281224538807.,-.499919946243260655363,-53,53, + -6134432454531899.,-6619786818684053.,-.499998314695572267012,-53,53, + -6134432454506412.,-6619786818652423.,-.499982986642871457413,-53,53, + -6134432454506022.,-6619786818651940.,.499703361983753057297,-53,53, + -6134432454505661.,-6619786818651491.,-.490330556349842361147,-53,53, + -6134432454505632.,-6619786818651456.,.499389710597966946313,-53,53, + -6056160701855449.,-6522898353692354.,-.499996432263214550848,-53,53, + -6056160701828988.,-6522898353659683.,-.499754278897749489430,-53,53, + -6056160701828694.,-6522898353659321.,.497640800075912292123,-53,53, + -6056160701828498.,-6522898353659079.,.495904186054492627181,-53,53, + -6056160701828464.,-6522898353659037.,.475194773417809542158,-53,53, + -6056160701828451.,-6522898353659020.,-.473900002002123258717,-53,53, + -6056160701827829.,-6522898353658252.,-.499819256725555247418,-53,53, + -6056160701824352.,-6522898353653960.,.499985809143021231238,-53,53, + -5587044502257869.,-5952274633322453.,-.499992288485797883196,-53,53, + -5587044502251903.,-5952274633315302.,-.499965263674456500341,-53,53, + -5587044502247392.,-5952274633309896.,.499887552044699810790,-53,53, + -5587044502247100.,-5952274633309546.,.498547942636123335288,-53,53, + -5587044502246984.,-5952274633309406.,-.460888340555321294903,-53,53, + -5587044502246964.,-5952274633309382.,-.488377354898773597081,-53,53, + -5587044502246954.,-5952274633309371.,.497878137929489246713,-53,53, + -5587044502223528.,-5952274633281292.,.499995617278231764189,-53,53, + -5574097035265819.,-5936761612789770.,.499999326401944751448,-53,53, + -5574097035223548.,-5936761612739143.,.498746114243236471448,-53,53, + -5574097035223543.,-5936761612739137.,.487130437623622142357,-53,53, + -5574097035223118.,-5936761612738628.,.499797924949717691005,-53,53, + -5574097035223032.,-5936761612738524.,-.499991712910609699421,-53,53, + -5268565944222045.,-5574179716568934.,.499998661704643575006,-53,53, + -5268565944196449.,-5574179716538833.,.499971135251533860370,-53,53, + -5268565944194432.,-5574179716536460.,-.499835692761813315905,-53,53, + -5268565944193932.,-5574179716535872.,-.497804663556992498841,-53,53, + -5268565944193858.,-5574179716535785.,-.473504071236138218661,-53,53, + -5268565944193841.,-5574179716535765.,-.481435016243562677592,-53,53, + -5268565944193807.,-5574179716535725.,-.497296906258471164483,-53,53, + -5268565944180688.,-5574179716520298.,.499993231767080714319,-53,53, + -8854767244020282.,-4607833107229594.,.499995134550223361936,-54,53, + -8854767244014043.,-4607833107226089.,-.499974384855899071297,-54,53, + -8854767244013183.,-4607833107225606.,-.499489337085372493505,-54,53, + -8854767244013110.,-4607833107225566.,.499389044876060758168,-54,53, + -8854767243987294.,-4607833107211067.,.499996008848384510606,-54,53, + -8607732457383103.,-8939040501808792.,-.480823106540531105696,-54,54, + -8607732457383086.,-8939040501808774.,.497076808353531393912,-54,54, + -8607732457383043.,-8939040501808725.,-.499999877502698993775,-54,54, + -7730960159931138.,-7970461485632589.,.499989942399023079015,-54,54, + -7730960159917535.,-7970461485617713.,-.499442281222016170988,-54,54, + -7730960159917396.,-7970461485617562.,.498284611419135443039,-54,54, + -7730960159917332.,-7970461485617492.,.482849511627851458851,-54,54, + -7730960159917321.,-7970461485617479.,-.488553396148785607295,-54,54, + -7730960159917289.,-7970461485617444.,-.496270946044473970331,-54,54, + -7730960159916626.,-7970461485616719.,-.499918932951425884711,-54,54, + -7730960159914423.,-7970461485614310.,-.499974008679060245315,-54,54, + -7730960159895505.,-7970461485593623.,-.499993043370480438932,-54,54, + -7684108841897182.,-7919256054216900.,.463411343397958546245,-54,54, + -7684108841897171.,-7919256054216888.,.479391296171794878577,-54,54, + -7684108841897160.,-7919256054216876.,.495371248945628258136,-54,54, + -7684108841897095.,-7919256054216805.,.498889151700037952616,-54,54, + -7684108841896781.,-7919256054216461.,-.499501287303188811219,-54,54, + -7684108841895655.,-7919256054215232.,.499901151155901840068,-54,54, + -7684108841892526.,-7919256054211813.,-.499983191867565447463,-54,54, + -7684108841875755.,-7919256054193494.,.499997527343550261207,-54,54, + -7489630554912545.,-7707272762252438.,-.497624337107835140590,-54,54, + -7489630554912488.,-7707272762252376.,-.499892448800114567121,-54,54, + -7489630554907196.,-7707272762246620.,-.499942397829989250198,-54,54, + -7489630554900581.,-7707272762239426.,.499995164947340541209,-54,54, + -4517699360175057.,-4565202987873833.,-.499956077881412364117,-54,54, + -4517699360174456.,-4565202987873214.,.498335195247484597323,-54,54, + -4517699360174426.,-4565202987873183.,.446669202225499382168,-54,54, + -4517699360174424.,-4565202987873180.,-.490108530642633415673,-54,54, + -4517699360174361.,-4565202987873115.,-.498607115988845351106,-54,54, + -4517699360172115.,-4565202987870799.,.499998873060518376442,-54,54, + -8341071156522038.,-8415781113173627.,.499971791978527694686,-55,55, + -8341071156516800.,-8415781113168248.,.499778851378655597960,-55,55, + -8341071156515314.,-8415781113166721.,-.499130409770842100167,-55,55, + -8341071156515277.,-8415781113166684.,.496859063538173470478,-55,55, + -8341071156515240.,-8415781113166646.,.492848536847180165511,-55,55, + -8341071156515054.,-8415781113166455.,.499714537805836121595,-55,55, + -8341071156507327.,-8415781113158519.,-.499997347298098070700,-55,55, + -6479813464901702.,-6514803075064308.,-.499990107737439231949,-55,55, + -6479813464892884.,-6514803075055348.,.499971979566758974861,-55,55, + -6479813464892702.,-6514803075055163.,.451434113820911666424,-55,55, + -6479813464892699.,-6514803075055159.,-.499915411438636659955,-55,55, + -6479813464848424.,-6514803075010166.,-.499992371858823727856,-55,55, + -5370993780294630.,-5372237216054708.,-.499948591180758646407,-57,57, + -5370993780293190.,-5372237216053267.,-.499781508072273832850,-57,57, + -5370993780293185.,-5372237216053262.,-.496308705700370306115,-57,57, + -5370993780293182.,-5372237216053259.,-.494225024277228193178,-57,57, + -5370993780288871.,-5372237216048945.,-.499974819224417172572,-57,57, + -5370993780283112.,-5372237216043183.,.499998952723345436287,-57,57, + -5040083604723691.,-5041111074426219.,.134866732413614019398,-57,57, + -5040083604723530.,-5041111074426058.,.233334959876885533335,-57,57, + -5040083604723110.,-5041111074425638.,.490208596737564216213,-57,57, + -5040083604723094.,-5041111074425622.,.499994259094160652760,-57,57, + -5040083604687123.,-5041111074389629.,.499998048257712300895,-57,57, + -8242701861720304.,-8242701861720304.,-.255457236562484475074,-79,79, + -8242701861718053.,-8242701861718053.,-.255457236562275186573,-79,79, + -8242701861718030.,-8242701861718030.,-.255457236562273048130,-79,79, + -8178102513292817.,-8178102513292817.,-.249498009539748946173,-79,79, + -8178102513290547.,-8178102513290547.,-.249498009539541186311,-79,79, + -8178102513290524.,-8178102513290524.,-.249498009539539081255,-79,79, + -8003544517555530.,-8003544517555530.,-.233860314554282831848,-79,79, + -8003544517553220.,-8003544517553220.,-.233860314554080340068,-79,79, + -8003544517553197.,-8003544517553197.,-.233860314554078323916,-79,79, + -6848882081660825.,-6848882081660825.,-.146544155182606103813,-79,79, + -6848882081658579.,-6848882081658579.,-.146544155182461932179,-79,79, + -6848882081658556.,-6848882081658556.,-.146544155182460455800,-79,79, + -6471417749986012.,-6471417749986012.,-.123625409175438658685,-79,79, + -6471417749983877.,-6471417749983877.,-.123625409175316302074,-79,79, + -6471417749983855.,-6471417749983855.,-.123625409175315041256,-79,79, + -5840746347511110.,-5840746347511110.,-.090889658763378368852,-79,79, + -5840746347509219.,-5840746347509219.,-.090889658763290089546,-79,79, + -5840746347509200.,-5840746347509200.,-.090889658763289202551,-79,79, + -5301224375153928.,-5301224375153928.,-.067957593809126308080,-79,79, + -5301224375153906.,-5301224375153906.,-.067957593809125462012,-79,79, + -5301224375151744.,-5301224375151744.,-.067957593809042316511,-79,79, + -5286632173730733.,-5286632173730733.,-.067397954919800108973,-79,79, + -5286632173730711.,-5286632173730711.,-.067397954919799267555,-79,79, + -5286632173728563.,-5286632173728563.,-.067397954919717114607,-79,79, + -4827510902874277.,-4827510902874277.,-.051319122830653594606,-79,79, + -4827510902874259.,-4827510902874259.,-.051319122830653020556,-79,79, + -4827510902872519.,-4827510902872519.,-.051319122830597529056,-79,79, + -7501948289004415.,-7501948289004415.,-.048147267212340680277,-80,80, + -7501948289004404.,-7501948289004404.,-.048147267212340468484,-80,80, + -7501948289003360.,-7501948289003360.,-.048147267212320367407,-80,80, + -7485075199918261.,-7485075199918261.,-.047823124497129439626,-80,80, + -7485075199918250.,-7485075199918250.,-.047823124497129228785,-80,80, + -7485075199917211.,-7485075199917211.,-.047823124497109313864,-80,80, + -5137347928742246.,-5137347928742246.,-.015462025379578349024,-80,80, + -5137347928742241.,-5137347928742241.,-.015462025379578303878,-80,80, + -5137347928741781.,-5137347928741781.,-.015462025379574150452,-80,80, + -5130840493893794.,-5130840493893794.,-.015403342927539706699,-80,80, + -5130840493893789.,-5130840493893789.,-.015403342927539661667,-80,80, + -5130840493893330.,-5130840493893330.,-.015403342927535527763,-80,80, + -5010504700961462.,-5010504700961462.,-.014344779112729355069,-80,80, + -5010504700961458.,-5010504700961458.,-.014344779112729320714,-80,80, + -5010504700961020.,-5010504700961020.,-.014344779112725558809,-80,80, + -6298970528341482.,-6298970528341482.,-.007125218407081968672,-81,81, + -6298970528341480.,-6298970528341480.,-.007125218407081961885,-81,81, + -6298970528341310.,-6298970528341310.,-.007125218407081384987,-81,81, + -6002783559861861.,-6002783559861861.,-.006166624519073733080,-81,81, + -6002783559861859.,-6002783559861859.,-.006166624519073726916,-81,81, + -6002783559861705.,-6002783559861705.,-.006166624519073252306,-81,81, + -7922455085967687.,-7922455085967687.,-.003544123262783867508,-82,82, + -7922455085967686.,-7922455085967686.,-.003544123262783866166,-82,82, + -7922455085967619.,-7922455085967619.,-.003544123262783776248,-82,82, + -5034345543218302.,-5034345543218302.,-.000056837967715161056,-84,84, + -5034345543218300.,-5034345543218300.,-.000056837967715160989,-84,84, + -4503599627370497.,-4503599627370497.,-.000000000000000037007,-104,104, + -4503599627370496.,-4503599627370496.,-.000000000000000037007,-104,104, + -6751453641065261.,-6751453641065261.,-.000000000000000031170,-105,105, + -6734444337906217.,-6734444337906217.,-.000000000000000030935,-105,105, + -6680661016289229.,-6680661016289229.,-.000000000000000030200,-105,105, + -6466907645357182.,-6466907645357182.,-.000000000000000027393,-105,105, + -6031878638313244.,-6031878638313244.,-.000000000000000022228,-105,105, + -4706747747160345.,-4706747747160345.,-.000000000000000010561,-105,105, + -4508444030594628.,-4508444030594628.,-.000000000000000009282,-105,105, + -8225219756258586.,-8225219756258586.,-.000000000000000014091,-106,106, + -8218671716955893.,-8218671716955893.,-.000000000000000014057,-106,106, + -8134634281296062.,-8134634281296062.,-.000000000000000013630,-106,106, + -7532297225436693.,-7532297225436693.,-.000000000000000010821,-106,106, + -6744234268180515.,-6744234268180515.,-.000000000000000007768,-106,106, + -5441089836917728.,-5441089836917728.,-.000000000000000004079,-106,106, + -8111283783760891.,-8111283783760891.,-.000000000000000000845,-108,108, + -5181586503254410.,-5181586503254410.,-.000000000000000000220,-108,108, + -4672129282989170.,-4672129282989170.,-.000000000000000000040,-109,109, + -5061503531596520.,-5061503531596520.,-.000000000000000000013,-110,110, + -5516841368037698.,-5516841368037698.,0.000000000000000000000,-1071,1071, + -4974007324442289.,-4974007324442289.,-.000000000000000000000,-1071,1071, + -4827518656046215.,-4827518656046215.,0.000000000000000000000,-1071,1071, + -8637812632950778.,-8637812632950778.,-.000000000000000000000,-1072,1072, + -6381354196731786.,-6381354196731786.,0.000000000000000000000,-1072,1072, + -5996792560889159.,-5996792560889159.,.000000000000000000000,-1072,1072, + -5513101990986496.,-5513101990986496.,0.000000000000000000000,-1072,1072, + -5478007073897062.,-5478007073897062.,.000000000000000000000,-1072,1072, + -5304631145610051.,-5304631145610051.,0.000000000000000000000,-1072,1072, + -4963944520841389.,-4963944520841389.,.000000000000000000000,-1072,1072, + -4887517460135592.,-4887517460135592.,.000000000000000000000,-1072,1072, + -8454571249924438.,-8454571249924438.,-.000000000000000000000,-1073,1073, + -7658090078676386.,-7658090078676386.,-.000000000000000000000,-1073,1073, + -6674887987034892.,-6674887987034892.,-.000000000000000000000,-1073,1073, + -4989910114564986.,-4989910114564986.,-.000000000000000000000,-1073,1073, + -7949257549382681.,-7949257549382681.,.000000000000000000000,-1074,1074, + -6724970915209412.,-6724970915209412.,.000000000000000000000,-1074,1074, + -6534509948980223.,-6534509948980223.,.000000000000000000000,-1074,1074, + -4503599627370497.,-4503599627370497.,.000000000000000000000,-1074,1074, + -4503599627370496.,-4503599627370496.,0.000000000000000000000,-1074,1074, + 0.,0.,0.000000000000000000000,0,0, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,1074, + 4503599627370497.,4503599627370497.,-.000000000000000000000,-1074,1074, + 7112430579131655.,7112430579131655.,0.000000000000000000000,-1074,1074, + 5789926908758100.,5789926908758100.,.000000000000000000000,-1073,1073, + 7787230987142419.,7787230987142419.,.000000000000000000000,-1073,1073, + 8125327600772580.,8125327600772580.,.000000000000000000000,-1073,1073, + 8744473848646590.,8744473848646590.,.000000000000000000000,-1073,1073, + 4676442701008596.,4676442701008596.,0.000000000000000000000,-1072,1072, + 5078352157579858.,5078352157579858.,-.000000000000000000000,-1072,1072, + 6998850785069489.,6998850785069489.,.000000000000000000000,-1072,1072, + 8186528360433406.,8186528360433406.,.000000000000000000000,-1072,1072, + 8341598446516450.,8341598446516450.,-.000000000000000000000,-1072,1072, + 8814563610589937.,8814563610589937.,-.000000000000000000000,-1072,1072, + 4624395622432191.,4624395622432191.,.000000000000000000000,-1071,1071, + 4827239280872831.,4827239280872831.,.000000000000000000000,-1071,1071, + 7786031541652222.,7786031541652222.,.000000000000000000047,-110,110, + 5746215254501618.,5746215254501618.,.000000000000000000075,-109,109, + 6842111560931391.,6842111560931391.,.000000000000000000127,-109,109, + 5635416615605139.,5635416615605139.,.000000000000000000283,-108,108, + 5753769988833337.,5753769988833337.,.000000000000000001206,-107,107, + 4873844360980469.,4873844360980469.,.000000000000000002932,-106,106, + 6611506190369525.,6611506190369525.,.000000000000000007318,-106,106, + 7789329938387631.,7789329938387631.,.000000000000000011967,-106,106, + 7984456451885351.,7984456451885351.,.000000000000000012889,-106,106, + 8003572463289605.,8003572463289605.,.000000000000000012982,-106,106, + 8018408790437082.,8018408790437082.,.000000000000000013054,-106,106, + 4747578892790121.,4747578892790121.,.000000000000000010838,-105,105, + 5026588273004141.,5026588273004141.,.000000000000000012864,-105,105, + 5708579506482334.,5708579506482334.,.000000000000000018842,-105,105, + 6353877460235262.,6353877460235262.,.000000000000000025982,-105,105, + 6728987427118364.,6728987427118364.,.000000000000000030860,-105,105, + 7198343454188632.,7198343454188632.,.000000000000000037779,-105,105, + 4503599627370496.,4503599627370496.,.000000000000000037007,-104,104, + 4503599627370497.,4503599627370497.,.000000000000000037007,-104,104, + 5835457316503936.,5835457316503936.,.000022129631237235026,-85,85, + 5835457316503937.,5835457316503937.,.000022129631237235037,-85,85, + 6916394610526573.,6916394610526573.,.002358135475687472663,-82,82, + 6916394610526623.,6916394610526623.,.002358135475687523806,-82,82, + 6916394610526624.,6916394610526624.,.002358135475687524829,-82,82, + 7664074856376500.,7664074856376500.,.003208548988158743019,-82,82, + 7664074856376562.,7664074856376562.,.003208548988158820887,-82,82, + 7664074856376563.,7664074856376563.,.003208548988158822143,-82,82, + 5804122653802352.,5804122653802352.,.005574413700967658502,-81,81, + 5804122653802497.,5804122653802497.,.005574413700968076286,-81,81, + 5804122653802498.,5804122653802498.,.005574413700968079167,-81,81, + 6847582036561118.,6847582036561118.,.009153795038118068034,-81,81, + 6847582036561320.,6847582036561320.,.009153795038118878130,-81,81, + 6847582036561322.,6847582036561322.,.009153795038118886151,-81,81, + 7706116167864828.,7706116167864828.,.013046562733590072756,-81,81, + 7706116167865086.,7706116167865086.,.013046562733591383149,-81,81, + 7706116167865089.,7706116167865089.,.013046562733591398386,-81,81, + 4994576600383240.,4994576600383240.,.014208409908195053099,-80,80, + 4994576600383675.,4994576600383675.,.014208409908198765521,-80,80, + 4994576600383679.,4994576600383679.,.014208409908198799658,-80,80, + 7423882302190273.,7423882302190273.,.046659778986108929923,-80,80, + 7423882302191294.,7423882302191294.,.046659778986128181158,-80,80, + 7423882302191304.,7423882302191304.,.046659778986128369711,-80,80, + 5359027492702476.,5359027492702476.,.070204894308194617559,-79,79, + 5359027492704695.,5359027492704695.,.070204894308281826289,-79,79, + 5359027492704717.,5359027492704717.,.070204894308282690909,-79,79, + 5488415439820898.,5488415439820898.,.075413720482071998289,-79,79, + 5488415439823246.,5488415439823246.,.075413720482168786561,-79,79, + 5488415439823270.,5488415439823270.,.075413720482169775879,-79,79, + 5668948148616327.,5668948148616327.,.083103035750007657492,-79,79, + 5668948148616345.,5668948148616345.,.083103035750008449096,-79,79, + 5668948148618160.,5668948148618160.,.083103035750088269200,-79,79, + 6402079148376316.,6402079148376316.,.119694047116979930607,-79,79, + 6402079148376337.,6402079148376337.,.119694047116981108463,-79,79, + 6402079148378449.,6402079148378449.,.119694047117099567086,-79,79, + 6710148704144607.,6710148704144607.,.137817976405756826293,-79,79, + 6710148704144629.,6710148704144629.,.137817976405758181850,-79,79, + 6710148704146839.,6710148704146839.,.137817976405894353673,-79,79, + 8108726220156984.,8108726220156984.,.243202114560191650454,-79,79, + 8108726220157007.,8108726220157007.,.243202114560193719947,-79,79, + 8108726220159295.,8108726220159295.,.243202114560399589434,-79,79, + 8201755169934774.,8201755169934774.,.251669066287891078292,-79,79, + 8201755169934797.,8201755169934797.,.251669066287893195542,-79,79, + 8201755169937060.,8201755169937060.,.251669066288101514524,-79,79, + 8488875008858692.,8488875008858692.,.279035752081584516563,-79,79, + 8488875008858714.,8488875008858714.,.279035752081586686033,-79,79, + 8488875008860871.,8488875008860871.,.279035752081799392705,-79,79, + 7327657448544257.,7328446815176038.,.499997970217330651453,-58,58, + 7327657448593765.,7328446815225562.,.499983814786803373392,-58,58, + 7327657448598422.,7328446815230221.,.005032172197945930821,-58,58, + 7327657448598569.,7328446815230368.,.052539603707411898120,-58,58, + 7327657448599820.,7328446815231619.,.456837541247230022878,-58,58, + 7327657448599952.,7328446815231751.,.499497275663909531590,-58,58, + 7327657448599954.,7328446815231754.,-.499856364723716524639,-58,58, + 6940259249803353.,6942942163389048.,.499974714984075204693,-57,57, + 6940259249803899.,6942942163389595.,.133229471211456644846,-57,57, + 6940259249804079.,6942942163389775.,.341994775462263577548,-57,57, + 6940259249804213.,6942942163389909.,.497408946404537993586,-57,57, + 6940259249804215.,6942942163389911.,.499728560896213776602,-57,57, + 6940259249815424.,6942942163401134.,-.499992020485856150926,-57,57, + 6940259249843877.,6942942163429620.,-.499996454418388076387,-57,57, + 5682480038755769.,5688371703598119.,-.499871995133328173416,-56,56, + 5682480038756090.,5688371703598440.,.498785163019201450944,-56,56, + 5682480038756091.,5688371703598442.,-.498103755491226629296,-56,56, + 5682480038756102.,5688371703598453.,-.463881859105935439629,-56,56, + 5682480038756202.,5688371703598553.,-.152773710148736726046,-56,56, + 5682480038760269.,5688371703602632.,.499994707949818121694,-56,56, + 7740553500862152.,7755449027332785.,.153819716363953430535,-56,56, + 7740553500862210.,7755449027332843.,.488785234876980498496,-56,56, + 7740553500862212.,7755449027332846.,-.499664230001880547473,-56,56, + 7740553500863424.,7755449027334064.,.499960053409424446252,-56,56, + 7740553500879354.,7755449027350086.,.499972293499572500390,-56,56, + 7740553500911214.,7755449027382130.,.499996774816972746105,-56,56, + 8983906415595587.,9007199254701471.,-.000004575172364837849,-56,56, + 8983906415628868.,9007199254735011.,.000010564028159617278,-56,56, + 8983906415633494.,9007199254739673.,.000553517635431653973,-56,56, + 8983906415634778.,9007199254740967.,-.007077880448834392583,-56,56, + 8983906415634780.,9007199254740969.,.008486556625802937888,-56,56, + 8983906415634800.,9007199254740989.,.164130927372176624230,-56,56, + 8983906415634802.,9007199254740991.,.179695364446814031028,-56,56, + 8983906415634803.,4503599627370496.,.093738791492066368515,-56,55, + 8983906415634907.,4503599627370548.,.498414155432643816371,-56,55, + 8983906415635036.,4503599627370614.,-.499632748910280737200,-56,55, + 5173600871707347.,5191399057423197.,-.499995721948176449141,-55,55, + 5173600871715190.,5191399057431120.,.499939023937522685981,-55,55, + 5173600871715771.,5191399057431708.,-.499683303305069357535,-55,55, + 5173600871716061.,5191399057432000.,.495341696866947451777,-55,55, + 5173600871716062.,5191399057432002.,-.494330630718665701464,-55,55, + 5173600871716082.,5191399057432022.,-.287777182430927926428,-55,55, + 5173600871716255.,5191399057432196.,.498910145258070594086,-55,55, + 5173600871717998.,5191399057433958.,-.499956836458231608762,-55,55, + 6216155809152279.,6247041781219803.,-.499996907052784096229,-55,55, + 6216155809168498.,6247041781236264.,-.499979259465681866317,-55,55, + 6216155809171715.,6247041781239529.,-.499852446793635730971,-55,55, + 6216155809171782.,6247041781239596.,.499839345699597195185,-55,55, + 6216155809171847.,6247041781239662.,.469689592148276649965,-55,55, + 6216155809171849.,6247041781239664.,.499531138192851724860,-55,55, + 8915918912087474.,9007199254740855.,.000000410903186236509,-55,55, + 8915918912087604.,9007199254740989.,.000933243477092847499,-55,55, + 8915918912087606.,9007199254740991.,.062486056285923095910,-55,55, + 8915918912087607.,4503599627370496.,.046631231345169115262,-55,54, + 5227720812180563.,5301405098207579.,-.499993709127750556833,-54,54, + 5227720812184973.,5301405098212175.,.499103898728686267166,-54,54, + 5227720812185090.,5301405098212297.,.460304447512877229440,-54,54, + 5227720812185091.,5301405098212299.,-.497292128993239832687,-54,54, + 5227720812185539.,5301405098212765.,.499441596267959365765,-54,54, + 5227720812186388.,5301405098213650.,.499948142586681647521,-54,54, + 5227720812198321.,5301405098226090.,-.499999303492176099031,-54,54, + 6779876501427620.,6941070863785468.,.475927961959831849250,-54,54, + 6779876501427634.,6941070863785483.,.479208466720345420920,-54,54, + 6779876501427704.,6941070863785558.,.495610990522976162419,-54,54, + 6779876501427718.,6941070863785573.,.498891495283514887349,-54,54, + 6779876501428332.,6941070863786231.,.499907918356979789347,-54,54, + 6779876501432295.,6941070863790478.,.499953659007218376581,-54,54, + 6779876501436258.,6941070863794725.,.499999399993376367935,-54,54, + 8668741584066450.,9007199254704795.,.000009191476912163428,-54,54, + 8668741584096399.,9007199254738279.,-.000061752386957734359,-54,54, + 8668741584098678.,9007199254740827.,-.000601391458012930739,-54,54, + 8668741584098825.,9007199254740991.,.350394954776227499598,-54,54, + 8668741584098826.,4503599627370496.,.234214471763061172777,-54,53, + 8668741584098830.,4503599627370498.,.470282449262851003466,-54,53, + 8668741584098839.,4503599627370504.,-.498564601362621065632,-54,53, + 8668741584099288.,4503599627370755.,-.499934127009745140415,-54,53, + 8668741584107345.,4503599627375258.,.499989552443795485780,-54,53, + 8911976088171305.,4639986512505557.,-.499983591689044529994,-54,53, + 8911976088174356.,4639986512507273.,-.484524033694702544461,-54,53, + 8911976088174420.,4639986512507309.,-.488132879412176727872,-54,53, + 8911976088174628.,4639986512507426.,-.499861627993563360372,-54,53, + 8911976088179064.,4639986512509921.,-.499999746630091087261,-54,53, + 5971604121828057.,6418783505777120.,.451321027585641367201,-53,53, + 5971604121828066.,6418783505777132.,-.497210912849938500604,-53,53, + 5971604121828746.,6418783505777967.,-.497401967964105531128,-53,53, + 5971604121836906.,6418783505787987.,-.499694626480559049870,-53,53, + 5971604121837994.,6418783505789322.,.499999686115280906880,-53,53, + 7267747051742226.,8082442075541290.,-.499982882034581569052,-53,53, + 7267747051743137.,8082442075542514.,-.499858221498195722021,-53,53, + 7267747051745870.,8082442075546186.,-.499484239392958927462,-53,53, + 7267747051745998.,8082442075546357.,.478579379252970223205,-53,53, + 7267747051746001.,8082442075546362.,-.490684754684996236251,-53,53, + 7267747051746033.,8082442075546405.,-.496168850023249347798,-53,53, + 7267747051750067.,8082442075551824.,.499992382215244635329,-53,53, + 7302452754228172.,8129132028638623.,-.499995988182478565278,-53,53, + 7302452754244824.,8129132028661054.,-.488040934497257865255,-53,53, + 7302452754244827.,8129132028661058.,-.446902580833869718081,-53,53, + 7302452754244847.,8129132028661084.,.494019776922074308916,-53,53, + 7302452754244896.,8129132028661150.,.499279553424306561954,-53,53, + 7302452754245285.,8129132028661675.,-.499780588212701310845,-53,53, + 7302452754246233.,8129132028662951.,.499939169506625357920,-53,53, + 7302452754249466.,8129132028667307.,-.499961698269140477190,-53,53, + 7719367433292309.,8699645653734191.,.499996624732975323277,-53,53, + 7719367433301382.,8699645653746806.,-.499985787035547356750,-53,53, + 7719367433307657.,8699645653755529.,.499805948112958940204,-53,53, + 7719367433307698.,8699645653755587.,-.498761149699278264517,-53,53, + 7719367433307862.,8699645653755815.,-.493029540946424523371,-53,53, + 7719367433307880.,8699645653755840.,-.468010218034350296973,-53,53, + 7719367433309056.,8699645653757474.,.499918878963116665980,-53,53, + 7719367433310455.,8699645653759420.,-.499968189976852182134,-53,53, + 7938707516150634.,9007199254740725.,.000313573142986241510,-53,53, + 7938707516150822.,9007199254740991.,-.127536700717123211068,-53,53, + 7938707516150823.,4503599627370496.,.143338430827985902364,-53,52, + 7938707516150832.,4503599627370503.,-.492700538493084028552,-53,52, + 7938707516150873.,4503599627370531.,.498677490155432073982,-53,52, + 7938707516152027.,4503599627371347.,.499902979471453755769,-53,52, + 7938707516155390.,4503599627373726.,-.499991889630507154672,-53,52, + 7938707516202711.,4503599627407187.,-.499999286865356418964,-53,52, + 8070217332253704.,4597074450616018.,-.499990284623555649737,-53,52, + 8070217332255154.,4597074450617053.,.499884154070144800055,-53,52, + 8070217332256345.,4597074450617904.,.448746537941465067723,-53,52, + 8070217332256352.,4597074450617909.,.450125242129023598972,-53,52, + 8070217332256555.,4597074450618054.,.490107663569428783810,-53,52, + 8070217332256604.,4597074450618089.,.499758592882979874643,-53,52, + 8070217332301575.,4597074450650221.,-.499997632211879460284,-53,52, + 8529988344636735.,4931705857601597.,-.499873681127505568389,-53,52, + 8529988344636793.,4931705857601640.,-.494198452796138415469,-53,52, + 8529988344636797.,4931705857601642.,.471710183640515132785,-53,52, + 8529988344637439.,4931705857602119.,-.499953668263985014653,-53,52, + 8529988344637791.,4931705857602380.,-.499993661820926929218,-53,52, + 8529988344687833.,4931705857639485.,-.499997441924259557292,-53,52, + 9007199254722104.,5292635657765014.,-.499997378175638417558,-53,52, + 9007199254739490.,5292635657778427.,.499961059175292583971,-53,52, + 9007199254740991.,5292635657779586.,-.418022512057838844115,-53,52, + 4503599627370497.,5292635657779588.,-.103401559834973078543,-52,52, + 4503599627370500.,5292635657779593.,-.474159655389239786007,-52,52, + 4503599627370511.,5292635657779609.,.499727327578469046221,-52,52, + 5224512518066639.,6477773290399839.,.499917447326729701425,-52,52, + 5224512518066651.,6477773290399861.,-.478274491733272507351,-52,52, + 5224512518066695.,6477773290399938.,-.398311601619553798080,-52,52, + 5224512518067602.,6477773290401527.,-.499985662092201887095,-52,52, + 5224512518088099.,6477773290437433.,.499999835190356734464,-52,52, + 5321124250680362.,6648522950724653.,-.499990052498915024648,-52,52, + 5321124250683045.,6648522950729436.,.499772536970354936385,-52,52, + 5321124250683400.,6648522950730069.,.492659499227472486560,-52,52, + 5321124250683423.,6648522950730111.,-.496533739836134398446,-52,52, + 5321124250683506.,6648522950730258.,.498986310500987084647,-52,52, + 5321124250684156.,6648522950731418.,-.499953054250694876347,-52,52, + 5321124250705809.,6648522950770026.,.499994617257073445081,-52,52, + 6501556188035509.,9007199254654657.,-.000001509328684255249,-52,52, + 6501556188073820.,9007199254740323.,.000284154122045124330,-52,52, + 6501556188074117.,9007199254740987.,.112473471539710334491,-52,52, + 6501556188074119.,4503599627370496.,-.207695286730355662932,-52,51, + 6501556188074120.,4503599627370497.,-.089661297980460744954,-52,51, + 6501556188074125.,4503599627370503.,-.499491354230982824395,-52,51, + 6501556188076404.,4503599627373050.,.499969007358950652098,-52,51, + 6501556188081877.,4503599627379169.,.499989441635607612255,-52,51, + 8853480284551826.,7882504838988020.,-.499998076857675658479,-52,51, + 8853480284574957.,7882504839030125.,-.491188002801494836673,-52,51, + 8853480284574996.,7882504839030195.,.499921054176146223851,-52,51, + 8853480284575558.,7882504839031219.,-.499994586234264492306,-52,51, + 9007199254650110.,8166963590481362.,-.499997739785477445656,-52,51, + 9007199254735878.,8166963590642700.,-.499982966971205146748,-52,51, + 9007199254739814.,8166963590650104.,-.498862919370522627310,-52,51, + 9007199254740991.,8166963590652318.,-.446698716932792553831,-52,51, + 4503599627370497.,8166963590652323.,.196594819692655239506,-51,51, + 4503599627370500.,8166963590652334.,.483181892943561698064,-51,51, + 4503599627370542.,8166963590652492.,.495400918457774181728,-51,51, + 4503599627370563.,8166963590652572.,-.498489568784054131747,-51,51, + 4716873323637618.,9007199254703550.,-.499998699319582881178,-51,51, + 4716873323641907.,9007199254721234.,-.499970478022320335445,-51,51, + 4716873323646196.,9007199254738918.,-.499942224048048247103,-51,51, + 4716873323646699.,9007199254740991.,.422187461410365963024,-51,51, + 4716873323646700.,4503599627370498.,-.227353456485986423957,-51,50, + 4716873323646716.,4503599627370531.,-.242508451544576119205,-51,50, + 4716873323646724.,4503599627370547.,.249914050926214298300,-51,50, + 6252059764417328.,9007199254666033.,-.000010499107898858184,-51,50, + 6252059764433840.,9007199254732595.,-.000040849538442413602,-51,50, + 6252059764434354.,9007199254734667.,.000200461521557742138,-51,50, + 6252059764435896.,9007199254740883.,.000924397517396438610,-51,50, + 6252059764435904.,9007199254740915.,.249955390711267639323,-51,50, + 6252059764435923.,4503599627370496.,-.079298000226416311728,-51,49, + 6252059764435924.,4503599627370498.,-.063733563151778489490,-51,49, + 6623841828962735.,5317881882627892.,.499993652100736927116,-51,49, + 6623841828964704.,5317881882632569.,-.499955536398424830765,-51,49, + 6623841828970611.,5317881882646597.,-.499803077499731073049,-51,49, + 6623841828971929.,5317881882649726.,.499215200869136757075,-51,49, + 6623841828971953.,5317881882649783.,.494644972267553288888,-51,49, + 6623841828972065.,5317881882650049.,.473317238801484515614,-51,49, + 6623841828972073.,5317881882650068.,.471793829268697297245,-51,49, + 6623841828972580.,5317881882651273.,-.499752249734773476678,-51,49, + 6693732543014758.,5486447338131681.,-.499997557017987610490,-51,49, + 6693732543058396.,5486447338238562.,-.499984506210076032399,-51,49, + 6693732543070291.,5486447338267696.,-.499911843983537374752,-51,49, + 6693732543070567.,5486447338268371.,.497063362102366350279,-51,49, + 6693732543070883.,5486447338269145.,.464614685113521069971,-51,49, + 6693732543070892.,5486447338269168.,-.492005688596604107753,-51,49, + 6693732543070912.,5486447338269216.,.493282369825653724927,-51,49, + 6693732543072942.,5486447338274189.,-.499979698063781966740,-51,49, + 7898550557387571.,4692210284578399.,-.499999574836004428653,-51,48, + 7898550557404747.,4692210284614254.,-.499982048203847434166,-51,48, + 7898550557406884.,4692210284618714.,.499961930743849471963,-51,48, + 7898550557407604.,4692210284620218.,-.495845431504036401729,-51,48, + 7898550557407764.,4692210284620552.,-.494913734160642396059,-51,48, + 7898550557407798.,4692210284620622.,.480284251527880717929,-51,48, + 4907776204992328.,5500347054763830.,-.499994334622898582290,-50,47, + 4907776205000771.,5500347054805089.,.499459116240770593821,-50,47, + 4907776205001372.,5500347054808027.,-.480563195315456471456,-50,47, + 4907776205001381.,5500347054808071.,-.498566857207050124678,-50,47, + 4907776205002937.,5500347054815674.,.499911158818249610220,-50,47, + 4907776205005492.,5500347054828160.,.499982731056149951195,-50,47, + 5448610385774228.,8893044608746476.,-.499879586605168959618,-50,47, + 5448610385774975.,8893044608752377.,-.499170333217669463026,-50,47, + 5448610385775722.,8893044608758278.,-.498461075915527455169,-50,47, + 5448610385775732.,8893044608758356.,.497532354596998189944,-50,47, + 5448610385775752.,8893044608758514.,.489519215624154092736,-50,47, + 5448610385778222.,8893044608778026.,.499896574051239196075,-50,47, + 5448610385807923.,8893044609012652.,.499988153475512184929,-50,47, + 5448610385812166.,8893044609046171.,-.499998258557016289993,-50,47, + 7573800345510424.,7340720182662741.,-.499640418911887884006,-50,44, + 7573800345510751.,7340720182664873.,-.496272892038845277215,-50,44, + 7573800345510776.,7340720182665036.,-.499073539805946566134,-50,44, + 7573800345511857.,7340720182672083.,.499826454206297690551,-50,44, + 7573800345518997.,7340720182718635.,.499961644740934272477,-50,44, + 7573800345520782.,7340720182730273.,.499995488501629842535,-50,44, + 7573800345550775.,7340720182925825.,-.499993305947888305411,-50,44, + 7724960656346879.,8395489685642141.,-.499803433864887853652,-50,44, + 7724960656347087.,8395489685643691.,.495696054433599665495,-50,44, + 7724960656347341.,8395489685645585.,.499815622263612409659,-50,44, + 7724960656349778.,8395489685663757.,.499970710128492484997,-50,44, + 7724960656362887.,8395489685761507.,.499984945426189394874,-50,44, + 7724960656375996.,8395489685859258.,-.499999681162566305812,-50,44, + 7788342745746433.,8881667672647718.,-.483629401798448985539,-50,44, + 7788342745746478.,8881667672648072.,.499817048660752199749,-50,44, + 7788342745747384.,8881667672655219.,.499872254257714375124,-50,44, + 7788342745749196.,8881667672669513.,.499982682704955762386,-50,44, + 7788342745767621.,8881667672814860.,-.499996891785464705368,-50,44, + 4694545676261344.,4601116954823732.,-.499975621275365635851,-49,41, + 4694545676308398.,4601116955208315.,-.499991235647912138290,-49,41, + 4694545676315545.,4601116955266729.,-.450154437016303165960,-49,41, + 4694545676315562.,4601116955266867.,.494696162101557984123,-49,41, + 4694545676315614.,4601116955267293.,-.497525534688349839163,-49,41, + 4694545676316630.,4601116955275597.,-.499395602552665362799,-49,41, + 4694545676317011.,4601116955278710.,.499903125862020280151,-49,41, + 4945710919716687.,7188325286678193.,-.499984113380557041745,-49,41, + 4945710919752181.,7188325287131416.,.499985108658215542635,-49,41, + 4945710919752956.,7188325287141312.,.499308584794215579126,-49,41, + 4945710919752995.,7188325287141810.,.491532605243677120738,-49,41, + 4945710919753138.,7188325287143636.,.463020680520201594507,-49,41, + 4945710919753142.,7188325287143688.,-.460853778905954283317,-49,41, + 4945710919753337.,7188325287146178.,-.499733675490958930991,-49,41, + 5359395441748007.,7494447324022398.,-.499961951083720182608,-49,40, + 5359395441748202.,7494447324024993.,.498554489994942391015,-49,40, + 5359395441748234.,7494447324025420.,-.491432555485745411047,-49,40, + 5359395441764186.,7494447324237786.,-.499971712724298350671,-49,40, + 5359395441796544.,7494447324668562.,-.499972665460809052540,-49,40, + 5417777045995623.,8313402342353557.,.493528442498594379240,-49,40, + 5417777045995666.,8313402342354192.,.499005705923328145610,-49,40, + 5417777045996036.,8313402342359656.,.499624021117189816096,-49,40, + 5417777045996221.,8313402342362388.,.499933180060830202612,-49,40, + 5417777045999508.,8313402342410930.,-.499979073235753436055,-49,40, + 5417777046067425.,8313402343413899.,-.499927967054062712993,-49,40, + 5778823030821029.,5313233520149218.,.499992627494380170015,-47,-6, + 5778823030826575.,5313233520358596.,-.499979272973560193761,-47,-6, + 5778823030827380.,5313233520388986.,.499845181251239685753,-47,-6, + 5778823030828185.,5313233520419377.,.499669809308578035673,-47,-6, + 5778823030828634.,5313233520436329.,-.495458987225440886547,-47,-6, + 5778823030828812.,5313233520443049.,-.497982192263105413183,-47,-6, + 5778823030878099.,5313233522303771.,-.499684449391140941916,-47,-6, + 8121655714620479.,6411635769439649.,-.499985015810717605118,-46,-113, + 8121655714626288.,6411635769968935.,-.484986976925747367258,-46,-113, + 8121655714626314.,6411635769971304.,-.499552217145667736607,-46,-113, + 8121655714628169.,6411635770140321.,.499737710757007712676,-46,-113, + 8121655714631670.,6411635770459315.,-.499973040220525802954,-46,-113, + 4562586167772723.,4772415358056861.,-.498895874704581498524,-45,-134, + 4562586167776275.,4772415358538655.,-.499279371386878594999,-45,-134, + 4562586167795811.,4772415361188521.,.499480818788853607930,-45,-134, + 4562586167796731.,4772415361313310.,.485945195287251596196,-45,-134, + 4562586167796781.,4772415361320092.,.496079222279415183047,-45,-134, + 4562586167796806.,4772415361323484.,-.498853760610321997587,-45,-134, + 4562586167796995.,4772415361349119.,.499452966705486663767,-45,-134, + 4562586167848310.,4772415368309497.,-.494872135077600154728,-45,-134, + 6027460262096913.,4994051821347062.,.499955886529636453011,-45,-194, + 6027460262097855.,4994051821480769.,.499299073576032927375,-45,-194, + 6027460262098169.,4994051821525338.,.499080931429489105406,-45,-194, + 6027460262098235.,4994051821534707.,-.494595442764502258333,-45,-194, + 6027460262098285.,4994051821541803.,.479892164242152551717,-45,-194, + 6027460262098301.,4994051821544075.,-.488271799385679879685,-45,-194, + 6027460262124429.,4994051825252670.,-.498646554584877055173,-45,-194, + 6027460262151945.,4994051829158277.,-.494194608881824224690,-45,-194, + 5559343709982586.,8457155917816686.,.499745265679787457792,-44,-402, + 5559343709982601.,8457155917823898.,-.495411617018649188780,-44,-402, + 5559343709983412.,8457155918213772.,.499782077920697624219,-44,-402, + 5559343709989607.,8457155921191918.,-.499347544946116887421,-44,-402, + 5559343709990020.,8457155921390461.,-.499252231312833591334,-44,-402, + 5990473496078017.,5411928243289759.,-.498878297070438418366,-44,-438, + 5990473496089345.,5411928246774620.,-.492694014424328661852,-44,-438, + 5990473496089356.,5411928246778003.,.464851923162278625306,-44,-438, + 5990473496089394.,5411928246789694.,-.499989367076426039610,-44,-438, + 6568159494618194.,7016995606382824.,-.488552949565888140824,-44,-485, + 6568159494645183.,7016995617147927.,-.499771857116905068528,-44,-485, + 6568159494646614.,7016995617718710.,-.499683341663143224138,-44,-485, + 6568159494649953.,7016995619050537.,-.499296247748297162606,-44,-485, + 6568159494649976.,7016995619059711.,-.488810524428244561689,-44,-485, + 6568159494658916.,7016995622625609.,-.499103591425611987345,-44,-485, + 6963445207187979.,4682674967756109.,.499572656172427973337,-44,-518, + 6963445207188191.,4682674967812540.,-.498455793400208992208,-44,-518, + 6963445207188403.,4682674967868970.,-.496483562945907416022,-44,-518, + 6963445207188414.,4682674967871897.,.475316901531497163098,-44,-518, + 6963445207190071.,4682674968312957.,-.499810403632855022397,-44,-518, + 6963445207191064.,4682674968577273.,-.499972399461582514795,-44,-518, + 6963445207201206.,4682674971276863.,-.498758489541791803120,-44,-518, + 7193584984568816.,8577581806688796.,-.495524469266322008556,-44,-536, + 7193584984582733.,8577581813474434.,-.499796426611214950902,-44,-536, + 7193584984586779.,8577581815447178.,.441263597518549995853,-44,-536, + 7193584984586786.,8577581815450591.,.494795236395555669483,-44,-536, + 7193584984586805.,8577581815459855.,.497238263050339494888,-44,-536, + 7193584984586824.,8577581815469119.,.499681299710477173033,-44,-536, + 7193584984587235.,8577581815669514.,.499898910242633221372,-44,-536, + 7193584984606065.,8577581824850629.,-.494842801405957195235,-44,-536, + 8255861737061180.,4644308687532617.,-.497594305635336458738,-44,-624, + 8255861737079092.,4644308692261356.,-.440185343508163505258,-44,-624, + 8255861737079118.,4644308692268220.,-.482193197738568417277,-44,-624, + 8255861737079129.,4644308692271124.,-.499965748397594888697,-44,-624, + 8255861737088413.,4644308694722085.,-.499351010255622839681,-44,-624, + 5078134788964411.,8360418200442517.,-.493150420012643729348,-43,-779, + 5078134788969314.,8360418205102669.,-.497860992588776498523,-43,-779, + 5078134788974217.,8360418209762821.,-.499973965846486350645,-43,-779, + 5078134788975661.,8360418211135298.,.470121217450978259215,-43,-779, + 5078134788975676.,8360418211149556.,-.487251957661857065249,-43,-779, + 5078134788975693.,8360418211165713.,.494391806601460293027,-43,-779, + 5078134788975742.,8360418211212287.,-.499693639324984585720,-43,-779, + 5651454882237883.,8555906675851606.,-.499694470020881644569,-43,-873, + 5651454882240239.,8555906678143273.,-.497070393002435503000,-43,-873, + 5651454882240311.,8555906678213306.,.469063607914004086707,-43,-873, + 5651454882240324.,8555906678225951.,.490726752509638025792,-43,-873, + 5651454882240422.,8555906678321276.,-.499812017541970134940,-43,-873, + 5651454882241899.,8555906679757945.,-.499946286379153797914,-43,-873, + 5651454882252470.,8555906690040293.,-.491834253328581651621,-43,-873, + 5651454882281644.,8555906718417667.,-.405524396726037710922,-43,-873, + 5789792333309907.,6899052488581085.,.497430747290236323316,-43,-896, + 5789792333309910.,6899052488583438.,.491812854378775067868,-43,-896, + 5789792333316671.,6899052493886303.,.499660422237095819068,-43,-896, + 5789792333390719.,6899052551964480.,-.209140830949256081323,-43,-896, + 5789792333400687.,6899052559782696.,-.132603102113778923251,-43,-896, + 5789792333400865.,6899052559922307.,-.131155838638576400369,-43,-896, + 5924115480983530.,7049241350583028.,-.499100889415011461159,-43,-918, + 5924115480986954.,7049241353327041.,.499859214262847275924,-43,-918, + 5924115480987927.,7049241354106809.,.496838041207148618816,-43,-918, + 5924115480987937.,7049241354114824.,-.443583105780481104179,-43,-918, + 5924115480988028.,7049241354187751.,.498584875324918310129,-43,-918, + 5924115480988129.,7049241354268694.,-.499667361151250030257,-43,-918, + 5924115481024182.,7049241383161783.,-.440168700267446374480,-43,-918, + 6249411755243645.,9007199254740283.,-.103196517177171991624,-43,-971 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/sqrt.c b/src/regress/lib/libm/fpaccuracy/sqrt.c new file mode 100644 index 000000000..336c72905 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/sqrt.c @@ -0,0 +1,1087 @@ +/* $OpenBSD: sqrt.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:43:39. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1055 +#define F sqrt +#define Fs "sqrt" +#define Fn fpaccuracy_sqrt + /* 1 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + 0.,0.,0.000000000000000000000,0,0, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,563, + 4710873812716024.,4606070944692158.,.499997259338650944577,-1074,563, + 4710873812732161.,4606070944700047.,.499977878675464743553,-1074,563, + 4710873812733104.,4606070944700509.,-.489488458481905994116,-1074,563, + 4710873812733106.,4606070944700509.,.488264529138071756924,-1074,563, + 4710873812733108.,4606070944700510.,.466017516758049300413,-1074,563, + 4710873812733599.,4606070944700751.,-.495624022543743866703,-1074,563, + 4710873812733959.,4606070944700926.,.499913749039661194281,-1074,563, + 4754513311658284.,4627356089465377.,.499993780938020603067,-1074,563, + 4754513311664790.,4627356089468544.,-.499961142819193643275,-1074,563, + 4754513311667445.,4627356089469835.,.496675757484457497115,-1074,563, + 4754513311667482.,4627356089469854.,-.498098040894273776981,-1074,563, + 4754513311668043.,4627356089470127.,-.499938605510107737070,-1074,563, + 5043178920574909.,4765758985456976.,-.499999191851991754531,-1074,563, + 5043178920597269.,4765758985467541.,-.499967173155709525013,-1074,563, + 5043178920640971.,4765758985488189.,.499648111685199847172,-1074,563, + 5043178920641062.,4765758985488232.,.496741265015511248168,-1074,563, + 5043178920641098.,4765758985488250.,-.493419685315461658911,-1074,563, + 5043178920641100.,4765758985488250.,.451571372999482510586,-1074,563, + 5043178920641989.,4765758985488671.,-.499903206026387090861,-1074,563, + 5067536030740754.,4777253748727465.,.499998272055392635598,-1074,563, + 5067536030787941.,4777253748749707.,.499983393665569703561,-1074,563, + 5067536030788552.,4777253748749996.,-.499889646000900869460,-1074,563, + 5067536030789163.,4777253748750284.,-.499762685684733734185,-1074,563, + 5067536030789390.,4777253748750390.,.498647821662348410968,-1074,563, + 5067536030789407.,4777253748750399.,-.488255356201622951379,-1074,563, + 5067536030789426.,4777253748750407.,.467558739126863738020,-1074,563, + 5085234186983333.,4785588656538488.,-.499971602327841069839,-1074,563, + 5085234186983418.,4785588656538527.,.495731727028281901160,-1074,563, + 5085234186983435.,4785588656538535.,.494872392899466383523,-1074,563, + 5085234186999625.,4785588656546154.,-.499987586436385915888,-1074,563, + 5085234187015917.,4785588656553819.,.499996417174959104809,-1074,563, + 5138672529716431.,4810667696901328.,-.490375994519725085964,-1074,563, + 5138672529716448.,4810667696901335.,.467063438951575167411,-1074,563, + 5138672529716463.,4810667696901342.,.488333527308593871871,-1074,563, + 5138672529716478.,4810667696901350.,-.490396384334397671359,-1074,563, + 5138672529719956.,4810667696902978.,-.491905230899360486486,-1074,563, + 5138672529737487.,4810667696911184.,-.499510641566876171180,-1074,563, + 5138672529738615.,4810667696911712.,-.499999998228540316665,-1074,563, + 5247429781477257.,4861308754699070.,-.499793899879152420383,-1074,563, + 5247429781477393.,4861308754699132.,.496569860222991299678,-1074,563, + 5247429781477434.,4861308754699151.,.488120699665389182885,-1074,563, + 5247429781477488.,4861308754699177.,-.498617219117907303548,-1074,563, + 5247429781478086.,4861308754699454.,-.499900097504498683021,-1074,563, + 5247429781478915.,4861308754699837.,.499993704839822498670,-1074,563, + 5247429781488265.,4861308754704169.,-.499997790723225822225,-1074,563, + 5430093347267257.,4945196292902823.,.484371323556506826574,-1074,563, + 5430093347267268.,4945196292902828.,.493231737466968167679,-1074,563, + 5430093347267279.,4945196292902834.,-.497907848622575564560,-1074,563, + 5430093347267391.,4945196292902885.,-.498601816080036914254,-1074,563, + 5430093347267615.,4945196292902987.,-.499989750996537465597,-1074,563, + 5430093347286350.,4945196292911517.,.499997024322042743169,-1074,563, + 5548521715332800.,4998831896516416.,-.499993470464549403794,-1074,563, + 5548521715336454.,4998831896518061.,.499850000671392568044,-1074,563, + 5548521715337100.,4998831896518353.,-.499630327148036535183,-1074,563, + 5548521715337171.,4998831896518384.,.483398924746937242267,-1074,563, + 5548521715337211.,4998831896518403.,-.497993046016547929733,-1074,563, + 5548521715371278.,4998831896533749.,-.499999769590908093218,-1074,563, + 5628288433399513.,5034635805238719.,-.499968849241698935811,-1074,563, + 5628288433405429.,5034635805241365.,-.499699297117204429845,-1074,563, + 5628288433407088.,5034635805242107.,-.492524316471915496696,-1074,563, + 5628288433407126.,5034635805242124.,-.496579380207662575395,-1074,563, + 5628288433407164.,5034635805242140.,.499365556056532970923,-1074,563, + 5628288433407401.,5034635805242247.,-.499609446718068564478,-1074,563, + 5628288433420968.,5034635805248314.,.499994504654068069095,-1074,563, + 5628288433443409.,5034635805258352.,-.499997235970546004388,-1074,563, + 5813862287855054.,5116962774260470.,-.499992830343937341389,-1074,563, + 5813862287858708.,5116962774262078.,-.499918920529641588928,-1074,563, + 5813862287875151.,5116962774269314.,-.499586332618550437633,-1074,563, + 5813862287876160.,5116962774269758.,-.473293346197387725127,-1074,563, + 5813862287876169.,5116962774269761.,.487297968844847686574,-1074,563, + 5813862287876219.,5116962774269783.,.490583052412766372811,-1074,563, + 5813862287876369.,5116962774269850.,-.499561696884045262135,-1074,563, + 5813862287936026.,5116962774296103.,-.499997156399247622707,-1074,563, + 6075263211422701.,5230731606108361.,.499985939998831666027,-1074,563, + 6075263211441031.,5230731606116252.,.459357018918231745789,-1074,563, + 6075263211441045.,5230731606116258.,.486276342159992746296,-1074,563, + 6075263211441052.,5230731606116261.,.499736003780870642438,-1074,563, + 6075263211441275.,5230731606116357.,.499950938273643586312,-1074,563, + 6075263211473891.,5230731606130398.,.499997122959928686152,-1074,563, + 6129086353426435.,5253851065400777.,.499997347455951901461,-1074,563, + 6129086353435560.,5253851065404688.,.473689614237001860121,-1074,563, + 6129086353435630.,5253851065404718.,.475679582299686258365,-1074,563, + 6129086353436386.,5253851065405042.,.497171237365760889548,-1074,563, + 6129086353436484.,5253851065405084.,.499957192650640776319,-1074,563, + 6501921822811604.,5411289374853874.,.499948985205935215845,-1074,563, + 6501921822812534.,5411289374854262.,-.499156836268183540560,-1074,563, + 6501921822813154.,5411289374854520.,-.498560717266305636710,-1074,563, + 6501921822813202.,5411289374854539.,.475678982268810587736,-1074,563, + 6501921822813214.,5411289374854544.,.469238907152578123654,-1074,563, + 6501921822831790.,5411289374862275.,-.499997378300020180297,-1074,563, + 6507822719580630.,5413744358103416.,.499993520761662190230,-1074,563, + 6507822719617967.,5413744358118946.,.499949576953387955421,-1074,563, + 6507822719619234.,5413744358119473.,.497564390516742214038,-1074,563, + 6507822719619246.,5413744358119478.,.488859874149299068263,-1074,563, + 6507822719619258.,5413744358119483.,.480155357781851320677,-1074,563, + 6507822719619347.,5413744358119520.,.498930194723136895239,-1074,563, + 6507822719619460.,5413744358119568.,-.499704001070876482796,-1074,563, + 6507822719629685.,5413744358123820.,.499989342427825661033,-1074,563, + 6593474862793193.,5449254163199966.,-.499999844140823048662,-1074,563, + 6593474862828701.,5449254163214639.,-.499734194016901497424,-1074,563, + 6593474862828943.,5449254163214739.,-.497873647590271838588,-1074,563, + 6593474862829047.,5449254163214781.,.478132537650360574882,-1074,563, + 6593474862829064.,5449254163214789.,-.496943374377645202349,-1074,563, + 6593474862829744.,5449254163215070.,-.499979855505302379023,-1074,563, + 6715856444711635.,5499593492420786.,.499989094616012296321,-1074,563, + 6715856444711762.,5499593492420838.,.499937223899358940764,-1074,563, + 6715856444714683.,5499593492422034.,.498744197280630367557,-1074,563, + 6715856444715147.,5499593492422224.,.482806653829409129507,-1074,563, + 6715856444715191.,5499593492422242.,.498536714363866429636,-1074,563, + 6715856444750160.,5499593492436561.,-.499997694537856786647,-1074,563, + 6845184054394453.,5552293972463393.,-.499997189841731497427,-1074,563, + 6845184054407218.,5552293972468569.,.499773397919069162324,-1074,563, + 6845184054407324.,5552293972468612.,.489352378102749975152,-1074,563, + 6845184054407329.,5552293972468615.,-.482837292643311037327,-1074,563, + 6845184054407361.,5552293972468627.,.495148814581880945457,-1074,563, + 6845184054407398.,5552293972468643.,-.499054748939028639354,-1074,563, + 6845184054408081.,5552293972468919.,.499836227140680776491,-1074,563, + 6845184054410670.,5552293972469970.,-.499975285326862145501,-1074,563, + 6862307434190629.,5559234228157930.,.499992627063595284694,-1074,563, + 6862307434195295.,5559234228159820.,.490142247917823358498,-1074,563, + 6862307434195337.,5559234228159838.,-.497516070971533122819,-1074,563, + 6862307434195416.,5559234228159870.,-.498111480311178038333,-1074,563, + 6862307434195653.,5559234228159966.,-.499897708331217931935,-1074,563, + 6862307434209103.,5559234228165413.,.499997787393021721227,-1074,563, + 6931506210289703.,5587193283373772.,-.499987927689124592844,-1074,563, + 6931506210291750.,5587193283374596.,.499969086506203378661,-1074,563, + 6931506210293400.,5587193283375261.,.497491838455779102042,-1074,563, + 6931506210293405.,5587193283375264.,-.487364153205100045789,-1074,563, + 6931506210293467.,5587193283375289.,-.499578449800061861927,-1074,563, + 6931506210293797.,5587193283375421.,.499926100579712595282,-1074,563, + 6931506210313937.,5587193283383538.,.499991684431384663150,-1074,563, + 6971536772633227.,5603303526619874.,-.499974329079870201863,-1074,563, + 6971536772634083.,5603303526620218.,-.499219888907826579793,-1074,563, + 6971536772634700.,5603303526620465.,.454594935361962604862,-1074,563, + 6971536772634720.,5603303526620473.,.491995740038271363521,-1074,563, + 6971536772634725.,5603303526620476.,-.498654058792653248202,-1074,563, + 6971536772643815.,5603303526624129.,-.499988334605014114616,-1074,563, + 6971536772654403.,5603303526628383.,.499997656638707911310,-1074,563, + 7115010065357803.,5660667511794234.,.499942835199262823698,-1074,563, + 7115010065357808.,5660667511794236.,.488930714273179205224,-1074,563, + 7115010065357828.,5660667511794244.,.444882230568837742624,-1074,563, + 7115010065390131.,5660667511807094.,.499973760907495923837,-1074,563, + 7115010065414377.,5660667511816739.,.499996936015956083148,-1074,563, + 7118157106898115.,5661919258890134.,-.499999452008503299781,-1074,563, + 7118157106918200.,5661919258898121.,.497919596719386373474,-1074,563, + 7118157106918376.,5661919258898191.,.494814481039808827320,-1074,563, + 7118157106918401.,5661919258898201.,.437555231653435008706,-1074,563, + 7118157106918723.,5661919258898330.,-.499943900444620491069,-1074,563, + 7364629986173836.,5759109728200537.,.499992951884051390037,-1074,563, + 7364629986178235.,5759109728202257.,.499758175145708178091,-1074,563, + 7364629986178304.,5759109728202284.,.478613324131171696926,-1074,563, + 7364629986180079.,5759109728202978.,.499887084221029065706,-1074,563, + 7364629986181923.,5759109728203700.,-.499984006793914203888,-1074,563, + 7364629986220514.,5759109728218789.,-.499997733230616893873,-1074,563, + 7379721516100053.,5765007464869948.,.499996636417506778989,-1074,563, + 7379721516103499.,5765007464871295.,-.499637320082822554697,-1074,563, + 7379721516103563.,5765007464871319.,.498628329009962065624,-1074,563, + 7379721516103691.,5765007464871369.,.495159627195206113305,-1074,563, + 7379721516103709.,5765007464871377.,-.474078158997528716543,-1074,563, + 7379721516104669.,5765007464871751.,.499906577377523637550,-1074,563, + 7379721516111008.,5765007464874227.,.499999539141811990184,-1074,563, + 7581837714778646.,5843420360290768.,-.499999783903159105917,-1074,563, + 7581837714779165.,5843420360290968.,-.499994436954234410695,-1074,563, + 7581837714813938.,5843420360304368.,-.499636206969887556023,-1074,563, + 7581837714851306.,5843420360318768.,-.499251277658531961810,-1074,563, + 7581837714851825.,5843420360318968.,-.499245931667950146974,-1074,563, + 7581837714851934.,5843420360319010.,-.495391244360585991086,-1074,563, + 7729065683330441.,5899882823528706.,.499996633196319779697,-1074,563, + 7729065683354171.,5899882823537763.,.495055180891869895738,-1074,563, + 7729065683354192.,5899882823537772.,-.489904944293318036683,-1074,563, + 7729065683354378.,5899882823537843.,-.499551767362600754412,-1074,563, + 7729065683355109.,5899882823538122.,-.499830410723809791270,-1074,563, + 7729065683359364.,5899882823539745.,.499915652623111833812,-1074,563, + 7729065683369936.,5899882823543780.,.499989770947361650230,-1074,563, + 7753456497536190.,5909184697835847.,.499979882352204752940,-1074,563, + 7753456497537014.,5909184697836161.,.499819345169908120679,-1074,563, + 7753456497541134.,5909184697837731.,.499016659008147033845,-1074,563, + 7753456497541412.,5909184697837837.,.435855701043374473495,-1074,563, + 7753456497541420.,5909184697837840.,.484397831749396071268,-1074,563, + 7753456497541504.,5909184697837872.,.494090204162527893718,-1074,563, + 7753456497541546.,5909184697837888.,.498936390369028781988,-1074,563, + 7753456497548571.,5909184697840565.,.499994915965429528097,-1074,563, + 7942294164252990.,5980711750167921.,-.499878454392265357881,-1074,563, + 7942294164253237.,5980711750168013.,.498175492052428612191,-1074,563, + 7942294164253253.,5980711750168020.,-.477659070121244321316,-1074,563, + 7942294164253277.,5980711750168029.,-.441410913381765098955,-1074,563, + 7942294164253322.,5980711750168046.,-.498445619495278355733,-1074,563, + 7942294164255059.,5980711750168700.,-.499985275513574217820,-1074,563, + 7942294164264825.,5980711750172376.,.499993836180572477431,-1074,563, + 8012046509305654.,6006916819282919.,.499989726937894323695,-1074,563, + 8012046509306601.,6006916819283274.,.499815380330294061467,-1074,563, + 8012046509306665.,6006916819283298.,.491355867992803937742,-1074,563, + 8012046509306777.,6006916819283340.,.476551721401965649844,-1074,563, + 8012046509311328.,6006916819285047.,-.499998913979340960567,-1074,563, + 8095156314231791.,6037991633008463.,.499964202998383349692,-1074,563, + 8095156314231909.,6037991633008508.,-.493287499726219516545,-1074,563, + 8095156314231917.,6037991633008510.,.490220859411083933897,-1074,563, + 8095156314231925.,6037991633008513.,.473729218548385910119,-1074,563, + 8095156314234459.,6037991633009459.,-.499998024785401212841,-1074,563, + 8127503301001679.,6050043044296763.,-.499999712144082922400,-1074,563, + 8127503301007117.,6050043044298787.,-.499955884078547773427,-1074,563, + 8127503301011561.,6050043044300441.,-.462406275915776245338,-1074,563, + 8127503301011577.,6050043044300446.,.492724415741958611890,-1074,563, + 8127503301011620.,6050043044300462.,.497138149572091995471,-1074,563, + 8127503301011663.,6050043044300479.,-.498448116597816958044,-1074,563, + 8127503301012332.,6050043044300728.,-.499546071665342127396,-1074,563, + 8127503301012555.,6050043044300811.,-.499912056690127836266,-1074,563, + 8172636478209818.,6066818160939082.,-.491721627877953604455,-1074,563, + 8172636478209826.,6066818160939084.,.477610570912315499591,-1074,563, + 8172636478209853.,6066818160939094.,.499106741829462996273,-1074,563, + 8172636478210179.,6066818160939215.,.499393842531492848879,-1074,563, + 8172636478210831.,6066818160939457.,.499968043928312645581,-1074,563, + 8172636478224787.,6066818160944637.,.499988831021594922112,-1074,563, + 8172636478231765.,6066818160947227.,.499999222909681309961,-1074,563, + 8182544317654696.,6070494505386877.,-.499997096791461348697,-1074,563, + 8182544317659039.,6070494505388487.,.499993456774877093305,-1074,563, + 8182544317676322.,6070494505394898.,.486140525365763091264,-1074,563, + 8182544317676349.,6070494505394909.,-.498432409265932311375,-1074,563, + 8182544317676411.,6070494505394931.,.499955666764926819350,-1074,563, + 8343868806112156.,6130044408161739.,.499989686019540422092,-1074,563, + 8343868806114489.,6130044408162597.,-.499862267303277343542,-1074,563, + 8343868806114538.,6130044408162614.,.499712209458053517239,-1074,563, + 8343868806114557.,6130044408162621.,.479139047385902284019,-1074,563, + 8343868806119204.,6130044408164329.,-.499991697552049037184,-1074,563, + 8355919228149707.,6134469392069128.,.499753631511410906732,-1074,563, + 8355919228149786.,6134469392069157.,.498542917365513141547,-1074,563, + 8355919228149816.,6134469392069169.,-.489258619651952302092,-1074,563, + 8355919228149824.,6134469392069171.,.447327637143386907612,-1074,563, + 8355919228151347.,6134469392069730.,.499936274530481073857,-1074,563, + 8355919228152167.,6134469392070032.,-.499972403982137605813,-1074,563, + 8355919228162906.,6134469392073974.,-.499995940158839319761,-1074,563, + 8437646297787932.,6164396217197738.,-.499992746529245130007,-1074,563, + 8437646297835286.,6164396217215036.,-.499569020495409015480,-1074,563, + 8437646297835338.,6164396217215054.,.495574410523941605021,-1074,563, + 8437646297836934.,6164396217215638.,-.499638745141379841499,-1074,563, + 8437646297845174.,6164396217218648.,-.499987369253081690203,-1074,563, + 8554985304582939.,6207111134004271.,.499996192538127011287,-1074,563, + 8554985304598709.,6207111134009993.,-.499961249570917786022,-1074,563, + 8554985304602899.,6207111134011513.,-.462537133934825955212,-1074,563, + 8554985304602921.,6207111134011521.,-.481433713758244112997,-1074,563, + 8554985304602943.,6207111134011528.,.499669706418327467115,-1074,563, + 8554985304603260.,6207111134011644.,-.499885557402212199140,-1074,563, + 8554985304609928.,6207111134014063.,-.499994388039067000201,-1074,563, + 8782580996079924.,6289135751539852.,.499998972815982777397,-1074,563, + 8782580996088624.,6289135751542968.,-.499919456331404581506,-1074,563, + 8782580996094950.,6289135751545232.,.498990429735855502210,-1074,563, + 8782580996094978.,6289135751545243.,-.475721951421524745713,-1074,563, + 8782580996094989.,6289135751545246.,.462783898838071498834,-1074,563, + 8782580996095031.,6289135751545262.,-.499284672898038254689,-1074,563, + 8782580996095584.,6289135751545460.,-.499854200760170179475,-1074,563, + 8877618193246117.,6323071879003176.,-.499998439581218641711,-1074,563, + 8877618193270381.,6323071879011817.,-.498958951938139184729,-1074,563, + 8877618193270395.,6323071879011821.,.486781839058575904163,-1074,563, + 8877618193270412.,6323071879011828.,-.459104343302561058743,-1074,563, + 8877618193271083.,6323071879012067.,-.499670717679126212300,-1074,563, + 8877618193271434.,6323071879012191.,.499973399446673631480,-1074,563, + 8877618193285460.,6323071879017186.,.499997291459888672499,-1074,563, + 8703077354395482.,6260605077005904.,-.499997192871349700305,-60,56, + 8703077354428367.,6260605077017732.,-.499993655896437921489,-60,56, + 8703077354441273.,6260605077022373.,.499946908111602974195,-60,56, + 8703077354446233.,6260605077024158.,-.498836201630874286731,-60,56, + 8703077354446486.,6260605077024248.,.499612966346457387315,-60,56, + 8703077354447726.,6260605077024694.,.499917188824923690356,-60,56, + 9007199254740990.,9007199254740991.,-.000000000000000055511,-59,56, + 9007199254740991.,9007199254740991.,.499999999999999986122,-59,56, + 4503599627370497.,4503599627370496.,.499999999999999972244,-58,55, + 7188956797806559.,8046885503818756.,-.499996652729946127282,-57,55, + 7188956797839398.,8046885503837134.,.499939765641762145408,-57,55, + 7188956797842180.,8046885503838692.,-.498390784844768004409,-57,55, + 7188956797842248.,8046885503838730.,-.440837397872653507103,-57,55, + 7188956797842264.,8046885503838739.,-.486118953879240959904,-57,55, + 7188956797842289.,8046885503838753.,-.494371385139553804311,-57,55, + 7188956797842909.,8046885503839100.,-.499031680403095533083,-57,55, + 7188956797843881.,8046885503839644.,-.499886207846378210092,-57,55, + 7188956797858059.,8046885503847578.,.499994971007161991362,-57,55, + 9006440473862163.,9006819856311127.,-.499995441999062731461,-57,55, + 9006440473862167.,9006819856311129.,-.499911195075971746486,-57,55, + 9006440473862547.,9006819856311319.,-.491907737384353476525,-57,55, + 9006440473864165.,9006819856312128.,-.457829857047542862190,-57,55, + 9006440473864253.,9006819856312172.,-.455976424744534274550,-57,55, + 9007199254740990.,9007199254740991.,-.000000000000000055511,-57,55, + 9007199254740991.,9007199254740991.,.499999999999999986122,-57,55, + 4503599627370497.,4503599627370496.,.499999999999999972244,-56,54, + 7591484324372967.,5847136561979296.,-.499981048406945644485,-56,54, + 7591484324373128.,5847136561979358.,-.497021794689630792208,-56,54, + 7591484324386145.,5847136561984371.,-.499999401596270621813,-56,54, + 8003388475025288.,6003670323545857.,-.499985068568509449685,-56,54, + 8003388475030607.,6003670323547852.,-.499832909004251076038,-56,54, + 8003388475031868.,6003670323548324.,.464106153355865298380,-56,54, + 8003388475032036.,6003670323548387.,.475955290923631166316,-56,54, + 8003388475032364.,6003670323548510.,.499089321411172761987,-56,54, + 8003388475032380.,6003670323548517.,-.499782189296816523042,-56,54, + 8003388475044783.,6003670323553169.,-.499991398050908080038,-56,54, + 8003388475064278.,6003670323560481.,-.499997736438749718750,-56,54, + 8715649185216744.,6265125251966963.,-.499991591603967959619,-56,54, + 8715649185231938.,6265125251972423.,.499588325360256743747,-56,54, + 8715649185231952.,6265125251972429.,-.468557382234573593064,-56,54, + 8715649185233037.,6265125251972819.,-.499849720846217974412,-56,54, + 8715649185234481.,6265125251973337.,.499978724318700070537,-56,54, + 8715649185257649.,6265125251981664.,.499996320642860119397,-56,54, + 4823460372522870.,6591348016351488.,.499994558800535618315,-55,54, + 4823460372575102.,6591348016387176.,.498132819295857796426,-55,54, + 4823460372575162.,6591348016387217.,.493688959015306015742,-55,54, + 4823460372575181.,6591348016387230.,.475615069926411463110,-55,54, + 4823460372575986.,6591348016387780.,.499326611136599254642,-55,54, + 4823460372576428.,6591348016388082.,.499923507036214511508,-55,54, + 4823460372579803.,6591348016390388.,.499956365542000977754,-55,54, + 4823460372583178.,6591348016392694.,.499989223241027409737,-55,54, + 6866204439031579.,7864176467128935.,-.499965444145146696190,-55,54, + 6866204439033416.,7864176467129986.,.499891128174153550167,-55,54, + 6866204439034895.,7864176467130833.,.482900311773712908840,-55,54, + 6866204439034902.,7864176467130837.,.491609618254359379387,-55,54, + 6866204439034909.,7864176467130842.,-.499681075264996193478,-55,54, + 6866204439045587.,7864176467136957.,-.499970420455253267921,-55,54, + 6866204439122631.,7864176467181078.,-.499997936431800507137,-55,54, + 7429938090843348.,8180643790962660.,-.499986134171461763778,-55,54, + 7429938090848069.,8180643790965259.,-.499909355277498841028,-55,54, + 7429938090848841.,8180643790965684.,-.499261341522934521429,-55,54, + 7429938090848930.,8180643790965732.,.496927354361858753998,-55,54, + 7429938090848950.,8180643790965744.,-.492693163416879767963,-55,54, + 7429938090848970.,8180643790965755.,-.482313681195633108862,-55,54, + 7429938090849128.,8180643790965841.,.499684228351694538256,-55,54, + 7429938090855680.,8180643790969449.,-.499997396803876562466,-55,54, + 7477266621093778.,8206657683674613.,.499916103992655528968,-55,54, + 7477266621094106.,8206657683674793.,.497758674670464783265,-55,54, + 7477266621094270.,8206657683674883.,.496679960007888940627,-55,54, + 7477266621095613.,8206657683675621.,-.499958538759973539043,-55,54, + 7477266621103035.,8206657683679694.,-.499996468363917930635,-55,54, + 8992428863881934.,8999811029186598.,.499997683620159410264,-55,54, + 8992428863890461.,8999811029190866.,-.499962199993087914837,-55,54, + 8992428863894941.,8999811029193107.,.338923658397912669291,-55,54, + 8992428863894997.,8999811029193135.,.361909731624266307525,-55,54, + 8992428863895311.,8999811029193292.,.490795927927561483587,-55,54, + 8992428863895333.,8999811029193303.,.499826170980555760373,-55,54, + 9007199254740990.,9007199254740991.,-.000000000000000055511,-55,54, + 9007199254740991.,9007199254740991.,.499999999999999986122,-55,54, + 4503599627370497.,4503599627370496.,.499999999999999972244,-54,53, + 4684840655049689.,4593326314161877.,-.499996010889278782196,-54,53, + 4684840655102366.,4593326314187701.,-.499985506939118988391,-54,53, + 4684840655107178.,4593326314190060.,-.499130291877798303814,-54,53, + 4684840655107182.,4593326314190061.,.461801424842446965932,-54,53, + 4684840655107690.,4593326314190311.,-.499870551693208043301,-54,53, + 5261029272887705.,4867604079314827.,-.499987659696164662133,-54,53, + 5261029272896611.,4867604079318947.,-.499919064296689471806,-54,53, + 5261029272898550.,4867604079319843.,.499871302013960498658,-54,53, + 5261029272899125.,4867604079320110.,-.499675134000991767534,-54,53, + 5261029272899527.,4867604079320295.,.469337618550355581894,-54,53, + 5261029272899540.,4867604079320301.,.483260916518315381338,-54,53, + 5261029272899553.,4867604079320307.,.497184214486267750581,-54,53, + 5261029272899700.,4867604079320376.,-.499221570030480187477,-54,53, + 5261029272945019.,4867604079341341.,-.499995414743911362832,-54,53, + 5357701474447716.,4912121981779879.,.494249748046065955096,-54,53, + 5357701474447740.,4912121981779890.,.496255750523969933879,-54,53, + 5357701474447788.,4912121981779913.,-.499732244520296034327,-54,53, + 5357701474448281.,4912121981780138.,.499807723040183777077,-54,53, + 5357701474450277.,4912121981781053.,.499973595653423065555,-54,53, + 5357701474456758.,4912121981784025.,-.499988820147812385988,-54,53, + 5357701474480686.,4912121981794993.,.499995628831598095050,-54,53, + 6544763739196528.,5429087910236251.,-.499982161963267111518,-54,53, + 6544763739200605.,5429087910237942.,-.499948236591306815230,-54,53, + 6544763739207093.,5429087910240633.,-.499648971596050024882,-54,53, + 6544763739207445.,5429087910240778.,.497901173445694716575,-54,53, + 6544763739207486.,5429087910240796.,-.496702360796857345728,-54,53, + 6544763739207498.,5429087910240800.,.480486848693117340110,-54,53, + 6544763739208759.,5429087910241324.,-.499880387427475454219,-54,53, + 6544763739252861.,5429087910259615.,.499995990558680954553,-54,53, + 6748349574653774.,5512881699236487.,.494731681917480915340,-54,53, + 6748349574654058.,5512881699236603.,.497791782984676077823,-54,53, + 6748349574654271.,5512881699236691.,-.499913141216529428677,-54,53, + 6748349574655571.,5512881699237222.,-.499990143413274332843,-54,53, + 6748349574681713.,5512881699247899.,.499999852325649172543,-54,53, + 6750030179307077.,5513568118765465.,.499993564817739647433,-54,53, + 6750030179323247.,5513568118772069.,.499835943026970241630,-54,53, + 6750030179323842.,5513568118772313.,-.495840852730936421603,-54,53, + 6750030179323913.,5513568118772342.,-.498686319116208611112,-54,53, + 6750030179324650.,5513568118772642.,.499945952340338644297,-54,53, + 6921931465612150.,5583333051969495.,-.498586316596741325809,-54,53, + 6921931465612187.,5583333051969509.,.423789320114475085833,-54,53, + 6921931465612207.,5583333051969517.,.489938312931332216284,-54,53, + 6921931465612331.,5583333051969568.,-.499937931604413670593,-54,53, + 6921931465615294.,5583333051970763.,-.499964645926479488714,-54,53, + 6921931465618257.,5583333051971958.,-.499991360504310979930,-54,53, + 6921931465655990.,5583333051987176.,-.499994089981501617433,-54,53, + 7262316160955343.,5718965322182432.,.484313732489248613750,-54,53, + 7262316160955404.,5718965322182457.,-.497392590852901811624,-54,53, + 7262316160955564.,5718965322182520.,-.498589504537710076349,-54,53, + 7262316160955724.,5718965322182583.,-.499786418223212321359,-54,53, + 7262316160957418.,5718965322183250.,-.499958741911037012846,-54,53, + 7262316160974965.,5718965322190159.,-.499972774675140144542,-54,53, + 7262316161010059.,5718965322203976.,.499999134756662203711,-54,53, + 7667186625738938.,5876218072081561.,-.499988382369713571198,-54,53, + 7667186625744833.,5876218072083819.,.497165712312511237172,-54,53, + 7667186625744854.,5876218072083828.,-.455516181499333419103,-54,53, + 7667186625744940.,5876218072083861.,-.499832508538431276061,-54,53, + 7667186625745595.,5876218072084111.,.499851279704235657251,-54,53, + 7667186625751597.,5876218072086412.,-.499992847462964397462,-54,53, + 7667186625764256.,5876218072091263.,-.499997316560865947709,-54,53, + 7756304500083329.,5910269880161767.,-.499977247429803121884,-54,53, + 7756304500086476.,5910269880162966.,-.499904940613483900062,-54,53, + 7756304500086686.,5910269880163046.,-.490367227107229442680,-54,53, + 7756304500086728.,5910269880163062.,-.488459684406108525494,-54,53, + 7756304500096959.,5910269880166960.,-.499981843430894420749,-54,53, + 7756304500151479.,5910269880187731.,.499999726936961113231,-54,53, + 8671512143453645.,6249241462609408.,-.499998999145981268683,-54,53, + 8671512143471251.,6249241462615751.,.499949943180864515867,-54,53, + 8671512143472669.,6249241462616262.,.450303663235710136255,-54,53, + 8671512143472683.,6249241462616267.,.494947494039992588496,-54,53, + 8671512143472708.,6249241462616277.,-.496759950952370304025,-54,53, + 8671512143472819.,6249241462616317.,-.499941006718618369740,-54,53, + 4889567999035882.,6636362952470382.,-.438494925958237429428,-53,53, + 4889567999035904.,6636362952470396.,.491247843048789122190,-53,53, + 4889567999035932.,6636362952470415.,.492738639966774338548,-53,53, + 4889567999036072.,6636362952470511.,-.499807375444115666698,-53,53, + 4889567999036741.,6636362952470965.,-.499902263390647678288,-53,53, + 4889567999037410.,6636362952471419.,-.499997151368238255438,-53,53, + 4930099044553583.,6663811554951288.,.499997698221532580970,-53,53, + 4930099044555693.,6663811554952714.,.499988152662350055725,-53,53, + 4930099044593673.,6663811554978382.,.499816280416058509542,-53,53, + 4930099044602113.,6663811554984086.,.499778073156857651172,-53,53, + 4930099044602295.,6663811554984210.,-.499274883498954777248,-53,53, + 4930099044602332.,6663811554984235.,-.493587847214974558840,-53,53, + 4930099044602335.,6663811554984237.,-.466099709137899194141,-53,53, + 5026050879165167.,6728346136541044.,.499999178124527795499,-53,53, + 5026050879169395.,6728346136543874.,.499948364344089231963,-53,53, + 5026050879176732.,6728346136548786.,-.499666780559283638941,-53,53, + 5026050879176980.,6728346136548951.,.498438091132751034676,-53,53, + 5026050879177104.,6728346136549034.,.497490526977232590797,-53,53, + 5026050879177113.,6728346136549041.,-.478384699453449729693,-53,53, + 5026050879177161.,6728346136549073.,-.349719240417179864401,-53,53, + 5026050879177851.,6728346136549534.,.499846733212245533081,-53,53, + 5035712052438159.,6734809711180504.,-.499946391670204355309,-53,53, + 5035712052438814.,6734809711180942.,-.498297877310549466486,-53,53, + 5035712052438817.,6734809711180944.,-.492183456634158564981,-53,53, + 5035712052438835.,6734809711180956.,-.455496932575825704841,-53,53, + 5035712052438977.,6734809711181051.,-.499414353894176291824,-53,53, + 5035712052439958.,6734809711181707.,-.499998792756819338791,-53,53, + 5280619103510394.,6896636024447707.,-.499968383371316113981,-53,53, + 5280619103515570.,6896636024451087.,-.499691635298725491237,-53,53, + 5280619103516864.,6896636024451932.,-.499622448539408776605,-53,53, + 5280619103516962.,6896636024451995.,.495746006095023793457,-53,53, + 5280619103516982.,6896636024452009.,-.443974717449042520400,-53,53, + 5280619103524213.,6896636024456730.,.499997683572815721641,-53,53, + 5388947655816329.,6967016959166028.,.499986722495041378791,-53,53, + 5388947655822930.,6967016959170295.,.499954499535850437066,-53,53, + 5388947655827967.,6967016959173552.,-.496585769915668820142,-53,53, + 5388947655827984.,6967016959173562.,.492506708822934764055,-53,53, + 5388947655827998.,6967016959173572.,-.457652426333522357912,-53,53, + 5388947655828066.,6967016959173615.,.498717488620661550316,-53,53, + 5388947655828247.,6967016959173733.,-.499768473046759286460,-53,53, + 5388947655828889.,6967016959174148.,-.499923099529367388902,-53,53, + 5388947655874454.,6967016959203602.,-.499994121670146249150,-53,53, + 5828367993111451.,7245500109993079.,-.499997800262801336121,-53,53, + 5828367993164761.,7245500110026215.,-.499378127165409073065,-53,53, + 5828367993164872.,7245500110026283.,.495108250161278991036,-53,53, + 5828367993164909.,7245500110026306.,.493270375936695680739,-53,53, + 5828367993165308.,7245500110026555.,-.499521835300611129578,-53,53, + 5828367993166949.,7245500110027575.,-.499952959801945599875,-53,53, + 5828367993174023.,7245500110031972.,-.499983293391047738061,-53,53, + 5842346135977690.,7254183328391775.,-.499999374070848595215,-53,53, + 5842346135984671.,7254183328396108.,.499787426752914573855,-53,53, + 5842346135985420.,7254183328396573.,.499907798152892978528,-53,53, + 5842346135986169.,7254183328397039.,-.499971830476935571235,-53,53, + 6083309738839051.,7402268770183215.,-.499992307593177346134,-53,53, + 6083309738850992.,7402268770190480.,-.499920029259886406122,-53,53, + 6083309738851444.,7402268770190755.,-.499498568064491770055,-53,53, + 6083309738852057.,7402268770191127.,.454612838363381745825,-53,53, + 6083309738852062.,7402268770191130.,.496652898774624824670,-53,53, + 6083309738852205.,7402268770191217.,.498998626535647712658,-53,53, + 6083309738855678.,7402268770193331.,-.499975412141760407679,-53,53, + 6083309738893618.,7402268770216414.,-.499997054485089138752,-53,53, + 6466710109340863.,7631968715703771.,-.499994641039391485042,-53,53, + 6466710109370126.,7631968715721039.,-.499979858349925068830,-53,53, + 6466710109370853.,7631968715721468.,-.499671935974900915528,-53,53, + 6466710109371036.,7631968715721575.,.488025931689291007433,-53,53, + 6466710109371048.,7631968715721583.,-.430813552398356346934,-53,53, + 6466710109371075.,7631968715721599.,-.498202391595586916204,-53,53, + 6466710109383051.,7631968715728665.,.499992485642396445601,-53,53, + 6683043781680797.,7758576349418538.,.497856153574627684219,-53,53, + 6683043781680971.,7758576349418639.,.499161015540647237760,-53,53, + 6683043781681145.,7758576349418741.,-.499534122494648045743,-53,53, + 6683043781681872.,7758576349419163.,-.499829325679329300014,-53,53, + 6683043781685681.,7758576349421373.,.499999519983395484308,-53,53, + 7533119765518231.,8237251406740627.,.499996813253231454812,-53,53, + 7533119765568043.,8237251406767861.,.499975815235880812638,-53,53, + 7533119765574783.,8237251406771546.,.498768438075093404803,-53,53, + 7533119765574794.,8237251406771553.,-.487138576933489722871,-53,53, + 7533119765574997.,8237251406771664.,-.499786217547221126192,-53,53, + 7533119765576345.,8237251406772400.,.499972306812331528980,-53,53, + 7593583889909311.,8270243234270945.,.496869304213878834864,-53,53, + 7593583889909322.,8270243234270951.,.486970743526932907074,-53,53, + 7593583889909333.,8270243234270957.,.477072182839982640679,-53,53, + 7593583889910018.,8270243234271330.,.497025449144077732861,-53,53, + 7593583889921128.,8270243234277380.,.499479152836333900243,-53,53, + 7593583889923451.,8270243234278645.,.499992199412543063857,-53,53, + 7593583889968306.,8270243234303071.,.499997630339673827443,-53,53, + 7618936725667564.,8284037735147738.,-.499984780114320830475,-53,53, + 7618936725668973.,8284037735148503.,.499890865257613180330,-53,53, + 7618936725669065.,8284037735148554.,-.484503343847605398146,-53,53, + 7618936725669076.,8284037735148559.,.495623435498489560565,-53,53, + 7618936725675766.,8284037735152197.,-.499998944812552846923,-53,53, + 8259236168422439.,8625113672349162.,-.499670832386556871068,-53,53, + 8259236168422755.,8625113672349326.,.499601793020266872983,-53,53, + 8259236168422935.,8625113672349420.,.486529237870844009364,-53,53, + 8259236168422958.,8625113672349432.,.495969966935010627593,-53,53, + 8259236168433455.,8625113672354914.,-.499711209307835267300,-53,53, + 8259236168506436.,8625113672393021.,-.499978803299006823308,-53,53, + 8259236168511944.,8625113672395897.,-.499999005904711109361,-53,53, + 8460168363172357.,8729399874891135.,.499997566423704654734,-53,53, + 8460168363172954.,8729399874891443.,.499289164194492889943,-53,53, + 8460168363173016.,8729399874891475.,.485815259774755877254,-53,53, + 8791115980768638.,8898501745255821.,.499979507054029590184,-53,53, + 8791115980769047.,8898501745256028.,.498000109403969994275,-53,53, + 8791115980769049.,8898501745256030.,-.489784630926848973820,-53,53, + 8791115980769073.,8898501745256042.,-.343201514896685571939,-53,53, + 8791115980769211.,8898501745256111.,.499651402276432228186,-53,53, + 8791115980774696.,8898501745258888.,-.499998955453327541649,-53,53, + 8837821264158254.,8922108332903178.,-.499997305605935962370,-53,53, + 8837821264162553.,8922108332905347.,.499970825638752879462,-53,53, + 8837821264166852.,8922108332907517.,.499938956355662895259,-53,53, + 8837821264166957.,8922108332907571.,-.499363985329173018738,-53,53, + 8837821264166959.,8922108332907572.,-.489826898504125329873,-53,53, + 8837821264166983.,8922108332907584.,-.375381856603561973373,-53,53, + 8837821264189815.,8922108332919109.,-.499998669318908618251,-53,53, + 9007199254740990.,9007199254740991.,-.000000000000000055511,-53,53, + 9007199254740991.,9007199254740991.,.499999999999999986122,-53,53, + 4503599627370497.,4503599627370496.,.499999999999999972244,-52,52, + 9007199254733488.,6369051672523119.,.499980801879635608946,-52,52, + 9007199254740214.,6369051672525498.,-.499914067214404958350,-52,52, + 9007199254740890.,6369051672525737.,-.497822026155504107103,-52,52, + 9007199254740972.,6369051672525765.,.493556002493042563362,-52,52, + 9007199254740991.,6369051672525772.,.211070423765247960588,-52,52, + 4503599627370496.,6369051672525773.,-.435376185641478267398,-51,52, + 4503599627370497.,6369051672525773.,.271730595545069217751,-51,52, + 4503599627370684.,6369051672525906.,-.499301322571931013736,-51,52, + 4503599627386345.,6369051672536979.,.499998830090416403081,-51,52, + 9007199254740990.,9007199254740991.,-.000000000000000055511,-51,52, + 9007199254740991.,9007199254740991.,.499999999999999986122,-51,52, + 4503599627370497.,4503599627370496.,.499999999999999972244,-50,51, + 5812361472645307.,5116302274333294.,-.468273985322003513817,-50,51, + 5812361472645316.,5116302274333297.,.492828630689501961673,-50,51, + 5812361472645341.,5116302274333308.,.495891452943667747151,-50,51, + 5812361472645366.,5116302274333319.,.498954275197809869564,-50,51, + 5812361472645700.,5116302274333466.,.499873580510878750254,-50,51, + 5812361472704470.,5116302274359332.,.499956069393056673941,-50,51, + 5812361472733855.,5116302274372265.,.499997264796047093996,-50,51, + 5995926477567811.,5196465361196521.,-.499995377685215177821,-50,51, + 5995926477567841.,5196465361196533.,.499993983352804275043,-50,51, + 5995926477569131.,5196465361197092.,.499536507956874885787,-50,51, + 5995926477583501.,5196465361203319.,.494440440759600830098,-50,51, + 5995926477585451.,5196465361204164.,.493748907057632193893,-50,51, + 5995926477585474.,5196465361204174.,.460407417172122408384,-50,51, + 5995926477585481.,5196465361204177.,.493738268076528679424,-50,51, + 6025316007217847.,5209185245784199.,-.499996542630660053684,-50,51, + 6025316007235167.,5209185245791686.,-.499451771416025568816,-50,51, + 6025316007235514.,5209185245791835.,.499924038844197798103,-50,51, + 6025316007237057.,5209185245792503.,-.499969692529362361685,-50,51, + 6084210162775937.,5234581800098409.,-.499990156967087818484,-50,51, + 6084210162777627.,5234581800099136.,-.499853287148401935271,-50,51, + 6084210162778250.,5234581800099404.,-.499211115637162178432,-50,51, + 6084210162778429.,5234581800099481.,-.497421470855571430438,-50,51, + 6084210162778443.,5234581800099487.,-.474935129922980808421,-50,51, + 6084210162778694.,5234581800099594.,.499641411081575339693,-50,51, + 6084210162797728.,5234581800107782.,.499999498141931974220,-50,51, + 6369701198561104.,5355985805087724.,-.494414401517056319619,-50,51, + 6369701198561111.,5355985805087726.,.448572990425548445835,-50,51, + 6369701198561280.,5355985805087798.,-.499302832674913023700,-50,51, + 6369701198561701.,5355985805087975.,-.499632545846433484264,-50,51, + 6369701198562122.,5355985805088152.,-.499962259023803266395,-50,51, + 6369701198568261.,5355985805090732.,.499980473813158593063,-50,51, + 6369701198583398.,5355985805097097.,-.499997842797205160714,-50,51, + 6469155038060348.,5397636910612879.,.499975090155806560492,-50,51, + 6469155038060837.,5397636910613084.,-.497768528535161918355,-50,51, + 6469155038060861.,5397636910613094.,-.485387847244119601402,-50,51, + 6469155038164058.,5397636910656145.,.499993947343487179174,-50,51, + 6482505237450668.,5403203510123427.,-.499992033005025218519,-50,51, + 6482505237452602.,5403203510124232.,.499787821199111975426,-50,51, + 6482505237454356.,5403203510124963.,.484076272115856646614,-50,51, + 6482505237454368.,5403203510124968.,.485109032327033111655,-50,51, + 6482505237454440.,5403203510124998.,.491305593593994697179,-50,51, + 6482505237454536.,5403203510125038.,.499567675283017598616,-50,51, + 6482505237496177.,5403203510142392.,.499998309981270373369,-50,51, + 6527239159277648.,5421814442184546.,.499992425419743694147,-50,51, + 6527239159286641.,5421814442188281.,.492390340313269546806,-50,51, + 6527239159286658.,5421814442188289.,-.447132536976702837465,-50,51, + 6527239159286694.,5421814442188304.,-.495533924179027649342,-50,51, + 6527239159286759.,5421814442188331.,-.499591984405551879782,-50,51, + 6527239159287751.,5421814442188743.,-.499985765110108836832,-50,51, + 6527239159328411.,5421814442205630.,-.499997005202692575073,-50,51, + 6551699081829934.,5431963691297366.,.499993404907310680358,-50,51, + 6551699081984655.,5431963691361505.,.499951986471441278298,-50,51, + 6551699081998253.,5431963691367142.,.498946506869144986908,-50,51, + 6551699081998282.,5431963691367155.,-.479214190218181767448,-50,51, + 6551699081998294.,5431963691367159.,.495340004090502827471,-50,51, + 6551699081998803.,5431963691367370.,.499347079346346230720,-50,51, + 6551699081999628.,5431963691367712.,.499947938044204246289,-50,51, + 6698297894366869.,5492399466634524.,.499990783186411394807,-50,51, + 6698297894367491.,5492399466634780.,-.489518333778218248756,-50,51, + 6698297894367530.,5492399466634795.,.499885435414923368956,-50,51, + 6698297894404807.,5492399466650078.,.499995778558881976861,-50,51, + 7036523586172055.,5629359199826227.,-.499977076479683005750,-50,51, + 7036523586229526.,5629359199849215.,.473101073430466461164,-50,51, + 7036523586229556.,5629359199849227.,.473400221576285158629,-50,51, + 7036523586230871.,5629359199849753.,.486512881942868467627,-50,51, + 7036523586232196.,5629359199850283.,.499725258308153571304,-50,51, + 7036523586232221.,5629359199850293.,.499974548427773638025,-50,51, + 7036523586232226.,5629359199850296.,-.499975593548304480418,-50,51, + 7060691919416123.,5639018487047221.,-.499997417978726737755,-50,51, + 7060691919430933.,5639018487053134.,.499986313901729828148,-50,51, + 7060691919441596.,5639018487057393.,-.499890358875804554102,-50,51, + 7060691919442485.,5639018487057747.,.499838576353724090356,-50,51, + 7060691919442490.,5639018487057749.,.496462473627167799241,-50,51, + 7060691919442585.,5639018487057787.,.432316521822463947475,-50,51, + 7060691919442630.,5639018487057805.,.401931597283304626138,-50,51, + 7060691919445743.,5639018487059048.,.499970039579795696477,-50,51, + 7099291104853528.,5654411089973298.,.496733207607974899953,-50,51, + 7099291104853538.,5654411089973302.,.479110466449763060376,-50,51, + 7099291104853568.,5654411089973314.,.426242242975110713016,-50,51, + 7099291104853754.,5654411089973388.,.498459257431702736974,-50,51, + 7099291104853980.,5654411089973479.,-.499814692746001990876,-50,51, + 7099291104855115.,5654411089973931.,-.499995814235341529772,-50,51, + 7214758118816112.,5700208941387017.,.499998456257135903548,-50,51, + 7214758118816636.,5700208941387224.,.499972405271001549477,-50,51, + 7214758118826068.,5700208941390950.,.499503486235160618703,-50,51, + 7214758118828688.,5700208941391985.,.499373230515194295498,-50,51, + 7214758118828769.,5700208941392017.,.497460806575818864050,-50,51, + 7214758118828784.,5700208941392023.,.423032579920359257835,-50,51, + 7236286776309236.,5708707246770702.,-.499997344416376325713,-50,51, + 7236286776320155.,5708707246775009.,-.499987923975967970669,-50,51, + 7236286776331074.,5708707246779316.,-.499978506785025436737,-50,51, + 7236286776332083.,5708707246779714.,-.499886053249462071088,-50,51, + 7236286776332590.,5708707246779913.,.486285278694999868137,-50,51, + 7236286776332595.,5708707246779915.,.458535489069170720778,-50,51, + 7236286776332623.,5708707246779927.,-.496863332835485096243,-50,51, + 7236286776332732.,5708707246779969.,.498191253321186973728,-50,51, + 7236286776333092.,5708707246780112.,-.499793599741646506603,-50,51, + 7243607294766743.,5711594095655758.,-.499986622183477815505,-50,51, + 7243607294773074.,5711594095658254.,-.498978553101023803758,-50,51, + 7243607294773244.,5711594095658321.,-.476364215453130523411,-50,51, + 7243607294773249.,5711594095658322.,.494889147418854431783,-50,51, + 7243607294773457.,5711594095658404.,.499029042892825730034,-50,51, + 7243607294777840.,5711594095660132.,.499726936188332573255,-50,51, + 7243607294779301.,5711594095660708.,.499959567170658437575,-50,51, + 7243607294844039.,5711594095686232.,-.499999379209933956451,-50,51, + 7273994527114592.,5723561744386821.,-.480219004538521812398,-50,51, + 7273994527114597.,5723561744386822.,.486912577376900117958,-50,51, + 7273994527114625.,5723561744386834.,-.497150563896749566077,-50,51, + 7273994527114747.,5723561744386882.,-.499139965160756350280,-50,51, + 7273994527114808.,5723561744386905.,.499865334207089315177,-50,51, + 7273994527119828.,5723561744388880.,.499973576920971563196,-50,51, + 7273994527120832.,5723561744389275.,.499995225381967633342,-50,51, + 7311312768865156.,5738224939948787.,.499998880674519151506,-50,51, + 7311312768881860.,5738224939955342.,.499930290229285393252,-50,51, + 7311312768882678.,5738224939955664.,-.499713873455866900741,-50,51, + 7311312768883175.,5738224939955859.,-.466490339664539528994,-50,51, + 7311312768883180.,5738224939955860.,.495614524860490446774,-50,51, + 7311312768883338.,5738224939955922.,.498128243851092106659,-50,51, + 7548454164465190.,5830541601112944.,.499989776213429512879,-50,51, + 7548454164492437.,5830541601123468.,-.499966503136250628524,-50,51, + 7548454164494032.,5830541601124084.,-.498752801869890111039,-50,51, + 7548454164495003.,5830541601124459.,-.491117376240546035522,-50,51, + 7548454164495047.,5830541601124476.,-.497980446552454932038,-50,51, + 7548454164501471.,5830541601126957.,-.499988712622623401809,-50,51, + 7571434122712867.,5839409892592737.,.499996506293219285085,-50,51, + 7571434122741325.,5839409892603712.,-.494020614868942642224,-50,51, + 7571434122741330.,5839409892603713.,.434085011469613176669,-50,51, + 7571434122741395.,5839409892603738.,.499458153870780888208,-50,51, + 7571434122743537.,5839409892604564.,.499908477245991760978,-50,51, + 7571434122743996.,5839409892604742.,-.499995024903092747929,-50,51, + 7938013874374808.,5979099959583902.,-.499612318999983036162,-50,51, + 7938013874374885.,5979099959583930.,.499499056590760935819,-50,51, + 7938013874374938.,5979099959583950.,.459926367062230259025,-50,51, + 7938013874374954.,5979099959583956.,.485715743808321111085,-50,51, + 7938013874374962.,5979099959583959.,.498610432181364259799,-50,51, + 7938013874375971.,5979099959584339.,.499953003219260167762,-50,51, + 7938013874378220.,5979099959585186.,.499972271976977848191,-50,51, + 7938013874380469.,5979099959586033.,.499991540614709404038,-50,51, + 7938013874433359.,5979099959605953.,-.499999993197654471446,-50,51, + 7969971748345281.,5991123583769675.,-.496183916609790999713,-50,51, + 7969971748345305.,5991123583769684.,-.475639644271246522400,-50,51, + 7969971748345329.,5991123583769693.,-.455095371932715626882,-50,51, + 7969971748345422.,5991123583769727.,.499513683378963308939,-50,51, + 7969971748347029.,5991123583770332.,-.499876081321330604150,-50,51, + 7969971748348197.,5991123583770770.,.499945172423939153197,-50,51, + 7969971748353308.,5991123583772692.,-.499980831471477415584,-50,51, + 7969971748392589.,5991123583787456.,-.499999118321503804520,-50,51, + 8345810168405835.,6130757503321870.,.499994691490034063357,-50,51, + 8345810168414904.,6130757503325202.,-.496862672252497570151,-50,51, + 8345810168414923.,6130757503325208.,.481752358078482975204,-50,51, + 8345810168414953.,6130757503325220.,-.499381804556827074068,-50,51, + 8345810168418133.,6130757503326388.,-.499603044012002522435,-50,51, + 8345810168423698.,6130757503328432.,-.499990213594001181482,-50,51, + 8515808456089786.,6192882349084672.,-.499901226357777927861,-50,51, + 8515808456089797.,6192882349084675.,.499819187222948030433,-50,51, + 8515808456089973.,6192882349084739.,.495345804514212041135,-50,51, + 8515808456091062.,6192882349085135.,.467666748989202956675,-50,51, + 8515808456091150.,6192882349085167.,.465430057632541036017,-50,51, + 8515808456096942.,6192882349087274.,-.499966719296751172549,-50,51, + 8515808456100520.,6192882349088575.,-.499999466176208666141,-50,51, + 8579801239792273.,6216107275975971.,-.499678500114051667393,-50,51, + 8579801239792411.,6216107275976020.,.491153461480980036322,-50,51, + 8579801239792469.,6216107275976042.,-.498207018428474458627,-50,51, + 8579801239793587.,6216107275976446.,.499982351578852394844,-50,51, + 8579801239846597.,6216107275995649.,.499998872354987148728,-50,51, + 8666221177833595.,6247334669057011.,.499168050276744555447,-50,51, + 8666221177834050.,6247334669057176.,-.499866817912025602698,-50,51, + 8666221177836042.,6247334669057893.,.499962945922938680363,-50,51, + 8666221177847453.,6247334669062006.,.499991777224624843428,-50,51, + 8746614672421072.,6276244942596556.,.499997859853604666999,-50,51, + 8746614672443261.,6276244942604518.,-.499989741157266217901,-50,51, + 8746614672446051.,6276244942605519.,-.499943115472389664048,-50,51, + 8746614672446182.,6276244942605566.,-.499582503302579350893,-50,51, + 8746614672446968.,6276244942605848.,-.497418830291108788313,-50,51, + 8746614672447099.,6276244942605895.,-.497058218123762247274,-50,51, + 8746614672447110.,6276244942605898.,.449536947783403505250,-50,51, + 8848436869363688.,6312671145218770.,.499999512046304921488,-50,51, + 8848436869418612.,6312671145238362.,.499982012399772673818,-50,51, + 8848436869421093.,6312671145239248.,-.499800295798097035788,-50,51, + 8848436869422419.,6312671145239720.,.499106862284692319169,-50,51, + 8848436869422503.,6312671145239750.,.462838537456164026668,-50,51, + 8848436869422520.,6312671145239757.,-.473072909235341146604,-50,51, + 8848436869422576.,6312671145239777.,-.497251792454458211856,-50,51, + 8848436869422747.,6312671145239838.,-.499655167998939033699,-50,51, + 8957999189156421.,6351633003430698.,-.499367408427567423264,-50,51, + 8957999189156469.,6351633003430715.,-.482264720266707444605,-50,51, + 8957999189158466.,6351633003431423.,-.499888298281334645876,-50,51, + 8957999189158875.,6351633003431568.,-.499992476262018593205,-50,51, + 8957999189197290.,6351633003445187.,-.499997373971698328943,-50,51, + 4630540339075013.,6458188561134194.,.499988846475325818803,-49,51, + 4630540339110334.,6458188561158825.,.499987105058442861258,-49,51, + 4630540339111616.,6458188561159719.,.499081063471343051590,-49,51, + 4630540339111768.,6458188561159825.,.495853514070594444692,-49,51, + 4630540339111801.,6458188561159849.,-.491689309154797931039,-49,51, + 4630540339112181.,6458188561160114.,-.499758182665224884755,-49,51, + 4751802502325456.,6542203906759727.,-.499995997836639145186,-49,51, + 4751802502330642.,6542203906763296.,.499961265005090692948,-49,51, + 4751802502333235.,6542203906765081.,.499939895695416262633,-49,51, + 4751802502333726.,6542203906765420.,-.499678497082545719357,-49,51, + 4751802502333864.,6542203906765514.,.498392097204822241122,-49,51, + 4751802502333877.,6542203906765523.,.447485703912981461474,-49,51, + 4751802502372621.,6542203906792195.,-.499999096554129910469,-49,51, + 4918372782516509.,6655881884560533.,.499998672845462054313,-49,51, + 4918372782543596.,6655881884578861.,.499987583587583397443,-49,51, + 4918372782547542.,6655881884581531.,.499912127749251533365,-49,51, + 4918372782548445.,6655881884582143.,-.499091454920861096775,-49,51, + 4918372782548454.,6655881884582149.,-.409380527173669435760,-49,51, + 4918372782548980.,6655881884582505.,-.499608527736368730211,-49,51, + 4961703275491831.,6685136501617297.,.499998067775643174972,-49,51, + 4961703275492830.,6685136501617970.,.499872738166894689569,-49,51, + 4961703275494828.,6685136501619316.,.499622078746142857236,-49,51, + 4961703275494911.,6685136501619372.,.414526580876454979753,-49,51, + 4961703275494923.,6685136501619380.,.498609159497666229401,-49,51, + 5155187794669665.,6814235368858231.,-.499996436370779639823,-49,51, + 5155187794672213.,6814235368859914.,.499928629520455133112,-49,51, + 5155187794693234.,6814235368873807.,.499310407243793115530,-49,51, + 5155187794695145.,6814235368875070.,.499254203814080450067,-49,51, + 5155187794695478.,6814235368875291.,-.417553078126193092171,-49,51, + 5155187794695493.,6814235368875300.,.496104251515969623547,-49,51, + 5155187794695608.,6814235368875377.,-.499189554561262047955,-49,51, + 5357710127467854.,6946795136409791.,-.499998011182370059746,-49,51, + 5357710127491809.,6946795136425321.,-.499910906901492080811,-49,51, + 5357710127493896.,6946795136426673.,.499887955434110369229,-49,51, + 5357710127494513.,6946795136427074.,-.499692352205689762437,-49,51, + 5357710127495130.,6946795136427474.,-.499272659868522146042,-49,51, + 5357710127495150.,6946795136427486.,.466705288018845056429,-49,51, + 5363132893474751.,6950309820517549.,-.499998777015444004761,-49,51, + 5363132893502672.,6950309820535640.,.499990121964476277991,-49,51, + 5363132893506541.,6950309820538148.,-.499975604677656693768,-49,51, + 5363132893510410.,6950309820540655.,-.499941332224072975785,-49,51, + 5363132893510589.,6950309820540770.,.486878552677584747804,-49,51, + 5363132893510606.,6950309820540782.,-.497613413560905943441,-49,51, + 5365726582658915.,6951990252903790.,.499990632572869629103,-49,51, + 5365726582680557.,6951990252917810.,.499960388406677131649,-49,51, + 5365726582682113.,6951990252918818.,.499218909638481834176,-49,51, + 5365726582682502.,6951990252919070.,.499033539923596417601,-49,51, + 5365726582682607.,6951990252919139.,-.480450942905894542990,-49,51, + 5365726582682624.,6951990252919150.,-.467605573459303298011,-49,51, + 5365726582682661.,6951990252919174.,-.498471534075606188059,-49,51, + 5365726582718236.,6951990252942220.,-.499999921637984799469,-49,51, + 5483096108824863.,7027612623436251.,-.499163861327091803608,-49,51, + 5483096108824891.,7027612623436268.,.444453170983799003463,-49,51, + 5483096108824902.,7027612623436275.,.493731290820207856982,-49,51, + 5483096108825289.,7027612623436524.,-.499847584030635699163,-49,51, + 5483096108825431.,7027612623436614.,.499924508399159643852,-49,51, + 5483096108829794.,7027612623439410.,.499964221002294223449,-49,51, + 5483096108834157.,7027612623442207.,-.499996067506985417966,-49,51, + 5494838942516750.,7035133916846122.,-.499995141384368387619,-49,51, + 5494838942549092.,7035133916866826.,-.499066399979940679399,-49,51, + 5494838942549142.,7035133916866858.,-.491149560095437591276,-49,51, + 5494838942549595.,7035133916867148.,-.499422990748476105786,-49,51, + 5494838942550601.,7035133916867791.,.499863827670239055644,-49,51, + 5494838942556159.,7035133916871349.,.499899747851420463232,-49,51, + 5494838942570054.,7035133916880244.,.499989540431784878333,-49,51, + 5525992699215123.,7055049065887113.,-.499988769685874620852,-49,51, + 5525992699363311.,7055049065981709.,-.499968975696593625578,-49,51, + 5525992699368891.,7055049065985271.,-.499806298702096974456,-49,51, + 5525992699368985.,7055049065985331.,-.494785637133721761832,-49,51, + 5525992699369010.,7055049065985346.,.463996453708845303782,-49,51, + 5525992699369021.,7055049065985353.,.485860573679563376376,-49,51, + 5525992699370080.,7055049065986029.,.499869941736879063971,-49,51, + 5525992699372870.,7055049065987810.,.499951279368120596019,-49,51, + 9007199254740990.,9007199254740991.,-.000000000000000055511,-49,51, + 9007199254740991.,9007199254740991.,.499999999999999986122,-49,51, + 4503599627370497.,4503599627370496.,.499999999999999972244,-48,50, + 9007199254740990.,9007199254740991.,-.000000000000000055511,-47,50, + 9007199254740991.,9007199254740991.,.499999999999999986122,-47,50, + 4503599627370497.,4503599627370496.,.499999999999999972244,-46,49, + 5426391276973515.,4943510264270161.,-.499999519196135374888,-44,48, + 5426391276978246.,4943510264272316.,-.499939027688196325894,-44,48, + 5426391276979842.,4943510264273042.,.488033186102570682093,-44,48, + 5426391276979853.,4943510264273047.,.498601916899003250071,-44,48, + 5426391276980044.,4943510264273135.,-.499704666545568194001,-44,48, + 5426971710394830.,4943774648250502.,.499995839356589523344,-44,48, + 5426971710399199.,4943774648252493.,-.499632790486169191312,-44,48, + 5426971710399491.,4943774648252626.,-.498921314184693320703,-44,48, + 5426971710399592.,4943774648252672.,-.495250563820974586659,-44,48, + 5426971710401917.,4943774648253731.,-.499859528338868322734,-44,48, + 5426971710403276.,4943774648254350.,-.499972897381473448289,-44,48, + 5562950707696336.,5005327435269510.,.499985172078263221811,-44,48, + 5562950707702202.,5005327435272149.,.499706548536919191116,-44,48, + 5562950707703040.,5005327435272526.,.499666745060287888199,-44,48, + 5562950707703100.,5005327435272553.,.492503990633664096855,-44,48, + 5562950707703180.,5005327435272589.,.482953651397939269980,-44,48, + 5562950707721047.,5005327435280628.,-.499995244143747702616,-44,48, + 5565768841136260.,5006595098364914.,-.499998059367484690723,-44,48, + 5565768841145905.,5006595098369251.,.499935284116386471850,-44,48, + 5565768841151270.,5006595098371664.,.498342995065045646499,-44,48, + 5565768841151350.,5006595098371700.,.479679922712516277401,-44,48, + 5565768841151479.,5006595098371758.,.499585718543517993844,-44,48, + 5565768841152335.,5006595098372143.,.499890844350805637402,-44,48, + 5637442019520636.,5038728190569116.,-.499988954841489159782,-44,48, + 5637442019535928.,5038728190575949.,.471094324040828462350,-44,48, + 5637442019535937.,5038728190575953.,.493180365727213927609,-44,48, + 5637442019535984.,5038728190575974.,.497407472311619195485,-44,48, + 5637442019536031.,5038728190575996.,-.498365421104063093963,-44,48, + 5637442019536483.,5038728190576197.,.499733561361926608761,-44,48, + 5637442019537434.,5038728190576623.,-.499841367148683722960,-44,48, + 5637442019539562.,5038728190577574.,-.499941733073045319087,-44,48, + 5637442019560616.,5038728190586983.,-.499994893202383302720,-44,48, + 5666178554245438.,5051554179212023.,-.499999372939840196050,-44,48, + 5666178554261018.,5051554179218967.,.499470604941432579122,-44,48, + 5666178554261249.,5051554179219070.,.470900487083371677606,-44,48, + 5666178554261267.,5051554179219078.,.494648270107330729263,-44,48, + 5666178554261608.,5051554179219231.,-.499907618163408275288,-44,48, + 5666178554264724.,5051554179220619.,.499986376194751860876,-44,48, + 5772925638471603.,5098916135244656.,-.499975444319462636677,-44,48, + 5772925638471997.,5098916135244829.,.499577217356669543392,-44,48, + 5772925638472588.,5098916135245090.,.498906209859734622321,-44,48, + 5772925638472665.,5098916135245125.,-.496105071997871733438,-44,48, + 5772925638472674.,5098916135245128.,.478503998953821812027,-44,48, + 5772925638485033.,5098916135250587.,-.499995127082789006509,-44,48, + 5835612929818641.,5126525550137216.,-.499993941693854028738,-44,48, + 5835612929828599.,5126525550141589.,.499964776536479343651,-44,48, + 5835612929832212.,5126525550143176.,.491514368801832035722,-44,48, + 5835612929832221.,5126525550143180.,.444717785997561878632,-44,48, + 5835612929832253.,5126525550143195.,-.499447841750978923927,-44,48, + 5835612929832360.,5126525550143241.,.499748340464557895959,-44,48, + 5835612929833578.,5126525550143776.,.499944134252169270312,-44,48, + 5896103646768507.,5153027283696882.,.455044279707661258415,-44,48, + 5896103646768514.,5153027283696886.,-.486055033764567236790,-44,48, + 5896103646768546.,5153027283696899.,.497490961790936518601,-44,48, + 5896103646768665.,5153027283696951.,.498802632762633168828,-44,48, + 5896103646768784.,5153027283697004.,-.499885696266194947507,-44,48, + 5896103646771823.,5153027283698331.,.499998068945826542699,-44,48, + 6004329071334614.,5200105207423442.,.496037836759202826509,-44,48, + 6004329071334711.,5200105207423484.,.499915299787220967321,-44,48, + 6004329071339870.,5200105207425718.,.499954801994673973647,-44,48, + 6004329071345029.,5200105207427952.,.499994303242385594477,-44,48, + 6004329071371593.,5200105207439456.,-.499996153675545783104,-44,48, + 6029337333126207.,5210923273927395.,.484205074554793587278,-44,48, + 6029337333126214.,5210923273927399.,-.490880170959348309102,-44,48, + 6029337333126251.,5210923273927414.,.497954959894443925512,-44,48, + 6029337333126332.,5210923273927450.,-.499460023912290278996,-44,48, + 6029337333127857.,5210923273928108.,.499825774744200800851,-44,48, + 6029337333130185.,5210923273929115.,-.499953019336314218537,-44,48, + 6029337333138694.,5210923273932791.,.499996395321109775514,-44,48, + 6304262279992782.,5328402504974766.,.499981206189898073544,-44,48, + 6304262280166032.,5328402505047982.,.499965076856705019265,-44,48, + 6304262280167899.,5328402505048772.,-.499908118310528908928,-44,48, + 6304262280168306.,5328402505048943.,.499583906080460834122,-44,48, + 6304262280168313.,5328402505048946.,.457806127630134449928,-44,48, + 6305910042746096.,5329098809249382.,.499997220257237600081,-44,48, + 6305910042757148.,5329098809254053.,-.499983706378989428198,-44,48, + 6305910042773726.,5329098809261058.,-.499955104006613821717,-44,48, + 6305910042774384.,5329098809261336.,-.463399499156127044117,-44,48, + 6305910042774391.,5329098809261338.,.494436198767736323737,-44,48, + 6305910042774675.,5329098809261458.,.498055943105951362216,-44,48, + 6305910042774817.,5329098809261518.,.499865815274045515786,-44,48, + 6535180284100152.,5425111564960896.,-.494675977713843739504,-44,48, + 6535180284100164.,5425111564960900.,.486161271559892941583,-44,48, + 6535180284100364.,5425111564960984.,-.499884573878502279515,-44,48, + 6535180284103443.,5425111564962261.,.499939635437095494447,-44,48, + 6535180284119568.,5425111564968954.,.499993341209993838767,-44,48, + 6535815775784171.,5425375331936382.,-.499365685737467936509,-44,48, + 6535815775784583.,5425375331936553.,-.498934106898574385443,-44,48, + 6535815775785872.,5425375331937087.,.499988963754319510494,-44,48, + 6535815775790510.,5425375331939012.,.499992998762523486184,-44,48, + 6535815775799786.,5425375331942863.,-.499998933270120354514,-44,48, + 6544022097422422.,5428780293901744.,.499998875577817915746,-44,48, + 6544022097454026.,5428780293914854.,-.499920284037705125347,-44,48, + 6544022097454337.,5428780293914982.,.499542604722858211214,-44,48, + 6544022097454648.,5428780293915111.,.499005493480356243872,-44,48, + 6544022097454689.,5428780293915129.,-.494634447230298751615,-44,48, + 6544022097457799.,5428780293916418.,.499994440172048784390,-44,48, + 6616319171106171.,5458685973158560.,.499738718666418018529,-44,48, + 6616319171106251.,5458685973158594.,-.498915173383256493009,-44,48, + 6616319171106486.,5458685973158690.,.442539018719670794515,-44,48, + 6616319171106491.,5458685973158693.,-.494876849533477116649,-44,48, + 6616319171113601.,5458685973161625.,.499758493701678616158,-44,48, + 6616319171192359.,5458685973194114.,.499968003270314353001,-44,48, + 6616319171204247.,5458685973199018.,.499999610559496266613,-44,48, + 6702751591225877.,5494225110841551.,.492489037513288336436,-44,48, + 6702751591226243.,5494225110841701.,.497032932612804840111,-44,48, + 6702751591226487.,5494225110841802.,-.499937803989792744712,-44,48, + 6702751591227807.,5494225110842343.,-.499943428264912279464,-44,48, + 6702751591239687.,5494225110847212.,-.499994049138167760046,-44,48, + 6702751591241007.,5494225110847753.,-.499999673945993887646,-44,48, + 6729307497433567.,5505098249614015.,.499986732462493426695,-44,48, + 6729307497437063.,5505098249615446.,-.499713237549393573350,-44,48, + 6729307497437085.,5505098249615454.,.499144485750270831378,-44,48, + 6729307497437195.,5505098249615499.,.493433102248372206529,-44,48, + 6729307497437217.,5505098249615508.,.492290825547948351861,-44,48, + 6729307497437222.,5505098249615511.,-.462514237338513666593,-44,48, + 6729307497437948.,5505098249615807.,.499790631539136551688,-44,48, + 6729307497453702.,5505098249622251.,.499998484754285593834,-44,48, + 6743769751700027.,5511010700482141.,.499995937385620905028,-44,48, + 6743769751748468.,5511010700501934.,.499992287998809863664,-44,48, + 6743769751757516.,5511010700505632.,-.485826200498956542509,-44,48, + 6743769751757538.,5511010700505641.,-.496622841389130990650,-44,48, + 6743769751757631.,5511010700505679.,-.496808641515939522015,-44,48, + 6743769751758840.,5511010700506173.,-.499224043188294098758,-44,48, + 6743769751759212.,5511010700506325.,-.499967243711773361338,-44,48, + 6754791752061966.,5515512452850738.,.499858877316155669065,-44,48, + 6754791752062135.,5515512452850807.,.496923386908903216540,-44,48, + 6754791752062152.,5515512452850814.,.437456503258421759239,-44,48, + 6754791752068087.,5515512452853238.,-.499952583487552895574,-44,48, + 6754791752071837.,5515512452854768.,.499999551549608260828,-44,48, + 6794379564778140.,5531651225099838.,.495148060788334189548,-44,48, + 6794379564778167.,5531651225099849.,.486187172876299712621,-44,48, + 6794379564778172.,5531651225099852.,-.478435213774079438908,-44,48, + 6794379564778339.,5531651225099920.,-.496822927897173339315,-44,48, + 6794379564779017.,5531651225100196.,-.499618557698914277409,-44,48, + 6794379564779130.,5531651225100241.,.499915503999456752627,-44,48, + 6794379564781250.,5531651225101105.,-.499976435889622181926,-44,48, + 6794379564789843.,5531651225104602.,.499989864869790653723,-44,48, + 6794379564817742.,5531651225115959.,.499996811669411830048,-44,48, + 6990987887111572.,5611114901991166.,-.499999082808719698697,-44,48, + 6990987887146976.,5611114902005374.,-.499985516679979618572,-44,48, + 6990987887148192.,5611114902005861.,.493687979924575401768,-44,48, + 6990987887148197.,5611114902005864.,-.499759086290131639439,-44,48, + 7006147211067236.,5617195204821108.,-.499998089692300409072,-44,48, + 7006147211081617.,5617195204826873.,-.499505887241019707538,-44,48, + 7006147211081672.,5617195204826895.,-.451315422671692884151,-44,48, + 7006147211081717.,5617195204826913.,-.411886860751398944109,-44,48, + 7006147211083443.,5617195204827605.,-.499582463585627543382,-44,48, + 7006147211092573.,5617195204831265.,-.499965346739515754067,-44,48, + 7006147211093486.,5617195204831630.,.499996364813934263647,-44,48, + 7054682820220312.,5636618394069376.,.499925174428617717443,-44,48, + 7054682820221103.,5636618394069693.,-.499677406604609076777,-44,48, + 7054682820221501.,5636618394069851.,.499258336433919972286,-44,48, + 7054682820221541.,5636618394069867.,.479050873422468829612,-44,48, + 7054682820221551.,5636618394069871.,.473999007669598965404,-44,48, + 7054682820223083.,5636618394070484.,-.499946825703508122376,-44,48, + 7054682820245649.,5636618394079499.,-.499987091820819855768,-44,48, + 7054682820253171.,5636618394082503.,.499999482936018662409,-44,48, + 7138546116897252.,5670022366095707.,.499951844841756746575,-44,48, + 7138546116897461.,5670022366095791.,-.497525294868449585626,-44,48, + 7138546116897514.,5670022366095812.,-.449038636517642408710,-44,48, + 7138546116897529.,5670022366095818.,-.491919770946673431937,-44,48, + 7138546116897602.,5670022366095846.,.499392041498619574527,-44,48, + 7138546116915092.,5670022366102792.,.499989292954720061787,-44,48, + 7138546116918660.,5670022366104209.,.499996781514941771995,-44,48, + 7223985620314435.,5703852991424123.,-.499687133677873539474,-44,48, + 7223985620314625.,5703852991424198.,-.490396879622449712730,-44,48, + 7223985620314658.,5703852991424211.,-.462467519707660852288,-44,48, + 7223985620314663.,5703852991424213.,-.488538828811483317759,-44,48, + 7223985620316046.,5703852991424759.,-.499862926955003519645,-44,48, + 7223985620317120.,5703852991425183.,-.499980122512488081157,-44,48, + 7223985620334342.,5703852991431982.,-.499997204928200494784,-44,48, + 7322656671973029.,5742674800061362.,.499997016807914851465,-44,48, + 7322656671984801.,5742674800065979.,-.499910759819725298207,-44,48, + 7322656671993148.,5742674800069251.,.499814840080373469451,-44,48, + 7322656671993199.,5742674800069271.,.497776503617817589101,-44,48, + 7322656671993630.,5742674800069441.,-.499841594725386700417,-44,48, + 7322656672016692.,5742674800078483.,.499999270432260926957,-44,48, + 7371229009388508.,5761689354689705.,.499998501566493844763,-44,48, + 7371229009393564.,5761689354691682.,-.499707639514827502333,-44,48, + 7371229009395373.,5761689354692388.,.498815222421805387977,-44,48, + 7371229009395460.,5761689354692423.,-.499597442595037182007,-44,48, + 7413149621188158.,5778049659844117.,.499990861486690554069,-44,48, + 7413149621266923.,5778049659874813.,.499984955065618281927,-44,48, + 7413149621275383.,5778049659878110.,.499412991221125525043,-44,48, + 7413149621275442.,5778049659878133.,.492671413688890269214,-44,48, + 7413149621276861.,5778049659878687.,-.499977713766501345954,-44,48, + 7461059150873603.,5796690712092856.,.499991535609076094687,-44,48, + 7461059150902172.,5796690712103954.,.499190096566550274850,-44,48, + 7461059150902226.,5796690712103975.,.476191626956726160795,-44,48, + 7461059150902692.,5796690712104156.,.499945574394719499359,-44,48, + 7461059150918606.,5796690712110338.,.499989175139554706226,-44,48, + 7761862923839772.,5912387248100860.,.464543256464787311112,-44,48, + 7761862923839780.,5912387248100864.,-.488565910180470879634,-44,48, + 7761862923839822.,5912387248100880.,-.492389035068102141906,-44,48, + 7761862923839906.,5912387248100911.,.499964715156505498851,-44,48, + 7761862923848799.,5912387248104298.,.499987342122858559280,-44,48, + 7761862923901112.,5912387248124223.,-.499992042202405161797,-44,48, + 7819356134928369.,5934243791380719.,-.499995604290401961096,-44,48, + 7819356134934649.,5934243791383101.,.499983345052011068538,-44,48, + 7819356134936051.,5934243791383634.,-.499065940591700146665,-44,48, + 7819356134936072.,5934243791383641.,.469564562262061466346,-44,48, + 7819356134936080.,5934243791383645.,-.494766674746032162376,-44,48, + 7819356134936275.,5934243791383718.,.499659423181205391200,-44,48, + 7880037969511251.,5957225534018015.,.497837880993371641359,-44,48, + 7880037969511267.,5957225534018022.,-.454246556094688167254,-44,48, + 7880037969511669.,5957225534018173.,.499631962065794026649,-44,48, + 7880037969512796.,5957225534018599.,.499684424649267231275,-44,48, + 7880037969519558.,5957225534021155.,.499999199510379640418,-44,48, + 8016984453623986.,6008767610581727.,.499996017272567176527,-44,48, + 8016984453652757.,6008767610592510.,-.499993633191126673876,-44,48, + 8016984453659823.,6008767610595158.,-.499852065477680733494,-44,48, + 8016984453660330.,6008767610595347.,.499592001110724396299,-44,48, + 8016984453665376.,6008767610597238.,.499976142805150210067,-44,48, + 8049376796641290.,6020894480217904.,.499997129912225351009,-44,48, + 8049376796641913.,6020894480218138.,-.499526190896661002525,-44,48, + 8049376796642036.,6020894480218184.,-.497826942839128157287,-44,48, + 8049376796642159.,6020894480218230.,-.496127694781946780811,-44,48, + 8049376796642167.,6020894480218232.,.495852744116069102910,-44,48, + 8198893031068727.,6076555899485470.,.494950842751814878331,-44,48, + 8198893031068735.,6076555899485473.,.459524658489664060916,-44,48, + 8198893031068754.,6076555899485481.,-.499612529132949927060,-44,48, + 8198893031069488.,6076555899485753.,-.499964935191756582542,-44,48, + 8198893031080892.,6076555899489979.,-.499990602552345537066,-44,48, + 8198893031086594.,6076555899492091.,.499996562665230172432,-44,48, + 8347450336459938.,6131359900117975.,-.499996642734461162698,-44,48, + 8347450336540407.,6131359900147528.,-.499983788321689372152,-44,48, + 8347450336544622.,6131359900149075.,.498562905006460330383,-44,48, + 8347450336544641.,6131359900149082.,.476492296980245681200,-44,48, + 8347450336544652.,6131359900149087.,-.483653844508619061204,-44,48, + 8347450336545074.,6131359900149241.,.499830545643832808546,-44,48, + 8347450336546705.,6131359900149840.,.499979930295744486024,-44,48, + 8638779724340782.,6237435783034318.,.499999898003633663783,-44,48, + 8638779724384700.,6237435783050173.,.499980225482274895776,-44,48, + 8638779724393539.,6237435783053365.,-.499864350759323138326,-44,48, + 8638779724394287.,6237435783053635.,-.461611578238781215127,-44,48, + 8638779724394298.,6237435783053639.,-.490460802172389883394,-44,48, + 8638779724394334.,6237435783053652.,-.493967353227854111210,-44,48, + 8638779724394406.,6237435783053677.,.499019544661136193599,-44,48, + 8638779724394683.,6237435783053777.,.499816360149713905390,-44,48, + 8638779724397248.,6237435783054703.,.499974597359481827408,-44,48, + 8704521642366363.,6261124533580176.,-.495829097302319378826,-44,48, + 8704521642366477.,6261124533580217.,-.495977172406846014087,-44,48, + 8704521642368415.,6261124533580914.,-.498494449224876281465,-44,48, + 8704521642369555.,6261124533581324.,-.499975200330550675158,-44,48, + 8704521642383071.,6261124533586185.,-.499987335661163976506,-44,48, + 8704521642396587.,6261124533591046.,-.499999474765751226983,-44,48 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/tan.c b/src/regress/lib/libm/fpaccuracy/tan.c new file mode 100644 index 000000000..315e3e4ad --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/tan.c @@ -0,0 +1,1628 @@ +/* $OpenBSD: tan.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:44:36. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 1596 +#define F tan +#define Fs "tan" +#define Fn fpaccuracy_tan + /* 1 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -7958517471553561.,-8960430320996457.,.421270689132499411233,-48,82, + -7958517471037211.,-5734711541635620.,-.382340846019920339897,-48,88, + -7958517471032047.,-7274687462445617.,.060455721926927319791,-48,95, + -7958517471031996.,-6212835604728892.,-.130833791443039439041,-48,101, + -7958517471031995.,5588727300024200.,-.261667582886051742522,-48,102, + -7074237752682937.,-5622084051848807.,-.373898630877979653517,-48,81, + -7074237752034985.,-7196000395932591.,.437918534602711947701,-48,88, + -7074237752028505.,-4554563068423076.,.026869209701370755425,-48,94, + -7074237752028441.,-6523320454730237.,.439258852050628268713,-48,101, + -7074237752028440.,4967757600021511.,-.121482295898713082212,-48,102, + -6189958034447771.,-6111247799581261.,-.273703534422204692858,-48,80, + -6189958033039114.,-7822342822373020.,-.370916736764676687174,-48,87, + -6189958033025027.,-4987691016496920.,.261755278857775237601,-48,93, + -6189958033024886.,-6833805304731581.,.009351495544295780798,-48,101, + -6189958033024885.,8693575800037644.,.037405982177251454216,-48,103, + -5305678314021331.,-7144290154732925.,-.420555860962036912098,-48,101, + -5305678314021330.,7451636400032266.,.317776556151929333620,-48,103, + -5305678314021295.,4954920047124106.,.040303814698308291000,-48,95, + -5305678314017785.,7795992252723834.,.156880159347659552288,-48,89, + -5305678313666861.,6089734603000421.,-.042430128086641111414,-48,82, + -8842797190101842.,-4555527863668746.,.362316429871632526015,-49,85, + -8842797190036213.,-5828777595110610.,.379198311336277119185,-49,92, + -8842797190035557.,-7493193285396687.,-.462615804367436176134,-49,99, + -8842797190035551.,-5902350754727548.,.299073565063300664382,-49,102, + -8842797190035550.,6209697000026889.,-.401852869873392563462,-49,103, + -7074237752192064.,-5622068355479965.,-.455223322373268937895,-49,84, + -7074237752030076.,-7193991260720826.,-.248320694634181886010,-49,91, + -7074237752028456.,-8851956829740320.,.214953678250863102175,-49,98, + -7074237752028441.,-6523320454730237.,.439258852050639065313,-49,102, + -7074237752028440.,4967757600021511.,-.121482295898714274283,-49,103, + -5611213340397103.,-5432775460581809.,.499976206572767059329,-49,53, + -5611213340369902.,-5432775459988260.,-.453875654291255270083,-49,53, + -5611213340369885.,-5432775459987889.,-.499984833214429168125,-49,53, + -5592856839897574.,-5039811016211374.,.499990488993689870800,-49,53, + -5592856839879109.,-5039811015823438.,-.499905477787712270021,-49,53, + -5592856839875959.,-5039811015757259.,-.499076804535203392893,-49,53, + -5592856839875869.,-5039811015755369.,.329518294325785688415,-49,53, + -5592856839875851.,-5039811015754991.,.495237314057389620671,-49,53, + -5592856839875850.,-5039811015754969.,-.495556073735695800683,-49,53, + -5592856839875416.,-5039811015745851.,-.499886379877011138254,-49,53, + -5589917887167076.,-4978245231917513.,.498649741058941533716,-49,53, + -5589917886968552.,-4978245227770829.,.499822853641009056438,-49,53, + -5589917886910916.,-4978245226566953.,.499860666833342100994,-49,53, + -5584028471357968.,-4855932413405414.,-.499953395804968198968,-49,53, + -5584028471357396.,-4855932413393602.,-.499332803681167082635,-49,53, + -5584028471356581.,-4855932413376772.,-.463483555789837105589,-49,53, + -5584028471356578.,-4855932413376711.,.487568649982091244167,-49,53, + -5584028471356538.,-4855932413375884.,-.498401939759545640005,-49,53, + -5584028471351553.,-4855932413272942.,-.499987181694769952482,-49,53, + -5584028471319335.,-4855932412607630.,.499974405494817769631,-49,53, + -5555479367786849.,-8563187266248228.,-.499990359344137496124,-49,54, + -5555479367778319.,-8563187265913590.,-.488864822043901643783,-49,54, + -5555479367778280.,-8563187265912060.,-.490924165358858003745,-49,54, + -5555479367778111.,-8563187265905430.,-.499847987554789107646,-49,54, + -5555479367775194.,-8563187265790995.,.499969528770866238408,-49,54, + -5555479367759170.,-8563187265162362.,.499985488183182343807,-49,54, + -5545533983836524.,-8176232057526122.,-.499990585652005321552,-49,54, + -5545533983830203.,-8176232057282183.,.499973659733687586552,-49,54, + -5545533983828654.,-8176232057222403.,-.499877278642519525301,-49,54, + -5545533983828404.,-8176232057212756.,.498855609498043416305,-49,54, + -5545533983828355.,-8176232057210864.,-.493392744882262748609,-49,54, + -5545533983828350.,-8176232057210672.,.466581912825631663244,-49,54, + -5545533983782858.,-8176232055455045.,.499943203398503298893,-49,54, + -5544198963889319.,-8124766272939041.,-.499842239855048229578,-49,54, + -5544198963889103.,-8124766272930723.,-.497803188831131520508,-49,54, + -5544198963888995.,-8124766272926564.,-.496783664398754482670,-49,54, + -5544198963887377.,-8124766272864257.,.499971717326259313961,-49,54, + -5544198963882468.,-8124766272675214.,-.499984667448718879716,-49,54, + -5544198963839312.,-8124766271013309.,.499927351184210131233,-49,54, + -5539725571735233.,-7953110798910658.,.499977525523411020215,-49,54, + -5539725571714649.,-7953110798123584.,-.499995899640499007045,-49,54, + -5539725571708066.,-7953110797871870.,.499958654993123461021,-49,54, + -5539725571707231.,-7953110797839941.,-.499895388696530099394,-49,54, + -5539725571705772.,-7953110797784154.,.466826607054591987036,-49,54, + -5539725571705755.,-7953110797783504.,.497967301249224551205,-49,54, + -5539725571705658.,-7953110797779795.,.499181850145826105494,-49,54, + -5539725571705561.,-7953110797776085.,-.499603601521867317773,-49,54, + -5537279579435268.,-7859761561973762.,-.499934757955240112469,-49,54, + -5537279579434602.,-7859761561948394.,.485217404562591303031,-49,54, + -5537279579434591.,-7859761561947975.,.492479677297238214476,-49,54, + -5537279579434580.,-7859761561947556.,.499741950024740754098,-49,54, + -5537279579432101.,-7859761561853126.,-.499969678436424064868,-49,54, + -5537279579428934.,-7859761561732491.,.499994808873661792324,-49,54, + -5522619698203811.,-7307493638527238.,.499989132683017001464,-49,54, + -5522619698203314.,-7307493638508716.,-.499983032241781010750,-49,54, + -5522619698199338.,-7307493638360548.,-.499760829204856774598,-49,54, + -5522619698197847.,-7307493638304985.,-.499677721949827196838,-49,54, + -5522619698197719.,-7307493638300216.,.496305262243088901248,-49,54, + -5522619698197685.,-7307493638298948.,-.473511757728572083164,-49,54, + -5522619698197670.,-7307493638298389.,-.489607501853453323088,-49,54, + -5522619698167466.,-7307493637172820.,.499977618953021828892,-49,54, + -5488797129026578.,-6075615851241442.,.499995958159611105872,-49,54, + -5488797129011490.,-6075615850703706.,-.485556192340769905921,-49,54, + -5488797129011476.,-6075615850703208.,.473232394733709791520,-49,54, + -5488797129011415.,-6075615850701033.,-.492045904539456664338,-49,54, + -5488797129011315.,-6075615850697470.,.499301145488635328291,-49,54, + -5488797129009010.,-6075615850615320.,.499850530271127952125,-49,54, + -5488797129008549.,-6075615850598890.,.499960380001209270246,-49,54, + -5488797128999304.,-6075615850269399.,.499992218397710176816,-49,54, + -5486380295718507.,-5989604131749449.,.499995633984601263527,-49,54, + -5486380295697221.,-5989604130992995.,-.499987889627505791854,-49,54, + -5486380295690476.,-5989604130753295.,.499966383677484788344,-49,54, + -5486380295690169.,-5989604130742384.,-.461933445024426036505,-49,54, + -5486380295690156.,-5989604130741922.,-.473349398770128326872,-49,54, + -5486380295690130.,-5989604130740998.,-.496181306282815984448,-49,54, + -5486380295690037.,-5989604130737694.,.499073793535667304100,-49,54, + -5482520377149641.,-5852741820446308.,.499928964560852456495,-49,54, + -5482520377149461.,-5852741820439940.,.497277160053043503822,-49,54, + -5482520377149101.,-5852741820427204.,.491973547068285370055,-49,54, + -5482520377149072.,-5852741820426178.,.447101866903073521848,-49,54, + -5482520377149056.,-5852741820425612.,.491310595073083706920,-49,54, + -5482520377145117.,-5852741820286259.,.499946543350184832313,-49,54, + -5482520377131545.,-5852741819806112.,.499994265229901997806,-49,54, + -5470973675752162.,-5446892970467921.,.499905211738034375811,-49,54, + -5470973675751665.,-5446892970450562.,-.499719599165127174166,-49,54, + -5470973675751571.,-5446892970447279.,-.497636566454525685543,-49,54, + -5470973675751557.,-5446892970446791.,.460120480942094369964,-49,54, + -5470973675751544.,-5446892970446337.,.492323453518085834290,-49,54, + -5470973675749274.,-5446892970367055.,-.499926816966338930815,-49,54, + -5470973675738716.,-5446892969998312.,.499992071567453016430,-49,54, + -5468820810043855.,-5371789420003490.,.499965696941475048544,-49,54, + -5468820810032326.,-5371789419601756.,-.499830703680857939117,-49,54, + -5468820810002436.,-5371789418560226.,-.499325704211427444105,-49,54, + -5468820810001168.,-5371789418516042.,-.489937328745957908189,-49,54, + -5468820810001155.,-5371789418515589.,-.499304798390042852769,-49,54, + -5468088758172116.,-5346290628581245.,.499998236748213347833,-49,54, + -5468088758157109.,-5346290628058724.,.489397768571339613399,-49,54, + -5468088758157076.,-5346290628057575.,.499369784819175435421,-49,54, + -5468088758156773.,-5346290628047024.,-.499978067864915553567,-49,54, + -5465050034951903.,-5240655091663899.,.499993503350702100679,-49,54, + -5465050034923239.,-5240655090669022.,-.499918464877238033930,-49,54, + -5465050034922982.,-5240655090660102.,-.491126293412578020182,-49,54, + -5465050034922975.,-5240655090659860.,.466311625621406871764,-49,54, + -5465050034922934.,-5240655090658436.,-.497266277214837019497,-49,54, + -5465050034922910.,-5240655090657604.,.499663730853039888124,-49,54, + -5465050034918352.,-5240655090499404.,.499954055152779764291,-49,54, + -5465050034904020.,-5240655090001966.,.499984505967619026258,-49,54, + -5461318210768645.,-5111377587914089.,.499989091271901832703,-49,54, + -5461318210751069.,-5111377587306376.,-.499905193762073177596,-49,54, + -5461318210746675.,-5111377587154448.,-.499880447370319787881,-49,54, + -5461318210746111.,-5111377587134948.,.499667514131213893624,-49,54, + -5437604071186059.,-8601284876697077.,.499996457469192795680,-49,55, + -5437604071185080.,-8601284876630850.,.499636676154014175792,-49,55, + -5437604071184975.,-8601284876623747.,.497555184596546252319,-49,55, + -5437604071184941.,-8601284876621446.,-.484071203281450140137,-49,55, + -5437604071184938.,-8601284876621244.,.458726468373189369658,-49,55, + -5435306075386301.,-8445981462267437.,.499976527938400760700,-49,55, + -5435306075375198.,-8445981461517795.,.499999819080802318544,-49,55, + -5435306075364095.,-8445981460768152.,-.499983821717210393791,-49,55, + -5435306075361517.,-8445981460594094.,.499928919350554536981,-49,55, + -5435306075360726.,-8445981460540687.,-.499710031374726512366,-49,55, + -5435306075360316.,-8445981460513006.,.497948652887970412596,-49,55, + -5435306075360289.,-8445981460511183.,.458770078105243771121,-49,55, + -5435306075360287.,-8445981460511048.,.492904998490077771599,-49,55, + -5398648100202358.,-6004756479429040.,.499991029606125658763,-49,55, + -5398648100197998.,-6004756479142248.,-.499969558121792274653,-49,55, + -5398648100197854.,-6004756479132777.,.496362006166924964621,-49,55, + -5398648100196999.,-6004756479076537.,.474580652497574804771,-49,55, + -5398648100196936.,-6004756479072393.,.472975709521995692914,-49,55, + -5398648100150020.,-6004756475986364.,.499956523391118562418,-49,55, + -5395452312811568.,-5794741215062126.,-.499988463910376881291,-49,55, + -5395452312804867.,-5794741214622169.,.499981345890554664710,-49,55, + -5395452312799969.,-5794741214300587.,-.499594092505787737081,-49,55, + -5395452312799908.,-5794741214296583.,.490407106037545426566,-49,55, + -5395452312799905.,-5794741214296386.,.457128476454107820244,-49,55, + -5395452312799879.,-5794741214294678.,-.497952979949828285757,-49,55, + -5395452312798767.,-5794741214221669.,-.499898369886341684209,-49,55, + -5395452312778664.,-5794741212901796.,.499996351431887731136,-49,55, + -5357868470799103.,-6699544905821106.,-.499997598998890281456,-49,56, + -5357868470797929.,-6699544905669535.,-.499979551732247374395,-49,56, + -5357868470793233.,-6699544905063251.,-.499907950439127591343,-49,56, + -5357868470793017.,-6699544905035365.,.498391742840325952069,-49,56, + -5357868470792970.,-6699544905029296.,-.497348601941141584266,-49,56, + -5357868470792942.,-6699544905025682.,.483912469208099922875,-49,56, + -5340868642085464.,-4510238217597593.,.499947336362909104978,-49,56, + -5340868642032249.,-4510238210759387.,.499991526531422104073,-49,56, + -5340868642025471.,-4510238209888404.,.498544384807461762235,-49,56, + -5340868642025469.,-4510238209888146.,-.498505319470586767056,-49,56, + -5340868642025421.,-4510238209881978.,-.427698222178041612566,-49,56, + -5340868642025321.,-4510238209869128.,-.280183436363361752895,-49,56, + -5340868642025132.,-4510238209844842.,.498619508045982400891,-49,56, + -5340868642020047.,-4510238209191412.,.499745962558045188904,-49,56, + -5340868642019030.,-4510238209060726.,.499971164795664723813,-49,56, + -5334469363655333.,-7376941598216452.,.499958613587317396893,-49,57, + -5334469363655187.,-7376941598178978.,.432270249277192537553,-49,57, + -5334469363655172.,-7376941598175128.,.493809115901296648115,-49,57, + -5334469363655169.,-7376941598174357.,-.493883110775142809577,-49,57, + -5334469363655008.,-7376941598133034.,.499967390306376146935,-49,57, + -5334469363654033.,-7376941597882780.,.499993690881984764794,-49,57, + -5334469363653708.,-7376941597799361.,-.499997552120001573155,-49,57, + -5325827369851618.,-5160362060376918.,-.499993966184922481409,-49,57, + -5325827369851094.,-5160362060242603.,.493529580366087507642,-49,57, + -5325827369851079.,-5160362060238758.,.417008307711874032649,-49,57, + -5325827369851030.,-5160362060226197.,-.499627849676353005402,-49,57, + -5317788020402202.,-6201126178873526.,.499996795663970440272,-49,58, + -5317788020390172.,-6201126172711314.,-.499935950673045551363,-49,58, + -5317788020389826.,-6201126172534081.,.498902142537117434766,-49,58, + -5317788020389729.,-6201126172484394.,.487015711179675634160,-49,58, + -5317788020389725.,-6201126172482345.,.434979157301356813078,-49,58, + -5317788020389653.,-6201126172445464.,.498321187384496185139,-49,58, + -5307605800718425.,-7895016362731972.,.499978227584826534824,-49,61, + -5307605800692185.,-7895016255251672.,.499471990402033301943,-49,61, + -5307605800691706.,-7895016253289664.,-.499775374460782103381,-49,61, + -5307605800682522.,-7895016215671559.,-.499960881569041507660,-49,61, + -5307605800679898.,-7895016204923530.,.499985344504155475542,-49,61, + -5305678314021331.,-7144290154732925.,-.420555860962022729423,-49,102, + -5305678314021330.,7451636400032266.,.317776556151928327811,-49,104, + -5305678314021321.,5182981399542312.,.161215258690335977626,-49,98, + -5305678314020444.,7795157664844265.,-.372481005143736030579,-49,92, + -5305678313932713.,6089728082782612.,-.182547207300669062173,-49,85, + -5296649568719121.,4623113996901803.,-.499975580611386374613,-49,58, + -5296649568718787.,4623113997072854.,.495309442423799838217,-49,58, + -5296649568718749.,4623113997092316.,-.499238967922814491682,-49,58, + -5296649568712334.,4623114000377641.,-.499976584239766193966,-49,58, + -5296649568630890.,4623114042087697.,-.499883773287886754239,-49,58, + -5266341419814587.,5043333502952446.,-.499984763807702832785,-49,56, + -5266341419812737.,5043333503190405.,.498867504049096546312,-49,56, + -5266341419812072.,5043333503275942.,.471427940592342270787,-49,56, + -5266341419812064.,5043333503276971.,.487639194050391542109,-49,56, + -5266341419812056.,5043333503278001.,-.496149552489512221919,-49,56, + -5266341419811997.,5043333503285589.,.498408441841913543845,-49,56, + -5266341419797130.,5043333505197888.,-.499999844639820520465,-49,56, + -5242088987203935.,8174229419102459.,-.499965437451253465040,-49,56, + -5242088987169361.,8174229423584881.,-.499991441882470258754,-49,56, + -5242088987168026.,8174229423757960.,-.499297030337602316153,-49,56, + -5242088987167652.,8174229423806448.,-.449664272127787071094,-49,56, + -5242088987167649.,8174229423806836.,.491910322218951613705,-49,56, + -5242088987167615.,8174229423811244.,.496422391514855601105,-49,56, + -5242088987167581.,8174229423815653.,-.499065539128838842344,-49,56, + -5208774931169532.,6263805523714536.,-.499958381705709626158,-49,55, + -5208774931125918.,6263805526590200.,.499983776455474503736,-49,55, + -5208774931125140.,6263805526641498.,-.499741411076180186993,-49,55, + -5208774931124743.,6263805526667673.,.475977236661405362516,-49,55, + -5208774931124728.,6263805526668662.,.492692047155164459574,-49,55, + -5208774931124423.,6263805526688772.,.499226529182312728205,-49,55, + -5200108832590000.,6836778682926231.,-.499929279645790503031,-49,55, + -5200108832535458.,6836778686542613.,-.498262532019591598753,-49,55, + -5200108832535448.,6836778686543276.,-.452902674800034725211,-49,55, + -5200108832535238.,6836778686557199.,.499654327843224115483,-49,55, + -5200108832534312.,6836778686618597.,.499977134437952622401,-49,55, + -5200108832528073.,6836778687032271.,.499993241895452586812,-49,55, + -5161411928695365.,4720312886922166.,-.498030041296497328047,-49,54, + -5161411928695360.,4720312886922336.,.487525514406663638971,-49,54, + -5161411928695340.,4720312886923020.,.429747737227266179974,-49,54, + -5161411928694949.,4720312886936392.,-.499807804072020746272,-49,54, + -5161411928693772.,4720312886976641.,.499970045996441910062,-49,54, + -5161411928612772.,4720312889746608.,-.499919027810425048105,-49,54, + -5120907462136191.,6134552804053664.,.499982955549829003652,-49,54, + -5120907462135814.,6134552804067127.,.499662296829171089241,-49,54, + -5120907462135437.,6134552804080590.,.499341644249052782518,-49,54, + -5120907462135399.,6134552804081948.,-.487428076360003919881,-49,54, + -5120907462133092.,6134552804164332.,.499999791949847071723,-49,54, + -5119822908933294.,6173308621479170.,-.499903753703374060155,-49,54, + -5119822908932567.,6173308621505166.,-.499018373536163317502,-49,54, + -5119822908932315.,6173308621514176.,.494410952056976489618,-49,54, + -5119822908932282.,6173308621515357.,-.494544731291583247963,-49,54, + -5119822908931935.,6173308621527765.,-.499624186662289500019,-49,54, + -5119822908929944.,6173308621598959.,-.499950297565239413320,-49,54, + -5119822908926594.,6173308621718748.,-.499996352864550289705,-49,54, + -5119304171097909.,6191863466924763.,.472382701691372151855,-49,54, + -5119304171097900.,6191863466925085.,.497191930988488201725,-49,54, + -5119304171097859.,6191863466926552.,.499100642275690754277,-49,54, + -5119304171097335.,6191863466945301.,.499104666170203738296,-49,54, + -5119304171054367.,6191863468482719.,.499475451175058312168,-49,54, + -5119304170982579.,6191863471051333.,-.499725094165642286164,-49,54, + -5119304170980483.,6191863471126329.,-.499698369281050566692,-49,54, + -5095830265869454.,7044486643121783.,.456857684698235138649,-49,54, + -5095830265869445.,7044486643122115.,.497298373333315657301,-49,54, + -5095830265869370.,7044486643124883.,-.499029221212892683868,-49,54, + -5095830265865290.,7044486643275408.,-.499249930076968139339,-49,54, + -5095830265851962.,7044486643767123.,-.499964966404260428426,-49,54, + -5095830265851418.,7044486643787193.,-.499993958165028049816,-49,54, + -5093481699126093.,7131275305104357.,-.499943168251308590030,-49,54, + -5093481699124599.,7131275305159656.,.460053323860779553339,-49,54, + -5093481699124596.,7131275305159768.,-.495850297524108674348,-49,54, + -5093481699124392.,7131275305167319.,-.497296550597369754141,-49,54, + -5093481699124052.,7131275305179904.,-.499706967571876616610,-49,54, + -5093481699121943.,7131275305257968.,-.499952625486056345570,-49,54, + -5093481699105343.,7131275305872412.,-.499981488851899016200,-49,54, + -5093481699101193.,7131275306026023.,-.499986463300072473251,-49,54, + -5087250947762046.,7362929129627077.,.499808808314650962136,-49,54, + -5087250947760681.,7362929129678054.,.499679512796500888978,-49,54, + -5087250947760629.,7362929129679996.,.480626970203243089063,-49,54, + -5087250947760626.,7362929129680109.,-.482010676480355572611,-49,54, + -5087250947760574.,7362929129682050.,.498936781081481955923,-49,54, + -5087250947756693.,7362929129826990.,-.499965058936880772327,-49,54, + -5087250947748610.,7362929130128856.,-.499994277293387883733,-49,54, + -7074237752069346.,-5622039929742966.,.179737505258116984878,-50,87, + -7074237752028849.,-7190352766384873.,.006717302129554667545,-50,94, + -7074237752028444.,-8386229554738303.,-.140185286987369919756,-50,101, + -7074237752028441.,-6523320454730237.,.439258852050641764464,-50,103, + -7074237752028440.,4967757600021511.,-.121482295898714572300,-50,104, + -7074237752038667.,-5622201104701911.,-.281040122952955771957,-51,90, + -7074237752028542.,-7158206602996644.,.026869209776776281445,-51,97, + -7074237752028441.,-6523320454730237.,.439258852050642439251,-51,104, + -7074237752028440.,4967757600021511.,-.121482295898714646805,-51,105, + -8871213671096371.,-6786363952637393.,.499989849755926157659,-53,52, + -8871213671078220.,-6786363952607710.,.499887051269903795597,-53,52, + -8871213671077773.,-6786363952606979.,.495477046740894191738,-53,52, + -8871213671077688.,-6786363952606840.,.499112728193923463615,-53,52, + -8871213671075741.,-6786363952603655.,-.499961722429080185860,-53,52, + -8871213671049887.,-6786363952561375.,-.499998306545685639526,-53,52, + -8108579655012586.,-5677966698080847.,.499993300645642754276,-53,52, + -8108579655011212.,-5677966698079067.,-.499424211989771987277,-53,52, + -8108579655010754.,-5677966698078474.,-.499230049686973250883,-53,52, + -8108579655010720.,-5677966698078430.,-.477381574759229432171,-53,52, + -8108579655010710.,-5677966698078418.,.470220917866497831662,-53,52, + -8108579654955923.,-5677966698007482.,.499996722353202967424,-53,52, + -7881394195516028.,-5392823025626587.,.499985466528954000088,-53,52, + -7881394195509381.,-5392823025618498.,.499952971423430234377,-53,52, + -7881394195508035.,-5392823025616859.,-.498850060016554922426,-53,52, + -7881394195507961.,-5392823025616769.,-.445292425803658389199,-53,52, + -7881394195507952.,-5392823025616758.,-.492832713534643177054,-53,52, + -7881394195507929.,-5392823025616731.,.496786551152721069792,-53,52, + -7881394195507551.,-5392823025616270.,-.499905533575119867300,-53,52, + -7881394195487610.,-5392823025592004.,.499996883524137966882,-53,52, + -7109328173685451.,-4538827468557491.,.499997858541546637403,-53,52, + -7109328173653615.,-4538827468525405.,.499991075735239364384,-53,52, + -7109328173649540.,-4538827468521298.,.499927369072808184394,-53,52, + -7109328173648394.,-4538827468520143.,.499173256045895856005,-53,52, + -7109328173647757.,-4538827468519500.,-.498628114063112049259,-53,52, + -7109328173647756.,-4538827468519499.,-.490775368961314306810,-53,52, + -7109328173647727.,-4538827468519470.,-.263045761009277885157,-53,52, + -7006352136405049.,-8872441119354348.,.499981435545170483875,-53,53, + -7006352136008059.,-8872441118572157.,-.499893592140472598037,-53,53, + -7006352135983849.,-8872441118524457.,.499885125946986620948,-53,53, + -7006352135983748.,-8872441118524257.,-.499661440029145876218,-53,53, + -7006352135983142.,-8872441118523063.,-.496940835978259269135,-53,53, + -7006352135983041.,-8872441118522864.,-.496487401985164569607,-53,53, + -7006352135983039.,-8872441118522861.,.444115636311684006953,-53,53, + -7006352135981593.,-8872441118520011.,-.499887675517957783777,-53,53, + -6828286958454470.,-8528256643597232.,.499999855020847089966,-53,53, + -6828286958445235.,-8528256643579718.,.499986292947944876441,-53,53, + -6828286958436000.,-8528256643562204.,.499972696870811385726,-53,53, + -6828286958433073.,-8528256643556653.,.499210394623289915264,-53,53, + -6828286958433044.,-8528256643556598.,.497152961478363592465,-53,53, + -6828286958433015.,-8528256643556543.,.495095528333101952987,-53,53, + -6828286958433005.,-8528256643556524.,.459903310007071914697,-53,53, + -6828286958432590.,-8528256643555737.,.499426249441663922926,-53,53, + -6828286958431624.,-8528256643553905.,.499857958799366660114,-53,53, + -6595469068456527.,-8097176056611058.,-.499960635356080066271,-53,53, + -6595469068454046.,-8097176056606572.,-.499908049534878511920,-53,53, + -6595469068453405.,-8097176056605413.,-.480950489431936970437,-53,53, + -6595469068453384.,-8097176056605376.,.490029399430081188277,-53,53, + -6595469068453358.,-8097176056605328.,-.498281214360021616374,-53,53, + -6595469068439332.,-8097176056579967.,-.499999289158020992782,-53,53, + -5574097035237658.,-6414683556630423.,-.499995116291619777599,-53,53, + -5574097035223959.,-6414683556609777.,.499837654091547482042,-53,53, + -5574097035223543.,-6414683556609150.,.490999813584476212460,-53,53, + -5574097035223541.,-6414683556609146.,-.494619599110368947887,-53,53, + -5574097035223472.,-6414683556609042.,-.498489337083110789427,-53,53, + -5574097035218535.,-6414683556601602.,.499990422704618782743,-53,53, + -5292230209322970.,-5998985319838127.,.499983193239586868594,-53,53, + -5292230209316899.,-5998985319829363.,.499595179025160999579,-53,53, + -5292230209316642.,-5998985319828991.,-.499268224155041501535,-53,53, + -5292230209316509.,-5998985319828800.,.497428925166398642440,-53,53, + -5292230209315091.,-5998985319826753.,.499809058298569580542,-53,53, + -5292230209313283.,-5998985319824142.,-.499977063125880098903,-53,53, + -5292230209294813.,-5998985319797480.,.499995428582253407964,-53,53, + -5268565944193861.,-5964883554052655.,.485047008917775303687,-53,53, + -5268565944193845.,-5964883554052631.,-.498067619237283446653,-53,53, + -5268565944193788.,-5964883554052550.,.499586517959879659976,-53,53, + -5268565944193373.,-5964883554051952.,-.499949149835878462940,-53,53, + -5268565944191241.,-5964883554048885.,-.499973352194686338586,-53,53, + -5268565944189109.,-5964883554045818.,-.499997555515003312324,-53,53, + -4510984822793519.,-4930248959226396.,-.485021288819551371182,-53,53, + -4510984822793479.,-4930248959226345.,.499429905567324070177,-53,53, + -4510984822793222.,-4930248959226011.,.499528829496970515642,-53,53, + -4510984822792194.,-4930248959224675.,.499924525111228743782,-53,53, + -4510984822791937.,-4930248959224340.,-.499976551011288587613,-53,53, + -4510984822781904.,-4930248959211302.,.499994270651398198837,-53,53, + -8644717199285258.,-4687851315915165.,.499998632090049968055,-54,53, + -8644717199275641.,-4687851315909053.,-.499984751167345214670,-54,53, + -8644717199269066.,-4687851315904876.,.499922624967240069846,-54,53, + -8644717199268084.,-4687851315904252.,.499300426103118199044,-54,53, + -8644717199267615.,-4687851315903953.,-.480630135281343694398,-54,53, + -8644717199267604.,-4687851315903946.,-.490820404311779818757,-54,53, + -8644717199267593.,-4687851315903940.,.498989326657779614129,-54,53, + -8644717199266024.,-4687851315902942.,-.499968137820572341195,-54,53, + -7492339963684117.,-7956489900762195.,-.499995423566725809544,-54,54, + -7492339963683589.,-7956489900761564.,-.499948502394752256264,-54,54, + -7492339963683061.,-7956489900760933.,-.499901581239115815266,-54,54, + -7492339963682938.,-7956489900760787.,.494427531073203299993,-54,54, + -7492339963682933.,-7956489900760781.,.469806763281002397782,-54,54, + -7298995560627843.,-7726510036946365.,.499996574565603973478,-54,54, + -7298995560586617.,-7726510036897554.,-.498447913057068696556,-54,54, + -7298995560586568.,-7726510036897496.,-.484328759664643497415,-54,54, + -7298995560586557.,-7726510036897483.,-.460750990535750322833,-54,54, + -7298995560585769.,-7726510036896550.,-.498998074774605658754,-54,54, + -7298995560584285.,-7726510036894793.,-.499960857877849079684,-54,54, + -7298995560569695.,-7726510036877519.,-.499992539338024344657,-54,54, + -4924871031134914.,-5051347634593281.,.499999289816530733750,-54,54, + -4924871031125121.,-5051347634582717.,-.499977407912141800888,-54,54, + -4924871031070560.,-5051347634523866.,-.499847639923695546608,-54,54, + -4924871031067266.,-5051347634520314.,.499445395049588075184,-54,54, + -4924871031066986.,-5051347634520011.,-.484828421059344896288,-54,54, + -4924871031066948.,-5051347634519970.,-.496979867531474398859,-54,54, + -4924871031066859.,-5051347634519874.,-.499124044795335900934,-54,54, + -4924871031066363.,-5051347634519339.,-.499837661911166042434,-54,54, + -4517699360206593.,-4614853158657349.,.499996907904551451653,-54,54, + -4517699360174441.,-4614853158623086.,-.491357677581247082772,-54,54, + -4517699360174426.,-4614853158623071.,.493033019140033822034,-54,54, + -4517699360174304.,-4614853158622941.,.499410685806198566222,-54,54, + -4517699360173984.,-4614853158622600.,.499745549190716828803,-54,54, + -4517699360173664.,-4614853158622258.,-.499919587427868418512,-54,54, + -4517699360143874.,-4614853158590513.,-.499995913106948378704,-54,54, + -4514338150869876.,-4611271537594987.,-.499995939246005064804,-54,54, + -4514338150834301.,-4611271537557081.,-.475859653963026090575,-54,54, + -4514338150834286.,-4611271537557065.,-.492996349845199026256,-54,54, + -4514338150834164.,-4611271537556935.,-.499041476353791963939,-54,54, + -4514338150833813.,-4611271537556562.,.499959840000119576760,-54,54, + -4514338150832821.,-4611271537555505.,.499986352296416300394,-54,54, + -4514338150831829.,-4611271537554447.,-.499987135437085711175,-54,54, + -8341071156517976.,-8493356891176376.,.499972933680196360294,-55,55, + -8341071156515241.,-8493356891173489.,.490511786536922170478,-55,55, + -8341071156515223.,-8493356891173470.,.490815150101998954414,-55,55, + -8341071156514827.,-8493356891173052.,.497489148532555896053,-55,55, + -8341071156514683.,-8493356891172900.,.499916057052221358647,-55,55, + -8341071156501493.,-8493356891158977.,.499991912604089429348,-55,55, + -6979532375186940.,-7068172030403172.,-.499998711375681221912,-55,55, + -6979532375183926.,-7068172030400043.,.499990070824776333030,-55,55, + -6979532375147758.,-7068172030362483.,.499855449216812583490,-55,55, + -6979532375143237.,-7068172030357788.,.499838620475609090575,-55,55, + -6979532375143133.,-7068172030357679.,-.497507486624895632772,-55,55, + -6979532375142613.,-7068172030357139.,-.484238022129254082790,-55,55, + -6979532375142587.,-7068172030357112.,-.483574548904552279247,-55,55, + -5360050515984564.,-5399948254373217.,.493725182586653174023,-55,55, + -5360050515984562.,-5399948254373214.,-.461347584715582153676,-55,55, + -5360050515984519.,-5399948254373170.,-.495412081713649929567,-55,55, + -5360050515984341.,-5399948254372988.,-.496888371612795485558,-55,55, + -5360050515983985.,-5399948254372624.,-.499840951411895189080,-55,55, + -5360050515982605.,-5399948254371214.,.499949610030843101017,-55,55, + -5360050515954159.,-5399948254342129.,.499980266422211701713,-55,55, + -5360050515935195.,-5399948254322738.,-.499999299807718286131,-55,55, + -5003579018618026.,-5035996949064171.,-.499877291164109187478,-55,55, + -5003579018617463.,-5035996949063598.,.499796060787703716251,-55,55, + -5003579018617105.,-5035996949063233.,.494259755277960866909,-55,55, + -5003579018617054.,-5035996949063181.,.490677767621462480680,-55,55, + -5003579018616900.,-5035996949063024.,.499469412737009148678,-55,55, + -5003579018614955.,-5035996949061040.,-.499882861631487844810,-55,55, + -5003579018565819.,-5035996949010944.,-.499971999256080540318,-55,55, + -5003579018550464.,-5035996948995289.,-.499999858680626377902,-55,55, + -5370993780293305.,-5373481861458870.,-.499619413197363489525,-57,57, + -5370993780293263.,-5373481861458828.,-.441229025461031666392,-57,57, + -5370993780293184.,-5373481861458749.,-.331399486623648094695,-57,57, + -5370993780292586.,-5373481861458151.,.499968414955428989510,-57,57, + -5370993780285393.,-5373481861450947.,-.499982561550224888799,-57,57, + -5370993780246551.,-5373481861412051.,-.499995884609431362727,-57,57, + -4503599627370496.,-4503599627370496.,0.000000000000000000000,-1074,1074, + 0.,0.,0.000000000000000000000,0,0, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,1074, + 4503599627370497.,4503599627370497.,-.000000000000000000000,-1074,1074, + 6175493946540272.,6190657891124028.,.499998551066065433454,-56,56, + 6175493946621562.,6190657891205918.,.499954471609788171346,-56,56, + 6175493946645949.,6190657891230485.,.499941250868255909993,-56,56, + 6175493946646220.,6190657891230759.,-.499812863316564921675,-56,56, + 6175493946646320.,6190657891230859.,.238285249530409220711,-56,56, + 6175493946646354.,6190657891230893.,.489238607898385901231,-56,56, + 6175493946646355.,6190657891230894.,.496619589026855845637,-56,56, + 6823990675707376.,6844464329366595.,.499927587970796913445,-56,56, + 6823990675709371.,6844464329368608.,.499505231257462143079,-56,56, + 6823990675709459.,6844464329368697.,.293471563392656600452,-56,56, + 6823990675709481.,6844464329368719.,.491963146426458433610,-56,56, + 6823990675709482.,6844464329368721.,-.499014508890186907018,-56,56, + 6823990675714137.,6844464329373417.,.499999992154580395101,-56,56, + 8359220028864308.,8396921718604566.,-.499998560617780309104,-56,56, + 8359220028905326.,8396921718646140.,.499975900007762595406,-56,56, + 8359220028906357.,8396921718647186.,-.499659048750837917594,-56,56, + 8359220028906578.,8396921718647410.,-.498610866088551898494,-56,56, + 8359220028906721.,8396921718647554.,.443243840340071434836,-56,56, + 8359220028906725.,8396921718647558.,.497561454505908016371,-56,56, + 8359220028908198.,8396921718649052.,-.499977128921204666927,-56,56, + 8513798801093206.,8553638995413419.,.499911262064793832049,-56,56, + 8513798801093348.,8553638995413564.,-.499164412510642315732,-56,56, + 8513798801093419.,8553638995413636.,-.498702249798335125379,-56,56, + 8513798801093429.,8553638995413646.,-.357792086036036984832,-56,56, + 8513798801127838.,8553638995448539.,.499990405634146589791,-56,56, + 8513798801132167.,8553638995452930.,-.499999701137919981319,-56,56, + 8960721713639263.,9007199254740977.,-.005652859545276564859,-56,56, + 8960721713639273.,9007199254740987.,.150597140454723090711,-56,56, + 8960721713639277.,9007199254740991.,.213097140454723051601,-56,56, + 8960721713639278.,4503599627370496.,.114361070227361525317,-56,55, + 6216155809128745.,6278579269578144.,.499999617509629218464,-55,55, + 6216155809169017.,6278579269619639.,.499947977778022518073,-55,55, + 6216155809171783.,6278579269622489.,.499199497156123724599,-55,55, + 6216155809171816.,6278579269622524.,-.498640235258644670765,-55,55, + 6216155809171848.,6278579269622556.,.473151539369469069584,-55,55, + 6216155809171849.,6278579269622558.,-.496479967673402211567,-55,55, + 6216155809176887.,6278579269627748.,.499987550467602699134,-55,55, + 7082784227658135.,7175458354880747.,-.499963298122619719400,-55,55, + 7082784227659446.,7175458354882109.,.499931508435272461772,-55,55, + 7082784227659925.,7175458354882607.,.499130297411390222369,-55,55, + 7082784227659950.,7175458354882633.,.490737749863243311352,-55,55, + 7082784227659975.,7175458354882659.,.482345202315103584120,-55,55, + 7082784227668144.,7175458354891152.,.499996365869653846332,-55,55, + 8826286527774941.,4503599627370496.,-.204777375225907022967,-55,54, + 8826286527774942.,4503599627370496.,.326472624774092977877,-55,54, + 8826286527774946.,4503599627370498.,.451472624774093054981,-55,54, + 8826286527774948.,4503599627370500.,-.486027375225906862232,-55,54, + 5299073463170386.,5457396222795981.,-.499999237717204546611,-54,54, + 5299073463176989.,5457396222803190.,-.499841099052777703576,-54,54, + 5299073463177512.,5457396222803760.,.499262748739637623813,-54,54, + 5299073463177621.,5457396222803880.,-.497099929252647723730,-54,54, + 5299073463177643.,5457396222803904.,-.478017167012505613446,-54,54, + 5299073463177654.,5457396222803916.,-.468475785892427893517,-54,54, + 5299073463177828.,5457396222804106.,-.499366666356062033051,-54,54, + 5354986034411409.,5518497902184545.,-.499998496578780004657,-54,54, + 5354986034454385.,5518497902231554.,-.499990502415719883672,-54,54, + 5354986034456399.,5518497902233756.,.499963336300717851867,-54,54, + 5354986034456708.,5518497902234094.,.497473632323692056529,-54,54, + 5354986034456740.,5518497902234130.,-.499547955142981427092,-54,54, + 6318840445926175.,6591413039793972.,-.498030403959998370424,-54,54, + 6318840445926235.,6591413039794040.,-.465196773086034821846,-54,54, + 6318840445926257.,6591413039794064.,.480175558234460026603,-54,54, + 6318840445926287.,6591413039794098.,.496592373671534384128,-54,54, + 6318840445926414.,6591413039794242.,.499423559022275039233,-54,54, + 6318840445927146.,6591413039795072.,.499993855704017537949,-54,54, + 7852441928002200.,8390730778153986.,-.443115851155620900112,-54,54, + 7852441928002209.,8390730778153997.,-.490564110184638981243,-54,54, + 7852441928002232.,8390730778154024.,.499290338963449081056,-54,54, + 7852441928002527.,8390730778154383.,.499597404126660778377,-54,54, + 7852441928002822.,8390730778154742.,.499904469295349026070,-54,54, + 7852441928006173.,8390730778158821.,-.499997308692166348516,-54,54, + 8352332796508975.,9007199254740951.,.488868971605416101276,-54,54, + 8352332796509007.,9007199254740991.,.488868971605379666188,-54,54, + 8352332796509008.,4503599627370496.,.369434485802689836254,-54,53, + 8717776617241207.,4734374446026432.,.483388725213018936650,-54,53, + 8717776617241218.,4734374446026440.,-.497084501556109237747,-54,53, + 8717776617241370.,4734374446026537.,-.499987271456328148823,-54,53, + 8717776617252739.,4734374446033792.,-.499997736093745129724,-54,53, + 6059040276407863.,7175492285759513.,-.499953033596427208670,-53,53, + 6059040276408602.,7175492285760720.,.495143158385510351887,-53,53, + 6059040276408810.,7175492285761060.,.499175645467090995706,-53,53, + 6059040276408862.,7175492285761146.,-.499816232760559190720,-53,53, + 6059040276414804.,7175492285770858.,.499996456452182075905,-53,53, + 6179968525074764.,7375315010280952.,-.499963490172683329365,-53,53, + 6179968525077653.,7375315010285777.,.497938103322777251442,-53,53, + 6179968525077656.,7375315010285783.,-.490641438115681480694,-53,53, + 6179968525077668.,7375315010285803.,-.444959603869489074616,-53,53, + 6179968525077741.,7375315010285924.,.499604887795790347643,-53,53, + 6179968525078967.,7375315010287973.,-.499901046460546859305,-53,53, + 6179968525086760.,7375315010300990.,.499976822565537659916,-53,53, + 6179968525183954.,7375315010463350.,.499995002732699747360,-53,53, + 6230674196596363.,7460410640774611.,.499934471566778082763,-53,53, + 6230674196597137.,7460410640775916.,.490599349032866439551,-53,53, + 6230674196597140.,7460410640775922.,-.451297298728531504773,-53,53, + 6230674196597172.,7460410640775976.,-.498194874849935930409,-53,53, + 6230674196597258.,7460410640776121.,-.499232110674636957094,-53,53, + 6230674196597344.,7460410640776265.,.499730653502955398936,-53,53, + 6230674196601182.,7460410640782736.,.499952619949559425615,-53,53, + 6230674196610820.,7460410640798986.,.499988938318155644628,-53,53, + 6230674196615639.,7460410640807112.,-.499992891696029479183,-53,53, + 7074237752027809.,9007199254739729.,.448468113258437751291,-53,53, + 7074237752028434.,9007199254740979.,.448468113169959702531,-53,53, + 7074237752028440.,9007199254740991.,.448468113169950974137,-53,53, + 7074237752028441.,4503599627370497.,-.275765943415024463142,-53,52, + 7511273082065756.,4963300772227038.,.499995999835308242667,-53,52, + 7511273082073362.,4963300772235461.,-.499983499699343907524,-53,52, + 7511273082103786.,4963300772269149.,-.499901341082518764682,-53,52, + 7511273082104802.,4963300772270274.,-.499635642791026672564,-53,52, + 7511273082104830.,4963300772270305.,-.495691312519190511312,-53,52, + 7511273082104877.,4963300772270357.,-.453356186705273668385,-53,52, + 7511273082104886.,4963300772270367.,-.487802651974880883876,-53,52, + 7913137471605025.,5431616558562064.,.499272028476170150336,-53,52, + 7913137471605047.,5431616558562091.,.499690577033389581407,-53,52, + 7913137471605069.,5431616558562119.,-.499890874409231912228,-53,52, + 7913137471607458.,5431616558565051.,-.499894850572812992174,-53,52, + 7913137471652849.,5431616558620759.,-.499970041276278172072,-53,52, + 7913137471669572.,5431616558641283.,-.499997572415363468880,-53,52, + 8575032706786085.,6324716579332847.,-.499995333946087635645,-53,52, + 8575032706796068.,6324716579347683.,-.499977417787439604319,-53,52, + 8575032706796969.,6324716579349021.,.499924031190127074767,-53,52, + 8575032706797041.,6324716579349129.,-.498973966211637047342,-53,52, + 8575032706797181.,6324716579349337.,-.441275627819301203484,-53,52, + 8575032706797185.,6324716579349343.,-.496769961007958142217,-53,52, + 8668443273582100.,6465593301737209.,.499985599278473663091,-53,52, + 8668443273588533.,6465593301747055.,.499956419524530520248,-53,52, + 8668443273591594.,6465593301751741.,-.499902009454149622960,-53,52, + 8668443273592216.,6465593301752692.,.499473377310276558937,-53,52, + 8668443273592985.,6465593301753869.,.489054844487374813651,-53,52, + 8668443273593051.,6465593301753971.,-.494934262347440416479,-53,52, + 8668443273593100.,6465593301754046.,-.498198902268883112458,-53,52, + 8668443273646119.,6465593301835194.,-.499992991288933888504,-53,52, + 9007199254739078.,7013940848416471.,.499874903780378238438,-53,52, + 9007199254740958.,7013940848419691.,.487566468569988191000,-53,52, + 9007199254740986.,7013940848419739.,.444829959976293158338,-53,52, + 9007199254740991.,7013940848419748.,.008627012013182195509,-53,52, + 4503599627370497.,7013940848419753.,.146905243235322725366,-52,52, + 4503599627370519.,7013940848419829.,-.491680698839337069179,-52,52, + 4503599627370895.,7013940848421117.,-.496604072301705324568,-52,52, + 4503599627371130.,7013940848421922.,-.499681180545595797783,-52,52, + 4503599627374406.,7013940848433143.,.499975826241392710799,-52,52, + 4503599627385778.,7013940848472099.,-.499993609771647991922,-52,52, + 4503599627415027.,7013940848572291.,.499998473545820862344,-52,52, + 4986154552901188.,9007199254740990.,-.117698688680501868942,-52,52, + 4986154552901189.,4503599627370497.,.441150655659749235305,-52,51, + 4986154552901195.,4503599627370512.,.441150655659796883327,-52,51, + 4986154552901907.,4503599627372292.,.441150656233014889071,-52,51, + 4986154552973095.,4503599627550262.,.441156396129779761780,-52,51, + 5970951936056572.,9007199254740987.,-.121955768575891643376,-52,51, + 5970951936056573.,4503599627370498.,-.310977884287946596140,-52,50, + 5970951936056576.,4503599627370510.,.439022115712096377602,-52,50, + 5970951936056756.,4503599627371275.,.439022115839015340019,-52,50, + 5970951936074868.,4503599627448251.,.439023379205059262732,-52,50, + 6514192644925985.,9007199254740985.,.258831279051133444728,-52,50, + 6514192644925986.,4503599627370501.,-.245584360474430819458,-52,49, + 6514192644926198.,4503599627372223.,.254415640177822316011,-52,49, + 6514192644947134.,4503599627542328.,.254422094822422507443,-52,49, + 6755399441052962.,7938393702365182.,-.499996119355923020827,-52,49, + 6755399441055256.,7938393702422489.,-.499728734401117813857,-52,49, + 6755399441055576.,7938393702430483.,-.497947691122753940298,-52,49, + 6755399441055736.,7938393702434480.,-.497057163476282608368,-52,49, + 6755399441055738.,7938393702434529.,.465453968144641535416,-52,49, + 6755399441055743.,7938393702434654.,.371731797199689591869,-52,49, + 6755399441055745.,7938393702434704.,.334242928822803893246,-52,49, + 6755399441056323.,7938393702449143.,.499959994125280960420,-52,49, + 9007199254659328.,-4920272357222909.,.499992643856786517507,-52,51, + 9007199254739638.,-4920272356991037.,-.499959713556211531280,-52,51, + 9007199254740888.,-4920272356987429.,.499542815195255791014,-52,51, + 9007199254740991.,-4920272356987131.,-.118898176630837508446,-52,51, + 4503599627370497.,-4920272356987122.,-.457299370567965292229,-51,51, + 4503599627370506.,-4920272356987070.,-.487706534191261497654,-51,51, + 4503599627371858.,-4920272356979263.,-.499982679912278105016,-51,51, + 4503599627373897.,-4920272356967490.,.499994307140783438747,-51,51, + 7074237752028440.,-4967757600021511.,.121482295898714646805,-51,105, + 7074237752028441.,6523320454730237.,-.439258852050642439251,-51,104, + 7074237752028542.,7158206602996644.,-.026869209776776281445,-51,97, + 7074237752038667.,5622201104701911.,.281040122952955771957,-51,90, + 5888592265895566.,-7907243496829175.,.499985802843217709294,-50,52, + 5888592265908638.,-7907243496615698.,-.499916535359376800521,-50,52, + 5888592265915174.,-7907243496508960.,-.499870968218411319619,-50,52, + 5888592265916220.,-7907243496491879.,.499524127122771089286,-50,52, + 5888592265916350.,-7907243496489755.,-.498639010236778152007,-50,52, + 5888592265916356.,-7907243496489658.,.486061152633538752888,-50,52, + 5888592265916389.,-7907243496489119.,.401912048387506094437,-50,52, + 5943141639574767.,-7085655621054787.,.499998349048340759997,-50,52, + 5943141639580340.,-7085655620977313.,-.499954213265505226891,-50,52, + 5943141639584167.,-7085655620924113.,.499718790408621499362,-50,52, + 5943141639584299.,-7085655620922278.,.496310584930233132771,-50,52, + 5943141639584309.,-7085655620922138.,-.488796097330562927365,-50,52, + 5943141639585040.,-7085655620911977.,.499905418882782283876,-50,52, + 6303973650801384.,-7345535810648533.,-.465674042695266572452,-50,53, + 6303973650801387.,-7345535810648494.,.496008242570852981621,-50,53, + 6303973650801465.,-7345535810647455.,.499747659429002637017,-50,53, + 6303973650813235.,-7345535810490672.,.499912165490708972918,-50,53, + 6303973650819655.,-7345535810405153.,-.499999230671345054718,-50,53, + 6334420038443842.,-6948629125872552.,.499985064805036504635,-50,53, + 6334420038486193.,-6948629125332106.,.499829962299493499875,-50,53, + 6334420038486733.,-6948629125325214.,-.497834610723210857447,-50,53, + 6334420038486783.,-6948629125324576.,-.442062812186957729163,-50,53, + 6334420038486800.,-6948629125324360.,.496899599305409192096,-50,53, + 6334420038487520.,-6948629125315171.,-.499986506834133406247,-50,53, + 6356542733645505.,-6670499015943000.,.499943872997315355914,-50,53, + 6356542733682378.,-6670499015486232.,.499941642273756088676,-50,53, + 6356542733727445.,-6670499014927960.,.499908826638281900142,-50,53, + 6356542733729300.,-6670499014904981.,.499174523598702745917,-50,53, + 6356542733729558.,-6670499014901784.,-.499849443206718945614,-50,53, + 6423340662129186.,-5876967207037985.,.499987720318447575035,-50,53, + 6423340662143642.,-5876967206873103.,.499945248272338235913,-50,53, + 6423340662145547.,-5876967206851374.,-.483320100881303242402,-50,53, + 6423340662145557.,-5876967206851260.,-.425489472919448730606,-50,53, + 6423340662145579.,-5876967206851009.,-.498262091408022109236,-50,53, + 6423340662145648.,-5876967206850222.,-.499230758527323415327,-50,53, + 6423340662145717.,-5876967206849436.,.499800574290436690187,-50,53, + 6423340662170479.,-5876967206567006.,.499997426575327039208,-50,53, + 6559287226846008.,-8866234515496987.,.499993291313680298482,-50,54, + 6559287226846330.,-8866234515490586.,-.499529526485604298263,-50,54, + 6559287226846789.,-8866234515481464.,.482517136952951817051,-50,54, + 6559287226846797.,-8866234515481305.,.488740172448832503527,-50,54, + 6559287226846813.,-8866234515480986.,-.498813756562742499797,-50,54, + 6787616684083884.,-4687640037034457.,.499772640331443595842,-50,54, + 6787616684083896.,-4687640037034251.,-.499423483081100746786,-50,54, + 6787616684084016.,-4687640037032201.,-.491384717269085083788,-50,54, + 6787616684084076.,-4687640037031176.,-.487365334405718782324,-50,54, + 6787616684085131.,-4687640037013154.,.499975476297333331585,-50,54, + 6787616684095083.,-4687640036843140.,.499989970920001588666,-50,54, + 6787616684100059.,-4687640036758133.,.499996924945545401355,-50,54, + 6935652144161410.,-8914545391513403.,.499995637003210833958,-50,56, + 6935652144169667.,-8914545390976866.,-.499949104639335082430,-50,56, + 6935652144171377.,-8914545390865751.,-.499332235680576056951,-50,56, + 6935652144171426.,-8914545390862568.,.497761463457811994308,-50,56, + 6935652144171473.,-8914545390859513.,-.464209886380439490474,-50,56, + 6935652144171475.,-8914545390859384.,.494855162561913921005,-50,56, + 6935652144177582.,-8914545390462554.,.499981841662549682155,-50,56, + 7035360541758859.,-4978261622033045.,.445240498715667673621,-50,57, + 7035360541758866.,-4978261622032147.,-.485596462770256753678,-50,57, + 7035360541758879.,-4978261622030482.,.499992037326289888107,-50,57, + 7035360541791700.,-4978261617824380.,-.499999763744304685497,-50,57, + 7074237752028440.,-4967757600021511.,.121482295898714572300,-50,104, + 7074237752028441.,6523320454730237.,-.439258852050641764464,-50,103, + 7074237752028444.,8386229554738303.,.140185286987369919756,-50,101, + 7074237752028849.,7190352766384873.,-.006717302129554667545,-50,94, + 7074237752069346.,5622039929742966.,-.179737505258116984878,-50,87, + 7267327859844560.,6240181913789426.,-.499964837961342127501,-50,55, + 7267327859845208.,6240181913810784.,-.457602546869593670185,-50,55, + 7267327859845209.,6240181913810817.,-.497660629750420713930,-50,55, + 7267327859845259.,6240181913812464.,.499435226221156378351,-50,55, + 7267327859856268.,6240181914175321.,-.499998588654730579779,-50,55, + 7594079014297901.,8963650601233636.,-.499992095005220105842,-50,54, + 7594079014298212.,8963650601239843.,.499926638922733317658,-50,54, + 7594079014301011.,8963650601295715.,.499195321067020160263,-50,54, + 7594079014301295.,8963650601301385.,-.459078231148497426270,-50,54, + 7594079014301296.,8963650601301405.,-.497663701400263207802,-50,54, + 7594079014301322.,8963650601301923.,.499114072060019368484,-50,54, + 7594079014334832.,8963650601970831.,-.499984142778960159941,-50,54, + 7661357941637854.,5174744353622695.,-.499873680445849755482,-50,53, + 7661357941782994.,5174744355167058.,.499962854389155199119,-50,53, + 7661357941794388.,5174744355288297.,-.499378864035639849267,-50,53, + 7661357941794452.,5174744355288977.,.493428067277896982917,-50,53, + 7661357941795089.,5174744355295755.,.499959557932427403361,-50,53, + 8127402278512946.,6107274713567248.,-.499992842044946653924,-50,52, + 8127402278515059.,6107274713591243.,-.499867191395946197330,-50,52, + 8127402278515916.,6107274713600974.,.499710544603535887281,-50,52, + 8127402278516315.,6107274713605506.,-.499319184056855532655,-50,52, + 8127402278516492.,6107274713607515.,.493592441465697801545,-50,52, + 8127402278516523.,6107274713607868.,-.473750720077752385551,-50,52, + 8127402278516537.,6107274713608027.,-.491260534959725919336,-50,52, + 8127402278536647.,6107274713836394.,-.499996233766284000892,-50,52, + 8134778399523232.,6191789196834609.,-.499602450256591657647,-50,52, + 8134778399524045.,6191789196844008.,-.498201626498059773386,-50,52, + 8134778399524070.,6191789196844297.,-.476018329038758483424,-50,52, + 8134778399524086.,6191789196844481.,.498178981344455208413,-50,52, + 8134778399525170.,6191789196857014.,-.499953223359498678222,-50,52, + 8134778399533735.,6191789196956033.,-.499954209145166755401,-50,52, + 8134778399679340.,6191789198639356.,-.499654066264611900870,-50,52, + 8241843578490020.,7620678716035441.,-.499953645370292963636,-50,52, + 8241843578527026.,7620678716607302.,.499981276841638420735,-50,52, + 8241843578528608.,7620678716631750.,-.499966042142322734989,-50,52, + 8241843578534936.,7620678716729538.,-.499754155569651464954,-50,52, + 8241843578536304.,7620678716750678.,-.489594324956788366709,-50,52, + 8241843578536315.,7620678716750847.,.495867486898975607430,-50,52, + 8241843578536518.,7620678716753985.,-.499700893299354669584,-50,52, + 8394820555893488.,5357598277972218.,.499997032103133523017,-50,51, + 8394820555893631.,5357598277974123.,.499696288810311118488,-50,51, + 8394820555893917.,5357598277977933.,.499094805678669891068,-50,51, + 8394820555893939.,5357598277978227.,-.424028385140702707715,-50,51, + 8394820555893945.,5357598277978307.,-.493971073541256714421,-50,51, + 8556480067975508.,8663164961205268.,-.499878456642336890038,-50,51, + 8556480068008995.,8663164962263529.,.499220415242233538783,-50,51, + 8556480068009088.,8663164962266469.,-.498601799708547963934,-50,51, + 8556480068009166.,8663164962268933.,.470966666611747493765,-50,51, + 8556480068009176.,8663164962269249.,.492706213670914857157,-50,51, + 8556480068009181.,8663164962269408.,-.496424012791402575911,-50,51, + 8556480068011755.,8663164962350751.,.499336121250281663855,-50,51, + 8556480068026475.,8663164962815935.,.499981005140205300702,-50,51, + 8556480068027855.,8663164962859547.,-.499956137781351838543,-50,51, + 8577884292694385.,4696528064763932.,-.499826829128274573660,-50,50, + 8577884292729125.,4696528065403155.,-.499975800318000534334,-50,50, + 8577884292744015.,4696528065677134.,-.499701420853813781054,-50,50, + 8577884292744035.,4696528065677502.,-.495671481949702996087,-50,50, + 8577884292744115.,4696528065678974.,-.479551725787891517474,-50,50, + 8577884292744120.,4696528065679066.,-.478544240998805607065,-50,50, + 8577884292745999.,4696528065713640.,-.499931215932376420933,-50,50, + 8577884292746991.,4696528065731892.,.499954087782348100082,-50,50, + 8664382762866758.,7045518939603136.,-.450673122165273526993,-50,50, + 8664382762866764.,7045518939603377.,-.499478592516200822122,-50,50, + 8664382762866846.,7045518939606670.,-.499820019034940213004,-50,50, + 8664382762866928.,7045518939609962.,.499838557447893699659,-50,50, + 8664382762869817.,7045518939725981.,-.499993338267321514153,-50,50, + 8714420965790930.,4915833735801611.,.499989033551286783578,-50,49, + 8714420965793376.,4915833735896091.,.459808139347029054174,-50,49, + 8714420965793392.,4915833735896709.,.480804514881772879177,-50,49, + 8714420965793408.,4915833735897328.,-.498199109430099026032,-50,49, + 8714420965793788.,4915833735912006.,-.499535141756461232187,-50,49, + 8714420965795407.,4915833735974542.,-.499963215196278870210,-50,49, + 8714420965853798.,4915833738229971.,-.498910783092459424718,-50,49, + 8893762581691289.,-6213945468978542.,.499912657443573774386,-50,48, + 8893762581694425.,-6213945468595663.,.499694742725328362470,-50,48, + 8893762581697113.,-6213945468267481.,.499470481752973892500,-50,48, + 8893762581697266.,-6213945468248800.,-.498311180825643165172,-50,48, + 8893762581697277.,-6213945468247457.,-.491615749120552301134,-50,48, + 8893762581697288.,-6213945468246114.,-.484920317994795042374,-50,48, + 8897696383619352.,-5768052851875832.,.498423919322878163411,-50,48, + 8897696383647844.,-5768052848877533.,-.499963166635571943105,-50,48, + 8897696383647990.,-5768052848862169.,-.485221929983576320518,-50,48, + 8897696383648003.,-5768052848860801.,-.456512097802298138942,-50,48, + 8897696383648020.,-5768052848859012.,-.495891549003594102771,-50,48, + 8897696383648123.,-5768052848848173.,-.499190600543634200392,-50,48, + 8897696383667245.,-5768052846835909.,.499285253925281179244,-50,48, + 4602893741359439.,-6740800419910521.,-.499897104411888653118,-49,51, + 4602893741361041.,-6740800419846690.,-.499230743665785209903,-49,51, + 4602893741361382.,-6740800419833104.,.499038297610192031659,-49,51, + 4602893741361427.,-6740800419831310.,-.495325029068859303494,-49,51, + 4602893741361440.,-6740800419830793.,.484081120841882738973,-49,51, + 4602893741368131.,-6740800419564193.,.499960005524512707065,-49,51, + 4602893741372744.,-6740800419380390.,.499986215457759835679,-49,51, + 4602893741440337.,-6740800416687176.,.498685841721513518815,-49,51, + 4612325947564114.,-6382895885047269.,.499982174739699422064,-49,51, + 4612325947564631.,-6382895885028584.,-.499478108900549221369,-49,51, + 4612325947564789.,-6382895885022874.,-.495444714023523559150,-49,51, + 4612325947564818.,-6382895885021826.,-.456729724811393956344,-49,51, + 4612325947564832.,-6382895885021321.,.492994752629743933507,-49,51, + 4612325947571553.,-6382895884778428.,-.499998278520212459798,-49,51, + 4612325947606759.,-6382895883506110.,.499686601181611361514,-49,51, + 4738648571742888.,-7127022302251655.,.499877498701387672354,-49,52, + 4738648571782456.,-7127022301142370.,-.499787388800125338980,-49,52, + 4738648571784119.,-7127022301095748.,-.499879799903720239934,-49,52, + 4738648571785782.,-7127022301049126.,-.499972646912163749658,-49,52, + 4738648571797337.,-7127022300725184.,.499971511556492143180,-49,52, + 4830666052096378.,-5062850232690221.,-.474997950927821538173,-49,52, + 4830666052096387.,-5062850232690058.,-.483019456884845032678,-49,52, + 4830666052096405.,-5062850232689732.,-.499062468816468242890,-49,52, + 4830666052096904.,-5062850232680695.,-.499365975584216773725,-49,52, + 4830666052097902.,-5062850232662621.,-.499973043150536747998,-49,52, + 4830666052101268.,-5062850232601663.,.499982949231739153959,-49,52, + 4830666052147394.,-5062850231766311.,.499891507591122657187,-49,52, + 4845910310861134.,-4794865805597344.,.499662083565486209964,-49,52, + 4845910310934104.,-4794865804351873.,-.499980363009579357898,-49,52, + 4845910310963292.,-4794865803853685.,-.499933594255038717020,-49,52, + 4845910310963336.,-4794865803852934.,-.497055670246259988784,-49,52, + 4845910310963380.,-4794865803852183.,-.494177746362470080623,-49,52, + 4963933852628250.,-6255966771009678.,.499979269933677799296,-49,53, + 4963933852644772.,-6255966770617802.,.499977372822431682377,-49,53, + 4963933852657611.,-6255966770313280.,-.499914081879464744675,-49,53, + 4963933852658293.,-6255966770297105.,.473453825539762327804,-49,53, + 4963933852658300.,-6255966770296938.,-.497494011328742433182,-49,53, + 4963933852658403.,-6255966770294495.,-.498583611296863863131,-49,53, + 4963933852658506.,-6255966770292052.,-.499673211885890596190,-49,53, + 4963933852661294.,-6255966770225926.,.499959499413084502972,-49,53, + 5007529068316685.,-5272867915572029.,.499586094451804121992,-49,53, + 5007529068316743.,-5272867915570782.,-.474711298046496913447,-49,53, + 5007529068316745.,-5272867915570740.,.491692240140536024364,-49,53, + 5007529068318709.,-5272867915528547.,.499966653546506510968,-49,53, + 5007529068324156.,-5272867915411527.,-.499998235127059237035,-49,53, + 5059472696388208.,-8422560756659441.,.499995092432862591951,-49,54, + 5059472696393807.,-8422560756441107.,.499946731666527584530,-49,54, + 5059472696394844.,-8422560756400669.,.499223138531858233156,-49,54, + 5059472696394971.,-8422560756395716.,-.113208781712012439874,-49,54, + 5059472696395047.,-8422560756392752.,-.479703474641075994404,-49,54, + 5059472696395051.,-8422560756392596.,-.498992669016127265375,-49,54, + 5059472696395466.,-8422560756376414.,.499753408940757544906,-49,54, + 5079689563131343.,-7646890984580013.,.499998949607679275159,-49,54, + 5079689563132074.,-7646890984552405.,-.499590367716981437132,-49,54, + 5079689563132228.,-7646890984546590.,.475872344040715792851,-49,54, + 5079689563132245.,-7646890984545948.,.499137708242873193900,-49,54, + 5107897798848548.,-6602908465914283.,.499979034598191825539,-49,54, + 5107897798873149.,-6602908465021288.,.499973809633536712340,-49,54, + 5107897798880079.,-6602908464769735.,.499845227202340572613,-49,54, + 5107897798881005.,-6602908464736122.,.498096272106548930561,-49,54, + 5107897798881122.,-6602908464731875.,.496795375328043996263,-49,54, + 5107897798881132.,-6602908464731512.,.488137178992173364808,-49,54, + 5107897798881142.,-6602908464731149.,.479478982651575881564,-49,54, + 5107897798881580.,-6602908464715249.,-.499750021704202712573,-49,54, + 5107897798895440.,-6602908464212144.,.499985019868240728967,-49,54, + 5114090198516132.,-6379023361369155.,.499978371429070092146,-49,54, + 5114090198547564.,-6379023360237209.,.499565821910656676133,-49,54, + 5114090198547716.,-6379023360231735.,.404883137838529167148,-49,54, + 5114090198547723.,-6379023360231483.,.492628014204731987830,-49,54, + 5114090198547724.,-6379023360231446.,-.494837003457420258702,-49,54, + 5114090198549718.,-6379023360159638.,.499917688098220500430,-49,54, + 5114090198550436.,-6379023360133780.,-.499965069884457098645,-49,54, + 5114090198558653.,-6379023359837866.,.499982260935956662182,-49,54, + 5214918003772926.,-5859516379182766.,.499960560310300032118,-49,55, + 5214918003819315.,-5859516376135342.,-.499992374182328316940,-49,55, + 5214918003821535.,-5859516375989504.,-.498310736707319938894,-49,55, + 5214918003821587.,-5859516375986088.,-.473046124017658832924,-49,55, + 5214918003821600.,-5859516375985234.,-.466729970861280317645,-49,55, + 5214918003821688.,-5859516375979454.,.499102450336294089130,-49,55, + 5214918003822007.,-5859516375958497.,-.499755025286523323792,-49,55, + 5214918003822798.,-5859516375906535.,.499943192477671900767,-49,55, + 5222449517593618.,-5365794992135994.,-.497078809584765170530,-49,55, + 5222449517593637.,-5365794992134752.,.474241302024929107878,-49,55, + 5222449517593649.,-5365794992133966.,-.491240732754333765951,-49,55, + 5222449517593761.,-5365794992126640.,.497593609065519662750,-49,55, + 5222449517594457.,-5365794992081108.,.499635580641700469476,-49,55, + 5222449517594631.,-5365794992069724.,-.499853929084189437399,-49,55, + 5222449517600454.,-5365794991688787.,.499987908305289351843,-49,55, + 5222449517631800.,-5365794989638146.,.499974997019145229225,-49,55, + 5273528936145910.,-8239199824041505.,.499982454838573266568,-49,57, + 5273528936145959.,-8239199824028919.,-.499757488784375228454,-49,57, + 5273528936146841.,-8239199823802389.,-.495076495415546584641,-49,57, + 5273528936147086.,-8239199823739464.,-.493776226681753017604,-49,57, + 5273528936222818.,-8239199804288705.,.499836761195569444170,-49,57, + 5305678313932713.,-6089728082782612.,.182547207300669062173,-49,85, + 5305678314020444.,-7795157664844265.,.372481005143736030579,-49,92, + 5305678314021321.,-5182981399542312.,-.161215258690335977626,-49,98, + 5305678314021330.,-7451636400032266.,-.317776556151928327811,-49,104, + 5305678314021331.,7144290154732925.,.420555860962022729423,-49,102, + 5346865815355482.,5281427233506986.,-.499989877387123093324,-49,56, + 5346865815376601.,5281427236224739.,.499152611233384874224,-49,56, + 5346865815376681.,5281427236235035.,-.490670202385591165651,-49,56, + 5346865815376809.,5281427236251507.,-.474386703729873751961,-49,56, + 5346865815377094.,5281427236288182.,.499369525717867612965,-49,56, + 5346865815378573.,5281427236478512.,-.499979681961914170689,-49,56, + 5489113122558596.,6086879966999251.,.499950540639518194260,-49,54, + 5489113122559049.,6086879967015403.,-.499570629043357328925,-49,54, + 5489113122559326.,6086879967025278.,.498514664462325753682,-49,54, + 5489113122559375.,6086879967027026.,-.483773496272448458301,-49,54, + 5489113122559401.,6086879967027953.,-.494783540702232012782,-49,54, + 5489113122573219.,6086879967520611.,.499959247942356021216,-49,54, + 5489113122700648.,6086879972063892.,-.499577507650392345668,-49,54, + 5548511370793648.,8291412923757014.,-.499852406183441648037,-49,54, + 5548511370793915.,8291412923767368.,-.498929694561727457118,-49,54, + 5548511370794001.,8291412923770702.,.497622191042991118898,-49,54, + 5548511370794010.,8291412923771052.,-.491110751134057954391,-49,54, + 5548511370796843.,8291412923880912.,.499953372186602023085,-49,54, + 5548511370801192.,8291412924049563.,-.499996970959525814872,-49,54, + 6192449487633893.,-7949938657150857.,.499642623787207790248,-49,45, + 6192449487634431.,-7949938655434139.,-.353910821468461190538,-49,45, + 6192449487634433.,-7949938655427758.,.494215849440212050777,-49,45, + 6192449487634749.,-7949938654419426.,.498101154104133867986,-49,45, + 6192449487634907.,-7949938653915260.,.499947889326588813762,-49,45, + 6192449487642861.,-7949938628534650.,.409013059070240297713,-49,45, + 6192449487651829.,-7949938599918443.,.112376557479148956689,-49,45, + 7074237752028440.,-4967757600021511.,.121482295898714274283,-49,103, + 7074237752028441.,6523320454730237.,-.439258852050639065313,-49,102, + 7074237752028456.,8851956829740320.,-.214953678250863102175,-49,98, + 7074237752030076.,7193991260720826.,.248320694634181886010,-49,91, + 7074237752192064.,5622068355479965.,.455223322373268937895,-49,84, + 8842797190035550.,-6209697000026889.,.401852869873392563462,-49,103, + 8842797190035551.,5902350754727548.,-.299073565063300664382,-49,102, + 8842797190035557.,7493193285396687.,.462615804367436176134,-49,99, + 8842797190036213.,5828777595110610.,-.379198311336277119185,-49,92, + 8842797190101842.,4555527863668746.,-.362316429871632526015,-49,85, + 5305678313666861.,-6089734603000421.,.042430128086641111414,-48,82, + 5305678314017785.,-7795992252723834.,-.156880159347659552288,-48,89, + 5305678314021295.,-4954920047124106.,-.040303814698308291000,-48,95, + 5305678314021330.,-7451636400032266.,-.317776556151929333620,-48,103, + 5305678314021331.,7144290154732925.,.420555860962036912098,-48,101, + 6189958033024885.,-8693575800037644.,-.037405982177251454216,-48,103, + 6189958033024886.,6833805304731581.,-.009351495544295780798,-48,101, + 6189958033025027.,4987691016496920.,-.261755278857775237601,-48,93, + 6189958033039114.,7822342822373020.,.370916736764676687174,-48,87, + 6189958034447771.,6111247799581261.,.273703534422204692858,-48,80, + 7074237752028440.,-4967757600021511.,.121482295898713082212,-48,102, + 7074237752028441.,6523320454730237.,-.439258852050628268713,-48,101, + 7074237752028505.,4554563068423076.,-.026869209701370755425,-48,94, + 7074237752034985.,7196000395932591.,-.437918534602711947701,-48,88, + 7074237752682937.,5622084051848807.,.373898630877979653517,-48,81, + 7958517471031995.,-5588727300024200.,.261667582886051742522,-48,102, + 7958517471031996.,6212835604728892.,.130833791443039439041,-48,101, + 7958517471032047.,7274687462445617.,-.060455721926927319791,-48,95, + 7958517471037211.,5734711541635620.,.382340846019920339897,-48,88, + 7958517471553561.,8960430320996457.,-.421270689132499411233,-48,82, + 8842797190035550.,-6209697000026889.,.401852869873390235198,-48,102, + 8842797190035551.,5902350754727548.,-.299073565063292666851,-48,101, + 8842797190035577.,7502797855562292.,-.134346048885800292734,-48,96, + 8842797190038202.,5831051654070580.,.405200593989362914759,-48,89, + 8842797190300717.,4555528449885186.,.410763274042877613258,-48,82, + 4863538454519552.,-6211266302377890.,-.364490460784866538911,-47,100, + 4863538454519553.,5591865904726203.,.271019078430375404300,-47,101, + 4863538454519555.,5202582865461271.,.408877384804263157555,-47,98, + 4863538454519754.,7082980402950400.,.365763713968232572687,-47,92, + 4863538454539620.,5516060283747554.,.002894911318561540113,-47,85, + 4863538456526210.,8618527522494196.,.115329345845377238584,-47,79, + 5305678312603455.,-6089727643120281.,-.444618878245905898386,-47,79, + 5305678314007151.,-7795101388065951.,.460753688689882328708,-47,86, + 5305678314021188.,-5003457825286051.,.489924044629056880151,-47,92, + 5305678314021329.,-5435054177374529.,-.289722069519124213487,-47,99, + 5305678314021330.,-7451636400032266.,-.317776556151933356860,-47,102, + 5305678314021331.,7144290154732925.,.420555860962093642796,-47,100, + 5747818173523107.,-6521751152379235.,.205602182708795295032,-47,100, + 5747818173523108.,4970896204723514.,.411204365417712040477,-47,101, + 5747818173523109.,5746323678551375.,-.397198908645416144216,-47,99, + 5747818173523169.,8623821916274410.,.456337534649753544038,-47,94, + 5747818173529257.,6761200398621182.,-.168305560415280984539,-47,87, + 5747818174138032.,5282159309359028.,.016673593855177465831,-47,80, + 6189958033024885.,-8693575800037644.,-.037405982177257842971,-47,102, + 6189958033024886.,6833805304731581.,-.009351495544246129721,-47,100, + 6189958033024891.,6483725197304568.,-.376168936939420501331,-47,97, + 6189958033025454.,5002854474607046.,-.065438792584506496851,-47,90, + 6189958033081800.,7822304873499047.,.093153944452814788500,-47,84, + 6189958038716422.,6111241060654743.,-.363027921367750296030,-47,77, + 6632097892526662.,-6832236002380579.,-.224305173797543653509,-47,100, + 6632097892526663.,8699853009441651.,.102779304810098546130,-47,102, + 6632097892526667.,4775470033915548.,-.403038146723238888079,-47,97, + 6632097892527084.,7410558299801402.,.431202551086963376861,-47,91, + 6632097892568793.,5790336297080846.,.456666731812767697019,-47,84, + 6632097896739609.,4523616581729329.,.464132454764821713143,-47,77, + 7074237752028440.,-4967757600021511.,.121482295898708313928,-47,101, + 7074237752028441.,6523320454730237.,-.439258852050585082312,-47,100, + 7074237752028443.,6134429741053055.,.140185286988105498738,-47,98, + 7074237752028702.,4604301417855721.,-.006717297137657554401,-47,91, + 7074237752054620.,7196227801828588.,-.359396954774009162288,-47,85, + 7074237754646427.,5622083680973722.,.489413726387040545348,-47,78, + 7516377611530217.,-7142720852381924.,.345787469696116578212,-47,100, + 7516377611530218.,7457913609436273.,.383149878784774055121,-47,102, + 7516377611530219.,5435838828550030.,.172893734848229356778,-47,99, + 7516377611530309.,6418121957685854.,.221451465505512603682,-47,93, + 7516377611539325.,5006739995808629.,-.263887921922496182795,-47,86, + 7516377612440958.,7823198808423246.,-.066795868268797619497,-47,80, + 7958517471031995.,-5588727300024200.,.261667582886044953306,-47,101, + 7958517471031996.,6212835604728892.,.130833791443076747770,-47,100, + 7958517471031997.,7610017429734942.,.065416895721879177483,-47,99, + 7958517471032204.,7342618283558028.,.234886074879436499853,-47,92, + 7958517471052858.,5734692495361673.,.095627053278669187934,-47,85, + 7958517473118259.,8960434318365723.,-.201544899384741877047,-47,79, + 8400657329648411.,-7605200188238565.,-.355853089736153797663,-47,80, + 8400657330524919.,-4867443127925072.,-.353771321183432276938,-47,86, + 8400657330533684.,-6250677657184301.,-.281907187445709496594,-47,93, + 8400657330533772.,-7453205702383268.,-.084119886810224047056,-47,100, + 8400657330533773.,6215974209430896.,-.336479547240549541081,-47,102, + 8842797190035550.,-6209697000026889.,.401852869873380922144,-47,101, + 8842797190035551.,5902350754727548.,-.299073565063260676727,-47,100, + 8842797190035656.,7434830253926029.,-.033586510830326211564,-47,93, + 8842797190046157.,5831070412996685.,.101311145253114430110,-47,86, + 8842797191096216.,4555524301472001.,-.311397000553218140307,-47,79, + 5858197952790444.,7977144578647352.,-.497665013226391406754,-46,44, + 5858197952790526.,7977144582862484.,.494631578261406177653,-46,44, + 5858197952790527.,7977144582913889.,-.444459262910030024059,-46,44, + 5858197952790529.,7977144583016697.,-.322638957801428138297,-46,44, + 5858197952794729.,7977144798913758.,.345891695065051066499,-46,44, + 6245226045760697.,-4559419855747652.,.264061622401547557512,-45,36, + 6245226045767160.,-4559364288563871.,-.387725967126658660448,-45,36, + 6245226045767543.,-4559360995672545.,.204593144900034769058,-45,36, + 6245226045767549.,-4559360944086818.,.271811624039305101137,-45,36, + 6245226045767657.,-4559360015543930.,-.127729619255618642739,-45,36, + 6245226045767679.,-4559359826396351.,-.243795107690708424470,-45,36, + 6245226045767681.,-4559359809201118.,.421994755613328751097,-45,36, + 6245226045767920.,-4559357754371628.,-.344460710907087957279,-45,36, + 5426391276979762.,5882612263925814.,-.499462265314089354520,-44,53, + 5426391276979780.,5882612263938961.,-.496476125930146562077,-44,53, + 5426391276979834.,5882612263978402.,-.487517602353913490838,-44,53, + 5426391276979839.,5882612263982053.,.457756343013278713510,-44,53, + 5426391276980091.,5882612264166111.,.499564945617025527550,-44,53, + 5426391276982101.,5882612265634193.,.499828273298170201674,-44,53, + 5426391276987126.,5882612269304399.,-.498554856841886258347,-44,53, + 5426971710399078.,6316051654311978.,.499745016256988610697,-44,53, + 5426971710399601.,6316051654711423.,.475048023165628480574,-44,53, + 5426971710399605.,6316051654714479.,-.496460111459882248196,-44,53, + 5426971710399745.,6316051654821405.,-.499244209616338586800,-44,53, + 5426971710401219.,6316051655947183.,-.499912931702694047031,-44,53, + 5562950707697847.,-8503174439105153.,.496400656973969709409,-44,52, + 5562950707702006.,-8503174434244927.,.499735496279900942220,-44,52, + 5562950707703169.,-8503174432885839.,-.498906044796364135291,-44,52, + 5562950707703174.,-8503174432879996.,-.476544961006514707540,-44,52, + 5562950707703303.,-8503174432729246.,-.499631167249761766022,-44,52, + 5562950707713052.,-8503174421336522.,.487768074297052471390,-44,52, + 5565768841151334.,-5957913028132786.,.488003761274247867355,-44,52, + 5565768841151335.,-5957913028132081.,-.480304926948731042977,-44,52, + 5565768841151366.,-5957913028110256.,-.497874314380320132694,-44,52, + 5565768841151429.,-5957913028065903.,.498677907312179993294,-44,52, + 5565768841151997.,-5957913027666013.,.499320232533172303094,-44,52, + 5565768841152565.,-5957913027266123.,.499928396527937714278,-44,52, + 5565768841176641.,-5957913010315856.,.466125339970974812961,-44,52, + 5637442019528742.,5204056316864693.,-.499128525631719713757,-44,59, + 5637442019530736.,5204056382209410.,-.499503860100678476834,-44,59, + 5637442019534724.,5204056512898844.,-.499853348989303036183,-44,59, + 5637442019535926.,5204056552289189.,.455010815608740851608,-44,59, + 5637442019535938.,5204056552682438.,-.498850528446218415870,-44,59, + 5637442019536111.,5204056558351763.,.499648966309557212180,-44,59, + 5666178554253736.,-7836479515572140.,.221305736159231901021,-44,49, + 5666178554261252.,-7836479468725913.,.477845826794129212737,-44,49, + 5666178554261357.,-7836479468071462.,.493316055821135497632,-44,49, + 5666178554261402.,-7836479467790983.,.499912863268219490204,-44,49, + 5666178554285301.,-7836479318831701.,-.352180588460061780612,-44,49, + 5772925638446115.,7786441351776282.,.366803055673189709071,-44,50, + 5772925638472635.,7786441434650370.,-.499471920555050048058,-44,50, + 5772925638472664.,7786441434740994.,-.496758447433443226188,-44,50, + 5772925638472665.,7786441434744118.,.468852398838653080893,-44,50, + 5772925638473362.,7786441436922220.,-.499790091324250354231,-44,50, + 5772925638487727.,7786441481812351.,-.221867044922898914312,-44,50, + 5772925638492147.,7786441495624699.,-.034352737128827159064,-44,50, + 5835612929830528.,-7885315206957082.,.499023065774786919319,-44,51, + 5835612929831967.,-7885315204514238.,.499820831480314529232,-44,51, + 5835612929832206.,-7885315204108511.,-.498792332646753119578,-44,51, + 5835612929832211.,-7885315204100024.,.492868067565812868568,-44,51, + 5835612929832221.,-7885315204083048.,.476188817304052027036,-44,51, + 5835612929837123.,-7885315195761421.,.491883868104476446194,-44,51, + 5896103646755871.,-6948420867466473.,.487883136402260860480,-44,52, + 5896103646767110.,-6948420857740397.,.499842109861558818445,-44,52, + 5896103646767866.,-6948420857086164.,-.499329891341066999722,-44,52, + 5896103646768433.,-6948420856595490.,-.498765824633895246597,-44,52, + 5896103646768477.,-6948420856557414.,.495984902070500648398,-44,52, + 5896103646768508.,-6948420856530587.,.469559101245905544375,-44,52, + 5896103646768521.,-6948420856519337.,.490735334907187191378,-44,52, + 6004329071274837.,-4736461505679553.,.203333168774953622963,-44,51, + 6004329071332883.,-4736461465377317.,.499735804255058563527,-44,51, + 6004329071334563.,-4736461464210867.,.496194570038259494054,-44,51, + 6004329071334601.,-4736461464184483.,.484204289178301752421,-44,51, + 6004329071334617.,-4736461464173373.,-.468212742909520658266,-44,51, + 6004329071334712.,-4736461464107413.,-.498189746333599246438,-44,51, + 6004329071335384.,-4736461463640833.,-.499754074729573523966,-44,51, + 6004329071335552.,-4736461463524189.,.499843127968062099624,-44,51, + 6029337333115638.,5465078738859625.,-.497840376284727529246,-44,54, + 6029337333124457.,5465078748721418.,-.499908198665046575758,-44,54, + 6029337333124662.,5465078748950658.,-.499353634490610275812,-44,54, + 6029337333126097.,5465078750555338.,-.495426302694126243966,-44,54, + 6029337333126208.,5465078750679463.,-.421948475124451616204,-44,54, + 6029337333126220.,5465078750692882.,-.495085978816142084635,-44,54, + 6029337333150873.,5465078778260949.,-.488266672736346676998,-44,54, + 6245226045766526.,8897023390174213.,-.499902258090330876857,-44,68, + 6245226045766854.,8897028893101066.,-.499510132313095728521,-44,68, + 6245226045767641.,8897042096770069.,.498407176353514188140,-44,68, + 6245226045767679.,8897042734304278.,.077723017535169137416,-44,68, + 6245226045767681.,8897042767858710.,.108213327265614149245,-44,68, + 6245226045767699.,8897043069848598.,.382626125188861803511,-44,68, + 6245226045767707.,8897043204066327.,-.495412625310132328398,-44,68, + 6245226045768953.,8897064108477482.,-.499903097364283239942,-44,68, + 6245226045781088.,8897267699993827.,-.494827213641975109533,-44,68, + 6304262280165671.,7839826145954111.,-.499855294349432169635,-44,55, + 6304262280166438.,7839826147599304.,-.499823150009799418317,-44,55, + 6304262280167972.,7839826150889690.,-.499665212937662410096,-44,55, + 6304262280168251.,7839826151488136.,.497769370566155898354,-44,55, + 6304262280168320.,7839826151636140.,-.481359073863587872270,-44,55, + 6304262280168321.,7839826151638284.,.489957907059837956630,-44,55, + 6304262280168495.,7839826152011509.,.499113395613682851529,-44,55, + 6304262280182057.,7839826181101611.,-.494985901838188716256,-44,55, + 6305910042758502.,5729286499477431.,-.494854658253257025629,-44,54, + 6305910042772072.,5729286514778645.,-.499977177498356148374,-44,54, + 6305910042774325.,5729286517319075.,-.497005893376538488064,-44,54, + 6305910042774377.,5729286517377708.,.484423317269754815462,-44,54, + 6305910042774384.,5729286517385602.,-.479615049801234117524,-44,54, + 6305910042774547.,5729286517569397.,-.499365032447877568729,-44,54, + 6305910042774658.,5729286517694557.,.499456151500774950523,-44,54, + 6305910042777995.,5729286521457281.,-.499712086436241370482,-44,54, + 6535180284100167.,8805179215868959.,.485141311035603593016,-44,53, + 6535180284100229.,8805179215931039.,.498693498543262543940,-44,53, + 6535180284100821.,8805179216523803.,.499084314917452630121,-44,53, + 6535180284102301.,8805179218005714.,-.499768020115076442982,-44,53, + 6535180284113222.,8805179228940808.,-.490520668351070273714,-44,53, + 6535815775784477.,4732540712758599.,.498476542798585705244,-44,52, + 6535815775784551.,4732540712798462.,.495278487719469924881,-44,52, + 6535815775784580.,4732540712814084.,.480511778464974915758,-44,52, + 6535815775784596.,4732540712822704.,-.493152589680012515803,-44,52, + 6535815775784744.,4732540712902430.,-.499547214007605414770,-44,52, + 6535815775785693.,4732540713413646.,-.499976543084708366747,-44,52, + 6535815775796325.,4732540719140989.,-.495555776558746630641,-44,52, + 6535815775834790.,4732540739861667.,-.418888328879324713612,-44,52, + 6544022097441985.,7433463181640688.,-.453919757022777040594,-44,51, + 6544022097442564.,7433463182522428.,-.458018918042551446663,-44,51, + 6544022097447196.,7433463189576348.,-.483914682393857834460,-44,51, + 6544022097454685.,7433463200981099.,-.446302513746930315990,-44,51, + 6544022097454693.,7433463200993281.,.489794328290907974486,-44,51, + 6544022097454723.,7433463201038968.,-.499842188299185894714,-44,51, + 6616319171067439.,-5639447612991234.,.428664460139588675764,-44,52, + 6616319171106482.,-5639447587323782.,.489392401323777870202,-44,52, + 6616319171106523.,-5639447587296827.,-.497556291851556517690,-44,52, + 6616319171106670.,-5639447587200187.,-.499544363039663049897,-44,52, + 6616319171107205.,-5639447586848470.,-.499994213110341850450,-44,52, + 6616319171114254.,-5639447582214353.,.497184547464269800946,-44,52, + 6702751591210036.,5388381552243276.,-.489384219081617946792,-44,52, + 6702751591220254.,5388381558603663.,-.498594258974040028758,-44,52, + 6702751591225861.,5388381562093846.,-.498423765801044559929,-44,52, + 6702751591225878.,5388381562104427.,.472509994304854574130,-44,52, + 6702751591226584.,5388381562543891.,-.499278123826600173833,-44,52, + 6702751591227066.,5388381562843921.,-.499823107431393553471,-44,52, + 6702751591251149.,5388381577834839.,-.472962266264470363672,-44,52, + 6729307497420708.,-8517448159088361.,.485777385002058810765,-44,53, + 6729307497437165.,-8517448143127778.,-.499860043047814471569,-44,53, + 6729307497437226.,-8517448143068619.,.462588257051171601145,-44,53, + 6729307497437238.,-8517448143056981.,.487987876977457131331,-44,53, + 6729307497437244.,-8517448143051161.,-.499312318689572962240,-44,53, + 6729307497438976.,-8517448141371407.,.499874272497927709641,-44,53, + 6743769751755980.,4663212873530431.,-.499980613206014397351,-44,56, + 6743769751757426.,4663212879478051.,.498776792879463461212,-44,56, + 6743769751757439.,4663212879531523.,-.496393150924457102891,-44,56, + 6743769751757504.,4663212879798878.,-.472242793231119810452,-44,56, + 6743769751757517.,4663212879852349.,-.467412706349864328960,-44,56, + 6743769751758256.,4663212882891969.,.499475256485527562257,-44,56, + 6743769751758671.,4663212884598928.,.499832305972653532620,-44,56, + 6743769751761777.,4663212897374386.,-.499739580386490010712,-44,56, + 6743769751790762.,4663213016594161.,-.483280248163844826370,-44,56, + 6754791752037657.,7451445081177013.,-.475679656017308493249,-44,53, + 6754791752048403.,7451445090444427.,-.492222853649961557738,-44,53, + 6754791752062152.,7451445102301645.,.473468364457488065649,-44,53, + 6754791752062157.,7451445102305958.,-.496939170530654717817,-44,53, + 6754791752062258.,7451445102393061.,-.499170943111059126469,-44,53, + 6754791752062731.,7451445102800979.,-.499710708931746674612,-44,53, + 6754791752088278.,7451445124832863.,-.472307324586953148933,-44,53, + 6794379564775085.,-7308383528663907.,.499792297776842680886,-44,55, + 6794379564775622.,-7308383527518878.,.499749921477222560012,-44,55, + 6794379564777770.,-7308383522938762.,.499438617488149726837,-44,55, + 6794379564778170.,-7308383522085853.,-.493195622289979884635,-44,55, + 6794379564778207.,-7308383522006960.,.497485312993941805860,-44,55, + 6794379564778307.,-7308383521793733.,.499325341793245417179,-44,55, + 6794379564783777.,-7308383510130216.,.499225822835509074379,-44,55, + 6990987887147431.,7100582953006439.,-.465989443957676598250,-44,47, + 6990987887148192.,7100582968509363.,.469388876181888988482,-44,47, + 6990987887148201.,7100582968692709.,.493996653807644124095,-44,47, + 6990987887148406.,7100582972868925.,-.498485338098097826423,-44,47, + 6990987887148447.,7100582973704168.,-.496392469162734655838,-44,47, + 7006147210769166.,-8042980383687134.,-.063069370723413976604,-44,53, + 7006147210777808.,-8042980375734348.,.185726973791825168210,-44,53, + 7006147211000861.,-8042980170470195.,.193246776636428455744,-44,53, + 7006147211080576.,-8042980097112600.,.498100291232244441959,-44,53, + 7006147211081720.,-8042980096059835.,-.421308631490916167152,-44,53, + 7006147211081756.,-8042980096026706.,-.481711595829205013600,-44,53, + 7006147211081768.,-8042980096015664.,.498154055819578774611,-44,53, + 7054682820169599.,-4553813902705527.,.297869072051221099619,-44,51, + 7054682820207747.,-4553813877852828.,.485745768107224712545,-44,51, + 7054682820220463.,-4553813869568595.,.499933076498614367791,-44,51, + 7054682820221544.,-4553813868864343.,-.487631156744030682532,-44,51, + 7054682820221546.,-4553813868863041.,.474463844348617734442,-44,51, + 7054682820221571.,-4553813868846753.,-.499348692544451062606,-44,51, + 7054682820221914.,-4553813868623296.,.499933848287996378410,-44,51, + 7138546116882169.,5084649691259517.,-.494901276486605270200,-44,53, + 7138546116897437.,5084649701567852.,.499942555186804835048,-44,53, + 7138546116897506.,5084649701614439.,-.491150300855720396769,-44,53, + 7138546116897512.,5084649701618489.,.466145982281117700964,-44,53, + 7138546116897531.,5084649701631317.,.497584222505293917564,-44,53, + 7223985620311800.,-5824448248145976.,.499578922908986072429,-44,52, + 7223985620313358.,-5824448247080017.,-.499949510448738954203,-44,52, + 7223985620314660.,-5824448246189210.,-.493324237634473143042,-44,52, + 7223985620314709.,-5824448246155685.,-.498454573151603428625,-44,52, + 7223985620314916.,-5824448246014059.,-.499722125302056174769,-44,52, + 7223985620352929.,-5824448220006190.,.426316283762536860461,-44,52, + 7322656671923330.,8694133478551791.,.028172596690911616375,-44,47, + 7322656671979834.,8694135204056181.,-.336847605011974097788,-44,47, + 7322656671980904.,8694135236731568.,-.281428796618100832430,-44,47, + 7322656671991925.,8694135573288069.,-.321116500743787975683,-44,47, + 7322656671993201.,8694135612254235.,-.476872741734642285858,-44,47, + 7322656671993209.,8694135612498537.,-.495556536378817601251,-44,47, + 7371229009395375.,5374472439644421.,-.457848396717034624667,-44,51, + 7371229009395381.,5374472439649563.,.494656552457871188453,-44,51, + 7371229009395570.,5374472439811566.,.498566737386126761256,-44,51, + 7371229009395633.,5374472439865567.,.499871978604123233930,-44,51, + 7371229009401781.,5374472445135380.,-.495296567221821087410,-44,51, + 7371229009409466.,5374472451722645.,-.476894707921413611774,-44,51, + 7413149621270953.,7944544511101985.,-.499380087388599344132,-44,54, + 7413149621274762.,7944544515760995.,-.499920462351892613973,-44,54, + 7413149621275400.,7944544516541370.,-.498611297476226933541,-44,54, + 7413149621275438.,7944544516587850.,-.482858553281054486118,-44,54, + 7413149621275779.,7944544517004947.,-.499389175434248074971,-44,54, + 7461059150894848.,-6681833024750928.,.498821130917096692634,-44,61, + 7461059150902231.,-6681832057038226.,.455414833749193432215,-44,61, + 7461059150902251.,-6681832054416764.,.468026004420569460905,-44,61, + 7461059150902301.,-6681832047863109.,.499553855532801726765,-44,61, + 7461059150902460.,-6681832027022486.,.499811704600943807496,-44,61, + 7461059150902619.,-6681832006181862.,-.499931537981938158873,-44,61, + 7461059150906425.,-6681831507317642.,.499599368233883093868,-44,61, + 7761862923788165.,6085579851326880.,.082219589099079970046,-44,50, + 7761862923839741.,6085579951062148.,.499247074238233752418,-44,50, + 7761862923839745.,6085579951069884.,-.486793131057701101451,-44,50, + 7761862923839765.,6085579951108559.,-.416993872353656562992,-44,50, + 7761862923840171.,6085579951893663.,-.499966161838059280074,-44,50, + 7761862923843108.,6085579957573097.,-.493368237204476990416,-44,50, + 7819356134936070.,4983230431941229.,.463997324770497010639,-44,48, + 7819356134936090.,4983230432041847.,.478239846415571121971,-44,48, + 7819356134936120.,4983230432192774.,.499611223194114487966,-44,48, + 7819356134936261.,4983230432902132.,-.499821234992784036516,-44,48, + 7880037969508977.,-8769511676404614.,.497600325220271340682,-44,51, + 7880037969509110.,-8769511676129392.,.497800137152770568652,-44,51, + 7880037969510706.,-8769511672826728.,.498933769348349307204,-44,51, + 7880037969511238.,-8769511671725840.,.498793037108407708816,-44,51, + 7880037969511259.,-8769511671682383.,-.395954680095846267091,-44,51, + 8016984453654379.,6625791503749822.,-.499238992042788093013,-44,55, + 8016984453660218.,6625791516112525.,-.499817101941769692374,-44,55, + 8016984453660309.,6625791516305196.,-.499129119184348794911,-44,55, + 8016984453660328.,6625791516345424.,-.487996417185512437934,-44,55, + 8016984453661655.,6625791519155033.,-.499899223587580354508,-44,55, + 8016984453703783.,6625791608351120.,-.458206178873202588661,-44,55, + 8049376796597357.,-4633560321679863.,.342618167148581468245,-44,51, + 8049376796640967.,-4633560292462210.,.499891386689871094469,-44,51, + 8049376796641925.,-4633560291820372.,-.499907902740131557489,-44,51, + 8049376796642050.,-4633560291736626.,.499063835953588471622,-44,51, + 8049376796642174.,-4633560291653548.,-.477958618872977414889,-44,51, + 8049376796642175.,-4633560291652879.,.498033125727904923639,-44,51, + 8198893031061840.,8791826487613061.,-.493505199666541774659,-44,52, + 8198893031067344.,8791826494391872.,-.499656829703804325013,-44,52, + 8198893031067357.,8791826494407883.,-.499843243258394034994,-44,52, + 8198893031067825.,8791826494984278.,.493476634388093035579,-44,52, + 8198893031068709.,8791826496073026.,.481021969646844773675,-44,52, + 8198893031068735.,8791826496105048.,.480658889600838700278,-44,52, + 8198893031072861.,8791826501186694.,-.497694721594344961409,-44,52, + 8347450336543078.,8478566730967977.,.499876375819307042464,-44,56, + 8347450336544644.,8478566737471118.,.430016313548314741899,-44,56, + 8347450336544654.,8478566737512646.,-.488692444517409131870,-44,56, + 8347450336544702.,8478566737711976.,-.498494405907245088241,-44,56, + 8347450336544911.,8478566738579892.,-.499505620912835292699,-44,56, + 8347450336547974.,8478566751299637.,-.499693052894131653996,-44,56, + 8638779724372242.,6562088979095036.,-.467826454498512231385,-44,52, + 8638779724381251.,6562088986297789.,-.488741050188216285668,-44,52, + 8638779724390260.,6562088993500542.,-.498906656460155161060,-44,52, + 8638779724390495.,6562088993688426.,-.499138975881167787662,-44,52, + 8638779724393550.,6562088996130917.,.498506438337488082983,-44,52, + 8638779724394255.,6562088996694569.,.498138606460582247536,-44,52, + 8638779724394257.,6562088996696169.,-.489096385953230766024,-44,52, + 8638779724394277.,6562088996712159.,-.361446280954876824114,-44,52, + 8704521642365805.,5793272955721516.,-.338482617154754445711,-44,45, + 8704521642366369.,5793272986304051.,.496306193586423930620,-44,45, + 8704521642366479.,5793272992268731.,-.491196496027928592987,-44,45, + 8704521642366902.,5793273015205633.,-.355987588628501444168,-44,45, + 8704521642370052.,5793273186012356.,.384218560836126422087,-44,45, + 8704521642374299.,5793273416303215.,.415022168562783154849,-44,45, + 7146344544205485.,7177279912577087.,.170812066868778227267,-38,35, + 7146344544206769.,7184289929633411.,.441225887164382867247,-38,35, + 7146344544206846.,7184710747509888.,.157958984762707765957,-38,35, + 7146344544206847.,7184716213001394.,-.492777724293430545635,-38,35, + 7146344544206849.,7184727144009350.,.214481733390090229727,-38,35, + 7146344544206866.,7184820058919929.,.461530659107715603957,-38,35, + 7146344544218656.,7249843303646073.,-.355515482996088040378,-38,35, + 7146344544231827.,7323888934212544.,-.020116145278483844163,-38,35, + 5371956115269229.,-6818453271172537.,-.238308647177607875740,-37,31, + 5371956115275259.,-5984753397914060.,-.062368427637827279165,-37,31, + 5371956115275767.,-5923734292364860.,.013594132395973582847,-37,31, + 5371956115275775.,-5922783311680424.,-.306801773428989573094,-37,31, + 5371956115275777.,-5922545614216129.,-.351802910073348710683,-37,31, + 5371956115275817.,-5917795668285158.,-.074571560680671615404,-37,31, + 5371956115275867.,-5911868939382967.,.386305848265452729841,-37,31, + 5371956115296668.,-8346277860743347.,.008701212724948152058,-37,32, + 7170739958440191.,-6304817352526845.,.195722109923087527538,-37,35, + 7170739958444930.,-6265177420166667.,.450275332346600962292,-37,35, + 7170739958448127.,-6238716097693937.,.052889285485698440164,-37,35, + 7170739958448129.,-6238699613807796.,.337197895966024071084,-37,35, + 7170739958448135.,-6238650162672011.,.215805245844409530616,-37,35, + 7170739958448315.,-6237166993048632.,.275865834092017991563,-37,35, + 7146344544198288.,-5682748303574537.,-.294855851195412162460,-36,68, + 7146344544206793.,-5646219606708603.,.496759453031705496742,-36,68, + 7146344544206800.,-5646189541937520.,.499267884085989315148,-36,68, + 7146344544206842.,-5646009153311021.,-.488142108410715026779,-36,68, + 7146344544206847.,-5645987678474534.,.370218593111394958956,-36,68, + 7146344544206849.,-5645979088539938.,-.486453864474042206752,-36,68, + 7146344544208614.,-5638398471259728.,-.226959913229469637030,-36,68, + 7146344544209221.,-5635791426110105.,-.228421118162198914152,-36,68, + 7158542251321411.,8288260383536357.,.317855163143279355289,-36,35, + 7158542251327335.,8464270768129039.,.386598144948535010576,-36,35, + 7158542251327485.,8468824571260593.,-.263026910839683638235,-36,35, + 7158542251327487.,8468885321737596.,.391326885411329038676,-36,35, + 7158542251327489.,8468946073086184.,.266049057366998846018,-36,35, + 7158542251327496.,8469158709670238.,.372035255992917520918,-36,35, + 7158542251328215.,8491056545868562.,-.388590063856017709611,-36,35, + 7158542251358393.,4762354060778934.,-.140428157643608711792,-36,34, + 7170739958438125.,6416193615665061.,-.336530512044146954872,-36,69, + 7170739958447954.,6500624082779936.,-.458037872832779144012,-36,69, + 7170739958448096.,6501843853492147.,.497216366901731151136,-36,69, + 7170739958448120.,6502050011922381.,-.490776827947145349418,-36,69, + 7170739958448127.,6502110141464532.,-.195309399487223670206,-36,69, + 7170739958448129.,6502127321333718.,-.110865350510702772899,-36,69, + 7170739958449304.,6512220494480544.,.405186288301177670854,-36,69, + 7158542251327473.,-4790105732643856.,.498168734272324463286,-35,69, + 7158542251327487.,-4789865214475264.,.335313238366198564399,-35,69, + 7158542251327488.,-4789848034606079.,.466476987250853271280,-35,69, + 7158542251327489.,-4789830854736893.,-.402367378182687861313,-35,69, + 7158542251327534.,-4789057760623563.,.491238329893878297073,-35,69, + 7158542251332932.,-4696320826762344.,.039886916855153906186,-35,69, + 7158542251381514.,-7723376844042519.,-.332934095616978440742,-35,70, + 7158542251386912.,-7537902976324307.,.327621973092382493823,-35,70, + 4588037610653013.,4727174891829162.,.320381373618808027373,-34,32, + 4588037610665813.,6566765668563134.,-.222852956456105222115,-34,30, + 4588037610667386.,7461632224628786.,-.276016613137516729665,-34,29, + 4588037610667926.,6624971995947759.,-.363709245351529607670,-34,28, + 4588037610668031.,7801785427206074.,-.360261682684665078174,-34,28, + 4588037610668033.,7828272269662221.,.150064294159331204119,-34,28, + 4588037610668034.,7841583247130868.,.395347456001501278856,-34,28, + 5371956115213660.,-6752300989304922.,.023075725810312099807,-34,73, + 5371956115239520.,7464384357841463.,-.452747572442618266616,-34,73, + 5371956115275724.,6841935960979415.,-.437204525035766164515,-34,71, + 5371956115275756.,6846334007490556.,-.485235831219989168378,-34,71, + 5371956115275775.,6848945347606545.,.477470822572020949569,-34,71, + 5371956115275777.,6849220225513492.,-.209690814524415808848,-34,71, + 7161591678107146.,7244732917153563.,.444836401105100874864,-34,33, + 7161591678107646.,7427037803301751.,-.286623553821625680719,-34,33, + 7161591678107647.,7427411606847815.,.479459134929940900302,-34,33, + 7161591678107649.,7428159326832725.,.141647857109761733458,-34,33, + 7161591678107700.,7447277183238765.,-.284856243333932402398,-34,33, + 7161591678109666.,8267528681988622.,.116176035356955738715,-34,33, + 7161591678138646.,-6629454277668758.,-.152657834445305597678,-34,32, + 7161591678142426.,-4948767116236799.,.156951876115031861664,-34,32, + 4923784867872729.,-7421756401627660.,-.029205618274255818597,-33,31, + 4923784867872760.,-7330329882244165.,-.126309455947877274800,-33,31, + 4923784867872767.,-7309996062004235.,.194325352278718032541,-33,31, + 4923784867872769.,-7304207102723006.,-.383655598761825817770,-33,31, + 4923784867872782.,-7266801213060767.,.118193763207190352168,-33,31, + 4923784867873016.,-6653479631864045.,-.408950637089541377871,-33,31, + 4923784867878157.,-4662097417212926.,.101897120703817281022,-33,32, + 7161591678102607.,-6846886093846092.,-.375686603267315546410,-33,71, + 7161591678107647.,-5461501442838881.,-.251557858284566386278,-33,71, + 7161591678107649.,-5460951687024990.,-.310586228036600582546,-33,71, + 7161591678107655.,-5459302419583317.,-.491223564283889592011,-33,71, + 7161591678107706.,-5445283646329099.,.258440309032084142215,-33,71, + 7161591678107774.,-5426591948656808.,.327661436200413884442,-33,71, + 7161591678108350.,-5268262274256252.,.455519314614246543211,-33,71, + 7161591678166932.,5417317635210971.,.098955162386561915533,-33,70, + 4923784867847030.,-6380879458177499.,.083625991047527862629,-32,70, + 4923784867867045.,-7033585205050949.,-.134266745728629645865,-32,73, + 4923784867872767.,5549225863219534.,-.323498221146407396610,-32,73, + 4923784867872769.,5553623909730639.,.195962261326417244532,-32,73, + 4923784867872772.,5560220979497297.,.479669519413176572392,-32,73, + 4923784867872776.,5569017072519509.,-.466946592052780294160,-32,73, + 4923784867872826.,5678968235297148.,-.479590765623888905288,-32,73, + 4923784867874162.,8616863304716326.,-.055362071013863438444,-32,73, + 4923784867878016.,8545949465815001.,-.325466976876668254800,-32,72, + 5818983827628076.,4550828610966028.,-.141922696943492964502,-31,34, + 5818983827630857.,6927076419348645.,.227075246874126744100,-31,34, + 5818983827636216.,-8729638283058440.,-.022843683925488764776,-31,27, + 5818983827636221.,-7581528823750647.,-.356559879350056767032,-31,27, + 5818983827636223.,-7202617661530821.,.081272552171110824666,-31,27, + 5818983827636225.,-6859778291600821.,-.339345155202589848298,-31,27, + 5818983827636303.,-4803141234587124.,-.143050405562465288182,-31,28, + 5818983827636419.,-4884899465907700.,-.324247892267836213800,-31,29, + 4588037610666348.,-5000813062423407.,-.223926377905613423704,-30,71, + 4588037610667659.,-8471574297551304.,.144215059191686381824,-30,73, + 4588037610668029.,-5217019879332603.,.457976510395561551917,-30,73, + 4588037610668031.,-5199427693288181.,-.192438045116992781414,-30,73, + 4588037610668033.,-5181835507243760.,.121069122245678168361,-30,73, + 4588037610668096.,-4627681646844506.,-.273276932217976013448,-30,73, + 4588037610671088.,5422557168910083.,.062361230823864897932,-30,71, + 4588037610685745.,4706705128589756.,.000094136647048910597,-30,68, + 5818983827633803.,-5233636980147713.,-.178017502356748333878,-30,71, + 5818983827636184.,4582177444187741.,-.051676464284884896525,-30,82, + 5818983827636223.,5631955090988662.,-.487831823925179784064,-30,77, + 5818983827636225.,5913430067699318.,-.077000682386547288676,-30,77, + 5818983827636296.,7952895870463831.,-.178289092233953867999,-30,76, + 5818983827636817.,5576876448378991.,.326943863410424912085,-30,73, + 5818983827688167.,7144628960875221.,.282571066082720322418,-30,67, + 6904797244411073.,5624454277193577.,-.060823193319099690299,-30,36, + 6904797244424114.,7394557147513823.,-.084499159650540363473,-30,29, + 6904797244424191.,4703788309909425.,.420494985762129796691,-30,22, + 6904797244424193.,-8639510059838796.,-.401035540411861105301,-30,23, + 6904797244424196.,-8912373752283457.,-.079801738593736443095,-30,25, + 6904797244424207.,-4790248379893716.,.495051196974285387330,-30,26, + 6904797244424352.,-7203843225027057.,.479383511135393497379,-30,30, + 6904797244426836.,-6976719800008747.,-.376030852818317491021,-30,34, + 6904797244429320.,-7194458260130875.,.116810366228987290544,-30,35, + 6904797244467056.,-6885675904601966.,-.321107979734398760125,-30,38, + 5378363199848423.,5544728227232810.,-.327880610731822240761,-28,29, + 5378363199848445.,4513315703858834.,.053682178960166359078,-28,26, + 5378363199848447.,4523073793960235.,.142329562476434883307,-28,25, + 5378363199848449.,-8171929238594081.,-.113984766594289389243,-28,18, + 5378363199848585.,-8476827282174710.,.039437498390028363781,-28,32, + 5378363199849351.,-5112685136269085.,-.201300555410819131402,-28,34, + 5378363199895738.,-6241363707871663.,-.197986079758695149909,-28,40, + 5378363199848366.,-5839999819241155.,.169016620930099749246,-26,72, + 5378363199848395.,-7598612476173483.,.133570334946729609637,-26,73, + 5378363199848447.,-8968418614233199.,-.463885326291759486794,-26,78, + 5378363199848449.,4963921984997782.,-.433854448901622552100,-26,85, + 5378363199848453.,4513294787497450.,.159972989236112258525,-26,76, + 5378363199850028.,6944553314034002.,.241491739108168487482,-26,68, + 5378363199868106.,5403277538310056.,-.012161657698481010342,-26,64, + 5378363199886184.,5186260639347831.,-.357374387123812214159,-26,63, + 5560206444436797.,5836951338647943.,.433477278383488088537,-26,41, + 5560206444453934.,4529192643284706.,-.141845619092120007281,-26,39, + 5560206444461881.,5802042483161729.,-.243883235502276797066,-26,34, + 5560206444462064.,4586852804720960.,-.207051659076050458479,-26,30, + 5560206444462079.,6346729782909825.,-.464771884822265672149,-26,26, + 5560206444462081.,-6980126668868641.,-.152057015769621295768,-26,27, + 5560206444462083.,-5474824992164901.,.117719202269710800092,-26,28, + 5560206444462105.,-5698413323535399.,.477849189852812380391,-26,31, + 5560206444462146.,-8695990637177119.,-.203633744336333788653,-26,33, + 5560206444463124.,-8832190720787163.,-.329877707007043022025,-26,37, + 8249388044341772.,6627739631291997.,-.439492393118924338196,-26,42, + 8249388044375622.,6907466546546807.,.439756516495808773288,-26,40, + 8249388044385998.,7530382713785319.,-.333768267301250600564,-26,35, + 8249388044386294.,7060809314070133.,.100417671615381628459,-26,30, + 8249388044386295.,7827847689606283.,-.491783681022961031202,-26,30, + 8249388044386303.,7473066764022729.,.029308275294141035421,-26,27, + 8249388044386305.,-5666959616820497.,.003861098554828548187,-26,26, + 8249388044386375.,-8142709218224384.,.322351076560284650451,-26,33, + 8249388044386537.,-4952524461280004.,-.498257384415392124376,-26,34, + 8249388044390364.,-4543762766533515.,.171522533806996570371,-26,38, + 5560206444461399.,-5987584908334732.,-.404835899572454793096,-25,68, + 5560206444461877.,-7132209771678402.,-.372132820556351436839,-25,70, + 5560206444462043.,-5166416019384157.,-.045141772928873692933,-25,72, + 5560206444462079.,-6391452069778421.,.193363260541314611688,-25,78, + 5560206444462081.,5811473219851785.,-.061965265963232732892,-25,77, + 5560206444462083.,7409336237296411.,-.213805678948254754473,-25,76, + 5560206444462086.,7082367839176148.,.487074003067775090753,-25,75, + 8249388044386282.,-6250232981444723.,-.427132920766923118068,-25,73, + 8249388044386303.,-5428135528320563.,.322725689096762755002,-25,77, + 8249388044386305.,7158127452840865.,-.346923309286086485771,-25,78, + 8249388044386457.,5375985992902282.,-.257259631411442965034,-25,70, + 8249388044388293.,8746811653737648.,-.400684339240482775372,-25,67, + 8249388044391047.,5214757968497035.,.054084270238190588078,-25,65, + 8249388044445318.,8110802548366385.,-.108670451219620356153,-25,62, + 6904797244415493.,-4782302856494644.,-.437163393760356226985,-24,63, + 6904797244423823.,-6490767945007108.,.368000835305430586778,-24,68, + 6904797244424181.,-6168490881914608.,.284305966721235992318,-24,73, + 6904797244424191.,-8623861563209780.,.368481716696283019273,-24,77, + 6904797244424193.,4695268473136113.,-.091131793342289367598,-24,76, + 6904797244424195.,6851233863938625.,-.459474101909827677052,-24,75, + 6904797244425310.,4917203183300499.,.496175676071598990409,-24,66, + 6904797244430308.,6724660207515956.,.055326110066275709383,-24,64, + 8967144255519875.,5164211377367665.,-.092074641273271287729,-24,38, + 8967144255520608.,7205364773893031.,-.328125245084395173300,-24,36, + 8967144255520698.,8234122807497039.,.185013478546031842824,-24,35, + 8967144255520762.,5996042264363983.,.438564012089862951892,-24,31, + 8967144255520767.,8928954654720209.,-.194501816293631572300,-24,29, + 8967144255520769.,-4543413647863705.,-.306347976965473629445,-24,28, + 8967144255520775.,-5153422365355229.,-.052367600199106137243,-24,31, + 8967144255520788.,-7208917998088240.,.175757402660179072314,-24,33, + 8967144255583414.,-4711339506822437.,-.195916865236359349564,-24,44, + 5346671783299037.,5134431071385710.,-.437746985121545208939,-23,43, + 5346671783311549.,4961472050327988.,.410762450126288050912,-23,40, + 5346671783313403.,7207111990752357.,.259894219756638434787,-23,32, + 5346671783313404.,4504656385523774.,-.363235434054702337574,-23,31, + 5346671783313407.,4507829637668298.,.218031270391962223636,-23,29, + 5346671783313409.,-8998755096512838.,.128711761523848203309,-23,30, + 5346671783313446.,-7584822599546969.,.357020656121798115035,-23,35, + 5346671783313510.,-5651524010359640.,-.026234863286137714523,-23,36, + 5346671783320544.,-5170049663207357.,-.098188532785355772972,-23,42, + 8967144255489356.,-8634507579565364.,-.074223756943138904423,-23,61, + 8967144255520208.,-4925889180085157.,.323014590782948237945,-23,66, + 8967144255520669.,-6967122316560253.,-.413040393545197622380,-23,69, + 8967144255520731.,-5208520354476926.,.296364157112654849148,-23,70, + 8967144255520758.,-5634432675399782.,.164214147540517746119,-23,72, + 8967144255520766.,-4523332192106535.,-.070157081928304175183,-23,74, + 8967144255520767.,-4543064756842423.,-.119566574574281297904,-23,75, + 8967144255520769.,8928268995797223.,.113858553063290274628,-23,76, + 8967144255524295.,7755936209276240.,.061858992541977954642,-23,64, + 7804232761067576.,5167135265891055.,-.072203633716898120623,-22,44, + 7804232761077127.,7801537982558528.,-.070822027819012362337,-22,43, + 7804232761080439.,6509084115000399.,.456244423538320880967,-22,41, + 7804232761081209.,7127799899314376.,-.475525112953486611626,-22,40, + 7804232761081826.,4803852025947074.,.283369035146587380030,-22,35, + 7804232761081831.,5764625412815891.,.236988077165322006980,-22,35, + 7804232761081855.,4503949064528306.,.108139780978291741610,-22,30, + 7804232761081856.,-7085886911948954.,-.420693329238620208305,-22,17, + 7804232761081857.,-9006500488860408.,-.143340428928201799821,-22,31, + 7804232761099541.,-8344533638849070.,-.471658298512275170237,-22,45, + 5346671783304849.,-4705385620451255.,-.388897723924519694474,-21,60, + 5346671783311271.,-4699312260147474.,-.495289611661550007667,-21,62, + 5346671783312588.,-7212788391801689.,.109792439861578100485,-21,64, + 5346671783313403.,-5628443023977593.,-.475249682037170499203,-21,71, + 5346671783313407.,-8998747172772175.,-.250859853835793623967,-21,74, + 5346671783313409.,4507825668355587.,.043040080626852959800,-21,73, + 5346671783313416.,4504127882515443.,-.385151773121748401298,-21,70, + 5346671783313905.,8743333135732910.,.163425966368367109239,-21,65, + 5346671783331854.,5070528890621351.,-.287181745682265078066,-21,59, + 6467564815182273.,8283876277886440.,-.381368534252689220115,-21,48, + 6467564815241157.,5976036510995917.,.423760514373555615790,-21,45, + 6467564815252111.,6621227308541302.,-.178149777867248301881,-21,42, + 6467564815253152.,6550687383667525.,.145850107027980946103,-21,40, + 6467564815253499.,7205533138820455.,.197740240439785474501,-21,34, + 6467564815253502.,9006492210044782.,.105601349204485651735,-21,33, + 6467564815253503.,9005785276347445.,.045228107945525332162,-21,32, + 6467564815253505.,-4504306838607064.,.477621107044445750417,-21,31, + 6467564815255878.,-7770319045570660.,-.448209277101377661796,-21,43, + 6467564815246206.,-8024365600442563.,-.421507089594359391402,-20,60, + 6467564815251448.,-4521197952683329.,-.368968227864380921897,-20,61, + 6467564815253502.,-4503953177475578.,-.321964366145270394095,-20,71, + 6467564815253503.,-4504306727571101.,-.381182756744944556628,-20,72, + 6467564815253505.,9005785054345243.,-.428628288905393472245,-20,73, + 6467564815253583.,5559119752112946.,-.471036006033815968214,-20,66, + 6467564815254069.,4969791657457765.,-.083067108833227014344,-20,63, + 6467564815288061.,4751198119797883.,-.088373957052190686150,-20,57, + 5519007584347775.,5650418285768324.,-.008121233152215716886,-19,46, + 5519007584353484.,5624002750620022.,-.125362263183447839906,-19,43, + 5519007584353996.,7486502404265049.,-.469615847323092808843,-19,42, + 5519007584354286.,8006399129954780.,.057604741030761437602,-19,38, + 5519007584354295.,8006398927867046.,.233030997701951167209,-19,37, + 5519007584354303.,9007195114679300.,.333724968447958427249,-19,34, + 5519007584354304.,4672117638750634.,-.477187024244697642458,-19,12, + 5519007584354305.,-4503601697392322.,-.092745876258986587826,-19,33, + 5519007584354363.,-4885260630177396.,-.292302326837646128679,-19,39, + 5519007584365414.,-6640497880278717.,.028291564831857628488,-19,47, + 7304668022910926.,5764607505887093.,-.294945802927206893587,-19,39, + 7304668022910975.,4503599640221461.,-.464559316315771183933,-19,33, + 7304668022910977.,-9007199229017218.,.257409750985191862444,-19,34, + 7304668022910980.,-9007199248138016.,-.421766991752266590547,-19,36, + 7304668022911000.,-6004799498252111.,-.452774724697513970375,-19,38, + 7304668022911079.,-5596706260885612.,.072745132513929029351,-19,40, + 7304668022911464.,-4725086769059998.,.197344831304136656003,-19,42, + 7304668022952407.,-7109007266081491.,.458101059712019311262,-19,49, + 7304668022969954.,-4983246026777275.,.223507833429994878095,-19,49, + 7804232761081068.,-6931325838302882.,.164857662830687432852,-19,62, + 7804232761081789.,-4714700426036525.,.217008921864378524785,-19,65, + 7804232761081841.,-8444205627367776.,.222843461055110388915,-19,68, + 7804232761081854.,-9006849844737730.,.200055242345107621459,-19,71, + 7804232761081855.,-9006500434658017.,.440096812112220819052,-19,72, + 7804232761081857.,4503949037422906.,.386912331419155669985,-19,71, + 7804232761081966.,7740567432653933.,-.448079344948849913798,-19,65, + 7804232761091123.,5095117786167553.,-.457046032919746426528,-19,58, + 5519007584317621.,-5074841083779661.,.044840998378648136719,-18,55, + 5519007584354282.,-6192449631549148.,-.283006521956358279366,-18,66, + 5519007584354299.,-5629500052402371.,.154967643917605087686,-18,68, + 5519007584354303.,-4503601697418677.,-.323450452016425223018,-18,70, + 5519007584354305.,9007195114732011.,-.313567006690771345179,-18,71, + 5519007584354523.,7705379263872952.,.400577206320025658712,-18,63, + 5519007584354678.,6579482036625076.,.438018679796318857941,-18,62, + 5519007584356245.,8536764283305673.,.095642572334532697371,-18,60, + 5519007584369642.,8441790079967594.,.443802088660729280532,-18,57, + 7304668022905092.,-8334708550709740.,-.254711256149588163166,-12,50, + 7304668022910624.,-6207738926316893.,.398408433493500245200,-12,56, + 7304668022910945.,-8725890884391357.,-.327842391447881155460,-12,60, + 7304668022910968.,-4503605352395236.,-.120714455666446345787,-12,61, + 7304668022910974.,-4503599978856257.,-.018035735104713068632,-12,63, + 7304668022910975.,-4503599703992557.,.131693193944092826205,-12,64, + 7304668022910977.,4503599729705410.,.065026634588833012605,-12,64, + 7304668022911117.,4962956987427743.,.271511963971741611208,-12,57, + 7304668022912275.,5912629109795570.,-.228945767502102296736,-12,54, + 7304668022937705.,8910440764239128.,-.453289856913869606462,-12,55, + 7347785269663743.,9007199069152711.,-.339908477960887522447,-12,41, + 7347785269663745.,-9007199082415331.,.405882836229947425180,-12,41, + 4586976137695743.,9007198538811549.,.487870127338190896674,-11,42, + 4586976137695745.,-9007198539014646.,-.423242756817044814822,-11,42, + 5500059640559615.,9007198542025656.,.202393109487048584510,-11,42, + 5500059640559617.,-9007198535800540.,.289131343103266838493,-11,42, + 7347785269663743.,-4503599988600127.,-.174814086235690436078,-11,63, + 7347785269663745.,4503599981968816.,-.241474163816104024129,-11,63, + 5500059640559615.,-4503601057470527.,.016505938255987991897,-10,62, + 5500059640559617.,4503601060583088.,-.049739100237851206258,-10,62, + 4586976137695743.,-4503605354053070.,.096344456858659780877,-9,61, + 4586976137695745.,4503605353951521.,.056661958893291008765,-9,61, + 8944333985714495.,9007016002061503.,-.448352267277508120926,-7,46, + 8944333985714497.,-9007016002053239.,-.357294069683274044015,-7,46, + 8944333985714495.,-4503966167039286.,-.419127999463682470551,-6,58, + 8944333985714497.,4503966167043419.,-.058917655109096991966,-6,58, + 6851593493588863.,9004267032828324.,-.224958905488241596223,-5,48, + 6851593493588865.,-9004267032828473.,-.332764975028978498827,-5,48, + 6851593493588863.,-4509472866492198.,-.035995439005548826690,-4,56, + 6851593493588865.,4509472866492123.,-.011299577748520475219,-4,56, + 5706674932067740.,8818762712042033.,.278592352709894862858,-2,51, + 5706674932067742.,-8818762712042025.,-.483864341226089510672,-2,51, + 6134899525417044.,8243783821410466.,-.286487303439352559879,-1,52, + 6134899525417046.,-8243783821410468.,.425883770471347606532,-1,52 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/tanh.c b/src/regress/lib/libm/fpaccuracy/tanh.c new file mode 100644 index 000000000..96e9e6587 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/tanh.c @@ -0,0 +1,823 @@ +/* $OpenBSD: tanh.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 17:45:14. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 792 +#define F tanh +#define Fs "tanh" +#define Fn fpaccuracy_tanh + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -5198392540217939.,-9007199254740990.,-.362538495704861919879,-48,53, + -5198392540059603.,-9007199254740990.,-.362538493862644129014,-48,53, + -5198392540058020.,-9007199254740990.,-.362538493844226139645,-48,53, + -5198392540058004.,-9007199254740990.,-.362538493844039981825,-48,53, + -5198392540058003.,-9007199254740990.,-.362538493844028346961,-48,53, + -5170245042386939.,-9007199254740990.,-.000000000000013084933,-48,53, + -5170245042386938.,-9007199254740990.,.000000000000001125922,-48,53, + -5170245042386937.,-9007199254740990.,.000000000000015336777,-48,53, + -5170245042386867.,-9007199254740990.,.000000000001010096607,-48,53, + -5170245042379833.,-9007199254740990.,.000000000100969248676,-48,53, + -5170245041676395.,-9007199254740990.,.000000010097424493315,-48,53, + -4860675792475293.,-9007199254740974.,.043202083237006795207,-48,53, + -4860675792475287.,-9007199254740974.,.043202083237776023177,-48,53, + -4860675792474707.,-9007199254740974.,.043202083312134726964,-48,53, + -4860675792416729.,-9007199254740974.,.043202090745184604624,-48,53, + -4860675786618940.,-9007199254740974.,.043202834048777582931,-48,53, + -4758887567364826.,-9007199254740955.,.189179203397306702574,-48,53, + -4758887567364818.,-9007199254740955.,.189179203399420662665,-48,53, + -4758887567364005.,-9007199254740955.,.189179203614251856868,-48,53, + -4758887567282693.,-9007199254740955.,.189179225100542223533,-48,53, + -4758887559151599.,-9007199254740955.,.189181373701631607192,-48,53, + -4521660616471964.,-9007199254740791.,-.339042714539676007146,-48,53, + -4521660593752499.,-9007199254740791.,-.339010321536097748278,-48,53, + -4521660593525258.,-9007199254740791.,-.339009997539950558192,-48,53, + -4521660593522986.,-9007199254740791.,-.339009994300573654305,-48,53, + -4521660593522963.,-9007199254740791.,-.339009994267780666282,-48,53, + -8934765667495170.,-9007199254740697.,.090930093617446344820,-49,53, + -8934765667495127.,-9007199254740697.,.090930093662526408925,-49,53, + -8934765667490881.,-9007199254740697.,.090930098113920645917,-49,53, + -8934765667066312.,-9007199254740697.,.090930543220845103015,-49,53, + -8934765624614075.,-9007199254740697.,.090975049028114550446,-49,53, + -8710724181363822.,-9007199254740338.,.085972243523555959855,-49,53, + -8710724181363821.,-9007199254740338.,.085972243525879740036,-49,53, + -8710724181363726.,-9007199254740338.,.085972243746638857202,-49,53, + -8710724181354201.,-9007199254740338.,.085972265880645078761,-49,53, + -8710724180401718.,-9007199254740338.,.085974479241766753948,-49,53, + -8710724085204798.,-9007199254740338.,.086195695995891239155,-49,53, + -8694069328059213.,-9007199254740298.,-.043884747341964906723,-49,53, + -8694069328059212.,-9007199254740298.,-.043884747339499479340,-49,53, + -8694069328059079.,-9007199254740298.,-.043884747011597637381,-49,53, + -8694069328045804.,-9007199254740298.,-.043884714283049125340,-49,53, + -8694069326718313.,-9007199254740298.,-.043881441450378972858,-49,53, + -8694069194049833.,-9007199254740298.,-.043554356868265641875,-49,53, + -8270488864669443.,-9007199254737867.,.247722905693945369641,-49,53, + -8270488864669440.,-9007199254737867.,.247722905727254700645,-49,53, + -8270488864669163.,-9007199254737867.,.247722908802816263388,-49,53, + -8270488864641432.,-9007199254737867.,.247723216703168973346,-49,53, + -8270488861868728.,-9007199254737867.,.247754002341761421703,-49,53, + -8270488587974471.,-9007199254737867.,.250795082007149297367,-49,53, + -8100659584378027.,-9007199254735278.,-.291093915989397114366,-49,53, + -8100659164728899.,-9007199254735278.,-.282575379899612861311,-49,53, + -8100659160359506.,-9007199254735278.,-.282486684707576161463,-49,53, + -8100659160315795.,-9007199254735278.,-.282485797409141457009,-49,53, + -8100659160315357.,-9007199254735278.,-.282485788518090819160,-49,53, + -8100659160315353.,-9007199254735278.,-.282485788436894009681,-49,53, + -7662718723400723.,-9007199254713913.,-.316116056501347312123,-49,53, + -7662716988129843.,-9007199254713913.,-.149177606046010566657,-49,53, + -7662716954720126.,-9007199254713913.,-.145963477362445235049,-49,53, + -7662716954382937.,-9007199254713913.,-.145931038629077606951,-49,53, + -7662716954379565.,-9007199254713913.,-.145930714231161358751,-49,53, + -7662716954379531.,-9007199254713913.,-.145930710960245239977,-49,53, + -7295366434393840.,-9007199254641124.,-.495953676976696019138,-49,53, + -7295366308157190.,-9007199254641124.,-.451164821750833191756,-49,53, + -7295366291025262.,-9007199254641124.,-.445086399689189070338,-49,53, + -7295366290832379.,-9007199254641124.,-.445017964640979813606,-49,53, + -7295366290830448.,-9007199254641124.,-.445017279520579686037,-49,53, + -7295366290830428.,-9007199254641124.,-.445017272424563112967,-49,53, + -7246054925574116.,-9007199254622003.,.353154785460823303539,-49,53, + -7246054925574115.,-9007199254622003.,.353154785883558406121,-49,53, + -7246054925574054.,-9007199254622003.,.353154811670399663616,-49,53, + -7246054925567908.,-9007199254622003.,.353157409800340160527,-49,53, + -7246054924954457.,-9007199254622003.,.353416737072042401871,-49,53, + -7246054872909006.,-9007199254622003.,.375418178221942549413,-49,53, + -7246054596612839.,-9007199254622003.,.492218345901009858011,-49,53, + -7099320961897334.,-9007199254540588.,.491115583387081944022,-49,53, + -7099320961897328.,-9007199254540588.,.491115587658960605251,-49,53, + -7099320961896701.,-9007199254540588.,.491116034070280704166,-49,53, + -7099320961834398.,-9007199254540588.,.491160392546324136127,-49,53, + -7099320957699669.,-9007199254540588.,.494104235999448146756,-49,53, + -7099320949660269.,-9007199254540588.,.499828126384731549663,-49,53, + -7080822419277697.,-9007199254526974.,-.496203636919422427492,-49,53, + -7080822238202379.,-9007199254526974.,-.358524257831894196657,-49,53, + -7080822132320033.,-9007199254526974.,-.278017299481575143831,-49,53, + -7080822130649177.,-9007199254526974.,-.276746874664004887899,-49,53, + -7080822130632372.,-9007199254526974.,-.276734097088245354144,-49,53, + -7080822130632204.,-9007199254526974.,-.276733969350504939601,-49,53, + -7080822130632202.,-9007199254526974.,-.276733967829817553713,-49,53, + -5954431418680794.,-9007199243035627.,-.499999815257581420104,-49,53, + -5954431418680350.,-9007199243035627.,-.499981351158586326691,-49,53, + -5954431418638413.,-9007199243035627.,-.498237367105398203109,-49,53, + -5954431418019728.,-9007199243035627.,-.472508851112054045882,-49,53, + -5954431417906743.,-9007199243035627.,-.467810278521339619013,-49,53, + -5954431417905417.,-9007199243035627.,-.467755135739053895791,-49,53, + -5954431417905404.,-9007199243035627.,-.467754595123541289375,-49,53, + -5199688399509103.,-9007199083780399.,.118606612706483382460,-49,53, + -5199688399509080.,-9007199083780399.,.118620582309218099807,-49,53, + -5199688399506795.,-9007199083780399.,.120008431972216360972,-49,53, + -5199688399339881.,-9007199083780399.,.221387661171041936356,-49,53, + -5199688398897737.,-9007199083780399.,.489934445523349414374,-49,53, + -5199688398881335.,-9007199083780399.,.499896594417226433858,-49,53, + -5199688398881166.,-9007199083780399.,.499999240628853965552,-49,53, + -5199688398881165.,-9007199083780399.,.499999848002887264740,-49,53, + -4541347061000677.,-9007197481913029.,.499997316230593850544,-49,53, + -4541347061000672.,-9007197481913028.,-.499971192021724874195,-49,53, + -4541347061000273.,-9007197481913028.,-.497458150556757304936,-49,53, + -4541347060988923.,-9007197481913028.,-.425971883318719213963,-49,53, + -4541347060984325.,-9007197481913028.,-.397012072149572886200,-49,53, + -4541347060984261.,-9007197481913028.,-.396608977779229103271,-49,53, + -4541347060984260.,-9007197481913028.,-.396602679429692480936,-49,53, + -8923654176309387.,-9007196903160494.,-.499999750429273650928,-50,53, + -8923654176309335.,-9007196903160494.,-.499782533660421904300,-50,53, + -8923654176304449.,-9007196903160494.,-.479372511879377889103,-50,53, + -8923654176231826.,-9007196903160494.,-.176008407927924883725,-50,53, + -8923654176218451.,-9007196903160494.,-.120137748623563983089,-50,53, + -8923654176218294.,-9007196903160494.,-.119481921071347901828,-50,53, + -8923654176218292.,-9007196903160494.,-.119473566580236867766,-50,53, + -8645093442134567.,-9007195397659389.,-.499998843769261790033,-50,53, + -8645093442134561.,-9007195397659389.,-.499957734458355394485,-50,53, + -8645093442133954.,-9007195397659389.,-.495798842504989447215,-50,53, + -8645093442114549.,-9007195397659389.,-.362844479479452964740,-50,53, + -8645093442105289.,-9007195397659389.,-.299399109644471638709,-50,53, + -8645093442105153.,-9007195397659389.,-.298467298597211436924,-50,53, + -8645093442105152.,-9007195397659389.,-.298460447045393346371,-50,53, + -8369410151356167.,-9007192960578597.,-.499994696140536740508,-50,53, + -8369410151356166.,-9007192960578597.,-.499983515466025461115,-50,53, + -8369410151356053.,-9007192960578597.,-.498720099246250761787,-50,53, + -8369410151349775.,-9007192960578597.,-.428527824664033190114,-50,53, + -8369410151341962.,-9007192960578597.,-.341173214705809322874,-50,53, + -8369410151341786.,-9007192960578597.,-.339205415991774190132,-50,53, + -8369410151341784.,-9007192960578597.,-.339183054642751060088,-50,53, + -6617561264092548.,-9007057864483196.,.499998075335179041617,-50,53, + -6617561264036806.,-9007057864483181.,-.499976089780585726753,-50,53, + -6617561264036805.,-9007057864483181.,-.499724932200384489592,-50,53, + -6617561264036689.,-9007057864483181.,-.470590652897037951385,-50,53, + -6617561264036000.,-9007057864483181.,-.297543080138243840728,-50,53, + -6617561264035950.,-9007057864483181.,-.284985201128163456762,-50,53, + -6617561264028843.,-9007057864483180.,.499991721376008692211,-50,53, + -6447800037067496.,-9007008101081007.,-.499852015516510879147,-50,53, + -6447800037067466.,-9007008101081007.,-.489665410270657241627,-50,53, + -6447800037067151.,-9007008101081007.,-.382706055189161273707,-50,53, + -6447800037067111.,-9007008101081007.,-.369123914861347979505,-50,53, + -6447800037061606.,-9007008101081005.,-.499881852236837637782,-50,53, + -6447800037038046.,-9007008101080998.,.499998801091102600815,-50,53, + -4970868887810965.,-9004564622973500.,-.499945588410390327299,-50,53, + -4970868887810767.,-9004564622973500.,.426568027394402745079,-50,53, + -4970868887810752.,-9004564622973500.,.496758452834173070898,-50,53, + -4970868887810751.,-9004564622973499.,-.498562185469842174236,-50,53, + -4970868887795792.,-9004564622973429.,-.499990574304084720255,-50,53, + -4970868887771216.,-9004564622973314.,-.499997528218230036275,-50,53, + -7898514054212838.,-8991036019056069.,.499984645942424310602,-51,53, + -7898514054211095.,-8991036019056044.,.499757823977391349415,-51,53, + -7898514054210609.,-8991036019056037.,.470434682575784504425,-51,53, + -7898514054210607.,-8991036019056037.,.499120595574138006886,-51,53, + -7898514054209840.,-8991036019056025.,-.499831769553543632444,-51,53, + -7898514054190876.,-8991036019055754.,.499995283306163004657,-51,53, + -7479486802602241.,-8983757806293395.,.499997771978104304086,-51,53, + -7479486802553571.,-8983757806292383.,.499986038750878794094,-51,53, + -7479486802545347.,-8983757806292211.,-.497591448085505752090,-51,53, + -7479486802545343.,-8983757806292211.,-.414419063594364299589,-51,53, + -7479486802545299.,-8983757806292210.,-.499522834191788870649,-51,53, + -7479486802544770.,-8983757806292199.,-.499974985235306223341,-51,53, + -7007318155555217.,-8971568896722918.,-.493159029625372351952,-51,53, + -7007318155555216.,-8971568896722918.,-.461575506835000126582,-51,53, + -7007318155555154.,-8971568896722917.,.496602906168132414835,-51,53, + -7007318155555059.,-8971568896722914.,.497037571253785806765,-51,53, + -7007318155554489.,-8971568896722896.,.499645561773001645488,-51,53, + -7007318155554394.,-8971568896722892.,-.499919773139579800202,-51,53, + -7007318155549803.,-8971568896722747.,-.499966642140727363244,-51,53, + -7007318155545212.,-8971568896722603.,.499986489447041947296,-51,53, + -7007318155503798.,-8971568896721295.,.499999365459944594203,-51,53, + -6668307947066446.,-8959083729348889.,-.499988732086871514477,-51,53, + -6668307947059853.,-8959083729348608.,-.499551940578712427758,-51,53, + -6668307947059759.,-8959083729348604.,-.493175320151018248835,-51,53, + -6668307947059712.,-8959083729348602.,-.489987009937046396624,-51,53, + -6668307947059548.,-8959083729348596.,.499861561874060046819,-51,53, + -6668307947039159.,-8959083729347727.,.499998951816111207237,-51,53, + -5732469775420448.,-8897104604135401.,.499993393912230160341,-51,53, + -5732469775359678.,-8897104604129495.,.498660445778318663273,-51,53, + -5732469775359616.,-8897104604129488.,-.475801996759333781863,-51,53, + -5732469775359606.,-8897104604129488.,.496058899605591679918,-51,53, + -5732469775358968.,-8897104604129425.,-.499215912294538866011,-51,53, + -5732469775357795.,-8897104604129311.,-.499932768565814854040,-51,53, + -5732469775349337.,-8897104604128489.,-.499986618752454083835,-51,53, + -8871213671077806.,-6802059997321753.,-.499823668317865159367,-53,53, + -8871213671077792.,-6802059997321747.,-.483986984688380132081,-53,53, + -8871213671077771.,-6802059997321738.,-.460231959244126111259,-53,53, + -8871213671077301.,-6802059997321537.,.499999562611777845074,-53,53, + -8108579655032938.,-6452860156901222.,.499999265980760838032,-53,53, + -8108579655010707.,-6452860156890400.,-.455880711694754626913,-53,53, + -8108579655010703.,-6452860156890399.,.491138157459392593061,-53,53, + -8108579655010666.,-6452860156890380.,-.498937302864686891039,-53,53, + -8108579655010364.,-6452860156890233.,-.499012681722128812615,-53,53, + -8108579655007042.,-6452860156888616.,-.499841848687898969012,-53,53, + -8108579655006438.,-6452860156888322.,-.499992606226233198172,-53,53, + -7881394195573244.,-6340265883086220.,.499998105036027550288,-53,53, + -7881394195507955.,-6340265883053281.,.415621260145385049681,-53,53, + -7881394195507937.,-6340265883053272.,.496790847975156867631,-53,53, + -7881394195507826.,-6340265883053216.,.497336639592647638051,-53,53, + -7881394195507271.,-6340265883052935.,-.499934402305324991115,-53,53, + -7881394195503612.,-6340265883051089.,-.499960964408532652629,-53,53, + -7881394195499953.,-6340265883049243.,-.499987525456012348595,-53,53, + -7552125243412388.,-6169836976794280.,-.499990372407052760489,-53,53, + -7552125243332198.,-6169836976751716.,-.499982844090967423354,-53,53, + -7552125243331987.,-6169836976751605.,.496575350738666776105,-53,53, + -7552125243331955.,-6169836976751588.,.481835361329256939289,-53,53, + -7552125243331857.,-6169836976751536.,.499194143763453577654,-53,53, + -7109328173647917.,-5926817210715434.,.499865426196843937021,-53,53, + -7109328173647820.,-5926817210715378.,-.498777791743058516861,-53,53, + -7109328173647723.,-5926817210715323.,-.497421009682181468937,-53,53, + -7109328173647709.,-5926817210715316.,.440919144429762064274,-53,53, + -7109328173647171.,-5926817210715011.,.499990781029608108653,-53,53, + -7109328173599263.,-5926817210687846.,.499998249337043917534,-53,53, + -7006352135983595.,-5867987294157613.,.499777555924540561656,-53,53, + -7006352135983079.,-5867987294157316.,.497570871023089939653,-53,53, + -7006352135983020.,-5867987294157282.,.456620881859413912989,-53,53, + -7006352135983013.,-5867987294157278.,.485660713653573278777,-53,53, + -7006352135982252.,-5867987294156840.,.499848141585800992678,-53,53, + -7006352135979566.,-5867987294155294.,.499989313358844287971,-53,53, + -7006352135951019.,-5867987294138862.,-.499999469104056975634,-53,53, + -6828286958455073.,-5764173538877589.,.499994912074932309125,-53,53, + -6828286958433434.,-5764173538864811.,-.499916329161960927931,-53,53, + -6828286958433036.,-5764173538864576.,-.496171454909467172552,-53,53, + -6828286958433014.,-5764173538864564.,.493985296934023130742,-53,53, + -6828286958432997.,-5764173538864553.,-.468166303914161093667,-53,53, + -6828286958432826.,-5764173538864452.,-.499220641856312571131,-53,53, + -6828286958432113.,-5764173538864032.,.499950452013673068251,-53,53, + -6828286958417687.,-5764173538855513.,-.499990352052316232031,-53,53, + -6595469068473402.,-5624422941531691.,.499998945941930000272,-53,53, + -6595469068453421.,-5624422941519501.,.492516108327675602863,-53,53, + -6595469068453403.,-5624422941519490.,.473941728127843754786,-53,53, + -6595469068453380.,-5624422941519475.,-.494236646571901500641,-53,53, + -6595469068453321.,-5624422941519439.,-.499563781671043404285,-53,53, + -6595469068452190.,-5624422941518749.,-.499987337497670289941,-53,53, + -6056160701831282.,-5283046495579544.,.499988437520534209228,-53,53, + -6056160701828663.,-5283046495577826.,.499920309347698039073,-53,53, + -6056160701828451.,-5283046495577686.,-.433265808676547016554,-53,53, + -6056160701828445.,-5283046495577682.,-.497412585601705626481,-53,53, + -6056160701828320.,-5283046495577601.,.499529561791522811039,-53,53, + -6056160701787788.,-5283046495551012.,-.499997422677376281402,-53,53, + -5817642592577862.,-5124153672467432.,.499991286926821682304,-53,53, + -5817642592575248.,-5124153672465663.,-.499952590620853269919,-53,53, + -5817642592568713.,-5124153672461243.,-.499812281935937010385,-53,53, + -5817642592568197.,-5124153672460894.,-.499036092142958212457,-53,53, + -5817642592568129.,-5124153672460849.,.493314258451611412433,-53,53, + -5817642592568067.,-5124153672460807.,.427516048699945678267,-53,53, + -5817642592568061.,-5124153672460803.,.485664609046576101016,-53,53, + -5817642592567922.,-5124153672460709.,.499439590411041892598,-53,53, + -5817642592541782.,-5124153672443028.,-.499999136595526144539,-53,53, + -5587044502294022.,-4965916700933052.,-.499984968067312646551,-53,53, + -5587044502247253.,-4965916700900499.,-.499644200422194645781,-53,53, + -5587044502247026.,-4965916700900341.,-.499022477154384109908,-53,53, + -5587044502246980.,-4965916700900309.,-.481275343804424924400,-53,53, + -5587044502245789.,-4965916700899481.,.499960217558372713427,-53,53, + -5587044502240943.,-4965916700896107.,-.499983080637614134608,-53,53, + -5574097035227097.,-4956897630604025.,-.499962628993808461249,-53,53, + -5574097035223914.,-4956897630601806.,-.499883412077477930717,-53,53, + -5574097035223739.,-4956897630601685.,.499806774237328849098,-53,53, + -5574097035223564.,-4956897630601563.,.499496960554744527405,-53,53, + -5574097035223541.,-4956897630601546.,-.466258043529058294896,-53,53, + -5574097035223531.,-4956897630601539.,-.494847175739393291963,-53,53, + -5574097035204466.,-4956897630588249.,.499972280746971435253,-53,53, + -5574097035152838.,-4956897630552256.,-.499999297365646470304,-53,53, + -5292230209322117.,-4757019702034966.,.499999025388947924460,-53,53, + -5292230209317234.,-4757019702031444.,-.499927546930883379292,-53,53, + -5292230209316750.,-4757019702031096.,.499465354878145915408,-53,53, + -5292230209316560.,-4757019702030958.,-.496640737381490194507,-53,53, + -5292230209316517.,-4757019702030927.,-.490496326681931605789,-53,53, + -5292230209316510.,-4757019702030922.,-.442984445870360758472,-53,53, + -5292230209316413.,-4757019702030852.,-.498891240338166782402,-53,53, + -5268565944195876.,-4739932366203637.,-.499982648223088346011,-53,53, + -5268565944195746.,-4739932366203544.,.499553085217077409720,-53,53, + -5268565944194056.,-4739932366202322.,.493517620069169299396,-53,53, + -5268565944193861.,-4739932366202181.,.492821220259938864510,-53,53, + -5268565944191568.,-4739932366200522.,-.499983111614774217043,-53,53, + -5268565944109716.,-4739932366141337.,-.499991618129748746523,-53,53, + -4510984822819105.,-8336374367100174.,.499995112848701513438,-53,54, + -4510984822793611.,-8336374367060104.,-.499967743609179746825,-53,54, + -4510984822793604.,-8336374367060093.,-.498045712528444165782,-53,54, + -4510984822793527.,-8336374367059972.,-.476903370639830488521,-53,54, + -4510984822793520.,-8336374367059961.,-.474981339558999946426,-53,54, + -4510984822784246.,-8336374367045385.,-.499993297805549031214,-53,54, + -8854767244013901.,-8204415098718608.,.499923092266514588193,-54,54, + -8854767244013443.,-8204415098718244.,-.499550034257425112907,-54,54, + -8854767244013120.,-8204415098717988.,-.496995055796546134711,-54,54, + -8854767244013115.,-8204415098717985.,.465892792167277423526,-54,54, + -8854767244012985.,-8204415098717881.,-.499023160772958399075,-54,54, + -8854767244011934.,-8204415098717048.,-.499997518749531866657,-54,54, + -8677896347105351.,-8063606073864494.,.499996572117585176603,-54,54, + -8677896347049263.,-8063606073819644.,.499964053814737762788,-54,54, + -8677896347030567.,-8063606073804694.,.499953242160929490558,-54,54, + -8677896347028915.,-8063606073803373.,.499096489467039978947,-54,54, + -8677896347028860.,-8063606073803329.,.479092178695198431613,-54,54, + -8677896347028855.,-8063606073803325.,.477273604988673342641,-54,54, + -8677896347028366.,-8063606073802934.,.499417096495319385177,-54,54, + -8677896347027268.,-8063606073802055.,-.499941689412190066058,-54,54, + -8644717199290442.,-8037052962139975.,-.499999872864457110866,-54,54, + -8644717199270100.,-8037052962123683.,.499981923613562253644,-54,54, + -8644717199269261.,-8037052962123010.,-.499871348708930889150,-54,54, + -8644717199267613.,-8037052962121691.,.471811377489809425604,-54,54, + -8644717199267598.,-8037052962121679.,.486116742109831616078,-54,54, + -8644717199267583.,-8037052962121666.,-.499577893270137267031,-54,54, + -8607732457472824.,-8007402779738183.,.499999642125316757970,-54,54, + -8607732457396779.,-8007402779677163.,.499972644249005978246,-54,54, + -8607732457383134.,-8007402779666213.,-.484317796192525426467,-54,54, + -8607732457383104.,-8007402779666189.,-.411729207925937755269,-54,54, + -8607732457383058.,-8007402779666153.,.499573294082899226201,-54,54, + -8607732457381570.,-8007402779664959.,.499967272153080924644,-54,54, + -7684108841989111.,-7249663942490369.,.499999677544555307221,-54,54, + -7684108841965549.,-7249663942470623.,.499959048345874660143,-54,54, + -7684108841900099.,-7249663942415773.,.499846298530203803777,-54,54, + -7684108841897481.,-7249663942413579.,.499841791873822125099,-54,54, + -7684108841897197.,-7249663942413340.,-.495575045349255456356,-54,54, + -7684108841897185.,-7249663942413330.,-.439043362414952798341,-54,54, + -7684108841897092.,-7249663942413253.,.499077180326075618693,-54,54, + -7492339963687939.,-7088267790078721.,-.499987218230655250257,-54,54, + -7492339963682985.,-7088267790074535.,.497646781334164160899,-54,54, + -7492339963682927.,-7088267790074485.,-.482195210591280959356,-54,54, + -7492339963682830.,-7088267790074404.,.499793182223338378356,-54,54, + -7492339963681887.,-7088267790073607.,.499948382490783691707,-54,54, + -7492339963655793.,-7088267790051552.,-.499998798781317544575,-54,54, + -7298995560631244.,-6924171210793571.,.499998522096715421368,-54,54, + -7298995560595370.,-6924171210762996.,-.499981497565391972777,-54,54, + -7298995560588757.,-6924171210757361.,.499966440029048057586,-54,54, + -7298995560586855.,-6924171210755740.,.499800249079736236377,-54,54, + -7298995560586767.,-6924171210755665.,.498741035200933613906,-54,54, + -7298995560586591.,-6924171210755515.,.496622607444173292326,-54,54, + -7298995560586564.,-6924171210755491.,-.492338742268411860637,-54,54, + -7298995560586557.,-6924171210755486.,.473486092991292612795,-54,54, + -4924871031127290.,-4805737233963799.,.499998372395363811950,-54,54, + -4924871031076986.,-4805737233917075.,.499968984684662350955,-54,54, + -4924871031067417.,-4805737233908186.,-.499957081126831785635,-54,54, + -4924871031066981.,-4805737233907782.,.471098644223815324251,-54,54, + -4924871031066883.,-4805737233907691.,.496702912766653074953,-54,54, + -4924871031066869.,-4805737233907677.,-.499639334584348535808,-54,54, + -4517699360182108.,-8850627604415733.,-.499999560686776995758,-54,55, + -4517699360174883.,-8850627604402155.,-.499949311427838237290,-54,55, + -4517699360174825.,-8850627604402047.,.499912683663543270666,-54,55, + -4517699360174477.,-8850627604401393.,.499084654215453145382,-54,55, + -4517699360174444.,-8850627604401330.,-.483752486507750430583,-54,55, + -4517699360174419.,-8850627604401284.,.498946649308041595665,-54,55, + -4514338150834304.,-8844310567444926.,.480508280569531896399,-54,55, + -4514338150834271.,-8844310567444863.,-.496645477732611448680,-54,55, + -4514338150834188.,-8844310567444707.,-.499789778916543579162,-54,55, + -4514338150831956.,-8844310567440513.,.499992386968364341021,-54,55, + -4514338150776936.,-8844310567337104.,.499999083678083386649,-54,55, + -8341071156536190.,-8195178109696504.,.499994423113529170128,-55,55, + -8341071156518679.,-8195178109679899.,.499951054962951331820,-55,55, + -8341071156515258.,-8195178109676654.,-.498858170948544918867,-55,55, + -8341071156515239.,-8195178109676636.,-.481897450484054952591,-55,55, + -8341071156515200.,-8195178109676599.,-.499714919004298848340,-55,55, + -8341071156514021.,-8195178109675481.,-.499889159646151908299,-55,55, + -6979532375142598.,-6893514532544608.,-.494877816364523340462,-55,55, + -6979532375142571.,-6893514532544582.,-.483307165023105415783,-55,55, + -6979532375142434.,-6893514532544450.,-.498670897105425440713,-55,55, + -6979532375142352.,-6893514532544372.,.499432562524226712310,-55,55, + -6979532375140795.,-6893514532542871.,-.499993210104565998281,-55,55, + -5360050515984907.,-5320853020950966.,-.499659502614876885284,-55,55, + -5360050515984586.,-5320853020950653.,.499212231375571361572,-55,55, + -5360050515984542.,-5320853020950609.,-.460443979541561368738,-55,55, + -5360050515984540.,-5320853020950608.,.495935283598569330589,-55,55, + -5360050515983073.,-5320853020949172.,-.499875203106921858444,-55,55, + -5360050515982156.,-5320853020948275.,-.499983053342829372191,-55,55, + -5360050515944926.,-5320853020911857.,-.499999693540156198571,-55,55, + -5003579018617055.,-4971657451853968.,-.494504779823529559438,-55,55, + -5003579018616897.,-4971657451853814.,.496926333044881224817,-55,55, + -5003579018616372.,-4971657451853298.,-.499900665334052196471,-55,55, + -5003579018565956.,-4971657451803842.,-.499957703822651164756,-55,55, + -5003579018528144.,-4971657451766751.,.499999529844861217223,-55,55, + -5370993780301557.,-5368508462277353.,.499993063148455368448,-57,57, + -5370993780295792.,-5368508462271595.,-.499953571895518113963,-57,57, + -5370993780293630.,-5368508462269437.,.499892980586777210438,-57,57, + -5370993780293177.,-5368508462268984.,-.128723814845627569419,-57,57, + -5370993780293003.,-5368508462268810.,-.370179272693807866922,-57,57, + -5370993780292911.,-5368508462268718.,-.497845376843414121166,-57,57, + -5370993780292909.,-5368508462268717.,.499379273066377095747,-57,57, + -5370993780282100.,-5368508462257923.,.499999710563172454607,-57,57, + -8242701861718030.,-8242701861718030.,.000000000000000113446,-105,105, + -8178102513290524.,-8178102513290524.,.000000000000000110799,-105,105, + -8003544517553197.,-8003544517553197.,.000000000000000103855,-105,105, + -6848882081658556.,-6848882081658556.,.000000000000000065079,-105,105, + -6751453641065261.,-6751453641065261.,.000000000000000062341,-105,105, + -6471417749983855.,-6471417749983855.,.000000000000000054901,-105,105, + -6031878638313244.,-6031878638313244.,.000000000000000044457,-105,105, + -5840746347509200.,-5840746347509200.,.000000000000000040363,-105,105, + -5301224375153928.,-5301224375153928.,.000000000000000030179,-105,105, + -5286632173730733.,-5286632173730733.,.000000000000000029931,-105,105, + -4827510902874277.,-4827510902874277.,.000000000000000022790,-105,105, + -4508444030594628.,-4508444030594628.,.000000000000000018563,-105,105, + -7501948289004415.,-7501948289004415.,.000000000000000021382,-106,106, + -7485075199918261.,-7485075199918261.,.000000000000000021238,-106,106, + -5441089836917728.,-5441089836917728.,.000000000000000008158,-106,106, + -5137347928742246.,-5137347928742246.,.000000000000000006867,-106,106, + -5130840493893794.,-5130840493893794.,.000000000000000006840,-106,106, + -5046807759991974.,-5046807759991974.,.000000000000000006510,-106,106, + -5010504700961462.,-5010504700961462.,.000000000000000006370,-106,106, + -6298970528341482.,-6298970528341482.,.000000000000000003164,-107,107, + -6002783559861861.,-6002783559861861.,.000000000000000002739,-107,107, + -7922455085967687.,-7922455085967687.,.000000000000000001574,-108,108, + -5181586503254410.,-5181586503254410.,.000000000000000000440,-108,108, + -5061503531596520.,-5061503531596520.,.000000000000000000026,-110,110, + -5034345543218302.,-5034345543218302.,.000000000000000000025,-110,110, + -6896051710047123.,-6896051710047123.,.000000000000000000000,-1068,1068, + -6217509155552861.,-6217509155552861.,.000000000000000000000,-1068,1068, + -6034398320057769.,-6034398320057769.,.000000000000000000000,-1068,1068, + -5398632895594236.,-5398632895594236.,0.000000000000000000000,-1068,1068, + -5261284638989232.,-5261284638989232.,0.000000000000000000000,-1068,1068, + -5219266418975960.,-5219266418975960.,-.000000000000000000000,-1068,1068, + -5052271597935299.,-5052271597935299.,-.000000000000000000000,-1068,1068, + -7976692745914733.,-7976692745914733.,-.000000000000000000000,-1069,1069, + -7354293354938039.,-7354293354938039.,-.000000000000000000000,-1069,1069, + -6891377488733120.,-6891377488733120.,-.000000000000000000000,-1069,1069, + -6847508842371328.,-6847508842371328.,0.000000000000000000000,-1069,1069, + -6630788932012564.,-6630788932012564.,.000000000000000000000,-1069,1069, + -6425952934577020.,-6425952934577020.,0.000000000000000000000,-1069,1069, + -6420837278871791.,-6420837278871791.,0.000000000000000000000,-1069,1069, + -6355183032262548.,-6355183032262548.,.000000000000000000000,-1069,1069, + -6204930651051736.,-6204930651051736.,0.000000000000000000000,-1069,1069, + -6109396825169490.,-6109396825169490.,0.000000000000000000000,-1069,1069, + -5884607207372416.,-5884607207372416.,0.000000000000000000000,-1069,1069, + -5268933022016027.,-5268933022016027.,0.000000000000000000000,-1069,1069, + -4786306299172741.,-4786306299172741.,0.000000000000000000000,-1069,1069, + -8343609983793614.,-8343609983793614.,.000000000000000000000,-1070,1070, + -6237387643206232.,-6237387643206232.,.000000000000000000000,-1070,1070, + -4968285968364176.,-4968285968364176.,.000000000000000000000,-1070,1070, + -8406213644011764.,-8406213644011764.,-.000000000000000000000,-1071,1071, + -8168137436225278.,-8168137436225278.,-.000000000000000000000,-1071,1071, + -6336940456063196.,-6336940456063196.,0.000000000000000000000,-1071,1071, + -5445154163543924.,-5445154163543924.,-.000000000000000000000,-1072,1072, + -7300202004670578.,-7300202004670578.,-.000000000000000000000,-1073,1073, + -4503599627370496.,-4503599627370496.,0.000000000000000000000,-1074,1074, + 0.,0.,0.000000000000000000000,0,0, + 4503599627370496.,4503599627370496.,0.000000000000000000000,-1074,1074, + 6082837141915798.,6082837141915798.,.000000000000000000000,-1073,1073, + 4811097776325985.,4811097776325985.,0.000000000000000000000,-1071,1071, + 8890538223914569.,8890538223914569.,.000000000000000000000,-1071,1071, + 8990265607552088.,8990265607552088.,.000000000000000000000,-1071,1071, + 7237408635947624.,7237408635947624.,-.000000000000000000000,-1070,1070, + 7615381814031983.,7615381814031983.,-.000000000000000000000,-1070,1070, + 4867019366964012.,4867019366964012.,0.000000000000000000000,-1069,1069, + 5078329750482862.,5078329750482862.,0.000000000000000000000,-1069,1069, + 5165239211226191.,5165239211226191.,0.000000000000000000000,-1069,1069, + 5465296155404118.,5465296155404118.,0.000000000000000000000,-1069,1069, + 5845553376260745.,5845553376260745.,0.000000000000000000000,-1069,1069, + 6085414014365337.,6085414014365337.,.000000000000000000000,-1069,1069, + 6252790986945004.,6252790986945004.,0.000000000000000000000,-1069,1069, + 6264381867528970.,6264381867528970.,0.000000000000000000000,-1069,1069, + 6347940196974823.,6347940196974823.,.000000000000000000000,-1069,1069, + 7854044176568971.,7854044176568971.,.000000000000000000000,-1069,1069, + 8748563481336862.,8748563481336862.,.000000000000000000000,-1069,1069, + 5213499029072781.,5213499029072781.,-.000000000000000000000,-1068,1068, + 5509102256618710.,5509102256618710.,-.000000000000000000000,-1068,1068, + 5623705823584869.,5623705823584869.,-.000000000000000000000,-1068,1068, + 5780494528040238.,5780494528040238.,-.000000000000000000000,-1068,1068, + 6034049101091039.,6034049101091039.,0.000000000000000000000,-1068,1068, + 5835457316503937.,5835457316503937.,-.000000000000000000010,-111,111, + 5746215254501618.,5746215254501618.,-.000000000000000000150,-109,109, + 6842111560931391.,6842111560931391.,-.000000000000000000253,-109,109, + 5635416615605139.,5635416615605139.,-.000000000000000000566,-108,108, + 6916394610526624.,6916394610526624.,-.000000000000000001047,-108,108, + 7664074856376563.,7664074856376563.,-.000000000000000001425,-108,108, + 5804122653802498.,5804122653802498.,-.000000000000000002476,-107,107, + 6847582036561322.,6847582036561322.,-.000000000000000004065,-107,107, + 7706116167865089.,7706116167865089.,-.000000000000000005794,-107,107, + 4994576600383679.,4994576600383679.,-.000000000000000006310,-106,106, + 7423882302191304.,7423882302191304.,-.000000000000000020721,-106,106, + 7984456451885351.,7984456451885351.,-.000000000000000025778,-106,106, + 4747578892790121.,4747578892790121.,-.000000000000000021677,-105,105, + 5184012179843949.,5184012179843949.,-.000000000000000028221,-105,105, + 5359027492704717.,5359027492704717.,-.000000000000000031177,-105,105, + 5488415439823270.,5488415439823270.,-.000000000000000033490,-105,105, + 5668948148616327.,5668948148616327.,-.000000000000000036905,-105,105, + 5708579506482334.,5708579506482334.,-.000000000000000037685,-105,105, + 6353877460235262.,6353877460235262.,-.000000000000000051963,-105,105, + 6402079148376316.,6402079148376316.,-.000000000000000053155,-105,105, + 6710148704144607.,6710148704144607.,-.000000000000000061203,-105,105, + 6728987427118364.,6728987427118364.,-.000000000000000061720,-105,105, + 8108726220156984.,8108726220156984.,-.000000000000000108003,-105,105, + 8201755169934774.,8201755169934774.,-.000000000000000111764,-105,105, + 8488875008858692.,8488875008858692.,-.000000000000000123917,-105,105, + 6940259249760663.,6934899017217088.,-.499997498204376858302,-57,57, + 6940259249802553.,6934899017258881.,-.499864230442570993443,-57,57, + 6940259249803417.,6934899017259742.,.499470100969000189966,-57,57, + 6940259249803849.,6934899017260173.,.499137266674599271478,-57,57, + 6940259249803856.,6934899017260180.,.482928169822605640294,-57,57, + 6940259249803893.,6934899017260217.,.397251515033495904556,-57,57, + 6940259249808599.,6934899017264913.,-.499892740042869916778,-57,57, + 6940259249829760.,6934899017286025.,-.499992523835708227748,-57,57, + 6175493946593115.,6160418842724578.,-.499997686483600084063,-56,56, + 6175493946634160.,6160418842765323.,-.499978368210643775180,-56,56, + 6175493946642369.,6160418842773472.,-.499974505032260363449,-56,56, + 6175493946645379.,6160418842776459.,.499783276407676255634,-56,56, + 6175493946646063.,6160418842777139.,-.499607314125227664685,-56,56, + 6175493946646200.,6160418842777274.,.499052757653868170324,-56,56, + 6175493946646313.,6160418842777387.,-.326869956864137150504,-56,56, + 6175493946646336.,6160418842777410.,-.494978119996124218491,-56,56, + 6175493946646337.,6160418842777410.,.497712829432919793765,-56,56, + 6823990675692619.,6803663390511507.,-.499993360203221482101,-56,56, + 6823990675707201.,6803663390525959.,-.499952936972200919077,-56,56, + 6823990675709220.,6803663390527960.,-.499535873889721764157,-56,56, + 6823990675709442.,6803663390528180.,-.478687638127955578537,-56,56, + 6823990675709444.,6803663390528182.,-.496517834202174482987,-56,56, + 7740553500862022.,7710916421859231.,-.498653887814618764314,-56,56, + 7740553500862110.,7710916421859317.,.493637083933174947934,-56,56, + 7740553500862119.,7710916421859326.,.390575933316470750522,-56,56, + 7740553500862808.,7710916421860008.,-.499327708340812163812,-56,56, + 7740553500863594.,7710916421860784.,.499998471131180510274,-56,56, + 8359220028906295.,8321922069506516.,.499996884249334097663,-56,56, + 8359220028906670.,8321922069506886.,.498280725356236948654,-56,56, + 8359220028906734.,8321922069506950.,-.355345499094896061521,-56,56, + 8359220028906745.,8321922069506960.,.497937493577564147728,-56,56, + 8513798801090168.,8474401073376306.,.499997353701014809275,-56,56, + 8513798801091614.,8474401073377733.,-.499855810732867216203,-56,56, + 8513798801093060.,8474401073379159.,-.499708975173480052106,-56,56, + 8513798801093277.,8474401073379372.,.498929934449996522744,-56,56, + 8513798801093422.,8474401073379515.,.493412155166059979904,-56,56, + 8513798801093431.,8474401073379524.,.368931741279468584358,-56,56, + 8513798801093494.,8474401073379586.,.497568844073321514684,-56,56, + 4527278262234861.,9007199254740972.,-.499453307338387028630,-55,56, + 4527278262234862.,9007199254740973.,.469296692661613106783,-55,56, + 4527278262234871.,9007199254740991.,.188046692661613710757,-55,56, + 4527278262234872.,4503599627370497.,-.421601653669193145219,-55,55, + 6216155809139739.,6155201417944415.,.499999954166488646090,-55,55, + 6216155809169273.,6155201417973087.,.499960850070650440951,-55,55, + 6216155809171363.,6155201417975116.,.499754926845003790048,-55,55, + 6216155809171843.,6155201417975582.,.490138255476497100121,-55,55, + 6216155809171877.,6155201417975615.,.497790407921147427279,-55,55, + 6216155809172014.,6155201417975748.,.499212316300954137039,-55,55, + 6216155809172802.,6155201417976514.,-.499908385868184583734,-55,55, + 6216155809178421.,6155201417981969.,-.499983545283137670432,-55,55, + 7082784227659697.,6992931704986410.,.499922943114752821154,-55,55, + 7082784227659962.,6992931704986666.,-.483165634580558456149,-55,55, + 7082784227659963.,6992931704986666.,.479162333050778612860,-55,55, + 7082784227659989.,6992931704986691.,.499689491465538767787,-55,55, + 7082784227663838.,6992931704990396.,-.499963095595943269057,-55,55, + 7082784227680986.,6992931705006898.,-.499974155641377398144,-55,55, + 7082784227723856.,6992931705048152.,.499998180906203086321,-55,55, + 4601108177687631.,9007199254740987.,.025727626502669851415,-54,55, + 4601108177687633.,9007199254740991.,-.224272373497329976541,-54,55, + 4601108177687634.,4503599627370496.,.325363813251335015709,-54,54, + 4601108177687647.,4503599627370509.,-.487136186748667300451,-54,54, + 5299073463123883.,5151343802724675.,.499995341200645148999,-54,54, + 5299073463175209.,5151343802771805.,-.499911551307394814328,-54,54, + 5299073463177557.,5151343802773961.,-.499205894873841060890,-54,54, + 5299073463177655.,5151343802774050.,.487194937461033094806,-54,54, + 5299073463177667.,5151343802774062.,-.494062103477572983302,-54,54, + 5299073463177716.,5151343802774106.,.499138312689741964084,-54,54, + 5299073463180651.,5151343802776802.,-.499979617007926147186,-54,54, + 5354986034411295.,5202638632464610.,-.499996094879444665318,-54,54, + 5354986034456710.,5202638632506237.,-.475046148279661820059,-54,54, + 5354986034456830.,5202638632506347.,-.484008077379179797598,-54,54, + 5354986034457034.,5202638632506534.,-.499243356849331619099,-54,54, + 5354986034457046.,5202638632506544.,.499860450240621361609,-54,54, + 5354986034459276.,5202638632508588.,.499984601050081864063,-54,54, + 6318840445921079.,6071839357569401.,-.499959402073117536564,-54,54, + 6318840445926237.,6071839357573973.,-.479363723079650713260,-54,54, + 6318840445926246.,6071839357573980.,.498182876592114148040,-54,54, + 6318840445926290.,6071839357574019.,.499521808320703683327,-54,54, + 6318840445927047.,6071839357574690.,.499830247368426485559,-54,54, + 6318840445940497.,6071839357586613.,-.499973579853656192735,-54,54, + 6318840445979333.,6071839357621036.,.499998027064834899085,-54,54, + 6779876501329835.,6476916302463697.,-.499999271897440061019,-54,54, + 6779876501388503.,6476916302514781.,-.499949850979769279309,-54,54, + 6779876501427615.,6476916302548837.,-.499916970163171760118,-54,54, + 6779876501427623.,6476916302548843.,.465924721973098728732,-54,54, + 7852441927989376.,7390201940580111.,.499993034323868169285,-54,54, + 7852441928000630.,7390201940589471.,.499922655169212401286,-54,54, + 7852441928002062.,7390201940590663.,-.499553156704049542986,-54,54, + 7852441928002163.,7390201940590747.,-.497421213270668889935,-54,54, + 7852441928002175.,7390201940590756.,.483030106741192237349,-54,54, + 7852441928002199.,7390201940590776.,.443932746764898127542,-54,54, + 7852441928002983.,7390201940591429.,-.499914345806040910920,-54,54, + 7852441928044725.,7390201940626146.,-.499997718835601598359,-54,54, + 8458131931925917.,7886918402602330.,-.499998786526736828053,-54,54, + 8458131931930894.,7886918402606353.,-.487762731441196028913,-54,54, + 8458131931930899.,7886918402606357.,-.446159118768302282221,-54,54, + 8458131931930941.,7886918402606391.,-.496688772316033589196,-54,54, + 8458131931931061.,7886918402606488.,-.498202068167076364624,-54,54, + 8458131931931181.,7886918402606585.,-.499715364018684915394,-54,54, + 8458131931931854.,7886918402607129.,-.499869098263607179192,-54,54, + 8458131931932527.,7886918402607672.,.499977167473674997269,-54,54, + 8717776617210566.,8095464163370102.,-.499999669529453987322,-54,54, + 8717776617239078.,8095464163392856.,-.499990739219742634817,-54,54, + 8717776617239796.,8095464163393428.,.499869193441929278718,-54,54, + 8717776617241207.,8095464163394555.,-.451659546192222072734,-54,54, + 8717776617241227.,8095464163394571.,-.490660662275487116562,-54,54, + 8717776617241232.,8095464163394574.,.499589058703694133955,-54,54, + 4947709893870346.,9007199254740991.,.112802362709798491615,-53,54, + 4947709893870347.,4503599627370496.,.306401181354899253423,-53,53, + 4947709893870350.,4503599627370499.,-.443598818645101223329,-53,53, + 4947709893870538.,4503599627370640.,-.443598818646626070624,-53,53, + 6059040276252670.,5284935071759052.,-.499991276457469332581,-53,53, + 6059040276403075.,5284935071857677.,-.499967302923229484257,-53,53, + 6059040276408591.,5284935071861294.,-.495877500639670697994,-53,53, + 6059040276408594.,5284935071861295.,.471311090622647928418,-53,53, + 6059040276408774.,5284935071861414.,-.497373433639641533345,-53,53, + 6059040276409079.,5284935071861614.,-.499866655312617357970,-53,53, + 6179968525068699.,5363606832721363.,-.499999755776103293747,-53,53, + 6179968525077619.,5363606832727120.,-.499947229113430700321,-53,53, + 6179968525077667.,5363606832727150.,.479425250832306055121,-53,53, + 6230674196510670.,5396222774560992.,.499998698071075050925,-53,53, + 6230674196559246.,5396222774592134.,-.499955359170177716634,-53,53, + 6230674196594574.,5396222774614782.,-.499922072647675901651,-53,53, + 6230674196597023.,5396222774616351.,.499853781613186143196,-53,53, + 6230674196597101.,5396222774616402.,-.496070058071679439578,-53,53, + 6230674196597140.,5396222774616427.,-.494031977914306799050,-53,53, + 7302452754221086.,6034783754390032.,.499999555533054683032,-53,53, + 7302452754231349.,6034783754395688.,.499984988383268143919,-53,53, + 7302452754241612.,6034783754401344.,.499970412597814420774,-53,53, + 7302452754244782.,6034783754403092.,-.494285284874189725968,-53,53, + 7302452754244831.,6034783754403119.,-.490095546450412236089,-53,53, + 7302452754244958.,6034783754403189.,-.499644591761129727237,-53,53, + 7302452754245907.,6034783754403711.,.499866872764956286237,-53,53, + 7511273082099998.,6148085656394814.,-.499982967742003999646,-53,53, + 7511273082102462.,6148085656396130.,-.497588471544878896015,-53,53, + 7511273082104838.,6148085656397399.,-.495279493534524446539,-53,53, + 7511273082104881.,6148085656397421.,.470671384430308177277,-53,53, + 7511273082104896.,6148085656397429.,.482049597673819229002,-53,53, + 7511273082111687.,6148085656401057.,-.499987328417968129949,-53,53, + 7511273082146754.,6148085656419785.,.499999523193233199839,-53,53, + 7913137471604986.,6356240968886877.,.499420965442230167431,-53,53, + 7913137471604994.,6356240968886882.,-.484504026121102249572,-53,53, + 7913137471605028.,6356240968886899.,-.416185240265321186198,-53,53, + 7913137471605235.,6356240968887002.,.499755603031148487000,-53,53, + 7913137471605484.,6356240968887128.,-.499909759384810289733,-53,53, + 7913137471650274.,6356240968909613.,-.499956355235893593800,-53,53, + 7913137471692078.,6356240968930599.,-.499999987073394562382,-53,53, + 8575032706797175.,6671597589303341.,-.491908165648325979993,-53,53, + 8575032706797206.,6671597589303355.,-.499461424422883236503,-53,53, + 8575032706798666.,6671597589304013.,.499643162242974743008,-53,53, + 8575032706808197.,6671597589308315.,.499962210075439227486,-53,53, + 8575032706809256.,6671597589308793.,.499997659418332831129,-53,53, + 8668443273568215.,6713437354431150.,.499999323829397454448,-53,53, + 8668443273592984.,6713437354442159.,.487950499163132533263,-53,53, + 8668443273593011.,6713437354442171.,.488542960753189114948,-53,53, + 8668443273593443.,6713437354442363.,.498022346186801513557,-53,53, + 8668443273593533.,6713437354442403.,.499997218150409534982,-53,53, + 9007199254740740.,6859830313939755.,-.499455134494885113547,-53,53, + 9007199254740790.,6859830313939775.,.499261946207224444162,-53,53, + 9007199254740940.,6859830313939838.,.495413188312487802774,-53,53, + 9007199254740990.,6859830313939859.,.494130269013887150805,-53,53, + 9007199254740991.,6859830313939860.,-.085895389372086673269,-53,53, + 4503599627370497.,6859830313939861.,.174027635469991428383,-52,53, + 4503599627373494.,6859830313942379.,-.499768731334421964721,-52,53, + 4503599627375837.,6859830313944346.,.499996069216484533612,-52,53, + 4806946911212321.,7101845576162243.,-.499951494981747691668,-52,53, + 4806946911213862.,7101845576163408.,.499878051990735430453,-52,53, + 4806946911214314.,7101845576163751.,-.493682652066585092767,-52,53, + 4806946911214326.,7101845576163760.,-.413865679608667478365,-52,53, + 4806946911214351.,7101845576163779.,-.497580320321461649775,-52,53, + 4806946911214388.,7101845576163806.,.498522011423299090363,-52,53, + 4806946911235925.,7101845576180103.,-.499966731562268795241,-52,53, + 4806946911283133.,7101845576215823.,-.499997647556324647024,-52,53, + 6559144747894747.,8079057642313095.,.499999462515230257567,-52,53, + 6559144747897154.,8079057642314036.,.495878955810909690610,-52,53, + 6559144747897159.,8079057642314038.,.450585809763638481927,-52,53, + 6559144747897264.,8079057642314079.,.499429742770043799195,-52,53, + 9007199254708414.,8683188500804056.,.499994117090708488393,-52,53, + 9007199254740650.,8683188500808611.,.499974082408134122221,-52,53, + 9007199254740926.,8683188500808650.,.499229401358325192936,-52,53, + 9007199254740990.,8683188500808660.,-.457465017436491565914,-52,53, + 9007199254740991.,8683188500808660.,-.316163367730162543801,-52,53, + 4503599627370497.,8683188500808660.,.107741581388824159576,-51,53, + 4503599627370509.,8683188500808663.,.498981174340698186785,-51,53, + 4503599627398520.,8683188500816580.,-.499999072715978407673,-51,53, + 5971758238302426.,8918079553435676.,.499564111449497776825,-51,53, + 5971758238302667.,8918079553435695.,.481352833024903615130,-51,53, + 5971758238302680.,8918079553435697.,-.494733252533383867290,-51,53, + 5971758238302718.,8918079553435699.,.498245881988477914312,-51,53, + 5971758238303848.,8918079553435788.,.499993829566554372177,-51,53, + 6755764563663872.,8962670842761872.,.499971683589107290152,-51,53, + 6755764563664455.,8962670842761896.,-.499852783909433209059,-51,53, + 6755764563665621.,8962670842761942.,-.499501718942066601761,-51,53, + 6755764563665976.,8962670842761956.,-.494249036221278149951,-51,53, + 6755764563666001.,8962670842761956.,.492036363970161053910,-51,53, + 6755764563666204.,8962670842761965.,-.499326186476159495253,-51,53, + 6755764563681007.,8962670842762548.,.499984970947449496905,-51,53, + 6755764563698142.,8962670842763224.,.499998248068650186974,-51,53, + 7590510859870801.,8985956438370575.,-.499999392394828181834,-51,53, + 7590510859888206.,8985956438370903.,-.499948278621871193360,-51,53, + 7590510859888631.,8985956438370911.,-.490754269874251249436,-51,53, + 7590510859888635.,8985956438370911.,-.415373620380170330125,-51,53, + 7590510859888684.,8985956438370912.,-.491960664077700751424,-51,53, + 7590510859888949.,8985956438370917.,-.497992635095651848095,-51,53, + 7590510859894839.,8985956438371028.,-.499986255382229010703,-51,53, + 5013768605611436.,9004757910149709.,-.499829499930223483851,-50,53, + 5013768605612589.,9004757910149713.,.499706995655090322018,-50,53, + 5013768605612754.,9004757910149714.,.215165384007745455088,-50,53, + 5013768605612816.,9004757910149714.,.484004293570507135603,-50,53, + 5013768605612820.,9004757910149715.,-.498651260651251191783,-50,53, + 5013768605616279.,9004757910149729.,.499958226037115553466,-50,53, + 5013768605624812.,9004757910149766.,.499997181963409275830,-50,53, + 6034227533522120.,9006800750379900.,-.499998375182678708077,-50,53, + 6034227533544723.,9006800750379915.,.499993741988259019276,-50,53, + 6034227533548961.,9006800750379918.,.499948021993302199975,-50,53, + 6034227533550374.,9006800750379920.,-.499831261247412445880,-50,53, + 6034227533550385.,9006800750379920.,-.492044688080860270358,-50,53, + 6034227533550764.,9006800750379920.,-.223761848978837330885,-50,53, + 6034227533550957.,9006800750379920.,-.087142883420356795295,-50,53, + 4624379381842348.,9007197934801423.,.402232309580452622382,-49,53, + 4624379381842394.,9007197934801423.,.402448020463232349553,-49,53, + 4624379381846106.,9007197934801423.,.419854950830036741403,-49,53, + 4624379381862290.,9007197934801423.,.495747666629176245697,-49,53, + 4624379381863187.,9007197934801423.,.499954028843076553660,-49,53, + 4624379381863197.,9007197934801424.,-.499999077486757409206,-49,53, + 4983002233347319.,9007198885571090.,.451176056808423690802,-49,53, + 4983002233347325.,9007198885571090.,.451183926138016627826,-49,53, + 4983002233347949.,9007198885571090.,.452002336415681162433,-49,53, + 4983002233370860.,9007198885571090.,.482051371465021313798,-49,53, + 4983002233384330.,9007198885571090.,.499718016399264862059,-49,53, + 4983002233384543.,9007198885571090.,.499997377599777290629,-49,53, + 4983002233384545.,9007198885571091.,-.499999999290358743908,-49,53, + 5143435678830615.,9007199045960612.,-.499999944532384441415,-49,53, + 5143435678830630.,9007199045960612.,-.499988818478808375813,-49,53, + 5143435678832140.,9007199045960612.,-.498868795752154139281,-49,53, + 5143435678885728.,9007199045960612.,-.459120598487205219335,-49,53, + 5143435678915582.,9007199045960612.,-.436976784928723887729,-49,53, + 5143435678916044.,9007199045960612.,-.436634102478684782580,-49,53, + 5143435678916049.,9007199045960612.,-.436630393794160552917,-49,53, + 5463533634225769.,9007199187782928.,.088661491282301627735,-49,53, + 5463533634225779.,9007199187782928.,.088663870110588423885,-49,53, + 5463533634226747.,9007199187782928.,.088894140688749891167,-49,53, + 5463533634318379.,9007199187782928.,.110691820042696990568,-49,53, + 5463533635695253.,9007199187782928.,.438226500989263905034,-49,53, + 5463533635951883.,9007199187782928.,.499274370966774991032,-49,53, + 5463533635954903.,9007199187782928.,.499992777104978041403,-49,53, + 5463533635954933.,9007199187782928.,.499999913589794589331,-49,53, + 5792340622803941.,9007199233921089.,-.499999146054928428325,-49,53, + 5792340622805088.,9007199233921089.,-.499914305727145405136,-49,53, + 5792340622917740.,9007199233921089.,-.491581757685749488884,-49,53, + 5792340626902238.,9007199233921089.,-.196859775260147615394,-49,53, + 5792340629109979.,9007199233921089.,-.033559455610054630560,-49,53, + 5792340629144133.,9007199233921089.,-.031033181425212309758,-49,53, + 5792340629144477.,9007199233921089.,-.031007736724166092535,-49,53, + 5792340629144480.,9007199233921089.,-.031007514822703480312,-49,53, + 6867399964448181.,9007199254284173.,.261040761913513384763,-49,53, + 6867399964448185.,9007199254284173.,.261040768405298115130,-49,53, + 6867399964448569.,9007199254284173.,.261041391616632229919,-49,53, + 6867399964486953.,9007199254284173.,.261103686782900497303,-49,53, + 6867399968226833.,9007199254284173.,.267173310711092866706,-49,53, + 6867400071168836.,9007199254284173.,.434242608714888877706,-49,53, + 6867400111129227.,9007199254284173.,.499096143550563814624,-49,53, + 6892873243909005.,9007199254323700.,-.498582778412774491903,-49,53, + 6892873308959224.,9007199254323700.,-.402144488942815947132,-49,53, + 6892873449492565.,9007199254323700.,-.193800992509738473273,-49,53, + 6892873453985643.,9007199254323700.,-.187139915981935724322,-49,53, + 6892873454031561.,9007199254323700.,-.187071841644134887458,-49,53, + 6892873454032020.,9007199254323700.,-.187071161167610474156,-49,53, + 6892873454032025.,9007199254323700.,-.187071153755012169007,-49,53, + 8388978829725556.,9007199254738941.,-.461840035968978660627,-49,53, + 8388978857257932.,9007199254738941.,-.461639372959331406630,-49,53, + 8388978857534718.,9007199254738941.,-.461637355672154863293,-49,53, + 8388978857537486.,9007199254738941.,-.461637335498262752062,-49,53, + 8388978857537514.,9007199254738941.,-.461637335294191589089,-49,53, + 8448199139156663.,9007199254739330.,-.229591089433117779220,-49,53, + 8448199297242156.,9007199254739330.,-.228657527545428717653,-49,53, + 8448199298828524.,9007199254739330.,-.228648159372192258508,-49,53, + 8448199298844388.,9007199254739330.,-.228648065688570425362,-49,53, + 8448199298844546.,9007199254739330.,-.228648064755513677429,-49,53, + 8448199298844548.,9007199254739330.,-.228648064743702832518,-49,53, + 4657625120130731.,9007199254740916.,-.365482948150208668134,-48,53, + 4657625127356760.,9007199254740916.,-.365479027239109112213,-48,53, + 4657625127429022.,9007199254740916.,-.365478988029071271284,-48,53, + 4657625127429745.,9007199254740916.,-.365478987636764701418,-48,53, + 4657625127429752.,9007199254740916.,-.365478987632966435873,-48,53, + 4700999382674037.,9007199254740936.,-.111351075301071903152,-48,53, + 4700999398014324.,9007199254740936.,-.111344959203700829509,-48,53, + 4700999398167729.,9007199254740936.,-.111344898041881264825,-48,53, + 4700999398169264.,9007199254740936.,-.111344897429884309184,-48,53, + 4700999398169279.,9007199254740936.,-.111344897423903882908,-48,53, + 4816071408434479.,9007199254740967.,.228291675926929662125,-48,53, + 4816071408434484.,9007199254740967.,.228291675927809729995,-48,53, + 4816071408434957.,9007199254740967.,.228291676011064150507,-48,53, + 4816071408482303.,9007199254740967.,.228291684344602824646,-48,53, + 4816071413216900.,9007199254740967.,.228292517697928040079,-48,53, + 4927804234052044.,9007199254740981.,-.198644371334294697431,-48,53, + 4927804236425986.,9007199254740981.,-.198644182436991621807,-48,53, + 4927804236449725.,9007199254740981.,-.198644180548052027026,-48,53, + 4927804236449963.,9007199254740981.,-.198644180529114092677,-48,53, + 4927804236449965.,9007199254740981.,-.198644180528954950371,-48,53, + 5170245041676395.,9007199254740990.,-.000000010097424493315,-48,53, + 5170245042379833.,9007199254740990.,-.000000000100969248676,-48,53, + 5170245042386867.,9007199254740990.,-.000000000001010096607,-48,53, + 5170245042386937.,9007199254740990.,-.000000000000015336777,-48,53, + 5170245042386938.,9007199254740990.,-.000000000000001125922,-48,53, + 5170245042386939.,9007199254740990.,.000000000000013084933,-48,53, + 5198392540058003.,9007199254740990.,.362538493844028346961,-48,53, + 5198392540058004.,9007199254740990.,.362538493844039981825,-48,53, + 5198392540058020.,9007199254740990.,.362538493844226139645,-48,53, + 5198392540059603.,9007199254740990.,.362538493862644129014,-48,53, + 5198392540217939.,9007199254740990.,.362538495704861919879,-48,53, + 6803085785792106.,4503599627370496.,0.000000000000000000000,-45,52, + 6803085785792107.,4503599627370496.,0.000000000000000000000,-45,52 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/trailer.h b/src/regress/lib/libm/fpaccuracy/trailer.h new file mode 100644 index 000000000..c8736bcaf --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/trailer.h @@ -0,0 +1,119 @@ +/* $OpenBSD: trailer.h,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +static struct point { double arg, res, err1, err2; } points[N+1]; + +#include +#include +#ifdef FORCE_FPU_DOUBLE +#include +#endif + +#define SHOW 20 + +int +Fn(FILE *out) { + struct point *by_err1[N], *by_err2[N], *q; + struct input_point *p; + double t, t1, t2; + int i, tot1={0}, tot2={0}, tot3={0}, tot4={0}, tot5={0}; + +#ifdef FORCE_FPU_DOUBLE +#define FPU_CW (_FPU_MASK_IM+_FPU_MASK_ZM+_FPU_MASK_OM+_FPU_MASK_UM+ \ + _FPU_MASK_PM+_FPU_MASK_DM+_FPU_DOUBLE+_FPU_RC_NEAREST) + + fpu_control_t cw = FPU_CW; + _FPU_SETCW (cw); +#endif + + /* compute the results and store them in points structure */ + for( p=input_points, q=points; q-pointsarg = scalb(p->arg_m,p->arg_e); + q->res = F( q->arg ); + } + + for( i=0; ires = points[N/2].res+points[N/3].res+points[N/4].res; + + /* Now compute the error directly, for the benefit of more precise hw */ + for( p=input_points, q=points; q-pointsval_e >= DBL_MAX_EXP-2 ) { + t1 = scalb(1.0,p->val_e/2); + t2 = scalb(1.0,p->val_e-p->val_e/2); + t = F(q->arg)*t1*t2 - p->val; + } + else { + t1 = scalb(1.0,p->val_e); + t = F(q->arg)*t1 - p->val; + } + t -= p->eps; + q->err2 = fabs(t); + t = scalb(q->res,p->val_e) - p->val; + t -= p->eps; + q->err1 = fabs(t); + } + + /* Sort by errors in decreasing order */ +#define KEY(x) (-(x)->err1) + SORT(by_err1,0,N-1,q); +#undef KEY +#define KEY(x) (-(x)->err2) + SORT(by_err2,0,N-1,q); + + /* count the number of differences in errors */ + for( q=points; q-points < N; q++ ) { + if( q->err1 > q->err2 ) tot1++; + else if( 2*q->err1 < q->err2 ) tot5++; + else if( 1.1*q->err1 < q->err2 ) tot4++; + else if( 1.01*q->err1 < q->err2 ) tot3++; + else if( q->err1 < q->err2 ) tot2++; + } + + printf( "result of %s is ", Fs ); + if( tot1==0 ) printf( "never more precise than double\n\n" ); + else printf( "more precise than double %d out of %d times\n\n", tot1, N ); + + if( tot2+tot3+tot4+tot5 ) + printf( "%d errors <= 1%% worse in accum, %d <= 10%%," + "%d <= 100%%, %d > 100%%\n\n", tot2, tot3, tot4, tot5 ); + + for( i=N-1; i>=0 && by_err2[i]->err2 == 0; i-- ); + if( N-1-i > 0 ) + printf( "%d results were exact to double the precision\n\n", N-1-i ); + + if( tot1 > 10 ) { + printf( "%d largest ulp errors (from result in accumulator)\n", SHOW ); + for( i=0; ierr2, Fs, by_err2[i]->arg, by_err2[i]->res ); + printf( "\n" ); + } + + printf( "%d largest ulp errors (stored in a double)\n", SHOW ); + for( i=0; ierr1, Fs, by_err1[i]->arg, by_err1[i]->res ); + printf( "\n" ); + + fprintf( out, "%8s %5d %27.5f %26.18g %25.18g\n", Fs, N, + by_err1[0]->err1, by_err1[0]->arg, by_err1[0]->res ); + + return (0); +} diff --git a/src/regress/lib/libm/fpaccuracy/y0.c b/src/regress/lib/libm/fpaccuracy/y0.c new file mode 100644 index 000000000..0aad2af88 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/y0.c @@ -0,0 +1,1008 @@ +/* $OpenBSD: y0.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 18:19:22. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 976 +#define F y0 +#define Fs "y0" +#define Fn fpaccuracy_y0 + /* 11 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + 4503599627370496.,-7935007781843981.,-.434455118829781202726,-1074,44, + 4503599627370497.,-7935007781843981.,-.431968322843970338380,-1074,44, + 4503599627370872.,-7935007781843980.,-.499419828164935137557,-1074,44, + 4503599627371676.,-7935007781843979.,.499964144426654623053,-1074,44, + 4503599627378110.,-7935007781843962.,-.499990482881863729276,-1074,44, + 8703077354435565.,-7170889280858601.,.499998410784864711020,-60,51, + 8703077354446218.,-7170889280856846.,.499766510826985515576,-60,51, + 8703077354446230.,-7170889280856844.,.476674162867500428335,-60,51, + 8703077354447517.,-7170889280856631.,-.499980155803093711268,-60,51, + 7188956797802009.,-8920747782763478.,.499998145874476290724,-57,52, + 7188956797805616.,-8920747782762033.,.499988393261238014370,-57,52, + 7188956797838079.,-8920747782749028.,.499900587367804537923,-57,52, + 7188956797841686.,-8920747782747583.,.499890827560279819524,-57,52, + 7188956797842245.,-8920747782747359.,.440837471318347650807,-57,52, + 7188956797842275.,-8920747782747347.,.459135144507021961907,-57,52, + 7188956797842340.,-8920747782747321.,.498780103082312242212,-57,52, + 9006440473767030.,-8270978980490661.,.499997557366920745522,-57,52, + 9006440473778795.,-8270978980486891.,.499681979986428469379,-57,52, + 9006440473857711.,-8270978980461603.,.497565058138115432434,-57,52, + 9006440473864227.,-8270978980459515.,.497390256633688119518,-57,52, + 9006440473864252.,-8270978980459506.,-.491560690274899027839,-57,52, + 7591484324343108.,-6757813508903727.,.499999555169024314131,-56,52, + 7591484324350333.,-6757813508900954.,-.499987448214962484507,-56,52, + 7591484324372008.,-6757813508892638.,-.499948473788364241107,-56,52, + 7591484324373134.,-6757813508892206.,-.489981051804309516712,-56,52, + 7591484324373147.,-6757813508892202.,.497700632463347897957,-56,52, + 7591484324373306.,-6757813508892140.,-.499115690725207768556,-56,52, + 7591484324373551.,-6757813508892047.,.499500666623323139910,-56,52, + 8003388475030114.,-6603809822555021.,-.499985896758151712600,-56,52, + 8003388475031700.,-6603809822554444.,.498897146625801913728,-56,52, + 8003388475031818.,-6603809822554400.,-.497402853933940401870,-56,52, + 8003388475031851.,-6603809822554388.,-.470944379514317603480,-56,52, + 8003388475031870.,-6603809822554382.,.453380196666655474814,-56,52, + 8003388475032268.,-6603809822554237.,.499758160874944722688,-56,52, + 8003388475033629.,-6603809822553740.,-.499939303279843681635,-56,52, + 8003388475049843.,-6603809822547832.,.499991121121945078429,-56,52, + 8715649185231715.,-6354833115253277.,-.499854914575804308171,-56,52, + 8715649185231956.,-6354833115253197.,.357461874435596502964,-56,52, + 8715649185232010.,-6354833115253179.,.474868955790551273912,-56,52, + 8715649185232022.,-6354833115253174.,-.499040581686140202950,-56,52, + 8715649185236621.,-6354833115251631.,-.499870820023332342313,-56,52, + 8715649185273416.,-6354833115239286.,-.499990139473844001630,-56,52, + 8715649185275869.,-6354833115238463.,-.499998095898014670880,-56,52, + 4823460372549702.,-6057470921763974.,.499999836161642851499,-55,52, + 4823460372562221.,-6057470921756358.,.499982035349133722726,-55,52, + 4823460372574740.,-6057470921748742.,.499964215501116555887,-55,52, + 4823460372575123.,-6057470921748508.,-.499956451385904199410,-55,52, + 4823460372575169.,-6057470921748481.,.484387280527249975657,-55,52, + 4823460372575174.,-6057470921748477.,-.473836226873509621610,-55,52, + 6866204439029334.,-5013153536461533.,-.499999181721324014535,-55,52, + 6866204439033576.,-5013153536459689.,-.499832586827967636177,-55,52, + 6866204439034648.,-5013153536459224.,.499266561924364981439,-55,52, + 6866204439034786.,-5013153536459164.,.487956564277444470458,-55,52, + 6866204439034901.,-5013153536459114.,.478531566237479222112,-55,52, + 6866204439035161.,-5013153536459000.,-.499298864116644655966,-55,52, + 7429938090848670.,-4777050978726163.,-.499714048475374581540,-55,52, + 7429938090848883.,-4777050978726077.,-.498310226703729173793,-55,52, + 7429938090848935.,-4777050978726057.,.497337654667403269336,-55,52, + 7429938090848967.,-4777050978726044.,.417736350895724374660,-55,52, + 7429938090848987.,-4777050978726036.,.492985536038398720970,-55,52, + 7429938090850052.,-4777050978725605.,-.499995355143463250861,-55,52, + 7429938090864298.,-4777050978719854.,.499999216066661628863,-55,52, + 7477266621091269.,-4757997993694322.,-.499979043004198336201,-55,52, + 7477266621093008.,-4757997993693625.,.499940718357698523531,-55,52, + 7477266621094266.,-4757997993693120.,.436052886057127929110,-55,52, + 7477266621094296.,-4757997993693108.,.477454607066481902685,-55,52, + 7477266621094311.,-4757997993693102.,.498155467571142009537,-55,52, + 7477266621094747.,-4757997993692927.,.499860479568345110984,-55,52, + 7477266621104167.,-4757997993689145.,-.499999125933116182535,-55,52, + 8992428863881614.,-8400856518912780.,-.499991644006835648025,-55,53, + 8992428863890739.,-8400856518906603.,.499979394880539263865,-55,53, + 8992428863894916.,-8400856518903774.,-.499376329833229359307,-55,53, + 8992428863894944.,-8400856518903756.,.457774266214434526092,-55,53, + 8992428863894947.,-8400856518903754.,.488897544362395313760,-55,53, + 8992428863895173.,-8400856518903600.,-.499815501826339494076,-55,53, + 8992428863920331.,-8400856518886568.,.499995024800525067658,-55,53, + 4684840655054328.,-8150203742469217.,-.499997566396435980409,-54,53, + 4684840655099708.,-8150203742410029.,-.499983259500002457161,-54,53, + 4684840655107188.,-8150203742400274.,.477101463796973448011,-54,53, + 4684840655107198.,-8150203742400260.,-.480148422946072399969,-54,53, + 4684840655107290.,-8150203742400140.,-.486847380983282631162,-54,53, + 4684840655107474.,-8150203742399901.,.499754702935865404174,-54,53, + 4684840655108667.,-8150203742398345.,.499843214225338745794,-54,53, + 4684840655111053.,-8150203742395232.,-.499979764277192499764,-54,53, + 5261029272837759.,-7437547226610843.,.499997610602340130358,-54,53, + 5261029272898674.,-7437547226539299.,.499988893903165730658,-54,53, + 5261029272899505.,-7437547226538322.,-.499617238521436419466,-54,53, + 5261029272899528.,-7437547226538295.,-.486369273476190628769,-54,53, + 5357701474445280.,-7324931434941471.,.499974024474121251305,-54,53, + 5357701474447711.,-7324931434938662.,.461963565845400832093,-54,53, + 5357701474447724.,-7324931434938647.,.483150675689238568657,-54,53, + 5357701474447737.,-7324931434938631.,-.495662214466956327777,-54,53, + 5357701474447782.,-7324931434938579.,-.499245295777113727048,-54,53, + 5357701474448065.,-7324931434938252.,-.499556673803287725350,-54,53, + 5357701474448348.,-7324931434937925.,-.499868051844926482217,-54,53, + 5357701474458118.,-7324931434926637.,.499982951157174001257,-54,53, + 5357701474483794.,-7324931434896968.,-.499999290950973813477,-54,53, + 6544763739199567.,-6071993919070415.,.499999214665188407308,-54,53, + 6544763739206578.,-6071993919063627.,-.499931848497904247659,-54,53, + 6544763739207204.,-6071993919063022.,.499503774422452737438,-54,53, + 6544763739207486.,-6071993919062749.,.489664869715081740194,-54,53, + 6544763739207487.,-6071993919062748.,.457715086365037319908,-54,53, + 6544763739207517.,-6071993919062719.,.499221585863644632691,-54,53, + 6544763739210240.,-6071993919060083.,.499961523202961157760,-54,53, + 6748349574653776.,-5877536069019841.,-.490198489855785476331,-54,53, + 6748349574653811.,-5877536069019809.,.498595949154330755738,-54,53, + 6748349574653898.,-5877536069019727.,.499313554693117425866,-54,53, + 6748349574653985.,-5877536069019644.,-.499968839769015974256,-54,53, + 6748349574660946.,-5877536069013084.,.499976584250132629524,-54,53, + 6748349574769642.,-5877536068910634.,.499985561471080170170,-54,53, + 6750030179323355.,-5875952208600743.,.499951567807580843099,-54,53, + 6750030179323840.,-5875952208600285.,-.468667552893118025775,-54,53, + 6750030179323858.,-5875952208600269.,.493321840564862718440,-54,53, + 6750030179324066.,-5875952208600073.,.498532609409784528712,-54,53, + 6750030179324118.,-5875952208600024.,.499835301620193657835,-54,53, + 6750030179340245.,-5875952208584827.,.499999079563315981500,-54,53, + 6921931465607122.,-5715729421514812.,-.499979736338206784395,-54,53, + 6921931465611953.,-5715729421510359.,.499646993975188950878,-54,53, + 6921931465612158.,-5715729421510169.,-.498091884222695720093,-54,53, + 6921931465612171.,-5715729421510158.,.487417357647518546302,-54,53, + 6921931465612184.,-5715729421510146.,.472926599517713279439,-54,53, + 6921931465613747.,-5715729421508705.,.499922371922617196190,-54,53, + 6921931465628791.,-5715729421494834.,-.499998051946547076627,-54,53, + 7262316160916622.,-5408393724026400.,-.499967098906390913249,-54,53, + 7262316160952475.,-5408393723994690.,-.499966582504403568787,-54,53, + 7262316160954950.,-5408393723992501.,-.499046126773088891576,-54,53, + 7262316160955348.,-5408393723992149.,-.490009221224678205484,-54,53, + 7262316160955400.,-5408393723992103.,-.498878771254758969957,-54,53, + 7667186625739824.,-5058621380276633.,-.499984624896669156623,-54,53, + 7667186625743634.,-5058621380273417.,-.499770475920569264584,-54,53, + 7667186625744853.,-5058621380272389.,.451479142582900804674,-54,53, + 7667186625744859.,-5058621380272383.,-.483953591042531959729,-54,53, + 7667186625744904.,-5058621380272345.,-.499699093233386135794,-54,53, + 7667186625767578.,-5058621380253206.,-.499999488139328401202,-54,53, + 7756304500064700.,-4983769927495242.,.499997009046463628758,-54,53, + 7756304500086614.,-4983769927476927.,.499426613099631538708,-54,53, + 7756304500086681.,-4983769927476871.,.495819867730488583087,-54,53, + 7756304500086730.,-4983769927476830.,.448405979325927414656,-54,53, + 7756304500086748.,-4983769927476815.,.492213122360930862589,-54,53, + 7756304500086888.,-4983769927476698.,.499602012632158004194,-54,53, + 7756304500087436.,-4983769927476240.,.499952811676400807368,-54,53, + 7756304500104625.,-4983769927461873.,-.499992668153936151413,-54,53, + 8671512143472642.,-8509694576660714.,.495752813792695072875,-54,54, + 8671512143472667.,-8509694576660676.,.489004585686802969552,-54,54, + 8671512143472769.,-8509694576660520.,-.498528184986202098516,-54,54, + 8671512143472921.,-8509694576660289.,-.499557411874341485239,-54,54, + 8671512143473960.,-8509694576658711.,.499986227923074334036,-54,54, + 8671512143482703.,-8509694576645424.,.499995887333384158042,-54,54, + 4889567999001565.,-6911094244700638.,-.499994588064754195577,-53,54, + 4889567999033358.,-6911094244613378.,.499993395716392982983,-53,54, + 4889567999035465.,-6911094244607594.,-.499755789915919727912,-53,54, + 4889567999035559.,-6911094244607337.,.498356965872775521483,-53,54, + 4889567999035888.,-6911094244606434.,.491751611100077121495,-53,54, + 4889567999036542.,-6911094244604639.,.499897805411022595804,-53,54, + 4930099044592645.,-6800239404249470.,-.499993989106880743108,-53,54, + 4930099044601811.,-6800239404224488.,-.499550166953861946362,-53,54, + 4930099044601913.,-6800239404224210.,-.497799646789381175231,-53,54, + 4930099044602321.,-6800239404223098.,-.490797566180253966077,-53,54, + 4930099044602332.,-6800239404223069.,.489783372266460295043,-53,54, + 4930099044604077.,-6800239404218312.,-.499876847586989751521,-53,54, + 4930099044605210.,-6800239404215225.,.499959811193350491580,-53,54, + 4930099044660053.,-6800239404065750.,.499996052884980568462,-53,54, + 5026050879163969.,-6540855830777801.,-.499994784472164509720,-53,54, + 5026050879177169.,-6540855830742408.,-.498364632482978113685,-53,54, + 5026050879177260.,-6540855830742165.,.498843575109147693176,-53,54, + 5026050879177602.,-6540855830741248.,.499340355257012779726,-53,54, + 5026050879177944.,-6540855830740331.,.499837135351910038946,-53,54, + 5026050879180087.,-6540855830734584.,-.499973977715405300690,-53,54, + 5026050879206236.,-6540855830664472.,.499997485384115110653,-53,54, + 5035712052431186.,-6514972552708246.,.499993870393501412933,-53,54, + 5035712052437135.,-6514972552692321.,.499954538511667215858,-53,54, + 5035712052437330.,-6514972552691799.,.499448962561895213904,-53,54, + 5035712052438760.,-6514972552687971.,.495741405072564882404,-53,54, + 5035712052438825.,-6514972552687797.,.495572879710214012860,-53,54, + 5035712052438831.,-6514972552687780.,-.442904214938714498599,-53,54, + 5035712052454917.,-6514972552644719.,-.499995027124825321434,-53,54, + 5280619103509384.,-5872527693527353.,-.499999521530236991870,-53,54, + 5280619103514960.,-5872527693513017.,-.499667526309425607619,-53,54, + 5280619103516974.,-5872527693507839.,-.467983770801932839365,-53,54, + 5280619103516988.,-5872527693507803.,-.473721818187606020509,-53,54, + 5280619103517051.,-5872527693507641.,-.499543031424140690321,-53,54, + 5388947655807726.,-5596416049732311.,.499996384730872331415,-53,54, + 5388947655824854.,-5596416049689030.,.499974894216884256092,-53,54, + 5388947655825820.,-5596416049686589.,.499856910815389886728,-53,54, + 5388947655827752.,-5596416049681707.,.499620942892821687600,-53,54, + 5388947655827993.,-5596416049681098.,.486133950930266630200,-53,54, + 5388947655828012.,-5596416049681050.,.497518793886587750875,-53,54, + 5388947655828105.,-5596416049680814.,-.499386974802975893040,-53,54, + 5388947655850063.,-5596416049625328.,-.499998565015993930571,-53,54, + 5828367993143487.,-4522924766956869.,-.499996951105991440514,-53,54, + 5828367993162541.,-4522924766911851.,.499988635330318979988,-53,54, + 5828367993164300.,-4522924766907695.,.499829851064323704482,-53,54, + 5828367993164788.,-4522924766906541.,-.499645695870861653307,-53,54, + 5828367993164890.,-4522924766906301.,.496365562751017731035,-53,54, + 5828367993164901.,-4522924766906275.,.486131482798258016019,-53,54, + 5828367993164912.,-4522924766906249.,.475897402845455995650,-53,54, + 5842346135980507.,-8979865272852301.,.499970141954423298162,-53,55, + 5842346135984569.,-8979865272833146.,.499391509525475231001,-53,55, + 5842346135984671.,-8979865272832665.,.496422769715396476028,-53,55, + 5842346135984882.,-8979865272831669.,-.499914525404921650005,-53,55, + 5842346135990611.,-8979865272804653.,-.499992090545912797402,-53,55, + 5842346136016548.,-8979865272682343.,-.499994437485898839308,-53,55, + 6083309738842548.,-7863333978343829.,-.499994941008055246615,-53,55, + 6083309738851777.,-7863333978301807.,.499457910961629460120,-53,55, + 6083309738852030.,-7863333978300654.,-.499365193997152376730,-53,55, + 6083309738852039.,-7863333978300614.,.480913825983782825637,-53,55, + 6083309738852057.,-7863333978300532.,.441471865945494896899,-53,55, + 6083309738854363.,-7863333978290032.,.499629650405546547894,-53,55, + 6083309738859535.,-7863333978266482.,.499973116221298872926,-53,55, + 6083309738877384.,-7863333978185209.,.499998218499649242486,-53,55, + 6466710109371045.,-6163909782283062.,-.496066777691666152574,-53,55, + 6466710109371064.,-6163909782282981.,.498257453459407952206,-53,55, + 6466710109371587.,-6163909782280724.,.499919184534105760165,-53,55, + 6466710109372820.,-6163909782275402.,-.499987289499774538843,-53,55, + 6466710109404710.,-6163909782137782.,.499998240071326976568,-53,55, + 6683043781603686.,-5243929755502899.,.499997191847691202107,-53,55, + 6683043781667881.,-5243929755233873.,-.499972392221176861451,-53,55, + 6683043781680720.,-5243929755180068.,-.499966587170259110854,-53,55, + 6683043781680783.,-5243929755179804.,-.482909155689344959100,-53,55, + 6683043781680804.,-5243929755179716.,-.477223345196202976339,-53,55, + 7533119765558133.,-7492167375861767.,-.499997920903847846494,-53,57, + 7533119765569140.,-7492167375696558.,.499932301383167449012,-53,57, + 7533119765572809.,-7492167375641488.,.499908990988205330774,-53,57, + 7533119765574696.,-7492167375613164.,-.499285346231965228929,-53,57, + 7533119765574798.,-7492167375611634.,.473731175887711191526,-53,57, + 7533119765574801.,-7492167375611588.,-.497650691109068183461,-53,57, + 7593583889909237.,-6588089929943396.,.499839913843350692099,-53,57, + 7593583889909332.,-6588089929941980.,-.451354171912660112467,-53,57, + 7593583889909342.,-6588089929941831.,-.498848286203753698226,-53,57, + 7593583889910774.,-6588089929920502.,.499994545370233090218,-53,57, + 7593583889936693.,-6588089929534432.,.499999012644460902270,-53,57, + 7618936725657077.,-6211056529207839.,.499996525550724552064,-53,57, + 7618936725667601.,-6211056529051581.,-.499970838299319338521,-53,57, + 7618936725667752.,-6211056529049340.,.499934607555725190158,-53,57, + 7618936725668658.,-6211056529035888.,.499367281789529619404,-53,57, + 7618936725669065.,-6211056529029844.,-.494265060418052326611,-53,57, + 7618936725669111.,-6211056529029162.,.499083618330134356495,-53,57, + 7618936725688800.,-6211056528736826.,.499999251831315449849,-53,57, + 8048625784694104.,-7090097050292795.,-.424424393219801414420,-53,91, + 8048625784715448.,-7722161753063739.,-.193137703899617117772,-53,93, + 8048625784723434.,-7590255084376836.,-.267036854472532612851,-53,108, + 8048625784723435.,6023554625762249.,-.464853891446398865065,-53,106, + 8048625784723436.,6972336511309353.,-.423553218900309786817,-53,105, + 8048625784723444.,4832101262341895.,.166574370276953281637,-53,102, + 8048625784723452.,8792660460770117.,.324461418812630588801,-53,102, + 8259236168383140.,5850133386082379.,-.499999503993603189817,-53,58, + 8259236168386073.,5850133386162791.,-.499991182468576074925,-53,58, + 8259236168421269.,5850133387127735.,-.499893599898393542085,-53,58, + 8259236168422852.,5850133387171134.,.498746898973002516489,-53,58, + 8259236168422924.,5850133387173108.,.472153162775190259692,-53,58, + 8259236168422936.,5850133387173437.,.467720873407178860700,-53,58, + 8259236168423073.,5850133387177194.,-.499547763578900769823,-53,58, + 8259236168424202.,5850133387208147.,-.499885657661723567806,-53,58, + 8460168363167060.,5645556187220320.,.499939727838935817859,-53,57, + 8460168363171355.,5645556187277753.,.499901444187964902997,-53,57, + 8460168363172801.,5645556187297089.,.499422890619224256455,-53,57, + 8460168363172973.,5645556187299389.,.493833463547403882855,-53,57, + 8460168363173008.,5645556187299858.,-.484048105920862913596,-53,57, + 8460168363173016.,5645556187299964.,.492436106771820845307,-53,57, + 8460168363187812.,5645556187497817.,.499987301163038234237,-53,57, + 8460168363212859.,5645556187832747.,.499995586034712805205,-53,57, + 8791115980749195.,4990951970738333.,-.499996176198390843398,-53,56, + 8791115980768663.,4990951970863291.,-.499940679421017848108,-53,56, + 8791115980769081.,4990951970865973.,.489787239913222325397,-53,56, + 8791115980769124.,4990951970866249.,.491122887109615946364,-53,56, + 8791115980769382.,4990951970867905.,.499136770257238859221,-53,56, + 8791115980770906.,4990951970877687.,.499962962658932033409,-53,56, + 8791115980780640.,4990951970940166.,.499990581249779847695,-53,56, + 8837821264148775.,5289874317239795.,-.499996338305795935267,-53,56, + 8837821264151769.,5289874317258901.,.499936530643659812031,-53,56, + 8837821264165741.,5289874317348067.,.499623159093507694863,-53,56, + 8837821264166739.,5289874317354436.,.499600769530201938312,-53,56, + 8837821264166980.,5289874317355975.,-.495394617245414339366,-53,56, + 8837821264166993.,5289874317356057.,.467530942802733913512,-53,56, + 8837821264167035.,5289874317356326.,-.498401863196465677521,-53,56, + 9007199254699516.,6359584498213971.,-.499995388731493479161,-53,56, + 9007199254740991.,6359584498473177.,-.085887288705403532969,-53,56, + 4503599627370497.,6359584498473196.,-.336779577498475494204,-52,56, + 4503599627370567.,6359584498474071.,-.378419721182897183941,-52,56, + 4503599627370763.,6359584498476521.,-.495012123579801372861,-52,56, + 4503599627370771.,6359584498476621.,-.499770997149542557396,-52,56, + 4503599627371612.,6359584498487132.,.499952417728636657449,-52,56, + 4721178456908813.,9007199254707187.,.499964805249606480639,-52,56, + 4721178456911456.,9007199254738488.,-.499370401171081375707,-52,56, + 4721178456911564.,9007199254739767.,-.498208162598499014855,-52,56, + 4721178456911667.,9007199254740986.,.289937305637713903170,-52,56, + 4721178456911668.,4503599627370499.,.066270329849053065112,-52,55, + 4721178456911672.,4503599627370523.,-.248522962030177243225,-52,55, + 4721178456913991.,4503599627384254.,.250066067009759540760,-52,55, + 4721178456920859.,4503599627424922.,-.250016147977746929226,-52,55, + 4721178457029273.,4503599628066874.,-.250012742945663009880,-52,55, + 5566718317985475.,9007199254282605.,.000011799698596201459,-52,55, + 5566718318080971.,9007199254736797.,.000039296929754993443,-52,55, + 5566718318081582.,9007199254739703.,-.000630750401006968812,-52,55, + 5566718318081664.,9007199254740093.,.002552647465335931858,-52,55, + 5566718318081828.,9007199254740873.,.008919443171828854353,-52,55, + 5566718318081853.,4503599627370496.,-.043835492157502560222,-52,54, + 5566718318081854.,4503599627370498.,.334232699292752320182,-52,54, + 5566718318081857.,4503599627370505.,.468437273643513065961,-52,54, + 5566718318081865.,4503599627370524.,.492982805245513154876,-52,54, + 5820205584081050.,5085749232778455.,-.499931470932715210974,-52,54, + 5820205584081847.,5085749232780221.,-.499711717611181528813,-52,54, + 5820205584082176.,5085749232780950.,-.498366298853885149191,-52,54, + 5820205584082227.,5085749232781063.,-.492078711149906348960,-52,54, + 5820205584082315.,5085749232781257.,.499162616649175474390,-52,54, + 5820205584085503.,5085749232788322.,-.499958375017882413372,-52,54, + 5820205584089956.,5085749232798189.,-.499985291624335316030,-52,54, + 5820205584167251.,5085749232969459.,.499994631390724358166,-52,54, + 7141873619620573.,7483759110453155.,.499999425784528607068,-52,54, + 7141873619649049.,7483759110493778.,.499941289873747426017,-52,54, + 7141873619650976.,7483759110496527.,.499831987222203500965,-52,54, + 7141873619651405.,7483759110497139.,.498250829260939696272,-52,54, + 7141873619666106.,7483759110518112.,-.499988402260372636493,-52,54, + 7353478233129238.,7772953372112686.,-.490028854513520421510,-52,54, + 7353478233129251.,7772953372112703.,-.498394513012450346279,-52,54, + 7353478233129492.,7772953372113018.,-.499634797509782769041,-52,54, + 7353478233131166.,7772953372115206.,-.499951131390426174998,-52,54, + 7353478233144076.,7772953372132079.,.499998714007319306528,-52,54, + 7777516153040485.,8277209914170631.,-.499973493264014485492,-52,54, + 7777516153040637.,8277209914170793.,.499737215543629840570,-52,54, + 7777516153040789.,8277209914170956.,.499447924338659884227,-52,54, + 7777516153040830.,8277209914171000.,.466475154998317035531,-52,54, + 7777516153040844.,8277209914171015.,.479606404491648300189,-52,54, + 7777516153057772.,8277209914189169.,-.499980000720645115733,-52,54, + 7777516153109633.,8277209914244782.,.499999497947341647760,-52,54, + 8647156908272215.,9007199254735149.,.000031115267694758089,-52,54, + 8647156908279410.,9007199254739545.,.000085120070320257351,-52,54, + 8647156908281778.,4503599627370496.,-.099809570511170741772,-52,53, + 8647156908281779.,4503599627370496.,.205680356798259902110,-52,53, + 8647156908281780.,4503599627370497.,-.488829715892309711382,-52,53, + 8647156908281816.,4503599627370508.,-.491192332752987207466,-52,53, + 8647156908281960.,4503599627370551.,.499357199800967254487,-52,53, + 8647156908282798.,4503599627370807.,.499916284974331858108,-52,53, + 8647156908304383.,4503599627377401.,.499997193414447389962,-52,53, + 9007199254740762.,4597055378328700.,.282688542767032164493,-52,53, + 9007199254740776.,4597055378328701.,.284130469984192518359,-52,53, + 9007199254740958.,4597055378328714.,.302875523806001048879,-52,53, + 9007199254740986.,4597055378328716.,.305759378239915097025,-52,53, + 9007199254740991.,4597055378328717.,-.336582790611177582523,-52,53, + 4503599627370497.,4597055378328717.,-.121988091921834048787,-51,53, + 4503599627385582.,4597055378330875.,-.014634971987921824484,-51,53, + 4916525805337912.,4690381645302310.,-.499364609792194776841,-51,53, + 4916525805338016.,4690381645302312.,.492147289210708046459,-51,53, + 4916525805338051.,4690381645302313.,.498906101372882166864,-51,53, + 4916525805340276.,4690381645302378.,-.499997984943619586485,-51,53, + 5274559627534388.,4642479004937341.,-.499981248434891703753,-51,53, + 5274559627534477.,4642479004937315.,-.499940535683923982444,-51,53, + 5274559627536613.,4642479004936691.,-.498963431704749157251,-51,53, + 5274559627537123.,4642479004936542.,-.487494179930561499182,-51,53, + 5274559627537147.,4642479004936535.,-.498719156323170596822,-51,53, + 5274559627583475.,4642479004923001.,-.499999509765057636620,-51,53, + 5322620345284825.,4627449284045130.,-.499991513411407968898,-51,53, + 5322620345343601.,4627449284025544.,-.499986459556233697131,-51,53, + 5322620345350131.,4627449284023367.,.499945865697673136021,-51,53, + 5322620345353396.,4627449284022279.,.499912014732890187013,-51,53, + 5322620345353399.,4627449284022279.,-.499781737661136941254,-51,53, + 5322620345353555.,4627449284022227.,-.483856862161089271954,-51,53, + 5322620345353714.,4627449284022174.,-.467625739076557501065,-51,53, + 5322620345353717.,4627449284022173.,-.467319491471395526318,-51,53, + 5483662463936927.,4562913602276647.,-.499993532056148672370,-51,53, + 5483662463945718.,4562913602272538.,.499970651431567551450,-51,53, + 5483662463949953.,4562913602270560.,-.499022851067219931016,-51,53, + 5483662463949983.,4562913602270545.,.482094078024708566428,-51,53, + 5483662463949998.,4562913602270538.,.472652542570397867406,-51,53, + 5483662463950060.,4562913602270510.,-.499705803976030948588,-51,53, + 5483662463951543.,4562913602269817.,-.499825610205350873689,-51,53, + 5483662463995498.,4562913602249276.,.499994154275029664040,-51,53, + 5571718185708515.,4518632949142695.,-.499979429067256529779,-51,53, + 5571718185711739.,4518632949140960.,-.497224073738035566157,-51,53, + 5571718185711843.,4518632949140904.,-.464877126929434541617,-51,53, + 5571718185711845.,4518632949140902.,.458821852816800485800,-51,53, + 5571718185711975.,4518632949140832.,.499255536315259967779,-51,53, + 5571718185712224.,4518632949140698.,.499778514670971554281,-51,53, + 5571718185729537.,4518632949131381.,.499996563646879010768,-51,53, + 6099473910238465.,8259719004743686.,-.499992361496169325858,-51,54, + 6099473910240958.,8259719004739080.,.499069336439882352186,-51,54, + 6099473910241004.,8259719004738996.,-.470863741012183573234,-51,54, + 6099473910241017.,8259719004738972.,-.484105697683928155399,-51,54, + 6099473910241030.,8259719004738948.,-.497347654355896848645,-51,54, + 6099473910241259.,8259719004738525.,-.499840583460397995202,-51,54, + 6099473910244884.,8259719004731828.,.499998411626434297474,-51,54, + 7317086400943164.,5197151918823823.,-.499912248128698659032,-51,54, + 7317086400943965.,5197151918821390.,-.499336791615696536172,-51,54, + 7317086400944232.,5197151918820579.,-.499144972864978892170,-51,54, + 7317086400944312.,5197151918820336.,-.495342180738396982650,-51,54, + 7317086400948157.,5197151918808656.,.499929511243709719327,-51,54, + 7317086400958677.,5197151918776702.,.499996617219354810823,-51,54, + 7404092400506310.,4930635815018967.,-.499999193138670716473,-51,54, + 7404092400511484.,4930635815002988.,.456909782220306317246,-51,54, + 7404092400511495.,4930635815002954.,.487355471947212560471,-51,54, + 7404092400511563.,4930635815002744.,.493747008439323226710,-51,54, + 7404092400511631.,4930635815002535.,-.499861455071133863847,-51,54, + 7404092400512255.,4930635815000607.,.499966762007130792339,-51,54, + 7543049467984493.,8992872911982931.,.499996592004343241495,-51,55, + 7543049467990820.,8992872911942955.,-.499207104286956163023,-51,55, + 7543049467990864.,8992872911942676.,.487838104585059530073,-51,55, + 7543049467990867.,8992872911942658.,-.467590631173732651932,-51,55, + 7543049467990977.,8992872911941963.,-.499977609001929128431,-51,55, + 7958730718296152.,6300617006670519.,.499994990338806962566,-51,55, + 7958730718301553.,6300617006634879.,.498985930360990470377,-51,55, + 7958730718301650.,6300617006634239.,.417501412787707654024,-51,55, + 7958730718301690.,6300617006633975.,.466373776673880847468,-51,55, + 7958730718301715.,6300617006633810.,.496919004102403162674,-51,55, + 7958730718301882.,6300617006632709.,-.499038876681696252864,-51,55, + 7958730718305810.,6300617006606789.,-.499772746593408459272,-51,55, + 7958730718306792.,6300617006600309.,-.499956215068093532388,-51,55, + 7958730718317923.,6300617006526858.,-.499999203828695950746,-51,55, + 8036233885297131.,5788045869529183.,-.499997308431091567275,-51,55, + 8036233885308935.,5788045869450957.,-.499987126210613966579,-51,55, + 8036233885314837.,5788045869411844.,-.499982051655464952948,-51,55, + 8036233885315258.,5788045869409054.,-.498795651469296422156,-51,55, + 8036233885315317.,5788045869408663.,-.496254089452443363019,-51,55, + 8036233885315368.,5788045869408325.,-.477107993472662509547,-51,55, + 8036233885315376.,5788045869408272.,-.493712527436693228662,-51,55, + 8036233885315620.,5788045869406654.,.499849186650628867514,-51,55, + 8062587751701696.,5613290570722350.,.457721145009828254367,-51,55, + 8062587751701718.,5613290570722204.,.487855712701204202973,-51,55, + 8062587751701729.,5613290570722132.,-.497077003453159385122,-51,55, + 8062587751701792.,5613290570721713.,.498308349480277850272,-51,55, + 8062587751701992.,5613290570720386.,.499531692118638767405,-51,55, + 8062587751703718.,5613290570708935.,-.499910861384503882630,-51,55, + 8062587751706970.,5613290570687357.,.499980686726073642188,-51,55, + 8062587751724956.,5613290570568020.,.499995818295999544488,-51,55, + 8171981788130374.,4886032356926990.,-.499677319930971978731,-51,55, + 8171981788130541.,4886032356925878.,-.496038989328178996134,-51,55, + 8171981788130550.,4886032356925818.,-.423986624205990624465,-51,55, + 8171981788130582.,4886032356925604.,.498866229561692650238,-51,55, + 8171981788141366.,4886032356853798.,-.499722059406111010679,-51,55, + 8171981788204570.,4886032356432944.,-.499979660248389605908,-51,55, + 8171981788210066.,4886032356396347.,.499997911589783504587,-51,55, + 8306327458441072.,7981247470408200.,-.499998182145589463550,-51,56, + 8306327458476933.,7981247469929988.,-.499973930702722552381,-51,56, + 8306327458497425.,7981247469656724.,-.499960054606509401195,-51,56, + 8911899527169288.,7749462677656648.,.308309402527603162332,-51,89, + 8911899527234764.,8072601222781198.,-.180808462575893383477,-51,93, + 8911899527238682.,4544674257346613.,-.059886696548041206459,-51,95, + 8911899527239313.,4875593022962201.,.240856970151281425405,-51,101, + 8911899527239321.,4999243878995010.,-.238913499144746362415,-51,103, + 8911899527239323.,5493847303126252.,-.021049841583599415749,-51,105, + 8911899527239324.,-7030867213202561.,-.332823735496443291181,-51,107, + 4580018241281892.,-6292553808126013.,-.499964909753848123677,-50,57, + 4580018241340096.,-6292553811025902.,.499985254774529530930,-50,57, + 4580018241350013.,-6292553811519995.,.494415487074702133251,-50,57, + 4580018241350188.,-6292553811528714.,.499157387789275233451,-50,57, + 4580018241350442.,-6292553811541368.,-.499674366881868024288,-50,57, + 4580018241352124.,-6292553811625170.,-.499812181075540469496,-50,57, + 4580018241354647.,-6292553811750874.,.499981181670887814548,-50,57, + 4621382166156096.,-8339476104765583.,-.499990651552969533644,-50,57, + 4621382166193377.,-8339476106597539.,.497299719688010195331,-50,57, + 4621382166193406.,-8339476106598964.,.463232011415845508287,-50,57, + 4621382166193413.,-8339476106599308.,.489491530110939944619,-50,57, + 4621382166193492.,-8339476106603189.,-.499865330271669068776,-50,57, + 4621382166197719.,-8339476106810901.,.499989904376170222707,-50,57, + 5281225719093961.,-8902482668909003.,-.499985314085326756486,-50,55, + 5281225719133885.,-8902482669224954.,.497294474410424716450,-50,55, + 5281225719133897.,-8902482669225048.,-.468140666382573927447,-50,55, + 5281225719134001.,-8902482669225872.,.498088113462838281897,-50,55, + 5281225719134291.,-8902482669228166.,-.499927788404479118911,-50,55, + 5281225719136808.,-8902482669248085.,-.499948534164268161415,-50,55, + 5281225719141842.,-8902482669287923.,-.499989863729231012981,-50,55, + 5338749892254175.,-4671741663397352.,-.499991960210879199125,-50,54, + 5338749892279185.,-4671741663490097.,-.499910451382527481108,-50,54, + 5338749892280594.,-4671741663495323.,.481901499227998628143,-50,54, + 5338749892280601.,-4671741663495348.,-.476315190846622415842,-50,54, + 5338749892280642.,-4671741663495501.,.482701338720621348344,-50,54, + 5338749892281386.,-4671741663498260.,.495098852146714342748,-50,54, + 5338749892281674.,-4671741663499328.,.499897890252872988617,-50,54, + 5338749892311686.,-4671741663610622.,.499999644386141182062,-50,54, + 6015259048373391.,-6107281808455243.,-.499995702089896205536,-50,54, + 6015259048405566.,-6107281808470600.,-.499669933682742743424,-50,54, + 6015259048405610.,-6107281808470622.,.499304874258057266527,-50,54, + 6015259048405830.,-6107281808470727.,.494178914104270360593,-50,54, + 6015259048405872.,-6107281808470747.,.447745776283673306987,-50,54, + 6015259048405874.,-6107281808470748.,.493153722101955588268,-50,54, + 6015259048406557.,-6107281808471074.,.499967220190931158112,-50,54, + 6015259048420211.,-6107281808477590.,-.499986176168443203156,-50,54, + 6321255966185230.,-6027479342763533.,-.499996992749774909447,-50,54, + 6321255966218105.,-6027479342731196.,.499990053528034547732,-50,54, + 6321255966223064.,-6027479342726318.,.496703359883788936505,-50,54, + 6321255966223067.,-6027479342726315.,.447699556715574399372,-50,54, + 6321255966223125.,-6027479342726257.,-.499707304528437279831,-50,54, + 6321255966223676.,-6027479342725716.,.499927514425108357362,-50,54, + 6436442976885188.,-5884062187190102.,-.499851447353214340678,-50,54, + 6436442976885351.,-5884062187189858.,.461239581623865533463,-50,54, + 6436442976885363.,-5884062187189840.,.495184933455027651242,-50,54, + 6436442976885365.,-5884062187189836.,-.499157507906383614060,-50,54, + 6436442976886602.,-5884062187187977.,-.499957486561138088560,-50,54, + 6436442976896677.,-5884062187172837.,.499994434042189439033,-50,54, + 6436442976915413.,-5884062187144679.,-.499994531565241985922,-50,54, + 6591998865334922.,-5598176374803558.,.499990910337697493761,-50,54, + 6591998865359009.,-5598176374751420.,-.499929524183203140192,-50,54, + 6591998865359477.,-5598176374750408.,.499449302669556597695,-50,54, + 6591998865363920.,-5598176374740791.,.499962440657483393848,-50,54, + 6591998865371949.,-5598176374723412.,.499989650710570779012,-50,54, + 6736707155663803.,-5243349388734397.,.497326922137744539524,-50,54, + 6736707155663829.,-5243349388734325.,-.499489112404438451173,-50,54, + 6736707155665085.,-5243349388730895.,-.499525239592316089898,-50,54, + 6736707155679529.,-5243349388691450.,-.499940279223491344674,-50,54, + 6736707155681413.,-5243349388686305.,-.499994357442697557165,-50,54, + 6919987110174667.,-4682994568177240.,.499986229366724407171,-50,54, + 6919987110219497.,-4682994568026258.,-.499796501276293579920,-50,54, + 6919987110219508.,-4682994568026221.,-.453376639009368204151,-50,54, + 6919987110219777.,-4682994568025316.,.499981811093512166852,-50,54, + 7117199285692383.,-7920909175317267.,-.499987743048530125218,-50,55, + 7117199285729702.,-7920909175023287.,-.499988883042445661936,-50,55, + 7117199285739195.,-7920909174948506.,-.499961234581538143482,-50,55, + 7117199285740501.,-7920909174938218.,-.499746713030404377063,-50,55, + 7117199285740599.,-7920909174937447.,.494143810379992112918,-50,55, + 7117199285740656.,-7920909174936997.,-.489001497409614962810,-50,55, + 7117199285740664.,-7920909174936934.,-.469092066922608945907,-50,55, + 7662745966054633.,-6100854586252900.,.499995819827082562230,-50,56, + 7662745966061484.,-6100854586121172.,.492068838509483139084,-50,56, + 7662745966061506.,-6100854586120749.,.498319839473448246109,-50,56, + 7662745966061673.,-6100854586117537.,-.499683925900100297506,-50,56, + 7662745966062152.,-6100854586108327.,-.499946222633109361977,-50,56, + 7978184228645126.,-5067686797185853.,-.209655523290217375318,-50,89, + 7978184228675647.,-8273855591115085.,.280625361765298970475,-50,97, + 7978184228675759.,-7087074635430869.,.028220601463005755743,-50,98, + 7978184228675842.,-4868300447957133.,.271716823346515155126,-50,104, + 7978184228675843.,8604441260563682.,.482526513180378055612,-50,108, + 7978184228677253.,7444441206332854.,.338172823351774715554,-50,94, + 8099289753648997.,4608113249915832.,.499997642424196572084,-50,57, + 8099289753654219.,4608113250112275.,.499957827225982037347,-50,57, + 8099289753659441.,4608113250308718.,.499917786243336211575,-50,57, + 8099289753660662.,4608113250354650.,.499716893843667754595,-50,57, + 8099289753660945.,4608113250365296.,.491480321607303740314,-50,57, + 8099289753661000.,4608113250367366.,-.499519719010293189355,-50,57, + 8698942762432770.,6183052846287372.,.499844906582156589561,-50,55, + 8698942762433480.,6183052846292351.,.410560495886496618026,-50,55, + 8698942762433487.,6183052846292400.,.498412621400586003745,-50,55, + 8698942762434762.,6183052846301342.,-.499950236035427434354,-50,55, + 8698942762438985.,6183052846330955.,.499981974882434605160,-50,55, + 8698942762526951.,6183052846947821.,.499967658597166852482,-50,55, + 8854932537026494.,7204883357638958.,-.499999349727454450706,-50,55, + 8854932537032914.,7204883357677933.,-.499934955584936585771,-50,55, + 8854932537040618.,7204883357724703.,-.499858029136705817684,-50,55, + 8854932537040660.,7204883357724957.,.476777903226874793863,-50,55, + 4775738403008703.,4859087237251554.,.499959536794291536088,-49,54, + 4775738403081358.,4859087237322935.,-.497516788241464278254,-49,54, + 4775738403081472.,4859087237323047.,-.498063440002342183363,-49,54, + 4775738403081871.,4859087237323439.,-.499976722755658139576,-49,54, + 5140278602114359.,8440886838401176.,.499996636412097487917,-49,55, + 5140278602120773.,8440886838346030.,.498080196339354612524,-49,55, + 5140278602120778.,8440886838345988.,-.490695853671509312171,-49,55, + 5140278602120952.,8440886838344491.,.499897605561691042185,-49,55, + 5140278602123714.,8440886838320745.,-.499992527821955326897,-49,55, + 5150039580946893.,8355780111634656.,-.499999767015611453532,-49,55, + 5150039580948573.,8355780111619804.,.483586215889809927377,-49,55, + 5150039580948648.,8355780111619141.,.491782017075827798496,-49,55, + 5150039580948723.,8355780111618478.,.499977818123190979948,-49,55, + 5154708221428946.,8314241754732978.,.499987521905856127370,-49,55, + 5154708221456622.,8314241754485151.,-.499919154972062757619,-49,55, + 5154708221457878.,8314241754473904.,-.499770835310127017018,-49,55, + 5154708221458209.,8314241754470940.,-.478234939031020458543,-49,55, + 5154708221458319.,8314241754469955.,-.486183735423702425638,-49,55, + 5154708221458495.,8314241754468379.,-.498901810268557941819,-49,55, + 5154708221462285.,8314241754434440.,.499953098444926739327,-49,55, + 5154708221476123.,8314241754310526.,.499990803556961309124,-49,55, + 5365973368504555.,5932413993625008.,.499994511792179543145,-49,55, + 5365973368512068.,5932413993525069.,.499967733423691049671,-49,55, + 5365973368513468.,5932413993506446.,.499829539496494047783,-49,55, + 5365973368513981.,5932413993499623.,-.499506820961464262751,-49,55, + 5365973368514312.,5932413993495219.,.491174784349799638165,-49,55, + 5365973368514355.,5932413993494647.,.499027681585930525137,-49,55, + 5387110469176429.,5647687781089723.,.499989694506889968482,-49,55, + 5387110469216594.,5647687780542057.,.499988534751721489832,-49,55, + 5387110469217916.,5647687780524031.,.495954714907124780980,-49,55, + 5387110469217938.,5647687780523732.,-.482932383682446086714,-49,55, + 5387110469217949.,5647687780523582.,-.472375932980006627233,-49,55, + 5387110469218108.,5647687780521413.,.498394581512248773723,-49,55, + 5387110469218204.,5647687780520104.,.499614514603443967692,-49,55, + 5387110469219057.,5647687780508474.,-.499962544431040129269,-49,55, + 5443187231493039.,4860367723858699.,.499898744874573864968,-49,55, + 5443187231493265.,4860367723855441.,-.499531057259043495397,-49,55, + 5443187231493717.,4860367723848923.,-.498390663470338330684,-49,55, + 5443187231493729.,4860367723848749.,.457391824825013623601,-49,55, + 5443187231496567.,4860367723807824.,.499950255366129122404,-49,55, + 5443187231500095.,4860367723756950.,-.499998392059252006472,-49,55, + 5754668666090594.,5037545710846897.,.088933789754694320742,-49,92, + 5754668666091174.,7527272858682946.,.453985239490895928846,-49,93, + 5754668666092887.,4961313895799393.,-.456080924974952782368,-49,104, + 5754668666092888.,-8070242612002593.,.486579190083951246903,-49,105, + 5754668666092914.,-7435701142275583.,-.010778613120386218685,-49,99, + 5754668666111105.,-5001589819099418.,-.109712297154564657443,-49,89, + 6866978591796613.,-7555238914153762.,-.499991598615262139195,-49,55, + 6866978591811235.,-7555238914061065.,.499991387925081398502,-49,55, + 6866978591823048.,-7555238913986175.,.492731870799853981637,-49,55, + 6866978591823051.,-7555238913986155.,-.488392464572462628333,-49,55, + 6866978591823060.,-7555238913986098.,-.431765470688174944239,-49,55, + 6866978591823260.,-7555238913984831.,.493278838330515121969,-49,55, + 6866978591825486.,-7555238913970719.,.499022059587398244336,-49,55, + 6866978591825857.,-7555238913968367.,.499979274170292229557,-49,55, + 6871807797869975.,-7524356769217460.,.499985070805124930864,-49,55, + 6871807797875428.,-7524356769182288.,.480283812534505182317,-49,55, + 6871807797875437.,-7524356769182229.,-.469501133049214485082,-49,55, + 6871807797875468.,-7524356769182030.,.481239609954334068152,-49,55, + 6871807797876128.,-7524356769177773.,.497010272649249111283,-49,55, + 6871807797876248.,-7524356769176999.,.499877666933736514695,-49,55, + 6871807797897178.,-7524356769041999.,-.499995956479908049622,-49,55, + 7521629200561852.,-5968395791876093.,.423855433236695859713,-49,90, + 7521629200574196.,-5262839588015622.,.229343440906477071433,-49,97, + 7521629200574244.,-4625289116888022.,.102830686839302526973,-49,98, + 7521629200574278.,-7133538533252203.,.101520108366512253273,-49,102, + 7521629200574281.,-4932593896436112.,.282035797469921290667,-49,104, + 7521629200574282.,5869185698176239.,-.035725554127437291364,-49,105, + 7521629200574292.,5100403769020648.,.372271865076020060457,-49,100, + 7521629200575311.,7908466556633758.,-.438287778735845379724,-49,94, + 7521629200576649.,4547013090698733.,.420118884225148678322,-49,92, + 7521629200625675.,6169452865664590.,.200052824448322378682,-49,88, + 8003153055431951.,5755814996913121.,.499990158742631673124,-49,55, + 8003153055436474.,5755814996951664.,.499944325133391882170,-49,55, + 8003153055440997.,5755814996990207.,.499898098188784235973,-49,55, + 8003153055441206.,5755814996991989.,-.494797834695207061958,-49,55, + 8003153055441229.,5755814996992185.,-.498998822575843252101,-49,55, + 8003153055474560.,5755814997276216.,.499984966034295564637,-49,55, + 8026599925705147.,5950282248230233.,.499990922258601680887,-49,55, + 8026599925726631.,5950282248403485.,-.499980272186140527171,-49,55, + 8026599925729965.,5950282248430371.,-.499511157668355599081,-49,55, + 8026599925729981.,5950282248430500.,-.472514305819262482133,-49,55, + 8026599925729996.,5950282248430620.,.490295242784663357355,-49,55, + 8026599925730261.,5950282248432757.,.499930600720164677112,-49,55, + 8026599925739188.,5950282248504746.,.499985790252766979582,-49,55, + 8622920769847497.,6800990556369263.,.499985087388076813982,-49,55, + 8622920769879526.,6800990556199009.,.499987541918388071859,-49,55, + 8622920769886056.,6800990556164298.,.499954196517991444124,-49,55, + 8622920769889671.,6800990556145083.,-.467139683952220251999,-49,55, + 8622920769889687.,6800990556144997.,.482936801725155014634,-49,55, + 8622920769889763.,6800990556144593.,.495800108619817991376,-49,55, + 8622920769889782.,6800990556144492.,.499015935324672305459,-49,55, + 8622920769890102.,6800990556142792.,-.499454352882027300851,-49,55, + 8622920769891965.,6800990556132889.,-.499923604420309959202,-49,55, + 8862008738793058.,4985992923407248.,-.499999842372094016129,-49,55, + 8862008738803656.,4985992923305302.,-.499980262596576729161,-49,55, + 8862008738804410.,4985992923298049.,-.499035358011596376700,-49,55, + 8862008738804565.,4985992923296557.,.499832625320806131702,-49,55, + 4644596759933455.,4677714777446530.,-.446883088313435277973,-48,100, + 4644596759933460.,8118965503030434.,-.030070098991721318017,-48,105, + 4644596759933461.,-5048653993005313.,.478011228646043974260,-48,103, + 4644596759933464.,-6570960024823517.,.394659030728422769316,-48,101, + 4644596759935693.,-7716810115755882.,-.397511446821863517755,-48,92, + 4875072239701549.,-5045409349726202.,-.499984185673821124046,-48,55, + 4875072239719981.,-5045409350025597.,-.499980687447948216633,-48,55, + 4875072239721741.,-5045409350054186.,.435784726240443944071,-48,55, + 4875072239721749.,-5045409350054316.,.490038205867495383869,-48,55, + 4875072239722082.,-5045409350059725.,.498339299148326930970,-48,55, + 4875072239722156.,-5045409350060926.,-.499816012446770226850,-48,55, + 5135851371772617.,-6625547103573705.,-.499996479533001886408,-48,55, + 5135851371776913.,-6625547103553029.,.499902773729163878704,-48,55, + 5135851371777432.,-6625547103550531.,.489415845494237251495,-48,55, + 5135851371777448.,-6625547103550454.,.498726460777319950093,-48,55, + 5387492754232222.,-6313804012650352.,-.498940355141253094416,-48,56, + 5387492754232384.,-6313804012643623.,-.493670122612104100597,-48,56, + 5387492754232397.,-6313804012643084.,.488234278845570766099,-48,56, + 5387492754232775.,-6313804012627382.,-.499468504219598934877,-48,56, + 5387492754233328.,-6313804012604412.,-.499996631285353291514,-48,56, + 5528537190617034.,-5686515985812467.,-.118615812794753282400,-48,90, + 5528537190624146.,-6955094704728450.,.216460362086398893871,-48,97, + 5528537190624170.,-4522297343157689.,-.123193546629367635528,-48,97, + 5528537190624214.,-7957612408915884.,.231306073228583669174,-48,104, + 5528537190624215.,5017306852794707.,.153349629548183621443,-48,104, + 5528537190625391.,7452891776671301.,.464305102876024209139,-48,93, + 5528537190627169.,4679312598380815.,.083906901230352824887,-48,91, + 5528537190691535.,6664097457884915.,.494853457900064364733,-48,87, + 5837710520343142.,5621153054394437.,.499733394828497158149,-48,55, + 5837710520424530.,5621153055185345.,.499982570929038043794,-48,55, + 5837710520427382.,5621153055213061.,-.485322379194767236861,-48,55, + 5837710520427396.,5621153055213197.,-.436863148288894693256,-48,55, + 5837710520427460.,5621153055213818.,.498950478528136304630,-48,55, + 5837710520427708.,5621153055216229.,-.499771720365142629650,-48,55, + 5837710520429235.,5621153055231068.,-.499968583731795634471,-48,55, + 5941744889464041.,6223195658939529.,.499992887768222828882,-48,55, + 5941744889480290.,6223195658967932.,.499889535517789203755,-48,55, + 5941744889480405.,6223195658968134.,-.481894764496798868001,-48,55, + 5941744889480413.,6223195658968148.,-.498018889753995238677,-48,55, + 5941744889486988.,6223195658979640.,.499963958220607031847,-48,55, + 5941744889490337.,6223195658985494.,.499999843158428042027,-48,55, + 6412570813986268.,8572588605470086.,-.248567594541100055515,-48,88, + 6412570814028736.,6128525235275287.,-.258837682051081492067,-48,91, + 6412570814032075.,4873162722396432.,.040184575097284665013,-48,93, + 6412570814032562.,8033966358281334.,.397606169077847231451,-48,95, + 6412570814032903.,5393548151814144.,-.435211113227945411065,-48,104, + 6412570814032904.,-6653364538180342.,.161191918281403615222,-48,104, + 6412570814032906.,-7686797479542327.,.247479572040034614256,-48,102, + 6412570814032909.,-8360990998519093.,.415351076266325588145,-48,101, + 6412570814032944.,-7633279252155597.,-.148403171010854228186,-48,98, + 6412570814033014.,-5202397501709228.,.393997460460055420962,-48,96, + 7085432669174717.,-7815230635612249.,-.499956320243625015637,-48,56, + 7085432669175493.,-7815230635588717.,.499383144376655350364,-48,56, + 7085432669175539.,-7815230635587322.,.496766671125268047952,-48,56, + 7085432669175576.,-7815230635586199.,-.440120491997259283805,-48,56, + 7085432669175585.,-7815230635585927.,.494150198073550790938,-48,56, + 7085432669175858.,-7815230635577647.,-.499638866146266171195,-48,56, + 7085432669177775.,-7815230635519512.,-.499981657481205316539,-48,56, + 7085432669180833.,-7815230635426776.,.499993887694860120793,-48,56, + 7085432669218670.,-7815230634279329.,-.499908678387997950652,-48,56, + 7092287361596027.,-7605159474817724.,-.499983644216769986734,-48,56, + 7092287361616822.,-7605159474173838.,-.491558614447780688993,-48,56, + 7092287361616877.,-7605159474172135.,-.498989993668246574196,-48,56, + 7092287361617288.,-7605159474159409.,-.499977200523279626894,-48,56, + 7092287361632494.,-7605159473688578.,-.499994222663421484507,-48,56, + 7296663901698871.,-8552280137011805.,.166601980259718786299,-48,93, + 7296663901699749.,-7421505293289021.,.259436077042149048236,-48,94, + 7296663901700401.,-7388785423944242.,.087177593844637046226,-48,99, + 7296663901700421.,-5288353795969796.,-.461733827474289524145,-48,103, + 7296663901700422.,5732109654193586.,-.081811264491934389495,-48,107, + 7296663901700427.,7147827525042891.,.355015117541922144720,-48,101, + 7296663901700514.,8122600571784659.,.094492296794686840549,-48,97, + 7296663901700627.,4523099374888806.,.067409252129132503517,-48,95, + 7296663901709520.,6271145256917772.,.449775975067644584277,-48,90, + 8046051565498932.,4953751046447475.,.499969874018028551112,-48,56, + 8046051565531384.,4953751045337018.,-.499866632169783953530,-48,56, + 8046051565532066.,4953751045313680.,.499150073621978937920,-48,56, + 8046051565532075.,4953751045313373.,-.467138562406541556498,-48,56, + 8046051565532185.,4953751045309609.,-.499555225358739803881,-48,56, + 8046051565537554.,4953751045125890.,-.499965749634633416944,-48,56, + 8046051565540639.,4953751045020325.,.499983859747054146722,-48,56, + 8048695210892380.,4863087252153755.,.499943306646596772755,-48,56, + 8048695210935742.,4863087250663361.,-.499990409509718776782,-48,56, + 8048695210939265.,4863087250542271.,.491546627422490607922,-48,56, + 8048695210939300.,4863087250541069.,-.493209607671204833917,-48,56, + 8048695210939548.,4863087250532545.,-.499482361196365323456,-48,56, + 8048695210940203.,4863087250510032.,-.499920497275205567944,-48,56, + 8082833509081564.,7318793474415422.,.499999992220787988908,-48,57, + 8082833509086878.,7318793474032177.,.450327302712959263944,-48,57, + 8082833509086886.,7318793474031600.,.491276231776433217794,-48,57, + 8082833509086936.,7318793474027994.,.497207038302137764713,-48,57, + 8082833509086961.,7318793474026192.,-.499827558513247676033,-48,57, + 8082833509088646.,7318793473904670.,-.499959504099686556481,-48,57, + 8180797238491817.,8273865970384063.,-.196192710188181074010,-48,90, + 8180797238498067.,8410737007054772.,.125322847549947366899,-48,91, + 8180797238504317.,8759746347124326.,-.279766517877217907961,-48,96, + 8180797238504343.,7676549581549647.,.143818879854539338902,-48,96, + 8180797238504512.,5086164842514562.,.481687495273117340267,-48,99, + 8180797238504525.,6027022241727584.,.088691254700703837793,-48,102, + 8180797238504527.,5554889935803585.,-.274558121137856945934,-48,105, + 8180797238504528.,-7887877031602478.,.322251950731206367194,-48,104, + 8383589335478138.,-6950454069806800.,-.499580791972827621934,-48,56, + 8383589335478287.,-6950454069810930.,.499037903330019825526,-48,56, + 8383589335478339.,-6950454069812370.,-.494732752867076093262,-48,56, + 8383589335478370.,-6950454069813230.,.451288586824845420129,-48,56, + 8383589335478384.,-6950454069813618.,.491427256391807792679,-48,56, + 8383589335478935.,-6950454069828887.,.499742051375718238060,-48,56, + 8383589335489050.,-6950454070109188.,.499935984223260123818,-48,56, + 8383589335493385.,-6950454070229316.,-.499978050527187557349,-48,56, + 8383589335530307.,-6950454071252477.,-.499868575563862507066,-48,56, + 8743148203168804.,-4693759710657680.,.499998535395506793353,-48,55, + 8743148203172796.,-4693759710626288.,.499678731547956512458,-48,55, + 8743148203174792.,-4693759710610592.,.499519178290285070163,-48,55, + 8743148203174924.,-4693759710609553.,-.488467317037444685164,-48,55, + 8743148203175034.,-4693759710608688.,-.478456062367325371040,-48,55, + 8743148203175049.,-4693759710608571.,.477454563324206731401,-48,55, + 8853620772981558.,-6994122584375426.,-.499948024624998224905,-48,56, + 8853620773014160.,-6994122583494459.,-.499866147072832941720,-48,56, + 8853620773014251.,-6994122583492001.,.490288186527199934363,-48,56, + 8853620773014252.,-6994122583491973.,-.487841985627121058874,-48,56, + 8853620773014297.,-6994122583490758.,.496300267516643329347,-48,56, + 8853620773017818.,-6994122583395614.,.499964654099321830343,-48,56, + 8853620773029295.,-6994122583085484.,.499987940556778122364,-48,56, + 8913783750982966.,-5227414243289126.,-.499976728082751216522,-48,56, + 8913783750986341.,-5227414243182881.,.499919628441066329447,-48,56, + 8913783750986620.,-5227414243174097.,-.497422240921361573551,-48,56, + 8913783750986670.,-5227414243172523.,-.482608955347233260859,-48,56, + 8913783750986672.,-5227414243172461.,.477983576078979146919,-48,56, + 8913783750986747.,-5227414243170099.,-.499796495257738112506,-48,56, + 8913783750993497.,-5227414242957608.,.499998522879175893531,-48,56, + 8959635272248240.,-7449937172420294.,.499998316479078297384,-48,57, + 8959635272253933.,-7449937172034216.,-.481816114191063530033,-48,57, + 8959635272253944.,-7449937172033471.,.495208311718803758644,-48,57, + 8959635272254031.,-7449937172027571.,.495310589738161348398,-48,57, + 8959635272256293.,-7449937171874171.,.497970047947649025733,-48,57, + 8959635272258033.,-7449937171756170.,-.499983913928677955612,-48,57, + 4532479539290511.,-5476384334844258.,-.013501979491395179954,-47,87, + 4532479539323035.,-7171987020381606.,.093001955343852678422,-47,91, + 4532479539325934.,-4620056837816075.,-.497173593945141704177,-47,103, + 4532479539325935.,5511657125149032.,-.466869517144066204130,-47,103, + 4532479539325961.,8404256880070032.,.178450380405075172033,-47,98, + 4532479539326853.,4544152868713952.,.326389542236166655003,-47,92, + 4532479539327522.,7853780134935526.,-.041353320631456287565,-47,92, + 4532479539336942.,6806963332967936.,-.301686564903106092589,-47,89, + 4562160286576246.,8456014722525798.,-.499832428609509358449,-47,58, + 4562160286576295.,8456014722539505.,-.491106078193176456693,-47,58, + 4562160286581402.,8456014723968111.,-.499980433248738684813,-47,58, + 4562160286590111.,8456014726404321.,.499934043585410013086,-47,58, + 4562160286653024.,8456014744003281.,.498560718875650571033,-47,58, + 4971105597101206.,7621840929766970.,.499999211505443631089,-47,61, + 4971105597105896.,7621840919449989.,.498663816077917728435,-47,61, + 4971105597105942.,7621840919348799.,.493107014647713401217,-47,61, + 4971105597106255.,7621840918660267.,.498774869027973013971,-47,61, + 4971105597109845.,7621840910763047.,.499885807597248726796,-47,61, + 4971105597110204.,7621840909973325.,.499996942361048696771,-47,61, + 4974570919678366.,8526697591772415.,.414880526994061874685,-47,88, + 4974570919705173.,4920407864965957.,-.439291965698825390386,-47,91, + 4974570919705771.,7016977376092592.,.269457706365610367001,-47,92, + 4974570919706967.,5477202673659876.,-.248011989562525791845,-47,94, + 4974570919707132.,4721183562927241.,-.361059266503648999212,-47,95, + 4974570919707235.,6641136683179800.,.265057722709259418491,-47,98, + 4974570919707256.,4713337497868265.,-.490772721884798538550,-47,102, + 4974570919707257.,-7816417456075461.,.436853960953281638575,-47,108, + 5002636990878089.,-7641801759347803.,-.499973273901762250857,-47,58, + 5002636990887542.,-7641801761880219.,-.499626914651845550889,-47,58, + 5002636990887666.,-7641801761913439.,.460496370513605437462,-47,58, + 5002636990887676.,-7641801761916117.,-.494332396517388042223,-47,58, + 5002636990889800.,-7641801762485127.,-.499961518167959484870,-47,58, + 5002636990907931.,-7641801767342340.,-.499909845611207784973,-47,58, + 5103591057892561.,-7577237412434052.,-.499978425374011053303,-47,56, + 5103591057893929.,-7577237412489495.,-.499744085867021223316,-47,56, + 5103591057898489.,-7577237412674305.,-.498957676323953397929,-47,56, + 5103591057898523.,-7577237412675683.,-.468250027861269336424,-47,56, + 5103591057898542.,-7577237412676454.,.490086599417432495303,-47,56, + 5103591057905066.,-7577237412940862.,.499997900477432905966,-47,56, + 5103591057943037.,-7577237414479769.,-.499619802212454341743,-47,56, + 5278026714984474.,-7823767949495931.,-.499463326304606584922,-47,56, + 5278026714984528.,-7823767949493900.,-.468342307648720073576,-47,56, + 5278026714984541.,-7823767949493412.,.483594234048467701671,-47,56, + 5278026714984577.,-7823767949492057.,-.495658419371061945161,-47,56, + 5278026714985244.,-7823767949466971.,.499855009598618897333,-47,56, + 5278026714991028.,-7823767949249425.,.499936718379924905373,-47,56, + 5278026714996812.,-7823767949031878.,-.499968596672625496938,-47,56, + 5416670203668992.,-8256442505072853.,.451833214422617296261,-47,86, + 5416670203785751.,-5559187976011485.,.044143500952742881026,-47,99, + 5416670203785760.,-5536774871378962.,-.483037450707754946116,-47,103, + 5416670203785761.,7462057533865346.,.104293057808923028984,-47,104, + 5416670203785762.,6499416202622153.,.438176246284833311793,-47,102, + 5416670203785776.,8921755208850438.,-.452340980675957906646,-47,99, + 5416670203785968.,7508462429286736.,-.082419912849124509623,-47,95, + 5416670203786096.,6071182124221161.,-.290046798294254427356,-47,94, + 5416670203787145.,6264829718842088.,.094822521446147439831,-47,92, + 5416670203788194.,5505931953313983.,.347406389362171440207,-47,91, + 5455740882056476.,5061666048913328.,.499820989558109648911,-47,57, + 5455740882081114.,5061666052011353.,-.499997171620669177034,-47,57, + 5455740882091927.,5061666053370998.,-.499889589119685256129,-47,57, + 5455740882092167.,5061666053401176.,-.491934181352216280428,-47,57, + 5455740882092175.,5061666053402181.,.441664331963665033254,-47,57, + 5455740882092198.,5061666053405074.,-.499239942352495814911,-47,57, + 5455740882093433.,5061666053560365.,-.499969670964230826086,-47,57, + 5660976669583560.,8941402591259933.,.494409791953538691436,-47,56, + 5660976669583726.,8941402591258043.,.499915289790043980612,-47,56, + 5660976669586997.,8941402591220801.,.499963868495732775057,-47,56, + 5660976669590268.,8941402591183560.,-.499992361279737915784,-47,56, + 5660976669608431.,8941402590976764.,.499857486550529817324,-47,56, + 5762007131371577.,5702906145767722.,.499980109694693407989,-47,56, + 5762007131379916.,5702906145352165.,-.499210717674998168007,-47,56, + 5762007131379934.,5702906145351268.,-.494532172292342320849,-47,56, + 5762007131380060.,5702906145344989.,-.461782357147330738887,-47,56, + 5762007131380066.,5702906145344690.,-.460222842251018174784,-47,56, + 5762007131383762.,5702906145160507.,-.499563576722815981135,-47,56, + 5762007131388249.,5702906144936906.,-.499980466674826186232,-47,56, + 5762007131405562.,5702906144074145.,.499918331775131568862,-47,56, + 5849202004085812.,4849673821526969.,.499983466505661783813,-47,59, + 5849202004089493.,4849673819663647.,-.499979733870729301690,-47,59, + 5849202004090412.,4849673819198449.,-.499699215760551498286,-47,59, + 5849202004090447.,4849673819180731.,.492694490120886562872,-47,59, + 5849202004090597.,4849673819104801.,.460096084559150332154,-47,59, + 5849202004090607.,4849673819099739.,.457922857395057889904,-47,59, + 5849202004114341.,4849673807085583.,.499940900756008895288,-47,59, + 5858775605036124.,5540855776889259.,-.211050516682635552958,-47,88, + 5858775605055759.,6436573496232614.,-.324835007898966127032,-47,93, + 5858775605056186.,5441332737064302.,-.111678023728382807166,-47,94, + 5858775605056492.,7391313022788343.,-.123361200776878840103,-47,100, + 5858775605056498.,5663212864766680.,-.069418226906861127210,-47,103, + 5858775605056499.,-6496004709646651.,.480674943786254478951,-47,104, + 5858775605056613.,-7961926073344328.,.290836672161617046685,-47,96, + 5858775605064235.,-8415577263312693.,-.463428284598398275428,-47,90, + 5948853825688343.,-5281553451911922.,-.499905491953343673539,-47,56, + 5948853825706910.,-5281553452839415.,-.499986292442897863614,-47,56, + 5948853825711568.,-5281553453072100.,-.499937826682728152509,-47,56, + 5948853825714341.,-5281553453210623.,.493868011781450331362,-47,56, + 5948853825714536.,-5281553453220364.,.494514372839007877618,-47,56, + 5948853825716031.,-5281553453295045.,.499470155074281502097,-47,56, + 5948853825716161.,-5281553453301539.,.499901121711852600860,-47,56, + 6300885837509847.,-4776109169093710.,-.076830038062562231613,-47,87, + 6300885837538211.,-8456954874625500.,.262170032833125970905,-47,90, + 6300885837545302.,-8151802040923050.,.206018106020739163724,-47,93, + 6300885837546269.,-4769411333882159.,-.204921888538891996561,-47,100, + 6300885837546273.,-7567747842768070.,.177461939383912116314,-47,104, + 6300885837546274.,4808980266034271.,.361374106855234239098,-47,103, + 6300885837546280.,7045763173818010.,.044801564770821916866,-47,100, + 6300885837546445.,5758543149666190.,-.200677570602408236922,-47,95, + 6300885837547050.,6516468583693583.,-.187474037988857795606,-47,93, + 6300885837547072.,6701080685376375.,-.086916121533001608605,-47,93, + 6574525673396413.,7831243269522895.,.499853694461470591188,-47,56, + 6574525673419237.,7831243269011342.,-.499915670112242178292,-47,56, + 6574525673423041.,7831243268926083.,-.499897082648423167289,-47,56, + 6574525673423811.,7831243268908825.,-.499368248097501792937,-47,56, + 6574525673424414.,7831243268895309.,.469876897740123975616,-47,56, + 6574525673424426.,7831243268895041.,-.485959021202005407651,-47,56, + 6574525673424443.,7831243268894659.,.493273426866691266091,-47,56, + 6574525673424535.,7831243268892597.,.498531379155488490524,-47,56, + 6574525673468304.,7831243267911603.,.499625940159927072380,-47,56, + 6694111552474444.,5676040309775690.,.499874159676121913209,-47,57, + 6694111552499286.,5676040306997921.,-.499992490841257121776,-47,57, + 6694111552504727.,5676040306389522.,-.444112398598813869526,-47,57, + 6694111552504743.,5676040306387732.,.476103373754561267051,-47,57, + 6694111552504776.,5676040306384042.,.499048404015213295074,-47,57, + 6694111552505039.,5676040306354635.,-.499904850169190062386,-47,57, + 6694111552505954.,5676040306252321.,.499934443256371599140,-47,57, + 6742999951998805.,5028975367891360.,.387690032635564466741,-47,87, + 6742999952035268.,6519697157471020.,.368915929705318502256,-47,91, + 6742999952037139.,5450931860883174.,.061509525643625734705,-47,92, + 6742999952038372.,7201447832046945.,-.183372869319541309541,-47,96, + 6742999952038458.,6482489699579386.,-.056663824789838462311,-47,98, + 6742999952038476.,7240683016226940.,.000983024481546707603,-47,100, + 6742999952038482.,8087395377573999.,-.358777280936759773346,-47,103, + 6742999952038483.,-7006381262920019.,-.469421394420791811524,-47,108, + 6742999952038691.,-6749760414682857.,.284742646183949624308,-47,95, + 6742999952048046.,-4848254040261172.,.300152674393080219310,-47,89, + 6820329768374694.,-8626240742322131.,-.499513974624567378963,-47,57, + 6820329768409791.,-8626240745812841.,-.499991097551733292197,-47,57, + 6820329768420930.,-8626240746920715.,.499716947167675936288,-47,57, + 6820329768421126.,-8626240746940208.,-.450193426649460507175,-47,57, + 6820329768421137.,-8626240746941302.,-.498402681810436273233,-47,57, + 6820329768421490.,-8626240746976412.,.499973067849700635792,-47,57, + 7105178455399018.,-8705914023737769.,-.499416436467586180882,-47,57, + 7105178455445984.,-8705914019156385.,-.499980645847125310127,-47,57, + 7105178455450042.,-8705914018760540.,-.499942728338853943843,-47,57, + 7105178455450907.,-8705914018676162.,-.499687312434239256547,-47,57, + 7105178455451174.,-8705914018650117.,-.498452339361065087669,-47,57, + 7172554528786996.,-5743604928810332.,-.499502740579499611542,-47,59, + 7172554528834760.,-5743604907011784.,-.499988235317215498332,-47,59, + 7172554528849704.,-5743604900191637.,-.499950330876161491969,-47,59, + 7172554528852707.,-5743604898821127.,-.499869697954028980112,-47,59, + 7172554528853275.,-5743604898561903.,-.497190214486092717342,-47,59, + 7172554528853409.,-5743604898500749.,.461188406696467553198,-47,59, + 7172554528853417.,-5743604898497097.,-.496520332208843072860,-47,59, + 7185117232622639.,-7953113766251512.,.072435829240729549139,-47,89, + 7185117232636863.,-7738014504471870.,-.120124137872464591050,-47,92, + 7185117232638832.,-6974725771713296.,-.448831841664292112443,-47,104, + 7185117232638833.,4559344245819513.,-.063689129967788748296,-47,103, + 7185117232638850.,8834585342769630.,.082622336021806427598,-47,99, + 7185117232639029.,6178570086149709.,-.096109892470989397424,-47,95, + 7185117232642892.,7975132712819856.,-.082590804962705684959,-47,91, + 7483548296427220.,6722431482855391.,.499816058414764055992,-47,56, + 7483548296460416.,6722431481868757.,.499986922579770769235,-47,56, + 7483548296460635.,6722431481862248.,.497516645372821990148,-47,56, + 7483548296460653.,6722431481861714.,-.488987761688415041287,-47,56, + 7483548296460671.,6722431481861179.,-.475492168858329604792,-47,56, + 7483548296460714.,6722431481859901.,-.498808253093034714241,-47,56, + 7627237129250559.,8311913822344826.,.484129517608758220300,-47,104, + 7627237129250560.,-7308060824087342.,.318606647016912361843,-47,104, + 7627237129250580.,-4995430527386411.,.454241201879335180159,-47,98, + 7627237129250587.,-6703865254339924.,.436928233982930835885,-47,98, + 7627237129250700.,-8570720747361604.,-.187031537988792772716,-47,96, + 7627237129251583.,-7805928771544494.,.482692123876888758254,-47,93, + 7792547491835034.,-7128009549071781.,-.499955431528015638085,-47,56, + 7792547491850557.,-7128009549393531.,-.477049212300768507467,-47,56, + 7792547491850623.,-7128009549394899.,-.479270773499648844598,-47,56, + 7792547491851184.,-7128009549406527.,-.498153979930288857103,-47,56, + 7792547491851239.,-7128009549407668.,.499994731462908114111,-47,56, + 8069359212212765.,-8469195439229361.,-.323383024007818457192,-47,101, + 8069359212212769.,-7009557202733117.,-.194778960463738126083,-47,104, + 8069359212212770.,8176444375042321.,.448457310850043185097,-47,104, + 8069359212212777.,7154903463716896.,.203559925012398657565,-47,100, + 8069359212212801.,7483476457595000.,-.219538899087970030821,-47,98, + 8069359212213472.,5209350367174285.,.095769708076845456728,-47,93, + 8069359212215675.,5386170779761322.,-.222358568467476288861,-47,91, + 8069359212220752.,7398855043830483.,.085086256483940823592,-47,90, + 8069359212243263.,7065962563394265.,-.300272041212566967953,-47,88, + 8398512618557827.,5353030758799434.,.499941683822917560226,-47,56, + 8398512618569077.,5353030758382518.,-.499997968142708746548,-47,56, + 8398512618577797.,5353030758059361.,-.499085449854056240228,-47,56, + 8398512618577814.,5353030758058730.,.493003465358374029125,-47,56, + 8398512618578050.,5353030758049985.,-.499173954923289671480,-47,56, + 8398512618580327.,5353030757965601.,-.499971266291651987407,-47,56, + 8511483141053535.,5583800097180619.,.153557748470762467559,-47,91, + 8511483141056435.,5590275112610228.,-.266671638759597383828,-47,95, + 8511483141056525.,5982241687424699.,-.189986895063582631458,-47,96, + 8511483141056628.,8464988374090034.,.413039158300487181348,-47,104, + 8511483141056629.,-6321311466750971.,.010981974590973162966,-47,104, + 8511483141056630.,-5276902826897994.,.336535642545010419028,-47,102, + 8535255807957322.,-4964604095095503.,.499970673481281820056,-47,58, + 8535255807959602.,-4964604095566449.,-.499940635722351986412,-47,58, + 8535255807959647.,-4964604095575745.,.493482181763496127879,-47,58, + 8535255807959737.,-4964604095594335.,.480327818404898496846,-47,58, + 8535255807959746.,-4964604095596194.,.479012382191483850705,-47,58, + 8535255807969485.,-4964604097607839.,-.499978269368977210849,-47,58, + 8535255807991531.,-4964604102161566.,-.499864300920492782365,-47,58 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/fpaccuracy/y1.c b/src/regress/lib/libm/fpaccuracy/y1.c new file mode 100644 index 000000000..e92f9d9b8 --- /dev/null +++ b/src/regress/lib/libm/fpaccuracy/y1.c @@ -0,0 +1,1019 @@ +/* $OpenBSD: y1.c,v 1.1 2009/04/09 01:24:43 martynas Exp $ */ + +/* + * Copyright (c) 2009 Gaston H. Gonnet + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* This program was generated automatically by a program written + by Gaston H. Gonnet on enigma on 2002-09-01 18:21:25. + Do not edit, rerun the original maple program. */ +#include "header.h" +#define DBL_MAX_EXP 1024 +#define N 987 +#define F y1 +#define Fs "y1" +#define Fn fpaccuracy_y1 + /* 11 candidate values discarded */ + +static struct input_point { double arg_m, val, eps; + int arg_e, val_e; } input_points[N] = { + -4503599627370497.,5734161139222657.,.372260931498852318979,-1074,-969, + -4503599627370496.,5734161139222659.,-.354499523765985277586,-1074,-969, + 4503599627370496.,-5734161139222659.,.354499523765985277586,-1074,-969, + 4503599627370497.,-5734161139222657.,-.372260931498852318979,-1074,-969, + 8703077354444721.,-5935467043384722.,.499984725138304920157,-60,46, + 8703077354446239.,-5935467043383687.,.475403796452673671510,-60,46, + 8703077354446242.,-5935467043383684.,-.479190237003584293214,-60,46, + 8703077354446264.,-5935467043383669.,-.479546482349519126618,-60,46, + 8703077354447166.,-5935467043383054.,-.494152541598147337052,-60,46, + 8703077354447518.,-5935467043382814.,-.499852467193171608050,-60,46, + 8703077354475598.,-5935467043363670.,.499994314833824957520,-60,46, + 7188956797842253.,-7216746789680035.,-.338606194227200106260,-57,49, + 7188956797842292.,-7216746789679996.,-.489608935583718095986,-57,49, + 7188956797842295.,-7216746789679994.,.498775468927301476790,-57,49, + 7188956797842553.,-7216746789679737.,.499834256865629597060,-57,49, + 7188956797851076.,-7216746789671247.,.499927461965748729903,-57,49, + 7188956797856758.,-7216746789665587.,.499989587485886427539,-57,49, + 7188956797889817.,-7216746789632656.,.499998879384652121296,-57,49, + 9006440473784121.,-5772569204906657.,.499986034263052590943,-57,49, + 9006440473858117.,-5772569204859761.,.499981831110520131792,-57,49, + 9006440473863922.,-5772569204856082.,.499927411678701378189,-57,49, + 9006440473864236.,-5772569204855882.,-.498180613900856457149,-57,49, + 9006440473864255.,-5772569204855870.,-.456664857487327515431,-57,49, + 9006440473864307.,-5772569204855838.,.499062475854701464314,-57,49, + 7591484324349247.,-6911545038393646.,.499996470598975788423,-56,50, + 7591484324368537.,-6911545038376536.,.499899567487381294097,-56,50, + 7591484324372395.,-6911545038373114.,.499880176352210200192,-56,50, + 7591484324372687.,-6911545038372854.,-.499602888127265893892,-56,50, + 7591484324372979.,-6911545038372595.,-.499085952626816294905,-56,50, + 7591484324373129.,-6911545038372462.,-.450875198096718842746,-56,50, + 7591484324373147.,-6911545038372446.,-.485089907553463129347,-56,50, + 7591484324373156.,-6911545038372439.,.497802737718136121747,-56,50, + 8003388474985897.,-6565133806580018.,-.499998802913873142103,-56,50, + 8003388475028613.,-6565133806545957.,-.499960845106044335090,-56,50, + 8003388475030829.,-6565133806544190.,-.499865244222211146819,-56,50, + 8003388475030982.,-6565133806544069.,.499690092806020253661,-56,50, + 8003388475031747.,-6565133806543459.,.497466777876648415377,-56,50, + 8003388475031870.,-6565133806543360.,-.424459323750416009762,-56,50, + 8003388475031895.,-6565133806543340.,-.489891458227833214914,-56,50, + 8003388475031900.,-6565133806543337.,.497022114876668279584,-56,50, + 8003388475048863.,-6565133806529810.,-.499989799698090501658,-56,50, + 8715649185231923.,-6043966502260022.,-.493342774131066334839,-56,50, + 8715649185231947.,-6043966502260006.,-.379414731512303626387,-56,50, + 8715649185231993.,-6043966502259975.,-.494385983159925354590,-56,50, + 8715649185232273.,-6043966502259787.,-.498558819282977821246,-56,50, + 8715649185232343.,-6043966502259740.,-.499602028315645034824,-56,50, + 8715649185233326.,-6043966502259080.,-.499965949526260693725,-56,50, + 8715649185236205.,-6043966502257148.,.499985495016162499658,-56,50, + 8715649185255375.,-6043966502244276.,-.499990504531108350819,-56,50, + 4823460372571526.,-5479577391449697.,-.499994246003491353190,-55,50, + 4823460372575175.,-5479577391445706.,.484326687513356169830,-55,50, + 4823460372575239.,-5479577391445636.,.499946457189010251395,-55,50, + 4823460372622359.,-5479577391394086.,-.499998628367159656773,-55,50, + 6866204438989343.,-7830870780948346.,-.499999259015855262977,-55,51, + 6866204439020165.,-7830870780915339.,.499985850985012531880,-55,51, + 6866204439034871.,-7830870780899590.,.499005310030718381843,-55,51, + 6866204439034885.,-7830870780899575.,.491932433106180248125,-55,51, + 6866204439034899.,-7830870780899560.,.484859556181580170528,-55,51, + 6866204439035294.,-7830870780899137.,.499589100069120473091,-55,51, + 6866204439035576.,-7830870780898835.,.499978293396639225216,-55,51, + 7429938090848766.,-7273537844226683.,.499790876927753309432,-55,51, + 7429938090848961.,-7273537844226505.,.467534102833112501297,-55,51, + 7429938090848972.,-7273537844226494.,-.493259869039174982135,-55,51, + 7429938090848995.,-7273537844226474.,.497807280682308379633,-55,51, + 7429938090858841.,-7273537844217488.,.499857536312338946942,-55,51, + 7429938090878991.,-7273537844199098.,.499990779260164654915,-55,51, + 7429938090881006.,-7273537844197258.,-.499995902005284782514,-55,51, + 7477266621077914.,-7230620307182237.,.499998382482350122143,-55,51, + 7477266621088185.,-7230620307172982.,-.499979368123505335671,-55,51, + 7477266621094083.,-7230620307167669.,.499838673674242440653,-55,51, + 7477266621094184.,-7230620307167578.,.499157361667654058735,-55,51, + 7477266621094265.,-7230620307167505.,.478808982729876846743,-55,51, + 7477266621094275.,-7230620307167496.,.488642516194237660642,-55,51, + 7477266621094285.,-7230620307167487.,.498476049658574049214,-55,51, + 8992428863828519.,-6098244025781639.,-.499992548571234061740,-55,51, + 8992428863891317.,-6098244025742713.,-.499986588658896333924,-55,51, + 8992428863894892.,-6098244025740497.,-.498680491868396583072,-55,51, + 8992428863894942.,-6098244025740467.,.494344768213919909157,-55,51, + 8992428863895476.,-6098244025740136.,.499854545871285129368,-55,51, + 4684840655106943.,-5873932454995336.,-.499544215879162172103,-54,51, + 4684840655107142.,-5873932454995109.,-.498231062644880796957,-54,51, + 4684840655107185.,-5873932454995060.,-.447696059687274637769,-54,51, + 4684840655107206.,-5873932454995036.,-.492783616382728521943,-54,51, + 4684840655108407.,-5873932454993666.,-.499933882994042736289,-54,51, + 4684840655113730.,-5873932454987594.,-.499984573629650407512,-54,51, + 4684840655154850.,-5873932454940689.,.499999100078815816563,-54,51, + 5261029272888796.,-5289428411724653.,-.499993265351873446999,-54,51, + 5261029272891730.,-5289428411722007.,.499991759381526550150,-54,51, + 5261029272897598.,-5289428411716713.,.499961799905430680169,-54,51, + 5261029272899111.,-5289428411715347.,-.499705095124144358421,-54,51, + 5261029272899387.,-5289428411715098.,-.497661514924218581937,-54,51, + 5261029272899479.,-5289428411715015.,-.496980321530105276355,-54,51, + 5261029272899520.,-5289428411714979.,.492453688568501065905,-54,51, + 5261029272899530.,-5289428411714969.,-.485733138236805202686,-54,51, + 5261029272900532.,-5289428411714066.,.499946815695934813050,-54,51, + 5357701474439252.,-5203800974665454.,-.499995101948887170331,-54,51, + 5357701474443923.,-5203800974661393.,.499966177438932137300,-54,51, + 5357701474447037.,-5203800974658685.,.499940359727011403455,-54,51, + 5357701474447712.,-5203800974658098.,.494154416162480843781,-54,51, + 5357701474447735.,-5203800974658078.,.495438746971726753522,-54,51, + 5357701474447804.,-5203800974658018.,.499291739398424798945,-54,51, + 6544763739207491.,-8719421189961331.,.493969518100582339626,-54,52, + 6544763739207497.,-8719421189961324.,.476425805605067515372,-54,52, + 6544763739207546.,-8719421189961267.,.499818820224552085231,-54,52, + 6544763739207888.,-8719421189960869.,.499827207953170240798,-54,52, + 6544763739213873.,-8719421189953904.,.499973986491905122288,-54,52, + 6544763739214899.,-8719421189952710.,.499999147252080230262,-54,52, + 6748349574634932.,-8489618419616528.,-.499999116849490705062,-54,52, + 6748349574649759.,-8489618419600295.,.499981227457734841568,-54,52, + 6748349574653500.,-8489618419596198.,-.499888854016958246878,-54,52, + 6748349574653774.,-8489618419595898.,-.498810105818001850389,-54,52, + 6750030179319864.,-8487778790208768.,-.499999671924243684678,-54,52, + 6750030179322768.,-8487778790205590.,-.499898904837387985239,-54,52, + 6750030179323838.,-8487778790204420.,.457438498328336412865,-54,52, + 6750030179323849.,-8487778790204408.,.495317667891675540712,-54,52, + 6750030179324061.,-8487778790204176.,.498079844922957569537,-54,52, + 6750030179324220.,-8487778790204001.,-.499848522313085736753,-54,52, + 6921931465604902.,-8304297685474073.,-.499998536024660646437,-54,52, + 6921931465609748.,-8304297685469028.,-.499962241064693897691,-54,52, + 6921931465611964.,-8304297685466722.,.499641642205344543186,-54,52, + 6921931465612183.,-8304297685466494.,.492833542142161033394,-54,52, + 6921931465612232.,-8304297685466442.,-.494991101252928879367,-54,52, + 6921931465612378.,-8304297685466290.,-.499529834638461088130,-54,52, + 6921931465613279.,-8304297685465353.,.499857844807462720213,-54,52, + 7262316160937308.,-7966370690664506.,.499998455721812364895,-54,52, + 7262316160951960.,-7966370690650632.,-.499981951642746652570,-54,52, + 7262316160955308.,-7966370690647463.,.497565515101383307436,-54,52, + 7262316160955346.,-7966370690647427.,.477227045472037050099,-54,52, + 7262316160955402.,-7966370690647374.,.499886142859692788321,-54,52, + 7667186625744419.,-7602927751212810.,.499988428466368323246,-54,52, + 7667186625744708.,-7602927751212563.,-.499157524015562640149,-54,52, + 7667186625744829.,-7602927751212461.,.497739845355133885426,-54,52, + 7667186625744856.,-7602927751212438.,.480518597197748454539,-54,52, + 7667186625779550.,-7602927751182905.,-.499999443543540253130,-54,52, + 7756304500047945.,-7527920471544068.,-.499996200831394126004,-54,52, + 7756304500084423.,-7527920471513711.,.499965658230049963814,-54,52, + 7756304500085478.,-7527920471512832.,-.499870966305284307418,-54,52, + 7756304500086533.,-7527920471511954.,-.499707591073497744110,-54,52, + 7756304500086682.,-7527920471511830.,-.497788782647207325264,-54,52, + 7756304500086706.,-7527920471511811.,.475674649582096365536,-54,52, + 7756304500086730.,-7527920471511791.,.449138081811279539367,-54,52, + 7756304500096934.,-7527920471503298.,-.499992659666021331496,-54,52, + 8671512143446054.,-6844255780917683.,-.499987077655964213304,-54,52, + 8671512143468851.,-6844255780902383.,.499981265788798444632,-54,52, + 8671512143470843.,-6844255780901045.,-.499889907733318175793,-54,52, + 8671512143472540.,-6844255780899906.,-.499278151902829396594,-54,52, + 8671512143472613.,-6844255780899858.,.497212512893560196481,-54,52, + 8671512143472671.,-6844255780899819.,.425931123279173041019,-54,52, + 8671512143472686.,-6844255780899809.,.493703177689164664909,-54,52, + 8671512143472835.,-6844255780899708.,-.499761081840051956114,-54,52, + 8671512143477114.,-6844255780896836.,-.499986361930569680345,-54,52, + 4889567998999328.,-6180426619556142.,-.499996818028972807718,-53,52, + 4889567999029793.,-6180426619523478.,-.499979856422526524497,-53,52, + 4889567999035861.,-6180426619516973.,.495493689183322470489,-53,52, + 4889567999035875.,-6180426619516957.,-.493969621704164278355,-53,52, + 4889567999035889.,-6180426619516942.,-.483432932591729742714,-53,52, + 4889567999036055.,-6180426619516765.,.498644952592565415714,-53,52, + 4889567999036152.,-6180426619516660.,-.499779415708481231092,-53,52, + 4889567999039948.,-6180426619512590.,-.499974285384941980694,-53,52, + 4930099044574207.,-6137296961063316.,-.499999436760262055785,-53,52, + 4930099044602148.,-6137296961033807.,-.499886603103670503933,-53,52, + 4930099044602344.,-6137296961033601.,.499291024227719782447,-53,52, + 4930099044605801.,-6137296961029949.,-.499907663524168001021,-53,52, + 4930099044620413.,-6137296961014517.,-.499991957392543554941,-53,52, + 5026050879143040.,-6037723824008219.,.499997943819463292162,-53,52, + 5026050879149980.,-6037723824001141.,-.499990468142060101983,-53,52, + 5026050879177132.,-6037723823973454.,.497749223218954488732,-53,52, + 5026050879177179.,-6037723823973406.,.425559099438619453946,-53,52, + 5026050879177183.,-6037723823973401.,-.495478357904425266243,-53,52, + 5026050879177284.,-6037723823973299.,.498325844181746974546,-53,52, + 5026050879177740.,-6037723823972833.,-.499944292980817422480,-53,52, + 5035712052408984.,-6027889047658809.,.499996881348783088603,-53,52, + 5035712052438852.,-6027889047628457.,.401316763461731379001,-53,52, + 5035712052438858.,-6027889047628451.,.498524742513394694353,-53,52, + 5035712052439105.,-6027889047628199.,-.499746786537876574626,-53,52, + 5035712052440216.,-6027889047627071.,.499930667534952814731,-53,52, + 5035712052443117.,-6027889047624123.,.499988536035476165580,-53,52, + 5280619103515190.,-5789419454189883.,.499984972394965786952,-53,52, + 5280619103516976.,-5789419454188216.,.475620153151363374085,-53,52, + 5280619103517036.,-5789419454188160.,.477041267829092657242,-53,52, + 5280619103517846.,-5789419454187404.,.496226315868149085955,-53,52, + 5280619103517996.,-5789419454187264.,.499779102519511741306,-53,52, + 5280619103518011.,-5789419454187249.,-.499865618815739342403,-53,52, + 5280619103548967.,-5789419454158356.,-.499998679131665367251,-53,52, + 5388947655818697.,-5690106707594684.,-.499989306693806462834,-53,52, + 5388947655827918.,-5690106707586381.,.497624656974282195969,-53,52, + 5388947655827928.,-5690106707586371.,-.496847077163878561798,-53,52, + 5388947655827978.,-5690106707586326.,-.469205747855121716086,-53,52, + 5388947655827988.,-5690106707586317.,-.463677481993458220033,-53,52, + 5388947655828642.,-5690106707585729.,.497871105295735394111,-53,52, + 5388947655834434.,-5690106707580513.,.499842686340045194208,-53,52, + 5388947655834977.,-5690106707580023.,-.499972478440842565356,-53,52, + 5388947655867356.,-5690106707550865.,.499999335163771005892,-53,52, + 5828367993164387.,-5320340914226362.,-.499946863757211663727,-53,52, + 5828367993164909.,-5320340914225952.,.470166982477545232624,-53,52, + 5828367993164923.,-5320340914225941.,.492353943869966166196,-53,52, + 5828367993164970.,-5320340914225904.,.495410171401340869212,-53,52, + 5828367993165017.,-5320340914225867.,.498466398932216069476,-53,52, + 5828367993182055.,-5320340914212453.,.499998380298555452051,-53,52, + 5842346135980325.,-5309357967527158.,.499972067936951499222,-53,52, + 5842346135982975.,-5309357967525080.,.499824151619731900474,-53,52, + 5842346135984300.,-5309357967524041.,.499750192870377076814,-53,52, + 5842346135984666.,-5309357967523754.,.498975046459627912423,-53,52, + 5842346135984675.,-5309357967523746.,-.443666965337736270664,-53,52, + 5842346135993209.,-5309357967517054.,-.499992382260143839849,-53,52, + 5842346136020302.,-5309357967495809.,-.499995363816549589267,-53,52, + 6083309738851034.,-5126632481220876.,.499825055674627363814,-53,52, + 6083309738851995.,-5126632481220170.,-.499336353065675065007,-53,52, + 6083309738852055.,-5126632481220126.,-.482634672035691312314,-53,52, + 6083309738858219.,-5126632481215605.,.499851355352784857663,-53,52, + 6083309738896539.,-5126632481187493.,.499991449470878682249,-53,52, + 6083309738898934.,-5126632481185735.,-.499999804199850161167,-53,52, + 6466710109370854.,-4858810632288391.,-.499648987164137023499,-53,52, + 6466710109370857.,-4858810632288390.,.497798980761326611785,-53,52, + 6466710109370965.,-4858810632288318.,.405925826077062880054,-53,52, + 6466710109371046.,-4858810632288264.,.337020960062646028722,-53,52, + 6466710109371246.,-4858810632288130.,-.499781178249031267819,-53,52, + 6466710109371638.,-4858810632287869.,-.499913369358397977821,-53,52, + 6466710109372030.,-4858810632287609.,.499954439507762846496,-53,52, + 6466710109379475.,-4858810632282652.,.499994835393705324483,-53,52, + 6683043781680238.,-4718361593126803.,.499988627045374274795,-53,52, + 6683043781680617.,-4718361593126562.,-.499887549936043605486,-53,52, + 6683043781680707.,-4718361593126506.,.492226286661673144363,-53,52, + 6683043781680797.,-4718361593126449.,.484340123258237756306,-53,52, + 6683043781712573.,-4718361593106327.,.499998625604767007279,-53,52, + 7533119765536761.,-8449619493574092.,.499996355470579700096,-53,53, + 7533119765567317.,-8449619493541406.,-.499993773779669360325,-53,53, + 7533119765568580.,-8449619493540056.,.499973903668267034117,-53,53, + 7533119765574795.,-8449619493533407.,-.467722763110763417344,-53,53, + 7533119765574809.,-8449619493533392.,-.492267856173597325408,-53,53, + 7533119765574852.,-8449619493533346.,-.496227784866816040943,-53,53, + 7533119765574895.,-8449619493533301.,.499812286439619953444,-53,53, + 7593583889904239.,-8385280625040150.,.499982264593470033276,-53,53, + 7593583889909090.,-8385280625035015.,.499757998516669905825,-53,53, + 7593583889909295.,-8385280625034797.,-.498602334404777102913,-53,53, + 7593583889909312.,-8385280625034780.,.496655589206272675190,-53,53, + 7593583889909329.,-8385280625034762.,.491913512817270010412,-53,53, + 7593583889909722.,-8385280625034346.,.499934923339235878266,-53,53, + 7593583889943884.,-8385280624998183.,-.499995396867310358751,-53,53, + 7618936725669052.,-8358501604908020.,-.497550789604447818565,-53,53, + 7618936725669070.,-8358501604908002.,.473935147207923367133,-53,53, + 7618936725669089.,-8358501604907982.,.499392524954252149704,-53,53, + 7618936725669404.,-8358501604907649.,-.499603580839729148350,-53,53, + 7618936725670386.,-8358501604906614.,-.499648583778324863671,-53,53, + 7618936725677260.,-8358501604899369.,-.499963609189833530169,-53,53, + 7618936725678242.,-8358501604898335.,.499991386488331137582,-53,53, + 7618936725700161.,-8358501604875232.,-.499994859868137003464,-53,53, + 8259236168392066.,-7717001646634396.,-.499987547114504050139,-53,53, + 8259236168417223.,-7717001646610380.,-.499986640197515157202,-53,53, + 8259236168422713.,-7717001646605139.,-.499867202417064841311,-53,53, + 8259236168422823.,-7717001646605034.,-.488935847602865609220,-53,53, + 8259236168422933.,-7717001646604929.,-.478004492790282857259,-53,53, + 8259236168422934.,-7717001646604929.,.476640337708005935143,-53,53, + 8460168362987737.,-7527800850760998.,.499936065936053223328,-53,53, + 8460168363170751.,-7527800850590984.,.499932646088635862330,-53,53, + 8460168363172736.,-7527800850589140.,.499790520926242098440,-53,53, + 8460168363172919.,-7527800850588969.,-.499215025145714262743,-53,53, + 8460168363173017.,-7527800850588878.,-.460431109929100129786,-53,53, + 8460168363173018.,-7527800850588878.,.468536072879226618989,-53,53, + 8460168363173088.,-7527800850588813.,.496238869461795386337,-53,53, + 8791115980723925.,-7226741351054645.,.499998979599941767085,-53,53, + 8791115980764979.,-7226741351018052.,-.499986586990820688809,-53,53, + 8791115980767270.,-7226741351016010.,-.499888354145412762279,-53,53, + 8791115980769083.,-7226741351014395.,.452175415058776605350,-53,53, + 8791115980769101.,-7226741351014379.,.495825248397173660753,-53,53, + 8791115980769285.,-7226741351014215.,.497579100298821431274,-53,53, + 8791115980769515.,-7226741351014010.,.499771415170843016511,-53,53, + 8837821264053892.,-7185226935442538.,-.499995532248214249984,-53,53, + 8837821264158013.,-7185226935350243.,-.499970930183375025581,-53,53, + 8837821264166791.,-7185226935342462.,-.499882469590785419731,-53,53, + 8837821264166976.,-7185226935342299.,.487929829845845922360,-53,53, + 8837821264166985.,-7185226935342291.,.465715293061591489096,-53,53, + 8837821264167020.,-7185226935342260.,.490436538900522157545,-53,53, + 8837821264167196.,-7185226935342103.,-.499536624882781032905,-53,53, + 8837821264169582.,-7185226935339988.,-.499968266034823391565,-53,53, + 9007199254736374.,-7036539541814084.,.499981435768303732332,-53,53, + 9007199254740940.,-7036539541810114.,.499022102696744580681,-53,53, + 9007199254740986.,-7036539541810074.,.494632236431294380801,-53,53, + 9007199254740991.,-7036539541810069.,-.158018835988875557264,-53,53, + 4503599627370497.,-7036539541810067.,.450390520559021321530,-52,53, + 4503599627370922.,-7036539541809328.,.499708209094808913507,-52,53, + 4503599627371148.,-7036539541808934.,-.499948737735741282484,-52,53, + 4503599627382766.,-7036539541788732.,.499987482258838412466,-52,53, + 4503599627411924.,-7036539541738028.,.499999329032314737410,-52,53, + 5820205584070866.,-4989559555609322.,.499987196423236654630,-52,53, + 5820205584080093.,-4989559555596202.,.499963088786277241978,-52,53, + 5820205584082110.,-4989559555593333.,-.499608672386100770035,-52,53, + 5820205584082231.,-4989559555593161.,-.448021256986915537794,-52,53, + 5820205584082238.,-4989559555593151.,-.494623637914300627566,-52,53, + 5820205584082904.,-4989559555592204.,-.499935880466711483441,-52,53, + 5820205584150304.,-4989559555496368.,.499995995722229087540,-52,53, + 7141873619627818.,-6424698953552494.,-.499994002144356706216,-52,54, + 7141873619646779.,-6424698953503930.,.499956298159247595951,-52,54, + 7141873619649405.,-6424698953497203.,-.499839630409844920894,-52,54, + 7141873619651411.,-6424698953492066.,.488130424899698257591,-52,54, + 7141873619651452.,-6424698953491960.,-.498157325721655884458,-52,54, + 7141873619651664.,-6424698953491418.,.499574305207329164760,-52,54, + 7141873619667053.,-6424698953452001.,-.499991430193242120934,-52,54, + 7353478233105002.,-5886424468430474.,.499995747812330901107,-52,54, + 7353478233113210.,-5886424468409737.,.499983784544400912346,-52,54, + 7353478233129191.,-5886424468369362.,.499594963599070320284,-52,54, + 7353478233129210.,-5886424468369313.,-.498090249340794488274,-52,54, + 7353478233129248.,-5886424468369217.,-.493460675220699775237,-52,54, + 7353478233129626.,-5886424468368263.,.499959825224331136472,-52,54, + 7777516153040452.,-4829509450063983.,-.499599561142503250433,-52,54, + 7777516153040768.,-4829509450063206.,-.497431004381238754016,-52,54, + 7777516153040829.,-4829509450063057.,.493493938536050744838,-52,54, + 7777516153040999.,-4829509450062638.,-.499010318910668612766,-52,54, + 7777516153041777.,-4829509450060726.,.499999608716124284055,-52,54, + 9007199254740986.,-7712499500869228.,.143343426550902510746,-52,56, + 9007199254740991.,-7712499500869197.,-.431482133148695630650,-52,56, + 4503599627370497.,-7712499500869179.,-.176377468968457450275,-51,56, + 4503599627370515.,-7712499500868960.,-.115121498805770970849,-51,56, + 4503599627371211.,-7712499500860490.,.253442680575035386908,-51,56, + 4503599627378620.,-7712499500770322.,.300413922800997581946,-51,56, + 4916525805338006.,-8290813460680348.,-.489702654363104548824,-51,60, + 4916525805338029.,-8290813460674178.,.494107920690872473614,-51,60, + 4916525805338085.,-8290813460659153.,.498168451139222677693,-51,60, + 4916525805338332.,-8290813460592882.,.498221145944442484146,-51,60, + 4916525805345001.,-8290813458803565.,.499642676980549830891,-51,60, + 4916525805346730.,-8290813458339667.,-.499989164750497640130,-51,60, + 4916525805403619.,-8290813443076142.,.499889700231160234967,-51,60, + 4947522428537512.,-8487649934381358.,-.232983039250710413702,-51,89, + 4947522428595805.,-4571226145061385.,.133542244013519927335,-51,94, + 4947522428596712.,-6661804633447850.,-.489563043450159169863,-51,98, + 4947522428596780.,-6711203844698183.,.351865382749514530001,-51,100, + 4947522428596798.,-5736093943282447.,.451775065393466485418,-51,102, + 4947522428596802.,-8362135660908040.,.258739932486962251358,-51,105, + 4947522428596803.,8156146483438709.,.434343638863270517532,-51,108, + 4947522428596839.,5293110332478003.,.108253160278641125599,-51,99, + 4947522428598331.,7000091204351803.,.207832541706035167934,-51,94, + 4947522428600857.,4642852138439771.,-.138292947551870973751,-51,92, + 5274559627536864.,5262625031844546.,-.499798394216382052092,-51,56, + 5274559627536979.,5262625031846328.,-.498744768891603628967,-51,56, + 5274559627537094.,5262625031848110.,-.497691143616901944279,-51,56, + 5274559627537096.,5262625031848140.,.493631528126562888166,-51,56, + 5274559627537116.,5262625031848450.,.406858245560378178022,-51,56, + 5274559627537786.,5262625031858832.,.499953278717936090312,-51,56, + 5274559627541589.,5262625031917763.,-.499986438416044982080,-51,56, + 5274559627573857.,5262625032417776.,.499996950245246432652,-51,56, + 5322620345353624.,6002960547691940.,-.499645691437130938661,-51,56, + 5322620345353640.,6002960547692184.,.495263590668645679448,-51,56, + 5322620345353704.,6002960547693164.,.474900719081899234247,-51,56, + 5322620345353717.,6002960547693364.,-.466735489211084959808,-51,56, + 5322620345354018.,6002960547697972.,.499995380131013842918,-51,56, + 5483662463949980.,8418058209905796.,-.496360161090019742353,-51,56, + 5483662463949986.,8418058209905884.,-.442702985145999865251,-51,56, + 5483662463950017.,8418058209906339.,-.498807576104223551291,-51,56, + 5483662463950427.,8418058209912356.,-.498900553660358582131,-51,56, + 5483662463954527.,8418058209972526.,-.499830366725783797799,-51,56, + 5483662463955347.,8418058209984559.,.499983662478423906568,-51,56, + 5483662464030528.,8418058211087886.,.499994670566796214434,-51,56, + 5571718185689251.,4847228873591649.,-.499999863021526436661,-51,55, + 5571718185711837.,4847228873753291.,-.498469314691815381321,-51,55, + 5571718185711850.,4847228873753384.,-.460923051953252254843,-51,55, + 5571718185712156.,4847228873755573.,.499781286252736851046,-51,55, + 5571718185713834.,4847228873767582.,.499983503403060975102,-51,55, + 6099473910176849.,8318925194080230.,.499987830824037916579,-51,55, + 6099473910240655.,8318925194461295.,-.499962806364796803874,-51,55, + 6099473910240907.,8318925194462800.,-.498426725033644885533,-51,55, + 6099473910241014.,8318925194463439.,-.469996722292233016536,-51,55, + 6099473910241015.,8318925194463445.,-.497768404509732391249,-51,55, + 6099473910249765.,8318925194515702.,-.499987899367418599661,-51,55, + 7317086400935715.,6839734894974664.,-.499995643542931623215,-51,54, + 7317086400938622.,6839734894978655.,.499993294820110544300,-51,54, + 7317086400944294.,6839734894986445.,-.499684325148029731431,-51,54, + 7317086400944302.,6839734894986455.,.486211757161332519343,-51,54, + 7317086400944318.,6839734894986477.,.458003921779786526555,-51,54, + 7317086400944436.,6839734894986639.,.499971135829746661949,-51,54, + 7404092400473182.,6953876006028813.,.499994761282993924955,-51,54, + 7404092400509964.,6953876006074807.,.499990658694570238615,-51,54, + 7404092400511078.,6953876006076200.,.499718632494776766533,-51,54, + 7404092400511489.,6953876006076714.,.434088647520298034979,-51,54, + 7404092400511513.,6953876006076744.,.444854779777183849639,-51,54, + 7404092400511629.,6953876006076889.,.496891085673988085584,-51,54, + 7404092400511637.,6953876006076900.,-.499520203575209244447,-51,54, + 7543049467954864.,7113971815879672.,.499994884650743423945,-51,54, + 7543049467989946.,7113971815916639.,-.499874303870089968780,-51,54, + 7543049467990486.,7113971815917207.,.499614612379327810440,-51,54, + 7543049467990877.,7113971815917619.,.497392697775972685964,-51,54, + 7543049467991026.,7113971815917776.,.499103528215360514613,-51,54, + 7543049467994024.,7113971815920935.,.499969760838467608472,-51,54, + 7543049467999871.,7113971815927096.,.499991359319709931967,-51,54, + 7958730718270776.,7429563750398271.,.499997319746492312682,-51,54, + 7958730718300724.,7429563750412212.,.499994341188339471068,-51,54, + 7958730718301637.,7429563750412638.,-.492225617166283881639,-51,54, + 7958730718301652.,7429563750412644.,.490377559849864625410,-51,54, + 7958730718302043.,7429563750412827.,-.496432959374162669858,-51,54, + 7958730718302391.,7429563750412988.,.499960747120281793480,-51,54, + 8036233885304064.,7461423763233759.,-.499999615111699935122,-51,54, + 8036233885314834.,7461423763237600.,.499974544940343328471,-51,54, + 8036233885315361.,7461423763237788.,.497559163088186795108,-51,54, + 8036233885315532.,7461423763237849.,.498672957507994600537,-51,54, + 8036233885315703.,7461423763237910.,.499786751886854450537,-51,54, + 8062587751701692.,7470338995093933.,.432708150485381614673,-51,54, + 8062587751701711.,7470338995093940.,-.490003192592268356831,-51,54, + 8062587751701761.,7470338995093956.,-.497138305956916704139,-51,54, + 8062587751701786.,7470338995093963.,.499294137359448480799,-51,54, + 8062587751702058.,7470338995094051.,-.499520879414967030034,-51,54, + 8062587751723924.,7470338995101045.,-.499849000097647971797,-51,54, + 8062587751734016.,7470338995104272.,.499999334142871024793,-51,54, + 8171981788129940.,7496985628819741.,-.499610518271042391576,-51,54, + 8171981788130531.,7496985628819840.,-.497679704707055355745,-51,54, + 8171981788130543.,7496985628819842.,-.487488216111788640978,-51,54, + 8171981788130555.,7496985628819844.,-.477296727516721619185,-51,54, + 8171981788131313.,7496985628819970.,.499798968333648031892,-51,54, + 8171981788136023.,7496985628820759.,.499958221525317757773,-51,54, + 8171981788137593.,7496985628821023.,-.499988700913892479982,-51,54, + 8171981788174879.,7496985628827268.,.499996950537431248956,-51,54, + 8306327458494987.,7507024988478774.,-.499988569538462689899,-51,54, + 8306327458496854.,7507024988478741.,-.499934171110171661990,-51,54, + 8306327458497420.,7507024988478730.,.495797370266278187030,-51,54, + 8306327458497421.,7507024988478730.,.478121984296590356368,-51,54, + 8306327458497533.,7507024988478728.,.498478755682886705614,-51,54, + 8306327458549809.,7507024988477804.,.499999924865324727670,-51,54, + 4580018241334419.,7011939963503010.,.499994750202619625071,-50,54, + 4580018241349994.,7011939963468284.,.495986586805193151385,-50,54, + 4580018241350007.,7011939963468256.,-.488800065750668151794,-50,54, + 4580018241350129.,7011939963467984.,-.499874805159848660551,-50,54, + 4580018241350852.,7011939963466372.,-.499932483589182032859,-50,54, + 4580018241351575.,7011939963464760.,-.499990164480757354449,-50,54, + 4621382166171841.,6915714327984569.,.499995341324057862388,-50,54, + 4621382166183396.,6915714327956579.,.499891133758911415883,-50,54, + 4621382166192640.,6915714327934187.,.499807324767579940174,-50,54, + 4621382166192846.,6915714327933689.,-.499761834266332300656,-50,54, + 4621382166193400.,6915714327932347.,-.469476952249848452478,-50,54, + 4621382166193419.,6915714327932301.,-.493709059209382467827,-50,54, + 4621382166193464.,6915714327932192.,-.498469312541229507078,-50,54, + 5281225719102935.,8910131215154336.,.499991171289996840695,-50,55, + 5281225719133888.,8910131214857370.,-.487729989863624909058,-50,55, + 5281225719133893.,8910131214857322.,-.458360901811638716046,-50,55, + 5281225719133920.,8910131214857063.,-.499767826333026940873,-50,55, + 5281225719140151.,8910131214797281.,.499989608171456935470,-50,55, + 5338749892223537.,8350386787178679.,.499995056486640807055,-50,55, + 5338749892278591.,8350386786635693.,.499986818948363916888,-50,55, + 5338749892280362.,8350386786618227.,-.499795701989491726280,-50,55, + 5338749892280588.,8350386786615998.,-.490168853603918114153,-50,55, + 5338749892280603.,8350386786615850.,-.432007779604063875424,-50,55, + 5338749892280639.,8350386786615495.,-.492421202008495978729,-50,55, + 5338749892280792.,8350386786613986.,-.499178247291628268774,-50,55, + 6015259048382691.,8598200841052335.,.499999241395246784847,-50,58, + 6015259048401473.,8598200839395404.,.499993073514793068336,-50,58, + 6015259048405485.,8598200839041469.,.499885642387418019909,-50,58, + 6015259048405841.,8598200839010064.,-.497132857151461184972,-50,58, + 6015259048405864.,8598200839008034.,.463733925217095308469,-50,58, + 6015259048405873.,8598200839007240.,.491899187884221582101,-50,58, + 6015259048405946.,8598200839000800.,.498128540652995586210,-50,58, + 6113277377985474.,5576172407386596.,-.446918215261998046263,-50,89, + 6113277378008147.,5336957918443520.,-.198258604547172464167,-50,91, + 6113277378014540.,8842332681901610.,.074242657956896790161,-50,95, + 6113277378015135.,6871504081071281.,-.193253379511972251198,-50,97, + 6113277378015249.,5645665146437595.,.216887189218021154597,-50,99, + 6113277378015274.,6848915596330096.,-.429390035903002060745,-50,102, + 6113277378015278.,5746325634422428.,.203506321671600225196,-50,105, + 6113277378015279.,-6514924149632151.,.127351364949342123149,-50,105, + 6113277378015287.,-6537807651379294.,-.454848466103256510568,-50,101, + 6113277378016287.,-6038014993396303.,.313713969561804059059,-50,94, + 6321255966218771.,-8860070248104349.,.499998535696470730255,-50,57, + 6321255966222483.,-8860070248258122.,-.499888355205020933912,-50,57, + 6321255966222842.,-8860070248272995.,.499583800587051448948,-50,57, + 6321255966223079.,-8860070248282813.,.493664305490879298240,-50,57, + 6321255966223201.,-8860070248287867.,.499055958095961009246,-50,57, + 6436442976879030.,-6768139130418283.,-.499986674889963032539,-50,56, + 6436442976881395.,-6768139130465236.,.499968673029207513308,-50,56, + 6436442976885350.,-6768139130543754.,.461839136102911188129,-50,56, + 6436442976885357.,-6768139130543893.,.491860145886612287699,-50,56, + 6436442976885391.,-6768139130544568.,.494819336270346411844,-50,56, + 6436442976885459.,-6768139130545917.,-.499262282933538989145,-50,56, + 6436442976885792.,-6768139130552528.,-.499691388189297117631,-50,56, + 6436442976886125.,-6768139130559140.,.499879507470909340124,-50,56, + 6436442976902347.,-6768139130881193.,.499997942155028919296,-50,56, + 6591998865326555.,-4874085069155473.,-.499999735412254739540,-50,55, + 6591998865348993.,-4874085069362014.,-.499988838848130925280,-50,55, + 6591998865351974.,-4874085069389455.,.499968235892556573598,-50,55, + 6591998865357936.,-4874085069444335.,.499882522113546428274,-50,55, + 6591998865359468.,-4874085069458437.,.493822284279527729486,-50,55, + 6591998865359478.,-4874085069458529.,.444174371539478394729,-50,55, + 6591998865359507.,-4874085069458795.,-.499804575403764116726,-50,55, + 6736707155662248.,-6149421400928261.,-.499857977062588430303,-50,55, + 6736707155662572.,-6149421400930984.,.499508389156821353764,-50,55, + 6736707155663706.,-6149421400940511.,.497290675853971545558,-50,55, + 6736707155663803.,-6149421400941325.,-.422652108790371015176,-50,55, + 6736707155663838.,-6149421400941619.,-.465930433132803437482,-50,55, + 6736707155663863.,-6149421400941829.,-.496843521944354629939,-50,55, + 6736707155665483.,-6149421400955440.,.499988331012023487597,-50,55, + 6736707155671791.,-6149421401008435.,.499997942112308919386,-50,55, + 6919987110132413.,-7583738303330804.,-.499969208384878470352,-50,55, + 6919987110218913.,-7583738303955573.,.499704393150623082899,-50,55, + 6919987110219510.,-7583738303959884.,-.482910397773092314429,-50,55, + 6919987110219519.,-7583738303959949.,-.487673434803464796806,-50,55, + 6919987110219537.,-7583738303960079.,-.497199508862540862620,-50,55, + 6919987110219546.,-7583738303960145.,.498037454108755553942,-50,55, + 6919987110220592.,-7583738303967699.,-.499977734548884692712,-50,55, + 7117199285686235.,-8869263769311923.,-.499985705838764376654,-50,55, + 7117199285740635.,-8869263769626845.,-.496393761118367167345,-50,55, + 7117199285740654.,-8869263769626955.,-.487532208514106787425,-50,55, + 7117199285740659.,-8869263769626984.,-.432568642038843329988,-50,55, + 7117199285740853.,-8869263769628107.,-.499982262651244610158,-50,55, + 7662745966012986.,-5412076120375740.,-.499985560386199832509,-50,54, + 7662745966047597.,-5412076120398181.,-.499988499764946711705,-50,54, + 7662745966058569.,-5412076120405295.,-.499930580731527825488,-50,54, + 7662745966060264.,-5412076120406395.,.499896130419644375310,-50,54, + 7662745966061467.,-5412076120407174.,-.498456939723733583708,-50,54, + 7662745966061484.,-5412076120407186.,.479122443369141917402,-50,54, + 7662745966061558.,-5412076120407234.,.499173875670125994143,-50,54, + 7662745966061959.,-5412076120407494.,.499722853815127338326,-50,54, + 8099289753660894.,-5294311455251953.,-.499467642491369178579,-50,54, + 8099289753660912.,-5294311455251933.,.475560813203214444115,-50,54, + 8099289753660948.,-5294311455251891.,.425617724596222929736,-50,54, + 8099289753663417.,-5294311455249013.,-.499645756812354849763,-50,54, + 8099289753668463.,-5294311455243134.,.499998090013346933833,-50,54, + 8698942762429597.,-7895429733627845.,.499969717017158187583,-50,55, + 8698942762433469.,-7895429733603066.,-.468271397174747955030,-50,55, + 8698942762433484.,-7895429733602970.,-.478995471581938584487,-50,55, + 8698942762433514.,-7895429733602779.,.499556379607317338996,-50,55, + 8698942762435192.,-7895429733592041.,.499889930514700173535,-50,55, + 8698942762441626.,-7895429733550868.,.499977119128988558717,-50,55, + 8698942762477713.,-7895429733319936.,-.499995996412826188563,-50,55, + 8854932536888612.,-6835194540216248.,-.499958946560462212056,-50,55, + 8854932537038498.,-6835194539141397.,.499967274979718978442,-50,55, + 8854932537040029.,-6835194539130417.,-.499912866341725808532,-50,55, + 8854932537040666.,-6835194539125849.,-.490065475923562569778,-50,55, + 8854932537040701.,-6835194539125599.,.499486578547879019285,-50,55, + 4775738403078513.,-8849135024350521.,-.499996210416012829818,-49,58, + 4775738403080605.,-8849135024057732.,-.499875092757912867589,-49,58, + 4775738403080743.,-8849135024038419.,.497264827732915543323,-49,58, + 4775738403081318.,-8849135023957944.,.485347829415047628178,-49,58, + 4775738403081363.,-8849135023951645.,-.472106544391053011274,-49,58, + 4775738403081364.,-8849135023951506.,.484394469524326246741,-49,58, + 4839121103147445.,-5806970997263168.,.030813826210703459404,-49,88, + 4839121103178274.,-4824617776805216.,-.430431795368854012224,-49,90, + 4839121103179761.,-7873916415297767.,.221906494220763087391,-49,91, + 4839121103185709.,-6181118896420462.,-.204626959201506807331,-49,94, + 4839121103186356.,-6258145587650374.,.478650615348262688437,-49,106, + 4839121103186357.,8215836421537510.,.211497417056885612946,-49,104, + 4839121103186400.,6699560431482657.,.073357411423589518725,-49,98, + 4839121103186798.,8440156737027024.,-.142037375209910695803,-49,95, + 5140278602120771.,4840105894998503.,-.493688863056861676609,-49,55, + 5140278602120790.,4840105894998770.,-.497646922533444924631,-49,55, + 5140278602120809.,4840105894999036.,.498395017983537621063,-49,55, + 5140278602121305.,4840105895006007.,-.499668010796887076949,-49,55, + 5140278602122316.,4840105895020214.,-.499752141505528741913,-49,55, + 5140278602125349.,4840105895062834.,.499995357063216158298,-49,55, + 5140278602149098.,4840105895396565.,.499990791227707014429,-49,55, + 5150039580948362.,4976416070562338.,-.499797366965011231438,-49,55, + 5150039580948443.,4976416070563462.,-.498421678487958314016,-49,55, + 5150039580948573.,4976416070565265.,.454403500299542030120,-49,55, + 5150039580948597.,4976416070565598.,.491848148657429158489,-49,55, + 5150039580948605.,4976416070565710.,-.495670301892272631394,-49,55, + 5150039580949083.,4976416070572343.,-.499897724352075969000,-49,55, + 5150039580949804.,4976416070582348.,-.499998091205253105636,-49,55, + 5154708221458056.,5041001626311235.,-.499965836362554085129,-49,55, + 5154708221458214.,5041001626313413.,.496834420022634918039,-49,55, + 5154708221460871.,5041001626350056.,.499988029819151088922,-49,55, + 5154708221481184.,5041001626630196.,-.499993951718535900196,-49,55, + 5365973368505860.,7488440757337814.,-.499999620433801939637,-49,55, + 5365973368511304.,7488440757387586.,-.499961437479944082635,-49,55, + 5365973368514026.,7488440757412472.,-.499942624663366013692,-49,55, + 5365973368514314.,7488440757415105.,-.447773121169845997391,-49,55, + 5365973368514328.,7488440757415233.,-.452181548136359931240,-49,55, + 5365973368514468.,7488440757416513.,-.496265818071787067426,-49,55, + 5365973368514482.,7488440757416640.,.499325754907641439186,-49,55, + 5387110469217731.,7676050023613222.,.499352734539706944542,-49,55, + 5387110469217866.,7676050023614385.,-.499362428989903564414,-49,55, + 5387110469217945.,7676050023615064.,.486574623247125948420,-49,55, + 5387110469217950.,7676050023615108.,-.476340753198934856995,-49,55, + 5387110469218001.,7676050023615547.,-.498077592985247073558,-49,55, + 5387110469220077.,7676050023633415.,.499458048704706808526,-49,55, + 5387110469231807.,7676050023734380.,.499982509848911992893,-49,55, + 5387110469260606.,7676050023982265.,.499976458685179734893,-49,55, + 5443187231475084.,8117936182203666.,.499992826787761111804,-49,55, + 5443187231488417.,8117936182298895.,.499981607294285261858,-49,55, + 5443187231493524.,8117936182335371.,.499601045427031950223,-49,55, + 5443187231493728.,8117936182336829.,-.460273187657128104153,-49,55, + 5443187231493742.,8117936182336929.,-.467323380164361899832,-49,55, + 5443187231493805.,8117936182337379.,-.499049246511562920336,-49,55, + 5443187231494374.,8117936182341443.,-.499874933074785824805,-49,55, + 6614186164758965.,8706635981217961.,-.450816678291100380240,-49,93, + 6614186164761090.,8410050430930157.,-.332705236177412676678,-49,102, + 6614186164761094.,8891557998686535.,-.242752642228479063495,-49,110, + 6614186164761095.,-8236387188768307.,-.119652758515287086068,-49,104, + 6614186164762486.,-5692530968086895.,.348189592462363902442,-49,93, + 6614186164770924.,-5024977714312641.,-.402869784693658085259,-49,90, + 6614186164787102.,-6647495298955701.,.381939005195387460893,-49,89, + 6866978591822997.,-7137783446350565.,.499698745093795091880,-49,56, + 6866978591823063.,-7137783446352267.,-.443179873977767135923,-49,56, + 6866978591823083.,-7137783446352783.,-.486476425189102990009,-49,56, + 6866978591823088.,-7137783446352912.,-.497300562990303895274,-49,56, + 6866978591824013.,-7137783446376779.,-.499766044973764446778,-49,56, + 6866978591827339.,-7137783446462597.,-.499982285205649208277,-49,56, + 6866978591836670.,-7137783446703357.,-.499986075273723483451,-49,56, + 6866978591855332.,-7137783447184877.,-.499986830462701458271,-49,56, + 6871807797875414.,-7262081302439700.,-.490952624421351529932,-49,56, + 6871807797875426.,-7262081302440009.,.407945865591068573099,-49,56, + 6871807797875454.,-7262081302440727.,-.494624324365112533324,-49,56, + 6871807797875494.,-7262081302441754.,-.498296024266477384796,-49,56, + 6871807797876325.,-7262081302463090.,-.499575580127839313063,-49,56, + 6871807797876602.,-7262081302470203.,.499997905317974636637,-49,56, + 8003153055420085.,-4797209823039405.,.499994368202638091759,-49,55, + 8003153055435953.,-4797209822867653.,.499925819409513447681,-49,55, + 8003153055439920.,-4797209822824715.,.499909221599418047529,-49,55, + 8003153055441021.,-4797209822812798.,.499652573640926455091,-49,55, + 8003153055441208.,-4797209822810773.,-.450436428493872828169,-49,55, + 8003153055441214.,-4797209822810709.,.492341464493697362447,-49,55, + 8003153055441231.,-4797209822810525.,.496878827961159871508,-49,55, + 8003153055441248.,-4797209822810340.,-.498583808567415433395,-49,55, + 8003153055478489.,-4797209822407251.,-.499988824190245641108,-49,55, + 8026599925729619.,-4539733866743955.,-.499832256965889252061,-49,55, + 8026599925729907.,-4539733866740749.,.498458833954278418824,-49,55, + 8026599925729981.,-4539733866739924.,-.481146927234169938473,-49,55, + 8026599925730003.,-4539733866739680.,.497889197831500636504,-49,55, + 8026599925734914.,-4539733866684994.,.499998908122596208926,-49,55, + 8386514352214969.,-6559051993784639.,-.296065838767787398944,-49,89, + 8386514352226410.,-7921580060624415.,-.353773751402501215264,-49,90, + 8386514352242658.,-8667321679913547.,-.116946606050394019683,-49,94, + 8386514352243811.,-4611280742410300.,-.306521709135765261910,-49,98, + 8386514352243845.,-5263259305244610.,.033478148130487353121,-49,101, + 8386514352243849.,-6169749393195983.,-.003316984539935118849,-49,103, + 8386514352243850.,-4897854872500740.,.206414874819607596542,-49,104, + 8386514352243851.,5087578082780971.,.064258343382414284392,-49,105, + 8386514352244485.,4609908232859618.,-.103488917555663552378,-49,94, + 8622920769886975.,5984856310045801.,.499998758488208889349,-49,56, + 8622920769889499.,5984856310105035.,-.499006773331319267330,-49,56, + 8622920769889655.,5984856310108695.,.494715542706197568706,-49,56, + 8622920769889670.,5984856310109048.,-.486657311548571316558,-49,56, + 8622920769889982.,5984856310116370.,-.499212681145846356816,-49,56, + 8622920769891914.,5984856310161709.,.499963637378350507193,-49,56, + 8862008738793648.,5415219469716467.,.499995511810497849784,-49,55, + 8862008738797256.,5415219469746219.,-.499959929222612577318,-49,55, + 8862008738804411.,5415219469805218.,-.496269151546056653858,-49,55, + 8862008738804472.,5415219469805721.,-.499871512248566057665,-49,55, + 4875072239707455.,4572059497203396.,.499997799439164633711,-48,55, + 4875072239720933.,4572059496949165.,-.499932690604472373215,-48,55, + 4875072239721545.,4572059496937621.,-.496368406387267714567,-48,55, + 4875072239721734.,4572059496934055.,.445908794972051348556,-48,55, + 4875072239721749.,4572059496933773.,-.495180316113255533224,-48,55, + 4875072239737755.,4572059496631855.,.499992003525099988917,-48,55, + 5078766235622272.,4614290236289376.,.294677166436546272631,-48,93, + 5078766235622795.,4639228521082253.,.411769585996611012169,-48,95, + 5078766235622855.,6107994535684708.,-.490093295870027537437,-48,96, + 5078766235622970.,8006331289223727.,.474613331881587326352,-48,104, + 5078766235622971.,-5520975405089695.,-.390601092408738614630,-48,104, + 5078766235622975.,-7453775272792920.,-.027054191991394506216,-48,101, + 5078766235623303.,-8782396089681638.,-.385838265369867296095,-48,95, + 5078766235626381.,-5631547461303512.,-.132280428868675072765,-48,91, + 5078766235672596.,-5121598172587807.,.233275001314972352914,-48,87, + 5135851371705831.,-5419048471318354.,-.499774418301035564135,-48,57, + 5135851371772142.,-5419048477491878.,-.499979120885571878136,-48,57, + 5135851371777426.,-5419048477983817.,.498543010612485414068,-48,57, + 5135851371777436.,-5419048477984747.,-.496917770351115318372,-48,57, + 5135851371778089.,-5419048478045542.,.499493251411392150799,-48,57, + 5135851371778531.,-5419048478086691.,-.499873233642907897271,-48,57, + 5387492753952193.,-5845822841991305.,-.497044378965660968142,-48,55, + 5387492754182476.,-5845822844324187.,.499982833303376813414,-48,55, + 5387492754230807.,-5845822844813804.,.499866999900867254387,-48,55, + 5387492754232217.,-5845822844828087.,-.499430250851657134218,-48,55, + 5387492754232240.,-5845822844828321.,.499162773961230732135,-48,55, + 5387492754232355.,-5845822844829486.,.492127898624473925868,-48,55, + 5387492754232393.,-5845822844829870.,-.466718407789168609645,-48,55, + 5387492754232401.,-5845822844829952.,.489313948769213005613,-48,55, + 5387492754233650.,-5845822844842605.,.499865675685223951941,-48,55, + 5837710520426831.,-5470605270528504.,-.499972136207448672261,-48,56, + 5837710520427396.,-5470605270505409.,.462428490962556977290,-48,56, + 5837710520427404.,-5470605270505082.,.484904960161673757445,-48,56, + 5837710520427453.,-5470605270503079.,.497573334092687622789,-48,56, + 5837710520427543.,-5470605270499399.,-.499566386871415420093,-48,56, + 5837710520429278.,-5470605270428476.,-.499982020813611807804,-48,56, + 5837710520434172.,-5470605270228421.,.499999321655976833364,-48,56, + 5941744889480387.,-7872222272343682.,.499642822031646167294,-48,59, + 5941744889480401.,-7872222272338710.,-.483701712974797378306,-48,59, + 5941744889481048.,-7872222272108978.,-.499695572351935244288,-48,59, + 5941744889494557.,-7872222267312302.,-.499786159917794652513,-48,59, + 5941744889523076.,-7872222257185986.,-.499953800297522274698,-48,59, + 5941744889524577.,-7872222256653022.,-.499961736255964787470,-48,59, + 5963911209781110.,-8371520276265478.,-.333474234052573530214,-48,95, + 5963911209781430.,-4546494060204193.,.477056797557941154803,-48,98, + 5963911209781441.,-4801223435101529.,-.295951413394468687482,-48,99, + 5963911209781452.,-8151339996714903.,-.389822477264035744045,-48,103, + 5963911209781453.,-7635092726892524.,-.009602532316805986163,-48,105, + 5963911209781454.,8667587266537281.,-.323404846001966938534,-48,104, + 5963911209781647.,4723239019244769.,.192890226237867167994,-48,95, + 5963911209784275.,8600886122422309.,.170530285363335418442,-48,92, + 5963911209801334.,7574863407926198.,.264305032673388431162,-48,89, + 6848832968597703.,8979935717881116.,.149333447867571192611,-48,102, + 6848832968597706.,7714018915242361.,-.308359004802324293867,-48,107, + 6848832968597707.,-5343788902317212.,-.340631929853980698778,-48,103, + 6848832968597721.,-5431662505349698.,.412681261592474275436,-48,99, + 6848832968597740.,-6174968334108503.,-.478031406333618534289,-48,98, + 6848832968598644.,-5336158420993215.,.053037688815464841389,-48,93, + 6848832968598757.,-5979057253562208.,.259190441242883487686,-48,93, + 6848832968628512.,-5477070860813384.,-.387477610350367390953,-48,88, + 6848832968634463.,-6535115925138539.,-.437793530449762378095,-48,88, + 7085432669162034.,-8536018609198815.,-.499989524943783346883,-48,56, + 7085432669172893.,-8536018609487237.,.499981047176170992182,-48,56, + 7085432669175519.,-8536018609556985.,.498686648544387471126,-48,56, + 7085432669175569.,-8536018609558313.,.471243883740404462154,-48,56, + 7085432669175585.,-8536018609558737.,-.497537800938094045406,-48,56, + 7085432669175808.,-8536018609564660.,-.499932528178201634719,-48,56, + 7092287361615951.,-8715450792539630.,-.499895503905568194347,-48,56, + 7092287361616718.,-8715450792559411.,-.499626967723449689892,-48,56, + 7092287361616799.,-8715450792561500.,-.496991042795553469898,-48,56, + 7092287361616818.,-8715450792561991.,.491281581678043514115,-48,56, + 7092287361619362.,-8715450792627601.,.499995460062444269454,-48,56, + 7733608014731528.,-5903821838981407.,-.056554548471050258512,-48,90, + 7733608014736865.,-4663532807447843.,.424634001114321745081,-48,91, + 7733608014740341.,-5405423686726819.,-.468661278346292430765,-48,100, + 7733608014740347.,-5172971798281048.,-.180629124641705393622,-48,102, + 7733608014740348.,-4863035947020022.,-.277986491684085682792,-48,103, + 7733608014740349.,4958973620176409.,-.229489846733261029118,-48,106, + 7733608014740423.,6349297465134899.,-.353146413027140703281,-48,97, + 8046051565532045.,4815822440082752.,-.496955063451787193625,-48,55, + 8046051565532060.,4815822440082875.,-.480497600553156528001,-48,55, + 8046051565532080.,4815822440083039.,-.458554316709920827682,-48,55, + 8046051565532224.,4815822440084219.,.499437326232478928245,-48,55, + 8046051565533865.,4815822440097677.,.499883666855590130455,-48,55, + 8046051565534412.,4815822440102164.,-.499967589876514427553,-48,55, + 8046051565547719.,4815822440211295.,.499988926053840759104,-48,55, + 8048695210930307.,4837287231992818.,.499990726236643267976,-48,55, + 8048695210938903.,4837287232061910.,-.499822488318421520910,-48,55, + 8048695210939249.,4837287232064691.,-.498651734062570329843,-48,55, + 8048695210939250.,4837287232064699.,-.461076096055243208262,-48,55, + 8048695210939728.,4837287232068541.,-.499921135648308004392,-48,55, + 8048695210940553.,4837287232075171.,.499980174837283161468,-48,55, + 8048695211001204.,4837287232562658.,.499882060845230548473,-48,55, + 8082833509085928.,5074985483219212.,-.499932480200042665582,-48,55, + 8082833509086281.,5074985483221285.,-.499545586776637554948,-48,55, + 8082833509086877.,5074985483224785.,-.476229490399899617738,-48,55, + 8082833509086885.,5074985483224832.,-.496050751007543882829,-48,55, + 8082833509086987.,5074985483225431.,-.498771824117998741220,-48,55, + 8082833509088501.,5074985483234322.,-.499945478655999500749,-48,55, + 8082833509098793.,5074985483294761.,.499998243890242012085,-48,55, + 8383589335478369.,7800070923761131.,.454783019896147225190,-48,56, + 8383589335478385.,7800070923760721.,.480850360075062941619,-48,56, + 8383589335478393.,7800070923760516.,.493884030155373594839,-48,56, + 8383589335478624.,7800070923754597.,.495231251094093495341,-48,56, + 8383589335479394.,7800070923734867.,.499721950835705696109,-48,56, + 8383589335479471.,7800070923732895.,-.499828982297276638759,-48,56, + 8383589335486146.,7800070923561859.,-.499863319913427053360,-48,56, + 8383589335515071.,7800070922820702.,.499938825669719500602,-48,56, + 8618281477117435.,5934850510864569.,.255417157029177202554,-48,88, + 8618281477147766.,4508068057115654.,-.033658841903833041453,-48,90, + 8618281477151710.,8029518446261636.,-.044067082005446251166,-48,92, + 8618281477154433.,8987671811629126.,.205272159440959170732,-48,95, + 8618281477154714.,6572610102784020.,-.045347441590316398484,-48,96, + 8618281477154875.,5039529491134068.,-.022733988394566015300,-48,103, + 8618281477154876.,-4947143471826620.,-.071547359745896317053,-48,108, + 8618281477154878.,-5271426841375940.,.110910969765371271298,-48,102, + 8618281477154888.,-7810516366129792.,.359792683314688526431,-48,100, + 8618281477154898.,-7151588010957795.,-.387276338489158887175,-48,99, + 8618281477155654.,-7892941343739065.,-.499574376944919136234,-48,94, + 8743148203164301.,-8853769918294658.,-.499990670567845880869,-48,57, + 8743148203168935.,-8853769918599064.,-.499942904186451867037,-48,57, + 8743148203174742.,-8853769918980525.,.499688972693499741817,-48,57, + 8743148203174771.,-8853769918982430.,.498826114587543642719,-48,57, + 8743148203175032.,-8853769918999575.,.491060396143085000513,-48,57, + 8743148203175045.,-8853769919000428.,-.474843643260720391741,-48,57, + 8743148203175886.,-8853769919055673.,-.499866457289343020488,-48,57, + 8853620772962644.,-7605980179233226.,-.499868221256879934404,-48,56, + 8853620772990274.,-7605980179896043.,-.499944391923818703684,-48,56, + 8853620773014074.,-7605980180466983.,.498964572771228865164,-48,56, + 8853620773014255.,-7605980180471325.,.483872455807298681613,-48,56, + 8853620773014256.,-7605980180471349.,.494838797711499410777,-48,56, + 8853620773014530.,-7605980180477922.,.499616483177760993294,-48,56, + 8853620773016445.,-7605980180523860.,-.499838537621098415881,-48,56, + 8853620773017904.,-7605980180558860.,-.499945279415195736901,-48,56, + 8913783750986676.,-8860915658236236.,.498182606765279395567,-48,56, + 8913783750986747.,-8860915658237483.,-.499854047892716996302,-48,56, + 8913783750991835.,-8860915658326918.,.499999572544884238118,-48,56, + 8959635272253863.,-4772133308566983.,.498336259154336509815,-48,55, + 8959635272253934.,-4772133308567414.,-.483241866626204514203,-48,55, + 8959635272253946.,-4772133308567487.,-.494212817432047789598,-48,55, + 8959635272253958.,-4772133308567561.,.494816231770871682952,-48,55, + 8959635272254682.,-4772133308571966.,.499568883226710836781,-48,55, + 8959635272254955.,-4772133308573627.,.499979766988041746272,-48,55, + 8959635272272000.,-4772133308677332.,-.499998380902768184947,-48,55, + 8959635272289045.,-4772133308781038.,-.499958849217847247954,-48,55, + 4562160286572808.,-4921147910772395.,-.499988114522260463600,-47,55, + 4562160286576067.,-4921147910744403.,-.499667502990916981229,-47,55, + 4562160286576196.,-4921147910743296.,.499117871148917421322,-47,55, + 4562160286576269.,-4921147910742668.,-.493817535467348904358,-47,55, + 4562160286576291.,-4921147910742480.,.467215629919415924267,-47,55, + 4562160286576325.,-4921147910742188.,.497903249388018269761,-47,55, + 4562160286576914.,-4921147910737128.,-.499890591680480569606,-47,55, + 4562160286613150.,-4921147910425892.,-.499824073127967949428,-47,55, + 4751440848942206.,-8461480480026450.,-.365581046246372030209,-47,92, + 4751440848943900.,-8904390823025632.,.469493773542980209098,-47,97, + 4751440848943957.,-5963558367976789.,-.283421267495296053570,-47,103, + 4751440848943958.,7859460608104674.,-.396717989379585586960,-47,104, + 4751440848944116.,6121364611268079.,-.468147936898560203011,-47,95, + 4751440848944332.,7234413464146093.,-.264213052598009130793,-47,94, + 4751440848947413.,8346006370154358.,.381308908386060148235,-47,91, + 4971105597090943.,4837373379324562.,.499983074157847984415,-47,55, + 4971105597105915.,4837373379322662.,.496830917971592970402,-47,55, + 4971105597105939.,4837373379322659.,.451140541992883986183,-47,55, + 4971105597105978.,4837373379322655.,-.498106319272276614922,-47,55, + 4971105597106372.,4837373379322605.,-.498190015431501831144,-47,55, + 4971105597113267.,4837373379321730.,-.499660829743935901864,-47,55, + 4971105597114843.,4837373379321530.,-.499998644633064861085,-47,55, + 5002636990875643.,4712867175318590.,.499998006876514990362,-47,55, + 5002636990887670.,4712867175225629.,.487317584868742149347,-47,55, + 5002636990887707.,4712867175225344.,-.499002346090384711447,-47,55, + 5002636990888143.,4712867175221974.,-.499961556883769024518,-47,55, + 5002636990911096.,4712867175044561.,.499936587278119599655,-47,55, + 5103591057895432.,5703880507119645.,.499991482909020630988,-47,56, + 5103591057897858.,5703880506986320.,-.499813863620369868630,-47,56, + 5103591057898511.,5703880506950432.,.493643033821303533482,-47,56, + 5103591057898512.,5703880506950378.,-.463487966426327743123,-47,56, + 5103591057898861.,5703880506931197.,.497792930233494131327,-47,56, + 5103591057899071.,5703880506919657.,-.499717148205913086970,-47,56, + 5103591057947241.,5703880504272371.,.499672107348707912780,-47,56, + 5193713686565901.,5758474013914206.,-.346270376740785787619,-47,89, + 5193713686575817.,8005471509616159.,-.334386505018081794938,-47,97, + 5193713686575855.,4773704759865922.,-.207954147178632008833,-47,98, + 5193713686575871.,5406210442252241.,.367476323444773570868,-47,105, + 5193713686575872.,-8111384871008576.,-.483870299892190887042,-47,103, + 5193713686575873.,-8787161176290106.,.256194307168967652521,-47,102, + 5193713686576062.,-7054959009256197.,-.317247225087112750176,-47,95, + 5193713686577080.,-5585615167289168.,.337290055363055976073,-47,92, + 5193713686627640.,-7475058882574921.,-.363200814659913400857,-47,87, + 5278026714979332.,-5293374420896941.,-.499989507422010776932,-47,56, + 5278026714980153.,-5293374420941759.,.499979993960173774481,-47,56, + 5278026714984258.,-5293374421165844.,.499830305552228809560,-47,56, + 5278026714984428.,-5293374421175124.,.487643939353705358920,-47,56, + 5278026714984530.,-5293374421180692.,.480332123482679329487,-47,56, + 5455740882090985.,-8848285506710813.,.499980621832951424997,-47,56, + 5455740882091119.,-8848285506708185.,-.499637996465087028210,-47,56, + 5455740882092057.,-8848285506689796.,-.496968101908783086609,-47,56, + 5455740882092181.,-8848285506687366.,.458608757659581982929,-47,56, + 5455740882092191.,-8848285506687169.,-.496586656594657792976,-47,56, + 5455740882101475.,-8848285506505161.,-.499990145171622035497,-47,56, + 5455740882111965.,-8848285506299510.,-.499912182720444274059,-47,56, + 5635965667474777.,-7148207550690723.,-.208725391085085007560,-47,89, + 5635965667486269.,-6210867421746112.,-.257150007549455215724,-47,92, + 5635965667487265.,-7171734980479643.,-.451218513132462103239,-47,94, + 5635965667487668.,-5484711026421752.,-.468103157530832076232,-47,102, + 5635965667487669.,-7540627288767541.,-.047253814761961743663,-47,105, + 5635965667487670.,7199108408459733.,-.199258876405343467973,-47,103, + 5635965667487744.,5308083870911523.,.410769855248354341766,-47,96, + 5635965667487763.,6656529491086353.,-.130678304627134702373,-47,96, + 5635965667491766.,4543011412737300.,.163140826006894426208,-47,90, + 5635965667503258.,8643354829321902.,.018225811808515719130,-47,89, + 5660976669562287.,6409471757527878.,.499911201687595362349,-47,58, + 5660976669581638.,6409471762423637.,.499982964790566213845,-47,58, + 5660976669583397.,6409471762868661.,-.499603930634222934336,-47,58, + 5660976669583423.,6409471762875238.,.441277664416671306888,-47,58, + 5660976669583547.,6409471762906610.,.159328345082340971191,-47,58, + 5660976669583837.,6409471762979979.,.499930721317070551452,-47,58, + 5762007131324328.,7013381587148287.,.499438217284970605117,-47,56, + 5762007131379494.,7013381589316554.,.499883555874795196600,-47,56, + 5762007131380059.,7013381589338761.,.490691994771234065559,-47,56, + 5762007131380069.,7013381589339155.,-.465222901152553747972,-47,56, + 5762007131380105.,7013381589340569.,.493483473223154376482,-47,56, + 5762007131380220.,7013381589345090.,-.499537833986182015662,-47,56, + 5762007131383078.,7013381589457421.,.499983277070590275692,-47,56, + 5849202004079878.,8905168398835172.,.499965673001536924303,-47,56, + 5849202004090539.,8905168398864862.,.499514923510746216844,-47,56, + 5849202004090604.,8905168398865044.,-.480883816793643220601,-47,56, + 5849202004090618.,8905168398865083.,-.492046622646411565644,-47,56, + 5849202004090632.,8905168398865121.,.496790571412656948418,-47,56, + 5849202004090897.,8905168398865859.,.499780299473745091811,-47,56, + 5849202004091255.,8905168398866857.,-.499954382212953940160,-47,56, + 5849202004136405.,8905168398992595.,.499525187723541110122,-47,56, + 5948853825708064.,7030378375128898.,.499962148622354519878,-47,56, + 5948853825713465.,7030378374919828.,.499917749266261047288,-47,56, + 5948853825713823.,7030378374905970.,.499544145517771861513,-47,56, + 5948853825714329.,7030378374886383.,.493429422756872835836,-47,56, + 5948853825714360.,7030378374885183.,.498983656210909572016,-47,56, + 5948853825724088.,7030378374508617.,.499985933912261238007,-47,56, + 6078201341563418.,6220197509727352.,.068777197809248640994,-47,90, + 6078201341568806.,7467357096092096.,-.114676252278071811609,-47,94, + 6078201341569242.,4646290710691601.,-.344971838940390543411,-47,102, + 6078201341569243.,8718210933777724.,.227068038479628977900,-47,107, + 6078201341569244.,-8202805054660984.,-.342481723359178215373,-47,103, + 6078201341569260.,-4630184276969196.,.302522857562062089034,-47,98, + 6078201341569269.,-7090473000162901.,.397743341175155670536,-47,98, + 6078201341598179.,-7724691975299726.,.498059791219706534500,-47,88, + 6520424025042006.,-5442498472675234.,.022185318600072551851,-47,92, + 6520424025043325.,-6019205395433375.,-.114799315012887152592,-47,103, + 6520424025043326.,4853503790850184.,.105562078711624534428,-47,104, + 6520424025043335.,4902522969571952.,.392009062672677931200,-47,99, + 6520424025043336.,5430395300250606.,-.219584654428533771158,-47,99, + 6520424025043361.,4656800891804229.,-.455092745669098515025,-47,97, + 6520424025043637.,5134998963578800.,-.121077781759309253344,-47,94, + 6520424025046623.,6799010727502136.,.004394841544071234408,-47,91, + 6574525673424389.,6308694804286517.,.493455139149873900480,-47,57, + 6574525673424413.,6308694804289165.,.391706363767141744029,-47,57, + 6574525673424465.,6308694804294903.,-.495415983557687244251,-47,57, + 6574525673424623.,6308694804312335.,-.498595429066229145843,-47,57, + 6574525673424702.,6308694804321050.,.499814845042058323680,-47,57, + 6574525673426589.,6308694804529241.,.499816593534376266919,-47,57, + 6574525673513391.,6308694814106027.,.498606994505813555266,-47,57, + 6574525673562453.,6308694819518993.,.496806316630383309195,-47,57, + 6694111552504325.,7868456103101312.,.499994955738941222101,-47,56, + 6694111552504722.,7868456103108851.,.496866003360611116558,-47,56, + 6694111552504724.,7868456103108889.,.476699106715511191581,-47,56, + 6694111552504821.,7868456103110731.,.498604617507964644332,-47,56, + 6694111552504920.,7868456103112612.,-.499656772264265712409,-47,56, + 6694111552507201.,7868456103155927.,.499996383918308796985,-47,56, + 6694111552510077.,7868456103210542.,.499994504236022201264,-47,56, + 6820329768419389.,6998799868701357.,-.499953240930946327308,-47,56, + 6820329768419499.,6998799868697872.,.499651189250165909442,-47,56, + 6820329768420929.,6998799868652580.,.494508397810971755587,-47,56, + 6820329768421134.,6998799868646088.,-.415319823011565396316,-47,56, + 6820329768421146.,6998799868645708.,-.488090255903776120754,-47,56, + 6820329768421149.,6998799868645612.,.493717135865328715894,-47,56, + 6820329768444674.,6998799867900511.,.499917796726426008022,-47,56, + 6820329768454788.,6998799867580173.,.499803816044570123712,-47,56, + 6962636192037173.,5462816788900988.,-.212580070376090374095,-47,97, + 6962636192037215.,6336006995278768.,-.251713525785092092418,-47,103, + 6962636192037216.,-7349711780254776.,.267872848611203431398,-47,105, + 6962636192037218.,-4546074456437153.,-.443492474985636245594,-47,101, + 6962636192037226.,-5223236084280515.,-.386358970075743955992,-47,99, + 6962636192037324.,-6910690636734708.,-.171430621907813720157,-47,96, + 6962636192037981.,-6107924958307327.,-.083462949954484284380,-47,93, + 6962636192044347.,-7115063719176917.,-.319623962791288211795,-47,90, + 6962636192099670.,-7789086047207699.,.480404359695481478571,-47,87, + 7105178455443117.,-6864247299428363.,-.499987796037977881908,-47,56, + 7105178455449725.,-6864247299626362.,-.499988211398798118717,-47,56, + 7105178455451178.,-6864247299669900.,.492295833035854606807,-47,56, + 7105178455451233.,-6864247299671548.,.498197858893984788801,-47,56, + 7105178455451425.,-6864247299677300.,-.499380515250599409459,-47,56, + 7172554528853427.,-8028726905487062.,.408840495083741299737,-47,56, + 7172554528853432.,-8028726905487082.,.498950109031215393458,-47,56, + 7172554528853654.,-8028726905487966.,.499816978522652852993,-47,56, + 7172554528858315.,-8028726905506525.,-.499996067669004986492,-47,56, + 7404839725915266.,-8545480962385326.,.158946009028691530215,-47,94, + 7404839725915565.,-7833995150196889.,-.408135731427637558912,-47,95, + 7404839725915805.,-6458462823344366.,-.303148948683315776277,-47,99, + 7404839725915813.,-4991228341368474.,-.380009018588159969039,-47,100, + 7404839725915818.,-4821443269544619.,-.114925050283048137476,-47,107, + 7404839725915819.,7624357100973709.,.363374583810714266344,-47,103, + 7404839725915864.,5691886497505996.,.315217130973234206838,-47,97, + 7404839725955037.,4743005695744741.,-.370359989906917454691,-47,87, + 7483548296440397.,8365850768560231.,.499910411696920250414,-47,57, + 7483548296459679.,8365850770380714.,.499976904330915891786,-47,57, + 7483548296460385.,8365850770447371.,-.499712558125111009223,-47,57, + 7483548296460668.,8365850770474090.,-.451429499820199893853,-47,57, + 7483548296460680.,8365850770475223.,-.488251420379047653558,-47,57, + 7483548296460738.,8365850770480699.,-.499557370629525455146,-47,57, + 7792547491830926.,5834218084643924.,.499940771549737339883,-47,57, + 7792547491843894.,5834218083320620.,.499904540330803956384,-47,57, + 7792547491850378.,5834218082658968.,.499868681105978351667,-47,57, + 7792547491850515.,5834218082644988.,.499250892684298933624,-47,57, + 7792547491850560.,5834218082640397.,-.471754951380107331715,-47,57, + 7792547491850561.,5834218082640294.,.484444918745323434210,-47,57, + 7847036085670419.,6900890124141275.,.347657537213333258408,-47,94, + 7847036085670877.,7021278794419905.,.323359692856333179491,-47,103, + 7847036085670878.,-5423384749720407.,-.053567354770747388714,-47,106, + 7847036085670880.,-8038163434992480.,-.174162814458775541215,-47,102, + 7847036085670887.,-8746342510866202.,.428128286672815694995,-47,100, + 7847036085671077.,-5987574604814656.,.489868305311002759086,-47,95, + 7847036085672773.,-7124348389212741.,-.427666468680001107958,-47,92, + 7847036085675127.,-7986959654729073.,-.472977006695809033187,-47,91, + 8289226419061165.,-5589609244448010.,-.224146423316222063444,-47,89, + 8289226419071144.,-8216163308941910.,.030402614663338724499,-47,92, + 8289226419072604.,-5751689771694663.,.385662414923143185448,-47,93, + 8289226419073341.,-5762605052425662.,.323729805075002845088,-47,97, + 8289226419073383.,-6772687210430908.,-.157801804222142129269,-47,100, + 8289226419073386.,-7927066819579777.,.470300830919962788062,-47,101, + 8289226419073390.,-6975840285926293.,.016212923061424145892,-47,105, + 8289226419073391.,5747116730227808.,-.287015322737896323834,-47,103, + 8289226419073823.,6331820888805851.,.288197040245171005431,-47,94, + 8289226419079663.,5736057228641808.,-.476090179473884915622,-47,90, + 8398512618553118.,5215631237315140.,.499919478550401838294,-47,56, + 8398512618562106.,5215631237651423.,-.499911337645738216235,-47,56, + 8398512618577086.,5215631238211893.,-.499677422775334815201,-47,56, + 8398512618577677.,5215631238234005.,-.499001869245792308928,-47,56, + 8398512618577759.,5215631238237072.,.494323665481559651531,-47,56, + 8398512618577800.,5215631238238606.,.490986432170222407571,-47,56, + 8398512618577812.,5215631238239055.,.465619436969579500042,-47,56, + 8398512618577993.,5215631238245827.,.499667254684047102153,-47,56, + 8535255807936074.,7267532666443971.,.499896899962075540068,-47,56, + 8535255807946216.,7267532666345894.,.499958305176672797304,-47,56, + 8535255807956358.,7267532666247817.,.499982096087239276871,-47,56, + 8535255807958512.,7267532666226988.,-.499820494012779072554,-47,56, + 8535255807959589.,7267532666216573.,-.499722425313796840252,-47,56, + 8535255807959747.,7267532666215045.,-.419856634757353665690,-47,56, + 8535255807959768.,7267532666214842.,-.497849156952977364980,-47,56, + 8731411641445869.,8194107617801938.,-.486208398977024570168,-47,90, + 8731411641453826.,8836189340241483.,.058138077703799515347,-47,93, + 8731411641454872.,5521638851053434.,.375129328333264435922,-47,95, + 8731411641454928.,7849980117871698.,-.354669149872625566862,-47,96, + 8731411641455040.,5853539797605668.,-.490740391811800721898,-47,98, + 8731411641455059.,6079115161717752.,.279582670938586478042,-47,100, + 8731411641455065.,4839125852803341.,.334633153478421401460,-47,103, + 8731411641455066.,-4919680108039537.,-.113139319800348310966,-47,104, + 8731411641501045.,-5120874225906222.,.237069445408806093597,-47,87 }; +#include "trailer.h" diff --git a/src/regress/lib/libm/rint/CVS/Entries b/src/regress/lib/libm/rint/CVS/Entries new file mode 100644 index 000000000..f5d7bf748 --- /dev/null +++ b/src/regress/lib/libm/rint/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Feb 12 07:05:34 2003// +/rint.c/1.7/Tue Dec 9 20:35:13 2008// +D diff --git a/src/regress/lib/libm/rint/CVS/Repository b/src/regress/lib/libm/rint/CVS/Repository new file mode 100644 index 000000000..9d03757e9 --- /dev/null +++ b/src/regress/lib/libm/rint/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libm/rint diff --git a/src/regress/lib/libm/rint/CVS/Root b/src/regress/lib/libm/rint/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libm/rint/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libm/rint/Makefile b/src/regress/lib/libm/rint/Makefile new file mode 100644 index 000000000..0b3c1e76e --- /dev/null +++ b/src/regress/lib/libm/rint/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.1 2003/02/12 07:05:34 mickey Exp $ + +PROG=rint +LDADD=-lm +DPADD=${LIBM} + +.include diff --git a/src/regress/lib/libm/rint/obj b/src/regress/lib/libm/rint/obj new file mode 120000 index 000000000..04ca6696e --- /dev/null +++ b/src/regress/lib/libm/rint/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libm/rint \ No newline at end of file diff --git a/src/regress/lib/libm/rint/rint.c b/src/regress/lib/libm/rint/rint.c new file mode 100644 index 000000000..edb0baf73 --- /dev/null +++ b/src/regress/lib/libm/rint/rint.c @@ -0,0 +1,52 @@ +/* $OpenBSD: rint.c,v 1.7 2008/12/09 20:35:13 martynas Exp $ */ + +/* Written by Michael Shalayeff, 2003, Public domain. */ + +#include +#include +#include +#include +#include +#include +#include + +static void +sigfpe(int sig, siginfo_t *si, void *v) +{ + char buf[132]; + + if (si) { + snprintf(buf, sizeof(buf), "sigfpe: addr=%p, code=%d\n", + si->si_addr, si->si_code); + write(1, buf, strlen(buf)); + } + _exit(1); +} + +int +main(int argc, char *argv[]) +{ + struct sigaction sa; + + memset(&sa, 0, sizeof(sa)); + sa.sa_sigaction = sigfpe; + sa.sa_flags = SA_SIGINFO; + sigaction(SIGFPE, &sa, NULL); + + if (rint(8.6) != 9.) + errx(1, "rint"); + if (rintf(8.6F) != 9) + errx(1, "rintf"); + if (rintl(8.6L) != 9) + errx(1, "rintl"); + if (lrint(8.6) != 9L) + errx(1, "lrint"); + if (lrintf(8.6F) != 9L) + errx(1, "lrintf"); + if (llrint(8.6) != 9LL) + errx(1, "llrint"); + if (llrintf(8.6F) != 9LL) + errx(1, "llrintf"); + + exit(0); +} diff --git a/src/regress/lib/libm/tgamma/CVS/Entries b/src/regress/lib/libm/tgamma/CVS/Entries new file mode 100644 index 000000000..9f99ad8d7 --- /dev/null +++ b/src/regress/lib/libm/tgamma/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Jun 11 15:07:34 2008// +/tgamma.c/1.2/Sun Sep 7 20:36:10 2008// +D diff --git a/src/regress/lib/libm/tgamma/CVS/Repository b/src/regress/lib/libm/tgamma/CVS/Repository new file mode 100644 index 000000000..360886754 --- /dev/null +++ b/src/regress/lib/libm/tgamma/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libm/tgamma diff --git a/src/regress/lib/libm/tgamma/CVS/Root b/src/regress/lib/libm/tgamma/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libm/tgamma/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libm/tgamma/Makefile b/src/regress/lib/libm/tgamma/Makefile new file mode 100644 index 000000000..b8ec38ca4 --- /dev/null +++ b/src/regress/lib/libm/tgamma/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1 2008/06/11 15:07:34 martynas Exp $ + +PROG=tgamma + +LDADD=-lm +DPADD=${LIBM} + +.include diff --git a/src/regress/lib/libm/tgamma/obj b/src/regress/lib/libm/tgamma/obj new file mode 120000 index 000000000..bec17a63f --- /dev/null +++ b/src/regress/lib/libm/tgamma/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libm/tgamma \ No newline at end of file diff --git a/src/regress/lib/libm/tgamma/tgamma.c b/src/regress/lib/libm/tgamma/tgamma.c new file mode 100644 index 000000000..491fe6efc --- /dev/null +++ b/src/regress/lib/libm/tgamma/tgamma.c @@ -0,0 +1,109 @@ +/* $OpenBSD: tgamma.c,v 1.2 2008/09/07 20:36:10 martynas Exp $ */ + +/* Written by Martynas Venckus, 2008, Public domain. */ + +#include +#include +#include + +extern int errno; + +#if defined(__vax__) +#define _IEEE 0 +#else +#define _IEEE 1 +#endif + +double +infnan(int iarg) +{ + switch (iarg) { + case ERANGE: + errno = ERANGE; + return (HUGE); + case -ERANGE: + errno = EDOM; + return (-HUGE); + default: + errno = EDOM; + return (0); + } +} + +int +_isinf(double x) +{ + if (_IEEE) { + return isinf(x); + } + else { + return errno == ERANGE; + } +} + +int +_isnan(double x) +{ + if (_IEEE) { + return isnan(x); + } + else { + return errno == ERANGE; + } +} + +int +main(void) +{ + double x; + + /* Random values, approx. -177.79..171.63 */ + x = tgamma(11.0); /* (11 - 1)! */ + if (floor(x) != 3628800.0) + errx(1, "tgamma(11.0) = %f", x); + + x = tgamma(3.5); /* 15/8 * sqrt(pi) */ + if (floor(x * 100) != 332.0) + errx(1, "tgamma(3.5) = %f", x); + + x = tgamma(-0.5); /* -2 * sqrt(pi) */ + if (floor(x * 100) != -355.0) + errx(1, "tgamma(-0.5) = %f", x); + + /* Special cases */ + x = tgamma(-1); /* Negative integers */ + if (!_isnan(x)) + errx(1, "tgamma(-1) = %f", x); + + x = tgamma(-177.8); /* x ~< -177.79 */ + if (x != 0) + errx(1, "tgamma(-177.8) = %f", x); + + x = tgamma(171.64); /* x ~> 171.63 */ + if (!_isinf(x)) + errx(1, "tgamma(171.64) = %f", x); + + x = tgamma(0.0); + if (!_isinf(x) || x < 0) + errx(1, "tgamma(0) = %f", x); + + x = tgamma(-0.0); + if (!_isinf(x) || x > 0) + errx(1, "tgamma(0) = %f", x); + + x = tgamma(-HUGE_VAL); + if (!_isnan(x)) + errx(1, "tgamma(-HUGE_VAL) = %f", x); + + x = tgamma(HUGE_VAL); + if (!_isinf(x)) + errx(1, "tgamma(HUGE_VAL) = %f", x); + +#ifdef NAN + x = tgamma(NAN); + if (!_isnan(x)) + errx(1, "tgamma(NaN) = %f", x); +#endif + + return 0; +} diff --git a/src/regress/lib/libm/toint/CVS/Entries b/src/regress/lib/libm/toint/CVS/Entries new file mode 100644 index 000000000..4f12db700 --- /dev/null +++ b/src/regress/lib/libm/toint/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Feb 12 07:08:44 2003// +/toint.c/1.7/Mon Feb 8 00:47:37 2010// +D diff --git a/src/regress/lib/libm/toint/CVS/Repository b/src/regress/lib/libm/toint/CVS/Repository new file mode 100644 index 000000000..21c180398 --- /dev/null +++ b/src/regress/lib/libm/toint/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libm/toint diff --git a/src/regress/lib/libm/toint/CVS/Root b/src/regress/lib/libm/toint/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libm/toint/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libm/toint/Makefile b/src/regress/lib/libm/toint/Makefile new file mode 100644 index 000000000..423fa436b --- /dev/null +++ b/src/regress/lib/libm/toint/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2003/02/12 07:08:44 mickey Exp $ + +PROG=toint + +.include diff --git a/src/regress/lib/libm/toint/obj b/src/regress/lib/libm/toint/obj new file mode 120000 index 000000000..7e16258f8 --- /dev/null +++ b/src/regress/lib/libm/toint/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libm/toint \ No newline at end of file diff --git a/src/regress/lib/libm/toint/toint.c b/src/regress/lib/libm/toint/toint.c new file mode 100644 index 000000000..d77a276a6 --- /dev/null +++ b/src/regress/lib/libm/toint/toint.c @@ -0,0 +1,55 @@ +/* $OpenBSD: toint.c,v 1.7 2010/02/06 18:53:19 otto Exp $ */ + +/* Written by Michael Shalayeff, 2003, Public domain. */ + +#include +#include +#include +#include +#include +#include + +void +sigfpe(int sig, siginfo_t *si, void *v) +{ + char buf[132]; + + if (si) { + snprintf(buf, sizeof(buf), "sigfpe: trap=%d code=%d addr=%p\n", + si->si_trapno, si->si_code, si->si_addr); + write(1, buf, strlen(buf)); + } + _exit(1); +} + +int +toint(double d) +{ + return (int)(d + 1); +} + +long long +toll(double d) +{ + return (long long)d; +} + +int +main(int argc, char *argv[]) +{ + struct sigaction sa; + int i; + + memset(&sa, 0, sizeof(sa)); + sa.sa_sigaction = sigfpe; + sa.sa_flags = SA_SIGINFO; + sigaction(SIGFPE, &sa, NULL); + + if (toint(8.6) != 9) + exit(1); + + if (toll(2.3456e+17) != 234560000000000000LL) + exit(1); + + exit(0); +} diff --git a/src/regress/lib/libm/trivial1/CVS/Entries b/src/regress/lib/libm/trivial1/CVS/Entries new file mode 100644 index 000000000..00d398527 --- /dev/null +++ b/src/regress/lib/libm/trivial1/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.2/Mon Sep 2 20:01:43 2002// +/test-fp.out/1.1/Sat Jun 8 08:30:05 2002// +/test-fp.pl/1.1/Sat Jun 8 08:30:05 2002// +D diff --git a/src/regress/lib/libm/trivial1/CVS/Repository b/src/regress/lib/libm/trivial1/CVS/Repository new file mode 100644 index 000000000..00bd2ce87 --- /dev/null +++ b/src/regress/lib/libm/trivial1/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libm/trivial1 diff --git a/src/regress/lib/libm/trivial1/CVS/Root b/src/regress/lib/libm/trivial1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libm/trivial1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libm/trivial1/Makefile b/src/regress/lib/libm/trivial1/Makefile new file mode 100644 index 000000000..5878823f1 --- /dev/null +++ b/src/regress/lib/libm/trivial1/Makefile @@ -0,0 +1,8 @@ + +PERL=perl +REGRESS_TARGETS=test-fp + +test-fp: test-fp.pl + ${PERL} ${.CURDIR}/$@.pl | diff -u - ${.CURDIR}/test-fp.out + +.include diff --git a/src/regress/lib/libm/trivial1/obj b/src/regress/lib/libm/trivial1/obj new file mode 120000 index 000000000..0931ba272 --- /dev/null +++ b/src/regress/lib/libm/trivial1/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libm/trivial1 \ No newline at end of file diff --git a/src/regress/lib/libm/trivial1/test-fp.out b/src/regress/lib/libm/trivial1/test-fp.out new file mode 100644 index 000000000..1b2d3dc78 --- /dev/null +++ b/src/regress/lib/libm/trivial1/test-fp.out @@ -0,0 +1,2 @@ +13 +119 diff --git a/src/regress/lib/libm/trivial1/test-fp.pl b/src/regress/lib/libm/trivial1/test-fp.pl new file mode 100644 index 000000000..0ebb77fca --- /dev/null +++ b/src/regress/lib/libm/trivial1/test-fp.pl @@ -0,0 +1,10 @@ +#!/bin/perl + +$a = 113549; + +while ($a >= 128) { + $x = $a % 128; + $a /= 128; + print "$x\n"; +} + diff --git a/src/regress/lib/libpthread/CVS/Entries b/src/regress/lib/libpthread/CVS/Entries new file mode 100644 index 000000000..6da323a0e --- /dev/null +++ b/src/regress/lib/libpthread/CVS/Entries @@ -0,0 +1,51 @@ +/Makefile.inc/1.9/Mon Jun 16 13:35:33 2003// +D/blocked_close//// +D/blocked_dup2//// +D/blocked_shutdown//// +D/cancel//// +D/cancel2//// +D/close//// +D/close_race//// +D/closefrom//// +D/cwd//// +D/dup2_race//// +D/execve//// +D/fcntl//// +D/fork//// +D/getaddrinfo//// +D/group//// +D/include//// +D/malloc_duel//// +D/netdb//// +D/pause//// +D/pcap//// +D/poll//// +D/preemption//// +D/preemption_float//// +D/pthread_atfork//// +D/pthread_cond_timedwait//// +D/pthread_create//// +D/pthread_join//// +D/pthread_kill//// +D/pthread_mutex//// +D/pthread_specific//// +D/pw//// +D/readdir//// +D/select//// +D/setjmp//// +D/sigdeliver//// +D/siginfo//// +D/sigmask//// +D/signal//// +D/signodefer//// +D/sigsuspend//// +D/sigwait//// +D/sleep//// +D/socket//// +D/stdarg//// +D/stdfiles//// +D/stdio//// +D/switch//// +D/system//// +D/setsockopt//// +/Makefile/1.27/Tue Jan 5 17:18:19 2010// diff --git a/src/regress/lib/libpthread/CVS/Repository b/src/regress/lib/libpthread/CVS/Repository new file mode 100644 index 000000000..e3354ea78 --- /dev/null +++ b/src/regress/lib/libpthread/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread diff --git a/src/regress/lib/libpthread/CVS/Root b/src/regress/lib/libpthread/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/Makefile b/src/regress/lib/libpthread/Makefile new file mode 100644 index 000000000..8c92bd395 --- /dev/null +++ b/src/regress/lib/libpthread/Makefile @@ -0,0 +1,45 @@ +# $OpenBSD: Makefile,v 1.27 2010/01/03 23:02:33 fgsch Exp $ + +SUBDIR= blocked_close blocked_dup2 blocked_shutdown cancel cancel2 close \ + closefrom close_race cwd dup2_race execve fork group \ + malloc_duel netdb pcap poll \ + preemption preemption_float \ + pthread_atfork pthread_cond_timedwait pthread_create \ + pthread_join pthread_kill pthread_mutex pthread_specific readdir \ + select setjmp setsockopt signal sigdeliver siginfo signodefer \ + sigsuspend sigwait sleep socket stdarg stdio switch system + +# Not available or disabled: fcntl, getaddrinfo, pause, pw, sigmask, stdfiles + +install: + +.PHONY: testall +testall: + rm -f /tmp/thread-{shared,static,debug} + make cleandir && make obj && make depend && \ + REGRESS_LOG=/tmp/thread-shared make + (export LDFLAGS=-static; make clean && \ + REGRESS_LOG=/tmp/thread-static make) + (export DEBUG=-g; make clean && \ + REGRESS_LOG=/tmp/thread-debug make) + @echo "\n\nTest Results:" + @(shared=$$(grep FAIL /tmp/thread-shared) || true; \ + if [ "$$shared" ]; then \ + echo "** SHARED lib failures:"; echo "$$shared"; echo; \ + else \ + echo "No SHARED lib failures"; \ + fi) + @(static=$$(grep FAIL /tmp/thread-static) || true; \ + if [ "$$static" ]; then \ + echo "** STATIC lib failures:"; echo "$$static"; echo; \ + else \ + echo "No STATIC lib failures"; \ + fi) + @(debug=$$(grep FAIL /tmp/thread-debug) || true; \ + if [ "$$debug" ]; then \ + echo "** DEBUG lib failures:"; echo "$$debug"; echo; \ + else \ + echo "No DEBUG lib failures"; \ + fi) + +.include diff --git a/src/regress/lib/libpthread/Makefile.inc b/src/regress/lib/libpthread/Makefile.inc new file mode 100644 index 000000000..3f03cbd19 --- /dev/null +++ b/src/regress/lib/libpthread/Makefile.inc @@ -0,0 +1,14 @@ +# $OpenBSD: Makefile.inc,v 1.9 2003/06/16 13:35:33 mickey Exp $ +# Copyright (c) 1993 Chris Provenzano, proven@athena.mit.edu + +LIBPTHREAD= /usr/lib/libpthread.a + +LDADD+= -pthread +DPADD+= ${LIBPTHREAD} + +CFLAGS+= -Wall # -Werror +#DEBUG= -ggdb +CFLAGS+= -DSRCDIR='"${.CURDIR}"' +CFLAGS+= -I${.CURDIR}/../include + +REGRESS_MAXTIME?=30 diff --git a/src/regress/lib/libpthread/blocked_close/CVS/Entries b/src/regress/lib/libpthread/blocked_close/CVS/Entries new file mode 100644 index 000000000..f539bf76e --- /dev/null +++ b/src/regress/lib/libpthread/blocked_close/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Sep 22 18:29:47 2006// +/blocked_close.c/1.2/Fri Oct 6 13:11:58 2006// +D diff --git a/src/regress/lib/libpthread/blocked_close/CVS/Repository b/src/regress/lib/libpthread/blocked_close/CVS/Repository new file mode 100644 index 000000000..7fa3667e9 --- /dev/null +++ b/src/regress/lib/libpthread/blocked_close/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/blocked_close diff --git a/src/regress/lib/libpthread/blocked_close/CVS/Root b/src/regress/lib/libpthread/blocked_close/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/blocked_close/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/blocked_close/Makefile b/src/regress/lib/libpthread/blocked_close/Makefile new file mode 100644 index 000000000..019022131 --- /dev/null +++ b/src/regress/lib/libpthread/blocked_close/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2006/09/22 18:29:47 kurt Exp $ + +PROG= blocked_close + +.include diff --git a/src/regress/lib/libpthread/blocked_close/blocked_close.c b/src/regress/lib/libpthread/blocked_close/blocked_close.c new file mode 100644 index 000000000..5ad339ba3 --- /dev/null +++ b/src/regress/lib/libpthread/blocked_close/blocked_close.c @@ -0,0 +1,114 @@ +/* $OpenBSD: blocked_close.c,v 1.2 2006/10/06 13:11:58 kurt Exp $ */ +/* + * Copyright (c) 2006 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * Test close() racing with other threads using the same file + * descriptor, with some of them blocking on data that will never + * arrive. + */ + +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +#define ITERATIONS 100 +#define BUSY_THREADS 5 +#define WAITING_THREADS 5 + +static void * +deadlock_detector(void *arg) +{ + sleep(60); + PANIC("deadlock detected"); +} + +static void * +waiting_read(void *arg) +{ + int fd = *(int *)arg; + struct sockaddr remote_addr; + char readBuf; + int n, remote_addr_len = sizeof(struct sockaddr); + + n = recvfrom(fd, &readBuf, 1, 0, &remote_addr, &remote_addr_len); + + if (n == -1) + return ((caddr_t)NULL + errno); + else + return (NULL); +} + +static void * +busy_thread(void *arg) +{ + int fd = *(int *)arg; + + /* loop until error */ + while(fcntl(fd, F_GETFD, NULL) != -1); + + return ((caddr_t)NULL + errno); +} + +int +main(int argc, char *argv[]) +{ + pthread_t busy_threads[BUSY_THREADS]; + pthread_t waiting_threads[WAITING_THREADS]; + pthread_t deadlock_thread; + struct sockaddr_in addr; + int fd, i, j; + void *value_ptr; + struct timespec rqtp; + + rqtp.tv_sec = 0; + rqtp.tv_nsec = 1000000; + + bzero((char *) &addr, sizeof addr); + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + addr.sin_port = htons(0); + + CHECKr(pthread_create(&deadlock_thread, NULL, + deadlock_detector, NULL)); + + for (i = 0; i < ITERATIONS; i++) { + CHECKe(fd = socket(AF_INET, SOCK_DGRAM, 0)); + CHECKr(bind(fd, (struct sockaddr *)&addr, sizeof(addr))); + for (j = 0; j < BUSY_THREADS; j++) + CHECKr(pthread_create(&busy_threads[j], NULL, + busy_thread, (void *)&fd)); + for (j = 0; j < WAITING_THREADS; j++) + CHECKr(pthread_create(&waiting_threads[j], NULL, + waiting_read, (void *)&fd)); + nanosleep(&rqtp, NULL); + CHECKr(close(fd)); + for (j = 0; j < BUSY_THREADS; j++) { + CHECKr(pthread_join(busy_threads[j], &value_ptr)); + ASSERT(value_ptr == (void *)EBADF); + } + for (j = 0; j < WAITING_THREADS; j++) { + CHECKr(pthread_join(waiting_threads[j], &value_ptr)); + ASSERT(value_ptr == (void *)EBADF); + } + } + SUCCEED; +} diff --git a/src/regress/lib/libpthread/blocked_close/obj b/src/regress/lib/libpthread/blocked_close/obj new file mode 120000 index 000000000..3def3bd02 --- /dev/null +++ b/src/regress/lib/libpthread/blocked_close/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/blocked_close \ No newline at end of file diff --git a/src/regress/lib/libpthread/blocked_dup2/CVS/Entries b/src/regress/lib/libpthread/blocked_dup2/CVS/Entries new file mode 100644 index 000000000..680da62d5 --- /dev/null +++ b/src/regress/lib/libpthread/blocked_dup2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Sep 22 18:31:06 2006// +/blocked_dup2.c/1.3/Fri Oct 6 13:11:58 2006// +D diff --git a/src/regress/lib/libpthread/blocked_dup2/CVS/Repository b/src/regress/lib/libpthread/blocked_dup2/CVS/Repository new file mode 100644 index 000000000..e1c8e0b92 --- /dev/null +++ b/src/regress/lib/libpthread/blocked_dup2/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/blocked_dup2 diff --git a/src/regress/lib/libpthread/blocked_dup2/CVS/Root b/src/regress/lib/libpthread/blocked_dup2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/blocked_dup2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/blocked_dup2/Makefile b/src/regress/lib/libpthread/blocked_dup2/Makefile new file mode 100644 index 000000000..26e771e07 --- /dev/null +++ b/src/regress/lib/libpthread/blocked_dup2/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2006/09/22 18:31:06 kurt Exp $ + +PROG= blocked_dup2 + +.include diff --git a/src/regress/lib/libpthread/blocked_dup2/blocked_dup2.c b/src/regress/lib/libpthread/blocked_dup2/blocked_dup2.c new file mode 100644 index 000000000..a76dc5e83 --- /dev/null +++ b/src/regress/lib/libpthread/blocked_dup2/blocked_dup2.c @@ -0,0 +1,118 @@ +/* $OpenBSD: blocked_dup2.c,v 1.3 2006/10/06 13:11:58 kurt Exp $ */ +/* + * Copyright (c) 2006 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * Test dup2() racing with other threads using the same file + * descriptor, with some of them blocking on data that will never + * arrive. + */ + +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +#define ITERATIONS 100 +#define BUSY_THREADS 5 +#define WAITING_THREADS 5 + +static void * +deadlock_detector(void *arg) +{ + sleep(60); + PANIC("deadlock detected"); +} + +static void * +waiting_read(void *arg) +{ + int fd = *(int *)arg; + struct sockaddr remote_addr; + char readBuf; + int n, remote_addr_len = sizeof(struct sockaddr); + + n = recvfrom(fd, &readBuf, 1, 0, &remote_addr, &remote_addr_len); + + if (n == -1) + return ((caddr_t)NULL + errno); + else + return (NULL); +} + +static void * +busy_thread(void *arg) +{ + int fd = *(int *)arg; + + /* loop until error */ + while(fcntl(fd, F_GETFD, NULL) != -1); + + return ((caddr_t)NULL + errno); +} + +int +main(int argc, char *argv[]) +{ + pthread_t busy_threads[BUSY_THREADS]; + pthread_t waiting_threads[WAITING_THREADS]; + pthread_t deadlock_thread; + struct sockaddr_in addr; + int fd, newfd, i, j; + void *value_ptr; + struct timespec rqtp; + + rqtp.tv_sec = 0; + rqtp.tv_nsec = 1000000; + + bzero((char *) &addr, sizeof addr); + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + addr.sin_port = htons(0); + + CHECKr(pthread_create(&deadlock_thread, NULL, + deadlock_detector, NULL)); + + CHECKe(fd = socket(AF_INET, SOCK_DGRAM, 0)); + CHECKr(bind(fd, (struct sockaddr *)&addr, sizeof(addr))); + + CHECKe(newfd = socket(AF_INET, SOCK_DGRAM, 0)); + CHECKr(bind(newfd, (struct sockaddr *)&addr, sizeof(addr))); + + for (i = 0; i < ITERATIONS; i++) { + for (j = 0; j < BUSY_THREADS; j++) + CHECKr(pthread_create(&busy_threads[j], NULL, + busy_thread, (void *)&newfd)); + for (j = 0; j < WAITING_THREADS; j++) + CHECKr(pthread_create(&waiting_threads[j], NULL, + waiting_read, (void *)&newfd)); + nanosleep(&rqtp, NULL); + CHECKe(dup2(fd, newfd)); + for (j = 0; j < BUSY_THREADS; j++) { + CHECKr(pthread_join(busy_threads[j], &value_ptr)); + ASSERT(value_ptr == (void *)EBADF); + } + for (j = 0; j < WAITING_THREADS; j++) { + CHECKr(pthread_join(waiting_threads[j], &value_ptr)); + ASSERT(value_ptr == (void *)EBADF); + } + } + SUCCEED; +} diff --git a/src/regress/lib/libpthread/blocked_dup2/obj b/src/regress/lib/libpthread/blocked_dup2/obj new file mode 120000 index 000000000..20ecdccce --- /dev/null +++ b/src/regress/lib/libpthread/blocked_dup2/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/blocked_dup2 \ No newline at end of file diff --git a/src/regress/lib/libpthread/blocked_shutdown/CVS/Entries b/src/regress/lib/libpthread/blocked_shutdown/CVS/Entries new file mode 100644 index 000000000..0e18b986f --- /dev/null +++ b/src/regress/lib/libpthread/blocked_shutdown/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Oct 13 18:02:52 2006// +/blocked_shutdown.c/1.1/Fri Oct 13 18:02:52 2006// +D diff --git a/src/regress/lib/libpthread/blocked_shutdown/CVS/Repository b/src/regress/lib/libpthread/blocked_shutdown/CVS/Repository new file mode 100644 index 000000000..0c159afa2 --- /dev/null +++ b/src/regress/lib/libpthread/blocked_shutdown/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/blocked_shutdown diff --git a/src/regress/lib/libpthread/blocked_shutdown/CVS/Root b/src/regress/lib/libpthread/blocked_shutdown/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/blocked_shutdown/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/blocked_shutdown/Makefile b/src/regress/lib/libpthread/blocked_shutdown/Makefile new file mode 100644 index 000000000..f0d5cbc95 --- /dev/null +++ b/src/regress/lib/libpthread/blocked_shutdown/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2006/10/13 18:02:52 kurt Exp $ + +PROG= blocked_shutdown + +.include diff --git a/src/regress/lib/libpthread/blocked_shutdown/blocked_shutdown.c b/src/regress/lib/libpthread/blocked_shutdown/blocked_shutdown.c new file mode 100644 index 000000000..1d95d398e --- /dev/null +++ b/src/regress/lib/libpthread/blocked_shutdown/blocked_shutdown.c @@ -0,0 +1,115 @@ +/* $OpenBSD: blocked_shutdown.c,v 1.1 2006/10/13 18:02:52 kurt Exp $ */ +/* + * Copyright (c) 2006 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * Test shutdown() racing with other threads using the same file + * descriptor, with some of them blocking on data that will never + * arrive. + */ + +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +#define ITERATIONS 100 +#define BUSY_THREADS 5 +#define WAITING_THREADS 5 + +static void * +deadlock_detector(void *arg) +{ + sleep(60); + PANIC("deadlock detected"); +} + +static void * +waiting_read(void *arg) +{ + int fd = *(int *)arg; + struct sockaddr remote_addr; + char readBuf; + int n, remote_addr_len = sizeof(struct sockaddr); + + n = recvfrom(fd, &readBuf, 1, 0, &remote_addr, &remote_addr_len); + + if (n == -1) + return ((caddr_t)NULL + errno); + else + return (NULL); +} + +static void * +busy_thread(void *arg) +{ + int fd = *(int *)arg; + + /* loop until error */ + while(fcntl(fd, F_GETFD, NULL) != -1); + + return ((caddr_t)NULL + errno); +} + +int +main(int argc, char *argv[]) +{ + pthread_t busy_threads[BUSY_THREADS]; + pthread_t waiting_threads[WAITING_THREADS]; + pthread_t deadlock_thread; + struct sockaddr_in addr; + int fd, i, j; + void *value_ptr; + struct timespec rqtp; + + rqtp.tv_sec = 0; + rqtp.tv_nsec = 1000000; + + bzero((char *) &addr, sizeof addr); + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + + CHECKr(pthread_create(&deadlock_thread, NULL, + deadlock_detector, NULL)); + + for (i = 0; i < ITERATIONS; i++) { + CHECKe(fd = socket(AF_INET, SOCK_DGRAM, 0)); + addr.sin_port = htons(0); + CHECKr(bind(fd, (struct sockaddr *)&addr, sizeof(addr))); + for (j = 0; j < BUSY_THREADS; j++) + CHECKr(pthread_create(&busy_threads[j], NULL, + busy_thread, (void *)&fd)); + for (j = 0; j < WAITING_THREADS; j++) + CHECKr(pthread_create(&waiting_threads[j], NULL, + waiting_read, (void *)&fd)); + nanosleep(&rqtp, NULL); + CHECKr(shutdown(fd, SHUT_RDWR)); + for (j = 0; j < WAITING_THREADS; j++) { + CHECKr(pthread_join(waiting_threads[j], &value_ptr)); + ASSERT(value_ptr == NULL); + } + CHECKr(close(fd)); + for (j = 0; j < BUSY_THREADS; j++) { + CHECKr(pthread_join(busy_threads[j], &value_ptr)); + ASSERT(value_ptr == (void *)EBADF); + } + } + SUCCEED; +} diff --git a/src/regress/lib/libpthread/blocked_shutdown/obj b/src/regress/lib/libpthread/blocked_shutdown/obj new file mode 120000 index 000000000..77c39b07f --- /dev/null +++ b/src/regress/lib/libpthread/blocked_shutdown/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/blocked_shutdown \ No newline at end of file diff --git a/src/regress/lib/libpthread/cancel/CVS/Entries b/src/regress/lib/libpthread/cancel/CVS/Entries new file mode 100644 index 000000000..1ec047210 --- /dev/null +++ b/src/regress/lib/libpthread/cancel/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/cancel.c/1.6/Thu Jul 31 21:48:04 2003// +D diff --git a/src/regress/lib/libpthread/cancel/CVS/Repository b/src/regress/lib/libpthread/cancel/CVS/Repository new file mode 100644 index 000000000..c3b722887 --- /dev/null +++ b/src/regress/lib/libpthread/cancel/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/cancel diff --git a/src/regress/lib/libpthread/cancel/CVS/Root b/src/regress/lib/libpthread/cancel/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/cancel/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/cancel/Makefile b/src/regress/lib/libpthread/cancel/Makefile new file mode 100644 index 000000000..de275c5e1 --- /dev/null +++ b/src/regress/lib/libpthread/cancel/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= cancel + +.include diff --git a/src/regress/lib/libpthread/cancel/cancel.c b/src/regress/lib/libpthread/cancel/cancel.c new file mode 100644 index 000000000..60d9b0b7e --- /dev/null +++ b/src/regress/lib/libpthread/cancel/cancel.c @@ -0,0 +1,181 @@ +/* $OpenBSD: cancel.c,v 1.6 2003/07/31 21:48:04 deraadt Exp $ */ +/* David Leonard , 1999. Public Domain. */ + +#include +#include +#include +#include +#include +#include +#include "test.h" + +static pthread_cond_t cond; +static pthread_mutex_t mutex; +static struct timespec expiretime; + +static volatile int pv_state = 0; + +static void +p(void) +{ + CHECKr(pthread_mutex_lock(&mutex)); + if (pv_state <= 0) { + CHECKr(pthread_cond_timedwait(&cond, &mutex, &expiretime)); + } + pv_state--; + CHECKr(pthread_mutex_unlock(&mutex)); +} + +static void +v(void) +{ + int needsignal; + + CHECKr(pthread_mutex_lock(&mutex)); + pv_state++; + needsignal = (pv_state == 1); + if (needsignal) + CHECKr(pthread_cond_signal(&cond)); + CHECKr(pthread_mutex_unlock(&mutex)); +} + +static void +c1handler(void *arg) +{ + CHECKe(close(*(int *)arg)); + v(); +} + +static void * +child1fn(void *arg) +{ + int fd; + char buf[1024]; + int len; + + SET_NAME("c1"); + CHECKr(pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL)); + /* something that will block */ + CHECKe(fd = open("/dev/tty", O_RDONLY)); + pthread_cleanup_push(c1handler, (void *)&fd); + v(); + while (1) { + CHECKe(len = read(fd, &buf, sizeof buf)); + printf("child 1 read %d bytes\n", len); + } + PANIC("child 1"); +} + +static int c2_in_test = 0; + +static void +c2handler(void *arg) +{ + ASSERT(c2_in_test); + v(); +} + +static int message_seen = 0; +static void * +child2fn(void *arg) +{ + SET_NAME("c2"); + + CHECKr(pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL)); + pthread_cleanup_push(c2handler, NULL); + v(); + + while (1) { + struct timespec now; + struct timespec end; + + /* + * XXX Be careful not to call any cancellation points + * until pthread_testcancel() + */ + + CHECKe(clock_gettime(CLOCK_REALTIME, &end)); + end.tv_sec ++; + + while (1) { + CHECKe(clock_gettime(CLOCK_REALTIME, &now)); + if (timespeccmp(&now, &end, >=)) + break; + pthread_yield(); + } + + /* XXX write() contains a cancellation point */ + /* printf("child 2 testing for cancel\n"); */ + + c2_in_test = 1; + pthread_testcancel(); + printf("you should see this message exactly once\n"); + message_seen++; + c2_in_test = 0; + ASSERT(message_seen == 1); + v(); + } + PANIC("child 2"); +} + +static int c3_cancel_survived; + +static void +c3handler(void *arg) +{ + printf("(fyi, cancellation of self %s instantaneous)\n", + (c3_cancel_survived ? "was not" : "was")); + v(); +} + +static void * +child3fn(void *arg) +{ + SET_NAME("c3"); + pthread_cleanup_push(c3handler, NULL); + + /* Cancel myself */ + CHECKr(pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL)); + c3_cancel_survived = 0; + pthread_cancel(pthread_self()); + c3_cancel_survived = 1; + pthread_testcancel(); + + PANIC("child 3"); +} + +int +main(int argc, char *argv[]) +{ + pthread_t child1, child2, child3; + + /* Set up our control flow */ + CHECKr(pthread_mutex_init(&mutex, NULL)); + CHECKr(pthread_cond_init(&cond, NULL)); + CHECKe(clock_gettime(CLOCK_REALTIME, &expiretime)); + expiretime.tv_sec += 5; /* this test shouldn't run over 5 seconds */ + + CHECKr(pthread_create(&child1, NULL, child1fn, NULL)); + CHECKr(pthread_create(&child2, NULL, child2fn, NULL)); + p(); + p(); + + CHECKr(pthread_cancel(child1)); + p(); + + /* Give thread 2 a chance to go through its deferred loop once */ + p(); + CHECKr(pthread_cancel(child2)); + p(); + + /* Child 3 cancels itself */ + CHECKr(pthread_create(&child3, NULL, child3fn, NULL)); + p(); + + /* Make sure they're all gone */ + CHECKr(pthread_join(child3, NULL)); + CHECKr(pthread_join(child2, NULL)); + CHECKr(pthread_join(child1, NULL)); + + exit(0); +} diff --git a/src/regress/lib/libpthread/cancel/obj b/src/regress/lib/libpthread/cancel/obj new file mode 120000 index 000000000..21ede6f41 --- /dev/null +++ b/src/regress/lib/libpthread/cancel/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/cancel \ No newline at end of file diff --git a/src/regress/lib/libpthread/cancel2/CVS/Entries b/src/regress/lib/libpthread/cancel2/CVS/Entries new file mode 100644 index 000000000..6d6a87ffb --- /dev/null +++ b/src/regress/lib/libpthread/cancel2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Jan 19 21:23:46 2003// +/cancel2.c/1.2/Thu Jul 31 21:48:04 2003// +D diff --git a/src/regress/lib/libpthread/cancel2/CVS/Repository b/src/regress/lib/libpthread/cancel2/CVS/Repository new file mode 100644 index 000000000..4aa837d38 --- /dev/null +++ b/src/regress/lib/libpthread/cancel2/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/cancel2 diff --git a/src/regress/lib/libpthread/cancel2/CVS/Root b/src/regress/lib/libpthread/cancel2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/cancel2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/cancel2/Makefile b/src/regress/lib/libpthread/cancel2/Makefile new file mode 100644 index 000000000..8cf71cfe4 --- /dev/null +++ b/src/regress/lib/libpthread/cancel2/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2003/01/19 21:23:46 marc Exp $ + +PROG= cancel2 + +.include diff --git a/src/regress/lib/libpthread/cancel2/cancel2.c b/src/regress/lib/libpthread/cancel2/cancel2.c new file mode 100644 index 000000000..d65abf5a0 --- /dev/null +++ b/src/regress/lib/libpthread/cancel2/cancel2.c @@ -0,0 +1,43 @@ +/* $OpenBSD: cancel2.c,v 1.2 2003/07/31 21:48:04 deraadt Exp $ */ +/* PUBLIC DOMAIN */ + +/* + * Check that a thread waiting on a select without timeout can be + * cancelled. + */ + +#include +#include + +#include +#include + +#include "test.h" + +static void * +select_thread(void *arg) +{ + int read_fd = *(int*) arg; + fd_set read_fds; + int result; + + FD_ZERO(&read_fds); + FD_SET(read_fd, &read_fds); + result = select(read_fd + 1, &read_fds, NULL, NULL, NULL); + printf("select returned %d\n", result); + return 0; +} + +int +main(int argc, char *argv[]) +{ + pthread_t thread; + int pipe_fd[2]; + + CHECKe(pipe(pipe_fd)); + CHECKr(pthread_create(&thread, NULL, select_thread, pipe_fd)); + sleep(2); + CHECKr(pthread_cancel(thread)); + CHECKr(pthread_join(thread, NULL)); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/cancel2/obj b/src/regress/lib/libpthread/cancel2/obj new file mode 120000 index 000000000..02eb4e2fd --- /dev/null +++ b/src/regress/lib/libpthread/cancel2/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/cancel2 \ No newline at end of file diff --git a/src/regress/lib/libpthread/close/CVS/Entries b/src/regress/lib/libpthread/close/CVS/Entries new file mode 100644 index 000000000..044e90346 --- /dev/null +++ b/src/regress/lib/libpthread/close/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/close.c/1.5/Thu Jan 8 04:19:19 2004// +D diff --git a/src/regress/lib/libpthread/close/CVS/Repository b/src/regress/lib/libpthread/close/CVS/Repository new file mode 100644 index 000000000..b52f94b33 --- /dev/null +++ b/src/regress/lib/libpthread/close/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/close diff --git a/src/regress/lib/libpthread/close/CVS/Root b/src/regress/lib/libpthread/close/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/close/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/close/Makefile b/src/regress/lib/libpthread/close/Makefile new file mode 100644 index 000000000..68692366a --- /dev/null +++ b/src/regress/lib/libpthread/close/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= close + +.include diff --git a/src/regress/lib/libpthread/close/close.c b/src/regress/lib/libpthread/close/close.c new file mode 100644 index 000000000..ed218f153 --- /dev/null +++ b/src/regress/lib/libpthread/close/close.c @@ -0,0 +1,160 @@ +/* $OpenBSD: close.c,v 1.5 2004/01/08 04:19:19 marc Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Test the semantics of close() while a select() is happening. + * Not a great test. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +#define BUFSIZE 4096 + +int fd; + +/* + * meat of inetd discard service -- ignore data + */ +static void +discard(int s) +{ + char buffer[BUFSIZE]; + + while ((errno = 0, read(s, buffer, sizeof(buffer)) > 0) || + errno == EINTR) + ; +} + +/* + * Listen on localhost:TEST_PORT for a connection + */ +#define TEST_PORT 9876 + +static void +server(void) +{ + int sock; + int client; + int client_addr_len; + struct sockaddr_in serv_addr; + struct sockaddr client_addr; + + CHECKe(sock = socket(AF_INET, SOCK_STREAM, 0)); + bzero((char *) &serv_addr, sizeof serv_addr); + serv_addr.sin_family = AF_INET; + serv_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + serv_addr.sin_port = htons(TEST_PORT); + CHECKe(bind(sock, (struct sockaddr *) &serv_addr, sizeof serv_addr)); + CHECKe(listen(sock,3)); + + client_addr_len = sizeof client_addr; + CHECKe(client = accept(sock, &client_addr, &client_addr_len )); + CHECKe(close(sock)); + discard(client); + CHECKe(close(client)); + exit(0); +} + +static void * +new_thread(void* arg) +{ + fd_set r; + int ret; + char garbage[] = "blah blah blah"; + + FD_ZERO(&r); + FD_SET(fd, &r); + + printf("child: writing some garbage to fd %d\n", fd); + CHECKe(write(fd, garbage, sizeof garbage)); + printf("child: calling select() with fd %d\n", fd); + ASSERT((ret = select(fd + 1, &r, NULL, NULL, NULL)) == -1); + ASSERT(errno == EBADF); + printf("child: select() returned %d, errno %d = %s [correct]\n", ret, + errno, strerror(errno)); + return NULL; +} + +int +main(int argc, char *argv[]) +{ + pthread_t thread; + pthread_attr_t attr; + struct sockaddr_in addr; + int ret; + + /* fork and have the child open a listener */ + signal(SIGCHLD, SIG_IGN); + switch (fork()) { + case 0: + server(); + exit(0); + case -1: + exit(errno); + default: + sleep(2); + } + + /* Open up a TCP connection to the local discard port */ + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + addr.sin_port = htons(TEST_PORT); + + CHECKe(fd = socket(AF_INET, SOCK_STREAM, 0)); + printf("main: connecting to test port with fd %d\n", fd); + ret = connect(fd, (struct sockaddr *)&addr, sizeof addr); + if (ret == -1) + fprintf(stderr, "connect() failed: ensure that the discard port is enabled for inetd(8)\n"); + CHECKe(ret); + printf("main: connected on fd %d\n", fd); + + CHECKr(pthread_attr_init(&attr)); + CHECKe(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED)); + printf("starting child thread\n"); + CHECKr(pthread_create(&thread, &attr, new_thread, NULL)); + sleep(1); + printf("main: closing fd %d\n", fd); + CHECKe(close(fd)); + printf("main: closed\n"); + sleep(1); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/close/obj b/src/regress/lib/libpthread/close/obj new file mode 120000 index 000000000..0fa0a571e --- /dev/null +++ b/src/regress/lib/libpthread/close/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/close \ No newline at end of file diff --git a/src/regress/lib/libpthread/close_race/CVS/Entries b/src/regress/lib/libpthread/close_race/CVS/Entries new file mode 100644 index 000000000..91c64d5b0 --- /dev/null +++ b/src/regress/lib/libpthread/close_race/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Sep 22 18:32:16 2006// +/close_race.c/1.2/Fri Oct 6 13:11:58 2006// +D diff --git a/src/regress/lib/libpthread/close_race/CVS/Repository b/src/regress/lib/libpthread/close_race/CVS/Repository new file mode 100644 index 000000000..3f7c7b76d --- /dev/null +++ b/src/regress/lib/libpthread/close_race/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/close_race diff --git a/src/regress/lib/libpthread/close_race/CVS/Root b/src/regress/lib/libpthread/close_race/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/close_race/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/close_race/Makefile b/src/regress/lib/libpthread/close_race/Makefile new file mode 100644 index 000000000..82cb693c3 --- /dev/null +++ b/src/regress/lib/libpthread/close_race/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2006/09/22 18:32:16 kurt Exp $ + +PROG= close_race + +.include diff --git a/src/regress/lib/libpthread/close_race/close_race.c b/src/regress/lib/libpthread/close_race/close_race.c new file mode 100644 index 000000000..05ce8a151 --- /dev/null +++ b/src/regress/lib/libpthread/close_race/close_race.c @@ -0,0 +1,78 @@ +/* $OpenBSD: close_race.c,v 1.2 2006/10/06 13:11:58 kurt Exp $ */ +/* + * Copyright (c) 2006 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * Test close() racing with other threads using the same file + * descriptor. + */ + +#include +#include +#include +#include +#include +#include "test.h" + +#define ITERATIONS 100 +#define BUSY_THREADS 10 + +static void * +deadlock_detector(void *arg) +{ + sleep(60); + PANIC("deadlock detected"); +} + +static void * +busy_thread(void *arg) +{ + int fd = *(int *)arg; + + /* loop until error */ + while(fcntl(fd, F_GETFD, NULL) != -1); + + return ((caddr_t)NULL + errno); +} + +int +main(int argc, char *argv[]) +{ + pthread_t busy_threads[BUSY_THREADS], deadlock_thread; + int fd, i, j; + void *value_ptr; + struct timespec rqtp; + + rqtp.tv_sec = 0; + rqtp.tv_nsec = 1000000; + + CHECKr(pthread_create(&deadlock_thread, NULL, + deadlock_detector, NULL)); + + for (i = 0; i < ITERATIONS; i++) { + CHECKe(fd = socket(AF_INET, SOCK_DGRAM, 0)); + for (j = 0; j < BUSY_THREADS; j++) + CHECKr(pthread_create(&busy_threads[j], NULL, + busy_thread, (void *)&fd)); + nanosleep(&rqtp, NULL); + CHECKr(close(fd)); + for (j = 0; j < 5; j++) { + CHECKr(pthread_join(busy_threads[j], &value_ptr)); + ASSERT(value_ptr == (void *)EBADF); + } + } + SUCCEED; +} diff --git a/src/regress/lib/libpthread/close_race/obj b/src/regress/lib/libpthread/close_race/obj new file mode 120000 index 000000000..2b6cc72ea --- /dev/null +++ b/src/regress/lib/libpthread/close_race/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/close_race \ No newline at end of file diff --git a/src/regress/lib/libpthread/closefrom/CVS/Entries b/src/regress/lib/libpthread/closefrom/CVS/Entries new file mode 100644 index 000000000..cfbb58044 --- /dev/null +++ b/src/regress/lib/libpthread/closefrom/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Jan 15 22:22:52 2004// +/closefrom.c/1.1/Thu Jan 15 22:22:52 2004// +D diff --git a/src/regress/lib/libpthread/closefrom/CVS/Repository b/src/regress/lib/libpthread/closefrom/CVS/Repository new file mode 100644 index 000000000..4ed7052a9 --- /dev/null +++ b/src/regress/lib/libpthread/closefrom/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/closefrom diff --git a/src/regress/lib/libpthread/closefrom/CVS/Root b/src/regress/lib/libpthread/closefrom/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/closefrom/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/closefrom/Makefile b/src/regress/lib/libpthread/closefrom/Makefile new file mode 100644 index 000000000..8bc42fd76 --- /dev/null +++ b/src/regress/lib/libpthread/closefrom/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2004/01/15 22:22:52 marc Exp $ + +PROG= closefrom + +.include diff --git a/src/regress/lib/libpthread/closefrom/closefrom.c b/src/regress/lib/libpthread/closefrom/closefrom.c new file mode 100644 index 000000000..3568e41a8 --- /dev/null +++ b/src/regress/lib/libpthread/closefrom/closefrom.c @@ -0,0 +1,47 @@ +/* $OpenBSD: closefrom.c,v 1.1 2004/01/15 22:22:52 marc Exp $ */ + +/* PUBLIC DOMAIN: No Rights Reserved. Marco S Hyman */ + +#include +#include +#include + +#include "test.h" + +static void * +dummy_thread(void* arg) +{ + /* just exit */ + return NULL; +} + +/* + * Test that closefrom does the right thing in a threaded programs, + * specifically that it doesn't kill the thread kernel signal pipe. + */ +int +main(int argc, char *argv[]) +{ + pthread_t thread; + void *status; + int fd; + int result; + + /* close files above stderr. The kernel pipes shouldn't be touched */ + fd = STDERR_FILENO + 1; + result = closefrom(fd); + printf("closefrom(%d) == %d/%d\n", fd, result, errno); + + /* do it again: make sure that the result is -1/EBADF */ + result = closefrom(fd); + printf("closefrom(%d) == %d/%d\n", fd, result, errno); + ASSERT(result == -1 && errno == EBADF); + + /* start a thread to verify the thread kernel is working */ + CHECKr(pthread_create(&thread, NULL, dummy_thread, NULL)); + CHECKr(pthread_join(thread, &status)); + printf("dummy thread exited with status %p\n", status); + + SUCCEED; + return 0; +} diff --git a/src/regress/lib/libpthread/closefrom/obj b/src/regress/lib/libpthread/closefrom/obj new file mode 120000 index 000000000..e52c8a930 --- /dev/null +++ b/src/regress/lib/libpthread/closefrom/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/closefrom \ No newline at end of file diff --git a/src/regress/lib/libpthread/cwd/CVS/Entries b/src/regress/lib/libpthread/cwd/CVS/Entries new file mode 100644 index 000000000..dd088deb3 --- /dev/null +++ b/src/regress/lib/libpthread/cwd/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/cwd.c/1.2/Thu Sep 20 16:43:15 2001// +D diff --git a/src/regress/lib/libpthread/cwd/CVS/Repository b/src/regress/lib/libpthread/cwd/CVS/Repository new file mode 100644 index 000000000..bb4a31edb --- /dev/null +++ b/src/regress/lib/libpthread/cwd/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/cwd diff --git a/src/regress/lib/libpthread/cwd/CVS/Root b/src/regress/lib/libpthread/cwd/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/cwd/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/cwd/Makefile b/src/regress/lib/libpthread/cwd/Makefile new file mode 100644 index 000000000..77118de45 --- /dev/null +++ b/src/regress/lib/libpthread/cwd/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= cwd + +.include diff --git a/src/regress/lib/libpthread/cwd/cwd.c b/src/regress/lib/libpthread/cwd/cwd.c new file mode 100644 index 000000000..925e337a7 --- /dev/null +++ b/src/regress/lib/libpthread/cwd/cwd.c @@ -0,0 +1,56 @@ +/* $OpenBSD: cwd.c,v 1.2 2001/09/20 16:43:15 todd Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * 'Test' getcwd() and getwd() + */ + +#include +#include +#include +#include +#include "test.h" + +int +main(int argc, char **argv) +{ + char wd[MAXPATHLEN]; + char *path; + + ASSERT(path = getcwd(wd, sizeof wd)); + printf("getcwd => %s\n", path); + ASSERT(path = getwd(wd)); + printf("getwd => %s\n", path); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/cwd/obj b/src/regress/lib/libpthread/cwd/obj new file mode 120000 index 000000000..cec86f72f --- /dev/null +++ b/src/regress/lib/libpthread/cwd/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/cwd \ No newline at end of file diff --git a/src/regress/lib/libpthread/dup2_race/CVS/Entries b/src/regress/lib/libpthread/dup2_race/CVS/Entries new file mode 100644 index 000000000..3d037c687 --- /dev/null +++ b/src/regress/lib/libpthread/dup2_race/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Sep 22 18:33:18 2006// +/dup2_race.c/1.3/Fri Oct 6 13:11:58 2006// +D diff --git a/src/regress/lib/libpthread/dup2_race/CVS/Repository b/src/regress/lib/libpthread/dup2_race/CVS/Repository new file mode 100644 index 000000000..939cd8640 --- /dev/null +++ b/src/regress/lib/libpthread/dup2_race/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/dup2_race diff --git a/src/regress/lib/libpthread/dup2_race/CVS/Root b/src/regress/lib/libpthread/dup2_race/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/dup2_race/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/dup2_race/Makefile b/src/regress/lib/libpthread/dup2_race/Makefile new file mode 100644 index 000000000..98e0a499b --- /dev/null +++ b/src/regress/lib/libpthread/dup2_race/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2006/09/22 18:33:18 kurt Exp $ + +PROG= dup2_race + +.include diff --git a/src/regress/lib/libpthread/dup2_race/dup2_race.c b/src/regress/lib/libpthread/dup2_race/dup2_race.c new file mode 100644 index 000000000..41fcb2c8d --- /dev/null +++ b/src/regress/lib/libpthread/dup2_race/dup2_race.c @@ -0,0 +1,81 @@ +/* $OpenBSD: dup2_race.c,v 1.3 2006/10/06 13:11:58 kurt Exp $ */ +/* + * Copyright (c) 2006 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * Test dup2() racing with other threads using the same file + * descriptor. + */ + +#include +#include +#include +#include +#include +#include "test.h" + +#define ITERATIONS 100 +#define BUSY_THREADS 10 + +static void * +deadlock_detector(void *arg) +{ + sleep(60); + PANIC("deadlock detected"); +} + +static void * +busy_thread(void *arg) +{ + int fd = *(int *)arg; + + /* loop until error */ + while(fcntl(fd, F_GETFD, NULL) != -1); + + return ((caddr_t)NULL + errno); +} + +int +main(int argc, char *argv[]) +{ + pthread_t busy_threads[BUSY_THREADS], deadlock_thread; + int fd, newfd, i, j; + void *value_ptr; + struct timespec rqtp; + + rqtp.tv_sec = 0; + rqtp.tv_nsec = 1000000; + + CHECKr(pthread_create(&deadlock_thread, NULL, + deadlock_detector, NULL)); + + CHECKe(fd = socket(AF_INET, SOCK_DGRAM, 0)); + + for (i = 0; i < 100; i++) { + CHECKe(newfd = socket(AF_INET, SOCK_DGRAM, 0)); + for (j = 0; j < BUSY_THREADS; j++) + CHECKr(pthread_create(&busy_threads[j], NULL, + busy_thread, (void *)&newfd)); + nanosleep(&rqtp, NULL); + CHECKe(dup2(fd, newfd)); + for (j = 0; j < BUSY_THREADS; j++) { + CHECKr(pthread_join(busy_threads[j], &value_ptr)); + ASSERT(value_ptr == (void *)EBADF); + } + CHECKe(close(newfd)); + } + SUCCEED; +} diff --git a/src/regress/lib/libpthread/dup2_race/obj b/src/regress/lib/libpthread/dup2_race/obj new file mode 120000 index 000000000..82ce765d8 --- /dev/null +++ b/src/regress/lib/libpthread/dup2_race/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/dup2_race \ No newline at end of file diff --git a/src/regress/lib/libpthread/execve/CVS/Entries b/src/regress/lib/libpthread/execve/CVS/Entries new file mode 100644 index 000000000..fc99ae333 --- /dev/null +++ b/src/regress/lib/libpthread/execve/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/execve.c/1.4/Thu Sep 18 01:59:58 2003// +D diff --git a/src/regress/lib/libpthread/execve/CVS/Repository b/src/regress/lib/libpthread/execve/CVS/Repository new file mode 100644 index 000000000..2889f8460 --- /dev/null +++ b/src/regress/lib/libpthread/execve/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/execve diff --git a/src/regress/lib/libpthread/execve/CVS/Root b/src/regress/lib/libpthread/execve/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/execve/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/execve/Makefile b/src/regress/lib/libpthread/execve/Makefile new file mode 100644 index 000000000..32df4e491 --- /dev/null +++ b/src/regress/lib/libpthread/execve/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= execve + +.include diff --git a/src/regress/lib/libpthread/execve/execve.c b/src/regress/lib/libpthread/execve/execve.c new file mode 100644 index 000000000..7e6905c56 --- /dev/null +++ b/src/regress/lib/libpthread/execve/execve.c @@ -0,0 +1,82 @@ +/* $OpenBSD: execve.c,v 1.4 2003/09/18 01:59:58 henning Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright (c) 1994 by Chris Provenzano, proven@athena.mit.edu + * + * Test execve() and dup2() calls. + */ + +#include +#include +#include +#include +#include +#include "test.h" + +extern char **environ; +char *new_argv[] = { + "/bin/echo", + "This line should appear after the execve", + NULL +}; + +char * should_succeed = "This line should be displayed\n"; + +int +main(int argc, char *argv[]) +{ + int fd; + + printf("This is the first message\n"); + if (isatty(STDOUT_FILENO)) { + char *ttynm; + + CHECKn(ttynm = ttyname(STDOUT_FILENO)); + printf("tty is %s\n", ttynm); + CHECKe(fd = open(ttynm, O_RDWR)); + } else { + printf("IGNORED: stdout is not a tty: this test needs a tty\n"); + SUCCEED; + } + + CHECKn(printf("This output is necessary to set the stdout fd to NONBLOCKING\n")); + + /* do a dup2 */ + CHECKe(dup2(fd, STDOUT_FILENO)); + CHECKe(write(STDOUT_FILENO, should_succeed, + (size_t)strlen(should_succeed))); + CHECKe(execve(new_argv[0], new_argv, environ)); + DIE(errno, "execve %s", new_argv[0]); +} diff --git a/src/regress/lib/libpthread/execve/obj b/src/regress/lib/libpthread/execve/obj new file mode 120000 index 000000000..e316cc16f --- /dev/null +++ b/src/regress/lib/libpthread/execve/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/execve \ No newline at end of file diff --git a/src/regress/lib/libpthread/fcntl/CVS/Entries b/src/regress/lib/libpthread/fcntl/CVS/Entries new file mode 100644 index 000000000..6420581dc --- /dev/null +++ b/src/regress/lib/libpthread/fcntl/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/fcntl.c/1.1.1.1/Wed Aug 15 14:37:11 2001// +D diff --git a/src/regress/lib/libpthread/fcntl/CVS/Repository b/src/regress/lib/libpthread/fcntl/CVS/Repository new file mode 100644 index 000000000..33bcb3a8f --- /dev/null +++ b/src/regress/lib/libpthread/fcntl/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/fcntl diff --git a/src/regress/lib/libpthread/fcntl/CVS/Root b/src/regress/lib/libpthread/fcntl/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/fcntl/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/fcntl/Makefile b/src/regress/lib/libpthread/fcntl/Makefile new file mode 100644 index 000000000..19867a165 --- /dev/null +++ b/src/regress/lib/libpthread/fcntl/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= fcntl + +.include diff --git a/src/regress/lib/libpthread/fcntl/fcntl.c b/src/regress/lib/libpthread/fcntl/fcntl.c new file mode 100644 index 000000000..3e054ca67 --- /dev/null +++ b/src/regress/lib/libpthread/fcntl/fcntl.c @@ -0,0 +1,70 @@ +/* $OpenBSD: fcntl.c,v 1.1.1.1 2001/08/15 14:37:11 fgsch Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Test fcntl() flag inheritance across a fork() + */ + +#include +#include +#include +#include +#include +#include "test.h" + +int +main() +{ + int flags, newflags, child; + + CHECKe(flags = fcntl(0, F_GETFL)); + printf("flags = %x\n", flags); + + CHECKe(child = fork()); + switch(child) { + case 0: /* child */ + CHECKe(execlp("./pthread_create", "./pthread_create", + (char *)NULL)); + /* NOTREACHED */ + default: /* parent */ + CHECKe(wait(NULL)); + break; + } + + while(1){ + CHECKe(newflags = fcntl(0, F_GETFL)); + printf ("parent %d flags = %x\n", child, newflags); + sleep(1); + } +} diff --git a/src/regress/lib/libpthread/fork/CVS/Entries b/src/regress/lib/libpthread/fork/CVS/Entries new file mode 100644 index 000000000..873c514a8 --- /dev/null +++ b/src/regress/lib/libpthread/fork/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/fork.c/1.4/Thu Jul 31 21:48:04 2003// +D diff --git a/src/regress/lib/libpthread/fork/CVS/Repository b/src/regress/lib/libpthread/fork/CVS/Repository new file mode 100644 index 000000000..05db84dda --- /dev/null +++ b/src/regress/lib/libpthread/fork/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/fork diff --git a/src/regress/lib/libpthread/fork/CVS/Root b/src/regress/lib/libpthread/fork/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/fork/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/fork/Makefile b/src/regress/lib/libpthread/fork/Makefile new file mode 100644 index 000000000..7d0b80bd9 --- /dev/null +++ b/src/regress/lib/libpthread/fork/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= fork + +.include diff --git a/src/regress/lib/libpthread/fork/fork.c b/src/regress/lib/libpthread/fork/fork.c new file mode 100644 index 000000000..170dfe432 --- /dev/null +++ b/src/regress/lib/libpthread/fork/fork.c @@ -0,0 +1,137 @@ +/* $OpenBSD: fork.c,v 1.4 2003/07/31 21:48:04 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright (c) 1994 by Chris Provenzano, proven@athena.mit.edu + * + * Test the fork system call. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + + +static void * +empty(void *arg) +{ + + return (void *)0x12345678; +} + +static void * +sleeper(void *arg) +{ + + pthread_set_name_np(pthread_self(), "slpr"); + sleep(10); + PANIC("sleeper timed out"); +} + + +int +main(int argc, char *argv[]) +{ + int flags; + pthread_t sleeper_thread; + void *result; + int status; + pid_t parent_pid; + pid_t child_pid; + + parent_pid = getpid(); + + CHECKe(flags = fcntl(STDOUT_FILENO, F_GETFL)); + if ((flags & (O_NONBLOCK | O_NDELAY))) { + /* This fails when stdout is /dev/null!? */ + /*CHECKe*/(fcntl(STDOUT_FILENO, F_SETFL, + flags & ~(O_NONBLOCK | O_NDELAY))); + } + + CHECKr(pthread_create(&sleeper_thread, NULL, sleeper, NULL)); + sleep(1); + + printf("forking from pid %d\n", getpid()); + + CHECKe(child_pid = fork()); + if (child_pid == 0) { + /* child: */ + printf("child = pid %d\n", getpid()); + /* Our pid should change */ + ASSERT(getpid() != parent_pid); + /* Our sleeper thread should have disappeared */ + printf("sleeper should have disappeared\n"); + + /* + * The following is bogus. The sleeper thread was + * freed before the fork returned. Calling pthread_join + * dereferences the 'sleeper_thread' pointer which no + * longer points to a valid thread structure. If the + * function returns ESRCH it's only because the freed + * memory hasn't been reused yet. + ASSERT(ESRCH == pthread_join(sleeper_thread, &result)); + printf("sleeper disappeared correctly\n"); + */ + + /* Test starting another thread */ + CHECKr(pthread_create(&sleeper_thread, NULL, empty, NULL)); + sleep(1); + CHECKr(pthread_join(sleeper_thread, &result)); + ASSERT(result == (void *)0x12345678); + printf("child ok\n"); + _exit(0); + PANIC("child _exit"); + } + + /* parent: */ + printf("parent = pid %d\n", getpid()); + /* Our pid should stay the same */ + ASSERT(getpid() == parent_pid); + /* wait for the child */ + ASSERTe(wait(&status), == child_pid); + /* the child should have called exit(0) */ + ASSERT(WIFEXITED(status)); + ASSERT(WEXITSTATUS(status) == 0); + /* Our sleeper thread should still be around */ + CHECKr(pthread_detach(sleeper_thread)); + printf("parent ok\n"); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/fork/obj b/src/regress/lib/libpthread/fork/obj new file mode 120000 index 000000000..a05e068ad --- /dev/null +++ b/src/regress/lib/libpthread/fork/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/fork \ No newline at end of file diff --git a/src/regress/lib/libpthread/getaddrinfo/CVS/Entries b/src/regress/lib/libpthread/getaddrinfo/CVS/Entries new file mode 100644 index 000000000..070a6d6e1 --- /dev/null +++ b/src/regress/lib/libpthread/getaddrinfo/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Feb 1 18:51:44 2002// +/getaddrinfo.c/1.3/Sat Jan 18 01:48:21 2003// +D diff --git a/src/regress/lib/libpthread/getaddrinfo/CVS/Repository b/src/regress/lib/libpthread/getaddrinfo/CVS/Repository new file mode 100644 index 000000000..6eccacd28 --- /dev/null +++ b/src/regress/lib/libpthread/getaddrinfo/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/getaddrinfo diff --git a/src/regress/lib/libpthread/getaddrinfo/CVS/Root b/src/regress/lib/libpthread/getaddrinfo/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/getaddrinfo/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/getaddrinfo/Makefile b/src/regress/lib/libpthread/getaddrinfo/Makefile new file mode 100644 index 000000000..59f66ed04 --- /dev/null +++ b/src/regress/lib/libpthread/getaddrinfo/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/01 18:51:44 todd Exp $ + +PROG= getaddrinfo + +.include diff --git a/src/regress/lib/libpthread/getaddrinfo/getaddrinfo.c b/src/regress/lib/libpthread/getaddrinfo/getaddrinfo.c new file mode 100644 index 000000000..9629022fb --- /dev/null +++ b/src/regress/lib/libpthread/getaddrinfo/getaddrinfo.c @@ -0,0 +1,91 @@ +/* $OpenBSD: getaddrinfo.c,v 1.3 2003/01/18 01:48:21 marc Exp $ */ +/* + * Copyright (c) 2002 Todd T. Fries + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "test.h" + +#define STACK_SIZE (2 * 1024 * 1024) + +void *func(void *); + +int +main(argc, argv) + int argc; + char **argv; +{ + pthread_attr_t attr; + pthread_t threads[2]; + int i; + + CHECKr(pthread_attr_init(&attr)); + CHECKr(pthread_attr_setstacksize(&attr, (size_t) STACK_SIZE)); + for (i = 0; i < 2; i++) { + CHECKr(pthread_create(&threads[i], &attr, func, NULL)); + } + + pthread_yield(); + for (i = 0; i < 2; i++) { + CHECKr(pthread_join(threads[i], NULL)); + } + + SUCCEED; +} + +void * +func(arg) + void *arg; +{ + struct addrinfo hints, *res; + char h[NI_MAXHOST]; + int i; + + memset(&hints, 0, sizeof(hints)); + hints.ai_family = PF_UNSPEC; + hints.ai_socktype = SOCK_DGRAM; + hints.ai_flags = AI_CANONNAME; + + printf("Starting thread %p\n", pthread_self()); + + for(i = 0; i < 50; i++) { + if (getaddrinfo("www.openbsd.org", "0", &hints, &res)) + printf("error on thread %p\n", pthread_self()); + else { + getnameinfo(res->ai_addr, res->ai_addrlen, h, sizeof h, + NULL, 0, NI_NUMERICHOST); + printf("success on thread %p: %s is %s\n", + pthread_self(), res->ai_canonname, h); + freeaddrinfo(res); + } + } + return (NULL); +} + diff --git a/src/regress/lib/libpthread/group/CVS/Entries b/src/regress/lib/libpthread/group/CVS/Entries new file mode 100644 index 000000000..80b0eccf0 --- /dev/null +++ b/src/regress/lib/libpthread/group/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/group.c/1.6/Sun Oct 30 23:59:43 2005// +D diff --git a/src/regress/lib/libpthread/group/CVS/Repository b/src/regress/lib/libpthread/group/CVS/Repository new file mode 100644 index 000000000..61117bade --- /dev/null +++ b/src/regress/lib/libpthread/group/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/group diff --git a/src/regress/lib/libpthread/group/CVS/Root b/src/regress/lib/libpthread/group/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/group/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/group/Makefile b/src/regress/lib/libpthread/group/Makefile new file mode 100644 index 000000000..7dbeea25f --- /dev/null +++ b/src/regress/lib/libpthread/group/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= group + +.include diff --git a/src/regress/lib/libpthread/group/group.c b/src/regress/lib/libpthread/group/group.c new file mode 100644 index 000000000..6fade5de4 --- /dev/null +++ b/src/regress/lib/libpthread/group/group.c @@ -0,0 +1,192 @@ +/* $OpenBSD: group.c,v 1.6 2005/10/30 23:59:43 fgsch Exp $ */ + +/* David Leonard , 2001. Public Domain. */ + +/* + * Test getgrgid_r() across multiple threads to see if the members list changes. + */ + +#include +#include +#include +#include +#include +#include +#include "test.h" + +int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **); + +char fail[] = "fail"; + +pthread_cond_t done; +volatile int done_count; + +pthread_mutex_t display; +pthread_mutex_t display2; + +static void * +test(void *arg) +{ + gid_t gid = *(gid_t *)arg; + gid_t ogid; + struct group grpbuf; + struct group *grp; + char **p; + char buffer[5000]; + char buf[2048]; + char *cpy[128]; + int i; + int count1, count2; + char *s; + char *oname; + char *opasswd; + size_t len; + + /* Acquire lock for running first part. */ + CHECKr(pthread_mutex_lock(&display)); + + /* Store magic name to test for non-alteration */ + grpbuf.gr_name = fail; + + /* Call getgrgid_r() */ + printf("gid %d\n", gid); + CHECKr(getgrgid_r(gid, &grpbuf, buffer, sizeof(buffer), &grp)); + + /* Test for non-alteration of group structure */ + ASSERT(grp->gr_name != fail); + + /* We must get the right group */ + ASSERT(grp->gr_gid == gid); + + s = buf; /* Keep our private buffer on the stack */ + len = sizeof(buf); + + /* copy gr_name */ + strlcpy(oname = s, grp->gr_name, len); + len -= 1 + strlen(s); + s += 1 + strlen(s); + + /* copy gr_passwd */ + strlcpy(opasswd = s, grp->gr_passwd, len); + len -= 1 + strlen(s); + s += 1 + strlen(s); + + /* copy gr_gid */ + ogid = grp->gr_gid; + + /* copy gr_mem */ + for (i = 0, p = grp->gr_mem; *p; p++) { + strlcpy(cpy[i] = s, *p, len); + i++; + len -= 1 + strlen(s); + s += 1 + strlen(s); + } + cpy[i] = NULL; + +#if 0 + printf("now: %s:%s:%d:", grp->gr_name, grp->gr_passwd, grp->gr_gid); + for (p = grp->gr_mem; *p; p++) + printf("%s%s", *p, *(p+1) == NULL ? "": ","); + printf("\n"); +#endif + +#ifdef DEBUG /* debugging this program */ + printf("buf = \""); + for (i = 0; i < s - buf; i++) + if (buf[i] == '\0') printf("\\0"); + else printf("%c", buf[i]); + printf("\"\n"); +#endif + + /* Inform main that we have finished */ + done_count++; + CHECKr(pthread_cond_signal(&done)); + + /* Allow other threads to run first part */ + CHECKr(pthread_mutex_unlock(&display)); + + /* Acquire lock for the second part */ + CHECKr(pthread_mutex_lock(&display2)); + + count1 = 0; + printf("before: %s:%s:%d:", oname, opasswd, ogid); + for (p = cpy; *p; p++) { + count1++; + printf("%s%s", *p, *(p+1) == NULL ? "": ","); + } + printf("\n"); + + count2 = 0; + printf("after: %s:%s:%d:", grp->gr_name, grp->gr_passwd, grp->gr_gid); + for (p = grp->gr_mem; *p; p++) { + count2++; + printf("%s%s", *p, *(p+1) == NULL ? "": ","); + } + printf("\n"); + + CHECKr(pthread_mutex_unlock(&display2)); + + if (count1 != count2) + return "gr_mem length changed"; + for (i = 0; i < count1; i++) + if (strcmp(cpy[i], grp->gr_mem[i]) != 0) + return "gr_mem list changed"; + if (strcmp(grp->gr_name, oname) != 0) + return "gr_name changed"; + if (strcmp(grp->gr_passwd, opasswd) != 0) + return "gr_passwd changed"; + if (grp->gr_gid != ogid) + return "gr_gid changed"; + return NULL; +} + + +#define NGRPS 5 +int +main(int argc, char *argv[]) +{ + pthread_t thread[NGRPS]; + int gid; + int failed; + void *result; + + CHECKr(pthread_mutex_init(&display, NULL)); + CHECKr(pthread_mutex_init(&display2, NULL)); + + CHECKr(pthread_cond_init(&done, NULL)); + done_count = 0; + + pthread_mutex_lock(&display); + pthread_mutex_lock(&display2); + + /* Get separate threads to do a group open separately */ + for (gid = 0; gid < NGRPS; gid++) { + int *n = (int *)malloc(sizeof(int)); + *n = gid; + + CHECKr(pthread_create(&thread[gid], NULL, test, (void *)n)); + } + + /* Allow all threads to run their first part */ + while (done_count < NGRPS) + pthread_cond_wait(&done, &display); + + /* Allow each thread to run the 2nd part of its test */ + CHECKr(pthread_mutex_unlock(&display2)); + + /* Wait for each thread to terminate, collecting results. */ + failed = 0; + for (gid = 0; gid < NGRPS; gid++) { + CHECKr(pthread_join(thread[gid], &result)); + if (result != NULL) { + fprintf(stderr, "gid %d: %s\n", gid, (char *)result); + failed++; + } + } + + if (!failed) { + SUCCEED; + } else { + exit(1); + } +} diff --git a/src/regress/lib/libpthread/group/obj b/src/regress/lib/libpthread/group/obj new file mode 120000 index 000000000..1b653bae9 --- /dev/null +++ b/src/regress/lib/libpthread/group/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/group \ No newline at end of file diff --git a/src/regress/lib/libpthread/include/CVS/Entries b/src/regress/lib/libpthread/include/CVS/Entries new file mode 100644 index 000000000..de9c67add --- /dev/null +++ b/src/regress/lib/libpthread/include/CVS/Entries @@ -0,0 +1,2 @@ +/test.h/1.5/Tue Sep 2 23:52:17 2003// +D diff --git a/src/regress/lib/libpthread/include/CVS/Repository b/src/regress/lib/libpthread/include/CVS/Repository new file mode 100644 index 000000000..5845e815d --- /dev/null +++ b/src/regress/lib/libpthread/include/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/include diff --git a/src/regress/lib/libpthread/include/CVS/Root b/src/regress/lib/libpthread/include/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/include/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/include/test.h b/src/regress/lib/libpthread/include/test.h new file mode 100644 index 000000000..61afc45be --- /dev/null +++ b/src/regress/lib/libpthread/include/test.h @@ -0,0 +1,124 @@ +/* $OpenBSD: test.h,v 1.5 2003/09/02 23:52:17 david Exp $ */ + +#ifndef _h_test_ +#define _h_test_ + +#include +#include +#include +#include +#include +#include + +int _thread_sys_write(int, const char*, size_t); +__dead void _thread_sys__exit(int) __attribute__((__noreturn__)); + +static __dead void __vpanic(const char *, const char *, const char *, + int, const char *, va_list) __attribute__((__noreturn__)); +static __dead void __panic(const char *, const char *, const char *, + int, const char *, ...) __attribute__((__noreturn__)); + +#if defined(__OpenBSD__) || defined(__FreeBSD__) +#include +#include +void _thread_dump_info(void); +#define SET_NAME(x) pthread_set_name_np(pthread_self(), x) +#define DUMP_INFO() _thread_dump_info() +#else +#define SET_NAME(x) /* nada */ +#define DUMP_INFO() /* nada */ +#endif + +static void +__vpanic(type, errstr, filenm, lineno, fmt, ap) + const char *type; + const char *errstr; + const char *filenm; + int lineno; + const char *fmt; + va_list ap; +{ + char buf[1024]; + + /* " at :: :" */ + snprintf(buf, sizeof buf, "%s at %s:%d\n", type, filenm, lineno); + _thread_sys_write(2, buf, strlen(buf)); + vsnprintf(buf, sizeof buf, fmt, ap); + if (errstr != NULL) { + strlcat(buf, ": ", sizeof buf); + strlcat(buf, errstr, sizeof buf); + } + strlcat(buf, "\n", sizeof buf); + _thread_sys_write(2, buf, strlen(buf)); + + DUMP_INFO(); + _thread_sys__exit(1); + + _thread_sys_write(2, "[locking]\n", 10); + while(1); +} + +static void +__panic(type, errstr, filenm, lineno, fmt) + const char *type; + const char *errstr; + const char *filenm; + int lineno; + const char *fmt; +{ + va_list ap; + + va_start(ap, fmt); + __vpanic(type, errstr, filenm, lineno, fmt, ap); + va_end(ap); +} + +#define DIE(e, m, args...) \ + __panic("died", strerror(e), __FILE__, __LINE__, m , ## args) + +#define PANIC(m, args...) \ + __panic("panic", NULL, __FILE__, __LINE__, m, ## args) + +#define ASSERT(x) do { \ + if (!(x)) \ + __panic("assert failed", NULL, __FILE__, __LINE__, "%s", #x); \ +} while(0) + +#define ASSERTe(x,rhs) do { \ + int _x; \ + _x = (x); \ + if (!(_x rhs)) { \ + if (_x > 0) \ + __panic("assert failed", strerror(_x), __FILE__, __LINE__, \ + "%s %s", #x, #rhs); \ + else \ + __panic("assert failed", NULL, __FILE__, __LINE__, \ + "%s [=%d] %s", #x, _x, #rhs); \ + } \ +} while(0) + +#define _T(x) __builtin_classify_type(x) + +#define _CHECK(x, rhs, efn) do { \ + typeof(x) _x; \ + _x = (x); \ + if (!(_x rhs)) \ + __panic("check failed", efn, __FILE__, __LINE__, \ + ((_T(0) == _T(_x) )? "failed check %s (=%d) %s " : \ + (_T("") == _T(_x) )? "failed check %s (=%s) %s " : \ + (_T('x') == _T(_x) )? "failed check %s (=%c) %s " : \ + (_T(0L) == _T(_x) )? "failed check %s (=%ld) %s " : "?") \ + , #x, _x, #rhs); \ +} while(0) + +#define CHECKr(x) _CHECK(x, == 0, strerror(_x)) +#define CHECKe(x) _CHECK(x, != -1, strerror(errno)) +#define CHECKn(x) _CHECK(x, != 0, strerror(errno)) +#define CHECKhn(x) _CHECK(x, != 0, hstrerror(h_errno)) + +#define SUCCEED exit(0) + +#define OK (0) +#define NOTOK (-1) + +#endif /* _h_test_ */ diff --git a/src/regress/lib/libpthread/malloc_duel/CVS/Entries b/src/regress/lib/libpthread/malloc_duel/CVS/Entries new file mode 100644 index 000000000..9efb8e798 --- /dev/null +++ b/src/regress/lib/libpthread/malloc_duel/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Nov 12 03:17:16 2002// +/malloc_duel.c/1.2/Thu Jul 31 21:48:04 2003// +D diff --git a/src/regress/lib/libpthread/malloc_duel/CVS/Repository b/src/regress/lib/libpthread/malloc_duel/CVS/Repository new file mode 100644 index 000000000..784c889e0 --- /dev/null +++ b/src/regress/lib/libpthread/malloc_duel/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/malloc_duel diff --git a/src/regress/lib/libpthread/malloc_duel/CVS/Root b/src/regress/lib/libpthread/malloc_duel/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/malloc_duel/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/malloc_duel/Makefile b/src/regress/lib/libpthread/malloc_duel/Makefile new file mode 100644 index 000000000..7626a3878 --- /dev/null +++ b/src/regress/lib/libpthread/malloc_duel/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/11/12 03:17:16 marc Exp $ + +PROG= malloc_duel + +.include diff --git a/src/regress/lib/libpthread/malloc_duel/malloc_duel.c b/src/regress/lib/libpthread/malloc_duel/malloc_duel.c new file mode 100644 index 000000000..e5573e7e5 --- /dev/null +++ b/src/regress/lib/libpthread/malloc_duel/malloc_duel.c @@ -0,0 +1,70 @@ +/* $OpenBSD: malloc_duel.c,v 1.2 2003/07/31 21:48:04 deraadt Exp $ */ +/* PUBLIC DOMAIN Nov 2002 */ + +/* + * Dueling malloc in different threads + */ + +#include +#include +#include + +#include "test.h" + +volatile sig_atomic_t done; + +#define MALLOC_COUNT 1024 + +/* + * sigalrm handler. Initiate end-of-test + */ +static void +alarm_handler(int sig) +{ + done = 1; +} + +/* + * A function that does lots of mallocs, called by all threads. + */ +static void +malloc_loop(void) +{ + int i; + int **a; + + a = calloc(MALLOC_COUNT, sizeof(int*)); + ASSERT(a != NULL); + while (!done) { + for (i = 0; i < MALLOC_COUNT; i++) { + a[i] = malloc(sizeof(int)); + ASSERT(a[i] != NULL); + } + for (i = 0; i < MALLOC_COUNT; i++) { + free(a[i]); + } + } +} + +/* + * A thread that does a lot of mallocs + */ +static void * +thread(void *arg) +{ + malloc_loop(); + return NULL; +} + +int +main(int argc, char **argv) +{ + pthread_t child; + + CHECKr(pthread_create(&child, NULL, thread, NULL)); + ASSERT(signal(SIGALRM, alarm_handler) != SIG_ERR); + CHECKe(alarm(20)); + malloc_loop(); + CHECKr(pthread_join(child, NULL)); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/malloc_duel/obj b/src/regress/lib/libpthread/malloc_duel/obj new file mode 120000 index 000000000..de264e135 --- /dev/null +++ b/src/regress/lib/libpthread/malloc_duel/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/malloc_duel \ No newline at end of file diff --git a/src/regress/lib/libpthread/netdb/CVS/Entries b/src/regress/lib/libpthread/netdb/CVS/Entries new file mode 100644 index 000000000..857e61427 --- /dev/null +++ b/src/regress/lib/libpthread/netdb/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/netdb.c/1.3/Thu Jul 31 21:48:05 2003// +D diff --git a/src/regress/lib/libpthread/netdb/CVS/Repository b/src/regress/lib/libpthread/netdb/CVS/Repository new file mode 100644 index 000000000..494ebab8a --- /dev/null +++ b/src/regress/lib/libpthread/netdb/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/netdb diff --git a/src/regress/lib/libpthread/netdb/CVS/Root b/src/regress/lib/libpthread/netdb/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/netdb/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/netdb/Makefile b/src/regress/lib/libpthread/netdb/Makefile new file mode 100644 index 000000000..70b963db0 --- /dev/null +++ b/src/regress/lib/libpthread/netdb/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= netdb + +.include diff --git a/src/regress/lib/libpthread/netdb/netdb.c b/src/regress/lib/libpthread/netdb/netdb.c new file mode 100644 index 000000000..80cb5d204 --- /dev/null +++ b/src/regress/lib/libpthread/netdb/netdb.c @@ -0,0 +1,88 @@ +/* $OpenBSD: netdb.c,v 1.3 2003/07/31 21:48:05 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright (c) 1995 by Greg Hudson, ghudson@.mit.edu + * + * Test netdb calls. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +static void +test_serv(void) +{ + struct servent *serv; + + CHECKhn(serv = getservbyname("telnet", "tcp")); + printf("getservbyname -> port %d\n", ntohs(serv->s_port)); +} + +static void +test_host(void) +{ + struct hostent *host; + struct in_addr addr; + + CHECKhn(host = gethostbyname("localhost")); + memcpy(&addr, host->h_addr, sizeof(addr)); + printf("gethostbyname -> %s\n", inet_ntoa(addr)); +} + +static void +test_localhost(void) +{ + struct hostent *host; + + CHECKhn(host = gethostbyname("127.0.0.1")); +} + +int +main(int argc, char **argv) +{ + test_serv(); + test_localhost(); + test_host(); + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/netdb/obj b/src/regress/lib/libpthread/netdb/obj new file mode 120000 index 000000000..f78a86a26 --- /dev/null +++ b/src/regress/lib/libpthread/netdb/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/netdb \ No newline at end of file diff --git a/src/regress/lib/libpthread/pause/CVS/Entries b/src/regress/lib/libpthread/pause/CVS/Entries new file mode 100644 index 000000000..8b6318841 --- /dev/null +++ b/src/regress/lib/libpthread/pause/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/pause.c/1.2/Sun Nov 11 23:26:35 2001// +D diff --git a/src/regress/lib/libpthread/pause/CVS/Repository b/src/regress/lib/libpthread/pause/CVS/Repository new file mode 100644 index 000000000..43cd9361e --- /dev/null +++ b/src/regress/lib/libpthread/pause/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/pause diff --git a/src/regress/lib/libpthread/pause/CVS/Root b/src/regress/lib/libpthread/pause/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/pause/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/pause/Makefile b/src/regress/lib/libpthread/pause/Makefile new file mode 100644 index 000000000..97f13c0d2 --- /dev/null +++ b/src/regress/lib/libpthread/pause/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= pause + +.include diff --git a/src/regress/lib/libpthread/pause/pause.c b/src/regress/lib/libpthread/pause/pause.c new file mode 100644 index 000000000..20a49f061 --- /dev/null +++ b/src/regress/lib/libpthread/pause/pause.c @@ -0,0 +1,73 @@ +/* $OpenBSD: pause.c,v 1.2 2001/11/11 23:26:35 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Test pause() + */ + +#include +#include +#include +#include +#include "test.h" + +int gotsig = 0; + +void +handler(sig) + int sig; +{ + int save_errno = errno; + char buf[8192]; + + snprintf(buf, sizeof buf, "%s\n", strsignal(sig)); + write(STDOUT_FILENO, buf, strlen(buf)); + errno = save_errno; +} + +int +main() +{ + sigset_t all; + pid_t self; + + ASSERT(signal(SIGHUP, handler) != SIG_ERR); + CHECKe(self = getpid()); + CHECKe(sigemptyset(&all)); + CHECKe(sigaddset(&all, SIGHUP)); + CHECKe(sigprocmask(SIG_BLOCK, &all, NULL)); + CHECKe(kill(self, SIGHUP)); + CHECKe(pause()); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/pcap/CVS/Entries b/src/regress/lib/libpthread/pcap/CVS/Entries new file mode 100644 index 000000000..c0399a6da --- /dev/null +++ b/src/regress/lib/libpthread/pcap/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.9/Wed Dec 29 05:09:02 2004// +/pcap.c/1.5/Thu Jul 31 21:48:05 2003// +D diff --git a/src/regress/lib/libpthread/pcap/CVS/Repository b/src/regress/lib/libpthread/pcap/CVS/Repository new file mode 100644 index 000000000..5b74db4db --- /dev/null +++ b/src/regress/lib/libpthread/pcap/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/pcap diff --git a/src/regress/lib/libpthread/pcap/CVS/Root b/src/regress/lib/libpthread/pcap/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/pcap/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/pcap/Makefile b/src/regress/lib/libpthread/pcap/Makefile new file mode 100644 index 000000000..676d68ded --- /dev/null +++ b/src/regress/lib/libpthread/pcap/Makefile @@ -0,0 +1,13 @@ +# $OpenBSD: Makefile,v 1.9 2004/12/29 05:09:02 david Exp $ + +PROG= pcap + +DPADD+= ${LIBPCAP} +LDADD+= -lpcap + +REGRESS_ROOT_TARGETS= run-regress-${PROG} + +run-regress-${PROG}: ${PROG} + ${SUDO} ./${PROG} + +.include diff --git a/src/regress/lib/libpthread/pcap/obj b/src/regress/lib/libpthread/pcap/obj new file mode 120000 index 000000000..fddfd2f89 --- /dev/null +++ b/src/regress/lib/libpthread/pcap/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/pcap \ No newline at end of file diff --git a/src/regress/lib/libpthread/pcap/pcap.c b/src/regress/lib/libpthread/pcap/pcap.c new file mode 100644 index 000000000..faa8d3838 --- /dev/null +++ b/src/regress/lib/libpthread/pcap/pcap.c @@ -0,0 +1,72 @@ +/* $OpenBSD: pcap.c,v 1.5 2003/07/31 21:48:05 deraadt Exp $ */ +/* + * Placed in the PUBLIC DOMAIN + */ + +#include +#include +#include +#include + +#include "test.h" + +#define LOOPBACK_IF "lo0" +#define SNAPLEN 96 +#define NO_PROMISC 0 +#define PKTCNT 3 + +volatile int packet_count = 0; +pthread_mutex_t dummy; +pthread_cond_t syncer; + +static void +packet_ignore(u_char *tag, const struct pcap_pkthdr *hdr, const u_char *data) +{ + packet_count += 1; +} + +static void * +pcap_thread(void *arg) +{ + char errbuf[PCAP_ERRBUF_SIZE]; + pcap_t *handle; + + SET_NAME("pcap_thread"); + CHECKr(pthread_mutex_lock(&dummy)); + handle = pcap_open_live(LOOPBACK_IF, SNAPLEN, NO_PROMISC, 0, errbuf); + if (!handle) + PANIC("You may need to run this test as UID 0 (root)"); + CHECKr(pthread_mutex_unlock(&dummy)); + CHECKr(pthread_cond_signal(&syncer)); + ASSERT(pcap_loop(handle, PKTCNT, packet_ignore, 0) != -1); + return 0; +} + +static void * +ping_thread(void *arg) +{ + SET_NAME("ping_thread"); + CHECKr(pthread_mutex_lock(&dummy)); + ASSERT(system("ping -c 3 127.0.0.1") == 0); + CHECKr(pthread_mutex_unlock(&dummy)); + CHECKr(pthread_cond_signal(&syncer)); + return 0; +} + +int +main(int argc, char **argv) +{ + pthread_t pcap; + pthread_t ping; + + CHECKr(pthread_mutex_init(&dummy, NULL)); + CHECKr(pthread_cond_init(&syncer, NULL)); + CHECKr(pthread_mutex_lock(&dummy)); + CHECKr(pthread_create(&pcap, NULL, pcap_thread, NULL)); + CHECKr(pthread_cond_wait(&syncer, &dummy)); + CHECKr(pthread_create(&ping, NULL, ping_thread, NULL)); + CHECKr(pthread_cond_wait(&syncer, &dummy)); + CHECKr(pthread_mutex_unlock(&dummy)); + ASSERT(packet_count == 3); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/poll/CVS/Entries b/src/regress/lib/libpthread/poll/CVS/Entries new file mode 100644 index 000000000..2f3e8462e --- /dev/null +++ b/src/regress/lib/libpthread/poll/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/poll.c/1.4/Thu Jul 31 21:48:05 2003// +D diff --git a/src/regress/lib/libpthread/poll/CVS/Repository b/src/regress/lib/libpthread/poll/CVS/Repository new file mode 100644 index 000000000..6394b8cfd --- /dev/null +++ b/src/regress/lib/libpthread/poll/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/poll diff --git a/src/regress/lib/libpthread/poll/CVS/Root b/src/regress/lib/libpthread/poll/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/poll/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/poll/Makefile b/src/regress/lib/libpthread/poll/Makefile new file mode 100644 index 000000000..6a0229ac6 --- /dev/null +++ b/src/regress/lib/libpthread/poll/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= poll + +.include diff --git a/src/regress/lib/libpthread/poll/obj b/src/regress/lib/libpthread/poll/obj new file mode 120000 index 000000000..4ca758259 --- /dev/null +++ b/src/regress/lib/libpthread/poll/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/poll \ No newline at end of file diff --git a/src/regress/lib/libpthread/poll/poll.c b/src/regress/lib/libpthread/poll/poll.c new file mode 100644 index 000000000..4b76bd7d8 --- /dev/null +++ b/src/regress/lib/libpthread/poll/poll.c @@ -0,0 +1,132 @@ +/* $OpenBSD: poll.c,v 1.4 2003/07/31 21:48:05 deraadt Exp $ */ +/* David Leonard , 2001. Public Domain. */ + +#include +#include +#include +#include +#include +#include +#include "test.h" + + +#define POLLALL (POLLIN|POLLOUT|POLLERR|POLLNVAL) + +static void +print_pollfd(struct pollfd *p) +{ + + printf("{fd=%d, events=< %s%s%s> revents=< %s%s%s%s%s>}", + p->fd, + p->events & POLLIN ? "in " : "", + p->events & POLLOUT ? "out " : "", + p->events & ~(POLLIN|POLLOUT) ? "XXX " : "", + p->revents & POLLIN ? "in " : "", + p->revents & POLLOUT ? "out " : "", + p->revents & POLLERR ? "err " : "", + p->revents & POLLHUP ? "hup " : "", + p->revents & POLLNVAL ? "nval " : "" + ); +} + +static void * +writer(void *arg) +{ + int fd = *(int *)arg; + const char msg[1] = { '!' }; + + ASSERTe(write(fd, &msg, sizeof msg), == sizeof msg); + return NULL; +} + +static void * +reader(void *arg) +{ + int fd = *(int *)arg; + char buf[1]; + + ASSERTe(read(fd, &buf, sizeof buf), == sizeof buf); + return NULL; +} + +int +main(int argc, char *argv[]) +{ + pthread_t t; + void *result; + int null, zero, tty; + int tube[2]; + struct pollfd p[3]; + + /* Try an empty poll set */ + ASSERTe(poll(NULL, 0, 0), == 0); + + CHECKe(zero = open(_PATH_DEV "zero", O_RDONLY)); + CHECKe(null = open(_PATH_DEV "null", O_WRONLY)); + CHECKe(tty = open(_PATH_DEV "tty", O_WRONLY)); + + /* Try both descriptors being ready */ + p[0].fd = zero; + p[0].events = POLLIN|POLLOUT; + p[0].revents = 0; + p[1].fd = null; + p[1].events = POLLIN|POLLOUT; + p[1].revents = 0; + + ASSERTe(poll(p, 2, 0), == 2); /* if 4 then bug in kernel not fixed */ + printf("zero p[0]="); print_pollfd(&p[0]); putchar('\n'); + printf("null p[1]="); print_pollfd(&p[1]); putchar('\n'); + ASSERT((p[0].revents & POLLIN) == POLLIN); + ASSERT((p[1].revents & POLLOUT) == POLLOUT); + + /* + * Try one of the descriptors being invalid + * and the other ready + */ + printf("closing zero\n"); + close(zero); + + p[0].fd = zero; + p[0].events = POLLIN|POLLOUT; + p[1].fd = null; + p[1].events = POLLIN|POLLOUT; + ASSERTe(poll(p, 2, 0), == 2); /* again, old kernels had this bug */ + printf("zero p[0]="); print_pollfd(&p[0]); putchar('\n'); + printf("null p[1]="); print_pollfd(&p[1]); putchar('\n'); + ASSERT((p[0].revents & POLLNVAL) == POLLNVAL); + ASSERT((p[1].revents & POLLOUT) == POLLOUT); + + printf("closing null\n"); + close(null); + + /* + * New pipes. the write end should be writable (buffered) + */ + CHECKe(pipe(tube)); + CHECKe(fcntl(tube[0], F_SETFL, O_NONBLOCK)); + CHECKe(fcntl(tube[1], F_SETFL, O_NONBLOCK)); + + p[0].fd = tube[0]; + p[0].events = POLLIN; + p[1].fd = tube[1]; + p[1].events = POLLOUT; + ASSERTe(poll(p, 2, 0), == 1); + printf("rpipe p[0]="); print_pollfd(&p[0]); putchar('\n'); + printf("wpipe p[1]="); print_pollfd(&p[1]); putchar('\n'); + ASSERT(p[0].revents == 0); + ASSERT(p[1].revents == POLLOUT); + + /* Start a writing thread to the write end [1] */ + printf("bg writing to wpipe\n"); + CHECKr(pthread_create(&t, NULL, writer, (void *)&tube[1])); + /* The read end [0] should soon be ready for read (POLLIN) */ + p[0].fd = tube[0]; + p[0].events = POLLIN; + ASSERTe(poll(p, 1, INFTIM), == 1); + printf("rpipe p[0]="); print_pollfd(&p[0]); putchar('\n'); + ASSERT(p[0].revents == POLLIN); + reader((void *)&tube[0]); /* consume */ + CHECKr(pthread_join(t, &result)); + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/preemption/CVS/Entries b/src/regress/lib/libpthread/preemption/CVS/Entries new file mode 100644 index 000000000..51f1ad491 --- /dev/null +++ b/src/regress/lib/libpthread/preemption/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/preemption.c/1.4/Thu Jul 31 21:48:05 2003// +D diff --git a/src/regress/lib/libpthread/preemption/CVS/Repository b/src/regress/lib/libpthread/preemption/CVS/Repository new file mode 100644 index 000000000..813678506 --- /dev/null +++ b/src/regress/lib/libpthread/preemption/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/preemption diff --git a/src/regress/lib/libpthread/preemption/CVS/Root b/src/regress/lib/libpthread/preemption/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/preemption/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/preemption/Makefile b/src/regress/lib/libpthread/preemption/Makefile new file mode 100644 index 000000000..167f62115 --- /dev/null +++ b/src/regress/lib/libpthread/preemption/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= preemption + +.include diff --git a/src/regress/lib/libpthread/preemption/obj b/src/regress/lib/libpthread/preemption/obj new file mode 120000 index 000000000..3083eaef3 --- /dev/null +++ b/src/regress/lib/libpthread/preemption/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/preemption \ No newline at end of file diff --git a/src/regress/lib/libpthread/preemption/preemption.c b/src/regress/lib/libpthread/preemption/preemption.c new file mode 100644 index 000000000..8f4e9a617 --- /dev/null +++ b/src/regress/lib/libpthread/preemption/preemption.c @@ -0,0 +1,65 @@ +/* $OpenBSD: preemption.c,v 1.4 2003/07/31 21:48:05 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include "test.h" + +static void * +new_thread(void *new_buf) +{ + int i; + + printf("yielding:"); + for (i = 0; i < 10; i++) { + printf(" %d", i); + fflush(stdout); + pthread_yield(); + } + printf("\n"); + SUCCEED; +} + +int +main(int argc, char *argv[]) +{ + pthread_t thread; + + CHECKr(pthread_create(&thread, NULL, new_thread, NULL)); + + while(1) + ; + PANIC("while"); +} diff --git a/src/regress/lib/libpthread/preemption_float/CVS/Entries b/src/regress/lib/libpthread/preemption_float/CVS/Entries new file mode 100644 index 000000000..ed034b4c6 --- /dev/null +++ b/src/regress/lib/libpthread/preemption_float/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Thu Jan 3 00:43:47 2002// +/preemption_float.c/1.4/Thu Jul 31 21:48:05 2003// +D diff --git a/src/regress/lib/libpthread/preemption_float/CVS/Repository b/src/regress/lib/libpthread/preemption_float/CVS/Repository new file mode 100644 index 000000000..341ba7c77 --- /dev/null +++ b/src/regress/lib/libpthread/preemption_float/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/preemption_float diff --git a/src/regress/lib/libpthread/preemption_float/CVS/Root b/src/regress/lib/libpthread/preemption_float/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/preemption_float/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/preemption_float/Makefile b/src/regress/lib/libpthread/preemption_float/Makefile new file mode 100644 index 000000000..18cead3fb --- /dev/null +++ b/src/regress/lib/libpthread/preemption_float/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.3 2002/01/03 00:43:47 art Exp $ + +PROG= preemption_float +DPADD= ${LIBM} +LDADD= -lm + +.include diff --git a/src/regress/lib/libpthread/preemption_float/obj b/src/regress/lib/libpthread/preemption_float/obj new file mode 120000 index 000000000..2fa6d05d1 --- /dev/null +++ b/src/regress/lib/libpthread/preemption_float/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/preemption_float \ No newline at end of file diff --git a/src/regress/lib/libpthread/preemption_float/preemption_float.c b/src/regress/lib/libpthread/preemption_float/preemption_float.c new file mode 100644 index 000000000..1f0b571d4 --- /dev/null +++ b/src/regress/lib/libpthread/preemption_float/preemption_float.c @@ -0,0 +1,140 @@ +/* $OpenBSD: preemption_float.c,v 1.4 2003/07/31 21:48:05 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* Test to see if floating point state is being properly maintained + for each thread. Different threads doing floating point operations + simultaneously should not interfere with one another. This + includes operations that might change some FPU flags, such as + rounding modes, at least implicitly. */ + +#include +#include +#include +#include "test.h" + +int limit = 2; +int float_passed = 0; +int float_failed = 1; + +static void * +log_loop (void *x) { + int i; + double d, d1, d2; + /* sleep (1); */ + for (i = 0; i < limit; i++) { + d = 42.0; + d = log (exp (d)); + d = (d + 39.0) / d; + if (i == 0) + d1 = d; + else { + d2 = d; + d = sin(d); + /* if (d2 != d1) { */ + if (memcmp (&d2, &d1, 8)) { + printf("log loop: %f != %f\n", d1, d2); + pthread_exit(&float_failed); + } + } + } + pthread_exit(&float_passed); +} + +static void * +trig_loop (void *x) { + int i; + double d, d1, d2; + /* sleep (1); */ + for (i = 0; i < limit; i++) { + d = 35.0; + d *= M_PI; + d /= M_LN2; + d = sin (d); + d = cos (1 / d); + if (i == 0) + d1 = d; + else { + d2 = d; + d = sin(d); + /* if (d2 != d1) { */ + if (memcmp (&d2, &d1, 8)) { + printf("trig loop: %f != %f\n", d1, d2); + pthread_exit(&float_failed); + } + } + } + pthread_exit(&float_passed); +} + +static int +floatloop(void) +{ + pthread_t thread[2]; + int *x, *y; + + CHECKr(pthread_create (&thread[0], NULL, trig_loop, NULL)); + CHECKr(pthread_create (&thread[1], NULL, log_loop, NULL)); + CHECKr(pthread_join(thread[0], (void **) &x)); + CHECKr(pthread_join(thread[1], (void **) &y)); + + /* Return 0 for success */ + return ((*y == float_failed)?2:0) | + ((*x == float_failed)?1:0); +} + +int +main(int argc, char *argv[]) +{ + pthread_t thread; + int *result; + + /* single active thread, trig test */ + for(limit = 2; limit < 100000; limit *=4) { + CHECKr(pthread_create (&thread, NULL, trig_loop, NULL)); + CHECKr(pthread_join(thread, (void **) &result)); + ASSERT(*result == 0); + } + + /* single active thread, log test */ + for(limit = 2; limit < 100000; limit *=4) { + CHECKr(pthread_create (&thread, NULL, log_loop, NULL)); + CHECKr(pthread_join(thread, (void **) &result)); + ASSERT(*result == 0); + } + + /* run both threads concurrently using a higher limit */ + limit *= 4; + ASSERT(floatloop() == 0); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/pthread_atfork/CVS/Entries b/src/regress/lib/libpthread/pthread_atfork/CVS/Entries new file mode 100644 index 000000000..11462ca7b --- /dev/null +++ b/src/regress/lib/libpthread/pthread_atfork/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Oct 31 01:01:29 2005// +/pthread_atfork.c/1.3/Sat Nov 5 04:28:46 2005// +D diff --git a/src/regress/lib/libpthread/pthread_atfork/CVS/Repository b/src/regress/lib/libpthread/pthread_atfork/CVS/Repository new file mode 100644 index 000000000..acd150a54 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_atfork/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/pthread_atfork diff --git a/src/regress/lib/libpthread/pthread_atfork/CVS/Root b/src/regress/lib/libpthread/pthread_atfork/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/pthread_atfork/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/pthread_atfork/Makefile b/src/regress/lib/libpthread/pthread_atfork/Makefile new file mode 100644 index 000000000..2bc578924 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_atfork/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2005/10/31 01:01:29 fgsch Exp $ + +PROG= pthread_atfork + +.include diff --git a/src/regress/lib/libpthread/pthread_atfork/obj b/src/regress/lib/libpthread/pthread_atfork/obj new file mode 120000 index 000000000..a0cdb1318 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_atfork/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/pthread_atfork \ No newline at end of file diff --git a/src/regress/lib/libpthread/pthread_atfork/pthread_atfork.c b/src/regress/lib/libpthread/pthread_atfork/pthread_atfork.c new file mode 100644 index 000000000..dfc416e82 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_atfork/pthread_atfork.c @@ -0,0 +1,119 @@ +/* $OpenBSD: pthread_atfork.c,v 1.3 2005/11/05 04:28:46 fgsch Exp $ */ + +/* + * Federico Schwindt , 2005. Public Domain. + */ + +#include +#include +#include + +#include "test.h" + +int cnt; + +void +prepare1(void) +{ + ASSERT(cnt == 1); + cnt--; +} + +void +prepare2(void) +{ + ASSERT(cnt == 2); + cnt--; +} + +void +parent1(void) +{ + ASSERT(cnt == 0); + cnt += 2; +} + +void +parent2(void) +{ + ASSERT(cnt == 2); + cnt -= 2; +} + +void +child1(void) +{ + ASSERT(cnt == 0); + cnt += 3; +} + +void +child2(void) +{ + ASSERT(cnt == 3); + cnt++; +} + +void * +forker1(void *arg) +{ + CHECKr(pthread_atfork(prepare1, parent1, child1)); + + cnt = 1; + switch (fork()) { + case -1: + PANIC("fork"); + break; + + case 0: + ASSERT(cnt == 3); + _exit(0); + + default: + ASSERT(cnt == 2); + break; + } + + cnt = 1; + + return (NULL); +} + +void * +forker2(void *arg) +{ + CHECKr(pthread_atfork(prepare2, parent2, child2)); + + cnt = 2; + switch (fork()) { + case -1: + PANIC("fork"); + break; + + case 0: + ASSERT(cnt == 4); + _exit(0); + + default: + ASSERT(cnt == 0); + break; + } + + cnt = 0; + + return (NULL); +} + +int +main(int argc, char **argv) +{ + pthread_t tid; + + CHECKr(pthread_create(&tid, NULL, forker1, NULL)); + CHECKr(pthread_join(tid, NULL)); + ASSERT(cnt == 1); + CHECKr(pthread_create(&tid, NULL, forker2, NULL)); + CHECKr(pthread_join(tid, NULL)); + ASSERT(cnt == 0); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/pthread_cond_timedwait/CVS/Entries b/src/regress/lib/libpthread/pthread_cond_timedwait/CVS/Entries new file mode 100644 index 000000000..0233a4745 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_cond_timedwait/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/pthread_cond_timedwait.c/1.5/Thu Nov 27 19:38:19 2003// +D diff --git a/src/regress/lib/libpthread/pthread_cond_timedwait/CVS/Repository b/src/regress/lib/libpthread/pthread_cond_timedwait/CVS/Repository new file mode 100644 index 000000000..82055c900 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_cond_timedwait/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/pthread_cond_timedwait diff --git a/src/regress/lib/libpthread/pthread_cond_timedwait/CVS/Root b/src/regress/lib/libpthread/pthread_cond_timedwait/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/pthread_cond_timedwait/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/pthread_cond_timedwait/Makefile b/src/regress/lib/libpthread/pthread_cond_timedwait/Makefile new file mode 100644 index 000000000..ec62fc93b --- /dev/null +++ b/src/regress/lib/libpthread/pthread_cond_timedwait/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= pthread_cond_timedwait + +.include diff --git a/src/regress/lib/libpthread/pthread_cond_timedwait/obj b/src/regress/lib/libpthread/pthread_cond_timedwait/obj new file mode 120000 index 000000000..d7956a273 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_cond_timedwait/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/pthread_cond_timedwait \ No newline at end of file diff --git a/src/regress/lib/libpthread/pthread_cond_timedwait/pthread_cond_timedwait.c b/src/regress/lib/libpthread/pthread_cond_timedwait/pthread_cond_timedwait.c new file mode 100644 index 000000000..f890816e6 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_cond_timedwait/pthread_cond_timedwait.c @@ -0,0 +1,124 @@ +/* $OpenBSD: pthread_cond_timedwait.c,v 1.5 2003/11/27 19:38:19 marc Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* ==== test_pthread_cond.c ========================================= + * Copyright (c) 1993 by Chris Provenzano, proven@athena.mit.edu + * + * Description : Test pthread_cond(). Run this after test_create() + * + * 1.23 94/05/04 proven + * -Started coding this file. + */ + +#include +#include +#include +#include +#include +#include "test.h" + +pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; +pthread_cond_t cond = PTHREAD_COND_INITIALIZER; + +static void * +thread_1(void * new_buf) +{ + CHECKr(pthread_mutex_lock(&mutex)); + CHECKr(pthread_cond_signal(&cond)); + CHECKr(pthread_mutex_unlock(&mutex)); + pthread_exit(NULL); +} + +static void * +thread_2(void * new_buf) +{ + sleep(1); + CHECKr(pthread_mutex_lock(&mutex)); + CHECKr(pthread_cond_signal(&cond)); + CHECKr(pthread_mutex_unlock(&mutex)); + pthread_exit(NULL); +} + +int +main(int argc, char *argv[]) +{ + struct timespec abstime; + struct timeval begtime; + struct timeval endtime; + pthread_t thread; + int ret; + int ix; + + printf("pthread_cond_timedwait START\n"); + + CHECKr(pthread_mutex_lock(&mutex)); + CHECKe(gettimeofday(&begtime, NULL)); + TIMEVAL_TO_TIMESPEC(&begtime, &abstime); + + for (ix = 0; ix < 2; ix++) { + abstime.tv_sec += 5; + + /* Test a condition timeout */ + switch((ret = pthread_cond_timedwait(&cond, &mutex, &abstime))) { + case 0: + PANIC("pthread_cond_timedwait #0 failed to timeout"); + /* NOTREACHED */ + case ETIMEDOUT: + /* expected behaviour */ + CHECKe(gettimeofday(&endtime, NULL)); + timersub(&endtime, &begtime, &endtime); + printf("Got timeout %d in %ld.%06ld seconds\n", ix, + endtime.tv_sec, endtime.tv_usec); + break; + default: + DIE(ret, "pthread_cond_timedwait"); + /* NOTREACHED */ + } + } + + /* Test a normal condition signal */ + CHECKr(pthread_create(&thread, NULL, thread_1, NULL)); + + abstime.tv_sec += 5; + CHECKr(pthread_cond_timedwait(&cond, &mutex, &abstime)); + + /* Test a normal condition signal after a sleep */ + CHECKr(pthread_create(&thread, NULL, thread_2, NULL)); + + pthread_yield(); + + CHECKr(pthread_cond_timedwait(&cond, &mutex, &abstime)); + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/pthread_create/CVS/Entries b/src/regress/lib/libpthread/pthread_create/CVS/Entries new file mode 100644 index 000000000..7049d1f0c --- /dev/null +++ b/src/regress/lib/libpthread/pthread_create/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/pthread_create.c/1.3/Thu Jul 31 21:48:05 2003// +D diff --git a/src/regress/lib/libpthread/pthread_create/CVS/Repository b/src/regress/lib/libpthread/pthread_create/CVS/Repository new file mode 100644 index 000000000..7a39d2514 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_create/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/pthread_create diff --git a/src/regress/lib/libpthread/pthread_create/CVS/Root b/src/regress/lib/libpthread/pthread_create/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/pthread_create/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/pthread_create/Makefile b/src/regress/lib/libpthread/pthread_create/Makefile new file mode 100644 index 000000000..ac499b061 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_create/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= pthread_create + +.include diff --git a/src/regress/lib/libpthread/pthread_create/obj b/src/regress/lib/libpthread/pthread_create/obj new file mode 120000 index 000000000..01e787cc4 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_create/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/pthread_create \ No newline at end of file diff --git a/src/regress/lib/libpthread/pthread_create/pthread_create.c b/src/regress/lib/libpthread/pthread_create/pthread_create.c new file mode 100644 index 000000000..6ee1e58bd --- /dev/null +++ b/src/regress/lib/libpthread/pthread_create/pthread_create.c @@ -0,0 +1,68 @@ +/* $OpenBSD: pthread_create.c,v 1.3 2003/07/31 21:48:05 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright (c) 1993 by Chris Provenzano, proven@athena.mit.edu + * + * Test pthread_create() and pthread_exit() calls. + */ + +#include +#include +#include +#include "test.h" + +static void * +new_thread(void* arg) +{ + int i; + + printf("New thread was passed arg address %p\n", arg); + printf("New thread stack at %p\n", &i); + return(NULL); + PANIC("return"); +} + +int +main(int argc, char *argv[]) +{ + pthread_t thread; + int i; + + printf("Original thread stack at %p\n", &i); + CHECKr(pthread_create(&thread, NULL, new_thread, + (void *)0xdeadbeef)); + CHECKr(pthread_join(thread, NULL)); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/pthread_join/CVS/Entries b/src/regress/lib/libpthread/pthread_join/CVS/Entries new file mode 100644 index 000000000..22d5bf393 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_join/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/pthread_join.c/1.4/Sat Feb 28 08:06:47 2004// +D diff --git a/src/regress/lib/libpthread/pthread_join/CVS/Repository b/src/regress/lib/libpthread/pthread_join/CVS/Repository new file mode 100644 index 000000000..9480105b3 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_join/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/pthread_join diff --git a/src/regress/lib/libpthread/pthread_join/CVS/Root b/src/regress/lib/libpthread/pthread_join/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/pthread_join/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/pthread_join/Makefile b/src/regress/lib/libpthread/pthread_join/Makefile new file mode 100644 index 000000000..694f7d3ef --- /dev/null +++ b/src/regress/lib/libpthread/pthread_join/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= pthread_join + +.include diff --git a/src/regress/lib/libpthread/pthread_join/obj b/src/regress/lib/libpthread/pthread_join/obj new file mode 120000 index 000000000..25060565a --- /dev/null +++ b/src/regress/lib/libpthread/pthread_join/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/pthread_join \ No newline at end of file diff --git a/src/regress/lib/libpthread/pthread_join/pthread_join.c b/src/regress/lib/libpthread/pthread_join/pthread_join.c new file mode 100644 index 000000000..b0b60ad3e --- /dev/null +++ b/src/regress/lib/libpthread/pthread_join/pthread_join.c @@ -0,0 +1,101 @@ +/* $OpenBSD: pthread_join.c,v 1.4 2004/02/28 08:06:47 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* ==== test_pthread_join.c ================================================= + * Copyright (c) 1993 by Chris Provenzano, proven@athena.mit.edu + * + * Description : Test pthread_join(). Run this after test_create() + * + * 1.23 94/05/04 proven + * -Started coding this file. + */ + +#include +#include +#include +#include +#include "test.h" + +/* This thread yields so the creator has a live thread to wait on */ +static void * +new_thread_1(void * new_buf) +{ + int i; + + snprintf((char *)new_buf, 512, "New thread %%d stack at %p\n", &i); + pthread_yield(); /* (ensure parent can wait on live thread) */ + sleep(1); + return(new_buf); + PANIC("return"); +} + +/* This thread doesn't yield so the creator has a dead thread to wait on */ +static void * +new_thread_2(void * new_buf) +{ + int i; + + snprintf((char *)new_buf, 512, "New thread %%d stack at %p\n", &i); + return(new_buf); + PANIC("return"); +} + +int +main(int argc, char *argv[]) +{ + char buf[256], *status; + pthread_t thread; + int debug = 1; + int i = 0; + + if (debug) + printf("Original thread stack at %p\n", &i); + + CHECKr(pthread_create(&thread, NULL, new_thread_1, (void *)buf)); + CHECKr(pthread_join(thread, (void **)(&status))); + if (debug) + printf(status, ++i); + + /* Now have the created thread finishing before the join. */ + CHECKr(pthread_create(&thread, NULL, new_thread_2, (void *)buf)); + pthread_yield(); + sleep(1); /* (ensure thread is dead) */ + CHECKr(pthread_join(thread, (void **)(&status))); + + if (debug) + printf(status, ++i); + + SUCCEED; +} + diff --git a/src/regress/lib/libpthread/pthread_kill/CVS/Entries b/src/regress/lib/libpthread/pthread_kill/CVS/Entries new file mode 100644 index 000000000..c682c32b1 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_kill/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Oct 21 18:44:11 2002// +/pthread_kill.c/1.4/Thu Jul 31 21:48:05 2003// +D diff --git a/src/regress/lib/libpthread/pthread_kill/CVS/Repository b/src/regress/lib/libpthread/pthread_kill/CVS/Repository new file mode 100644 index 000000000..9450a61f1 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_kill/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/pthread_kill diff --git a/src/regress/lib/libpthread/pthread_kill/CVS/Root b/src/regress/lib/libpthread/pthread_kill/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/pthread_kill/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/pthread_kill/Makefile b/src/regress/lib/libpthread/pthread_kill/Makefile new file mode 100644 index 000000000..40a86c339 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_kill/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/10/21 18:44:11 marc Exp $ + +PROG= pthread_kill + +.include diff --git a/src/regress/lib/libpthread/pthread_kill/obj b/src/regress/lib/libpthread/pthread_kill/obj new file mode 120000 index 000000000..2c44a977b --- /dev/null +++ b/src/regress/lib/libpthread/pthread_kill/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/pthread_kill \ No newline at end of file diff --git a/src/regress/lib/libpthread/pthread_kill/pthread_kill.c b/src/regress/lib/libpthread/pthread_kill/pthread_kill.c new file mode 100644 index 000000000..a4a63d155 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_kill/pthread_kill.c @@ -0,0 +1,84 @@ +/* $OpenBSD: pthread_kill.c,v 1.4 2003/07/31 21:48:05 deraadt Exp $ */ +/* PUBLIC DOMAIN Oct 2002 */ + +/* + * Verify that pthread_kill does the right thing, i.e. the signal + * is delivered to the correct thread and proper signal processing + * is performed. + */ + +#include +#include +#include +#include + +#include "test.h" + +static void +act_handler(int signal, siginfo_t *siginfo, void *context) +{ + struct sigaction sa; + char *str; + + CHECKe(sigaction(SIGUSR1, NULL, &sa)); + ASSERT(sa.sa_handler == SIG_DFL); + ASSERT(siginfo != NULL); + asprintf(&str, "act_handler: signal %d, siginfo %p, context %p\n", + signal, siginfo, context); + write(STDOUT_FILENO, str, strlen(str)); + free(str); +} + +static void * +thread(void * arg) +{ + sigset_t run_mask; + sigset_t suspender_mask; + + /* wait for sigusr1 */ + SET_NAME(arg); + + /* Run with all signals blocked, then suspend for SIGUSR1 */ + sigfillset(&run_mask); + CHECKe(sigprocmask(SIG_SETMASK, &run_mask, NULL)); + sigfillset(&suspender_mask); + sigdelset(&suspender_mask, SIGUSR1); + for (;;) { + sigsuspend(&suspender_mask); + ASSERT(errno == EINTR); + printf("Thread %s woke up\n", (char*) arg); + } + +} + +int +main(int argc, char **argv) +{ + pthread_t thread1; + pthread_t thread2; + struct sigaction act; + + act.sa_sigaction = act_handler; + sigemptyset(&act.sa_mask); + act.sa_flags = SA_SIGINFO | SA_RESETHAND | SA_NODEFER; + CHECKe(sigaction(SIGUSR1, &act, NULL)); + CHECKr(pthread_create(&thread1, NULL, thread, "T1")); + CHECKr(pthread_create(&thread2, NULL, thread, "T2")); + sleep(1); + + /* Signal handler should run once, both threads should awaken */ + CHECKe(kill(getpid(), SIGUSR1)); + sleep(1); + + /* Signal handler run once, only T1 should awaken */ + CHECKe(sigaction(SIGUSR1, &act, NULL)); + CHECKr(pthread_kill(thread1, SIGUSR1)); + sleep(1); + + /* Signal handler run once, only T2 should awaken */ + CHECKe(sigaction(SIGUSR1, &act, NULL)); + CHECKr(pthread_kill(thread2, SIGUSR1)); + sleep(1); + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/pthread_mutex/CVS/Entries b/src/regress/lib/libpthread/pthread_mutex/CVS/Entries new file mode 100644 index 000000000..f18193731 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_mutex/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/pthread_mutex.c/1.6/Mon Dec 19 05:22:57 2005// +D diff --git a/src/regress/lib/libpthread/pthread_mutex/CVS/Repository b/src/regress/lib/libpthread/pthread_mutex/CVS/Repository new file mode 100644 index 000000000..6941dcc98 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_mutex/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/pthread_mutex diff --git a/src/regress/lib/libpthread/pthread_mutex/CVS/Root b/src/regress/lib/libpthread/pthread_mutex/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/pthread_mutex/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/pthread_mutex/Makefile b/src/regress/lib/libpthread/pthread_mutex/Makefile new file mode 100644 index 000000000..d2dc643d5 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_mutex/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= pthread_mutex + +.include diff --git a/src/regress/lib/libpthread/pthread_mutex/obj b/src/regress/lib/libpthread/pthread_mutex/obj new file mode 120000 index 000000000..7adfe06be --- /dev/null +++ b/src/regress/lib/libpthread/pthread_mutex/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/pthread_mutex \ No newline at end of file diff --git a/src/regress/lib/libpthread/pthread_mutex/pthread_mutex.c b/src/regress/lib/libpthread/pthread_mutex/pthread_mutex.c new file mode 100644 index 000000000..8804cba87 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_mutex/pthread_mutex.c @@ -0,0 +1,195 @@ +/* $OpenBSD: pthread_mutex.c,v 1.6 2005/12/19 05:22:57 tedu Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* ==== test_pthread_cond.c ========================================= + * Copyright (c) 1993 by Chris Provenzano, proven@athena.mit.edu + * + * Description : Test pthread_mutex(). Run this after test_create() + * + * 1.23 94/05/04 proven + * -Started coding this file. + */ + +#include +#include +#include +#include +#include "test.h" + +int contention_variable; + +static void * +thread_contention(void *arg) +{ + pthread_mutex_t *mutex = arg; + + SET_NAME("cntntn"); + + CHECKr(pthread_mutex_lock(mutex)); + ASSERT(contention_variable == 1); + contention_variable = 2; + CHECKr(pthread_mutex_unlock(mutex)); + pthread_exit(NULL); +} + +static void +test_contention_lock(pthread_mutex_t *mutex) +{ + pthread_t thread; + + printf(" test_contention_lock()\n"); + CHECKr(pthread_mutex_lock(mutex)); + contention_variable = 0; + CHECKr(pthread_create(&thread, NULL, thread_contention, mutex)); + pthread_yield(); + contention_variable = 1; + CHECKr(pthread_mutex_unlock(mutex)); + pthread_yield(); + CHECKr(pthread_mutex_lock(mutex)); + ASSERT(contention_variable == 2); + CHECKr(pthread_mutex_unlock(mutex)); +} + +static void +test_nocontention_lock(pthread_mutex_t *mutex) +{ + printf(" test_nocontention_lock()\n"); + CHECKr(pthread_mutex_lock(mutex)); + CHECKr(pthread_mutex_unlock(mutex)); +} + +static void +test_debug_double_lock(pthread_mutex_t *mutex) +{ + printf(" test_debug_double_lock()\n"); + CHECKr(pthread_mutex_lock(mutex)); + ASSERTe(pthread_mutex_lock(mutex), == EDEADLK); + CHECKr(pthread_mutex_unlock(mutex)); +} + +static void +test_debug_double_unlock(pthread_mutex_t *mutex) +{ + printf(" test_debug_double_unlock()\n"); + CHECKr(pthread_mutex_lock(mutex)); + CHECKr(pthread_mutex_unlock(mutex)); + /* Posix D10 says undefined behaviour? */ + ASSERTe(pthread_mutex_unlock(mutex), != 0); +} + +static void +test_nocontention_trylock(pthread_mutex_t *mutex) +{ + printf(" test_nocontention_trylock()\n"); + CHECKr(pthread_mutex_trylock(mutex)); + CHECKr(pthread_mutex_unlock(mutex)); +} + +static void +test_mutex_static(void) +{ + pthread_mutex_t mutex_static = PTHREAD_MUTEX_INITIALIZER; + + printf("test_mutex_static()\n"); + test_nocontention_lock(&mutex_static); + test_nocontention_trylock(&mutex_static); + test_contention_lock(&mutex_static); +} + +static void +test_mutex_fast(void) +{ + pthread_mutex_t mutex_fast; + + printf("test_mutex_fast()\n"); + CHECKr(pthread_mutex_init(&mutex_fast, NULL)); + test_nocontention_lock(&mutex_fast); + test_nocontention_trylock(&mutex_fast); + test_contention_lock(&mutex_fast); + CHECKr(pthread_mutex_destroy(&mutex_fast)); +} + +static void +test_mutex_debug(void) +{ + pthread_mutexattr_t mutex_debug_attr; + pthread_mutex_t mutex_debug; + + printf("test_mutex_debug()\n"); + CHECKr(pthread_mutexattr_init(&mutex_debug_attr)); + CHECKr(pthread_mutexattr_settype(&mutex_debug_attr, + PTHREAD_MUTEX_ERRORCHECK)); + CHECKr(pthread_mutex_init(&mutex_debug, &mutex_debug_attr)); + test_nocontention_lock(&mutex_debug); + test_nocontention_trylock(&mutex_debug); + test_contention_lock(&mutex_debug); + test_debug_double_lock(&mutex_debug); + test_debug_double_unlock(&mutex_debug); + CHECKr(pthread_mutex_destroy(&mutex_debug)); +} + +static void +test_mutex_recursive(void) +{ + pthread_mutexattr_t mutex_recursive_attr; + pthread_mutex_t mutex_recursive; + int i; + int j = 9; + + printf("test_mutex_recursive()\n"); + CHECKr(pthread_mutexattr_init(&mutex_recursive_attr)); + CHECKr(pthread_mutexattr_settype(&mutex_recursive_attr, + PTHREAD_MUTEX_RECURSIVE)); + CHECKr(pthread_mutex_init(&mutex_recursive, &mutex_recursive_attr)); + + CHECKr(pthread_mutex_lock(&mutex_recursive)); + for (i = 0; i < j; i++) + CHECKr(pthread_mutex_lock(&mutex_recursive)); + for (i = 0; i < j; i++) + CHECKr(pthread_mutex_unlock(&mutex_recursive)); + CHECKr(pthread_mutex_unlock(&mutex_recursive)); + /* Posix D10 says undefined behaviour? */ + ASSERTe(pthread_mutex_unlock(&mutex_recursive), != 0); + CHECKr(pthread_mutex_destroy(&mutex_recursive)); +} + +int +main(int argc, char *argv[]) +{ + test_mutex_static(); + test_mutex_fast(); + test_mutex_debug(); + test_mutex_recursive(); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/pthread_specific/CVS/Entries b/src/regress/lib/libpthread/pthread_specific/CVS/Entries new file mode 100644 index 000000000..c673c187f --- /dev/null +++ b/src/regress/lib/libpthread/pthread_specific/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri May 3 10:08:55 2002// +/pthread_specific.c/1.3/Thu Jul 31 21:48:05 2003// +D diff --git a/src/regress/lib/libpthread/pthread_specific/CVS/Repository b/src/regress/lib/libpthread/pthread_specific/CVS/Repository new file mode 100644 index 000000000..0f3341afe --- /dev/null +++ b/src/regress/lib/libpthread/pthread_specific/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/pthread_specific diff --git a/src/regress/lib/libpthread/pthread_specific/CVS/Root b/src/regress/lib/libpthread/pthread_specific/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/pthread_specific/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/pthread_specific/Makefile b/src/regress/lib/libpthread/pthread_specific/Makefile new file mode 100644 index 000000000..93bba05a4 --- /dev/null +++ b/src/regress/lib/libpthread/pthread_specific/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/05/03 10:08:55 wcobb Exp $ + +PROG= pthread_specific + +.include diff --git a/src/regress/lib/libpthread/pthread_specific/obj b/src/regress/lib/libpthread/pthread_specific/obj new file mode 120000 index 000000000..206f0592a --- /dev/null +++ b/src/regress/lib/libpthread/pthread_specific/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/pthread_specific \ No newline at end of file diff --git a/src/regress/lib/libpthread/pthread_specific/pthread_specific.c b/src/regress/lib/libpthread/pthread_specific/pthread_specific.c new file mode 100644 index 000000000..ec00ce6aa --- /dev/null +++ b/src/regress/lib/libpthread/pthread_specific/pthread_specific.c @@ -0,0 +1,87 @@ +/* $OpenBSD: pthread_specific.c,v 1.3 2003/07/31 21:48:05 deraadt Exp $ */ + +/* + * Copyright (c) 2002 CubeSoft Communications, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistribution of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Neither the name of CubeSoft Communications, nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include "test.h" + +#define NTHREADS 128 + +pthread_key_t key; +int destroy_run = 0; + +static void * +run_thread(void *arg) +{ + int i; + + CHECKe(write(STDOUT_FILENO, ".", 1)); + for (i = 0; i < 32767; i++) { + void *p; + + p = pthread_getspecific(key); + if (p == NULL) { + CHECKr(pthread_setspecific(key, pthread_self())); + } else { + ASSERT(p == pthread_self()); + } + fflush(stderr); + } + + return (NULL); +} + +static void +destroy_key(void *keyp) +{ + destroy_run++; +} + +int +main(int argc, char *argv[]) +{ + pthread_t threads[NTHREADS]; + int i; + + CHECKr(pthread_key_create(&key, destroy_key)); + for (i = 0; i < NTHREADS; i++) { + CHECKr(pthread_create(&threads[i], NULL, run_thread, NULL)); + } + for (i = 0; i < NTHREADS; i++) { + CHECKr(pthread_join(threads[i], NULL)); + } + CHECKe(write(STDOUT_FILENO, "\n", 1)); + + CHECKr(pthread_key_delete(key)); + + ASSERT(destroy_run > 0); + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/pw/CVS/Entries b/src/regress/lib/libpthread/pw/CVS/Entries new file mode 100644 index 000000000..a8cea4dc3 --- /dev/null +++ b/src/regress/lib/libpthread/pw/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/pw.c/1.2/Sun Jun 23 03:11:09 2002// +D diff --git a/src/regress/lib/libpthread/pw/CVS/Repository b/src/regress/lib/libpthread/pw/CVS/Repository new file mode 100644 index 000000000..957b31596 --- /dev/null +++ b/src/regress/lib/libpthread/pw/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/pw diff --git a/src/regress/lib/libpthread/pw/CVS/Root b/src/regress/lib/libpthread/pw/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/pw/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/pw/Makefile b/src/regress/lib/libpthread/pw/Makefile new file mode 100644 index 000000000..6cea3b688 --- /dev/null +++ b/src/regress/lib/libpthread/pw/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= pw + +.include diff --git a/src/regress/lib/libpthread/pw/pw.c b/src/regress/lib/libpthread/pw/pw.c new file mode 100644 index 000000000..bc9ced3b0 --- /dev/null +++ b/src/regress/lib/libpthread/pw/pw.c @@ -0,0 +1,61 @@ +/* $OpenBSD: pw.c,v 1.2 2002/06/23 03:11:09 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include "test.h" + +int +main() +{ + struct passwd *pw; + struct passwd pwbuf; + char buf[8192]; + char name[16]; + + CHECKn(pw = getpwuid(getuid())); + printf("getpwuid(%u) => %p\n", getuid(), pw); + printf(" name: %s\n uid: %u\n gid: %u\n" + "class: %s\ngecos: %s\n dir: %s\nshell: %s\n", + pw->pw_name, pw->pw_uid, pw->pw_gid, + pw->pw_class, pw->pw_gecos, pw->pw_dir, pw->pw_shell); + + strlcpy(name, pw->pw_name, sizeof name); + CHECKe(getpwnam_r(name, &pwbuf, buf, sizeof buf, &pw)); + ASSERT(pwbuf.pw_uid == getuid()); + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/readdir/CVS/Entries b/src/regress/lib/libpthread/readdir/CVS/Entries new file mode 100644 index 000000000..1b7f64150 --- /dev/null +++ b/src/regress/lib/libpthread/readdir/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/readdir.c/1.3/Thu Jul 31 21:48:05 2003// +D diff --git a/src/regress/lib/libpthread/readdir/CVS/Repository b/src/regress/lib/libpthread/readdir/CVS/Repository new file mode 100644 index 000000000..6336e1049 --- /dev/null +++ b/src/regress/lib/libpthread/readdir/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/readdir diff --git a/src/regress/lib/libpthread/readdir/CVS/Root b/src/regress/lib/libpthread/readdir/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/readdir/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/readdir/Makefile b/src/regress/lib/libpthread/readdir/Makefile new file mode 100644 index 000000000..6c4ea73bc --- /dev/null +++ b/src/regress/lib/libpthread/readdir/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= readdir + +.include diff --git a/src/regress/lib/libpthread/readdir/obj b/src/regress/lib/libpthread/readdir/obj new file mode 120000 index 000000000..9da67984c --- /dev/null +++ b/src/regress/lib/libpthread/readdir/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/readdir \ No newline at end of file diff --git a/src/regress/lib/libpthread/readdir/readdir.c b/src/regress/lib/libpthread/readdir/readdir.c new file mode 100644 index 000000000..7b5c8b741 --- /dev/null +++ b/src/regress/lib/libpthread/readdir/readdir.c @@ -0,0 +1,66 @@ +/* $OpenBSD: readdir.c,v 1.3 2003/07/31 21:48:05 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* ==== test_readdir.c ======================================================== + * Copyright (c) 1993, 1994 by Chris Provenzano, proven@athena.mit.edu + * + * Description : Test pthread_create() and pthread_exit() calls. + * + * 1.00 94/05/19 proven + * -Started coding this file. + */ + +#include +#include +#include +#include +#include +#include "test.h" + +int +main(int argc, char *argv[]) +{ + struct dirent * file; + DIR * dot_dir; + int found = 0; + + CHECKn(dot_dir = opendir(".")); + while ((file = readdir(dot_dir)) != NULL) + if (strcmp("readdir", file->d_name) == 0) + found = 1; + CHECKe(closedir(dot_dir)); + ASSERT(found); + SUCCEED; +} + diff --git a/src/regress/lib/libpthread/select/CVS/Entries b/src/regress/lib/libpthread/select/CVS/Entries new file mode 100644 index 000000000..812b4f4fb --- /dev/null +++ b/src/regress/lib/libpthread/select/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/select.c/1.3/Thu Jul 31 21:48:06 2003// +D diff --git a/src/regress/lib/libpthread/select/CVS/Repository b/src/regress/lib/libpthread/select/CVS/Repository new file mode 100644 index 000000000..b64304f5b --- /dev/null +++ b/src/regress/lib/libpthread/select/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/select diff --git a/src/regress/lib/libpthread/select/CVS/Root b/src/regress/lib/libpthread/select/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/select/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/select/Makefile b/src/regress/lib/libpthread/select/Makefile new file mode 100644 index 000000000..87a2da6e3 --- /dev/null +++ b/src/regress/lib/libpthread/select/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= select + +.include diff --git a/src/regress/lib/libpthread/select/obj b/src/regress/lib/libpthread/select/obj new file mode 120000 index 000000000..1890bc3a5 --- /dev/null +++ b/src/regress/lib/libpthread/select/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/select \ No newline at end of file diff --git a/src/regress/lib/libpthread/select/select.c b/src/regress/lib/libpthread/select/select.c new file mode 100644 index 000000000..5e3f4a61f --- /dev/null +++ b/src/regress/lib/libpthread/select/select.c @@ -0,0 +1,149 @@ +/* $OpenBSD: select.c,v 1.3 2003/07/31 21:48:06 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Rudimentary test of select(). + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +#define NLOOPS 10000 + +int ntouts = 0; + +static void * +bg_routine(void *arg) +{ + char dot = '.'; + int n; + + SET_NAME("bg"); + + /* Busy loop, printing dots */ + for (;;) { + pthread_yield(); + write(STDOUT_FILENO, &dot, sizeof dot); + pthread_yield(); + n = NLOOPS; + while (n-- > 0) + pthread_yield(); + } +} + +static void * +fg_routine(void *arg) +{ + int flags; + int n; + fd_set r; + int fd = fileno((FILE *) arg); + int tty = isatty(fd); + int maxfd; + int nb; + char buf[128]; + + SET_NAME("fg"); + + /* Set the file descriptor to non-blocking */ + flags = fcntl(fd, F_GETFL); + CHECKr(fcntl(fd, F_SETFL, flags | O_NONBLOCK)); + + for (;;) { + + /* Print a prompt if it's a tty: */ + if (tty) { + printf("type something> "); + fflush(stdout); + } + + /* Select on the fdesc: */ + FD_ZERO(&r); + FD_SET(fd, &r); + maxfd = fd; + errno = 0; + CHECKe(n = select(maxfd + 1, &r, (fd_set *) 0, (fd_set *) 0, + (struct timeval *) 0)); + + if (n > 0) { + /* Something was ready for read. */ + printf("select returned %d\n", n); + while ((nb = read(fd, buf, sizeof(buf) - 1)) > 0) { + printf("read %d: `%.*s'\n", nb, nb, buf); + } + printf("last read was %d, errno = %d %s\n", nb, errno, + errno == 0 ? "success" : strerror(errno)); + if (nb < 0) + ASSERTe(errno, == EWOULDBLOCK || + errno == EAGAIN); + if (nb == 0) + break; + } else + ntouts++; + } + printf("read finished\n"); + return (NULL); +} + +int +main(int argc, char *argv[]) +{ + pthread_t bg_thread, fg_thread; + FILE * slpr; + + /* Create a fdesc that will block for a while on read: */ + CHECKn(slpr = popen("sleep 2; echo foo", "r")); + + /* Create a busy loop thread that yields a lot: */ + CHECKr(pthread_create(&bg_thread, NULL, bg_routine, 0)); + + /* Create the thread that reads the fdesc: */ + CHECKr(pthread_create(&fg_thread, NULL, fg_routine, (void *) slpr)); + + /* Wait for the reader thread to finish */ + CHECKr(pthread_join(fg_thread, NULL)); + + /* Clean up*/ + CHECKe(pclose(slpr)); + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/setjmp/CVS/Entries b/src/regress/lib/libpthread/setjmp/CVS/Entries new file mode 100644 index 000000000..eda815a21 --- /dev/null +++ b/src/regress/lib/libpthread/setjmp/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:47 2002// +/setjmp.c/1.3/Thu Jul 31 21:48:06 2003// +D diff --git a/src/regress/lib/libpthread/setjmp/CVS/Repository b/src/regress/lib/libpthread/setjmp/CVS/Repository new file mode 100644 index 000000000..f878468f3 --- /dev/null +++ b/src/regress/lib/libpthread/setjmp/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/setjmp diff --git a/src/regress/lib/libpthread/setjmp/CVS/Root b/src/regress/lib/libpthread/setjmp/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/setjmp/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/setjmp/Makefile b/src/regress/lib/libpthread/setjmp/Makefile new file mode 100644 index 000000000..c3f0f635c --- /dev/null +++ b/src/regress/lib/libpthread/setjmp/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:47 art Exp $ + +PROG= setjmp + +.include diff --git a/src/regress/lib/libpthread/setjmp/obj b/src/regress/lib/libpthread/setjmp/obj new file mode 120000 index 000000000..d5f5e1b7d --- /dev/null +++ b/src/regress/lib/libpthread/setjmp/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/setjmp \ No newline at end of file diff --git a/src/regress/lib/libpthread/setjmp/setjmp.c b/src/regress/lib/libpthread/setjmp/setjmp.c new file mode 100644 index 000000000..5fa9f73bd --- /dev/null +++ b/src/regress/lib/libpthread/setjmp/setjmp.c @@ -0,0 +1,91 @@ +/* $OpenBSD: setjmp.c,v 1.3 2003/07/31 21:48:06 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include "test.h" + +int reached; + +static void * +_jump(void *arg) +{ + jmp_buf foo; + + reached = 0; + if (_setjmp(foo)) { + ASSERT(reached); + return NULL; + } + reached = 1; + _longjmp(foo, 1); + PANIC("_longjmp"); +} + +static void * +jump(void *arg) +{ + jmp_buf foo; + + reached = 0; + if (setjmp(foo)) { + ASSERT(reached); + return NULL; + } + reached = 1; + longjmp(foo, 1); + PANIC("longjmp"); +} + +int +main(int argc, char *argv[]) +{ + pthread_t child; + void *res; + + printf("jumping in main thread\n"); + (void)jump(NULL); + printf("_jumping in main thread\n"); + (void)_jump(NULL); + + printf("jumping in child thread\n"); + CHECKr(pthread_create(&child, NULL, jump, NULL)); + CHECKr(pthread_join(child, &res)); + + printf("_jumping in child thread\n"); + CHECKr(pthread_create(&child, NULL, _jump, NULL)); + CHECKr(pthread_join(child, &res)); + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/setsockopt/1/CVS/Entries b/src/regress/lib/libpthread/setsockopt/1/CVS/Entries new file mode 100644 index 000000000..0b9a901c5 --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Dec 26 01:34:18 2009// +/setsockopt1.c/1.1/Sat Dec 26 01:34:18 2009// +D diff --git a/src/regress/lib/libpthread/setsockopt/1/CVS/Repository b/src/regress/lib/libpthread/setsockopt/1/CVS/Repository new file mode 100644 index 000000000..93b03d4d7 --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/1/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/setsockopt/1 diff --git a/src/regress/lib/libpthread/setsockopt/1/CVS/Root b/src/regress/lib/libpthread/setsockopt/1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/setsockopt/1/Makefile b/src/regress/lib/libpthread/setsockopt/1/Makefile new file mode 100644 index 000000000..265a8e015 --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/1/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2009/12/26 01:34:18 fgsch Exp $ + +PROG= setsockopt1 +CFLAGS+= -I${.CURDIR}/../../include + +.include diff --git a/src/regress/lib/libpthread/setsockopt/1/obj b/src/regress/lib/libpthread/setsockopt/1/obj new file mode 120000 index 000000000..9075bfffb --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/1/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/setsockopt/1 \ No newline at end of file diff --git a/src/regress/lib/libpthread/setsockopt/1/setsockopt1.c b/src/regress/lib/libpthread/setsockopt/1/setsockopt1.c new file mode 100644 index 000000000..758b4f711 --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/1/setsockopt1.c @@ -0,0 +1,101 @@ +/* $OpenBSD: setsockopt1.c,v 1.1 2009/12/26 01:34:18 fgsch Exp $ */ +/* + * Federico G. Schwindt , 2009. Public Domain. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +static void +alarm_handler(int sig) +{ + _exit(NOTOK); +} + +int +check_timeout(int s, int sec, struct timeval *to) +{ + struct timeval t1, t2; + struct timeval e, d; + char buf[BUFSIZ]; + + ASSERT(signal(SIGALRM, alarm_handler) != SIG_ERR); + CHECKe(alarm(sec)); + CHECKe(gettimeofday(&t1, NULL)); + ASSERT(read(s, &buf, sizeof(buf)) == -1); + CHECKe(gettimeofday(&t2, NULL)); + ASSERT(errno == EAGAIN); + timersub(&t2, &t1, &e); + timersub(&e, to, &d); + return ((d.tv_sec > 1 || (d.tv_usec / 1000) > 100) ? 1 : 0); +} + +static void * +sock_connect(void *arg) +{ + struct sockaddr_in sin; + struct timeval to; + int s, s2, s3; + + CHECKe(s = socket(AF_INET, SOCK_STREAM, 0)); + CHECKe(s2 = dup(s)); + CHECKe(s3 = fcntl(s, F_DUPFD, s)); + bzero(&sin, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_len = sizeof(sin); + sin.sin_port = htons(6543); + sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + CHECKe(connect(s, (struct sockaddr *)&sin, sizeof(sin))); + to.tv_sec = 2; + to.tv_usec = 0.5 * 1e6; + CHECKe(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &to, sizeof(to))); + CHECKr(check_timeout(s, 3, &to)); + CHECKr(check_timeout(s2, 3, &to)); + CHECKr(check_timeout(s3, 3, &to)); + to.tv_sec = 1; + to.tv_usec = 0.5 * 1e6; + CHECKe(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &to, sizeof(to))); + CHECKr(check_timeout(s, 2, &to)); + CHECKr(check_timeout(s2, 2, &to)); + CHECKr(check_timeout(s3, 2, &to)); + return (NULL); +} + +static void * +sock_accept(void *arg) +{ + pthread_t connect_thread; + struct sockaddr_in sin; + int s; + + CHECKe(s = socket(AF_INET, SOCK_STREAM, 0)); + bzero(&sin, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_len = sizeof(sin); + sin.sin_port = htons(6543); + sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + CHECKe(bind(s, (struct sockaddr *)&sin, sizeof(sin))); + CHECKe(listen(s, 2)); + + CHECKr(pthread_create(&connect_thread, NULL, sock_connect, NULL)); + CHECKr(pthread_join(connect_thread, NULL)); + return (NULL); +} + +int +main(int argc, char **argv) +{ + pthread_t accept_thread; + + CHECKr(pthread_create(&accept_thread, NULL, sock_accept, NULL)); + CHECKr(pthread_join(accept_thread, NULL)); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/setsockopt/2/CVS/Entries b/src/regress/lib/libpthread/setsockopt/2/CVS/Entries new file mode 100644 index 000000000..19c044d7e --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Dec 26 01:34:18 2009// +/setsockopt2.c/1.1/Sat Dec 26 01:34:18 2009// +D diff --git a/src/regress/lib/libpthread/setsockopt/2/CVS/Repository b/src/regress/lib/libpthread/setsockopt/2/CVS/Repository new file mode 100644 index 000000000..5fae441ec --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/2/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/setsockopt/2 diff --git a/src/regress/lib/libpthread/setsockopt/2/CVS/Root b/src/regress/lib/libpthread/setsockopt/2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/setsockopt/2/Makefile b/src/regress/lib/libpthread/setsockopt/2/Makefile new file mode 100644 index 000000000..3926a148f --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/2/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2009/12/26 01:34:18 fgsch Exp $ + +PROG= setsockopt2 +CFLAGS+= -I${.CURDIR}/../../include + +.include diff --git a/src/regress/lib/libpthread/setsockopt/2/obj b/src/regress/lib/libpthread/setsockopt/2/obj new file mode 120000 index 000000000..5e6967dff --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/2/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/setsockopt/2 \ No newline at end of file diff --git a/src/regress/lib/libpthread/setsockopt/2/setsockopt2.c b/src/regress/lib/libpthread/setsockopt/2/setsockopt2.c new file mode 100644 index 000000000..21a296b4e --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/2/setsockopt2.c @@ -0,0 +1,119 @@ +/* $OpenBSD: setsockopt2.c,v 1.1 2009/12/26 01:34:18 fgsch Exp $ */ +/* + * Federico G. Schwindt , 2009. Public Domain. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +static void +alarm_handler(int sig) +{ + _exit(NOTOK); +} + +int +check_timeout(int s, int sec, struct timeval *to) +{ + struct timeval t1, t2; + struct timeval e, d; + char buf[BUFSIZ]; + + ASSERT(signal(SIGALRM, alarm_handler) != SIG_ERR); + CHECKe(alarm(sec)); + CHECKe(gettimeofday(&t1, NULL)); + ASSERT(read(s, &buf, sizeof(buf)) == -1); + CHECKe(gettimeofday(&t2, NULL)); + ASSERT(errno == EAGAIN); + timersub(&t2, &t1, &e); + timersub(&e, to, &d); + return ((d.tv_sec > 1 || (d.tv_usec / 1000) > 100) ? 1 : 0); +} + +static void * +sock_connect(void *arg) +{ + struct sockaddr_in sin; + struct timeval to; + pid_t child_pid; + int status; + int s, s2, s3; + + CHECKe(s = socket(AF_INET, SOCK_STREAM, 0)); + CHECKe(s2 = dup(s)); + CHECKe(s3 = fcntl(s, F_DUPFD, s)); + bzero(&sin, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_len = sizeof(sin); + sin.sin_port = htons(6543); + sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + CHECKe(connect(s, (struct sockaddr *)&sin, sizeof(sin))); + to.tv_sec = 2; + to.tv_usec = 0.5 * 1e6; + CHECKe(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &to, sizeof(to))); + CHECKe(child_pid = fork()); + if (child_pid == 0) { + to.tv_sec = 1; + to.tv_usec = 0.5 * 1e6; + CHECKe(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &to, sizeof(to))); + CHECKr(check_timeout(s, 2, &to)); + CHECKr(check_timeout(s2, 2, &to)); + CHECKr(check_timeout(s3, 2, &to)); + return (NULL); + } + sleep(2); + CHECKr(check_timeout(s, 2, &to)); + CHECKr(check_timeout(s2, 2, &to)); + CHECKr(check_timeout(s3, 2, &to)); + CHECKe(s2 = dup(s)); + CHECKe(s3 = fcntl(s, F_DUPFD, s)); + CHECKr(check_timeout(s2, 2, &to)); + CHECKr(check_timeout(s3, 2, &to)); + CHECKe(close(s)); + CHECKe(close(s2)); + CHECKe(close(s3)); + ASSERTe(wait(&status), == child_pid); + ASSERT(WIFEXITED(status)); + CHECKr(WEXITSTATUS(status)); + return (NULL); +} + +static void * +sock_accept(void *arg) +{ + pthread_t connect_thread; + struct sockaddr_in sin; + int s; + + CHECKe(s = socket(AF_INET, SOCK_STREAM, 0)); + bzero(&sin, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_len = sizeof(sin); + sin.sin_port = htons(6543); + sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + CHECKe(bind(s, (struct sockaddr *)&sin, sizeof(sin))); + CHECKe(listen(s, 2)); + + CHECKr(pthread_create(&connect_thread, NULL, sock_connect, NULL)); + CHECKr(pthread_join(connect_thread, NULL)); + return (NULL); +} + +int +main(int argc, char **argv) +{ + pthread_t accept_thread; + + CHECKr(pthread_create(&accept_thread, NULL, sock_accept, NULL)); + CHECKr(pthread_join(accept_thread, NULL)); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/setsockopt/3/CVS/Entries b/src/regress/lib/libpthread/setsockopt/3/CVS/Entries new file mode 100644 index 000000000..e074793ee --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/3/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Dec 26 01:34:18 2009// +/setsockopt3.c/1.2/Tue Jan 5 17:18:19 2010// +D diff --git a/src/regress/lib/libpthread/setsockopt/3/CVS/Repository b/src/regress/lib/libpthread/setsockopt/3/CVS/Repository new file mode 100644 index 000000000..fbdcfbd35 --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/3/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/setsockopt/3 diff --git a/src/regress/lib/libpthread/setsockopt/3/CVS/Root b/src/regress/lib/libpthread/setsockopt/3/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/3/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/setsockopt/3/Makefile b/src/regress/lib/libpthread/setsockopt/3/Makefile new file mode 100644 index 000000000..ec19f6fe1 --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/3/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.1 2009/12/26 01:34:18 fgsch Exp $ + +PROG= setsockopt3 +CFLAGS+= -I${.CURDIR}/../../include +CLEANFILES+= setsockopt3a + +.include diff --git a/src/regress/lib/libpthread/setsockopt/3/obj b/src/regress/lib/libpthread/setsockopt/3/obj new file mode 120000 index 000000000..6f7a2aea4 --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/3/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/setsockopt/3 \ No newline at end of file diff --git a/src/regress/lib/libpthread/setsockopt/3/setsockopt3.c b/src/regress/lib/libpthread/setsockopt/3/setsockopt3.c new file mode 100644 index 000000000..fc712e81d --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/3/setsockopt3.c @@ -0,0 +1,75 @@ +/* $OpenBSD: setsockopt3.c,v 1.2 2010/01/03 23:02:33 fgsch Exp $ */ +/* + * Federico G. Schwindt , 2009. Public Domain. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +static void * +sock_connect(void *arg) +{ + struct timeval to; + pid_t child_pid; + int status; + int s; + + CHECKe(s = socket(AF_INET, SOCK_STREAM, 0)); + to.tv_sec = 2; + to.tv_usec = 0.5 * 1e6; + CHECKe(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &to, sizeof(to))); + CHECKe(child_pid = fork()); + if (child_pid == 0) { + char *argv[3]; + char fdstr[3]; + snprintf(fdstr, sizeof(fdstr), "%d", s); + argv[0] = "setsockopt3a"; + argv[1] = fdstr; + argv[2] = NULL; + execv(argv[0], argv); + _exit(NOTOK); + } + ASSERTe(wait(&status), == child_pid); + ASSERT(WIFEXITED(status)); + CHECKr(WEXITSTATUS(status)); + return (NULL); +} + +static void * +sock_accept(void *arg) +{ + pthread_t connect_thread; + struct sockaddr_in sin; + int s; + + CHECKe(s = socket(AF_INET, SOCK_STREAM, 0)); + bzero(&sin, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_len = sizeof(sin); + sin.sin_port = htons(6543); + sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + CHECKe(bind(s, (struct sockaddr *)&sin, sizeof(sin))); + CHECKe(listen(s, 2)); + + CHECKr(pthread_create(&connect_thread, NULL, sock_connect, NULL)); + CHECKr(pthread_join(connect_thread, NULL)); + return (NULL); +} + +int +main(int argc, char **argv) +{ + pthread_t accept_thread; + + CHECKr(pthread_create(&accept_thread, NULL, sock_accept, NULL)); + CHECKr(pthread_join(accept_thread, NULL)); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/setsockopt/3a/CVS/Entries b/src/regress/lib/libpthread/setsockopt/3a/CVS/Entries new file mode 100644 index 000000000..257eccde0 --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/3a/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Dec 26 01:34:18 2009// +/setsockopt3a.c/1.2/Tue Jan 5 17:18:19 2010// +D diff --git a/src/regress/lib/libpthread/setsockopt/3a/CVS/Repository b/src/regress/lib/libpthread/setsockopt/3a/CVS/Repository new file mode 100644 index 000000000..c8ff2cf41 --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/3a/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/setsockopt/3a diff --git a/src/regress/lib/libpthread/setsockopt/3a/CVS/Root b/src/regress/lib/libpthread/setsockopt/3a/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/3a/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/setsockopt/3a/Makefile b/src/regress/lib/libpthread/setsockopt/3a/Makefile new file mode 100644 index 000000000..0e02ab319 --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/3a/Makefile @@ -0,0 +1,18 @@ +# $OpenBSD: Makefile,v 1.1 2009/12/26 01:34:18 fgsch Exp $ + +PROG= setsockopt3a +CFLAGS+= -I${.CURDIR}/../../include + +REGRESS_TARGETS=dummy + +# build prog and link into test 3 directory. Code is used by test 3 +# +dummy: ${PROG} + @cd ${.CURDIR}/../3; \ + if test -d ${__objdir} ; then \ + cd ${__objdir} ; \ + fi; \ + ln -sf ${.OBJDIR}/${PROG} + +.include + diff --git a/src/regress/lib/libpthread/setsockopt/3a/obj b/src/regress/lib/libpthread/setsockopt/3a/obj new file mode 120000 index 000000000..33705f65d --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/3a/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/setsockopt/3a \ No newline at end of file diff --git a/src/regress/lib/libpthread/setsockopt/3a/setsockopt3a.c b/src/regress/lib/libpthread/setsockopt/3a/setsockopt3a.c new file mode 100644 index 000000000..b7282415f --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/3a/setsockopt3a.c @@ -0,0 +1,75 @@ +/* $OpenBSD: setsockopt3a.c,v 1.2 2010/01/03 23:02:34 fgsch Exp $ */ +/* + * Federico G. Schwindt , 2009. Public Domain. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +static void +alarm_handler(int sig) +{ + _exit(NOTOK); +} + +int +check_timeout(int s, int sec, struct timeval *to) +{ + struct timeval t1, t2; + struct timeval e, d; + char buf[BUFSIZ]; + + ASSERT(signal(SIGALRM, alarm_handler) != SIG_ERR); + CHECKe(alarm(sec)); + CHECKe(gettimeofday(&t1, NULL)); + ASSERT(read(s, &buf, sizeof(buf)) == -1); + CHECKe(gettimeofday(&t2, NULL)); + ASSERT(errno == EAGAIN); + timersub(&t2, &t1, &e); + timersub(&e, to, &d); + return ((d.tv_sec > 1 || (d.tv_usec / 1000) > 100) ? 1 : 0); +} + +static void * +sock_accept(void *arg) +{ + struct sockaddr_in sin; + struct timeval to; + int s, s2, s3; + + CHECKe(s = strtol(arg, NULL, 10)); + bzero(&sin, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_len = sizeof(sin); + sin.sin_port = htons(6543); + sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + CHECKe(connect(s, (struct sockaddr *)&sin, sizeof(sin))); + to.tv_sec = 2; + to.tv_usec = 0.5 * 1e6; + CHECKr(check_timeout(s, 3, &to)); + CHECKe(s2 = dup(s)); + CHECKe(s3 = fcntl(s, F_DUPFD, s)); + CHECKr(check_timeout(s2, 3, &to)); + CHECKr(check_timeout(s3, 3, &to)); + return (NULL); +} + +int +main(int argc, char **argv) +{ + pthread_t accept_thread; + + if (argc != 2) + exit(NOTOK); + CHECKr(pthread_create(&accept_thread, NULL, sock_accept, argv[1])); + CHECKr(pthread_join(accept_thread, NULL)); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/setsockopt/CVS/Entries b/src/regress/lib/libpthread/setsockopt/CVS/Entries new file mode 100644 index 000000000..6dbf4bcdf --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/CVS/Entries @@ -0,0 +1,6 @@ +/Makefile/1.1/Sat Dec 26 01:34:18 2009// +/Makefile.inc/1.1/Sat Dec 26 01:34:18 2009// +D/1//// +D/2//// +D/3//// +D/3a//// diff --git a/src/regress/lib/libpthread/setsockopt/CVS/Repository b/src/regress/lib/libpthread/setsockopt/CVS/Repository new file mode 100644 index 000000000..f991bc702 --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/setsockopt diff --git a/src/regress/lib/libpthread/setsockopt/CVS/Root b/src/regress/lib/libpthread/setsockopt/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/setsockopt/Makefile b/src/regress/lib/libpthread/setsockopt/Makefile new file mode 100644 index 000000000..67895dc85 --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2009/12/26 01:34:18 fgsch Exp $ + +SUBDIR= 1 2 3a 3 + +.include diff --git a/src/regress/lib/libpthread/setsockopt/Makefile.inc b/src/regress/lib/libpthread/setsockopt/Makefile.inc new file mode 100644 index 000000000..9da23de6b --- /dev/null +++ b/src/regress/lib/libpthread/setsockopt/Makefile.inc @@ -0,0 +1,3 @@ +# $OpenBSD: Makefile.inc,v 1.1 2009/12/26 01:34:18 fgsch Exp $ + +.include "${.CURDIR}/../../Makefile.inc" diff --git a/src/regress/lib/libpthread/sigdeliver/CVS/Entries b/src/regress/lib/libpthread/sigdeliver/CVS/Entries new file mode 100644 index 000000000..a41fb470b --- /dev/null +++ b/src/regress/lib/libpthread/sigdeliver/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Oct 12 03:37:45 2002// +/sigdeliver.c/1.1/Sat Oct 12 03:39:21 2002// +D diff --git a/src/regress/lib/libpthread/sigdeliver/CVS/Repository b/src/regress/lib/libpthread/sigdeliver/CVS/Repository new file mode 100644 index 000000000..3bbd4cf68 --- /dev/null +++ b/src/regress/lib/libpthread/sigdeliver/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/sigdeliver diff --git a/src/regress/lib/libpthread/sigdeliver/CVS/Root b/src/regress/lib/libpthread/sigdeliver/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/sigdeliver/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/sigdeliver/Makefile b/src/regress/lib/libpthread/sigdeliver/Makefile new file mode 100644 index 000000000..f20b827cd --- /dev/null +++ b/src/regress/lib/libpthread/sigdeliver/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/10/12 03:37:45 marc Exp $ + +PROG= sigdeliver + +.include diff --git a/src/regress/lib/libpthread/sigdeliver/obj b/src/regress/lib/libpthread/sigdeliver/obj new file mode 120000 index 000000000..a51d255b3 --- /dev/null +++ b/src/regress/lib/libpthread/sigdeliver/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/sigdeliver \ No newline at end of file diff --git a/src/regress/lib/libpthread/sigdeliver/sigdeliver.c b/src/regress/lib/libpthread/sigdeliver/sigdeliver.c new file mode 100644 index 000000000..b5cd76f87 --- /dev/null +++ b/src/regress/lib/libpthread/sigdeliver/sigdeliver.c @@ -0,0 +1,66 @@ +/* $OpenBSD: sigdeliver.c,v 1.1 2002/10/12 03:39:21 marc Exp $ */ +/* PUBLIC DOMAIN Oct 2002 */ + +/* + * test signal delivery of pending signals + */ + +#include +#include +#include + +#include "test.h" + +static pthread_mutex_t sync_mutex; + +volatile sig_atomic_t got_signal; + +/* + * sigusr1 signal handler. + */ +static void +sighandler(int signo) +{ + got_signal += 1; +} + +/* + * Install a signal handler for sigusr1 and then wait for it to + * occur. + */ +static void * +do_nothing (void *arg) +{ + SET_NAME("nothing"); + + ASSERT(signal(SIGUSR1, sighandler) != SIG_ERR); + CHECKr(pthread_mutex_lock(&sync_mutex)); + ASSERT(got_signal != 0); + CHECKr(pthread_mutex_unlock(&sync_mutex)); + return 0; +} + +int +main (int argc, char *argv[]) +{ + pthread_t pthread; + + /* Initialize and lock a mutex. */ + CHECKr(pthread_mutex_init(&sync_mutex, NULL)); + CHECKr(pthread_mutex_lock(&sync_mutex)); + + /* start a thread that will wait on the mutex we now own */ + CHECKr(pthread_create(&pthread, NULL, do_nothing, NULL)); + + /* + * Give the thread time to run and install its signal handler. + * The thread should be blocked waiting for the mutex we own. + * Give it a signal and then release the mutex and see if the + * signal is ever processed. + */ + sleep(2); + CHECKr(pthread_kill(pthread, SIGUSR1)); + CHECKr(pthread_mutex_unlock(&sync_mutex)); + CHECKr(pthread_join(pthread, NULL)); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/siginfo/CVS/Entries b/src/regress/lib/libpthread/siginfo/CVS/Entries new file mode 100644 index 000000000..e10d7ddc5 --- /dev/null +++ b/src/regress/lib/libpthread/siginfo/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Oct 7 21:27:16 2002// +/siginfo.c/1.10/Thu Jul 31 21:48:06 2003// +D diff --git a/src/regress/lib/libpthread/siginfo/CVS/Repository b/src/regress/lib/libpthread/siginfo/CVS/Repository new file mode 100644 index 000000000..374cfb8ce --- /dev/null +++ b/src/regress/lib/libpthread/siginfo/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/siginfo diff --git a/src/regress/lib/libpthread/siginfo/CVS/Root b/src/regress/lib/libpthread/siginfo/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/siginfo/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/siginfo/Makefile b/src/regress/lib/libpthread/siginfo/Makefile new file mode 100644 index 000000000..421ddecdb --- /dev/null +++ b/src/regress/lib/libpthread/siginfo/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/10/07 21:27:16 marc Exp $ + +PROG= siginfo + +.include diff --git a/src/regress/lib/libpthread/siginfo/obj b/src/regress/lib/libpthread/siginfo/obj new file mode 120000 index 000000000..3f9a6a65d --- /dev/null +++ b/src/regress/lib/libpthread/siginfo/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/siginfo \ No newline at end of file diff --git a/src/regress/lib/libpthread/siginfo/siginfo.c b/src/regress/lib/libpthread/siginfo/siginfo.c new file mode 100644 index 000000000..7deeda7c7 --- /dev/null +++ b/src/regress/lib/libpthread/siginfo/siginfo.c @@ -0,0 +1,49 @@ +/* $OpenBSD: siginfo.c,v 1.10 2003/07/31 21:48:06 deraadt Exp $ */ +/* PUBLIC DOMAIN Oct 2002 */ + +/* + * test SA_SIGINFO support. Also check that SA_RESETHAND does the right + * thing. + */ + +#include +#include +#include +#include + +#include "test.h" + +#define BOGUS (char *)0x987230 + +static void +act_handler(int signal, siginfo_t *siginfo, void *context) +{ + struct sigaction sa; + char * str; + + CHECKe(sigaction(SIGSEGV, NULL, &sa)); + ASSERT(sa.sa_handler == SIG_DFL); + ASSERT(siginfo != NULL); + asprintf(&str, "act_handler: signal %d, siginfo %p, context %p\n" + "addr %p, code %d, trap %d\n", signal, siginfo, context, + siginfo->si_addr, siginfo->si_code, siginfo->si_trapno); + write(STDOUT_FILENO, str, strlen(str)); + free(str); + ASSERT(siginfo->si_addr == BOGUS); + ASSERT(siginfo->si_code != SI_USER); + ASSERT(siginfo->si_code > 0 && siginfo->si_code <= NSIGSEGV); + SUCCEED; +} + +int +main(int argc, char **argv) +{ + struct sigaction act; + + act.sa_sigaction = act_handler; + sigemptyset(&act.sa_mask); + act.sa_flags = SA_SIGINFO | SA_RESETHAND | SA_NODEFER; + CHECKe(sigaction(SIGSEGV, &act, NULL)); + *BOGUS = 1; + PANIC("How did we get here?"); +} diff --git a/src/regress/lib/libpthread/sigmask/CVS/Entries b/src/regress/lib/libpthread/sigmask/CVS/Entries new file mode 100644 index 000000000..0cd44cb65 --- /dev/null +++ b/src/regress/lib/libpthread/sigmask/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Jul 10 21:02:12 2003// +/sigmask.c/1.3/Thu Apr 24 03:31:33 2008// +D diff --git a/src/regress/lib/libpthread/sigmask/CVS/Repository b/src/regress/lib/libpthread/sigmask/CVS/Repository new file mode 100644 index 000000000..bbc93a3d9 --- /dev/null +++ b/src/regress/lib/libpthread/sigmask/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/sigmask diff --git a/src/regress/lib/libpthread/sigmask/CVS/Root b/src/regress/lib/libpthread/sigmask/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/sigmask/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/sigmask/Makefile b/src/regress/lib/libpthread/sigmask/Makefile new file mode 100644 index 000000000..3c031fab6 --- /dev/null +++ b/src/regress/lib/libpthread/sigmask/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2003/07/10 21:02:12 marc Exp $ + +PROG= sigmask + +.include diff --git a/src/regress/lib/libpthread/sigmask/sigmask.c b/src/regress/lib/libpthread/sigmask/sigmask.c new file mode 100644 index 000000000..ccdf5fc5d --- /dev/null +++ b/src/regress/lib/libpthread/sigmask/sigmask.c @@ -0,0 +1,64 @@ +/* $OpenBSD: sigmask.c,v 1.3 2008/04/24 03:31:33 kurt Exp $ */ +/* PUBLIC DOMAIN July 2003 Marco S Hyman */ + +#include + +#include +#include +#include + +#include "test.h" + +/* + * Test that masked signals with a default action of terminate process + * do NOT terminate the process. + */ +int main (int argc, char *argv[]) +{ + sigset_t mask; + int sig; + + /* any two (or more) command line args should cause the program + to die */ + if (argc > 2) { + printf("trigger sigalrm[1] [test should die]\n"); + ualarm(100000, 0); + CHECKe(sleep(1)); + } + + /* mask sigalrm */ + CHECKe(sigemptyset(&mask)); + CHECKe(sigaddset(&mask, SIGALRM)); + CHECKr(pthread_sigmask(SIG_BLOCK, &mask, NULL)); + + /* make sure pthread_sigmask() returns the right value on failure */ + CHECKe(pthread_sigmask(-1, &mask, NULL)); + + /* now trigger sigalrm and wait for it */ + printf("trigger sigalrm[2] [masked, test should not die]\n"); + ualarm(100000, 0); + CHECKe(sleep(1)); + + /* sigwait for sigalrm, it should be pending. If it is not + the test will hang. */ + CHECKr(sigwait(&mask, &sig)); + ASSERT(sig == SIGALRM); + + /* make sure sigwait didn't muck with the mask by triggering + sigalrm, again */ + printf("trigger sigalrm[3] after sigwait [masked, test should not die]\n"); + ualarm(100000, 0); + CHECKe(sleep(1)); + + /* any single command line arg will run this code wich unmasks the + signal and then makes sure the program terminates when sigalrm + is triggered. */ + if (argc > 1) { + printf("trigger sigalrm[4] [unmasked, test should die]\n"); + CHECKr(pthread_sigmask(SIG_UNBLOCK, &mask, NULL)); + ualarm(100000, 0); + CHECKe(sleep(1)); + } + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/signal/CVS/Entries b/src/regress/lib/libpthread/signal/CVS/Entries new file mode 100644 index 000000000..123fbe2c0 --- /dev/null +++ b/src/regress/lib/libpthread/signal/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:48 2002// +/signal.c/1.5/Thu Jul 31 21:48:06 2003// +D diff --git a/src/regress/lib/libpthread/signal/CVS/Repository b/src/regress/lib/libpthread/signal/CVS/Repository new file mode 100644 index 000000000..f6fafc310 --- /dev/null +++ b/src/regress/lib/libpthread/signal/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/signal diff --git a/src/regress/lib/libpthread/signal/CVS/Root b/src/regress/lib/libpthread/signal/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/signal/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/signal/Makefile b/src/regress/lib/libpthread/signal/Makefile new file mode 100644 index 000000000..ae0e5be1f --- /dev/null +++ b/src/regress/lib/libpthread/signal/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:48 art Exp $ + +PROG= signal + +.include diff --git a/src/regress/lib/libpthread/signal/obj b/src/regress/lib/libpthread/signal/obj new file mode 120000 index 000000000..ed3ae2fae --- /dev/null +++ b/src/regress/lib/libpthread/signal/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/signal \ No newline at end of file diff --git a/src/regress/lib/libpthread/signal/signal.c b/src/regress/lib/libpthread/signal/signal.c new file mode 100644 index 000000000..a8b15d259 --- /dev/null +++ b/src/regress/lib/libpthread/signal/signal.c @@ -0,0 +1,56 @@ +/* $OpenBSD: signal.c,v 1.5 2003/07/31 21:48:06 deraadt Exp $ */ +/* David Leonard , 2001. Public Domain. */ + +/* + * This program tests signal handler re-entrancy. + */ + +#include +#include +#include +#include +#include +#include "test.h" + +volatile int alarmed; + +static void * +sleeper(void *arg) +{ + sigset_t mask; + + /* Ignore all signals in this thread */ + sigfillset(&mask); + CHECKe(sigprocmask(SIG_SETMASK, &mask, NULL)); + ASSERT(sleep(3) == 0); + CHECKe(write(STDOUT_FILENO, "\n", 1)); + SUCCEED; +} + +static void +handler(int sig) +{ + int save_errno = errno; + + alarmed = 1; + alarm(1); + signal(SIGALRM, handler); + errno = save_errno; +} + +int +main(int argc, char *argv[]) +{ + pthread_t slpr; + + ASSERT(signal(SIGALRM, handler) != SIG_ERR); + CHECKe(alarm(1)); + CHECKr(pthread_create(&slpr, NULL, sleeper, NULL)); + /* ASSERT(sleep(1) == 0); */ + for (;;) { + if (alarmed) { + alarmed = 0; + CHECKe(write(STDOUT_FILENO, "!", 1)); + } + } +} diff --git a/src/regress/lib/libpthread/signodefer/CVS/Entries b/src/regress/lib/libpthread/signodefer/CVS/Entries new file mode 100644 index 000000000..d746c640b --- /dev/null +++ b/src/regress/lib/libpthread/signodefer/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Oct 21 18:46:35 2002// +/signodefer.c/1.3/Thu Jul 31 21:48:06 2003// +D diff --git a/src/regress/lib/libpthread/signodefer/CVS/Repository b/src/regress/lib/libpthread/signodefer/CVS/Repository new file mode 100644 index 000000000..a4ec988ee --- /dev/null +++ b/src/regress/lib/libpthread/signodefer/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/signodefer diff --git a/src/regress/lib/libpthread/signodefer/CVS/Root b/src/regress/lib/libpthread/signodefer/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/signodefer/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/signodefer/Makefile b/src/regress/lib/libpthread/signodefer/Makefile new file mode 100644 index 000000000..52c04c28c --- /dev/null +++ b/src/regress/lib/libpthread/signodefer/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/10/21 18:46:35 marc Exp $ + +PROG= signodefer + +.include diff --git a/src/regress/lib/libpthread/signodefer/obj b/src/regress/lib/libpthread/signodefer/obj new file mode 120000 index 000000000..3f045e087 --- /dev/null +++ b/src/regress/lib/libpthread/signodefer/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/signodefer \ No newline at end of file diff --git a/src/regress/lib/libpthread/signodefer/signodefer.c b/src/regress/lib/libpthread/signodefer/signodefer.c new file mode 100644 index 000000000..3773a5345 --- /dev/null +++ b/src/regress/lib/libpthread/signodefer/signodefer.c @@ -0,0 +1,67 @@ +/* $OpenBSD: signodefer.c,v 1.3 2003/07/31 21:48:06 deraadt Exp $ */ +/* PUBLIC DOMAIN Oct 2002 */ + +/* + * test signal delivery of active signals (SA_NODEFER) + */ + +#include +#include +#include + +#include "test.h" + +volatile sig_atomic_t sigactive; +volatile sig_atomic_t sigcount; +volatile sig_atomic_t was_active; + +static void +act_handler(int signal, siginfo_t *siginfo, void *context) +{ + char *str; + + /* how many times has the handler been called */ + was_active += sigactive++; + sigcount += 1; + + /* verify siginfo since we asked for it. */ + ASSERT(siginfo != NULL); + + asprintf(&str, + "%sact_handler/%d, signal %d, siginfo %p, context %p\n", + was_active ? "[recurse] " : "", + sigcount, signal, siginfo, context); + CHECKe(write(STDOUT_FILENO, str, strlen(str))); + /* Odd times entered send ourself the same signal */ + if (sigcount & 1) + CHECKe(kill(getpid(), SIGUSR1)); + + sigactive = 0; +} + +int +main(int argc, char **argv) +{ + struct sigaction act; + + act.sa_sigaction = act_handler; + sigemptyset(&act.sa_mask); + act.sa_flags = SA_SIGINFO; + ASSERT(sigaction(SIGUSR1, &act, NULL) == 0); + + /* see if the signal handler recurses */ + CHECKe(kill(getpid(), SIGUSR1)); + sleep(1); + ASSERT(was_active == 0); + + /* allow recursive handlers, see that it is handled right */ + act.sa_flags |= SA_NODEFER; + ASSERT(sigaction(SIGUSR1, &act, NULL) == 0); + + /* see if the signal handler recurses */ + CHECKe(kill(getpid(), SIGUSR1)); + sleep(1); + ASSERT(was_active == 1); + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/sigsuspend/CVS/Entries b/src/regress/lib/libpthread/sigsuspend/CVS/Entries new file mode 100644 index 000000000..d3ea6a2d5 --- /dev/null +++ b/src/regress/lib/libpthread/sigsuspend/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:48 2002// +/sigsuspend.c/1.4/Mon Jan 27 08:48:41 2003// +D diff --git a/src/regress/lib/libpthread/sigsuspend/CVS/Repository b/src/regress/lib/libpthread/sigsuspend/CVS/Repository new file mode 100644 index 000000000..dceb509ff --- /dev/null +++ b/src/regress/lib/libpthread/sigsuspend/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/sigsuspend diff --git a/src/regress/lib/libpthread/sigsuspend/CVS/Root b/src/regress/lib/libpthread/sigsuspend/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/sigsuspend/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/sigsuspend/Makefile b/src/regress/lib/libpthread/sigsuspend/Makefile new file mode 100644 index 000000000..6d1ff90bb --- /dev/null +++ b/src/regress/lib/libpthread/sigsuspend/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:48 art Exp $ + +PROG= sigsuspend + +.include diff --git a/src/regress/lib/libpthread/sigsuspend/obj b/src/regress/lib/libpthread/sigsuspend/obj new file mode 120000 index 000000000..295d76ef4 --- /dev/null +++ b/src/regress/lib/libpthread/sigsuspend/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/sigsuspend \ No newline at end of file diff --git a/src/regress/lib/libpthread/sigsuspend/sigsuspend.c b/src/regress/lib/libpthread/sigsuspend/sigsuspend.c new file mode 100644 index 000000000..d8b521ba3 --- /dev/null +++ b/src/regress/lib/libpthread/sigsuspend/sigsuspend.c @@ -0,0 +1,253 @@ +/* $OpenBSD: sigsuspend.c,v 1.4 2003/01/27 08:48:41 marc Exp $ */ +/* + * Copyright (c) 1998 Daniel M. Eischen + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Daniel M. Eischen. + * 4. Neither the name of the author nor the names of any co-contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY DANIEL M. EISCHEN AND CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ +#include +#include + +#include +#include +#include +#include +#include + +#include +#include "test.h" + +static int sigcounts[NSIG + 1]; +static int sigfifo[NSIG + 1]; +static int fifo_depth = 0; +static sigset_t suspender_mask; +static pthread_t suspender_tid; + + +static void * +sigsuspender (void *arg) +{ + int save_count, status, i; + sigset_t run_mask; + + SET_NAME("sigsuspender"); + + /* Run with all signals blocked. */ + sigfillset (&run_mask); + CHECKe(sigprocmask (SIG_SETMASK, &run_mask, NULL)); + + /* Allow these signals to wake us up during a sigsuspend. */ + sigfillset (&suspender_mask); /* Default action */ + sigdelset (&suspender_mask, SIGINT); /* terminate */ + sigdelset (&suspender_mask, SIGHUP); /* terminate */ + sigdelset (&suspender_mask, SIGQUIT); /* create core image */ + sigdelset (&suspender_mask, SIGURG); /* ignore */ + sigdelset (&suspender_mask, SIGIO); /* ignore */ + sigdelset (&suspender_mask, SIGUSR2); /* terminate */ + + while (sigcounts[SIGINT] == 0) { + save_count = sigcounts[SIGUSR2]; + + status = sigsuspend (&suspender_mask); + if ((status == 0) || (errno != EINTR)) { + DIE(errno, "Unable to suspend for signals, " + "return value %d\n", + status); + } + for (i = 0; i < fifo_depth; i++) + printf ("Sigsuspend woke up by signal %d (%s)\n", + sigfifo[i], strsignal(sigfifo[i])); + fifo_depth = 0; + } + + return (arg); +} + + +static void +sighandler (int signo) +{ + int save_errno = errno; + char buf[8192]; + sigset_t set; + sigset_t tmp; + pthread_t self; + + if ((signo >= 0) && (signo <= NSIG)) + sigcounts[signo]++; + + /* + * If we are running on behalf of the suspender thread, + * ensure that we have the correct mask set. NOTE: per + * POSIX the current signo will be part of the mask unless + * SA_NODEFER was specified. Since it isn't in this test + * add the current signal to the original suspender_mask + * before checking. + */ + self = pthread_self (); + if (self == suspender_tid) { + sigfifo[fifo_depth] = signo; + fifo_depth++; + snprintf(buf, sizeof buf, + " -> Suspender thread signal handler caught " + "signal %d (%s)\n", signo, strsignal(signo)); + write(STDOUT_FILENO, buf, strlen(buf)); + sigprocmask (SIG_SETMASK, NULL, &set); + tmp = suspender_mask; + sigaddset(&tmp, signo); + ASSERT(set == tmp); + } else { + snprintf(buf, sizeof buf, + " -> Main thread signal handler caught " + "signal %d (%s)\n", signo, strsignal(signo)); + write(STDOUT_FILENO, buf, strlen(buf)); + } + errno = save_errno; +} + + +int main (int argc, char *argv[]) +{ + pthread_attr_t pattr; + struct sigaction act; + sigset_t oldset; + sigset_t newset; + + /* Initialize our signal counts. */ + memset ((void *) sigcounts, 0, NSIG * sizeof (int)); + + /* Ignore signal SIGIO. */ + sigemptyset (&act.sa_mask); + sigaddset (&act.sa_mask, SIGIO); + act.sa_handler = SIG_IGN; + act.sa_flags = 0; + CHECKe(sigaction (SIGIO, &act, NULL)); + + /* Install a signal handler for SIGURG. */ + sigemptyset (&act.sa_mask); + sigaddset (&act.sa_mask, SIGURG); + act.sa_handler = sighandler; + act.sa_flags = SA_RESTART; + CHECKe(sigaction (SIGURG, &act, NULL)); + + /* Install a signal handler for SIGXCPU */ + sigemptyset (&act.sa_mask); + sigaddset (&act.sa_mask, SIGXCPU); + CHECKe(sigaction (SIGXCPU, &act, NULL)); + + /* Get our current signal mask. */ + CHECKe(sigprocmask (SIG_SETMASK, NULL, &oldset)); + + /* Mask out SIGUSR1 and SIGUSR2. */ + newset = oldset; + sigaddset (&newset, SIGUSR1); + sigaddset (&newset, SIGUSR2); + CHECKe(sigprocmask (SIG_SETMASK, &newset, NULL)); + + /* Install a signal handler for SIGUSR1 and SIGUSR2 */ + sigemptyset (&act.sa_mask); + sigaddset (&act.sa_mask, SIGUSR1); + sigaddset (&act.sa_mask, SIGUSR2); + act.sa_handler = sighandler; + act.sa_flags = SA_RESTART; + CHECKe(sigaction (SIGUSR1, &act, NULL)); + CHECKe(sigaction (SIGUSR2, &act, NULL)); + + /* + * Initialize the thread attribute. + */ + CHECKr(pthread_attr_init (&pattr)); + CHECKr(pthread_attr_setdetachstate (&pattr, PTHREAD_CREATE_JOINABLE)); + + /* + * Create the sigsuspender thread. + */ + CHECKr(pthread_create (&suspender_tid, &pattr, sigsuspender, NULL)); + + /* + * Verify that an ignored signal doesn't cause a wakeup. + * We don't have a handler installed for SIGIO. + */ + CHECKr(pthread_kill (suspender_tid, SIGIO)); + sleep (1); + CHECKe(kill (getpid (), SIGIO)); + sleep (1); + /* sigsuspend should not wake up for ignored signal SIGIO */ + ASSERT(sigcounts[SIGIO] == 0); + + /* + * Verify that a signal with a default action of ignore, for + * which we have a signal handler installed, will release a + * sigsuspend. + */ + CHECKr(pthread_kill (suspender_tid, SIGURG)); + sleep (1); + CHECKe(kill (getpid (), SIGURG)); + sleep (1); + /* sigsuspend should wake up for SIGURG */ + ASSERT(sigcounts[SIGURG] == 2); + + /* + * Verify that a SIGUSR2 signal will release a sigsuspended + * thread. + */ + CHECKr(pthread_kill (suspender_tid, SIGUSR2)); + sleep (1); + CHECKe(kill (getpid (), SIGUSR2)); + sleep (1); + /* sigsuspend should wake yp for SIGUSR2 */ + ASSERT(sigcounts[SIGUSR2] == 2); + + /* + * Verify that a signal, blocked in both the main and + * sigsuspender threads, does not cause the signal handler + * to be called. + */ + CHECKr(pthread_kill (suspender_tid, SIGUSR1)); + sleep (1); + CHECKe(kill (getpid (), SIGUSR1)); + sleep (1); + /* signal handler should not be called for USR1 */ + ASSERT(sigcounts[SIGUSR1] == 0); +#if 0 + /* + * Verify that we can still kill the process for a signal + * not being waited on by sigwait. + */ + CHECKe(kill (getpid (), SIGPIPE)); + PANIC("SIGPIPE did not terminate process"); + + /* + * Wait for the thread to finish. + */ + CHECKr(pthread_join (suspender_tid, NULL)); +#endif + SUCCEED; +} + diff --git a/src/regress/lib/libpthread/sigwait/CVS/Entries b/src/regress/lib/libpthread/sigwait/CVS/Entries new file mode 100644 index 000000000..0d855d638 --- /dev/null +++ b/src/regress/lib/libpthread/sigwait/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:48 2002// +/sigwait.c/1.3/Sat Oct 12 03:00:11 2002// +D diff --git a/src/regress/lib/libpthread/sigwait/CVS/Repository b/src/regress/lib/libpthread/sigwait/CVS/Repository new file mode 100644 index 000000000..d639b4b32 --- /dev/null +++ b/src/regress/lib/libpthread/sigwait/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/sigwait diff --git a/src/regress/lib/libpthread/sigwait/CVS/Root b/src/regress/lib/libpthread/sigwait/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/sigwait/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/sigwait/Makefile b/src/regress/lib/libpthread/sigwait/Makefile new file mode 100644 index 000000000..271d35b16 --- /dev/null +++ b/src/regress/lib/libpthread/sigwait/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:48 art Exp $ + +PROG= sigwait + +.include diff --git a/src/regress/lib/libpthread/sigwait/obj b/src/regress/lib/libpthread/sigwait/obj new file mode 120000 index 000000000..0ed69c857 --- /dev/null +++ b/src/regress/lib/libpthread/sigwait/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/sigwait \ No newline at end of file diff --git a/src/regress/lib/libpthread/sigwait/sigwait.c b/src/regress/lib/libpthread/sigwait/sigwait.c new file mode 100644 index 000000000..b83a3552c --- /dev/null +++ b/src/regress/lib/libpthread/sigwait/sigwait.c @@ -0,0 +1,270 @@ +/* $OpenBSD: sigwait.c,v 1.3 2002/10/12 03:00:11 marc Exp $ */ +/* + * Copyright (c) 1998 Daniel M. Eischen + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Daniel M. Eischen. + * 4. Neither the name of the author nor the names of any co-contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY DANIEL M. EISCHEN AND CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ +#include +#include + +#include +#include +#include +#include +#include + +#include +#include "test.h" + +static int sigcounts[NSIG + 1]; +static sigset_t wait_mask; +static pthread_mutex_t waiter_mutex; + + +static void * +sigwaiter (void *arg) +{ + int signo; + + SET_NAME("sigwaiter"); + + /* Block all of the signals that the function will wait for */ + CHECKe(sigprocmask (SIG_BLOCK, &wait_mask, NULL)); + + while (sigcounts[SIGINT] == 0) { + printf("Sigwait waiting (thread %p)\n", pthread_self()); + CHECKe(sigwait (&wait_mask, &signo)); + sigcounts[signo]++; + printf ("Sigwait caught signal %d (%s)\n", signo, + strsignal(signo)); + + /* Allow the main thread to prevent the sigwait. */ + CHECKr(pthread_mutex_lock (&waiter_mutex)); + CHECKr(pthread_mutex_unlock (&waiter_mutex)); + } + + return (arg); +} + + +static void +sighandler (int signo) +{ + int save_errno = errno; + char buf[8192]; + + snprintf(buf, sizeof buf, + " -> Signal handler caught signal %d (%s) in thread %p\n", + signo, strsignal(signo), pthread_self()); + write(STDOUT_FILENO, buf, strlen(buf)); + + if ((signo >= 0) && (signo <= NSIG)) + sigcounts[signo]++; + errno = save_errno; +} + +int main (int argc, char *argv[]) +{ + pthread_mutexattr_t mattr; + pthread_attr_t pattr; + pthread_t tid; + struct sigaction act; + + /* Initialize our signal counts. */ + memset ((void *) sigcounts, 0, NSIG * sizeof (int)); + + /* Setupt our wait mask. */ + sigemptyset (&wait_mask); /* Default action */ + sigaddset (&wait_mask, SIGHUP); /* terminate */ + sigaddset (&wait_mask, SIGINT); /* terminate */ + sigaddset (&wait_mask, SIGQUIT); /* create core image */ + sigaddset (&wait_mask, SIGURG); /* ignore */ + sigaddset (&wait_mask, SIGIO); /* ignore */ + sigaddset (&wait_mask, SIGUSR1); /* terminate */ + + /* Ignore signals SIGHUP and SIGIO. */ + sigemptyset (&act.sa_mask); + sigaddset (&act.sa_mask, SIGHUP); + sigaddset (&act.sa_mask, SIGIO); + act.sa_handler = SIG_IGN; + act.sa_flags = 0; + CHECKe(sigaction (SIGHUP, &act, NULL)); + CHECKe(sigaction (SIGIO, &act, NULL)); + + /* Install a signal handler for SIGURG */ + sigemptyset (&act.sa_mask); + sigaddset (&act.sa_mask, SIGURG); + act.sa_handler = sighandler; + act.sa_flags = SA_RESTART; + CHECKe(sigaction (SIGURG, &act, NULL)); + + /* Install a signal handler for SIGXCPU */ + sigemptyset (&act.sa_mask); + sigaddset (&act.sa_mask, SIGXCPU); + CHECKe(sigaction (SIGXCPU, &act, NULL)); + + /* + * Initialize the thread attribute. + */ + CHECKr(pthread_attr_init (&pattr)); + CHECKr(pthread_attr_setdetachstate (&pattr, PTHREAD_CREATE_JOINABLE)); + + /* + * Initialize and create a mutex. + */ + CHECKr(pthread_mutexattr_init (&mattr)); + CHECKr(pthread_mutex_init (&waiter_mutex, &mattr)); + + /* + * Create the sigwaiter thread. + */ + CHECKr(pthread_create (&tid, &pattr, sigwaiter, NULL)); + + /* + * Verify that an ignored signal doesn't cause a wakeup. + * We don't have a handler installed for SIGIO. + */ + CHECKr(pthread_kill (tid, SIGIO)); + sleep (1); + CHECKe(kill(getpid(), SIGIO)); + sleep (1); + /* sigwait should not wake up for ignored signal SIGIO */ + ASSERT(sigcounts[SIGIO] == 0); + + /* + * Verify that a signal with a default action of ignore, for + * which we have a signal handler installed, will release a sigwait. + */ + CHECKr(pthread_kill (tid, SIGURG)); + sleep (1); + CHECKe(kill(getpid(), SIGURG)); + sleep (1); + /* sigwait should wake up for SIGURG */ + ASSERT(sigcounts[SIGURG] == 2); + + /* + * Verify that a signal with a default action that terminates + * the process will release a sigwait. + */ + CHECKr(pthread_kill (tid, SIGUSR1)); + sleep (1); + CHECKe(kill(getpid(), SIGUSR1)); + sleep (1); + if (sigcounts[SIGUSR1] != 2) + printf ("FAIL: sigwait doesn't wake up for SIGUSR1.\n"); + + /* + * Verify that if we install a signal handler for a previously + * ignored signal, an occurrence of this signal will release + * the (already waiting) sigwait. + */ + + /* Install a signal handler for SIGHUP. */ + sigemptyset (&act.sa_mask); + sigaddset (&act.sa_mask, SIGHUP); + act.sa_handler = sighandler; + act.sa_flags = SA_RESTART; + CHECKe(sigaction (SIGHUP, &act, NULL)); + + /* Sending SIGHUP should release the sigwait. */ + CHECKe(kill(getpid(), SIGHUP)); + sleep (1); + CHECKr(pthread_kill (tid, SIGHUP)); + sleep (1); + /* sigwait should wake up for SIGHUP */ + ASSERT(sigcounts[SIGHUP] == 2); + + /* + * Verify that a pending signal in the waiters mask will + * cause sigwait to return the pending signal. We do this + * by taking the waiters mutex and signaling the waiter to + * release him from the sigwait. The waiter will block + * on taking the mutex, and we can then send the waiter a + * signal which should be added to his pending signals. + * The next time the waiter does a sigwait, he should + * return with the pending signal. + */ + sigcounts[SIGHUP] = 0; + CHECKr(pthread_mutex_lock (&waiter_mutex)); + /* Release the waiter from sigwait. */ + CHECKe(kill(getpid(), SIGHUP)); + sleep (1); + /* signal handler should wake up for SIGHUP */ + ASSERT(sigcounts[SIGHUP] == 1); + /* + * Add SIGHUP to all threads pending signals. Since there is + * a signal handler installed for SIGHUP and this signal is + * blocked from the waiter thread and unblocked in the main + * thread, the signal handler should be called once for SIGHUP. + */ + CHECKe(kill(getpid(), SIGHUP)); + /* Release the waiter thread and allow him to run. */ + CHECKr(pthread_mutex_unlock (&waiter_mutex)); + sleep (1); + /* + * sigwait should NOT return for pending SIGHUP. Nothing is pending + * because the signal was processed by the SIGHUP signal handler. + */ + ASSERT(sigcounts[SIGHUP] == 2); + + /* + * Repeat the above test using pthread_kill and SIGUSR1 + */ + sigcounts[SIGUSR1] = 0; + CHECKr(pthread_mutex_lock (&waiter_mutex)); + /* Release the waiter from sigwait. */ + CHECKr(pthread_kill (tid, SIGUSR1)); + sleep (1); + /* sigwait should wake up for SIGUSR1 */ + ASSERT(sigcounts[SIGUSR1] == 1); + /* Add SIGUSR1 to the waiters pending signals. */ + CHECKr(pthread_kill (tid, SIGUSR1)); + /* Release the waiter thread and allow him to run. */ + CHECKe(pthread_mutex_unlock (&waiter_mutex)); + sleep (1); + /* sigwait should return for pending SIGUSR1 */ + ASSERT(sigcounts[SIGUSR1] == 2); + +#if 0 + /* + * Verify that we can still kill the process for a signal + * not being waited on by sigwait. + */ + CHECKe(kill(getpid(), SIGPIPE)); + PANIC("SIGPIPE did not terminate process"); + + /* + * Wait for the thread to finish. + */ + CHECKr(pthread_join (tid, NULL)); +#endif + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/sleep/CVS/Entries b/src/regress/lib/libpthread/sleep/CVS/Entries new file mode 100644 index 000000000..ee6caea5c --- /dev/null +++ b/src/regress/lib/libpthread/sleep/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:48 2002// +/sleep.c/1.4/Thu Jul 31 21:48:06 2003// +D diff --git a/src/regress/lib/libpthread/sleep/CVS/Repository b/src/regress/lib/libpthread/sleep/CVS/Repository new file mode 100644 index 000000000..7faa4efeb --- /dev/null +++ b/src/regress/lib/libpthread/sleep/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/sleep diff --git a/src/regress/lib/libpthread/sleep/CVS/Root b/src/regress/lib/libpthread/sleep/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/sleep/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/sleep/Makefile b/src/regress/lib/libpthread/sleep/Makefile new file mode 100644 index 000000000..26876e2b9 --- /dev/null +++ b/src/regress/lib/libpthread/sleep/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:48 art Exp $ + +PROG= sleep + +.include diff --git a/src/regress/lib/libpthread/sleep/obj b/src/regress/lib/libpthread/sleep/obj new file mode 120000 index 000000000..dc2ef7400 --- /dev/null +++ b/src/regress/lib/libpthread/sleep/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/sleep \ No newline at end of file diff --git a/src/regress/lib/libpthread/sleep/sleep.c b/src/regress/lib/libpthread/sleep/sleep.c new file mode 100644 index 000000000..e3f024297 --- /dev/null +++ b/src/regress/lib/libpthread/sleep/sleep.c @@ -0,0 +1,85 @@ +/* $OpenBSD: sleep.c,v 1.4 2003/07/31 21:48:06 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* ==== test_sleep.c ========================================================= + * Copyright (c) 1993 by Chris Provenzano, proven@athena.mit.edu + * + * Description : Test context switch functionality. + * + * 1.00 93/08/04 proven + * -Started coding this file. + */ + +#include +#include +#include +#include +#include "test.h" + +const char buf[] = "abcdefghijklimnopqrstuvwxyz"; +int fd = 1; + +static void * +new_thread(void* arg) +{ + int i; + + for (i = 0; i < 10; i++) { + write(fd, buf + (long) arg, 1); + sleep(1); + } + return NULL; +} + +int +main(int argc, char *argv[]) +{ + pthread_t thread[2]; + int count = sizeof thread/sizeof thread[0]; + long i; + + printf("Going to sleep\n"); + sleep(3); + printf("Done sleeping\n"); + + for(i = 0; i < count; i++) + CHECKr(pthread_create(&thread[i], NULL, new_thread, + (void *) i)); + + for (i = 0; i < count; i++) + CHECKr(pthread_join(thread[i], NULL)); + + CHECKe(write(STDOUT_FILENO, "\n", 1)); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/socket/1/CVS/Entries b/src/regress/lib/libpthread/socket/1/CVS/Entries new file mode 100644 index 000000000..c99b695ce --- /dev/null +++ b/src/regress/lib/libpthread/socket/1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:48 2002// +/socket1.c/1.3/Thu Jan 5 03:47:19 2006// +D diff --git a/src/regress/lib/libpthread/socket/1/CVS/Repository b/src/regress/lib/libpthread/socket/1/CVS/Repository new file mode 100644 index 000000000..f14e77189 --- /dev/null +++ b/src/regress/lib/libpthread/socket/1/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/socket/1 diff --git a/src/regress/lib/libpthread/socket/1/CVS/Root b/src/regress/lib/libpthread/socket/1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/socket/1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/socket/1/Makefile b/src/regress/lib/libpthread/socket/1/Makefile new file mode 100644 index 000000000..d523ed1e2 --- /dev/null +++ b/src/regress/lib/libpthread/socket/1/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:48 art Exp $ + +PROG= socket1 +CFLAGS+= -I${.CURDIR}/../../include + +.include diff --git a/src/regress/lib/libpthread/socket/1/obj b/src/regress/lib/libpthread/socket/1/obj new file mode 120000 index 000000000..ff8f00feb --- /dev/null +++ b/src/regress/lib/libpthread/socket/1/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/socket/1 \ No newline at end of file diff --git a/src/regress/lib/libpthread/socket/1/socket1.c b/src/regress/lib/libpthread/socket/1/socket1.c new file mode 100644 index 000000000..11476fca1 --- /dev/null +++ b/src/regress/lib/libpthread/socket/1/socket1.c @@ -0,0 +1,193 @@ +/* $OpenBSD: socket1.c,v 1.3 2006/01/05 03:47:19 tedu Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* ==== test_sock_1.c ========================================================= + * Copyright (c) 1993 by Chris Provenzano, proven@athena.mit.edu + * + * Description : Test pthread_create() and pthread_exit() calls. + * + * 1.00 93/08/03 proven + * -Started coding this file. + */ + +#include +#include +#include +#include +#include +#include +#include +#include "test.h" +#include +#include +#include + +struct sockaddr_in a_sout; +int success = 0; +pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; +pthread_attr_t attr; + +static int counter = 0; + +static void * +sock_connect(void *arg) +{ + char buf[1024]; + int fd; + + /* Ensure sock_read runs first */ + CHECKr(pthread_mutex_lock(&mutex)); + + a_sout.sin_addr.s_addr = htonl(0x7f000001); /* loopback */ + CHECKe(fd = socket(AF_INET, SOCK_STREAM, 0)); + + ASSERT(++counter == 2); + + /* connect to the socket */ + CHECKe(connect(fd, (struct sockaddr *) &a_sout, sizeof(a_sout))); + CHECKe(close(fd)); + + CHECKr(pthread_mutex_unlock(&mutex)); + + CHECKe(fd = socket(AF_INET, SOCK_STREAM, 0)); + ASSERT(++counter == 3); + CHECKe(connect(fd, (struct sockaddr *) &a_sout, sizeof(a_sout))); + + /* Ensure sock_read runs again */ + pthread_yield(); + sleep(1); + + CHECKr(pthread_mutex_lock(&mutex)); + memset(buf, 0, sizeof(buf)); + CHECKe(read(fd, buf, 1024)); + + ASSERT(++counter == atoi(buf)); + write(fd, "6", 1); + + CHECKe(close(fd)); + success++; + CHECKr(pthread_mutex_unlock(&mutex)); + + return(NULL); +} + +static void * +sock_write(void *arg) +{ + int fd = *(int *)arg; + + CHECKe(write(fd, "5", 1)); + return(NULL); +} + +static void * +sock_accept(void *arg) +{ + pthread_t thread; + struct sockaddr a_sin; + int a_sin_size, a_fd, fd; + short port; + char buf[1024]; + + port = 3276; + a_sout.sin_family = AF_INET; + a_sout.sin_port = htons(port); + a_sout.sin_addr.s_addr = INADDR_ANY; + + CHECKe(a_fd = socket(AF_INET, SOCK_STREAM, 0)); + + while (1) { + if(0 == bind(a_fd, (struct sockaddr *) &a_sout, sizeof(a_sout))) + break; + if (errno == EADDRINUSE) { + a_sout.sin_port = htons((++port)); + continue; + } + DIE(errno, "bind"); + } + CHECKe(listen(a_fd, 2)); + + ASSERT(++counter == 1); + + CHECKr(pthread_create(&thread, &attr, sock_connect, + (void *)0xdeadbeaf)); + + a_sin_size = sizeof(a_sin); + CHECKe(fd = accept(a_fd, &a_sin, &a_sin_size)); + CHECKr(pthread_mutex_lock(&mutex)); + CHECKe(close(fd)); + + ASSERT(++counter == 4); + + a_sin_size = sizeof(a_sin); + CHECKe(fd = accept(a_fd, &a_sin, &a_sin_size)); + CHECKr(pthread_mutex_unlock(&mutex)); + + /* Setup a write thread */ + CHECKr(pthread_create(&thread, &attr, sock_write, &fd)); + memset(buf, 0, sizeof(buf)); + CHECKe(read(fd, buf, 1024)); + + ASSERT(++counter == atoi(buf)); + + CHECKe(close(fd)); + + CHECKr(pthread_mutex_lock(&mutex)); + success++; + CHECKr(pthread_mutex_unlock(&mutex)); + + CHECKr(pthread_join(thread, NULL)); + return(NULL); +} + +int +main(int argc, char *argv[]) +{ + pthread_t thread; + + setbuf(stdout, NULL); + setbuf(stderr, NULL); + + CHECKr(pthread_attr_init(&attr)); +#if 0 + CHECKr(pthread_attr_setschedpolicy(&attr, SCHED_FIFO)); +#endif + CHECKr(pthread_create(&thread, &attr, sock_accept, + (void *)0xdeadbeaf)); + + CHECKr(pthread_join(thread, NULL)); + + ASSERT(success == 2); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/socket/2/CVS/Entries b/src/regress/lib/libpthread/socket/2/CVS/Entries new file mode 100644 index 000000000..2343cb205 --- /dev/null +++ b/src/regress/lib/libpthread/socket/2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:48 2002// +/socket2.c/1.6/Sun Oct 30 23:59:43 2005// +D diff --git a/src/regress/lib/libpthread/socket/2/CVS/Repository b/src/regress/lib/libpthread/socket/2/CVS/Repository new file mode 100644 index 000000000..28d50eda1 --- /dev/null +++ b/src/regress/lib/libpthread/socket/2/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/socket/2 diff --git a/src/regress/lib/libpthread/socket/2/CVS/Root b/src/regress/lib/libpthread/socket/2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/socket/2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/socket/2/Makefile b/src/regress/lib/libpthread/socket/2/Makefile new file mode 100644 index 000000000..9fc7ca397 --- /dev/null +++ b/src/regress/lib/libpthread/socket/2/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:48 art Exp $ + +PROG= socket2 +CFLAGS+= -I${.CURDIR}/../../include +CLEANFILES+= socket2a + +.include diff --git a/src/regress/lib/libpthread/socket/2/obj b/src/regress/lib/libpthread/socket/2/obj new file mode 120000 index 000000000..cadf3295f --- /dev/null +++ b/src/regress/lib/libpthread/socket/2/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/socket/2 \ No newline at end of file diff --git a/src/regress/lib/libpthread/socket/2/socket2.c b/src/regress/lib/libpthread/socket/2/socket2.c new file mode 100644 index 000000000..78ca83da1 --- /dev/null +++ b/src/regress/lib/libpthread/socket/2/socket2.c @@ -0,0 +1,189 @@ +/* $OpenBSD: socket2.c,v 1.6 2005/10/30 23:59:43 fgsch Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* ==== test_sock_1.c ========================================================= + * Copyright (c) 1993 by Chris Provenzano, proven@athena.mit.edu + * + * Description : Test pthread_create() and pthread_exit() calls. + * + * 1.00 93/08/03 proven + * -Started coding this file. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +struct sockaddr_in a_sout; + +#define MESSAGE5 "This should be message #5" +#define MESSAGE6 "This should be message #6" + +static void * +sock_write(void *arg) +{ + int fd = *(int *)arg; + + SET_NAME("writer"); + CHECKe(write(fd, MESSAGE5, sizeof(MESSAGE5))); + return(NULL); +} + +static pthread_mutex_t waiter_mutex = PTHREAD_MUTEX_INITIALIZER; + +static void * +waiter(void *arg) +{ + int status; + pid_t pid; + + SET_NAME("waiter"); + CHECKr(pthread_mutex_lock(&waiter_mutex)); + printf("waiting for child\n"); + CHECKe(pid = wait(&status)); + ASSERT(WIFEXITED(status)); + ASSERT(WEXITSTATUS(status) == 0); + printf("child exited\n"); + CHECKr(pthread_mutex_unlock(&waiter_mutex)); + return (NULL); +} + +static void * +sock_accept(void *arg) +{ + pthread_t thread, wthread; + struct sockaddr a_sin; + int a_sin_size, a_fd, fd; + u_int16_t port; + char buf[1024]; + pid_t pid; + + port = 3276; + a_sout.sin_family = AF_INET; + a_sout.sin_port = htons(port); + a_sout.sin_addr.s_addr = INADDR_ANY; + + CHECKe(a_fd = socket(AF_INET, SOCK_STREAM, 0)); + + while(1) { + if (bind(a_fd, (struct sockaddr *)&a_sout, sizeof(a_sout))==0) + break; + if (errno == EADDRINUSE) { + a_sout.sin_port = htons((++port)); + continue; + } + DIE(errno, "bind"); + } + + printf("listening on port %d\n", port); + + CHECKe(listen(a_fd, 2)); + + printf("%d: This should be message #1\n", getpid()); + + CHECKr(pthread_mutex_init(&waiter_mutex, NULL)); + CHECKr(pthread_mutex_lock(&waiter_mutex)); + CHECKr(pthread_create(&wthread, NULL, waiter, NULL)); + + snprintf(buf, sizeof buf, "%d", port); + + CHECKe(pid = fork()); + switch(pid) { + case 0: + execl("socket2a", "socket2a", "fork okay", buf, (char *)NULL); + DIE(errno, "execl"); + default: + break; + } + CHECKr(pthread_mutex_unlock(&waiter_mutex)); + pthread_yield(); + + a_sin_size = sizeof(a_sin); + CHECKe(fd = accept(a_fd, &a_sin, &a_sin_size)); + CHECKe(close(fd)); + + sleep(1); + + printf("%d: This should be message #4\n", getpid()); + + a_sin_size = sizeof(a_sin); + memset(&a_sin, 0, sizeof(a_sin)); + CHECKe(fd = accept(a_fd, &a_sin, &a_sin_size)); + + /* Setup a write thread */ + + CHECKr(pthread_create(&thread, NULL, sock_write, &fd)); + CHECKe(read(fd, buf, 1024)); + + printf("%d: %s\n", getpid(), buf); /* message 6 */ + + CHECKe(close(fd)); + + if (pthread_mutex_trylock(&waiter_mutex) == EBUSY) { + sleep(2); + if (pthread_mutex_trylock(&waiter_mutex) == EBUSY) { + /* forcibly kill child */ + CHECKe(kill(pid, SIGKILL)); + PANIC("child %d took too long to exit", pid); + } + } + CHECKr(pthread_join(wthread, NULL)); + + return(NULL); +} + +int +main(int argc, char *argv[]) +{ + pthread_t thread; + + setbuf(stdout, NULL); + setbuf(stderr, NULL); + + CHECKr(pthread_create(&thread, NULL, sock_accept, + (void *)0xdeadbeaf)); + + CHECKr(pthread_join(thread, NULL)); + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/socket/2a/CVS/Entries b/src/regress/lib/libpthread/socket/2a/CVS/Entries new file mode 100644 index 000000000..b983879fe --- /dev/null +++ b/src/regress/lib/libpthread/socket/2a/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.5/Wed Oct 9 20:09:15 2002// +/socket2a.c/1.4/Thu Jul 31 21:48:06 2003// +D diff --git a/src/regress/lib/libpthread/socket/2a/CVS/Repository b/src/regress/lib/libpthread/socket/2a/CVS/Repository new file mode 100644 index 000000000..769eb9260 --- /dev/null +++ b/src/regress/lib/libpthread/socket/2a/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/socket/2a diff --git a/src/regress/lib/libpthread/socket/2a/CVS/Root b/src/regress/lib/libpthread/socket/2a/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/socket/2a/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/socket/2a/Makefile b/src/regress/lib/libpthread/socket/2a/Makefile new file mode 100644 index 000000000..10dda9607 --- /dev/null +++ b/src/regress/lib/libpthread/socket/2a/Makefile @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile,v 1.5 2002/10/09 20:09:15 marc Exp $ + +PROG= socket2a +CFLAGS+= -I${.CURDIR}/../../include + +REGRESS_TARGETS=dummy + +# build prog and link into test 2 directory. Code is used by test 2 +# +dummy: ${PROG} + @cd ${.CURDIR}/../2; \ + if test -d ${__objdir} ; then \ + cd ${__objdir} ; \ + fi; \ + ln -sf ${.OBJDIR}/${PROG} + @echo ${PROG} ready + +.include + diff --git a/src/regress/lib/libpthread/socket/2a/obj b/src/regress/lib/libpthread/socket/2a/obj new file mode 120000 index 000000000..fa24ea8af --- /dev/null +++ b/src/regress/lib/libpthread/socket/2a/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/socket/2a \ No newline at end of file diff --git a/src/regress/lib/libpthread/socket/2a/socket2a.c b/src/regress/lib/libpthread/socket/2a/socket2a.c new file mode 100644 index 000000000..4878a2bf1 --- /dev/null +++ b/src/regress/lib/libpthread/socket/2a/socket2a.c @@ -0,0 +1,116 @@ +/* $OpenBSD: socket2a.c,v 1.4 2003/07/31 21:48:06 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* ==== test_sock_1.c ========================================================= + * Copyright (c) 1993 by Chris Provenzano, proven@athena.mit.edu + * + * Description : Test pthread_create() and pthread_exit() calls. + * + * 1.00 93/08/03 proven + * -Started coding this file. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +struct sockaddr_in a_sout; + +#define MESSAGE5 "This should be message #5" +#define MESSAGE6 "This should be message #6" + +static void * +sock_connect(void *arg) +{ + char buf[1024]; + int fd; + short port; + + port = atoi(arg); + a_sout.sin_family = AF_INET; + a_sout.sin_port = htons(port); + a_sout.sin_addr.s_addr = htonl(INADDR_LOOPBACK); /* loopback */ + + CHECKe(fd = socket(AF_INET, SOCK_STREAM, 0)); + + printf("%d: This should be message #2\n", getpid()); + + CHECKe(connect(fd, (struct sockaddr *) &a_sout, sizeof(a_sout))); + CHECKe(close(fd)); + + CHECKe(fd = socket(AF_INET, SOCK_STREAM, 0)); + + printf("%d: This should be message #3\n", getpid()); + + CHECKe(connect(fd, (struct sockaddr *) &a_sout, sizeof(a_sout))); + + /* Ensure sock_read runs again */ + + CHECKe(read(fd, buf, 1024)); + CHECKe(write(fd, MESSAGE6, sizeof(MESSAGE6))); + + printf("%d: %s\n", getpid(), buf); + + CHECKe(close(fd)); + return (NULL); +} + +int +main(int argc, char *argv[]) +{ + pthread_t thread; + + if (argc == 3 && (!strcmp(argv[1], "fork okay"))) { + sleep(1); + setbuf(stdout, NULL); + setbuf(stderr, NULL); + + CHECKr(pthread_create(&thread, NULL, sock_connect, + (void *)argv[2])); + CHECKr(pthread_join(thread, NULL)); + SUCCEED; + } else { + fprintf(stderr, "test_sock_2a needs to be exec'ed from " + "test_sock_2.\n"); + fprintf(stderr, "It is not a stand alone test.\n"); + PANIC("usage"); + } +} diff --git a/src/regress/lib/libpthread/socket/3/CVS/Entries b/src/regress/lib/libpthread/socket/3/CVS/Entries new file mode 100644 index 000000000..6eefca8b1 --- /dev/null +++ b/src/regress/lib/libpthread/socket/3/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Oct 10 00:45:20 2002// +/socket3.c/1.4/Sun Oct 30 23:59:43 2005// +D diff --git a/src/regress/lib/libpthread/socket/3/CVS/Repository b/src/regress/lib/libpthread/socket/3/CVS/Repository new file mode 100644 index 000000000..f936a42ae --- /dev/null +++ b/src/regress/lib/libpthread/socket/3/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/socket/3 diff --git a/src/regress/lib/libpthread/socket/3/CVS/Root b/src/regress/lib/libpthread/socket/3/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/socket/3/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/socket/3/Makefile b/src/regress/lib/libpthread/socket/3/Makefile new file mode 100644 index 000000000..a958deccd --- /dev/null +++ b/src/regress/lib/libpthread/socket/3/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2002/10/10 00:45:20 marc Exp $ + +PROG= socket3 +CFLAGS+= -I${.CURDIR}/../../include + +.include diff --git a/src/regress/lib/libpthread/socket/3/obj b/src/regress/lib/libpthread/socket/3/obj new file mode 120000 index 000000000..079eea3b2 --- /dev/null +++ b/src/regress/lib/libpthread/socket/3/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/socket/3 \ No newline at end of file diff --git a/src/regress/lib/libpthread/socket/3/socket3.c b/src/regress/lib/libpthread/socket/3/socket3.c new file mode 100644 index 000000000..241489b26 --- /dev/null +++ b/src/regress/lib/libpthread/socket/3/socket3.c @@ -0,0 +1,121 @@ +/* $OpenBSD: socket3.c,v 1.4 2005/10/30 23:59:43 fgsch Exp $ */ +/* PUBLIC DOMAIN Oct 2002 */ + +/* Test blocking/non-blocking mode inheritance on accept */ + +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include "test.h" + +/* + * connect to the test port passed in arg, then close the connection + * and return. + */ +static void * +sock_connect(void *arg) +{ + struct sockaddr_in sin; + int port; + int sock; + + SET_NAME("connect"); + port = *(int *)arg; + CHECKe(sock = socket(AF_INET, SOCK_STREAM, 0)); + sin.sin_family = AF_INET; + sin.sin_port = htons(port); + sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + CHECKe(connect(sock, (struct sockaddr *)&sin, sizeof sin)); + CHECKe(close(sock)); + return NULL; +} + +/* + * listen for a connection, accept it using a non-blocking socket, and + * verify that the blocking mode of the socket returned from accept is + * also non-blocking + */ +static void * +sock_accept(void *arg) +{ + pthread_t connect_thread; + struct pollfd fds; + struct sockaddr_in sa; + struct sockaddr accept_sa; + int accept_fd; + int accept_sa_size; + int flags; + int listen_fd; + int port; + + SET_NAME("accept"); + + /* listen for a connection */ + + port = 6543; + memset(&sa, 0, sizeof sa); + sa.sin_family = AF_INET; + sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + sa.sin_port = htons(port); + CHECKe(listen_fd = socket(AF_INET, SOCK_STREAM, 0)); + printf("listen_fd = %d\n", listen_fd); + while (1) { + if (bind(listen_fd, (struct sockaddr *)&sa, sizeof(sa)) == 0) + break; + if (errno == EADDRINUSE) { + sa.sin_port = htons(++port); + continue; + } + DIE(errno, "bind"); + } + CHECKe(listen(listen_fd, 2)); + + /* Create another thread to connect to the listening socket. */ + CHECKr(pthread_create(&connect_thread, NULL, sock_connect, + (void *)&port)); + + /* + * Use poll to check for a pending connection as the socket + * passed to accept will be in non-blocking mode. + */ + fds.fd = listen_fd; + fds.events = POLLIN; + CHECKe(poll(&fds, 1, INFTIM)); + + /* + * set non blocking mode on the listening socket and close stdin + * (fd 0) so the accept will use fd 0 (needed to test boundary + * condition in the pthread accept code). + */ + flags = fcntl(listen_fd, F_GETFL); + CHECKr(fcntl(listen_fd, F_SETFL, flags |= O_NONBLOCK)); + CHECKe(close(STDIN_FILENO)); + accept_sa_size = sizeof accept_sa; + CHECKe(accept_fd = accept(listen_fd, &accept_sa, &accept_sa_size)); + /* verify O_NONBLOCK on the accepted fd */ + flags = fcntl(accept_fd, F_GETFL); + printf("accept_fd = %d, flags = %x\n", accept_fd, flags); + ASSERT(flags & O_NONBLOCK); + CHECKe(close(listen_fd)); + CHECKe(close(accept_fd)); + CHECKr(pthread_join(connect_thread, NULL)); + return NULL; +} + +int +main(int argc, char * argv[]) +{ + pthread_t accept_thread; + + CHECKr(pthread_create(&accept_thread, NULL, sock_accept, NULL)); + CHECKr(pthread_join(accept_thread, NULL)); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/socket/CVS/Entries b/src/regress/lib/libpthread/socket/CVS/Entries new file mode 100644 index 000000000..106c0b7cd --- /dev/null +++ b/src/regress/lib/libpthread/socket/CVS/Entries @@ -0,0 +1,6 @@ +/Makefile/1.3/Thu Oct 10 00:45:20 2002// +/Makefile.inc/1.1.1.1/Wed Aug 15 14:37:10 2001// +D/1//// +D/2//// +D/2a//// +D/3//// diff --git a/src/regress/lib/libpthread/socket/CVS/Repository b/src/regress/lib/libpthread/socket/CVS/Repository new file mode 100644 index 000000000..ae49fd9ec --- /dev/null +++ b/src/regress/lib/libpthread/socket/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/socket diff --git a/src/regress/lib/libpthread/socket/CVS/Root b/src/regress/lib/libpthread/socket/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/socket/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/socket/Makefile b/src/regress/lib/libpthread/socket/Makefile new file mode 100644 index 000000000..5b242a0fa --- /dev/null +++ b/src/regress/lib/libpthread/socket/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.3 2002/10/10 00:45:20 marc Exp $ + +SUBDIR= 1 2a 2 3 + +.include diff --git a/src/regress/lib/libpthread/socket/Makefile.inc b/src/regress/lib/libpthread/socket/Makefile.inc new file mode 100644 index 000000000..dd4abfd15 --- /dev/null +++ b/src/regress/lib/libpthread/socket/Makefile.inc @@ -0,0 +1,3 @@ +# $OpenBSD: Makefile.inc,v 1.1.1.1 2001/08/15 14:37:10 fgsch Exp $ + +.include "${.CURDIR}/../../Makefile.inc" diff --git a/src/regress/lib/libpthread/stdarg/CVS/Entries b/src/regress/lib/libpthread/stdarg/CVS/Entries new file mode 100644 index 000000000..36c8689dd --- /dev/null +++ b/src/regress/lib/libpthread/stdarg/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.4/Mon Sep 2 20:01:43 2002// +/stdarg.c/1.5/Thu Jul 31 21:48:06 2003// +D diff --git a/src/regress/lib/libpthread/stdarg/CVS/Repository b/src/regress/lib/libpthread/stdarg/CVS/Repository new file mode 100644 index 000000000..62eede2d6 --- /dev/null +++ b/src/regress/lib/libpthread/stdarg/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/stdarg diff --git a/src/regress/lib/libpthread/stdarg/CVS/Root b/src/regress/lib/libpthread/stdarg/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/stdarg/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/stdarg/Makefile b/src/regress/lib/libpthread/stdarg/Makefile new file mode 100644 index 000000000..42769f3d6 --- /dev/null +++ b/src/regress/lib/libpthread/stdarg/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.4 2002/09/02 20:01:43 avsm Exp $ + +PROG= stdarg + +CFLAGS+= -I${.CURDIR}/../include + +REGRESS_MAXTIME= 10 + +.include diff --git a/src/regress/lib/libpthread/stdarg/obj b/src/regress/lib/libpthread/stdarg/obj new file mode 120000 index 000000000..a4c4d3d10 --- /dev/null +++ b/src/regress/lib/libpthread/stdarg/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/stdarg \ No newline at end of file diff --git a/src/regress/lib/libpthread/stdarg/stdarg.c b/src/regress/lib/libpthread/stdarg/stdarg.c new file mode 100644 index 000000000..c06beaa18 --- /dev/null +++ b/src/regress/lib/libpthread/stdarg/stdarg.c @@ -0,0 +1,88 @@ +/* $OpenBSD: stdarg.c,v 1.5 2003/07/31 21:48:06 deraadt Exp $ */ +/* David Leonard , 2001. Public Domain. */ + +/* + * Test + */ + +#include +#include +#include +#include +#include "test.h" + +#define EQ(v,exp) _CHECK(v, == exp, NULL) + +int thing; + +static int +test1(char *fmt, ...) +{ + va_list ap; + + char ch; + int i; + int c; + long l; + void *p; + char *ofmt = fmt; + + va_start(ap, fmt); + for (; *fmt; fmt++) + switch ((ch =*fmt)) { + case 'i': + i = va_arg(ap, int); + EQ(i, 1234); + break; + case 'c': + c = va_arg(ap, int); + EQ(c, 'x'); + break; + case 'l': + l = va_arg(ap, long); + EQ(l, 123456789L); + break; + case 'p': + p = va_arg(ap, void *); + EQ(p, &thing); + break; + default: + fprintf(stderr, + "unexpected character 0x%02x `%c' in %s(%p) at %p\n", + ch, ch, ofmt, ofmt, fmt); + ASSERT(0); + } + va_end(ap); + return 9; +} + +static void * +run_test(void *arg) +{ + char *msg = (char *)arg; + int i; + + SET_NAME(msg); + + puts(msg); + for (i = 0; i < 1000000; i++) { + ASSERT(test1("iclp", 1234, 'x', 123456789L, &thing) == 9); + } + printf("ok\n"); + return NULL; +} + +int +main(int argc, char *argv[]) +{ + pthread_t t1, t2; + + printf("trying loop in single-threaded mode:\n"); + run_test("main"); + printf("now running loop with 2 threads:\n"); + CHECKr(pthread_create(&t1, NULL, run_test, "child 1")); + CHECKr(pthread_create(&t2, NULL, run_test, "child 2")); + CHECKr(pthread_join(t1, NULL)); + CHECKr(pthread_join(t2, NULL)); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/stdfiles/CVS/Entries b/src/regress/lib/libpthread/stdfiles/CVS/Entries new file mode 100644 index 000000000..a95c3e1bc --- /dev/null +++ b/src/regress/lib/libpthread/stdfiles/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Feb 4 21:21:00 2003// +/stdfiles.c/1.2/Thu Nov 27 22:51:36 2003// +D diff --git a/src/regress/lib/libpthread/stdfiles/CVS/Repository b/src/regress/lib/libpthread/stdfiles/CVS/Repository new file mode 100644 index 000000000..09f33248c --- /dev/null +++ b/src/regress/lib/libpthread/stdfiles/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/stdfiles diff --git a/src/regress/lib/libpthread/stdfiles/CVS/Root b/src/regress/lib/libpthread/stdfiles/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/stdfiles/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/stdfiles/Makefile b/src/regress/lib/libpthread/stdfiles/Makefile new file mode 100644 index 000000000..e60fed7aa --- /dev/null +++ b/src/regress/lib/libpthread/stdfiles/Makefile @@ -0,0 +1,35 @@ +# $OpenBSD: Makefile,v 1.1 2003/02/04 21:21:00 marc Exp $ +# + +PROG= stdfiles + +PROG2= stdfiles2 +OBJS2= stdfiles.o + +CLEANFILES+= ${PROG2} threads no-threads + +REGRESS_TARGETS=diff + +# run program after linking with pthreads +# +threads: ${PROG} + ./${PROG} > threads + +# build the same program, but not linked with pthreads +# +${PROG2}: ${LIBCRT0} ${OBJS} ${LIBC} ${CRTBEGIN} ${CRTEND} ${DPADD} + ${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} ${OBJS} + +# run the non-pthread version +# +no-threads: ${PROG2} + ./${PROG2} > no-threads + +# compare the thread output to the non-thread output, should be the same +# +diff: threads no-threads + diff -u threads no-threads + +.PHONY: threads no-threads diff + +.include diff --git a/src/regress/lib/libpthread/stdfiles/stdfiles.c b/src/regress/lib/libpthread/stdfiles/stdfiles.c new file mode 100644 index 000000000..7d91109c5 --- /dev/null +++ b/src/regress/lib/libpthread/stdfiles/stdfiles.c @@ -0,0 +1,128 @@ +/* $OpenBSD: stdfiles.c,v 1.2 2003/11/27 22:51:36 marc Exp $ */ +/* $snafu: stdfiles.c,v 1.3 2003/02/03 21:22:26 marc Exp $ */ +/* PUBLIC DOMAIN Oct 2002 Marco S Hyman */ + +#include +#include +#include +#include + +/* + * test what happens to blocking/non-blocking mode on stdout/stderr when + * it is changed on stdin. A comment in the pthreads code implies that + * all three files are linked. Check it out. + */ + +int +main(int argc, char *argv[]) +{ + int dup_stdout; + int stdin_flags; + int stdout_flags; + int dup_flags; + int stderr_flags; + int new_flags; + int new_fd; + + /* dup stdout for the fun of it. */ + dup_stdout = dup(STDOUT_FILENO); + + /* read std in/out/err flags */ + stdin_flags = fcntl(STDIN_FILENO, F_GETFL, 0); + assert(stdin_flags != -1); + stdout_flags = fcntl(STDOUT_FILENO, F_GETFL, 0); + assert(stdout_flags != -1); + dup_flags = fcntl(dup_stdout, F_GETFL, 0); + assert(dup_flags != -1); + stderr_flags = fcntl(STDERR_FILENO, F_GETFL, 0); + assert(stderr_flags != -1); + printf("starting flags: in = %x, out = %x, dup = %x, err = %x\n", + stdin_flags, stdout_flags, dup_flags, stderr_flags); + + /* set stdin to non-blocking mode and see if stdout/stderr change */ + new_flags = stdin_flags | O_NONBLOCK; + printf("forcing stdin to O_NONBLOCK (flags %x)\n", new_flags); + assert(fcntl(STDIN_FILENO, F_SETFL, new_flags) != -1); + + new_flags = fcntl(STDIN_FILENO, F_GETFL, 0); + assert(new_flags != -1); + if (new_flags != stdin_flags) { + printf("stdin flags changed %x -> %x\n", stdin_flags, + new_flags); + stdin_flags = new_flags; + } + + new_flags = fcntl(STDOUT_FILENO, F_GETFL, 0); + assert(new_flags != -1); + if (new_flags != stdout_flags) { + printf("stdout flags changed %x -> %x\n", stdout_flags, + new_flags); + stdout_flags = new_flags; + } + + new_flags = fcntl(dup_stdout, F_GETFL, 0); + assert(new_flags != -1); + if (new_flags != dup_flags) { + printf("dup_stdout flags changed %x -> %x\n", dup_flags, + new_flags); + dup_flags = new_flags; + } + + new_flags = fcntl(STDERR_FILENO, F_GETFL, 0); + assert(new_flags != -1); + if (new_flags != stderr_flags) { + printf("stderr flags changed %x -> %x\n", stderr_flags, + new_flags); + stderr_flags = new_flags; + } + + /* + * Close stderr and open /dev/tty. See what it's flags + * are. Set the file to non blocking. + */ + printf("close stderr and open /dev/tty\n"); + assert(close(STDERR_FILENO) != -1); + new_fd = open("/dev/tty", O_RDWR|O_CREAT, 0666); + assert(new_fd == STDERR_FILENO); + new_flags = fcntl(STDERR_FILENO, F_GETFL, 0); + assert(new_flags != -1); + printf("/dev/tty [STDERR_FILENO] flags are %x\n", new_flags); + stderr_flags = new_flags | O_NONBLOCK; + printf("forcing /dev/tty to O_NONBLOCK (flags %x)\n", stderr_flags); + assert(fcntl(STDERR_FILENO, F_SETFL, stdin_flags) != -1); + + /* now turn off non blocking mode on stdin */ + stdin_flags &= ~O_NONBLOCK; + printf("turning off O_NONBLOCK on stdin (flags %x)\n", stdin_flags); + assert(fcntl(STDIN_FILENO, F_SETFL, stdin_flags) != -1); + + new_flags = fcntl(STDIN_FILENO, F_GETFL, 0); + assert(new_flags != -1); + assert(new_flags == stdin_flags); + + new_flags = fcntl(STDOUT_FILENO, F_GETFL, 0); + assert(new_flags != -1); + if (new_flags != stdout_flags) { + printf("stdout flags changed %x -> %x\n", stdout_flags, + new_flags); + stdout_flags = new_flags; + } + + new_flags = fcntl(dup_stdout, F_GETFL, 0); + assert(new_flags != -1); + if (new_flags != dup_flags) { + printf("dup_stdout flags changed %x -> %x\n", dup_flags, + new_flags); + dup_flags = new_flags; + } + + new_flags = fcntl(STDERR_FILENO, F_GETFL, 0); + assert(new_flags != -1); + if (new_flags != stderr_flags) { + printf("stderr flags changed %x -> %x\n", stderr_flags, + new_flags); + stderr_flags = new_flags; + } + + return 0; +} diff --git a/src/regress/lib/libpthread/stdio/CVS/Entries b/src/regress/lib/libpthread/stdio/CVS/Entries new file mode 100644 index 000000000..9224770b8 --- /dev/null +++ b/src/regress/lib/libpthread/stdio/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:48 2002// +/stdio.c/1.3/Fri Feb 27 19:58:08 2004// +D diff --git a/src/regress/lib/libpthread/stdio/CVS/Repository b/src/regress/lib/libpthread/stdio/CVS/Repository new file mode 100644 index 000000000..21f97d0bd --- /dev/null +++ b/src/regress/lib/libpthread/stdio/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/stdio diff --git a/src/regress/lib/libpthread/stdio/CVS/Root b/src/regress/lib/libpthread/stdio/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/stdio/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/stdio/Makefile b/src/regress/lib/libpthread/stdio/Makefile new file mode 100644 index 000000000..bd0297281 --- /dev/null +++ b/src/regress/lib/libpthread/stdio/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:48 art Exp $ + +PROG= stdio + +.include diff --git a/src/regress/lib/libpthread/stdio/obj b/src/regress/lib/libpthread/stdio/obj new file mode 120000 index 000000000..bcebb0cc7 --- /dev/null +++ b/src/regress/lib/libpthread/stdio/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/stdio \ No newline at end of file diff --git a/src/regress/lib/libpthread/stdio/stdio.c b/src/regress/lib/libpthread/stdio/stdio.c new file mode 100644 index 000000000..1339ca24f --- /dev/null +++ b/src/regress/lib/libpthread/stdio/stdio.c @@ -0,0 +1,113 @@ +/* $OpenBSD: stdio.c,v 1.3 2004/02/27 19:58:08 deraadt Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include "test.h" + +char * base_name = "stdio.c"; +char * dir_name = SRCDIR; +char * fullname; + +/* Test fopen()/ftell()/getc() */ +static void +test_1(void) +{ + struct stat statbuf; + FILE * fp; + int i; + + CHECKe(stat(fullname, &statbuf)); + + CHECKn((fp = fopen(fullname, "r"))); + + /* Get the entire file */ + while ((i = getc(fp)) != EOF) + ; + + ASSERT(ftell(fp) == statbuf.st_size); + + CHECKe(fclose(fp)); +} + +/* Test fopen()/fclose() */ +static void +test_2(void) +{ + FILE *fp1, *fp2; + + CHECKn(fp1 = fopen(fullname, "r")); + CHECKe(fclose(fp1)); + + CHECKn(fp2 = fopen(fullname, "r")); + CHECKe(fclose(fp2)); + + ASSERT(fp1 == fp2); +} + +/* Test sscanf()/sprintf() */ +static void +test_3(void) +{ + char * str = "10 4.53"; + char buf[64]; + double d; + int i; + + ASSERT(sscanf(str, "%d %lf", &i, &d) == 2); + + /* Should have a check */ + snprintf(buf, sizeof buf, "%d %2.2f", i, d); + ASSERT(strcmp(buf, str) == 0); +} + +int +main(int argc, char *argv[]) +{ + + int len = strlen (dir_name) + strlen (base_name) + 2; + + CHECKn(fullname = malloc (len)); + snprintf(fullname, len, "%s/%s", dir_name, base_name); + + test_1(); + test_2(); + test_3(); + + SUCCEED; +} diff --git a/src/regress/lib/libpthread/switch/CVS/Entries b/src/regress/lib/libpthread/switch/CVS/Entries new file mode 100644 index 000000000..150a17636 --- /dev/null +++ b/src/regress/lib/libpthread/switch/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:48 2002// +/switch.c/1.5/Tue Dec 23 20:09:42 2003// +D diff --git a/src/regress/lib/libpthread/switch/CVS/Repository b/src/regress/lib/libpthread/switch/CVS/Repository new file mode 100644 index 000000000..eaf21f01a --- /dev/null +++ b/src/regress/lib/libpthread/switch/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/switch diff --git a/src/regress/lib/libpthread/switch/CVS/Root b/src/regress/lib/libpthread/switch/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/switch/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/switch/Makefile b/src/regress/lib/libpthread/switch/Makefile new file mode 100644 index 000000000..e15cfa97b --- /dev/null +++ b/src/regress/lib/libpthread/switch/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:48 art Exp $ + +PROG= switch + +.include diff --git a/src/regress/lib/libpthread/switch/obj b/src/regress/lib/libpthread/switch/obj new file mode 120000 index 000000000..353d0a761 --- /dev/null +++ b/src/regress/lib/libpthread/switch/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/switch \ No newline at end of file diff --git a/src/regress/lib/libpthread/switch/switch.c b/src/regress/lib/libpthread/switch/switch.c new file mode 100644 index 000000000..5352bde20 --- /dev/null +++ b/src/regress/lib/libpthread/switch/switch.c @@ -0,0 +1,127 @@ +/* $OpenBSD: switch.c,v 1.5 2003/12/23 20:09:42 miod Exp $ */ +/* + * Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors, + * proven@mit.edu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Chris Provenzano, + * the University of California, Berkeley, and contributors. + * 4. Neither the name of Chris Provenzano, the University, nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO, THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* ==== test_switch.c ======================================================== + * Copyright (c) 1993 by Chris Provenzano, proven@athena.mit.edu + * + * Description : Test context switch functionality. + * + * 1.00 93/08/04 proven + * -Started coding this file. + */ + +#include +#include +#include +#include +#include + +#include "test.h" + +const char buf[] = "abcdefghijklmnopqrstuvwxyz"; +char x[sizeof(buf)]; +int fd = 1; + +volatile int ending = 0; + +/* ========================================================================== + * usage(); + */ +static void +usage(void) +{ + extern char *__progname; + printf("usage: %s [-?] [-c count]\n", __progname); + printf("count must be between 2 and 26\n"); + errno = 0; +} + +static void * +new_thread(void *arg) +{ + int i; + + SET_NAME("writer"); + while (!ending) { + CHECKe(write (fd, (char *) arg, 1)); + x[(char *)arg - buf] = 1; + for (i = 0; i < 999999; i += 1) + ; + } + return NULL; +} + +int +main(int argc, char *argv[]) +{ + pthread_t thread; + int ch, count = 4; + long i; + + /* Getopt variables. */ + extern int optind, opterr; + extern char *optarg; + + while ((ch = getopt(argc, argv, "c:?")) != -1) + switch (ch) + { + case 'c': + count = atoi(optarg); + if ((count > 26) || (count < 2)) { + count = 2; + } + break; + case '?': + usage(); + return(OK); + default: + usage(); + return(NOTOK); + } + + /* create the threads */ + for (i = 0; i < count; i++) + CHECKr(pthread_create(&thread, NULL, new_thread, + (void*)(buf+i))); + + /* give all threads a chance to run */ + sleep (2); + + ending = 1; + for (i = 0; i < count; i++) + ASSERT(x[i]); /* make sure each thread ran */ + + CHECKe(write(STDOUT_FILENO, "\n", 1)); + SUCCEED; +} diff --git a/src/regress/lib/libpthread/system/CVS/Entries b/src/regress/lib/libpthread/system/CVS/Entries new file mode 100644 index 000000000..c10d11406 --- /dev/null +++ b/src/regress/lib/libpthread/system/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jan 3 00:43:48 2002// +/system.c/1.2/Sun Nov 11 19:57:43 2001// +D diff --git a/src/regress/lib/libpthread/system/CVS/Repository b/src/regress/lib/libpthread/system/CVS/Repository new file mode 100644 index 000000000..35bfbce14 --- /dev/null +++ b/src/regress/lib/libpthread/system/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libpthread/system diff --git a/src/regress/lib/libpthread/system/CVS/Root b/src/regress/lib/libpthread/system/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libpthread/system/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libpthread/system/Makefile b/src/regress/lib/libpthread/system/Makefile new file mode 100644 index 000000000..f2d82ee80 --- /dev/null +++ b/src/regress/lib/libpthread/system/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/03 00:43:48 art Exp $ + +PROG= system + +.include diff --git a/src/regress/lib/libpthread/system/obj b/src/regress/lib/libpthread/system/obj new file mode 120000 index 000000000..1413acc98 --- /dev/null +++ b/src/regress/lib/libpthread/system/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libpthread/system \ No newline at end of file diff --git a/src/regress/lib/libpthread/system/system.c b/src/regress/lib/libpthread/system/system.c new file mode 100644 index 000000000..cf9a8defa --- /dev/null +++ b/src/regress/lib/libpthread/system/system.c @@ -0,0 +1,19 @@ +/* $OpenBSD: system.c,v 1.2 2001/11/11 19:57:43 marc Exp $ */ +/* + * Placed in the PUBLIC DOMAIN + */ + +/* + * system checks the threads system interface and that waitpid/wait4 + * works correctly. + */ + +#include +#include "test.h" + +int +main(int argc, char **argv) +{ + ASSERT(system("ls") == 0); + SUCCEED; +} diff --git a/src/regress/lib/libskey/CVS/Entries b/src/regress/lib/libskey/CVS/Entries new file mode 100644 index 000000000..ea8a6f7b6 --- /dev/null +++ b/src/regress/lib/libskey/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Mon Jun 16 13:35:33 2003// +/skeytest.c/1.3/Thu Jun 26 05:42:05 2008// +D diff --git a/src/regress/lib/libskey/CVS/Repository b/src/regress/lib/libskey/CVS/Repository new file mode 100644 index 000000000..e9a299dc6 --- /dev/null +++ b/src/regress/lib/libskey/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libskey diff --git a/src/regress/lib/libskey/CVS/Root b/src/regress/lib/libskey/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libskey/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libskey/Makefile b/src/regress/lib/libskey/Makefile new file mode 100644 index 000000000..053f2f358 --- /dev/null +++ b/src/regress/lib/libskey/Makefile @@ -0,0 +1,15 @@ +# $OpenBSD: Makefile,v 1.2 2003/06/16 13:35:33 mickey Exp $ + +PROG= skeytest +CFLAGS+=-Wall +LDADD+= -lskey +DPADD+= ${LIBSKEY} + +skey-regress: skeytest + ./${PROG} + +REGRESS_TARGETS=skey-regress +.PHONY: ${REGRESS_TARGETS} + +.include + diff --git a/src/regress/lib/libskey/obj b/src/regress/lib/libskey/obj new file mode 120000 index 000000000..a3a3a3035 --- /dev/null +++ b/src/regress/lib/libskey/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libskey \ No newline at end of file diff --git a/src/regress/lib/libskey/skeytest.c b/src/regress/lib/libskey/skeytest.c new file mode 100644 index 000000000..3da99cd42 --- /dev/null +++ b/src/regress/lib/libskey/skeytest.c @@ -0,0 +1,111 @@ +/* $OpenBSD: skeytest.c,v 1.3 2008/06/26 05:42:05 ray Exp $ */ +/* $NetBSD: skeytest.c,v 1.3 2002/02/21 07:38:18 itojun Exp $ */ + +/*- + * Copyright (c) 2000 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* This is a regression test for the S/Key implementation + against the data set from Appendix C of RFC2289 */ + +#include +#include +#include "skey.h" + +struct regRes { + char *algo, *zero, *one, *nine; + }; + +struct regPass { + char *passphrase, *seed; + struct regRes res[4]; + } regPass[] = { + { "This is a test.", "TeSt", { + { "md4", "D1854218EBBB0B51", "63473EF01CD0B444", "C5E612776E6C237A" }, + { "md5", "9E876134D90499DD", "7965E05436F5029F", "50FE1962C4965880" }, + { "sha1","BB9E6AE1979D8FF4", "63D936639734385B", "87FEC7768B73CCF9" }, + { NULL } } }, + { "AbCdEfGhIjK", "alpha1", { + { "md4", "50076F47EB1ADE4E", "65D20D1949B5F7AB", "D150C82CCE6F62D1" }, + { "md5", "87066DD9644BF206", "7CD34C1040ADD14B", "5AA37A81F212146C" }, + { "sha1","AD85F658EBE383C9", "D07CE229B5CF119B", "27BC71035AAF3DC6" }, + { NULL } } }, + { "OTP's are good", "correct", { + { "md4", "849C79D4F6F55388", "8C0992FB250847B1", "3F3BF4B4145FD74B" }, + { "md5", "F205753943DE4CF9", "DDCDAC956F234937", "B203E28FA525BE47" }, + { "sha1","D51F3E99BF8E6F0B", "82AEB52D943774E4", "4F296A74FE1567EC" }, + { NULL } } }, + { NULL } + }; + +int +main(int argc, char *argv[]) +{ + char data[16], prn[64]; + struct regPass *rp; + int i = 0; + int errors = 0; + int j; + + for(rp = regPass; rp->passphrase; rp++) { + struct regRes *rr; + + i++; + for(rr = rp->res; rr->algo; rr++) { + skey_set_algorithm(rr->algo); + + keycrunch(data, rp->seed, rp->passphrase); + btoa8(prn, data); + + if(strcasecmp(prn, rr->zero)) { + errors++; + printf("Set %d, round 0, %s: Expected %s and got %s\n", + i, rr->algo, rr->zero, prn); + } + + f(data); + btoa8(prn, data); + + if(strcasecmp(prn, rr->one)) { + errors++; + printf("Set %d, round 1, %s: Expected %s and got %s\n", + i, rr->algo, rr->one, prn); + } + + for(j=1; j<99; j++) + f(data); + btoa8(prn, data); + + if(strcasecmp(prn, rr->nine)) { + errors++; + printf("Set %d, round 99, %s: Expected %s and got %s\n", + i, rr->algo, rr->nine, prn); + } + } + } + + printf("%d errors\n", errors); + return(errors ? 1 : 0); +} diff --git a/src/regress/lib/libsndio/CVS/Entries b/src/regress/lib/libsndio/CVS/Entries new file mode 100644 index 000000000..2fdebb855 --- /dev/null +++ b/src/regress/lib/libsndio/CVS/Entries @@ -0,0 +1,6 @@ +/Makefile/1.2/Tue Dec 9 23:10:37 2008// +D/cap//// +D/fd//// +D/play//// +D/rec//// +D/vol//// diff --git a/src/regress/lib/libsndio/CVS/Repository b/src/regress/lib/libsndio/CVS/Repository new file mode 100644 index 000000000..98e704d73 --- /dev/null +++ b/src/regress/lib/libsndio/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libsndio diff --git a/src/regress/lib/libsndio/CVS/Root b/src/regress/lib/libsndio/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libsndio/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libsndio/Makefile b/src/regress/lib/libsndio/Makefile new file mode 100644 index 000000000..3ba9858e1 --- /dev/null +++ b/src/regress/lib/libsndio/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2008/12/09 23:10:37 ratchov Exp $ + +SUBDIR+= play rec fd cap vol + +.include diff --git a/src/regress/lib/libsndio/cap/CVS/Entries b/src/regress/lib/libsndio/cap/CVS/Entries new file mode 100644 index 000000000..baead17d0 --- /dev/null +++ b/src/regress/lib/libsndio/cap/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Oct 27 00:26:33 2008// +/cap.c/1.1/Mon Oct 27 00:26:33 2008// +D diff --git a/src/regress/lib/libsndio/cap/CVS/Repository b/src/regress/lib/libsndio/cap/CVS/Repository new file mode 100644 index 000000000..f5417b293 --- /dev/null +++ b/src/regress/lib/libsndio/cap/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libsndio/cap diff --git a/src/regress/lib/libsndio/cap/CVS/Root b/src/regress/lib/libsndio/cap/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libsndio/cap/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libsndio/cap/Makefile b/src/regress/lib/libsndio/cap/Makefile new file mode 100644 index 000000000..141d85936 --- /dev/null +++ b/src/regress/lib/libsndio/cap/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2008/10/27 00:26:33 ratchov Exp $ +PROG= cap +LDADD= -lsndio +REGRESS_SKIP= + +.include diff --git a/src/regress/lib/libsndio/cap/cap.c b/src/regress/lib/libsndio/cap/cap.c new file mode 100644 index 000000000..3933bcd4d --- /dev/null +++ b/src/regress/lib/libsndio/cap/cap.c @@ -0,0 +1,97 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +struct sio_par par; +struct sio_cap cap; + +void +pr_enc(struct sio_enc *enc) +{ + fprintf(stderr, "%s%d", enc->sig ? "s" : "u", enc->bits); + if (enc->bps > 1) + fprintf(stderr, "%s", enc->le ? "le" : "be"); + if (enc->bps != SIO_BPS(enc->bits)) + fprintf(stderr, "%d%s", enc->bps, enc->msb ? "msb" : "lsb"); +} + +void +cap_pr(struct sio_cap *cap) +{ + unsigned n, i; + + for (n = 0; n < cap->nconf; n++) { + fprintf(stderr, "config %d\n", n); + fprintf(stderr, "\tenc:"); + for (i = 0; i < SIO_NENC; i++) { + if (cap->confs[n].enc & (1 << i)) { + fprintf(stderr, " "); + pr_enc(&cap->enc[i]); + } + } + fprintf(stderr, "\n\tpchan:"); + for (i = 0; i < SIO_NCHAN; i++) { + if (cap->confs[n].pchan & (1 << i)) + fprintf(stderr, " %d", cap->pchan[i]); + } + fprintf(stderr, "\n\trchan:"); + for (i = 0; i < SIO_NCHAN; i++) { + if (cap->confs[n].rchan & (1 << i)) + fprintf(stderr, " %d", cap->rchan[i]); + } + fprintf(stderr, "\n\trate:"); + for (i = 0; i < SIO_NRATE; i++) { + if (cap->confs[n].rate & (1 << i)) + fprintf(stderr, " %d", cap->rate[i]); + } + fprintf(stderr, "\n"); + } +} + +void +usage(void) { + fprintf(stderr, "usage: cap [-pr]\n"); +} + +int +main(int argc, char **argv) { + int ch; + unsigned mode = SIO_PLAY | SIO_REC; + struct sio_hdl *hdl; + + while ((ch = getopt(argc, argv, "pr")) != -1) { + switch(ch) { + case 'p': + mode &= ~SIO_REC; + break; + case 'r': + mode &= ~SIO_PLAY; + break; + default: + usage(); + exit(1); + break; + } + } + if (mode == 0) { + fprintf(stderr, "-p and -r flags are mutualy exclusive\n"); + exit(1); + } + hdl = sio_open(NULL, mode, 0); + if (hdl == NULL) { + fprintf(stderr, "sio_open() failed\n"); + exit(1); + } + if (!sio_getcap(hdl, &cap)) { + fprintf(stderr, "sio_setcap() failed\n"); + exit(1); + } + cap_pr(&cap); + sio_close(hdl); + return 0; +} diff --git a/src/regress/lib/libsndio/fd/CVS/Entries b/src/regress/lib/libsndio/fd/CVS/Entries new file mode 100644 index 000000000..b2c9cf019 --- /dev/null +++ b/src/regress/lib/libsndio/fd/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Oct 27 00:26:33 2008// +/fd.c/1.2/Wed Dec 17 07:19:27 2008// +D diff --git a/src/regress/lib/libsndio/fd/CVS/Repository b/src/regress/lib/libsndio/fd/CVS/Repository new file mode 100644 index 000000000..8d1c6b976 --- /dev/null +++ b/src/regress/lib/libsndio/fd/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libsndio/fd diff --git a/src/regress/lib/libsndio/fd/CVS/Root b/src/regress/lib/libsndio/fd/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libsndio/fd/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libsndio/fd/Makefile b/src/regress/lib/libsndio/fd/Makefile new file mode 100644 index 000000000..431850655 --- /dev/null +++ b/src/regress/lib/libsndio/fd/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2008/10/27 00:26:33 ratchov Exp $ +PROG= fd +LDADD= -lsndio +REGRESS_SKIP= + +.include diff --git a/src/regress/lib/libsndio/fd/fd.c b/src/regress/lib/libsndio/fd/fd.c new file mode 100644 index 000000000..d25f32acd --- /dev/null +++ b/src/regress/lib/libsndio/fd/fd.c @@ -0,0 +1,363 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct buf { /* simple circular fifo */ + unsigned start; /* first used byte */ + unsigned used; /* number of used bytes */ +#define BUF_LEN (240 * 0x1000) /* i/o buffer size */ + unsigned char data[BUF_LEN]; +}; + +char *xstr[] = SIO_XSTRINGS; +struct sio_par par; +struct buf playbuf, recbuf; + +long long pos = 0; +int plat = 0, rlat = 0; + +void +cb(void *addr, int delta) +{ + pos += delta; + fprintf(stderr, "cb: delta = %+7d, pos = %+7lld, " + "plat = %+7d, rlat = %+7d\n", + delta, pos, plat, rlat); + plat -= delta; + rlat += delta; +} + +/* + * read buffer contents from a file without blocking + */ +void +buf_read(struct buf *buf, int fd) { + unsigned count, end, avail; + int n; + + for (;;) { + avail = BUF_LEN - buf->used; + if (avail == 0) + break; + end = buf->start + buf->used; + if (end >= BUF_LEN) + end -= BUF_LEN; + count = BUF_LEN - end; + if (count > avail) + count = avail; + n = read(fd, buf->data + end, count); + if (n < 0) { + perror("buf_read: read"); + exit(1); + } + if (n == 0) { + bzero(buf->data + end, count); + n = count; + } + buf->used += n; + } +} + +/* + * write buffer contents to file, without blocking + */ +void +buf_write(struct buf *buf, int fd) +{ + unsigned count; + int n; + + while (buf->used) { + count = BUF_LEN - buf->start; + if (count > buf->used) + count = buf->used; + n = write(fd, buf->data + buf->start, count); + if (n < 0) { + perror("buf_write: write"); + exit(1); + } + buf->used -= n; + buf->start += n; + if (buf->start >= BUF_LEN) + buf->start -= BUF_LEN; + } +} + +/* + * read buffer contents from a file without blocking + */ +unsigned +buf_rec(struct buf *buf, struct sio_hdl *hdl) +{ + unsigned count, end, avail, done = 0; + int bpf = par.rchan * par.bps; + int n; + + for (;;) { + avail = BUF_LEN - buf->used; + if (avail == 0) + break; + end = buf->start + buf->used; + if (end >= BUF_LEN) + end -= BUF_LEN; + count = BUF_LEN - end; + if (count > avail) + count = avail; + n = sio_read(hdl, buf->data + end, count); + if (n == 0) { + if (sio_eof(hdl)) { + fprintf(stderr, "sio_read() failed\n"); + exit(1); + } + break; + } + if (n % bpf) { + fprintf(stderr, "rec: bad align: %u bytes\n", n); + exit(1); + } + rlat -= n / bpf; + buf->used += n; + done += n; + } + return done; +} + +/* + * write buffer contents to file, without blocking + */ +unsigned +buf_play(struct buf *buf, struct sio_hdl *hdl) +{ + unsigned count, done = 0; + int bpf = par.pchan * par.bps; + int n; + + while (buf->used) { + count = BUF_LEN - buf->start; + if (count > buf->used) + count = buf->used; + /* try to confuse the server */ + //count = 1 + (rand() % count); + n = sio_write(hdl, buf->data + buf->start, count); + if (n == 0) { + if (sio_eof(hdl)) { + fprintf(stderr, "sio_write() failed\n"); + exit(1); + } + break; + } + if (n % bpf) { + fprintf(stderr, "play: bad align: %u bytes\n", n); + exit(1); + } + plat += n / bpf; + //write(STDOUT_FILENO, buf->data + buf->start, n); + buf->used -= n; + buf->start += n; + if (buf->start >= BUF_LEN) + buf->start -= BUF_LEN; + done += n; + } + return done; +} + +void +usage(void) { + fprintf(stderr, + "usage: fd [-v] [-r rate] [-c ichan] [-C ochan] [-e enc] " + "[-i file] [-o file]\n"); +} + +int +main(int argc, char **argv) { + int ch, recfd, playfd, events, revents; + char *recpath, *playpath; + struct sio_hdl *hdl; + struct pollfd pfd; + struct timeval tv, otv, ntv; + unsigned mode, done; + + recpath = NULL; + playpath = NULL; + + /* + * defaults parameters + */ + sio_initpar(&par); + par.sig = 1; + par.bits = 16; + par.pchan = par.rchan = 2; + par.rate = 44100; + + while ((ch = getopt(argc, argv, "r:c:C:e:i:o:b:x:")) != -1) { + switch(ch) { + case 'r': + if (sscanf(optarg, "%u", &par.rate) != 1) { + fprintf(stderr, "%s: bad rate\n", optarg); + exit(1); + } + break; + case 'c': + if (sscanf(optarg, "%u", &par.pchan) != 1) { + fprintf(stderr, "%s: bad play chans\n", optarg); + exit(1); + } + break; + case 'C': + if (sscanf(optarg, "%u", &par.rchan) != 1) { + fprintf(stderr, "%s: bad rec chans\n", optarg); + exit(1); + } + break; + case 'e': + if (!sio_strtoenc(&par, optarg)) { + fprintf(stderr, "%s: unknown encoding\n", optarg); + exit(1); + } + break; + case 'o': + recpath = optarg; + break; + case 'i': + playpath = optarg; + break; + case 'b': + if (sscanf(optarg, "%u", &par.appbufsz) != 1) { + fprintf(stderr, "%s: bad buf size\n", optarg); + exit(1); + } + break; + case 'x': + for (par.xrun = 0;; par.xrun++) { + if (par.xrun == sizeof(xstr) / sizeof(char *)) { + fprintf(stderr, + "%s: bad xrun mode\n", optarg); + exit(1); + } + if (strcmp(xstr[par.xrun], optarg) == 0) + break; + } + break; + default: + usage(); + exit(1); + break; + } + } + mode = 0; + if (recpath) + mode |= SIO_REC; + if (playpath) + mode |= SIO_PLAY; + if (mode == 0) { + fprintf(stderr, "-i or -o option required\n"); + exit(0); + } + hdl = sio_open(NULL, mode, 1); + if (hdl == NULL) { + fprintf(stderr, "sio_open() failed\n"); + exit(1); + } + sio_onmove(hdl, cb, NULL); + if (!sio_setpar(hdl, &par)) { + fprintf(stderr, "sio_setpar() failed\n"); + exit(1); + } + if (!sio_getpar(hdl, &par)) { + fprintf(stderr, "sio_setpar() failed\n"); + exit(1); + } + fprintf(stderr, "using %u%%%u frame buffer\n", par.bufsz, par.round); + if (!sio_start(hdl)) { + fprintf(stderr, "sio_start() failed\n"); + exit(1); + } + + events = 0; + if (recpath > 0) { + recfd = open(recpath, O_CREAT | O_WRONLY | O_TRUNC, 0666); + if (recfd < 0) { + perror(recpath); + exit(1); + } + events |= POLLIN; + } + if (playpath > 0) { + playfd = open(playpath, O_RDONLY, 0); + if (playfd < 0) { + perror(playpath); + exit(1); + } + events |= POLLOUT; + buf_read(&playbuf, playfd); + buf_play(&playbuf, hdl); + } + gettimeofday(&otv, NULL); + for (;;) { + gettimeofday(&ntv, NULL); + timersub(&ntv, &otv, &tv); +#if 0 /* trigger underrun */ + if (playpath && (tv.tv_sec % 10) < 7) { + events |= POLLOUT; + } else + events &= ~POLLOUT; +#endif +#if 0 /* trigger overrun */ + if (recpath && (tv.tv_sec % 10) < 7) { + events |= POLLIN; + } else + events &= ~POLLIN; +#endif + //fprintf(stderr, "%ld.%06ld: polling for %d\n", + // tv.tv_sec, tv.tv_usec, events); + sio_pollfd(hdl, &pfd, events); + while (poll(&pfd, 1, 1000) < 0) { + if (errno == EINTR) + continue; + perror("poll"); + exit(1); + } + revents = sio_revents(hdl, &pfd); + gettimeofday(&ntv, NULL); + timersub(&ntv, &otv, &tv); + //fprintf(stderr, "%ld.%06ld: got %d\n", + // tv.tv_sec, tv.tv_usec, revents); + if (revents & POLLHUP) { + fprintf(stderr, "device hangup\n"); + exit(0); + } + if (revents & POLLIN) { + done = buf_rec(&recbuf, hdl); + buf_write(&recbuf, recfd); + //fprintf(stderr, "%ld.%06ld: recored %u\n", + // tv.tv_sec, tv.tv_usec, done); + } + if (revents & POLLOUT) { + done = buf_play(&playbuf, hdl); + buf_read(&playbuf, playfd); + } +#if 0 + if (pos / par.rate > 2) { + if (!sio_stop(hdl)) { + fprintf(stderr, "sio_stop failed\n"); + exit(1); + } + pos = plat = rlat = 0; + fprintf(stderr, "pausing...\n"); + sleep(1); + if (!sio_start(hdl)) { + fprintf(stderr, "sio_start failed\n"); + exit(1); + } + } +#endif + } + sio_close(hdl); + return 0; +} diff --git a/src/regress/lib/libsndio/play/CVS/Entries b/src/regress/lib/libsndio/play/CVS/Entries new file mode 100644 index 000000000..6e59689c0 --- /dev/null +++ b/src/regress/lib/libsndio/play/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Oct 27 00:26:33 2008// +/play.c/1.2/Wed Dec 17 07:19:27 2008// +D diff --git a/src/regress/lib/libsndio/play/CVS/Repository b/src/regress/lib/libsndio/play/CVS/Repository new file mode 100644 index 000000000..5a1c86c07 --- /dev/null +++ b/src/regress/lib/libsndio/play/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libsndio/play diff --git a/src/regress/lib/libsndio/play/CVS/Root b/src/regress/lib/libsndio/play/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libsndio/play/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libsndio/play/Makefile b/src/regress/lib/libsndio/play/Makefile new file mode 100644 index 000000000..5e2f2020e --- /dev/null +++ b/src/regress/lib/libsndio/play/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2008/10/27 00:26:33 ratchov Exp $ +PROG= play +LDADD= -lsndio +REGRESS_SKIP= + +.include diff --git a/src/regress/lib/libsndio/play/play.c b/src/regress/lib/libsndio/play/play.c new file mode 100644 index 000000000..6d85508da --- /dev/null +++ b/src/regress/lib/libsndio/play/play.c @@ -0,0 +1,133 @@ +#include +#include +#include +#include +#include +#include +#include +#include "sndio.h" + +#define BUFSZ 0x100 +unsigned char buf[BUFSZ]; +struct sio_par par; +char *xstr[] = SIO_XSTRINGS; + +long long realpos = 0, playpos = 0; + +void +cb(void *addr, int delta) +{ + int bytes = delta * (int)(par.bps * par.pchan); + + realpos += bytes; + + fprintf(stderr, + "cb: bytes = %+7d, latency = %+7lld, " + "realpos = %+7lld, bufused = %+7lld\n", + bytes, playpos - realpos, + realpos, (realpos < 0) ? playpos : playpos - realpos); +} + +void +usage(void) { + fprintf(stderr, "usage: play [-r rate] [-c nchan] [-e enc]\n"); +} + +int +main(int argc, char **argv) { + int ch; + struct sio_hdl *hdl; + ssize_t n, len; + + /* + * defaults parameters + */ + sio_initpar(&par); + par.sig = 1; + par.bits = 16; + par.pchan = 2; + par.rate = 44100; + + while ((ch = getopt(argc, argv, "r:c:e:b:x:")) != -1) { + switch(ch) { + case 'r': + if (sscanf(optarg, "%u", &par.rate) != 1) { + fprintf(stderr, "%s: bad rate\n", optarg); + exit(1); + } + break; + case 'c': + if (sscanf(optarg, "%u", &par.pchan) != 1) { + fprintf(stderr, "%s: bad channels\n", optarg); + exit(1); + } + break; + case 'e': + if (!sio_strtoenc(&par, optarg)) { + fprintf(stderr, "%s: bad encoding\n", optarg); + exit(1); + } + break; + case 'b': + if (sscanf(optarg, "%u", &par.appbufsz) != 1) { + fprintf(stderr, "%s: bad buf size\n", optarg); + exit(1); + } + break; + case 'x': + for (par.xrun = 0;; par.xrun++) { + if (par.xrun == sizeof(xstr) / sizeof(char *)) { + fprintf(stderr, + "%s: bad xrun mode\n", optarg); + exit(1); + } + if (strcmp(xstr[par.xrun], optarg) == 0) + break; + } + break; + default: + usage(); + exit(1); + break; + } + } + + hdl = sio_open(NULL, SIO_PLAY, 0); + if (hdl == NULL) { + fprintf(stderr, "sio_open() failed\n"); + exit(1); + } + sio_onmove(hdl, cb, NULL); + if (!sio_setpar(hdl, &par)) { + fprintf(stderr, "sio_setpar() failed\n"); + exit(1); + } + if (!sio_getpar(hdl, &par)) { + fprintf(stderr, "sio_getpar() failed\n"); + exit(1); + } + if (!sio_start(hdl)) { + fprintf(stderr, "sio_start() failed\n"); + exit(1); + } + fprintf(stderr, "using %u bytes per buffer, rounding to %u\n", + par.bufsz * par.bps * par.pchan, + par.round * par.bps * par.pchan); + for (;;) { + len = read(STDIN_FILENO, buf, BUFSZ); + if (len < 0) { + perror("stdin"); + exit(1); + } + if (len == 0) + break; + n = sio_write(hdl, buf, len); + if (n == 0) { + fprintf(stderr, "sio_write: failed\n"); + exit(1); + } + playpos += n; + } + sio_close(hdl); + return 0; +} diff --git a/src/regress/lib/libsndio/rec/CVS/Entries b/src/regress/lib/libsndio/rec/CVS/Entries new file mode 100644 index 000000000..953735e93 --- /dev/null +++ b/src/regress/lib/libsndio/rec/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Oct 27 00:26:33 2008// +/rec.c/1.2/Wed Dec 17 07:19:27 2008// +D diff --git a/src/regress/lib/libsndio/rec/CVS/Repository b/src/regress/lib/libsndio/rec/CVS/Repository new file mode 100644 index 000000000..5790b2200 --- /dev/null +++ b/src/regress/lib/libsndio/rec/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libsndio/rec diff --git a/src/regress/lib/libsndio/rec/CVS/Root b/src/regress/lib/libsndio/rec/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libsndio/rec/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libsndio/rec/Makefile b/src/regress/lib/libsndio/rec/Makefile new file mode 100644 index 000000000..773e9789f --- /dev/null +++ b/src/regress/lib/libsndio/rec/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2008/10/27 00:26:33 ratchov Exp $ +PROG= rec +LDADD= -lsndio +REGRESS_SKIP= + +.include diff --git a/src/regress/lib/libsndio/rec/rec.c b/src/regress/lib/libsndio/rec/rec.c new file mode 100644 index 000000000..f5c908077 --- /dev/null +++ b/src/regress/lib/libsndio/rec/rec.c @@ -0,0 +1,118 @@ +#include +#include +#include +#include +#include +#include +#include +#include "sndio.h" + +#define BUFSZ 0x1000 +unsigned char buf[BUFSZ]; +struct sio_par par; +char *xstr[] = SIO_XSTRINGS; + +long long pos = 0; +int rlat = 0; + +void +cb(void *addr, int delta) +{ + pos += delta; + rlat += delta; + fprintf(stderr, + "cb: delta = %+7d, rlat = %+7d, pos = %+7lld\n", + delta, rlat, pos); +} + +void +usage(void) { + fprintf(stderr, "usage: rec [-r rate] [-c nchan] [-e enc]\n"); +} + +int +main(int argc, char **argv) { + int ch; + struct sio_hdl *hdl; + ssize_t n; + + /* + * defaults parameters + */ + sio_initpar(&par); + par.sig = 1; + par.bits = 16; + par.rchan = 2; + par.rate = 44100; + + while ((ch = getopt(argc, argv, "r:c:e:b:x:")) != -1) { + switch(ch) { + case 'r': + if (sscanf(optarg, "%u", &par.rate) != 1) { + fprintf(stderr, "%s: bad rate\n", optarg); + exit(1); + } + break; + case 'c': + if (sscanf(optarg, "%u", &par.rchan) != 1) { + fprintf(stderr, "%s: channels number\n", optarg); + exit(1); + } + break; + case 'e': + if (!sio_strtoenc(&par, optarg)) { + fprintf(stderr, "%s: unknown encoding\n", optarg); + exit(1); + } + break; + case 'x': + for (par.xrun = 0;; par.xrun++) { + if (par.xrun == sizeof(xstr) / sizeof(char *)) { + fprintf(stderr, + "%s: bad xrun mode\n", optarg); + exit(1); + } + if (strcmp(xstr[par.xrun], optarg) == 0) + break; + } + break; + default: + usage(); + exit(1); + break; + } + } + + hdl = sio_open(NULL, SIO_REC, 0); + if (hdl == NULL) { + fprintf(stderr, "sio_open() failed\n"); + exit(1); + } + sio_onmove(hdl, cb, NULL); + if (!sio_setpar(hdl, &par)) { + fprintf(stderr, "sio_setpar() failed\n"); + exit(1); + } + if (!sio_getpar(hdl, &par)) { + fprintf(stderr, "sio_getpar() failed\n"); + exit(1); + } + if (!sio_start(hdl)) { + fprintf(stderr, "sio_start() failed\n"); + exit(1); + } + for (;;) { + n = sio_read(hdl, buf, BUFSZ); + if (n == 0) { + fprintf(stderr, "sio_write: failed\n"); + exit(1); + } + rlat -= n / (int)(par.bps * par.rchan); + if (write(STDOUT_FILENO, buf, n) < 0) { + perror("stdout"); + exit(1); + } + } + sio_close(hdl); + return 0; +} diff --git a/src/regress/lib/libsndio/vol/CVS/Entries b/src/regress/lib/libsndio/vol/CVS/Entries new file mode 100644 index 000000000..e58f41c8d --- /dev/null +++ b/src/regress/lib/libsndio/vol/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Nov 11 19:39:35 2008// +/vol.c/1.1/Tue Nov 11 19:39:35 2008// +D diff --git a/src/regress/lib/libsndio/vol/CVS/Repository b/src/regress/lib/libsndio/vol/CVS/Repository new file mode 100644 index 000000000..34a72729c --- /dev/null +++ b/src/regress/lib/libsndio/vol/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libsndio/vol diff --git a/src/regress/lib/libsndio/vol/CVS/Root b/src/regress/lib/libsndio/vol/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libsndio/vol/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libsndio/vol/Makefile b/src/regress/lib/libsndio/vol/Makefile new file mode 100644 index 000000000..7e1f32bec --- /dev/null +++ b/src/regress/lib/libsndio/vol/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2008/11/11 19:39:35 ratchov Exp $ +PROG= vol +LDADD= -lsndio +REGRESS_SKIP= + +.include diff --git a/src/regress/lib/libsndio/vol/vol.c b/src/regress/lib/libsndio/vol/vol.c new file mode 100644 index 000000000..2ee08e35c --- /dev/null +++ b/src/regress/lib/libsndio/vol/vol.c @@ -0,0 +1,157 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define BUFSZ 0x100 +unsigned char buf[BUFSZ]; +struct sio_par par; +unsigned vol = 0xdeadbeef; + +void +usage(void) { + fprintf(stderr, "usage: vol [-r rate] [-c nchan] [-e enc]\n"); +} + +void +onvol(void *addr, unsigned val) +{ + vol = val; + fprintf(stderr, "volume set to %u\n", vol); +} + +int +main(int argc, char **argv) { + int ch; + int tty; + struct sio_hdl *hdl; + struct termios tio; + struct pollfd pfd[2]; + char cmd; + ssize_t n, len; + + /* + * defaults parameters + */ + sio_initpar(&par); + par.sig = 1; + par.bits = 16; + par.pchan = 2; + par.rate = 44100; + + if (isatty(STDIN_FILENO)) { + fprintf(stderr, "stdin can't be a tty\n"); + exit(1); + } + tty = open("/dev/tty", O_RDWR); + if (tty < 0) { + perror("/dev/tty"); + exit(1); + } + if (tcgetattr(tty, &tio) < 0) { + perror("tcsetattr"); + exit(1); + } + tio.c_lflag &= ~ICANON; + tio.c_lflag &= ~ECHO; + tio.c_cc[VMIN] = 1; + tio.c_cc[VTIME] = 0; + if (tcsetattr(tty, TCSAFLUSH, &tio) < 0) { + perror("tcsetattr"); + exit(1); + } + + while ((ch = getopt(argc, argv, "r:c:e:b:x:")) != -1) { + switch(ch) { + case 'r': + if (sscanf(optarg, "%u", &par.rate) != 1) { + fprintf(stderr, "%s: bad rate\n", optarg); + exit(1); + } + break; + case 'c': + if (sscanf(optarg, "%u", &par.pchan) != 1) { + fprintf(stderr, "%s: bad channels\n", optarg); + exit(1); + } + break; + case 'e': + if (!sio_strtoenc(&par, optarg)) { + fprintf(stderr, "%s: bad encoding\n", optarg); + exit(1); + } + break; + default: + usage(); + exit(1); + break; + } + } + + hdl = sio_open(NULL, SIO_PLAY, 0); + if (hdl == NULL) { + fprintf(stderr, "sio_open() failed\n"); + exit(1); + } + if (!sio_setpar(hdl, &par)) { + fprintf(stderr, "sio_setpar() failed\n"); + exit(1); + } + sio_onvol(hdl, onvol, NULL); + fprintf(stderr, "use ``+'' and ``-'' to adjust the volume\n"); + if (!sio_start(hdl)) { + fprintf(stderr, "sio_start() failed\n"); + exit(1); + } + for (;;) { + pfd[0].fd = tty; + pfd[0].events = POLLIN; + sio_pollfd(hdl, &pfd[1], POLLOUT); + if (poll(pfd, 2, INFTIM) < 0) { + perror("poll"); + exit(1); + } + if (pfd[0].revents & POLLIN) { + if (read(tty, &cmd, 1) < 0) { + perror("read(tty)"); + exit(1); + } + switch (cmd) { + case '+': + if (vol < SIO_MAXVOL) { + vol++; + sio_setvol(hdl, vol); + } + break; + case '-': + if (vol > 0) { + vol--; + sio_setvol(hdl, vol); + } + break; + } + } + if (sio_revents(hdl, &pfd[1]) & POLLOUT) { + len = read(STDIN_FILENO, buf, BUFSZ); + if (len < 0) { + perror("stdin"); + exit(1); + } + if (len == 0) + break; + n = sio_write(hdl, buf, len); + if (n == 0) { + fprintf(stderr, "sio_write: failed\n"); + exit(1); + } + } + } + sio_close(hdl); + return 0; +} diff --git a/src/regress/lib/libssl/CVS/Entries b/src/regress/lib/libssl/CVS/Entries new file mode 100644 index 000000000..be38925a5 --- /dev/null +++ b/src/regress/lib/libssl/CVS/Entries @@ -0,0 +1,9 @@ +/Makefile/1.13/Sat Sep 6 12:21:54 2008// +/README/1.2/Wed Jan 2 15:14:24 2002// +/openssl.cnf/1.2/Mon Jan 29 02:05:46 2001// +/test_client.sh/1.3/Mon Jan 29 02:05:48 2001// +/test_server.sh/1.3/Mon Jan 29 02:05:48 2001// +/testdsa.sh/1.4/Mon Jan 29 02:05:48 2001// +/testenc.sh/1.6/Tue Jan 15 18:51:39 2002// +/testrsa.sh/1.6/Wed Jan 2 15:13:18 2002// +D diff --git a/src/regress/lib/libssl/CVS/Repository b/src/regress/lib/libssl/CVS/Repository new file mode 100644 index 000000000..30add3c61 --- /dev/null +++ b/src/regress/lib/libssl/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libssl diff --git a/src/regress/lib/libssl/CVS/Root b/src/regress/lib/libssl/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libssl/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libssl/Makefile b/src/regress/lib/libssl/Makefile new file mode 100644 index 000000000..2a5fbb411 --- /dev/null +++ b/src/regress/lib/libssl/Makefile @@ -0,0 +1,277 @@ +# $OpenBSD: Makefile,v 1.13 2008/09/06 12:21:54 djm Exp $ + +CLEANFILES+= testdsa.key testdsa.pem rsakey.pem rsacert.pem dsa512.pem + +REGRESS_TARGETS=ossltests ssl-enc ssl-dsa ssl-rsa + +OPENSSL=/usr/sbin/openssl +CLEAR1=p +CIPHER=cipher +CLEAR2=clear +LIBCRYPTO=-lcrypto + +BFTEST= bftest +BNTEST= bntest +CASTTEST= casttest +DESTEST= destest +DHTEST= dhtest +DSATEST= dsatest +ECDHTEST= ecdhtest +ECDSATEST= ecdsatest +ECTEST= ectest +ENGINETEST= enginetest +EVPTEST= evp_test +EXPTEST= exptest +HMACTEST= hmactest +IGETEST= igetest +MD2TEST= md2test +MD4TEST= md4test +MD5TEST= md5test +RANDTEST= randtest +RC2TEST= rc2test +RC4TEST= rc4test +RMDTEST= rmdtest +RSATEST= rsa_test +SHA1TEST= sha1test +SHA256TEST= sha256t +SHA512TEST= sha512t +SHATEST= shatest + +SSLDIR= ${.CURDIR}/../../../lib/libssl/src/crypto +CFLAGS= -O -g -Wall -I${SSLDIR} -I${SSLDIR}/.. + +CLEANFILES+= $(BNTEST).c $(ECTEST).c $(HMACTEST).c \ + $(SHATEST).c $(SHA1TEST).c $(MDC2TEST).c $(RMDTEST).c \ + $(RANDTEST).c $(DHTEST).c $(ENGINETEST).c \ + $(CASTTEST).c $(EXPTEST).c $(DSATEST).c $(RSATEST).c \ + $(EVPTEST).c $(DESTEST).c ${RC2TEST}.c ${RC4TEST}.c ${MD2TEST}.c \ + ${MD4TEST}.c ${MD5TEST}.c ${BFTEST}.c ${ECDHTEST}.c ${ECDSATEST}.c \ + ${IGETEST}.c ${SHA256TEST}.c ${SHA512TEST}.c + +CLEANFILES+= $(BNTEST) $(ECTEST) $(HMACTEST) \ + $(SHATEST) $(SHA1TEST) $(MDC2TEST) $(RMDTEST) \ + $(RANDTEST) $(DHTEST) $(ENGINETEST) \ + $(CASTTEST) $(EXPTEST) $(DSATEST) $(RSATEST) \ + $(EVPTEST) $(DESTEST) ${RC2TEST} ${RC4TEST} ${MD2TEST} ${MD4TEST} \ + ${MD5TEST} ${BFTEST} ${ECDHTEST} ${ECDSATEST} ${IGETEST} \ + ${SHA256TEST} ${SHA512TEST} + +CLEANFILES+= ${BNTEST}.out + +OTESTS= ${ENGINETEST} \ + ${EXPTEST} ${RANDTEST} \ + ${MD2TEST} ${MD4TEST} ${MD5TEST} \ + ${SHATEST} ${SHA1TEST} ${HMACTEST} ${RMDTEST} ${MDC2TEST} \ + ${CASTTEST} ${BFTEST} ${RC2TEST} ${RC4TEST} ${DESTEST} \ + ${DHTEST} ${DSATEST} ${RSATEST} \ + ${ECTEST} ${ECDHTEST} ${ECDSATEST} $(IGETEST) \ + $(SHA256TEST) $(SHA512TEST) + +${CLEAR1}: openssl.cnf + cat ${.CURDIR}/openssl.cnf > ${CLEAR1} + +CLEANFILES+=${CLEAR1} + +ENCTARGETS=aes-128-cbc aes-128-cfb aes-128-cfb1 aes-128-cfb8 +ENCTARGETS+=aes-128-ecb aes-128-ofb aes-192-cbc aes-192-cfb +ENCTARGETS+=aes-192-cfb1 aes-192-cfb8 aes-192-ecb aes-192-ofb +ENCTARGETS+=aes-256-cbc aes-256-cfb aes-256-cfb1 aes-256-cfb8 +ENCTARGETS+=aes-256-ecb aes-256-ofb +ENCTARGETS+=bf-cbc bf-cfb bf-ecb bf-ofb +ENCTARGETS+=cast-cbc cast5-cbc cast5-cfb cast5-ecb cast5-ofb +ENCTARGETS+=des-cbc des-cfb des-cfb8 des-ecb des-ede +ENCTARGETS+=des-ede-cbc des-ede-cfb des-ede-ofb des-ede3 +ENCTARGETS+=des-ede3-cbc des-ede3-cfb des-ede3-ofb des-ofb desx-cbc +ENCTARGETS+=rc2-40-cbc rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb +ENCTARGETS+=rc4 rc4-40 + +.for ENC in ${ENCTARGETS} +${CIPHER}.${ENC}: ${CLEAR1} + ${OPENSSL} enc -${ENC} -bufsize 113 -e -k test < ${CLEAR1} > ${CIPHER}.${ENC} +${CIPHER}.${ENC}.b64: ${CLEAR1} + ${OPENSSL} enc -${ENC} -bufsize 113 -a -e -k test < ${CLEAR1} > ${CIPHER}.${ENC}.b64 + +${CLEAR2}.${ENC}: ${CIPHER}.${ENC} + ${OPENSSL} enc -${ENC} -bufsize 157 -d -k test < ${CIPHER}.${ENC} > ${CLEAR2}.${ENC} +${CLEAR2}.${ENC}.b64: ${CIPHER}.${ENC}.b64 + ${OPENSSL} enc -${ENC} -bufsize 157 -a -d -k test < ${CIPHER}.${ENC}.b64 > ${CLEAR2}.${ENC}.b64 + +ssl-enc-${ENC}: ${CLEAR1} ${CLEAR2}.${ENC} + cmp ${CLEAR1} ${CLEAR2}.${ENC} +ssl-enc-${ENC}.b64: ${CLEAR1} ${CLEAR2}.${ENC}.b64 + cmp ${CLEAR1} ${CLEAR2}.${ENC}.b64 + +REGRESS_TARGETS+=ssl-enc-${ENC} ssl-enc-${ENC}.b64 +CLEANFILES+=${CIPHER}.${ENC} ${CIPHER}.${ENC}.b64 ${CLEAR2}.${ENC} ${CLEAR2}.${ENC}.b64 .rnd +.endfor + +ssl-enc: + sh ${.CURDIR}/testenc.sh ${.OBJDIR} ${.CURDIR} +ssl-dsa: + sh ${.CURDIR}/testdsa.sh ${.OBJDIR} ${.CURDIR} +ssl-rsa: + sh ${.CURDIR}/testrsa.sh ${.OBJDIR} ${.CURDIR} + +ossltests: ${OTESTS} ${BNTEST} ${EVPTEST} + @echo running ${BNTEST}, check ${.OBJDIR}/${BNTEST}.out if this fails. + ${.OBJDIR}/${BNTEST} > ${.OBJDIR}/${BNTEST}.out 2>&1 +.for OT in ${OTESTS} + @echo running ${OT} + ${.OBJDIR}/${OT} +.endfor + @echo running ${EVPTEST} + ${.OBJDIR}/${EVPTEST} ${SSLDIR}/evp/evptests.txt + +$(BNTEST).c: ${SSLDIR}/bn/bntest.c + cp ${SSLDIR}/bn/bntest.c ${.OBJDIR} + +$(BNTEST): ${BNTEST}.c + cc ${CFLAGS} -o $(BNTEST) ${BNTEST}.c $(LIBCRYPTO) + +$(EXPTEST).c: ${SSLDIR}/bn/exptest.c + cp ${SSLDIR}/bn/exptest.c ${.OBJDIR} + +$(EXPTEST): ${EXPTEST}.c + cc ${CFLAGS} -o $(EXPTEST) ${EXPTEST}.c $(LIBCRYPTO) + +$(ECTEST).c: ${SSLDIR}/ec/ectest.c + cp ${SSLDIR}/ec/ectest.c ${.OBJDIR} + +$(ECTEST): ${ECTEST}.c + cc ${CFLAGS} -o $(ECTEST) ${ECTEST}.c $(LIBCRYPTO) + +$(EVPTEST).c: ${SSLDIR}/evp/${EVPTEST}.c + cp ${SSLDIR}/evp/${EVPTEST}.c ${.OBJDIR} +$(EVPTEST): ${EVPTEST}.c + cc ${CFLAGS} -o $(EVPTEST) ${EVPTEST}.c $(LIBCRYPTO) + +$(SHATEST).c: ${SSLDIR}/sha/${SHATEST}.c + cp ${SSLDIR}/sha/${SHATEST}.c ${.OBJDIR} +$(SHATEST): ${SHATEST}.c + cc ${CFLAGS} -o $(SHATEST) ${SHATEST}.c $(LIBCRYPTO) + +$(SHA1TEST).c: ${SSLDIR}/sha/${SHA1TEST}.c + cp ${SSLDIR}/sha/${SHA1TEST}.c ${.OBJDIR} +$(SHA1TEST): ${SHA1TEST}.c + cc ${CFLAGS} -o $(SHA1TEST) ${SHA1TEST}.c $(LIBCRYPTO) + +$(RANDTEST).c: ${SSLDIR}/rand/${RANDTEST}.c + cp ${SSLDIR}/rand/${RANDTEST}.c ${.OBJDIR} +$(RANDTEST): ${RANDTEST}.c + cc ${CFLAGS} -o $(RANDTEST) ${RANDTEST}.c $(LIBCRYPTO) + +$(RMDTEST).c: ${SSLDIR}/ripemd/${RMDTEST}.c + cp ${SSLDIR}/ripemd/${RMDTEST}.c ${.OBJDIR} +$(RMDTEST): ${RMDTEST}.c + cc ${CFLAGS} -o $(RMDTEST) ${RMDTEST}.c $(LIBCRYPTO) + +$(DHTEST).c: ${SSLDIR}/dh/${DHTEST}.c + cp ${SSLDIR}/dh/${DHTEST}.c ${.OBJDIR} + +$(DHTEST): ${DHTEST}.c + cc ${CFLAGS} -o $(DHTEST) ${DHTEST}.c $(LIBCRYPTO) + +$(ENGINETEST).c: ${SSLDIR}/engine/${ENGINETEST}.c + cp ${SSLDIR}/engine/${ENGINETEST}.c ${.OBJDIR} + +$(ENGINETEST): ${ENGINETEST}.c + cc ${CFLAGS} -o $(ENGINETEST) ${ENGINETEST}.c $(LIBCRYPTO) + +$(CASTTEST).c: ${SSLDIR}/cast/${CASTTEST}.c + cp ${SSLDIR}/cast/${CASTTEST}.c ${.OBJDIR} + +$(CASTTEST): ${CASTTEST}.c + cc ${CFLAGS} -o $(CASTTEST) ${CASTTEST}.c $(LIBCRYPTO) + +$(RSATEST).c: ${SSLDIR}/rsa/${RSATEST}.c + cp ${SSLDIR}/rsa/${RSATEST}.c ${.OBJDIR} + +$(RSATEST): ${RSATEST}.c + cc ${CFLAGS} -o $(RSATEST) ${RSATEST}.c $(LIBCRYPTO) + +$(DSATEST).c: ${SSLDIR}/dsa/${DSATEST}.c + cp ${SSLDIR}/dsa/${DSATEST}.c ${.OBJDIR} + +$(DSATEST): ${DSATEST}.c + cc ${CFLAGS} -o $(DSATEST) ${DSATEST}.c $(LIBCRYPTO) + + +$(HMACTEST).c: ${SSLDIR}/hmac/${HMACTEST}.c + cp ${SSLDIR}/hmac/${HMACTEST}.c ${.OBJDIR} + +$(HMACTEST): ${HMACTEST}.c + cc ${CFLAGS} -o $(HMACTEST) ${HMACTEST}.c $(LIBCRYPTO) + +$(DESTEST).c: ${SSLDIR}/des/${DESTEST}.c + cp ${SSLDIR}/des/${DESTEST}.c ${.OBJDIR} + +$(DESTEST): ${DESTEST}.c + cc ${CFLAGS} -o $(DESTEST) ${DESTEST}.c $(LIBCRYPTO) + +$(BFTEST).c: ${SSLDIR}/bf/${BFTEST}.c + cp ${SSLDIR}/bf/${BFTEST}.c ${.OBJDIR} + +$(BFTEST): ${BFTEST}.c + cc ${CFLAGS} -o $(BFTEST) ${BFTEST}.c $(LIBCRYPTO) + +$(RC2TEST).c: ${SSLDIR}/rc2/${RC2TEST}.c + cp ${SSLDIR}/rc2/${RC2TEST}.c ${.OBJDIR} + +$(RC2TEST): ${RC2TEST}.c + cc ${CFLAGS} -o $(RC2TEST) ${RC2TEST}.c $(LIBCRYPTO) + +$(RC4TEST).c: ${SSLDIR}/rc4/${RC4TEST}.c + cp ${SSLDIR}/rc4/${RC4TEST}.c ${.OBJDIR} + +$(RC4TEST): ${RC4TEST}.c + cc ${CFLAGS} -o $(RC4TEST) ${RC4TEST}.c $(LIBCRYPTO) + +$(MD2TEST).c: ${SSLDIR}/md2/${MD2TEST}.c + cp ${SSLDIR}/md2/${MD2TEST}.c ${.OBJDIR} + +$(MD2TEST): ${MD2TEST}.c + cc ${CFLAGS} -o $(MD2TEST) ${MD2TEST}.c $(LIBCRYPTO) + +$(MD4TEST).c: ${SSLDIR}/md4/${MD4TEST}.c + cp ${SSLDIR}/md4/${MD4TEST}.c ${.OBJDIR} + +$(MD4TEST): ${MD4TEST}.c + cc ${CFLAGS} -o $(MD4TEST) ${MD4TEST}.c $(LIBCRYPTO) + +$(MD5TEST).c: ${SSLDIR}/md5/${MD5TEST}.c + cp ${SSLDIR}/md5/${MD5TEST}.c ${.OBJDIR} + +$(MD5TEST): ${MD5TEST}.c + cc ${CFLAGS} -o $(MD5TEST) ${MD5TEST}.c $(LIBCRYPTO) + +$(ECDHTEST).c: ${SSLDIR}/ecdh/${ECDHTEST}.c + cp ${SSLDIR}/ecdh/${ECDHTEST}.c ${.OBJDIR} + +$(ECDHTEST): ${ECDHTEST}.c + cc ${CFLAGS} -o $(ECDHTEST) ${ECDHTEST}.c $(LIBCRYPTO) + +$(ECDSATEST).c: ${SSLDIR}/ecdsa/${ECDSATEST}.c + cp ${SSLDIR}/ecdsa/${ECDSATEST}.c ${.OBJDIR} + +$(ECDSATEST): ${ECDSATEST}.c + cc ${CFLAGS} -o $(ECDSATEST) ${ECDSATEST}.c $(LIBCRYPTO) + +$(IGETEST).c: ${SSLDIR}/../test/${IGETEST}.c + cp ${SSLDIR}/../test/${IGETEST}.c ${.OBJDIR} + +$(IGETEST): ${IGETEST}.c + cc ${CFLAGS} -o $(IGETEST) ${IGETEST}.c $(LIBCRYPTO) + +$(SHA256TEST).c: ${SSLDIR}/sha/${SHA256TEST}.c + cp ${SSLDIR}/sha/${SHA256TEST}.c ${.OBJDIR} + +$(SHA256TEST): ${SHA256TEST}.c + cc ${CFLAGS} -o $(SHA256TEST) ${SHA256TEST}.c $(LIBCRYPTO) + +$(SHA512TEST).c: ${SSLDIR}/sha/${SHA512TEST}.c + cp ${SSLDIR}/sha/${SHA512TEST}.c ${.OBJDIR} + +$(SHA512TEST): ${SHA512TEST}.c + cc ${CFLAGS} -o $(SHA512TEST) ${SHA512TEST}.c $(LIBCRYPTO) + +.include diff --git a/src/regress/lib/libssl/README b/src/regress/lib/libssl/README new file mode 100644 index 000000000..878feca40 --- /dev/null +++ b/src/regress/lib/libssl/README @@ -0,0 +1,6 @@ +testenc.sh tests encryption routines +testdsa.sh tests DSA certificate generation +test_server.sh starts a tls1 server using the above generated certificate +test_client.sh starts a client to talk to the server. +testrsa.sh tests RSA certificate generation + diff --git a/src/regress/lib/libssl/obj b/src/regress/lib/libssl/obj new file mode 120000 index 000000000..c89250934 --- /dev/null +++ b/src/regress/lib/libssl/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libssl \ No newline at end of file diff --git a/src/regress/lib/libssl/openssl.cnf b/src/regress/lib/libssl/openssl.cnf new file mode 100644 index 000000000..9b6cf400c --- /dev/null +++ b/src/regress/lib/libssl/openssl.cnf @@ -0,0 +1,29 @@ +# $OpenBSD: openssl.cnf,v 1.2 2001/01/29 02:05:46 niklas Exp $ + +# +# SSLeay example configuration file. +# This is mostly being used for generation of certificate requests. +# +# hacked by iang to do DSA certs - Server + +RANDFILE = ./.rnd + +#################################################################### +[ req ] +distinguished_name = req_distinguished_name +encrypt_rsa_key = no + +[ req_distinguished_name ] +countryName = Country Name (2 letter code) +countryName_default = CA +countryName_value = CA + +organizationName = Organization Name (eg, company) +organizationName_value = Shake it Vera + +0.commonName = Common Name (eg, YOUR name) +0.commonName_value = Wastelandus + +1.commonName = Common Name (eg, YOUR name) +1.commonName_value = Maximus + diff --git a/src/regress/lib/libssl/test_client.sh b/src/regress/lib/libssl/test_client.sh new file mode 100644 index 000000000..4f17fad80 --- /dev/null +++ b/src/regress/lib/libssl/test_client.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# $OpenBSD: test_client.sh,v 1.3 2001/01/29 02:05:48 niklas Exp $ + + +echo +echo This starts a tls1 mode client to talk to the server run by +echo ./testserver.sh. You should start the server first. +echo +echo type in this window after ssl negotiation and your output should +echo be echoed by the server. +echo +echo +/usr/sbin/openssl s_client -tls1 diff --git a/src/regress/lib/libssl/test_server.sh b/src/regress/lib/libssl/test_server.sh new file mode 100644 index 000000000..a9e2c84d4 --- /dev/null +++ b/src/regress/lib/libssl/test_server.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# $OpenBSD: test_server.sh,v 1.3 2001/01/29 02:05:48 niklas Exp $ + + +echo This starts a tls1 mode server using the DSA certificate in ./server.pem +echo Run ./testclient.sh in another window and type at it, you should +echo see the results of the ssl negotiation, and stuff you type in the client +echo should echo in this window +echo +echo +/usr/sbin/openssl s_server -tls1 -key testdsa.key -cert testdsa.pem diff --git a/src/regress/lib/libssl/testdsa.sh b/src/regress/lib/libssl/testdsa.sh new file mode 100644 index 000000000..48526eec1 --- /dev/null +++ b/src/regress/lib/libssl/testdsa.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# $OpenBSD: testdsa.sh,v 1.4 2001/01/29 02:05:48 niklas Exp $ + + +#Test DSA certificate generation of openssl + +cd $1 + +# Generate DSA paramter set +openssl dsaparam 512 -out dsa512.pem +if [ $? != 0 ]; then + exit 1; +fi + + +# Denerate a DSA certificate +openssl req -config $2/openssl.cnf -x509 -newkey dsa:dsa512.pem -out testdsa.pem -keyout testdsa.key +if [ $? != 0 ]; then + exit 1; +fi + + +# Now check the certificate +openssl x509 -text -in testdsa.pem +if [ $? != 0 ]; then + exit 1; +fi + +exit 0 diff --git a/src/regress/lib/libssl/testenc.sh b/src/regress/lib/libssl/testenc.sh new file mode 100644 index 000000000..355e9cd92 --- /dev/null +++ b/src/regress/lib/libssl/testenc.sh @@ -0,0 +1,70 @@ +#!/bin/sh +# $OpenBSD: testenc.sh,v 1.6 2002/01/15 18:51:39 art Exp $ + + +testsrc=$2/openssl.cnf +test=$1/p +cmd=/usr/sbin/openssl + +cd $1 + +cat $testsrc >$test; + +echo cat +$cmd enc < $test > $test.cipher +$cmd enc < $test.cipher >$test.clear +cmp $test $test.clear +if [ $? != 0 ] +then + exit 1 +else + /bin/rm $test.cipher $test.clear +fi +echo base64 +$cmd enc -a -e < $test > $test.cipher +$cmd enc -a -d < $test.cipher >$test.clear +cmp $test $test.clear +if [ $? != 0 ] +then + exit 1 +else + /bin/rm $test.cipher $test.clear +fi + +/bin/rm -f $test +exit 0 + +# These tests are now done by the makefile. + +for i in rc4 \ + des-cfb des-ede-cfb des-ede3-cfb \ + des-ofb des-ede-ofb des-ede3-ofb \ + des-ecb des-ede des-ede3 desx \ + des-cbc des-ede-cbc des-ede3-cbc \ + rc2-ecb rc2-cfb rc2-ofb rc2-cbc \ + bf-ecb bf-cfb bf-ofb bf-cbc rc4 \ + cast5-ecb cast5-cfb cast5-ofb cast5-cbc +do + echo $i + $cmd $i -bufsize 113 -e -k test < $test > $test.$i.cipher + $cmd $i -bufsize 157 -d -k test < $test.$i.cipher >$test.$i.clear + cmp $test $test.$i.clear + if [ $? != 0 ] + then + exit 1 + else + /bin/rm $test.$i.cipher $test.$i.clear + fi + + echo $i base64 + $cmd $i -bufsize 113 -a -e -k test < $test > $test.$i.cipher + $cmd $i -bufsize 157 -a -d -k test < $test.$i.cipher >$test.$i.clear + cmp $test $test.$i.clear + if [ $? != 0 ] + then + exit 1 + else + /bin/rm $test.$i.cipher $test.$i.clear + fi +done +rm -f $test diff --git a/src/regress/lib/libssl/testrsa.sh b/src/regress/lib/libssl/testrsa.sh new file mode 100644 index 000000000..17c6abf7c --- /dev/null +++ b/src/regress/lib/libssl/testrsa.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# $OpenBSD: testrsa.sh,v 1.6 2002/01/02 15:13:18 art Exp $ + + +#Test RSA certificate generation of openssl + +cd $1 + +# Generate RSA private key +openssl genrsa -out rsakey.pem +if [ $? != 0 ]; then + exit 1; +fi + + +# Generate an RSA certificate +openssl req -config $2/openssl.cnf -key rsakey.pem -new -x509 -days 365 -out rsacert.pem +if [ $? != 0 ]; then + exit 1; +fi + + +# Now check the certificate +openssl x509 -text -in rsacert.pem +if [ $? != 0 ]; then + exit 1; +fi + +exit 0 diff --git a/src/regress/lib/libutil/CVS/Entries b/src/regress/lib/libutil/CVS/Entries new file mode 100644 index 000000000..11c9fb673 --- /dev/null +++ b/src/regress/lib/libutil/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.1/Thu May 15 01:51:01 2003// +D/fmt_scaled//// diff --git a/src/regress/lib/libutil/CVS/Repository b/src/regress/lib/libutil/CVS/Repository new file mode 100644 index 000000000..ee37ba3d4 --- /dev/null +++ b/src/regress/lib/libutil/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libutil diff --git a/src/regress/lib/libutil/CVS/Root b/src/regress/lib/libutil/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libutil/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libutil/Makefile b/src/regress/lib/libutil/Makefile new file mode 100644 index 000000000..e329c67af --- /dev/null +++ b/src/regress/lib/libutil/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2003/05/15 01:51:01 ian Exp $ + +# Makefile for regress/libutil + +SUBDIR= fmt_scaled + +include: + +.include diff --git a/src/regress/lib/libutil/fmt_scaled/CVS/Entries b/src/regress/lib/libutil/fmt_scaled/CVS/Entries new file mode 100644 index 000000000..4de8eb883 --- /dev/null +++ b/src/regress/lib/libutil/fmt_scaled/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu May 15 01:51:01 2003// +/fmt_test.c/1.9/Sat Jun 20 14:23:38 2009// +D diff --git a/src/regress/lib/libutil/fmt_scaled/CVS/Repository b/src/regress/lib/libutil/fmt_scaled/CVS/Repository new file mode 100644 index 000000000..6bab52220 --- /dev/null +++ b/src/regress/lib/libutil/fmt_scaled/CVS/Repository @@ -0,0 +1 @@ +src/regress/lib/libutil/fmt_scaled diff --git a/src/regress/lib/libutil/fmt_scaled/CVS/Root b/src/regress/lib/libutil/fmt_scaled/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/lib/libutil/fmt_scaled/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/lib/libutil/fmt_scaled/Makefile b/src/regress/lib/libutil/fmt_scaled/Makefile new file mode 100644 index 000000000..9c994ba54 --- /dev/null +++ b/src/regress/lib/libutil/fmt_scaled/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2003/05/15 01:51:01 ian Exp $ + +PROG=fmt_test +LDADD=-lutil +DPADD=${LIBUTIL} + +include: + +.include diff --git a/src/regress/lib/libutil/fmt_scaled/fmt_test.c b/src/regress/lib/libutil/fmt_scaled/fmt_test.c new file mode 100644 index 000000000..cf79644bf --- /dev/null +++ b/src/regress/lib/libutil/fmt_scaled/fmt_test.c @@ -0,0 +1,288 @@ +/* $OpenBSD: fmt_test.c,v 1.9 2009/06/20 14:23:38 ian Exp $ */ + +/* + * Combined tests for fmt_scaled and scan_scaled. + * Ian Darwin, January 2001. Public domain. + */ + +#include +#include +#include +#include +#include + +#include + +static int fmt_test(void); +static int scan_test(void); + +static void print_errno(int e); +static int assert_int(int testnum, int checknum, int expect, int result); +static int assert_errno(int testnum, int checknum, int expect, int result); +static int assert_quad_t(int testnum, int checknum, quad_t expect, quad_t result); +static int assert_str(int testnum, int checknum, char * expect, char * result); + +extern char *__progname; +static int verbose = 0; + +__dead static void usage(int stat) +{ + fprintf(stderr, "usage: %s [-v]\n", __progname); + exit(stat); +} + +int +main(int argc, char **argv) +{ + extern char *optarg; + extern int optind; + int i, ch; + + while ((ch = getopt(argc, argv, "hv")) != -1) { + switch (ch) { + case 'v': + verbose = 1; + break; + case 'h': + usage(0); + case '?': + default: + usage(1); + } + } + argc -= optind; + argv += optind; + + if (verbose) + printf("Starting fmt_test\n"); + i = fmt_test(); + if (verbose) + printf("Starting scan_test\n"); + i += scan_test(); + if (i) { + printf("*** %d errors in libutil/fmt_scaled tests ***\n", i); + } else { + if (verbose) + printf("Tests done; no unexpected errors\n"); + } + return i; +} + +/************** tests for fmt_scaled *******************/ + +static struct { /* the test cases */ + quad_t input; + char *expect; + int err; +} ddata[] = { + { 0, "0B", 0 }, + { 1, "1B", 0 }, + { -1, "-1B", 0 }, + { 100, "100B", 0}, + { -100, "-100B", 0}, + { 999, "999B", 0 }, + { 1000, "1000B", 0 }, + { 1023, "1023B", 0 }, + { -1023, "-1023B", 0 }, + { 1024, "1.0K", 0 }, + { 1025, "1.0K", 0 }, + { 1234, "1.2K", 0 }, + { -1234, "-1.2K", 0 }, + { 1484, "1.4K", 0 }, /* rounding boundary, down */ + { 1485, "1.5K", 0 }, /* rounding boundary, up */ + { -1484, "-1.4K", 0 }, /* rounding boundary, down */ + { -1485, "-1.5K", 0 }, /* rounding boundary, up */ + { 1536, "1.5K", 0 }, + { 1786, "1.7K", 0 }, + { 1800, "1.8K", 0 }, + { 2000, "2.0K", 0 }, + { 123456, "121K", 0 }, + { 578318, "565K", 0 }, + { 902948, "882K", 0 }, + { 1048576, "1.0M", 0}, + { 1048628, "1.0M", 0}, + { 1049447, "1.0M", 0}, + { -102400, "-100K", 0}, + { -103423, "-101K", 0 }, + { 7299072, "7.0M", 0 }, + { 409478144L, "391M", 0 }, + { -409478144L, "-391M", 0 }, + { 999999999L, "954M", 0 }, + { 1499999999L, "1.4G", 0 }, + { 12475423744LL, "11.6G", 0}, + { 1LL<<61, "2.0E", 0 }, + { 1LL<<62, "4.0E", 0 }, + { 1LL<<63, "", ERANGE }, + { 1099512676352LL, "1.0T", 0} +}; +# define DDATA_LENGTH (sizeof ddata/sizeof *ddata) + +static int +fmt_test(void) +{ + unsigned int i, e, errs = 0; + int ret; + char buf[FMT_SCALED_STRSIZE]; + + for (i = 0; i < DDATA_LENGTH; i++) { + strlcpy(buf, "UNSET", FMT_SCALED_STRSIZE); + ret = fmt_scaled(ddata[i].input, buf); + e = errno; + if (verbose) { + printf("%lld --> %s (%d)", ddata[i].input, buf, ret); + if (ret == -1) + print_errno(e); + printf("\n"); + } + if (ret == -1) + errs += assert_int(i, 1, ret, ddata[i].err == 0 ? 0 : -1); + if (ddata[i].err) + errs += assert_errno(i, 2, ddata[i].err, errno); + else + errs += assert_str(i, 3, ddata[i].expect, buf); + } + + return errs; +} + +/************** tests for scan_scaled *******************/ + + +#define IMPROBABLE (-42) + +extern int errno; + +struct { /* the test cases */ + char *input; + quad_t result; + int err; +} sdata[] = { + { "0", 0, 0 }, + { "123", 123, 0 }, + { "1k", 1024, 0 }, /* lower case */ + { "100.944", 100, 0 }, /* should --> 100 (truncates fraction) */ + { "10099", 10099LL, 0 }, + { "1M", 1048576LL, 0 }, + { "1.1M", 1153433LL, 0 }, /* fractions */ + { "1.111111111111111111M", 1165084LL, 0 }, /* fractions */ + { "1.55M", 1625292LL, 0 }, /* fractions */ + { "1.9M", 1992294LL, 0 }, /* fractions */ + { "-2K", -2048LL, 0 }, /* negatives */ + { "-2.2K", -2252LL, 0 }, /* neg with fract */ + { "4.5k", 4608, 0 }, + { "4.5555555555555555K", 4664, 0 }, + { "4.5555555555555555555K", 4664, 0 }, /* handle enough digits? */ + { "4.555555555555555555555555555555K", 4664, 0 }, /* ignores extra digits? */ + { "1G", 1073741824LL, 0 }, + { "G", 0, 0 }, /* should == 0G? */ + { "1234567890", 1234567890LL, 0 }, /* should work */ + { "1.5E", 1729382256910270464LL, 0 }, /* big */ + { "32948093840918378473209480483092", 0, ERANGE }, /* too big */ + { "329480938409.8378473209480483092", 0, ERANGE }, /* fraction too big */ + { "1.5Q", 0, ERANGE }, /* invalid multiplier (XXX ERANGE??) */ + { "1ab", 0, ERANGE }, /* ditto */ + { "5.0e3", 0, EINVAL }, /* digits after */ + { "5.0E3", 0, EINVAL }, /* ditto */ + { "1..0", 0, EINVAL }, /* bad format */ + { "", 0, 0 }, /* boundary */ + { "--1", -1, EINVAL }, + { "++42", -1, EINVAL }, + /* { "9223372036854775808", -9223372036854775808LL, 0 }, */ /* XXX */ +}; +# define SDATA_LENGTH (sizeof sdata/sizeof *sdata) + +static void +print_errno(int e) +{ + switch(e) { + case EINVAL: printf("EINVAL"); break; + case EDOM: printf("EDOM"); break; + case ERANGE: printf("ERANGE"); break; + default: printf("errno %d", errno); + } +} + +/** Print one result */ +static void +print(char *input, quad_t result, int ret) +{ + int e = errno; + printf("\"%10s\" --> %lld (%d)", input, result, ret); + if (ret == -1) { + printf(" -- "); + print_errno(e); + } + printf("\n"); +} + +static int +scan_test(void) +{ + unsigned int i, errs = 0, e; + int ret; + quad_t result; + + for (i = 0; i < SDATA_LENGTH; i++) { + result = IMPROBABLE; + /* printf("Calling scan_scaled(%s, ...)\n", sdata[i].input); */ + ret = scan_scaled(sdata[i].input, &result); + e = errno; /* protect across printfs &c. */ + if (verbose) + print(sdata[i].input, result, ret); + errno = e; + if (ret == -1) + errs += assert_int(i, 1, ret, sdata[i].err == 0 ? 0 : -1); + errno = e; + if (sdata[i].err) + errs += assert_errno(i, 2, sdata[i].err, errno); + else + errs += assert_quad_t(i, 3, sdata[i].result, result); + } + return errs; +} + +/************** common testing stuff *******************/ + +static int +assert_int(int testnum, int check, int expect, int result) +{ + if (expect == result) + return 0; + printf("** FAILURE: test %d check %d, expect %d, result %d **\n", + testnum, check, expect, result); + return 1; +} + +static int +assert_errno(int testnum, int check, int expect, int result) +{ + if (expect == result) + return 0; + printf("** FAILURE: test %d check %d, expect ", + testnum, check); + print_errno(expect); + printf(", got "); + print_errno(result); + printf(" **\n"); + return 1; +} + +static int +assert_quad_t(int testnum, int check, quad_t expect, quad_t result) +{ + if (expect == result) + return 0; + printf("** FAILURE: test %d check %d, expect %lld, result %lld **\n", + testnum, check, expect, result); + return 1; +} + +static int +assert_str(int testnum, int check, char * expect, char * result) +{ + if (strcmp(expect, result) == 0) + return 0; + printf("** FAILURE: test %d check %d, expect %s, result %s **\n", + testnum, check, expect, result); + return 1; +} diff --git a/src/regress/lib/libutil/fmt_scaled/obj b/src/regress/lib/libutil/fmt_scaled/obj new file mode 120000 index 000000000..34b3ffae3 --- /dev/null +++ b/src/regress/lib/libutil/fmt_scaled/obj @@ -0,0 +1 @@ +/usr/obj/regress/lib/libutil/fmt_scaled \ No newline at end of file diff --git a/src/regress/libexec/CVS/Entries b/src/regress/libexec/CVS/Entries new file mode 100644 index 000000000..0b04ac8bd --- /dev/null +++ b/src/regress/libexec/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.3/Fri Dec 26 14:13:26 2003// +D/ld.so//// diff --git a/src/regress/libexec/CVS/Repository b/src/regress/libexec/CVS/Repository new file mode 100644 index 000000000..76f0ba584 --- /dev/null +++ b/src/regress/libexec/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec diff --git a/src/regress/libexec/CVS/Root b/src/regress/libexec/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/Makefile b/src/regress/libexec/Makefile new file mode 100644 index 000000000..ed46c660f --- /dev/null +++ b/src/regress/libexec/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.3 2003/12/26 14:13:26 miod Exp $ + +.include + +.if !defined(NOPIC) +SUBDIR+= ld.so +.endif + +install: + +.include diff --git a/src/regress/libexec/ld.so/CVS/Entries b/src/regress/libexec/ld.so/CVS/Entries new file mode 100644 index 000000000..3dc361155 --- /dev/null +++ b/src/regress/libexec/ld.so/CVS/Entries @@ -0,0 +1,11 @@ +/Makefile/1.10/Tue Feb 17 16:40:51 2009// +D/constructor//// +D/dlclose//// +D/dlopen//// +D/dlsym//// +D/edgecases//// +D/elf//// +D/hidden//// +D/lazy//// +D/link-order//// +D/weak//// diff --git a/src/regress/libexec/ld.so/CVS/Repository b/src/regress/libexec/ld.so/CVS/Repository new file mode 100644 index 000000000..2d107f4e5 --- /dev/null +++ b/src/regress/libexec/ld.so/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so diff --git a/src/regress/libexec/ld.so/CVS/Root b/src/regress/libexec/ld.so/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/Makefile b/src/regress/libexec/ld.so/Makefile new file mode 100644 index 000000000..96ca55ae1 --- /dev/null +++ b/src/regress/libexec/ld.so/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.10 2009/02/17 16:40:51 jsing Exp $ + +SUBDIR+= elf hidden weak dlsym dlopen dlclose lazy +#SUBDIR+= constructor +SUBDIR+= link-order edgecases + +install: + +.include diff --git a/src/regress/libexec/ld.so/constructor/CVS/Entries b/src/regress/libexec/ld.so/constructor/CVS/Entries new file mode 100644 index 000000000..7e6857d09 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.1/Sat Feb 1 19:56:17 2003// +D/libaa//// +D/libab//// +D/prog1//// +D/prog2//// diff --git a/src/regress/libexec/ld.so/constructor/CVS/Repository b/src/regress/libexec/ld.so/constructor/CVS/Repository new file mode 100644 index 000000000..ac3fe5fa5 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/constructor diff --git a/src/regress/libexec/ld.so/constructor/CVS/Root b/src/regress/libexec/ld.so/constructor/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/constructor/Makefile b/src/regress/libexec/ld.so/constructor/Makefile new file mode 100644 index 000000000..b3fa0888f --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/Makefile @@ -0,0 +1,3 @@ +SUBDIR=libaa libab prog1 prog2 + +.include diff --git a/src/regress/libexec/ld.so/constructor/libaa/CVS/Entries b/src/regress/libexec/ld.so/constructor/libaa/CVS/Entries new file mode 100644 index 000000000..58e667f7e --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libaa/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.1/Sat Feb 1 19:56:17 2003// +/aa.C/1.1/Sat Feb 1 19:56:17 2003// +/aa.h/1.1/Sat Feb 1 19:56:17 2003// +/shlib_version/1.2/Tue Jul 13 21:03:36 2004// +D diff --git a/src/regress/libexec/ld.so/constructor/libaa/CVS/Repository b/src/regress/libexec/ld.so/constructor/libaa/CVS/Repository new file mode 100644 index 000000000..9aede30f1 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libaa/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/constructor/libaa diff --git a/src/regress/libexec/ld.so/constructor/libaa/CVS/Root b/src/regress/libexec/ld.so/constructor/libaa/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libaa/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/constructor/libaa/Makefile b/src/regress/libexec/ld.so/constructor/libaa/Makefile new file mode 100644 index 000000000..c4432ee7f --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libaa/Makefile @@ -0,0 +1,3 @@ +LIB=aa +SRCS= aa.C +.include diff --git a/src/regress/libexec/ld.so/constructor/libaa/aa.C b/src/regress/libexec/ld.so/constructor/libaa/aa.C new file mode 100644 index 000000000..8974fc873 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libaa/aa.C @@ -0,0 +1,17 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: aa.C,v 1.1 2003/02/01 19:56:17 drahn Exp $ + */ + +#include "iostream.h" +#include "aa.h" +int a; + + +AA::AA(char *arg) +{ + a = 1; +} + +AA foo("A"); diff --git a/src/regress/libexec/ld.so/constructor/libaa/aa.h b/src/regress/libexec/ld.so/constructor/libaa/aa.h new file mode 100644 index 000000000..1df830484 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libaa/aa.h @@ -0,0 +1,6 @@ +class AA { +public: + AA(char *); +}; + + diff --git a/src/regress/libexec/ld.so/constructor/libaa/shlib_version b/src/regress/libexec/ld.so/constructor/libaa/shlib_version new file mode 100644 index 000000000..b52599a16 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libaa/shlib_version @@ -0,0 +1,2 @@ +major=2 +minor=0 diff --git a/src/regress/libexec/ld.so/constructor/libab/CVS/Entries b/src/regress/libexec/ld.so/constructor/libab/CVS/Entries new file mode 100644 index 000000000..f600c5e44 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libab/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.1/Sat Feb 1 19:56:17 2003// +/ab.C/1.2/Tue Feb 18 13:14:42 2003// +/ab.h/1.1/Sat Feb 1 19:56:17 2003// +/shlib_version/1.2/Tue Jul 13 21:03:36 2004// +D diff --git a/src/regress/libexec/ld.so/constructor/libab/CVS/Repository b/src/regress/libexec/ld.so/constructor/libab/CVS/Repository new file mode 100644 index 000000000..1d73fbba3 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libab/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/constructor/libab diff --git a/src/regress/libexec/ld.so/constructor/libab/CVS/Root b/src/regress/libexec/ld.so/constructor/libab/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libab/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/constructor/libab/Makefile b/src/regress/libexec/ld.so/constructor/libab/Makefile new file mode 100644 index 000000000..4053e97fe --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libab/Makefile @@ -0,0 +1,6 @@ +LIB=ab +SRCS= ab.C +CFLAGS=-I${.CURDIR}/../libaa +LDADD=-L../libaa +LDADD+=-laa +.include diff --git a/src/regress/libexec/ld.so/constructor/libab/ab.C b/src/regress/libexec/ld.so/constructor/libab/ab.C new file mode 100644 index 000000000..a6903d47a --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libab/ab.C @@ -0,0 +1,22 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: ab.C,v 1.2 2003/02/18 13:14:42 jmc Exp $ + */ + +#include "iostream.h" +#include "aa.h" +#include "ab.h" + +extern int a; + +BB::BB(char *str) +{ + if (a == 0) { + cout << "A not initialized in B constructors " << a << "\n"; + exit(1); + } +} + +BB ab("local"); +AA aa("B"); diff --git a/src/regress/libexec/ld.so/constructor/libab/ab.h b/src/regress/libexec/ld.so/constructor/libab/ab.h new file mode 100644 index 000000000..cdb01ad38 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libab/ab.h @@ -0,0 +1,11 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: ab.h,v 1.1 2003/02/01 19:56:17 drahn Exp $ + */ + +class BB { +public: + BB(char *); +}; + diff --git a/src/regress/libexec/ld.so/constructor/libab/shlib_version b/src/regress/libexec/ld.so/constructor/libab/shlib_version new file mode 100644 index 000000000..b52599a16 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/libab/shlib_version @@ -0,0 +1,2 @@ +major=2 +minor=0 diff --git a/src/regress/libexec/ld.so/constructor/prog1/CVS/Entries b/src/regress/libexec/ld.so/constructor/prog1/CVS/Entries new file mode 100644 index 000000000..954f0efcf --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/prog1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Feb 1 19:56:17 2003// +/prog1.C/1.1/Sat Feb 1 19:56:17 2003// +D diff --git a/src/regress/libexec/ld.so/constructor/prog1/CVS/Repository b/src/regress/libexec/ld.so/constructor/prog1/CVS/Repository new file mode 100644 index 000000000..44d3944cf --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/prog1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/constructor/prog1 diff --git a/src/regress/libexec/ld.so/constructor/prog1/CVS/Root b/src/regress/libexec/ld.so/constructor/prog1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/prog1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/constructor/prog1/Makefile b/src/regress/libexec/ld.so/constructor/prog1/Makefile new file mode 100644 index 000000000..70440f555 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/prog1/Makefile @@ -0,0 +1,34 @@ +# $OpenBSD: Makefile,v 1.1 2003/02/01 19:56:17 drahn Exp $ + +.include + +PROG=prog1 + +SRCS=prog1.C + +AA_DIR=${.CURDIR}/../libaa +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +AB_DIR=${.CURDIR}/../libab +AB_OBJDIR!= if [ -d $(AB_DIR)/${__objdir} ]; then \ + echo "$(AB_DIR)/${__objdir}"; \ + else \ + echo "$(AB_DIR)"; \ + fi + + + +CFLAGS=-I${.CURDIR}/../libab +LDADD= +LDADD+=-lab +LDADD+=-laa +LDFLAGS=-L$(AA_OBJDIR) -L$(AB_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) -Wl,-rpath,$(AB_OBJDIR) +NOMAN= +CC=c++ + +.include diff --git a/src/regress/libexec/ld.so/constructor/prog1/prog1.C b/src/regress/libexec/ld.so/constructor/prog1/prog1.C new file mode 100644 index 000000000..07b7dd1d4 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/prog1/prog1.C @@ -0,0 +1,16 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: prog1.C,v 1.1 2003/02/01 19:56:17 drahn Exp $ + */ +#include "iostream.h" +#include "ab.h" +BB BBmain("main"); + +int a; +int +main() +{ + cout << "main\n"; + return 0; +} diff --git a/src/regress/libexec/ld.so/constructor/prog2/CVS/Entries b/src/regress/libexec/ld.so/constructor/prog2/CVS/Entries new file mode 100644 index 000000000..be43e53c5 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/prog2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Feb 1 19:56:17 2003// +/prog2.C/1.1/Sat Feb 1 19:56:17 2003// +D diff --git a/src/regress/libexec/ld.so/constructor/prog2/CVS/Repository b/src/regress/libexec/ld.so/constructor/prog2/CVS/Repository new file mode 100644 index 000000000..a801bd757 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/prog2/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/constructor/prog2 diff --git a/src/regress/libexec/ld.so/constructor/prog2/CVS/Root b/src/regress/libexec/ld.so/constructor/prog2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/prog2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/constructor/prog2/Makefile b/src/regress/libexec/ld.so/constructor/prog2/Makefile new file mode 100644 index 000000000..a80ede7dd --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/prog2/Makefile @@ -0,0 +1,34 @@ +# $OpenBSD: Makefile,v 1.1 2003/02/01 19:56:17 drahn Exp $ + +.include + +PROG=prog2 + +SRCS=prog2.C + +AA_DIR=${.CURDIR}/../libaa +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +AB_DIR=${.CURDIR}/../libab +AB_OBJDIR!= if [ -d $(AB_DIR)/${__objdir} ]; then \ + echo "$(AB_DIR)/${__objdir}"; \ + else \ + echo "$(AB_DIR)"; \ + fi + + + +CFLAGS=-I${.CURDIR}/../libab +LDADD= +LDADD+=-laa +LDADD+=-lab +LDFLAGS=-L$(AA_OBJDIR) -L$(AB_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) -Wl,-rpath,$(AB_OBJDIR) +NOMAN= +CC=c++ + +.include diff --git a/src/regress/libexec/ld.so/constructor/prog2/prog2.C b/src/regress/libexec/ld.so/constructor/prog2/prog2.C new file mode 100644 index 000000000..5d96a63d8 --- /dev/null +++ b/src/regress/libexec/ld.so/constructor/prog2/prog2.C @@ -0,0 +1,16 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: prog2.C,v 1.1 2003/02/01 19:56:17 drahn Exp $ + */ +#include "iostream.h" +#include "ab.h" +BB BBmain("main"); + +int a; +int +main() +{ + cout << "main\n"; + return 0; +} diff --git a/src/regress/libexec/ld.so/dlclose/CVS/Entries b/src/regress/libexec/ld.so/dlclose/CVS/Entries new file mode 100644 index 000000000..1508b9692 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Fri Sep 30 14:52:23 2005// +D/test1//// +D/test2//// diff --git a/src/regress/libexec/ld.so/dlclose/CVS/Repository b/src/regress/libexec/ld.so/dlclose/CVS/Repository new file mode 100644 index 000000000..c57a18861 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose diff --git a/src/regress/libexec/ld.so/dlclose/CVS/Root b/src/regress/libexec/ld.so/dlclose/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/Makefile b/src/regress/libexec/ld.so/dlclose/Makefile new file mode 100644 index 000000000..936390d70 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2005/09/30 14:52:23 kurt Exp $ + +SUBDIR+= test1 test2 + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test1/CVS/Entries b/src/regress/libexec/ld.so/dlclose/test1/CVS/Entries new file mode 100644 index 000000000..058492540 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/CVS/Entries @@ -0,0 +1,7 @@ +/Makefile/1.2/Fri Sep 30 15:16:18 2005// +/Makefile.inc/1.1.1.1/Wed Sep 28 15:42:32 2005// +D/libaa//// +D/libbb//// +D/prog1//// +D/prog2//// +D/prog3//// diff --git a/src/regress/libexec/ld.so/dlclose/test1/CVS/Repository b/src/regress/libexec/ld.so/dlclose/test1/CVS/Repository new file mode 100644 index 000000000..cc132e3a3 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose/test1 diff --git a/src/regress/libexec/ld.so/dlclose/test1/CVS/Root b/src/regress/libexec/ld.so/dlclose/test1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/test1/Makefile b/src/regress/libexec/ld.so/dlclose/test1/Makefile new file mode 100644 index 000000000..93800d722 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2005/09/30 15:16:18 kurt Exp $ + +SUBDIR+= libbb libaa prog1 prog2 prog3 + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test1/Makefile.inc b/src/regress/libexec/ld.so/dlclose/test1/Makefile.inc new file mode 100644 index 000000000..7950cc7b0 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/Makefile.inc @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile.inc,v 1.1.1.1 2005/09/28 15:42:32 kurt Exp $ + +.include + +AA_DIR=${.CURDIR}/../libaa + +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +BB_DIR=${.CURDIR}/../libbb + +BB_OBJDIR!= if [ -d $(BB_DIR)/${__objdir} ]; then \ + echo "$(BB_DIR)/${__objdir}"; \ + else \ + echo "$(BB_DIR)"; \ + fi diff --git a/src/regress/libexec/ld.so/dlclose/test1/libaa/CVS/Entries b/src/regress/libexec/ld.so/dlclose/test1/libaa/CVS/Entries new file mode 100644 index 000000000..96ef00a31 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libaa/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Wed Sep 28 15:42:32 2005// +/aa.c/1.2/Fri Sep 30 14:57:35 2005// +/shlib_version/1.1.1.1/Wed Sep 28 15:42:32 2005// +D diff --git a/src/regress/libexec/ld.so/dlclose/test1/libaa/CVS/Repository b/src/regress/libexec/ld.so/dlclose/test1/libaa/CVS/Repository new file mode 100644 index 000000000..2a200ca74 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libaa/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose/test1/libaa diff --git a/src/regress/libexec/ld.so/dlclose/test1/libaa/CVS/Root b/src/regress/libexec/ld.so/dlclose/test1/libaa/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libaa/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/test1/libaa/Makefile b/src/regress/libexec/ld.so/dlclose/test1/libaa/Makefile new file mode 100644 index 000000000..1cc2d2ea0 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libaa/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/28 15:42:32 kurt Exp $ + +LIB= aa +SRCS= aa.c +LDADD+= -Wl,-E +LDADD+= -Wl,-rpath,$(BB_OBJDIR) +LDADD+= -L$(BB_OBJDIR) -lbb + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test1/libaa/aa.c b/src/regress/libexec/ld.so/dlclose/test1/libaa/aa.c new file mode 100644 index 000000000..e3bb9af9f --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libaa/aa.c @@ -0,0 +1,27 @@ +/* $OpenBSD: aa.c,v 1.2 2005/09/30 14:57:35 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +int aaSymbol; + +int +duplicateFun() +{ + return (0); +} + diff --git a/src/regress/libexec/ld.so/dlclose/test1/libaa/obj b/src/regress/libexec/ld.so/dlclose/test1/libaa/obj new file mode 120000 index 000000000..a591fbb1c --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libaa/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlclose/test1/libaa \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlclose/test1/libaa/shlib_version b/src/regress/libexec/ld.so/dlclose/test1/libaa/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libaa/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlclose/test1/libbb/CVS/Entries b/src/regress/libexec/ld.so/dlclose/test1/libbb/CVS/Entries new file mode 100644 index 000000000..a4e2d7c52 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libbb/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Wed Sep 28 15:42:32 2005// +/bb.c/1.2/Fri Sep 30 14:57:35 2005// +/shlib_version/1.1.1.1/Wed Sep 28 15:42:32 2005// +D diff --git a/src/regress/libexec/ld.so/dlclose/test1/libbb/CVS/Repository b/src/regress/libexec/ld.so/dlclose/test1/libbb/CVS/Repository new file mode 100644 index 000000000..1d64bf290 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libbb/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose/test1/libbb diff --git a/src/regress/libexec/ld.so/dlclose/test1/libbb/CVS/Root b/src/regress/libexec/ld.so/dlclose/test1/libbb/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libbb/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/test1/libbb/Makefile b/src/regress/libexec/ld.so/dlclose/test1/libbb/Makefile new file mode 100644 index 000000000..e3b246443 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libbb/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/28 15:42:32 kurt Exp $ + +LIB= bb +SRCS= bb.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test1/libbb/bb.c b/src/regress/libexec/ld.so/dlclose/test1/libbb/bb.c new file mode 100644 index 000000000..5ca4ed3dc --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libbb/bb.c @@ -0,0 +1,57 @@ +/* $OpenBSD: bb.c,v 1.2 2005/09/30 14:57:35 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include +#include + +int bbSymbol; + +void +bbLazyFun() +{ + +} + +int +duplicateFun() +{ + return (1); +} + +int +bbTest1() +{ + int ret = 0; + + /* RTLD_DEFAULT should see bbSymbol */ + if (dlsym(RTLD_DEFAULT, "bbSymbol") == NULL) { + printf("dlsym(RTLD_DEFAULT, \"bbSymbol\") == NULL\n"); + ret = 1; + } + + bbLazyFun(); + + return (ret); +} + +int +bbTest2() +{ + return(duplicateFun()); +} diff --git a/src/regress/libexec/ld.so/dlclose/test1/libbb/obj b/src/regress/libexec/ld.so/dlclose/test1/libbb/obj new file mode 120000 index 000000000..aa26dff3c --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libbb/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlclose/test1/libbb \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlclose/test1/libbb/shlib_version b/src/regress/libexec/ld.so/dlclose/test1/libbb/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/libbb/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog1/CVS/Entries b/src/regress/libexec/ld.so/dlclose/test1/prog1/CVS/Entries new file mode 100644 index 000000000..361bac1b5 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Wed Sep 28 15:42:32 2005// +/main.c/1.1.1.1/Wed Sep 28 15:42:32 2005// +D diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog1/CVS/Repository b/src/regress/libexec/ld.so/dlclose/test1/prog1/CVS/Repository new file mode 100644 index 000000000..fab00bf3c --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose/test1/prog1 diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog1/CVS/Root b/src/regress/libexec/ld.so/dlclose/test1/prog1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog1/Makefile b/src/regress/libexec/ld.so/dlclose/test1/prog1/Makefile new file mode 100644 index 000000000..5c81adf1f --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog1/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/28 15:42:32 kurt Exp $ + +PROG= prog1 +SRCS= main.c +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog1/main.c b/src/regress/libexec/ld.so/dlclose/test1/prog1/main.c new file mode 100644 index 000000000..4807dd572 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog1/main.c @@ -0,0 +1,48 @@ +/* $OpenBSD: main.c,v 1.1.1.1 2005/09/28 15:42:32 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int +main() +{ + int ret = 0; + void *libaa; + + libaa = dlopen("libaa.so", RTLD_LAZY|RTLD_GLOBAL); + + if (libaa == NULL) { + printf("dlopen(\"libaa.so\", RTLD_LAZY|RTLD_GLOBAL) FAILED\n"); + return (1); + } + + libaa = dlopen("libaa.so", RTLD_LAZY|RTLD_GLOBAL); + + dlclose(libaa); + + /* RTLD_DEFAULT should see aaSymbol */ + if (dlsym(RTLD_DEFAULT, "aaSymbol") == NULL) { + printf("dlsym(RTLD_DEFAULT, \"aaSymbol\") == NULL\n"); + ret = 1; + } + + dlclose(libaa); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog1/obj b/src/regress/libexec/ld.so/dlclose/test1/prog1/obj new file mode 120000 index 000000000..78e948a4a --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog1/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlclose/test1/prog1 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog2/CVS/Entries b/src/regress/libexec/ld.so/dlclose/test1/prog2/CVS/Entries new file mode 100644 index 000000000..361bac1b5 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Wed Sep 28 15:42:32 2005// +/main.c/1.1.1.1/Wed Sep 28 15:42:32 2005// +D diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog2/CVS/Repository b/src/regress/libexec/ld.so/dlclose/test1/prog2/CVS/Repository new file mode 100644 index 000000000..52d38df21 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog2/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose/test1/prog2 diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog2/CVS/Root b/src/regress/libexec/ld.so/dlclose/test1/prog2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog2/Makefile b/src/regress/libexec/ld.so/dlclose/test1/prog2/Makefile new file mode 100644 index 000000000..c1eb15295 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog2/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/28 15:42:32 kurt Exp $ + +PROG= prog2 +SRCS= main.c +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(BB_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog2/main.c b/src/regress/libexec/ld.so/dlclose/test1/prog2/main.c new file mode 100644 index 000000000..bcfef7b59 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog2/main.c @@ -0,0 +1,49 @@ +/* $OpenBSD: main.c,v 1.1.1.1 2005/09/28 15:42:32 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int +main() +{ + int ret = 0; + int (*bbTest1)(void); + void *libbb = dlopen("libbb.so", RTLD_LAZY); + void *libaa = dlopen("libaa.so", RTLD_LAZY); + + if (libbb == NULL) { + printf("dlopen(\"libbb.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + if (libaa == NULL) { + printf("dlopen(\"libaa.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + bbTest1 = dlsym(libbb, "bbTest1"); + + dlclose(libbb); + + ret = (*bbTest1)(); + + dlclose(libaa); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog2/obj b/src/regress/libexec/ld.so/dlclose/test1/prog2/obj new file mode 120000 index 000000000..dbfcfe793 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog2/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlclose/test1/prog2 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog3/CVS/Entries b/src/regress/libexec/ld.so/dlclose/test1/prog3/CVS/Entries new file mode 100644 index 000000000..d70f7c550 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog3/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Fri Sep 30 15:14:46 2005// +/main.c/1.1.1.1/Fri Sep 30 15:14:46 2005// +D diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog3/CVS/Repository b/src/regress/libexec/ld.so/dlclose/test1/prog3/CVS/Repository new file mode 100644 index 000000000..efbb7b638 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog3/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose/test1/prog3 diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog3/CVS/Root b/src/regress/libexec/ld.so/dlclose/test1/prog3/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog3/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog3/Makefile b/src/regress/libexec/ld.so/dlclose/test1/prog3/Makefile new file mode 100644 index 000000000..9a2e37ad4 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog3/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/30 15:14:46 kurt Exp $ + +PROG= prog3 +SRCS= main.c +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(BB_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog3/main.c b/src/regress/libexec/ld.so/dlclose/test1/prog3/main.c new file mode 100644 index 000000000..635e3c096 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog3/main.c @@ -0,0 +1,56 @@ +/* $OpenBSD: main.c,v 1.1.1.1 2005/09/30 15:14:46 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int +main() +{ + int ret = 0; + int (*bbTest2)(void); + void *libbb; + void *libaa; + + libaa = dlopen("libaa.so", RTLD_LAZY|RTLD_GLOBAL); + libbb = dlopen("libbb.so", RTLD_LAZY|RTLD_GLOBAL); + + if (libaa == NULL) { + printf("dlopen(\"libaa.so\", RTLD_LAZY|RTLD_GLOBAL) FAILED\n"); + return (1); + } + + if (libbb == NULL) { + printf("dlopen(\"libbb.so\", RTLD_LAZY|RTLD_GLOBAL) FAILED\n"); + return (1); + } + + bbTest2 = dlsym(libbb, "bbTest2"); + + /* call bbTest2 to force lazy binding to duplicateFun in libaa */ + (*bbTest2)(); + + dlclose(libaa); + + /* call bbTest2 again to ensure libaa was not unloaded (still needed) */ + ret = (*bbTest2)(); + + dlclose(libbb); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlclose/test1/prog3/obj b/src/regress/libexec/ld.so/dlclose/test1/prog3/obj new file mode 120000 index 000000000..607cb696a --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test1/prog3/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlclose/test1/prog3 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlclose/test2/CVS/Entries b/src/regress/libexec/ld.so/dlclose/test2/CVS/Entries new file mode 100644 index 000000000..906b77d2b --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/CVS/Entries @@ -0,0 +1,7 @@ +/Makefile/1.1.1.1/Fri Sep 30 14:51:52 2005// +/Makefile.inc/1.1.1.1/Fri Sep 30 14:51:52 2005// +D/libaa//// +D/libbb//// +D/libcc//// +D/libzz//// +D/prog1//// diff --git a/src/regress/libexec/ld.so/dlclose/test2/CVS/Repository b/src/regress/libexec/ld.so/dlclose/test2/CVS/Repository new file mode 100644 index 000000000..b3897cd82 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose/test2 diff --git a/src/regress/libexec/ld.so/dlclose/test2/CVS/Root b/src/regress/libexec/ld.so/dlclose/test2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/test2/Makefile b/src/regress/libexec/ld.so/dlclose/test2/Makefile new file mode 100644 index 000000000..1be41e98e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $ + +SUBDIR+= libzz libcc libbb libaa prog1 + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test2/Makefile.inc b/src/regress/libexec/ld.so/dlclose/test2/Makefile.inc new file mode 100644 index 000000000..29fa31b06 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/Makefile.inc @@ -0,0 +1,35 @@ +# $OpenBSD: Makefile.inc,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $ + +.include + +AA_DIR=${.CURDIR}/../libaa + +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +BB_DIR=${.CURDIR}/../libbb + +BB_OBJDIR!= if [ -d $(BB_DIR)/${__objdir} ]; then \ + echo "$(BB_DIR)/${__objdir}"; \ + else \ + echo "$(BB_DIR)"; \ + fi + +CC_DIR=${.CURDIR}/../libcc + +CC_OBJDIR!= if [ -d $(CC_DIR)/${__objdir} ]; then \ + echo "$(CC_DIR)/${__objdir}"; \ + else \ + echo "$(CC_DIR)"; \ + fi + +ZZ_DIR=${.CURDIR}/../libzz + +ZZ_OBJDIR!= if [ -d $(ZZ_DIR)/${__objdir} ]; then \ + echo "$(ZZ_DIR)/${__objdir}"; \ + else \ + echo "$(ZZ_DIR)"; \ + fi diff --git a/src/regress/libexec/ld.so/dlclose/test2/libaa/CVS/Entries b/src/regress/libexec/ld.so/dlclose/test2/libaa/CVS/Entries new file mode 100644 index 000000000..c2c425fd7 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libaa/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Fri Sep 30 14:51:52 2005// +/aa.c/1.1.1.1/Fri Sep 30 14:51:52 2005// +/shlib_version/1.1.1.1/Fri Sep 30 14:51:52 2005// +D diff --git a/src/regress/libexec/ld.so/dlclose/test2/libaa/CVS/Repository b/src/regress/libexec/ld.so/dlclose/test2/libaa/CVS/Repository new file mode 100644 index 000000000..ac6b734b3 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libaa/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose/test2/libaa diff --git a/src/regress/libexec/ld.so/dlclose/test2/libaa/CVS/Root b/src/regress/libexec/ld.so/dlclose/test2/libaa/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libaa/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/test2/libaa/Makefile b/src/regress/libexec/ld.so/dlclose/test2/libaa/Makefile new file mode 100644 index 000000000..ab782f45d --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libaa/Makefile @@ -0,0 +1,13 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $ + +LIB= aa +SRCS= aa.c +LDADD+= -Wl,-E +LDADD+= -Wl,-rpath,$(BB_OBJDIR) +LDADD+= -Wl,-rpath,$(CC_OBJDIR) +LDADD+= -L$(BB_OBJDIR) -lbb +LDADD+= -L$(CC_OBJDIR) -lcc + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test2/libaa/aa.c b/src/regress/libexec/ld.so/dlclose/test2/libaa/aa.c new file mode 100644 index 000000000..3b4bae192 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libaa/aa.c @@ -0,0 +1,20 @@ +/* $OpenBSD: aa.c,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +int aaSymbol; diff --git a/src/regress/libexec/ld.so/dlclose/test2/libaa/obj b/src/regress/libexec/ld.so/dlclose/test2/libaa/obj new file mode 120000 index 000000000..34f70caf7 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libaa/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlclose/test2/libaa \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlclose/test2/libaa/shlib_version b/src/regress/libexec/ld.so/dlclose/test2/libaa/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libaa/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlclose/test2/libbb/CVS/Entries b/src/regress/libexec/ld.so/dlclose/test2/libbb/CVS/Entries new file mode 100644 index 000000000..ddc5f23bc --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libbb/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Fri Sep 30 14:51:52 2005// +/bb.c/1.1.1.1/Fri Sep 30 14:51:52 2005// +/shlib_version/1.1.1.1/Fri Sep 30 14:51:52 2005// +D diff --git a/src/regress/libexec/ld.so/dlclose/test2/libbb/CVS/Repository b/src/regress/libexec/ld.so/dlclose/test2/libbb/CVS/Repository new file mode 100644 index 000000000..df0c4b8f7 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libbb/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose/test2/libbb diff --git a/src/regress/libexec/ld.so/dlclose/test2/libbb/CVS/Root b/src/regress/libexec/ld.so/dlclose/test2/libbb/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libbb/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/test2/libbb/Makefile b/src/regress/libexec/ld.so/dlclose/test2/libbb/Makefile new file mode 100644 index 000000000..4d2ab5ffa --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libbb/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $ + +LIB= bb +SRCS= bb.c +LDADD+= -Wl,-E +LDADD+= -Wl,-rpath,$(ZZ_OBJDIR) +LDADD+= -L$(ZZ_OBJDIR) -lzz + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test2/libbb/bb.c b/src/regress/libexec/ld.so/dlclose/test2/libbb/bb.c new file mode 100644 index 000000000..ba123dd25 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libbb/bb.c @@ -0,0 +1,20 @@ +/* $OpenBSD: bb.c,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +int bbSymbol; diff --git a/src/regress/libexec/ld.so/dlclose/test2/libbb/obj b/src/regress/libexec/ld.so/dlclose/test2/libbb/obj new file mode 120000 index 000000000..461cf9d5c --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libbb/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlclose/test2/libbb \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlclose/test2/libbb/shlib_version b/src/regress/libexec/ld.so/dlclose/test2/libbb/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libbb/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlclose/test2/libcc/CVS/Entries b/src/regress/libexec/ld.so/dlclose/test2/libcc/CVS/Entries new file mode 100644 index 000000000..bfa6571f1 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libcc/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Fri Sep 30 14:51:52 2005// +/cc.c/1.1.1.1/Fri Sep 30 14:51:52 2005// +/shlib_version/1.1.1.1/Fri Sep 30 14:51:52 2005// +D diff --git a/src/regress/libexec/ld.so/dlclose/test2/libcc/CVS/Repository b/src/regress/libexec/ld.so/dlclose/test2/libcc/CVS/Repository new file mode 100644 index 000000000..e668144e2 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libcc/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose/test2/libcc diff --git a/src/regress/libexec/ld.so/dlclose/test2/libcc/CVS/Root b/src/regress/libexec/ld.so/dlclose/test2/libcc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libcc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/test2/libcc/Makefile b/src/regress/libexec/ld.so/dlclose/test2/libcc/Makefile new file mode 100644 index 000000000..1d1b49834 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libcc/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $ + +LIB= cc +SRCS= cc.c +LDADD+= -Wl,-E +LDADD+= -Wl,-rpath,$(ZZ_OBJDIR) +LDADD+= -L$(ZZ_OBJDIR) -lzz + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test2/libcc/cc.c b/src/regress/libexec/ld.so/dlclose/test2/libcc/cc.c new file mode 100644 index 000000000..b93f0a89f --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libcc/cc.c @@ -0,0 +1,20 @@ +/* $OpenBSD: cc.c,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +int ccSymbol; diff --git a/src/regress/libexec/ld.so/dlclose/test2/libcc/obj b/src/regress/libexec/ld.so/dlclose/test2/libcc/obj new file mode 120000 index 000000000..f97373fe6 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libcc/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlclose/test2/libcc \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlclose/test2/libcc/shlib_version b/src/regress/libexec/ld.so/dlclose/test2/libcc/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libcc/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlclose/test2/libzz/CVS/Entries b/src/regress/libexec/ld.so/dlclose/test2/libzz/CVS/Entries new file mode 100644 index 000000000..db223661b --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libzz/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Fri Sep 30 14:51:52 2005// +/shlib_version/1.1.1.1/Fri Sep 30 14:51:52 2005// +/zz.c/1.1.1.1/Fri Sep 30 14:51:52 2005// +D diff --git a/src/regress/libexec/ld.so/dlclose/test2/libzz/CVS/Repository b/src/regress/libexec/ld.so/dlclose/test2/libzz/CVS/Repository new file mode 100644 index 000000000..614f068cc --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libzz/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose/test2/libzz diff --git a/src/regress/libexec/ld.so/dlclose/test2/libzz/CVS/Root b/src/regress/libexec/ld.so/dlclose/test2/libzz/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libzz/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/test2/libzz/Makefile b/src/regress/libexec/ld.so/dlclose/test2/libzz/Makefile new file mode 100644 index 000000000..c51fb0925 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libzz/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $ + +LIB= zz +SRCS= zz.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test2/libzz/obj b/src/regress/libexec/ld.so/dlclose/test2/libzz/obj new file mode 120000 index 000000000..cfc874747 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libzz/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlclose/test2/libzz \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlclose/test2/libzz/shlib_version b/src/regress/libexec/ld.so/dlclose/test2/libzz/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libzz/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlclose/test2/libzz/zz.c b/src/regress/libexec/ld.so/dlclose/test2/libzz/zz.c new file mode 100644 index 000000000..17c986a35 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/libzz/zz.c @@ -0,0 +1,20 @@ +/* $OpenBSD: zz.c,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +int zzSymbol; diff --git a/src/regress/libexec/ld.so/dlclose/test2/prog1/CVS/Entries b/src/regress/libexec/ld.so/dlclose/test2/prog1/CVS/Entries new file mode 100644 index 000000000..0b240487e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/prog1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Fri Sep 30 14:51:52 2005// +/main.c/1.1.1.1/Fri Sep 30 14:51:52 2005// +D diff --git a/src/regress/libexec/ld.so/dlclose/test2/prog1/CVS/Repository b/src/regress/libexec/ld.so/dlclose/test2/prog1/CVS/Repository new file mode 100644 index 000000000..f79e83b00 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/prog1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlclose/test2/prog1 diff --git a/src/regress/libexec/ld.so/dlclose/test2/prog1/CVS/Root b/src/regress/libexec/ld.so/dlclose/test2/prog1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/prog1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlclose/test2/prog1/Makefile b/src/regress/libexec/ld.so/dlclose/test2/prog1/Makefile new file mode 100644 index 000000000..2750853da --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/prog1/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $ + +PROG= prog1 +SRCS= main.c +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlclose/test2/prog1/main.c b/src/regress/libexec/ld.so/dlclose/test2/prog1/main.c new file mode 100644 index 000000000..10ba7b350 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/prog1/main.c @@ -0,0 +1,53 @@ +/* $OpenBSD: main.c,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int +main() +{ + int ret = 0; + void *libaa; + + libaa = dlopen("libaa.so", RTLD_LAZY); + + if (libaa == NULL) { + printf("dlopen(\"libaa.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + if(dlclose(libaa)) { + printf("dlclose(libaa) FAILED\n%s\n",dlerror()); + ret = 1; + } + + libaa = dlopen("libaa.so", RTLD_LAZY); + + if (libaa == NULL) { + printf("dlopen(\"libaa.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + if(dlclose(libaa)) { + printf("dlclose(libaa) FAILED\n%s\n",dlerror()); + ret = 1; + } + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlclose/test2/prog1/obj b/src/regress/libexec/ld.so/dlclose/test2/prog1/obj new file mode 120000 index 000000000..8f522be41 --- /dev/null +++ b/src/regress/libexec/ld.so/dlclose/test2/prog1/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlclose/test2/prog1 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlopen/CVS/Entries b/src/regress/libexec/ld.so/dlopen/CVS/Entries new file mode 100644 index 000000000..201b45ac9 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/CVS/Entries @@ -0,0 +1,8 @@ +/Makefile/1.2/Sat Sep 17 02:58:54 2005// +D/libaa//// +D/libab//// +D/libac//// +D/prog1//// +D/prog2//// +D/prog3//// +D/prog4//// diff --git a/src/regress/libexec/ld.so/dlopen/CVS/Repository b/src/regress/libexec/ld.so/dlopen/CVS/Repository new file mode 100644 index 000000000..df8337558 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlopen diff --git a/src/regress/libexec/ld.so/dlopen/CVS/Root b/src/regress/libexec/ld.so/dlopen/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlopen/Makefile b/src/regress/libexec/ld.so/dlopen/Makefile new file mode 100644 index 000000000..1b6bdeec5 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/Makefile @@ -0,0 +1,3 @@ +SUBDIR=libaa libab libac prog1 prog2 prog3 prog4 + +.include diff --git a/src/regress/libexec/ld.so/dlopen/libaa/CVS/Entries b/src/regress/libexec/ld.so/dlopen/libaa/CVS/Entries new file mode 100644 index 000000000..239a79514 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libaa/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.2/Sun Sep 18 22:29:45 2005// +/aa.C/1.4/Mon Sep 19 18:39:37 2005// +/aa.h/1.1.1.1/Tue Sep 13 20:51:39 2005// +/shlib_version/1.1.1.1/Tue Sep 13 20:51:39 2005// +D diff --git a/src/regress/libexec/ld.so/dlopen/libaa/CVS/Repository b/src/regress/libexec/ld.so/dlopen/libaa/CVS/Repository new file mode 100644 index 000000000..d9ceaeece --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libaa/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlopen/libaa diff --git a/src/regress/libexec/ld.so/dlopen/libaa/CVS/Root b/src/regress/libexec/ld.so/dlopen/libaa/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libaa/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlopen/libaa/Makefile b/src/regress/libexec/ld.so/dlopen/libaa/Makefile new file mode 100644 index 000000000..2e48c8a1e --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libaa/Makefile @@ -0,0 +1,6 @@ +LIB=aa +SRCS= aa.C +NOPROFILE=yes +regress: all +.include + diff --git a/src/regress/libexec/ld.so/dlopen/libaa/aa.C b/src/regress/libexec/ld.so/dlopen/libaa/aa.C new file mode 100644 index 000000000..8655a96ed --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libaa/aa.C @@ -0,0 +1,34 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: aa.C,v 1.4 2005/09/19 18:39:37 deraadt Exp $ + */ + +#include +#include +#include "aa.h" +char strbuf[512]; + +extern "C" { +char *libname = "libaa"; +}; + +extern "C" char * +lib_entry() +{ + strlcpy(strbuf, libname, sizeof strbuf); + strlcat(strbuf, ":", sizeof strbuf); + strlcat(strbuf, "aa", sizeof strbuf); + return strbuf; + std::cout << "called into aa " << libname << " libname " << "\n"; +} + +AA::AA(char *arg) +{ + _name = arg; +} +AA::~AA() +{ +} + +AA foo("A"); diff --git a/src/regress/libexec/ld.so/dlopen/libaa/aa.h b/src/regress/libexec/ld.so/dlopen/libaa/aa.h new file mode 100644 index 000000000..f4cc1f0e9 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libaa/aa.h @@ -0,0 +1,9 @@ +class AA { +public: + AA(char *); + ~AA(); +private: + char *_name; +}; + + diff --git a/src/regress/libexec/ld.so/dlopen/libaa/obj b/src/regress/libexec/ld.so/dlopen/libaa/obj new file mode 120000 index 000000000..fd8c16939 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libaa/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlopen/libaa \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlopen/libaa/shlib_version b/src/regress/libexec/ld.so/dlopen/libaa/shlib_version new file mode 100644 index 000000000..97c9f92d6 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libaa/shlib_version @@ -0,0 +1,2 @@ +major=0 +minor=0 diff --git a/src/regress/libexec/ld.so/dlopen/libab/CVS/Entries b/src/regress/libexec/ld.so/dlopen/libab/CVS/Entries new file mode 100644 index 000000000..15dca8225 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libab/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.2/Sun Sep 18 22:29:45 2005// +/ab.C/1.4/Mon Sep 19 18:39:37 2005// +/ab.h/1.1.1.1/Tue Sep 13 20:51:39 2005// +/shlib_version/1.1.1.1/Tue Sep 13 20:51:39 2005// +D diff --git a/src/regress/libexec/ld.so/dlopen/libab/CVS/Repository b/src/regress/libexec/ld.so/dlopen/libab/CVS/Repository new file mode 100644 index 000000000..549d21a94 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libab/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlopen/libab diff --git a/src/regress/libexec/ld.so/dlopen/libab/CVS/Root b/src/regress/libexec/ld.so/dlopen/libab/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libab/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlopen/libab/Makefile b/src/regress/libexec/ld.so/dlopen/libab/Makefile new file mode 100644 index 000000000..15fa519cb --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libab/Makefile @@ -0,0 +1,7 @@ +LIB=ab +SRCS= ab.C +#CFLAGS=-I${.CURDIR}/../libaa +#LDADD=-L../libaa +#LDADD+=-laa +regress: all +.include diff --git a/src/regress/libexec/ld.so/dlopen/libab/ab.C b/src/regress/libexec/ld.so/dlopen/libab/ab.C new file mode 100644 index 000000000..f9e3ef719 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libab/ab.C @@ -0,0 +1,36 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: ab.C,v 1.4 2005/09/19 18:39:37 deraadt Exp $ + */ + +#include +#include +#include +#include "ab.h" + +char strbuf[512]; + +extern "C" { +char *libname = "libab"; +}; + +extern "C" char * +lib_entry() +{ + strlcpy(strbuf, libname, sizeof strbuf); + strlcat(strbuf, ":", sizeof strbuf); + strlcat(strbuf, "ab", sizeof strbuf); + return strbuf; + std::cout << "called into ab " << libname << " libname " << "\n"; +} + +BB::BB(char *str) +{ + _name = str; +} + +BB::~BB() +{ +} +BB ab("local"); diff --git a/src/regress/libexec/ld.so/dlopen/libab/ab.h b/src/regress/libexec/ld.so/dlopen/libab/ab.h new file mode 100644 index 000000000..25e07ef6e --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libab/ab.h @@ -0,0 +1,14 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: ab.h,v 1.1.1.1 2005/09/13 20:51:39 drahn Exp $ + */ + +class BB { +public: + BB(char *); + ~BB(); +private: + char *_name; +}; + diff --git a/src/regress/libexec/ld.so/dlopen/libab/obj b/src/regress/libexec/ld.so/dlopen/libab/obj new file mode 120000 index 000000000..0fb901554 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libab/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlopen/libab \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlopen/libab/shlib_version b/src/regress/libexec/ld.so/dlopen/libab/shlib_version new file mode 100644 index 000000000..97c9f92d6 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libab/shlib_version @@ -0,0 +1,2 @@ +major=0 +minor=0 diff --git a/src/regress/libexec/ld.so/dlopen/libac/CVS/Entries b/src/regress/libexec/ld.so/dlopen/libac/CVS/Entries new file mode 100644 index 000000000..39ebd1db8 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libac/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.2/Sun Sep 18 22:29:45 2005// +/ac.C/1.2/Sun Sep 18 19:58:50 2005// +/ac.h/1.1/Sat Sep 17 02:58:54 2005// +/shlib_version/1.1/Sat Sep 17 02:58:54 2005// +D diff --git a/src/regress/libexec/ld.so/dlopen/libac/CVS/Repository b/src/regress/libexec/ld.so/dlopen/libac/CVS/Repository new file mode 100644 index 000000000..ed385d52c --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libac/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlopen/libac diff --git a/src/regress/libexec/ld.so/dlopen/libac/CVS/Root b/src/regress/libexec/ld.so/dlopen/libac/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libac/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlopen/libac/Makefile b/src/regress/libexec/ld.so/dlopen/libac/Makefile new file mode 100644 index 000000000..8aeef8764 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libac/Makefile @@ -0,0 +1,7 @@ +LIB=ac +SRCS= ac.C +#CFLAGS=-I${.CURDIR}/../libaa +LDADD=-L../libaa +LDADD+=-laa +regress: all +.include diff --git a/src/regress/libexec/ld.so/dlopen/libac/ac.C b/src/regress/libexec/ld.so/dlopen/libac/ac.C new file mode 100644 index 000000000..9b9f239a9 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libac/ac.C @@ -0,0 +1,31 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: ac.C,v 1.2 2005/09/18 19:58:50 drahn Exp $ + */ + +#include +#include +#include "ac.h" + +extern int a; + +extern "C" { +char *libname = "libac"; +}; + +extern "C" void +lib_entry() +{ + std::cout << "called into ac " << libname << " libname " << "\n"; +} + +AC::AC(char *str) +{ + _name = str; +} + +AC::~AC() +{ +} +AC ac("local"); diff --git a/src/regress/libexec/ld.so/dlopen/libac/ac.h b/src/regress/libexec/ld.so/dlopen/libac/ac.h new file mode 100644 index 000000000..8a33b847d --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libac/ac.h @@ -0,0 +1,14 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: ac.h,v 1.1 2005/09/17 02:58:54 drahn Exp $ + */ + +class AC { +public: + AC(char *); + ~AC(); +private: + char *_name; +}; + diff --git a/src/regress/libexec/ld.so/dlopen/libac/obj b/src/regress/libexec/ld.so/dlopen/libac/obj new file mode 120000 index 000000000..a703c4cbf --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libac/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlopen/libac \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlopen/libac/shlib_version b/src/regress/libexec/ld.so/dlopen/libac/shlib_version new file mode 100644 index 000000000..97c9f92d6 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/libac/shlib_version @@ -0,0 +1,2 @@ +major=0 +minor=0 diff --git a/src/regress/libexec/ld.so/dlopen/prog1/CVS/Entries b/src/regress/libexec/ld.so/dlopen/prog1/CVS/Entries new file mode 100644 index 000000000..90df10fbb --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Sat Sep 17 02:58:54 2005// +/prog1.C/1.4/Mon Sep 19 18:39:38 2005// +D diff --git a/src/regress/libexec/ld.so/dlopen/prog1/CVS/Repository b/src/regress/libexec/ld.so/dlopen/prog1/CVS/Repository new file mode 100644 index 000000000..769a9dbb2 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlopen/prog1 diff --git a/src/regress/libexec/ld.so/dlopen/prog1/CVS/Root b/src/regress/libexec/ld.so/dlopen/prog1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlopen/prog1/Makefile b/src/regress/libexec/ld.so/dlopen/prog1/Makefile new file mode 100644 index 000000000..89680119a --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog1/Makefile @@ -0,0 +1,36 @@ +# $OpenBSD: Makefile,v 1.3 2005/09/17 02:58:54 drahn Exp $ + +.include + +PROG=prog1 + +SRCS=prog1.C + +AA_DIR=${.CURDIR}/../libaa +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +AB_DIR=${.CURDIR}/../libab +AB_OBJDIR!= if [ -d $(AB_DIR)/${__objdir} ]; then \ + echo "$(AB_DIR)/${__objdir}"; \ + else \ + echo "$(AB_DIR)"; \ + fi + + + +CFLAGS=-I${.CURDIR}/../libab +CFLAGS+=-g +LDADD= +#LDADD+=-lab +#LDADD+=-laa +#LDFLAGS=-L$(AA_OBJDIR) -L$(AB_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) -Wl,-rpath,$(AB_OBJDIR) +NOMAN= +CC=c++ +LD_LIBRARY_PATH=$(AA_OBJDIR):$(AB_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlopen/prog1/obj b/src/regress/libexec/ld.so/dlopen/prog1/obj new file mode 120000 index 000000000..319165b05 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog1/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlopen/prog1 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlopen/prog1/prog1.C b/src/regress/libexec/ld.so/dlopen/prog1/prog1.C new file mode 100644 index 000000000..6a529838f --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog1/prog1.C @@ -0,0 +1,64 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: prog1.C,v 1.4 2005/09/19 18:39:38 deraadt Exp $ + */ +#include +#include +#include +#include +typedef char * (cp_func)(void); +int a; +int +main() +{ + void *handle1; + void *handle2; + char **libname; + char *str; + cp_func *func; + int ret = 0; + + std::cout << "main\n"; + handle1 = dlopen("libaa.so.0.0", DL_LAZY); + if (handle1 == NULL) { + std::cout << "handle1 open libaa failed\n"; + return (1); + } + handle2 = dlopen("libab.so.0.0", DL_LAZY); + if (handle2 == NULL) { + std::cout << "handle2 open libab failed\n"; + return (1); + } + + libname = (char **)dlsym(handle1, "libname"); + if (strcmp(*libname, "libaa") != 0) { + std::cout << "handle1 is " << *libname << "\n"; + return (1); + } + + libname = (char **)dlsym(handle2, "libname"); + if (strcmp(*libname, "libab") != 0) { + std::cout << "handle2 is " << *libname << "\n"; + return (1); + } + + func = (cp_func*)dlsym(handle1, "lib_entry"); + str = (*func)(); + if (strcmp(str, "libaa:aa") != 0) { + printf("func should have returned libaa:aa returned %s\n", str); + ret = 1; + } + + func = (cp_func*)dlsym(handle2, "lib_entry"); + str = (*func)(); + if (strcmp(str, "libab:ab") != 0) { + printf("func should have returned libab:ab returned %s\n", str); + ret = 1; + } + + dlclose(handle1); + dlclose(handle2); + + return ret; +} diff --git a/src/regress/libexec/ld.so/dlopen/prog2/CVS/Entries b/src/regress/libexec/ld.so/dlopen/prog2/CVS/Entries new file mode 100644 index 000000000..17c6cfa04 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Tue Sep 13 20:51:39 2005// +/prog2.C/1.1.1.1/Tue Sep 13 20:51:39 2005// +D diff --git a/src/regress/libexec/ld.so/dlopen/prog2/CVS/Repository b/src/regress/libexec/ld.so/dlopen/prog2/CVS/Repository new file mode 100644 index 000000000..14b570267 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog2/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlopen/prog2 diff --git a/src/regress/libexec/ld.so/dlopen/prog2/CVS/Root b/src/regress/libexec/ld.so/dlopen/prog2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlopen/prog2/Makefile b/src/regress/libexec/ld.so/dlopen/prog2/Makefile new file mode 100644 index 000000000..85f89a337 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog2/Makefile @@ -0,0 +1,34 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/13 20:51:39 drahn Exp $ + +.include + +PROG=prog2 + +SRCS=prog2.C + +AA_DIR=${.CURDIR}/../libaa +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +AB_DIR=${.CURDIR}/../libab +AB_OBJDIR!= if [ -d $(AB_DIR)/${__objdir} ]; then \ + echo "$(AB_DIR)/${__objdir}"; \ + else \ + echo "$(AB_DIR)"; \ + fi + + + +CFLAGS=-I${.CURDIR}/../libab +LDADD= +LDADD+=-laa +LDADD+=-lab +LDFLAGS=-L$(AA_OBJDIR) -L$(AB_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) -Wl,-rpath,$(AB_OBJDIR) +NOMAN= +CC=c++ + +.include diff --git a/src/regress/libexec/ld.so/dlopen/prog2/obj b/src/regress/libexec/ld.so/dlopen/prog2/obj new file mode 120000 index 000000000..354df1f36 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog2/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlopen/prog2 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlopen/prog2/prog2.C b/src/regress/libexec/ld.so/dlopen/prog2/prog2.C new file mode 100644 index 000000000..3ff3926db --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog2/prog2.C @@ -0,0 +1,16 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: prog2.C,v 1.1.1.1 2005/09/13 20:51:39 drahn Exp $ + */ +#include +#include "ab.h" +BB BBmain("main"); + +int a; +int +main() +{ + std::cout << "main\n"; + return 0; +} diff --git a/src/regress/libexec/ld.so/dlopen/prog3/CVS/Entries b/src/regress/libexec/ld.so/dlopen/prog3/CVS/Entries new file mode 100644 index 000000000..84aaa0d45 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog3/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Wed Sep 21 18:01:28 2005// +/main.c/1.2/Sun Sep 18 19:58:50 2005// +D diff --git a/src/regress/libexec/ld.so/dlopen/prog3/CVS/Repository b/src/regress/libexec/ld.so/dlopen/prog3/CVS/Repository new file mode 100644 index 000000000..ecfc40c44 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog3/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlopen/prog3 diff --git a/src/regress/libexec/ld.so/dlopen/prog3/CVS/Root b/src/regress/libexec/ld.so/dlopen/prog3/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog3/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlopen/prog3/Makefile b/src/regress/libexec/ld.so/dlopen/prog3/Makefile new file mode 100644 index 000000000..be8d9d8bf --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog3/Makefile @@ -0,0 +1,34 @@ +# $OpenBSD: Makefile,v 1.2 2005/09/21 18:01:28 drahn Exp $ + +.include + +PROG=prog3 + +SRCS=main.c + +AA_DIR=${.CURDIR}/../libaa +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +AC_DIR=${.CURDIR}/../libac +AC_OBJDIR!= if [ -d $(AC_DIR)/${__objdir} ]; then \ + echo "$(AC_DIR)/${__objdir}"; \ + else \ + echo "$(AC_DIR)"; \ + fi + + + +CFLAGS=-I${.CURDIR}/../libac +LDADD= +#LDADD+=-laa +#LDADD+=-lac +LDFLAGS=-L$(AA_OBJDIR) -L$(AC_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) -Wl,-rpath,$(AC_OBJDIR) +NOMAN= +CC=c++ + +.include diff --git a/src/regress/libexec/ld.so/dlopen/prog3/main.c b/src/regress/libexec/ld.so/dlopen/prog3/main.c new file mode 100644 index 000000000..4801e6c5f --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog3/main.c @@ -0,0 +1,21 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: main.c,v 1.2 2005/09/18 19:58:50 drahn Exp $ + */ +#include +#include + +int +main() +{ + void *handle; + int ret = 0; + + handle = dlopen("libac.so.0.0", RTLD_LAZY); + if (handle == NULL) { + printf("failed to open libac and it's dependancies\n"); + ret = 1; + } + return ret; +} diff --git a/src/regress/libexec/ld.so/dlopen/prog3/obj b/src/regress/libexec/ld.so/dlopen/prog3/obj new file mode 120000 index 000000000..4e60eb972 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog3/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlopen/prog3 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlopen/prog4/CVS/Entries b/src/regress/libexec/ld.so/dlopen/prog4/CVS/Entries new file mode 100644 index 000000000..d954cdb8e --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog4/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Wed Sep 21 18:02:44 2005// +/main.c/1.2/Sun Sep 18 19:58:50 2005// +D diff --git a/src/regress/libexec/ld.so/dlopen/prog4/CVS/Repository b/src/regress/libexec/ld.so/dlopen/prog4/CVS/Repository new file mode 100644 index 000000000..66f34bd79 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog4/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlopen/prog4 diff --git a/src/regress/libexec/ld.so/dlopen/prog4/CVS/Root b/src/regress/libexec/ld.so/dlopen/prog4/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog4/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlopen/prog4/Makefile b/src/regress/libexec/ld.so/dlopen/prog4/Makefile new file mode 100644 index 000000000..b145a9440 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog4/Makefile @@ -0,0 +1,36 @@ +# $OpenBSD: Makefile,v 1.2 2005/09/21 18:02:44 drahn Exp $ + +.include + +PROG=prog4 + +SRCS=main.c + +AA_DIR=${.CURDIR}/../libaa +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +AC_DIR=${.CURDIR}/../libac +AC_OBJDIR!= if [ -d $(AC_DIR)/${__objdir} ]; then \ + echo "$(AC_DIR)/${__objdir}"; \ + else \ + echo "$(AC_DIR)"; \ + fi + + + +CFLAGS=-I${.CURDIR}/../libac +LDADD= +#LDADD+=-laa +#LDADD+=-lac +LDFLAGS=-L$(AA_OBJDIR) -L$(AC_OBJDIR) +#LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) -Wl,-rpath,$(AC_OBJDIR) +# This intentionally leaves out AA_OBJDIR from -rpath +LDFLAGS+= -Wl,-rpath,$(AC_OBJDIR) +NOMAN= +CC=c++ + +.include diff --git a/src/regress/libexec/ld.so/dlopen/prog4/main.c b/src/regress/libexec/ld.so/dlopen/prog4/main.c new file mode 100644 index 000000000..7bc8faa98 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog4/main.c @@ -0,0 +1,22 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: main.c,v 1.2 2005/09/18 19:58:50 drahn Exp $ + */ +#include +#include + +int +main() +{ + void *handle; + int ret = 0; + + handle = dlopen("libac.so.0.0", RTLD_LAZY); + if (handle != NULL) { + printf("found libaa, dependancy of libac, not expected\n"); + ret = 1; + } + + return ret; +} diff --git a/src/regress/libexec/ld.so/dlopen/prog4/obj b/src/regress/libexec/ld.so/dlopen/prog4/obj new file mode 120000 index 000000000..4673a59e4 --- /dev/null +++ b/src/regress/libexec/ld.so/dlopen/prog4/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlopen/prog4 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/CVS/Entries b/src/regress/libexec/ld.so/dlsym/CVS/Entries new file mode 100644 index 000000000..0656f2ce8 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.3/Mon Sep 19 03:34:58 2005// +D/test1//// +D/test2//// +D/test3//// diff --git a/src/regress/libexec/ld.so/dlsym/CVS/Repository b/src/regress/libexec/ld.so/dlsym/CVS/Repository new file mode 100644 index 000000000..08b34634e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym diff --git a/src/regress/libexec/ld.so/dlsym/CVS/Root b/src/regress/libexec/ld.so/dlsym/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/Makefile b/src/regress/libexec/ld.so/dlsym/Makefile new file mode 100644 index 000000000..31e5d86bb --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.3 2005/09/19 03:34:58 kurt Exp $ + +SUBDIR+= test1 test2 test3 + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test1/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test1/CVS/Entries new file mode 100644 index 000000000..f8d3db73b --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.2/Thu Sep 15 15:38:34 2005// +D/libaa//// +D/prog1//// +D/prog2//// diff --git a/src/regress/libexec/ld.so/dlsym/test1/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test1/CVS/Repository new file mode 100644 index 000000000..72659d3e1 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test1 diff --git a/src/regress/libexec/ld.so/dlsym/test1/CVS/Root b/src/regress/libexec/ld.so/dlsym/test1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test1/Makefile b/src/regress/libexec/ld.so/dlsym/test1/Makefile new file mode 100644 index 000000000..4cdcf60b3 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2005/09/15 15:38:34 kurt Exp $ + +SUBDIR+= libaa prog1 prog2 + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test1/libaa/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test1/libaa/CVS/Entries new file mode 100644 index 000000000..ac68ef9dc --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/libaa/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.3/Mon Sep 19 03:57:07 2005// +/aa.c/1.3/Fri Sep 16 23:30:25 2005// +/aa.h/1.1.1.1/Wed Sep 14 15:59:37 2005// +/shlib_version/1.1.1.1/Wed Sep 14 15:59:37 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test1/libaa/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test1/libaa/CVS/Repository new file mode 100644 index 000000000..6197bdf54 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/libaa/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test1/libaa diff --git a/src/regress/libexec/ld.so/dlsym/test1/libaa/CVS/Root b/src/regress/libexec/ld.so/dlsym/test1/libaa/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/libaa/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test1/libaa/Makefile b/src/regress/libexec/ld.so/dlsym/test1/libaa/Makefile new file mode 100644 index 000000000..04c8765dc --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/libaa/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.3 2005/09/19 03:57:07 kurt Exp $ + +LIB= aa +SRCS= aa.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test1/libaa/aa.c b/src/regress/libexec/ld.so/dlsym/test1/libaa/aa.c new file mode 100644 index 000000000..0cf335db4 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/libaa/aa.c @@ -0,0 +1,90 @@ +/* $OpenBSD: aa.c,v 1.3 2005/09/16 23:30:25 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include +#include +#include "aa.h" + +int aaSymbol; + +void +sigprocmask() { +} + +/* + * aaTest verifies dlsym works as expected with a simple case of duplicate + * symbols. prog1, libaa and libc all have the sigprocmask symbol and are + * linked with prog1 with libaa before libc. Depending on how dlsym is called + * the symbol for sigprocmask should come from prog1, libaa or libc. + */ +int +aaTest() +{ + int ret = 0; + void *value; + void *libaa_handle = dlopen("libaa.so", RTLD_LAZY); + void *libc_handle = dlopen("libc.so", RTLD_LAZY); + void *libaa_sigprocmask = dlsym(libaa_handle, "sigprocmask"); + void *libc_sigprocmask = dlsym(libc_handle, "sigprocmask"); + + dlclose(libaa_handle); + dlclose(libc_handle); + + /* basic sanity check */ + if (libaa_sigprocmask == &sigprocmask || libc_sigprocmask == &sigprocmask || + libc_sigprocmask == libaa_sigprocmask || libaa_sigprocmask == NULL || + libc_sigprocmask == NULL) { + printf("dlsym(handle, ...)\n FAILED\n"); + printf("sigprocmask == %p\n", &sigprocmask); + printf("libaa_sigprocmask == %p\n", libaa_sigprocmask); + printf("libc_sigprocmask == %p\n", libc_sigprocmask); + return (1); + } + + value = dlsym(RTLD_DEFAULT, "sigprocmask"); + if (value != &sigprocmask) { + printf("dlsym(RTLD_DEFAULT, \"sigprocmask\") == %p FAILED\n", value); + printf("\twas expecting == %p (&sigprocmask)\n", &sigprocmask); + ret = 1; + } + + value = dlsym(RTLD_SELF, "sigprocmask"); + if (value != libaa_sigprocmask) { + printf("dlsym(RTLD_SELF, \"sigprocmask\") == %p FAILED\n", value); + printf("\twas expecting == %p (libaa_sigprocmask)\n", libaa_sigprocmask); + printf("FAILED\n"); + ret = 1; + } + + value = dlsym(RTLD_NEXT, "sigprocmask"); + if (value != libc_sigprocmask) { + printf("dlsym(RTLD_NEXT, \"sigprocmask\") == %p FAILED\n", value); + printf("\twas expecting == %p (libc_sigprocmask)\n", libc_sigprocmask); + ret = 1; + } + + value = dlsym(NULL, "sigprocmask"); + if (value != libaa_sigprocmask) { + printf("dlsym(NULL, \"sigprocmask\") == %p FAILED\n", value); + printf("\twas expecting == %p (libaa_sigprocmask)\n", libaa_sigprocmask); + ret = 1; + } + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test1/libaa/aa.h b/src/regress/libexec/ld.so/dlsym/test1/libaa/aa.h new file mode 100644 index 000000000..7e30b57a7 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/libaa/aa.h @@ -0,0 +1,19 @@ +/* $OpenBSD: aa.h,v 1.1.1.1 2005/09/14 15:59:37 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +int aaTest(); diff --git a/src/regress/libexec/ld.so/dlsym/test1/libaa/obj b/src/regress/libexec/ld.so/dlsym/test1/libaa/obj new file mode 120000 index 000000000..9774f5e97 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/libaa/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test1/libaa \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test1/libaa/shlib_version b/src/regress/libexec/ld.so/dlsym/test1/libaa/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/libaa/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlsym/test1/prog1/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test1/prog1/CVS/Entries new file mode 100644 index 000000000..b44de965d --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/prog1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Mon Sep 19 01:19:15 2005// +/main.c/1.1.1.1/Wed Sep 14 15:59:37 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test1/prog1/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test1/prog1/CVS/Repository new file mode 100644 index 000000000..513c063e0 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/prog1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test1/prog1 diff --git a/src/regress/libexec/ld.so/dlsym/test1/prog1/CVS/Root b/src/regress/libexec/ld.so/dlsym/test1/prog1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/prog1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test1/prog1/Makefile b/src/regress/libexec/ld.so/dlsym/test1/prog1/Makefile new file mode 100644 index 000000000..8119695b1 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/prog1/Makefile @@ -0,0 +1,21 @@ +# $OpenBSD: Makefile,v 1.2 2005/09/19 01:19:15 kurt Exp $ + +.include + +AA_DIR=${.CURDIR}/../libaa + +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +PROG= prog1 +SRCS= main.c +CPPFLAGS+= -I$(AA_DIR) +LDADD+= -laa +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -L$(AA_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test1/prog1/main.c b/src/regress/libexec/ld.so/dlsym/test1/prog1/main.c new file mode 100644 index 000000000..9d54b9715 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/prog1/main.c @@ -0,0 +1,29 @@ +/* $OpenBSD: main.c,v 1.1.1.1 2005/09/14 15:59:37 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "aa.h" + +void +sigprocmask() { +} + +int +main() +{ + return (aaTest()); +} diff --git a/src/regress/libexec/ld.so/dlsym/test1/prog1/obj b/src/regress/libexec/ld.so/dlsym/test1/prog1/obj new file mode 120000 index 000000000..e10dd7dcb --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/prog1/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test1/prog1 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test1/prog2/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test1/prog2/CVS/Entries new file mode 100644 index 000000000..3791cea22 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/prog2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Mon Sep 19 01:19:15 2005// +/main.c/1.2/Fri Sep 16 23:30:25 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test1/prog2/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test1/prog2/CVS/Repository new file mode 100644 index 000000000..dabed2b62 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/prog2/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test1/prog2 diff --git a/src/regress/libexec/ld.so/dlsym/test1/prog2/CVS/Root b/src/regress/libexec/ld.so/dlsym/test1/prog2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/prog2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test1/prog2/Makefile b/src/regress/libexec/ld.so/dlsym/test1/prog2/Makefile new file mode 100644 index 000000000..5a9288266 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/prog2/Makefile @@ -0,0 +1,21 @@ +# $OpenBSD: Makefile,v 1.2 2005/09/19 01:19:15 kurt Exp $ + +.include + +AA_DIR=${.CURDIR}/../libaa + +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +PROG= prog2 +SRCS= main.c +CPPFLAGS+= -I$(AA_DIR) +LDADD+= -laa +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -L$(AA_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test1/prog2/main.c b/src/regress/libexec/ld.so/dlsym/test1/prog2/main.c new file mode 100644 index 000000000..cc4ec5c6b --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/prog2/main.c @@ -0,0 +1,61 @@ +/* $OpenBSD: main.c,v 1.2 2005/09/16 23:30:25 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include "aa.h" + +/* + * Verifies dlsym works as expected when called from the main executable. + * libaa and libc are in the main object group, so their symbols are visable. + */ +int +main() +{ + int ret = 0; + void *exe_handle = dlopen(NULL, RTLD_LAZY); + + if (dlsym(RTLD_DEFAULT, "aaSymbol") == NULL) { + printf("dlsym(RTLD_DEFAULT, \"aaSymbol\") FAILED\n"); + ret = 1; + } + + if (dlsym(RTLD_SELF, "aaSymbol") == NULL) { + printf("dlsym(RTLD_SELF, \"aaSymbol\") FAILED\n"); + ret = 1; + } + + if (dlsym(RTLD_NEXT, "aaSymbol") == NULL) { + printf("dlsym(RTLD_NEXT, \"aaSymbol\") FAILED\n"); + ret = 1; + } + + if (dlsym(NULL, "aaSymbol") == NULL) { + printf("dlsym(RTLD_NEXT, \"aaSymbol\") FAILED\n"); + ret = 1; + } + + if (dlsym(exe_handle, "aaSymbol") == NULL) { + printf("dlsym(exe_handle, \"aaSymbol\") FAILED\n"); + ret = 1; + } + + dlclose(exe_handle); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test1/prog2/obj b/src/regress/libexec/ld.so/dlsym/test1/prog2/obj new file mode 120000 index 000000000..43ce0f0a7 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test1/prog2/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test1/prog2 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test2/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test2/CVS/Entries new file mode 100644 index 000000000..906dd6677 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/CVS/Entries @@ -0,0 +1,10 @@ +/Makefile/1.3/Mon Sep 19 03:24:28 2005// +/Makefile.inc/1.3/Sun Sep 18 12:17:29 2005// +D/libaa//// +D/libbb//// +D/libcc//// +D/prog1//// +D/prog2//// +D/prog3//// +D/prog4//// +D/prog5//// diff --git a/src/regress/libexec/ld.so/dlsym/test2/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test2/CVS/Repository new file mode 100644 index 000000000..0ca653aa2 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test2 diff --git a/src/regress/libexec/ld.so/dlsym/test2/CVS/Root b/src/regress/libexec/ld.so/dlsym/test2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test2/Makefile b/src/regress/libexec/ld.so/dlsym/test2/Makefile new file mode 100644 index 000000000..9db0b8849 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.3 2005/09/19 03:24:28 kurt Exp $ + +SUBDIR+= libcc libbb libaa prog1 prog2 prog3 prog4 prog5 + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test2/Makefile.inc b/src/regress/libexec/ld.so/dlsym/test2/Makefile.inc new file mode 100644 index 000000000..a2d2fa92a --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/Makefile.inc @@ -0,0 +1,27 @@ +# $OpenBSD: Makefile.inc,v 1.3 2005/09/18 12:17:29 kurt Exp $ + +.include + +AA_DIR=${.CURDIR}/../libaa + +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +BB_DIR=${.CURDIR}/../libbb + +BB_OBJDIR!= if [ -d $(BB_DIR)/${__objdir} ]; then \ + echo "$(BB_DIR)/${__objdir}"; \ + else \ + echo "$(BB_DIR)"; \ + fi + +CC_DIR=${.CURDIR}/../libcc + +CC_OBJDIR!= if [ -d $(CC_DIR)/${__objdir} ]; then \ + echo "$(CC_DIR)/${__objdir}"; \ + else \ + echo "$(CC_DIR)"; \ + fi diff --git a/src/regress/libexec/ld.so/dlsym/test2/libaa/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test2/libaa/CVS/Entries new file mode 100644 index 000000000..44ed5e8c2 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libaa/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.3/Mon Sep 19 03:53:49 2005// +/aa.c/1.1.1.1/Thu Sep 15 22:16:27 2005// +/shlib_version/1.1.1.1/Thu Sep 15 22:16:27 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test2/libaa/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test2/libaa/CVS/Repository new file mode 100644 index 000000000..0d0fa35f9 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libaa/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test2/libaa diff --git a/src/regress/libexec/ld.so/dlsym/test2/libaa/CVS/Root b/src/regress/libexec/ld.so/dlsym/test2/libaa/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libaa/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test2/libaa/Makefile b/src/regress/libexec/ld.so/dlsym/test2/libaa/Makefile new file mode 100644 index 000000000..d7d6d8c89 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libaa/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.3 2005/09/19 03:53:49 kurt Exp $ + +LIB= aa +SRCS= aa.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test2/libaa/aa.c b/src/regress/libexec/ld.so/dlsym/test2/libaa/aa.c new file mode 100644 index 000000000..62fe34ebd --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libaa/aa.c @@ -0,0 +1,19 @@ +/* $OpenBSD: aa.c,v 1.1.1.1 2005/09/15 22:16:27 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +int aaSymbol; diff --git a/src/regress/libexec/ld.so/dlsym/test2/libaa/obj b/src/regress/libexec/ld.so/dlsym/test2/libaa/obj new file mode 120000 index 000000000..b0eaa5997 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libaa/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test2/libaa \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test2/libaa/shlib_version b/src/regress/libexec/ld.so/dlsym/test2/libaa/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libaa/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlsym/test2/libbb/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test2/libbb/CVS/Entries new file mode 100644 index 000000000..7d84a7872 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libbb/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.5/Mon Sep 19 03:53:50 2005// +/bb.c/1.3/Wed Sep 28 14:57:10 2005// +/shlib_version/1.1.1.1/Thu Sep 15 22:16:27 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test2/libbb/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test2/libbb/CVS/Repository new file mode 100644 index 000000000..323695fd8 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libbb/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test2/libbb diff --git a/src/regress/libexec/ld.so/dlsym/test2/libbb/CVS/Root b/src/regress/libexec/ld.so/dlsym/test2/libbb/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libbb/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test2/libbb/Makefile b/src/regress/libexec/ld.so/dlsym/test2/libbb/Makefile new file mode 100644 index 000000000..e51e2a956 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libbb/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.5 2005/09/19 03:53:50 kurt Exp $ + +LIB= bb +SRCS= bb.c +LDADD+= -Wl,-E +LDADD+= -Wl,-rpath,$(CC_OBJDIR) +LDADD+= -L$(CC_OBJDIR) -lcc + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test2/libbb/bb.c b/src/regress/libexec/ld.so/dlsym/test2/libbb/bb.c new file mode 100644 index 000000000..fa2005332 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libbb/bb.c @@ -0,0 +1,103 @@ +/* $OpenBSD: bb.c,v 1.3 2005/09/28 14:57:10 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int bbSymbol; + +/* + * bbTest1 checks dlsym symbol visibility from a single dlopened object + * group that looks like libbb -> libcc. This was opened from libaa in + * the main object group. So the default search order will be prog2 -> + * libaa -> libbb -> libcc. only dlsym(RTLD_DEFAULT,...) should see + * symbols in prog2 and libaa. the rest are limited to libbb and libcc. + */ +int +bbTest1(void *libbb) +{ + int ret = 0; + + /* check RTLD_DEFAULT can see symbols in main object group */ + if (dlsym(RTLD_DEFAULT, "mainSymbol") == NULL) { + printf("dlsym(RTLD_DEFAULT, \"mainSymbol\") == NULL\n"); + ret = 1; + } + + /* check RTLD_DEFAULT can see symbols in the libbb object group */ + if (dlsym(RTLD_DEFAULT, "bbSymbol") == NULL) { + printf("dlsym(RTLD_DEFAULT, \"bbSymbol\") == NULL\n"); + ret = 1; + } + + /* check RTLD_SELF can *not* see symbols in main object group */ + if (dlsym(RTLD_SELF, "aaSymbol") != NULL) { + printf("dlsym(RTLD_SELF, \"aaSymbol\") != NULL\n"); + ret = 1; + } + + /* check RTLD_NEXT can *not* see symbols in main object group */ + if (dlsym(RTLD_NEXT, "aaSymbol") != NULL) { + printf("dlsym(RTLD_NEXT, \"aaSymbol\") != NULL\n"); + ret = 1; + } + + /* check NULL can *not* see symbols in main object group */ + if (dlsym(NULL, "aaSymbol") != NULL) { + printf("dlsym(NULL, \"aaSymbol\") != NULL\n"); + ret = 1; + } + + /* check RTLD_SELF can see symbols in local object group */ + if (dlsym(RTLD_SELF, "ccSymbol") == NULL) { + printf("dlsym(RTLD_SELF, \"ccSymbol\") == NULL\n"); + ret = 1; + } + + /* check RTLD_NEXT can see symbols in local object group */ + if (dlsym(RTLD_NEXT, "ccSymbol") == NULL) { + printf("dlsym(RTLD_NEXT, \"ccSymbol\") == NULL\n"); + ret = 1; + } + + /* check NULL can see symbols in local object group */ + if (dlsym(NULL, "ccSymbol") == NULL) { + printf("dlsym(NULL, \"ccSymbol\") == NULL\n"); + ret = 1; + } + + /* check RTLD_NEXT skips libbb and can't find bbSymbol */ + if (dlsym(RTLD_NEXT, "bbSymbol") != NULL) { + printf("dlsym(RTLD_NEXT, \"bbSymbol\") != NULL\n"); + ret = 1; + } + + /* check dlsym(libbb,..) can *not* see symbols in libaa */ + if (dlsym(libbb, "aaSymbol") != NULL) { + printf("dlsym(libbb, \"aaSymbol\") != NULL\n"); + ret = 1; + } + + /* check dlsym(libbb,..) can see symbols in libcc */ + if (dlsym(libbb, "ccSymbol") == NULL) { + printf("dlsym(libbb, \"ccSymbol\") == NULL\n"); + ret = 1; + } + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test2/libbb/obj b/src/regress/libexec/ld.so/dlsym/test2/libbb/obj new file mode 120000 index 000000000..814f61456 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libbb/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test2/libbb \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test2/libbb/shlib_version b/src/regress/libexec/ld.so/dlsym/test2/libbb/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libbb/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlsym/test2/libcc/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test2/libcc/CVS/Entries new file mode 100644 index 000000000..3b6579db6 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libcc/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.3/Mon Sep 19 03:53:50 2005// +/cc.c/1.2/Sun Sep 18 11:59:26 2005// +/shlib_version/1.1.1.1/Thu Sep 15 22:16:27 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test2/libcc/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test2/libcc/CVS/Repository new file mode 100644 index 000000000..102a278e8 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libcc/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test2/libcc diff --git a/src/regress/libexec/ld.so/dlsym/test2/libcc/CVS/Root b/src/regress/libexec/ld.so/dlsym/test2/libcc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libcc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test2/libcc/Makefile b/src/regress/libexec/ld.so/dlsym/test2/libcc/Makefile new file mode 100644 index 000000000..393161026 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libcc/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.3 2005/09/19 03:53:50 kurt Exp $ + +LIB= cc +SRCS= cc.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test2/libcc/cc.c b/src/regress/libexec/ld.so/dlsym/test2/libcc/cc.c new file mode 100644 index 000000000..537eafa45 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libcc/cc.c @@ -0,0 +1,19 @@ +/* $OpenBSD: cc.c,v 1.2 2005/09/18 11:59:26 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +int ccSymbol; diff --git a/src/regress/libexec/ld.so/dlsym/test2/libcc/obj b/src/regress/libexec/ld.so/dlsym/test2/libcc/obj new file mode 120000 index 000000000..7332cb1e5 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libcc/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test2/libcc \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test2/libcc/shlib_version b/src/regress/libexec/ld.so/dlsym/test2/libcc/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/libcc/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog1/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test2/prog1/CVS/Entries new file mode 100644 index 000000000..7530624d4 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Mon Sep 19 01:20:58 2005// +/main.c/1.3/Sat Sep 17 00:31:59 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog1/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test2/prog1/CVS/Repository new file mode 100644 index 000000000..654576b00 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test2/prog1 diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog1/CVS/Root b/src/regress/libexec/ld.so/dlsym/test2/prog1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog1/Makefile b/src/regress/libexec/ld.so/dlsym/test2/prog1/Makefile new file mode 100644 index 000000000..5b686e507 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog1/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.3 2005/09/19 01:20:58 kurt Exp $ + +PROG= prog1 +SRCS= main.c +LDADD+= -laa +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(BB_OBJDIR) +LDFLAGS+= -L$(AA_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog1/main.c b/src/regress/libexec/ld.so/dlsym/test2/prog1/main.c new file mode 100644 index 000000000..799cf4ed3 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog1/main.c @@ -0,0 +1,74 @@ +/* $OpenBSD: main.c,v 1.3 2005/09/17 00:31:59 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int mainSymbol; + +/* + * This tests that the main object group can not see the symbols in + * objects dlopened by it using RTLD_{SELF,NEXT}, NULL and with a handle. + */ +int +main() +{ + int ret = 0; + void *exe_handle = dlopen(NULL, RTLD_LAZY); + void *libbb = dlopen("libbb.so", RTLD_LAZY); + + if (libbb == NULL) { + printf("dlopen(\"libbb.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + /* RTLD_DEFAULT should *not* see bbSymbol */ + if (dlsym(RTLD_DEFAULT, "bbSymbol") != NULL) { + printf("dlsym(RTLD_DEFAULT, \"bbSymbol\") != NULL\n"); + ret = 1; + } + + /* RTLD_SELF should *not* see bbSymbol (different load group) */ + if (dlsym(RTLD_SELF, "bbSymbol") != NULL) { + printf("dlsym(RTLD_SELF, \"bbSymbol\") != NULL\n"); + ret = 1; + } + + /* RTLD_NEXT should *not* see bbSymbol (different load group) */ + if (dlsym(RTLD_NEXT, "bbSymbol") != NULL) { + printf("dlsym(RTLD_NEXT, \"bbSymbol\") != NULL\n"); + ret = 1; + } + + /* NULL should *not* see bbSymbol (different load group) */ + if (dlsym(NULL, "bbSymbol") != NULL) { + printf("dlsym(NULL, \"bbSymbol\") != NULL\n"); + ret = 1; + } + + /* exe handle should *not* see bbSymbol (different load group) */ + if (dlsym(exe_handle, "bbSymbol") != NULL) { + printf("dlsym(exe_handle, \"bbSymbol\") != NULL\n"); + ret = 1; + } + + dlclose(exe_handle); + dlclose(libbb); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog1/obj b/src/regress/libexec/ld.so/dlsym/test2/prog1/obj new file mode 120000 index 000000000..69bd08b8a --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog1/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test2/prog1 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog2/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test2/prog2/CVS/Entries new file mode 100644 index 000000000..c196bf8b7 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Mon Sep 19 01:20:58 2005// +/main.c/1.3/Mon Sep 19 18:39:38 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog2/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test2/prog2/CVS/Repository new file mode 100644 index 000000000..1a1729fa5 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog2/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test2/prog2 diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog2/CVS/Root b/src/regress/libexec/ld.so/dlsym/test2/prog2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog2/Makefile b/src/regress/libexec/ld.so/dlsym/test2/prog2/Makefile new file mode 100644 index 000000000..429a66fa1 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog2/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.3 2005/09/19 01:20:58 kurt Exp $ + +PROG= prog2 +SRCS= main.c +LDADD+= -laa +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(BB_OBJDIR) +LDFLAGS+= -L$(AA_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog2/main.c b/src/regress/libexec/ld.so/dlsym/test2/prog2/main.c new file mode 100644 index 000000000..25fd74d92 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog2/main.c @@ -0,0 +1,43 @@ +/* $OpenBSD: main.c,v 1.3 2005/09/19 18:39:38 deraadt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int mainSymbol; + +int +main() +{ + int ret = 0; + void *libbb = dlopen("libbb.so", RTLD_LAZY); + int (*bbTest1)(void *); + + if (libbb == NULL) { + printf("dlopen(\"libbb.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + bbTest1 = dlsym(libbb, "bbTest1"); + + ret = (*bbTest1)(libbb); + + dlclose(libbb); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog2/obj b/src/regress/libexec/ld.so/dlsym/test2/prog2/obj new file mode 120000 index 000000000..bded5b9e7 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog2/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test2/prog2 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog3/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test2/prog3/CVS/Entries new file mode 100644 index 000000000..8f51d1355 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog3/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Mon Sep 19 01:20:58 2005// +/main.c/1.3/Wed Nov 9 16:36:06 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog3/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test2/prog3/CVS/Repository new file mode 100644 index 000000000..a971a6c57 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog3/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test2/prog3 diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog3/CVS/Root b/src/regress/libexec/ld.so/dlsym/test2/prog3/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog3/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog3/Makefile b/src/regress/libexec/ld.so/dlsym/test2/prog3/Makefile new file mode 100644 index 000000000..43be09587 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog3/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.3 2005/09/19 01:20:58 kurt Exp $ + +PROG= prog3 +SRCS= main.c +LDADD+= -laa +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(BB_OBJDIR) +LDFLAGS+= -L$(AA_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog3/main.c b/src/regress/libexec/ld.so/dlsym/test2/prog3/main.c new file mode 100644 index 000000000..2c75383a0 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog3/main.c @@ -0,0 +1,75 @@ +/* $OpenBSD: main.c,v 1.3 2005/11/09 16:36:06 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int mainSymbol; + +/* + * This tests that the main object group can see the symbols in + * objects dlopened with RTLD_GLOBAL for RTLD_{DEFAULT,NEXT,SELF}, + * but not with NULL, or with a handle. + */ +int +main() +{ + int ret = 0; + void *exe_handle = dlopen(NULL, RTLD_LAZY); + void *libbb = dlopen("libbb.so", RTLD_LAZY|RTLD_GLOBAL); + + if (libbb == NULL) { + printf("dlopen(\"libbb.so\", RTLD_LAZY|RTLD_GLOBAL) FAILED\n"); + return (1); + } + + /* RTLD_DEFAULT should see bbSymbol */ + if (dlsym(RTLD_DEFAULT, "bbSymbol") == NULL) { + printf("dlsym(RTLD_DEFAULT, \"bbSymbol\") == NULL\n"); + ret = 1; + } + + /* RTLD_SELF should see bbSymbol (RTLD_GLOBAL load group) */ + if (dlsym(RTLD_SELF, "bbSymbol") == NULL) { + printf("dlsym(RTLD_SELF, \"bbSymbol\") == NULL\n"); + ret = 1; + } + + /* RTLD_NEXT should see bbSymbol (RTLD_GLOBAL load group) */ + if (dlsym(RTLD_NEXT, "bbSymbol") == NULL) { + printf("dlsym(RTLD_NEXT, \"bbSymbol\") == NULL\n"); + ret = 1; + } + + /* NULL should *not* see bbSymbol (different load group) */ + if (dlsym(NULL, "bbSymbol") != NULL) { + printf("dlsym(NULL, \"bbSymbol\") != NULL\n"); + ret = 1; + } + + /* exe handle should see bbSymbol (Same as RTLD_DEFAULT) */ + if (dlsym(exe_handle, "bbSymbol") == NULL) { + printf("dlsym(exe_handle, \"bbSymbol\") == NULL\n"); + ret = 1; + } + + dlclose(exe_handle); + dlclose(libbb); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog3/obj b/src/regress/libexec/ld.so/dlsym/test2/prog3/obj new file mode 120000 index 000000000..e9bbea8b3 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog3/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test2/prog3 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog4/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test2/prog4/CVS/Entries new file mode 100644 index 000000000..e397f74a7 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog4/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Mon Sep 19 01:26:46 2005// +/main.c/1.1.1.1/Mon Sep 19 01:26:46 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog4/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test2/prog4/CVS/Repository new file mode 100644 index 000000000..c292a929f --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog4/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test2/prog4 diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog4/CVS/Root b/src/regress/libexec/ld.so/dlsym/test2/prog4/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog4/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog4/Makefile b/src/regress/libexec/ld.so/dlsym/test2/prog4/Makefile new file mode 100644 index 000000000..053594cf0 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog4/Makefile @@ -0,0 +1,12 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/19 01:26:46 kurt Exp $ + +PROG= prog4 +SRCS= main.c +LDADD+= -laa +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(BB_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(CC_OBJDIR) +LDFLAGS+= -L$(AA_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog4/main.c b/src/regress/libexec/ld.so/dlsym/test2/prog4/main.c new file mode 100644 index 000000000..2296c055b --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog4/main.c @@ -0,0 +1,54 @@ +/* $OpenBSD: main.c,v 1.1.1.1 2005/09/19 01:26:46 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int mainSymbol; + +/* + * checks that dependent libs are not promoted to RTLD_GLOBAL by mistake. + */ +int +main() +{ + int ret = 0; + void *libbb = dlopen("libbb.so", RTLD_LAZY); + void *libcc = dlopen("libcc.so", RTLD_LAZY); + + if (libbb == NULL) { + printf("dlopen(\"libbb.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + if (libcc == NULL) { + printf("dlopen(\"libcc.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + /* RTLD_DEFAULT should *not* see ccSymbol */ + if (dlsym(RTLD_DEFAULT, "ccSymbol") != NULL) { + printf("dlsym(RTLD_DEFAULT, \"ccSymbol\") != NULL\n"); + ret = 1; + } + + dlclose(libbb); + dlclose(libcc); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog4/obj b/src/regress/libexec/ld.so/dlsym/test2/prog4/obj new file mode 120000 index 000000000..39871ff71 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog4/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test2/prog4 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog5/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test2/prog5/CVS/Entries new file mode 100644 index 000000000..e9e9b011d --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog5/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Mon Sep 19 03:23:51 2005// +/main.c/1.1.1.1/Mon Sep 19 03:23:51 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog5/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test2/prog5/CVS/Repository new file mode 100644 index 000000000..f2d6e233c --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog5/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test2/prog5 diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog5/CVS/Root b/src/regress/libexec/ld.so/dlsym/test2/prog5/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog5/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog5/Makefile b/src/regress/libexec/ld.so/dlsym/test2/prog5/Makefile new file mode 100644 index 000000000..d57037b50 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog5/Makefile @@ -0,0 +1,12 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/19 03:23:51 kurt Exp $ + +PROG= prog5 +SRCS= main.c +LDADD+= -laa +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(BB_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(CC_OBJDIR) +LDFLAGS+= -L$(AA_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog5/main.c b/src/regress/libexec/ld.so/dlsym/test2/prog5/main.c new file mode 100644 index 000000000..eb0836fba --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog5/main.c @@ -0,0 +1,55 @@ +/* $OpenBSD: main.c,v 1.1.1.1 2005/09/19 03:23:51 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int mainSymbol; + +/* + * confirm that libcc gets promoted to RTLD_GLOBAL when opened as part of + * libbb with RTLD_GLOBAL + */ +int +main() +{ + int ret = 0; + void *libcc = dlopen("libcc.so", RTLD_LAZY); + void *libbb = dlopen("libbb.so", RTLD_LAZY|RTLD_GLOBAL); + + if (libbb == NULL) { + printf("dlopen(\"libbb.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + if (libcc == NULL) { + printf("dlopen(\"libcc.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + /* RTLD_DEFAULT should see ccSymbol */ + if (dlsym(RTLD_DEFAULT, "ccSymbol") == NULL) { + printf("dlsym(RTLD_DEFAULT, \"ccSymbol\") == NULL\n"); + ret = 1; + } + + dlclose(libbb); + dlclose(libcc); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test2/prog5/obj b/src/regress/libexec/ld.so/dlsym/test2/prog5/obj new file mode 120000 index 000000000..ca71b7f52 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test2/prog5/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test2/prog5 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test3/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test3/CVS/Entries new file mode 100644 index 000000000..c3c3b00f4 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/CVS/Entries @@ -0,0 +1,11 @@ +/Makefile/1.2/Mon Sep 19 21:50:27 2005// +/Makefile.inc/1.1.1.1/Mon Sep 19 03:34:18 2005// +D/libaa//// +D/libbb//// +D/libcc//// +D/libdd//// +D/libee//// +D/prog1//// +D/prog2//// +D/prog3//// +D/prog4//// diff --git a/src/regress/libexec/ld.so/dlsym/test3/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test3/CVS/Repository new file mode 100644 index 000000000..10136b214 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test3 diff --git a/src/regress/libexec/ld.so/dlsym/test3/CVS/Root b/src/regress/libexec/ld.so/dlsym/test3/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test3/Makefile b/src/regress/libexec/ld.so/dlsym/test3/Makefile new file mode 100644 index 000000000..b69def080 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2005/09/19 21:50:27 drahn Exp $ + +SUBDIR+= libee libdd libcc libbb libaa prog1 prog2 prog3 prog4 + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test3/Makefile.inc b/src/regress/libexec/ld.so/dlsym/test3/Makefile.inc new file mode 100644 index 000000000..b4bb9406b --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/Makefile.inc @@ -0,0 +1,43 @@ +# $OpenBSD: Makefile.inc,v 1.1.1.1 2005/09/19 03:34:18 kurt Exp $ + +.include + +AA_DIR=${.CURDIR}/../libaa + +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +BB_DIR=${.CURDIR}/../libbb + +BB_OBJDIR!= if [ -d $(BB_DIR)/${__objdir} ]; then \ + echo "$(BB_DIR)/${__objdir}"; \ + else \ + echo "$(BB_DIR)"; \ + fi + +CC_DIR=${.CURDIR}/../libcc + +CC_OBJDIR!= if [ -d $(CC_DIR)/${__objdir} ]; then \ + echo "$(CC_DIR)/${__objdir}"; \ + else \ + echo "$(CC_DIR)"; \ + fi + +DD_DIR=${.CURDIR}/../libdd + +DD_OBJDIR!= if [ -d $(DD_DIR)/${__objdir} ]; then \ + echo "$(DD_DIR)/${__objdir}"; \ + else \ + echo "$(DD_DIR)"; \ + fi + +EE_DIR=${.CURDIR}/../libee + +EE_OBJDIR!= if [ -d $(EE_DIR)/${__objdir} ]; then \ + echo "$(EE_DIR)/${__objdir}"; \ + else \ + echo "$(EE_DIR)"; \ + fi diff --git a/src/regress/libexec/ld.so/dlsym/test3/libaa/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test3/libaa/CVS/Entries new file mode 100644 index 000000000..a39e04cc2 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libaa/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Mon Sep 19 03:34:18 2005// +/aa.c/1.2/Mon Sep 19 21:50:27 2005// +/shlib_version/1.1.1.1/Mon Sep 19 03:34:18 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test3/libaa/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test3/libaa/CVS/Repository new file mode 100644 index 000000000..40630a2fd --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libaa/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test3/libaa diff --git a/src/regress/libexec/ld.so/dlsym/test3/libaa/CVS/Root b/src/regress/libexec/ld.so/dlsym/test3/libaa/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libaa/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test3/libaa/Makefile b/src/regress/libexec/ld.so/dlsym/test3/libaa/Makefile new file mode 100644 index 000000000..aa5c50d08 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libaa/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/19 03:34:18 kurt Exp $ + +LIB= aa +SRCS= aa.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test3/libaa/aa.c b/src/regress/libexec/ld.so/dlsym/test3/libaa/aa.c new file mode 100644 index 000000000..34c6811fd --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libaa/aa.c @@ -0,0 +1,20 @@ +/* $OpenBSD: aa.c,v 1.2 2005/09/19 21:50:27 drahn Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +int aaSymbol; +int commonSymbol; diff --git a/src/regress/libexec/ld.so/dlsym/test3/libaa/obj b/src/regress/libexec/ld.so/dlsym/test3/libaa/obj new file mode 120000 index 000000000..976c08b48 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libaa/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test3/libaa \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test3/libaa/shlib_version b/src/regress/libexec/ld.so/dlsym/test3/libaa/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libaa/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlsym/test3/libbb/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test3/libbb/CVS/Entries new file mode 100644 index 000000000..f11edc7c3 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libbb/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Mon Sep 19 03:34:18 2005// +/bb.c/1.2/Mon Sep 19 21:50:27 2005// +/shlib_version/1.1.1.1/Mon Sep 19 03:34:18 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test3/libbb/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test3/libbb/CVS/Repository new file mode 100644 index 000000000..8cf155716 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libbb/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test3/libbb diff --git a/src/regress/libexec/ld.so/dlsym/test3/libbb/CVS/Root b/src/regress/libexec/ld.so/dlsym/test3/libbb/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libbb/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test3/libbb/Makefile b/src/regress/libexec/ld.so/dlsym/test3/libbb/Makefile new file mode 100644 index 000000000..ab918bbe2 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libbb/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/19 03:34:18 kurt Exp $ + +LIB= bb +SRCS= bb.c +LDADD+= -Wl,-E +LDADD+= -Wl,-rpath,$(CC_OBJDIR) +LDADD+= -L$(CC_OBJDIR) -lcc + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test3/libbb/bb.c b/src/regress/libexec/ld.so/dlsym/test3/libbb/bb.c new file mode 100644 index 000000000..ca2fb8d04 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libbb/bb.c @@ -0,0 +1,115 @@ +/* $OpenBSD: bb.c,v 1.2 2005/09/19 21:50:27 drahn Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int bbSymbol; +int commonSymbol; + +/* + * this test is setup where the main program group dlopen's libbb and libdd + * without RTLD_GLOBAL. libcc is part of libbb load group. libee is part of + * libdd load group. + */ +int +bbTest1(void *libbb, void *libdd) +{ + int ret = 0; + + /* check RTLD_DEFAULT can *not* see symbols in libdd object group */ + if (dlsym(RTLD_DEFAULT, "ddSymbol") != NULL) { + printf("dlsym(RTLD_DEFAULT, \"ddSymbol\") != NULL\n"); + ret = 1; + } + + /* check RTLD_SELF can *not* see symbols in libdd object group */ + if (dlsym(RTLD_SELF, "ddSymbol") != NULL) { + printf("dlsym(RTLD_SELF, \"ddSymbol\") != NULL\n"); + ret = 1; + } + + /* check RTLD_NEXT can *not* see symbols in libdd object group */ + if (dlsym(RTLD_NEXT, "ddSymbol") != NULL) { + printf("dlsym(RTLD_NEXT, \"ddSymbol\") != NULL\n"); + ret = 1; + } + + /* check NULL can *not* see symbols in libdd object group */ + if (dlsym(NULL, "ddSymbol") != NULL) { + printf("dlsym(NULL, \"ddSymbol\") != NULL\n"); + ret = 1; + } + + /* libbb should *not* see symbols in libdd or libee */ + if (dlsym(libbb, "ddSymbol") != NULL) { + printf("dlsym(libbb, \"ddSymbol\") != NULL\n"); + ret = 1; + } + + /* libdd should *not* see symbols in libbb or libcc */ + if (dlsym(libdd, "bbSymbol") != NULL) { + printf("dlsym(libdd, \"bbSymbol\") != NULL\n"); + ret = 1; + } + + /* libbb should see symbols in libbb and libcc */ + if (dlsym(libbb, "ccSymbol") == NULL) { + printf("dlsym(libbb, \"ccSymbol\") == NULL\n"); + ret = 1; + } + + /* libdd should see symbols in libbb and libee */ + if (dlsym(libdd, "eeSymbol") == NULL) { + printf("dlsym(libdd, \"eeSymbol\") == NULL\n"); + ret = 1; + } + + return (ret); +} + +/* + * this test is setup where the main program group dlopen's libbb and libdd. + * libdd is opened with RTLD_GLOBAL. libcc is part of libbb load group. libee + * is part of libdd load group. + */ +int +bbTest2() +{ + int ret = 0; + + /* check RTLD_DEFAULT can see symbols in libdd object group */ + if (dlsym(RTLD_DEFAULT, "eeSymbol") != NULL) { + printf("dlsym(RTLD_DEFAULT, \"ddSymbol\") != NULL\n"); + ret = 1; + } + + /* check RTLD_SELF can see symbols in libdd object group */ + if (dlsym(RTLD_SELF, "eeSymbol") != NULL) { + printf("dlsym(RTLD_SELF, \"ddSymbol\") != NULL\n"); + ret = 1; + } + + /* check RTLD_NEXT can see symbols in libdd object group */ + if (dlsym(RTLD_NEXT, "eeSymbol") != NULL) { + printf("dlsym(RTLD_NEXT, \"ddSymbol\") != NULL\n"); + ret = 1; + } + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test3/libbb/obj b/src/regress/libexec/ld.so/dlsym/test3/libbb/obj new file mode 120000 index 000000000..cd3579b06 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libbb/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test3/libbb \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test3/libbb/shlib_version b/src/regress/libexec/ld.so/dlsym/test3/libbb/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libbb/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlsym/test3/libcc/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test3/libcc/CVS/Entries new file mode 100644 index 000000000..978ea54ba --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libcc/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Mon Sep 19 03:34:18 2005// +/cc.c/1.2/Mon Sep 19 21:50:27 2005// +/shlib_version/1.1.1.1/Mon Sep 19 03:34:18 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test3/libcc/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test3/libcc/CVS/Repository new file mode 100644 index 000000000..8856323bb --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libcc/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test3/libcc diff --git a/src/regress/libexec/ld.so/dlsym/test3/libcc/CVS/Root b/src/regress/libexec/ld.so/dlsym/test3/libcc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libcc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test3/libcc/Makefile b/src/regress/libexec/ld.so/dlsym/test3/libcc/Makefile new file mode 100644 index 000000000..74935f350 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libcc/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/19 03:34:18 kurt Exp $ + +LIB= cc +SRCS= cc.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test3/libcc/cc.c b/src/regress/libexec/ld.so/dlsym/test3/libcc/cc.c new file mode 100644 index 000000000..e9ca11bcc --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libcc/cc.c @@ -0,0 +1,20 @@ +/* $OpenBSD: cc.c,v 1.2 2005/09/19 21:50:27 drahn Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +int ccSymbol; +int commonSymbol; diff --git a/src/regress/libexec/ld.so/dlsym/test3/libcc/obj b/src/regress/libexec/ld.so/dlsym/test3/libcc/obj new file mode 120000 index 000000000..745b4295a --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libcc/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test3/libcc \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test3/libcc/shlib_version b/src/regress/libexec/ld.so/dlsym/test3/libcc/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libcc/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlsym/test3/libdd/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test3/libdd/CVS/Entries new file mode 100644 index 000000000..931048670 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libdd/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Mon Sep 19 03:34:18 2005// +/dd.c/1.1.1.1/Mon Sep 19 03:34:18 2005// +/shlib_version/1.1.1.1/Mon Sep 19 03:34:18 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test3/libdd/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test3/libdd/CVS/Repository new file mode 100644 index 000000000..67f385723 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libdd/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test3/libdd diff --git a/src/regress/libexec/ld.so/dlsym/test3/libdd/CVS/Root b/src/regress/libexec/ld.so/dlsym/test3/libdd/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libdd/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test3/libdd/Makefile b/src/regress/libexec/ld.so/dlsym/test3/libdd/Makefile new file mode 100644 index 000000000..cff1729a5 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libdd/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/19 03:34:18 kurt Exp $ + +LIB= dd +SRCS= dd.c +LDADD+= -Wl,-E +LDADD+= -Wl,-rpath,$(EE_OBJDIR) +LDADD+= -L$(EE_OBJDIR) -lee + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test3/libdd/dd.c b/src/regress/libexec/ld.so/dlsym/test3/libdd/dd.c new file mode 100644 index 000000000..d12166503 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libdd/dd.c @@ -0,0 +1,19 @@ +/* $OpenBSD: dd.c,v 1.1.1.1 2005/09/19 03:34:18 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +int ddSymbol; diff --git a/src/regress/libexec/ld.so/dlsym/test3/libdd/obj b/src/regress/libexec/ld.so/dlsym/test3/libdd/obj new file mode 120000 index 000000000..170922be5 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libdd/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test3/libdd \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test3/libdd/shlib_version b/src/regress/libexec/ld.so/dlsym/test3/libdd/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libdd/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlsym/test3/libee/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test3/libee/CVS/Entries new file mode 100644 index 000000000..271004ef3 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libee/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Mon Sep 19 03:34:18 2005// +/ee.c/1.1.1.1/Mon Sep 19 03:34:18 2005// +/shlib_version/1.1.1.1/Mon Sep 19 03:34:18 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test3/libee/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test3/libee/CVS/Repository new file mode 100644 index 000000000..be389de3f --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libee/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test3/libee diff --git a/src/regress/libexec/ld.so/dlsym/test3/libee/CVS/Root b/src/regress/libexec/ld.so/dlsym/test3/libee/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libee/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test3/libee/Makefile b/src/regress/libexec/ld.so/dlsym/test3/libee/Makefile new file mode 100644 index 000000000..9bd9325b9 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libee/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/19 03:34:18 kurt Exp $ + +LIB= ee +SRCS= ee.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test3/libee/ee.c b/src/regress/libexec/ld.so/dlsym/test3/libee/ee.c new file mode 100644 index 000000000..4a262c9f3 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libee/ee.c @@ -0,0 +1,19 @@ +/* $OpenBSD: ee.c,v 1.1.1.1 2005/09/19 03:34:18 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +int eeSymbol; diff --git a/src/regress/libexec/ld.so/dlsym/test3/libee/obj b/src/regress/libexec/ld.so/dlsym/test3/libee/obj new file mode 120000 index 000000000..fdde513bf --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libee/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test3/libee \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test3/libee/shlib_version b/src/regress/libexec/ld.so/dlsym/test3/libee/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/libee/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog1/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test3/prog1/CVS/Entries new file mode 100644 index 000000000..29836f470 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Mon Sep 19 03:34:18 2005// +/main.c/1.1.1.1/Mon Sep 19 03:34:18 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog1/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test3/prog1/CVS/Repository new file mode 100644 index 000000000..aa119bad8 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test3/prog1 diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog1/CVS/Root b/src/regress/libexec/ld.so/dlsym/test3/prog1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog1/Makefile b/src/regress/libexec/ld.so/dlsym/test3/prog1/Makefile new file mode 100644 index 000000000..3bbb58f81 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog1/Makefile @@ -0,0 +1,12 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/19 03:34:18 kurt Exp $ + +PROG= prog1 +SRCS= main.c +LDADD+= -laa +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(BB_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(DD_OBJDIR) +LDFLAGS+= -L$(AA_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog1/main.c b/src/regress/libexec/ld.so/dlsym/test3/prog1/main.c new file mode 100644 index 000000000..f0bc81433 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog1/main.c @@ -0,0 +1,52 @@ +/* $OpenBSD: main.c,v 1.1.1.1 2005/09/19 03:34:18 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int mainSymbol; + +int +main() +{ + int ret = 0; + void *libbb; + void *libdd; + int (*bbTest1)(void *, void *); + + libbb = dlopen("libbb.so", RTLD_LAZY); + if (libbb == NULL) { + printf("dlopen(\"libbb.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + libdd = dlopen("libdd.so", RTLD_LAZY); + if (libdd == NULL) { + printf("dlopen(\"libdd.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + bbTest1 = dlsym(libbb, "bbTest1"); + + ret = (*bbTest1)(libbb, libdd); + + dlclose(libbb); + dlclose(libdd); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog1/obj b/src/regress/libexec/ld.so/dlsym/test3/prog1/obj new file mode 120000 index 000000000..77167cf5b --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog1/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test3/prog1 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog2/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test3/prog2/CVS/Entries new file mode 100644 index 000000000..29836f470 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Mon Sep 19 03:34:18 2005// +/main.c/1.1.1.1/Mon Sep 19 03:34:18 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog2/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test3/prog2/CVS/Repository new file mode 100644 index 000000000..2b59176bc --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog2/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test3/prog2 diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog2/CVS/Root b/src/regress/libexec/ld.so/dlsym/test3/prog2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog2/Makefile b/src/regress/libexec/ld.so/dlsym/test3/prog2/Makefile new file mode 100644 index 000000000..8bf313dd2 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog2/Makefile @@ -0,0 +1,13 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/19 03:34:18 kurt Exp $ + +PROG= prog2 +SRCS= main.c +CPPFLAGS+= -I$(AA_DIR) +LDADD+= -laa +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(BB_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(DD_OBJDIR) +LDFLAGS+= -L$(AA_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog2/main.c b/src/regress/libexec/ld.so/dlsym/test3/prog2/main.c new file mode 100644 index 000000000..11b1be25a --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog2/main.c @@ -0,0 +1,52 @@ +/* $OpenBSD: main.c,v 1.1.1.1 2005/09/19 03:34:18 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int mainSymbol; + +int +main() +{ + int ret = 0; + void *libbb; + void *libdd; + int (*bbTest2)(void *); + + libbb = dlopen("libbb.so", RTLD_LAZY); + if (libbb == NULL) { + printf("dlopen(\"libbb.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + libdd = dlopen("libdd.so", RTLD_LAZY); + if (libdd == NULL) { + printf("dlopen(\"libdd.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + bbTest2 = dlsym(libbb, "bbTest2"); + + ret = (*bbTest2)(libbb); + + dlclose(libbb); + dlclose(libdd); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog2/obj b/src/regress/libexec/ld.so/dlsym/test3/prog2/obj new file mode 120000 index 000000000..da9e2e1ec --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog2/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test3/prog2 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog3/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test3/prog3/CVS/Entries new file mode 100644 index 000000000..83837f3d3 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog3/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Sep 19 21:50:27 2005// +/main.c/1.1/Mon Sep 19 21:50:27 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog3/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test3/prog3/CVS/Repository new file mode 100644 index 000000000..cd2c64c8d --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog3/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test3/prog3 diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog3/CVS/Root b/src/regress/libexec/ld.so/dlsym/test3/prog3/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog3/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog3/Makefile b/src/regress/libexec/ld.so/dlsym/test3/prog3/Makefile new file mode 100644 index 000000000..7b096dd12 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog3/Makefile @@ -0,0 +1,13 @@ +# $OpenBSD: Makefile,v 1.1 2005/09/19 21:50:27 drahn Exp $ + +PROG= prog3 +SRCS= main.c +CPPFLAGS+= -I$(AA_DIR) +LDADD+= -laa +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(BB_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(CC_OBJDIR) +LDFLAGS+= -L$(AA_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog3/main.c b/src/regress/libexec/ld.so/dlsym/test3/prog3/main.c new file mode 100644 index 000000000..4469dab03 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog3/main.c @@ -0,0 +1,76 @@ +/* $OpenBSD: main.c,v 1.1 2005/09/19 21:50:27 drahn Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int mainSymbol; + +int +main() +{ + int ret = 1; + void *prog; + void *libbb; + void *libcc; + void *p_sym; + void *bbsym; + void *ccsym; + void *a_sym; + + + prog = dlopen(NULL, RTLD_LAZY); + if (prog == NULL) { + printf("dlopen(NULL, RTLD_LAZY) FAILED\n"); + return (1); + } + + libbb = dlopen("libbb.so", RTLD_LAZY|RTLD_GLOBAL); + if (libbb == NULL) { + printf("dlopen(\"libbb.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + libcc = dlopen("libcc.so", RTLD_LAZY|RTLD_GLOBAL); + if (libcc == NULL) { + printf("dlopen(\"libcc.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + p_sym = dlsym(prog, "commonSymbol"); + bbsym = dlsym(libbb, "commonSymbol"); + ccsym = dlsym(libcc, "commonSymbol"); + a_sym = dlsym(RTLD_DEFAULT, "commonSymbol"); + + if(a_sym == p_sym) { + ret = 0; + } + if(a_sym == bbsym) { + printf("found common symbol in libbb incorrect location\n"); + ret = 1; + } + if(a_sym == ccsym) { + printf("found common symbol in libcc incorrect location\n"); + ret = 1; + } + + dlclose(libbb); + dlclose(libcc); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog3/obj b/src/regress/libexec/ld.so/dlsym/test3/prog3/obj new file mode 120000 index 000000000..6dabf8843 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog3/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test3/prog3 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog4/CVS/Entries b/src/regress/libexec/ld.so/dlsym/test3/prog4/CVS/Entries new file mode 100644 index 000000000..83837f3d3 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog4/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Sep 19 21:50:27 2005// +/main.c/1.1/Mon Sep 19 21:50:27 2005// +D diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog4/CVS/Repository b/src/regress/libexec/ld.so/dlsym/test3/prog4/CVS/Repository new file mode 100644 index 000000000..6e39df566 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog4/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/dlsym/test3/prog4 diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog4/CVS/Root b/src/regress/libexec/ld.so/dlsym/test3/prog4/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog4/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog4/Makefile b/src/regress/libexec/ld.so/dlsym/test3/prog4/Makefile new file mode 100644 index 000000000..00fc6e1cc --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog4/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2005/09/19 21:50:27 drahn Exp $ + +PROG= prog4 +SRCS= main.c +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(BB_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(CC_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog4/main.c b/src/regress/libexec/ld.so/dlsym/test3/prog4/main.c new file mode 100644 index 000000000..5412ae044 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog4/main.c @@ -0,0 +1,63 @@ +/* $OpenBSD: main.c,v 1.1 2005/09/19 21:50:27 drahn Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int mainSymbol; + +int +main() +{ + int ret = 1; + void *libbb; + void *libcc; + void *bbsym; + void *ccsym; + void *a_sym; + + + libbb = dlopen("libbb.so", RTLD_LAZY|RTLD_GLOBAL); + if (libbb == NULL) { + printf("dlopen(\"libbb.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + libcc = dlopen("libcc.so", RTLD_LAZY|RTLD_GLOBAL); + if (libcc == NULL) { + printf("dlopen(\"libcc.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + bbsym = dlsym(libbb, "commonSymbol"); + ccsym = dlsym(libcc, "commonSymbol"); + a_sym = dlsym(RTLD_DEFAULT, "commonSymbol"); + + if(a_sym == bbsym) { + ret = 0; + } + if(a_sym == ccsym) { + printf("found common symbol in libcc incorrect location\n"); + ret = 1; + } + + dlclose(libbb); + dlclose(libcc); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/dlsym/test3/prog4/obj b/src/regress/libexec/ld.so/dlsym/test3/prog4/obj new file mode 120000 index 000000000..7a9586fb3 --- /dev/null +++ b/src/regress/libexec/ld.so/dlsym/test3/prog4/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/dlsym/test3/prog4 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/edgecases/CVS/Entries b/src/regress/libexec/ld.so/edgecases/CVS/Entries new file mode 100644 index 000000000..756e04a3f --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.2/Fri Sep 23 19:03:21 2005// +D/test1//// +D/test2//// +D/test3//// diff --git a/src/regress/libexec/ld.so/edgecases/CVS/Repository b/src/regress/libexec/ld.so/edgecases/CVS/Repository new file mode 100644 index 000000000..abdc42e36 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/edgecases diff --git a/src/regress/libexec/ld.so/edgecases/CVS/Root b/src/regress/libexec/ld.so/edgecases/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/edgecases/Makefile b/src/regress/libexec/ld.so/edgecases/Makefile new file mode 100644 index 000000000..02d3a0e47 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2005/09/23 19:03:21 kurt Exp $ + +SUBDIR=test1 test2 test3 + +.include diff --git a/src/regress/libexec/ld.so/edgecases/test1/CVS/Entries b/src/regress/libexec/ld.so/edgecases/test1/CVS/Entries new file mode 100644 index 000000000..58867f966 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Thu Sep 22 22:31:27 2005// +D/libaa_b//// +D/libaa_g//// +D/prog1//// diff --git a/src/regress/libexec/ld.so/edgecases/test1/CVS/Repository b/src/regress/libexec/ld.so/edgecases/test1/CVS/Repository new file mode 100644 index 000000000..15616a580 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/edgecases/test1 diff --git a/src/regress/libexec/ld.so/edgecases/test1/CVS/Root b/src/regress/libexec/ld.so/edgecases/test1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/edgecases/test1/Makefile b/src/regress/libexec/ld.so/edgecases/test1/Makefile new file mode 100644 index 000000000..be8f1c583 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/Makefile @@ -0,0 +1,3 @@ +SUBDIR=libaa_g libaa_b prog1 + +.include diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_b/CVS/Entries b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/CVS/Entries new file mode 100644 index 000000000..a2bf1a2e9 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Thu Sep 22 22:31:27 2005// +/aa.c/1.1.1.1/Thu Sep 22 22:31:27 2005// +/shlib_version/1.1.1.1/Thu Sep 22 22:31:27 2005// +D diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_b/CVS/Repository b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/CVS/Repository new file mode 100644 index 000000000..4d485aae2 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/edgecases/test1/libaa_b diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_b/CVS/Root b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_b/Makefile b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/Makefile new file mode 100644 index 000000000..673cabf9d --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/Makefile @@ -0,0 +1,4 @@ +LIB=aa +SRCS= aa.c +regress: all +.include diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_b/aa.c b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/aa.c new file mode 100644 index 000000000..d21680fcd --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/aa.c @@ -0,0 +1,8 @@ +/* the point of this library is to not define function ad() */ +ad_notdefine() +{ +} +/* + * libglobal is not defined by this library + * int libglobal; + */ diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_b/obj b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/obj new file mode 120000 index 000000000..6dcd57db1 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/edgecases/test1/libaa_b \ No newline at end of file diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_b/shlib_version b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/shlib_version new file mode 100644 index 000000000..97c9f92d6 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_b/shlib_version @@ -0,0 +1,2 @@ +major=0 +minor=0 diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_g/CVS/Entries b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/CVS/Entries new file mode 100644 index 000000000..a2bf1a2e9 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Thu Sep 22 22:31:27 2005// +/aa.c/1.1.1.1/Thu Sep 22 22:31:27 2005// +/shlib_version/1.1.1.1/Thu Sep 22 22:31:27 2005// +D diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_g/CVS/Repository b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/CVS/Repository new file mode 100644 index 000000000..20b51043c --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/edgecases/test1/libaa_g diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_g/CVS/Root b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_g/Makefile b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/Makefile new file mode 100644 index 000000000..673cabf9d --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/Makefile @@ -0,0 +1,4 @@ +LIB=aa +SRCS= aa.c +regress: all +.include diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_g/aa.c b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/aa.c new file mode 100644 index 000000000..0b7bcbb69 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/aa.c @@ -0,0 +1,4 @@ +ad() +{ +} +int libglobal; diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_g/obj b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/obj new file mode 120000 index 000000000..4851f640d --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/edgecases/test1/libaa_g \ No newline at end of file diff --git a/src/regress/libexec/ld.so/edgecases/test1/libaa_g/shlib_version b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/shlib_version new file mode 100644 index 000000000..97c9f92d6 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/libaa_g/shlib_version @@ -0,0 +1,2 @@ +major=0 +minor=0 diff --git a/src/regress/libexec/ld.so/edgecases/test1/prog1/CVS/Entries b/src/regress/libexec/ld.so/edgecases/test1/prog1/CVS/Entries new file mode 100644 index 000000000..133c7abd1 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/prog1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Thu Sep 22 22:31:27 2005// +/main.c/1.1.1.1/Thu Sep 22 22:31:27 2005// +D diff --git a/src/regress/libexec/ld.so/edgecases/test1/prog1/CVS/Repository b/src/regress/libexec/ld.so/edgecases/test1/prog1/CVS/Repository new file mode 100644 index 000000000..59bbd52e5 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/prog1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/edgecases/test1/prog1 diff --git a/src/regress/libexec/ld.so/edgecases/test1/prog1/CVS/Root b/src/regress/libexec/ld.so/edgecases/test1/prog1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/prog1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/edgecases/test1/prog1/Makefile b/src/regress/libexec/ld.so/edgecases/test1/prog1/Makefile new file mode 100644 index 000000000..89df95e03 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/prog1/Makefile @@ -0,0 +1,36 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/22 22:31:27 drahn Exp $ + +.include + +PROG=prog1 + +SRCS=main.c + +AAG_DIR=${.CURDIR}/../libaa_g +AAG_OBJDIR!= if [ -d $(AAG_DIR)/${__objdir} ]; then \ + echo "$(AAG_DIR)/${__objdir}"; \ + else \ + echo "$(AAG_DIR)"; \ + fi + +AAB_DIR=${.CURDIR}/../libaa_b +AAB_OBJDIR!= if [ -d $(AAB_DIR)/${__objdir} ]; then \ + echo "$(AAB_DIR)/${__objdir}"; \ + else \ + echo "$(AAB_DIR)"; \ + fi + + + +CFLAGS=-I${.CURDIR}/../libac +LDADD= +LDADD+=-laa +LDFLAGS=-L$(AAG_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(AAB_OBJDIR) +NOMAN= + + +run-regress-${PROG}: ${PROG} + ./${PROG} 2>&1 | grep "undefined symbol 'libglobal'" + -./${PROG} >/dev/null 2>&1 || echo "ld.so killed program, good"; +.include diff --git a/src/regress/libexec/ld.so/edgecases/test1/prog1/main.c b/src/regress/libexec/ld.so/edgecases/test1/prog1/main.c new file mode 100644 index 000000000..f1cba3a90 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/prog1/main.c @@ -0,0 +1,22 @@ +/* + * Public Domain 2003 Dale Rahn + * + * $OpenBSD: main.c,v 1.1.1.1 2005/09/22 22:31:27 drahn Exp $ + */ +#include +#include + + +void ad(void); +extern int libglobal; + +void (*ad_f)(void) = &ad; +int *a = &libglobal; +int +main() +{ + + ad_f(); + + return 1; +} diff --git a/src/regress/libexec/ld.so/edgecases/test1/prog1/obj b/src/regress/libexec/ld.so/edgecases/test1/prog1/obj new file mode 120000 index 000000000..0e63b274f --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test1/prog1/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/edgecases/test1/prog1 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/edgecases/test2/CVS/Entries b/src/regress/libexec/ld.so/edgecases/test2/CVS/Entries new file mode 100644 index 000000000..972651cee --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Fri Sep 23 18:58:07 2005// +D/libaa//// +D/prog1//// diff --git a/src/regress/libexec/ld.so/edgecases/test2/CVS/Repository b/src/regress/libexec/ld.so/edgecases/test2/CVS/Repository new file mode 100644 index 000000000..cec5dd4a3 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/edgecases/test2 diff --git a/src/regress/libexec/ld.so/edgecases/test2/CVS/Root b/src/regress/libexec/ld.so/edgecases/test2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/edgecases/test2/Makefile b/src/regress/libexec/ld.so/edgecases/test2/Makefile new file mode 100644 index 000000000..0e57a1a40 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/23 18:58:07 kurt Exp $ + +SUBDIR+= libaa prog1 + +.include diff --git a/src/regress/libexec/ld.so/edgecases/test2/libaa/CVS/Entries b/src/regress/libexec/ld.so/edgecases/test2/libaa/CVS/Entries new file mode 100644 index 000000000..e6fc00dd4 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/libaa/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Fri Sep 23 18:58:07 2005// +/aa.c/1.1.1.1/Fri Sep 23 18:58:07 2005// +/shlib_version/1.1.1.1/Fri Sep 23 18:58:07 2005// +D diff --git a/src/regress/libexec/ld.so/edgecases/test2/libaa/CVS/Repository b/src/regress/libexec/ld.so/edgecases/test2/libaa/CVS/Repository new file mode 100644 index 000000000..e546484f4 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/libaa/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/edgecases/test2/libaa diff --git a/src/regress/libexec/ld.so/edgecases/test2/libaa/CVS/Root b/src/regress/libexec/ld.so/edgecases/test2/libaa/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/libaa/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/edgecases/test2/libaa/Makefile b/src/regress/libexec/ld.so/edgecases/test2/libaa/Makefile new file mode 100644 index 000000000..a1c63f59d --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/libaa/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/23 18:58:07 kurt Exp $ + +LIB= aa +SRCS= aa.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/edgecases/test2/libaa/aa.c b/src/regress/libexec/ld.so/edgecases/test2/libaa/aa.c new file mode 100644 index 000000000..dbdbd10a7 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/libaa/aa.c @@ -0,0 +1,30 @@ +/* $OpenBSD: aa.c,v 1.1.1.1 2005/09/23 18:58:07 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +void undefinedWeakSymbol(void) __attribute__((weak)); + +/* + * aaTest is not called. It just refers to undefinedWeakSymbol + * so it is not optimized away. + */ +void +aaTest() +{ + if (undefinedWeakSymbol != 0) + undefinedWeakSymbol(); +} diff --git a/src/regress/libexec/ld.so/edgecases/test2/libaa/obj b/src/regress/libexec/ld.so/edgecases/test2/libaa/obj new file mode 120000 index 000000000..31b9a0926 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/libaa/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/edgecases/test2/libaa \ No newline at end of file diff --git a/src/regress/libexec/ld.so/edgecases/test2/libaa/shlib_version b/src/regress/libexec/ld.so/edgecases/test2/libaa/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/libaa/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/edgecases/test2/prog1/CVS/Entries b/src/regress/libexec/ld.so/edgecases/test2/prog1/CVS/Entries new file mode 100644 index 000000000..64850f09a --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/prog1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Fri Sep 23 18:58:07 2005// +/main.c/1.1.1.1/Fri Sep 23 18:58:07 2005// +D diff --git a/src/regress/libexec/ld.so/edgecases/test2/prog1/CVS/Repository b/src/regress/libexec/ld.so/edgecases/test2/prog1/CVS/Repository new file mode 100644 index 000000000..7bbc1d95f --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/prog1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/edgecases/test2/prog1 diff --git a/src/regress/libexec/ld.so/edgecases/test2/prog1/CVS/Root b/src/regress/libexec/ld.so/edgecases/test2/prog1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/prog1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/edgecases/test2/prog1/Makefile b/src/regress/libexec/ld.so/edgecases/test2/prog1/Makefile new file mode 100644 index 000000000..893fe6cae --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/prog1/Makefile @@ -0,0 +1,22 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/23 18:58:07 kurt Exp $ + +.include + +AA_DIR=${.CURDIR}/../libaa + +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +PROG= prog1 +SRCS= main.c +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) + +run-regress-${PROG}: ${PROG} + ./${PROG} + ! ./${PROG} 2>&1 | grep unresolvedWeakSymbol + +.include diff --git a/src/regress/libexec/ld.so/edgecases/test2/prog1/main.c b/src/regress/libexec/ld.so/edgecases/test2/prog1/main.c new file mode 100644 index 000000000..3e2c559a3 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/prog1/main.c @@ -0,0 +1,39 @@ +/* $OpenBSD: main.c,v 1.1.1.1 2005/09/23 18:58:07 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +/* + * this test when run will check that undefined weak symbols do + * not generate warning messsages from ld.so + */ +int +main() +{ + void *libaa = dlopen("libaa.so", RTLD_LAZY|RTLD_GLOBAL); + + if (libaa == NULL) { + printf("dlopen(\"libaa.so\", RTLD_LAZY|RTLD_GLOBAL) FAILED\n"); + return (1); + } + + dlclose(libaa); + + return (0); +} diff --git a/src/regress/libexec/ld.so/edgecases/test2/prog1/obj b/src/regress/libexec/ld.so/edgecases/test2/prog1/obj new file mode 120000 index 000000000..77196c5fe --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test2/prog1/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/edgecases/test2/prog1 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/edgecases/test3/CVS/Entries b/src/regress/libexec/ld.so/edgecases/test3/CVS/Entries new file mode 100644 index 000000000..3e836cb7a --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.1.1.1/Fri Sep 23 19:02:29 2005// +/Makefile.inc/1.1.1.1/Fri Sep 23 19:02:29 2005// +D/libaa//// +D/libbb//// +D/prog1//// diff --git a/src/regress/libexec/ld.so/edgecases/test3/CVS/Repository b/src/regress/libexec/ld.so/edgecases/test3/CVS/Repository new file mode 100644 index 000000000..c277993cc --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/edgecases/test3 diff --git a/src/regress/libexec/ld.so/edgecases/test3/CVS/Root b/src/regress/libexec/ld.so/edgecases/test3/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/edgecases/test3/Makefile b/src/regress/libexec/ld.so/edgecases/test3/Makefile new file mode 100644 index 000000000..3fd50c06c --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/23 19:02:29 kurt Exp $ + +SUBDIR+= libbb libaa prog1 + +.include diff --git a/src/regress/libexec/ld.so/edgecases/test3/Makefile.inc b/src/regress/libexec/ld.so/edgecases/test3/Makefile.inc new file mode 100644 index 000000000..45307da61 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/Makefile.inc @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile.inc,v 1.1.1.1 2005/09/23 19:02:29 kurt Exp $ + +.include + +AA_DIR=${.CURDIR}/../libaa + +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +BB_DIR=${.CURDIR}/../libbb + +BB_OBJDIR!= if [ -d $(BB_DIR)/${__objdir} ]; then \ + echo "$(BB_DIR)/${__objdir}"; \ + else \ + echo "$(BB_DIR)"; \ + fi diff --git a/src/regress/libexec/ld.so/edgecases/test3/libaa/CVS/Entries b/src/regress/libexec/ld.so/edgecases/test3/libaa/CVS/Entries new file mode 100644 index 000000000..01b73cc0e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libaa/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Fri Sep 23 19:02:29 2005// +/aa.c/1.1.1.1/Fri Sep 23 19:02:29 2005// +/shlib_version/1.1.1.1/Fri Sep 23 19:02:29 2005// +D diff --git a/src/regress/libexec/ld.so/edgecases/test3/libaa/CVS/Repository b/src/regress/libexec/ld.so/edgecases/test3/libaa/CVS/Repository new file mode 100644 index 000000000..008fec977 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libaa/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/edgecases/test3/libaa diff --git a/src/regress/libexec/ld.so/edgecases/test3/libaa/CVS/Root b/src/regress/libexec/ld.so/edgecases/test3/libaa/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libaa/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/edgecases/test3/libaa/Makefile b/src/regress/libexec/ld.so/edgecases/test3/libaa/Makefile new file mode 100644 index 000000000..9e02e29fb --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libaa/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/23 19:02:29 kurt Exp $ + +LIB= aa +SRCS= aa.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/edgecases/test3/libaa/aa.c b/src/regress/libexec/ld.so/edgecases/test3/libaa/aa.c new file mode 100644 index 000000000..a407ae0f6 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libaa/aa.c @@ -0,0 +1,32 @@ +/* $OpenBSD: aa.c,v 1.1.1.1 2005/09/23 19:02:29 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +int weakFunction1(void) __attribute__((weak)); + +int weakFunction2(void) __attribute__((weak)); + +/* this function should get called instead of the one in libbb */ +int +weakFunction2() +{ + /* this is just to make sure weakFunction1 is refereed to */ + if (weakFunction1) + weakFunction1(); + + return 0; +} diff --git a/src/regress/libexec/ld.so/edgecases/test3/libaa/obj b/src/regress/libexec/ld.so/edgecases/test3/libaa/obj new file mode 120000 index 000000000..62cc1d6ee --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libaa/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/edgecases/test3/libaa \ No newline at end of file diff --git a/src/regress/libexec/ld.so/edgecases/test3/libaa/shlib_version b/src/regress/libexec/ld.so/edgecases/test3/libaa/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libaa/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/edgecases/test3/libbb/CVS/Entries b/src/regress/libexec/ld.so/edgecases/test3/libbb/CVS/Entries new file mode 100644 index 000000000..39275d4b3 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libbb/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Fri Sep 23 19:02:29 2005// +/shlib_version/1.1.1.1/Fri Sep 23 19:02:29 2005// +/bb.c/1.2/Sun Jun 27 18:30:02 2010// +D diff --git a/src/regress/libexec/ld.so/edgecases/test3/libbb/CVS/Repository b/src/regress/libexec/ld.so/edgecases/test3/libbb/CVS/Repository new file mode 100644 index 000000000..4643fa860 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libbb/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/edgecases/test3/libbb diff --git a/src/regress/libexec/ld.so/edgecases/test3/libbb/CVS/Root b/src/regress/libexec/ld.so/edgecases/test3/libbb/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libbb/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/edgecases/test3/libbb/Makefile b/src/regress/libexec/ld.so/edgecases/test3/libbb/Makefile new file mode 100644 index 000000000..1d1d82dda --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libbb/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/23 19:02:29 kurt Exp $ + +LIB= bb +SRCS= bb.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/edgecases/test3/libbb/bb.c b/src/regress/libexec/ld.so/edgecases/test3/libbb/bb.c new file mode 100644 index 000000000..aa2c933f3 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libbb/bb.c @@ -0,0 +1,65 @@ +/* $OpenBSD: bb.c,v 1.2 2010/06/20 17:57:09 phessler Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include + +int weakFunction1(void) __attribute__((weak)); +int weakFunction2(void) __attribute__((weak)); + +/* this function should be called */ +int +weakFunction1() +{ + return 0; +} + +/* this function should be not be called, the one it libaa should */ +int +weakFunction2() +{ + return 1; +} + +int +bbTest1() +{ + int ret = 0; + + /* + * make sure weakFunction1 from libaa (undefined weak) doesn't + * interfere with calling weakFunction1 here + */ + if (weakFunction1) { + weakFunction1(); + } else { + printf("weakFunction1() overwritten by undefined weak " + "in libaa\n"); + ret = 1; + } + + /* + * make sure weakFunction2 from libaa is called instead of the + * one here + */ + if (weakFunction2()) { + printf("wrong weakFunction2() called\n"); + ret = 1; + } + + return (ret); +} diff --git a/src/regress/libexec/ld.so/edgecases/test3/libbb/obj b/src/regress/libexec/ld.so/edgecases/test3/libbb/obj new file mode 120000 index 000000000..f25f04d12 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libbb/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/edgecases/test3/libbb \ No newline at end of file diff --git a/src/regress/libexec/ld.so/edgecases/test3/libbb/shlib_version b/src/regress/libexec/ld.so/edgecases/test3/libbb/shlib_version new file mode 100644 index 000000000..987ef7469 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/libbb/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/edgecases/test3/prog1/CVS/Entries b/src/regress/libexec/ld.so/edgecases/test3/prog1/CVS/Entries new file mode 100644 index 000000000..ec96bcb48 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/prog1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Fri Sep 23 19:02:29 2005// +/main.c/1.1.1.1/Fri Sep 23 19:02:29 2005// +D diff --git a/src/regress/libexec/ld.so/edgecases/test3/prog1/CVS/Repository b/src/regress/libexec/ld.so/edgecases/test3/prog1/CVS/Repository new file mode 100644 index 000000000..7ef3d8f63 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/prog1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/edgecases/test3/prog1 diff --git a/src/regress/libexec/ld.so/edgecases/test3/prog1/CVS/Root b/src/regress/libexec/ld.so/edgecases/test3/prog1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/prog1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/edgecases/test3/prog1/Makefile b/src/regress/libexec/ld.so/edgecases/test3/prog1/Makefile new file mode 100644 index 000000000..094ccf36d --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/prog1/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2005/09/23 19:02:29 kurt Exp $ + +PROG= prog1 +SRCS= main.c +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(BB_OBJDIR) + +.include diff --git a/src/regress/libexec/ld.so/edgecases/test3/prog1/main.c b/src/regress/libexec/ld.so/edgecases/test3/prog1/main.c new file mode 100644 index 000000000..c02ab4c4c --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/prog1/main.c @@ -0,0 +1,50 @@ +/* $OpenBSD: main.c,v 1.1.1.1 2005/09/23 19:02:29 kurt Exp $ */ + +/* + * Copyright (c) 2005 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int +main() +{ + int ret = 0; + void *libaa; + void *libbb; + int (*bbTest1)(void); + + libaa = dlopen("libaa.so", RTLD_LAZY|RTLD_GLOBAL); + if (libaa == NULL) { + printf("dlopen(\"libaa.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + libbb = dlopen("libbb.so", RTLD_LAZY|RTLD_GLOBAL); + if (libbb == NULL) { + printf("dlopen(\"libbb.so\", RTLD_LAZY) FAILED\n"); + return (1); + } + + bbTest1 = dlsym(libbb, "bbTest1"); + + ret = (*bbTest1)(); + + dlclose(libaa); + dlclose(libbb); + + return (ret); +} diff --git a/src/regress/libexec/ld.so/edgecases/test3/prog1/obj b/src/regress/libexec/ld.so/edgecases/test3/prog1/obj new file mode 120000 index 000000000..8b57e3037 --- /dev/null +++ b/src/regress/libexec/ld.so/edgecases/test3/prog1/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/edgecases/test3/prog1 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/elf/CVS/Entries b/src/regress/libexec/ld.so/elf/CVS/Entries new file mode 100644 index 000000000..cd15be064 --- /dev/null +++ b/src/regress/libexec/ld.so/elf/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.2/Sat Feb 23 01:25:11 2002// +/elfbug.h/1.1/Tue Feb 5 21:47:23 2002// +D/foo//// +D/libbar//// diff --git a/src/regress/libexec/ld.so/elf/CVS/Repository b/src/regress/libexec/ld.so/elf/CVS/Repository new file mode 100644 index 000000000..ad7ae8bee --- /dev/null +++ b/src/regress/libexec/ld.so/elf/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/elf diff --git a/src/regress/libexec/ld.so/elf/CVS/Root b/src/regress/libexec/ld.so/elf/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/elf/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/elf/Makefile b/src/regress/libexec/ld.so/elf/Makefile new file mode 100644 index 000000000..523b94e85 --- /dev/null +++ b/src/regress/libexec/ld.so/elf/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.2 2002/02/23 01:25:11 art Exp $ + +SUBDIR+= libbar foo + +install: + +.include diff --git a/src/regress/libexec/ld.so/elf/elfbug.h b/src/regress/libexec/ld.so/elf/elfbug.h new file mode 100644 index 000000000..77a30b5db --- /dev/null +++ b/src/regress/libexec/ld.so/elf/elfbug.h @@ -0,0 +1,9 @@ +/* + * Public domain - Matthieu Herrb 2002 + * + * $OpenBSD: elfbug.h,v 1.1 2002/02/05 21:47:23 matthieu Exp $ + */ +extern int (*func)(void); +extern int uninitialized(void); +extern int bar(void); +extern void fooinit(void); diff --git a/src/regress/libexec/ld.so/elf/foo/CVS/Entries b/src/regress/libexec/ld.so/elf/foo/CVS/Entries new file mode 100644 index 000000000..06e804d72 --- /dev/null +++ b/src/regress/libexec/ld.so/elf/foo/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Sun Feb 10 22:55:13 2002// +/main.c/1.1/Tue Feb 5 21:47:23 2002// +D diff --git a/src/regress/libexec/ld.so/elf/foo/CVS/Repository b/src/regress/libexec/ld.so/elf/foo/CVS/Repository new file mode 100644 index 000000000..95e6120b0 --- /dev/null +++ b/src/regress/libexec/ld.so/elf/foo/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/elf/foo diff --git a/src/regress/libexec/ld.so/elf/foo/CVS/Root b/src/regress/libexec/ld.so/elf/foo/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/elf/foo/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/elf/foo/Makefile b/src/regress/libexec/ld.so/elf/foo/Makefile new file mode 100644 index 000000000..c04156567 --- /dev/null +++ b/src/regress/libexec/ld.so/elf/foo/Makefile @@ -0,0 +1,18 @@ +# $OpenBSD: Makefile,v 1.2 2002/02/10 22:55:13 fgsch Exp $ + +.include + +BAR_DIR=${.CURDIR}/../libbar + +BAR_OBJDIR!= if [ -d $(BAR_DIR)/${__objdir} ]; then \ + echo "$(BAR_DIR)/${__objdir}"; \ + else \ + echo "$(BAR_DIR)"; \ + fi + +PROG= elfbug +SRCS= main.c +CPPFLAGS+= -I${.CURDIR}/.. +LDADD= -Wl,-rpath,$(BAR_OBJDIR) -L$(BAR_OBJDIR) -lbar + +.include diff --git a/src/regress/libexec/ld.so/elf/foo/main.c b/src/regress/libexec/ld.so/elf/foo/main.c new file mode 100644 index 000000000..37b14dfd8 --- /dev/null +++ b/src/regress/libexec/ld.so/elf/foo/main.c @@ -0,0 +1,17 @@ +/* + * Public domain. 2002, Matthieu Herrb + * + * $OpenBSD: main.c,v 1.1 2002/02/05 21:47:23 matthieu Exp $ + */ +#include +#include "elfbug.h" + +int (*func)(void) = uninitialized; + +int +main(int argc, char *argv[]) +{ + fooinit(); + return (*func)(); +} + diff --git a/src/regress/libexec/ld.so/elf/foo/obj b/src/regress/libexec/ld.so/elf/foo/obj new file mode 120000 index 000000000..0acd1c292 --- /dev/null +++ b/src/regress/libexec/ld.so/elf/foo/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/elf/foo \ No newline at end of file diff --git a/src/regress/libexec/ld.so/elf/libbar/CVS/Entries b/src/regress/libexec/ld.so/elf/libbar/CVS/Entries new file mode 100644 index 000000000..d7385c5c4 --- /dev/null +++ b/src/regress/libexec/ld.so/elf/libbar/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Tue Feb 5 21:47:23 2002// +/bar.c/1.1/Tue Feb 5 21:47:23 2002// +/shlib_version/1.2/Tue Jul 13 21:03:36 2004// +D diff --git a/src/regress/libexec/ld.so/elf/libbar/CVS/Repository b/src/regress/libexec/ld.so/elf/libbar/CVS/Repository new file mode 100644 index 000000000..428e2a267 --- /dev/null +++ b/src/regress/libexec/ld.so/elf/libbar/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/elf/libbar diff --git a/src/regress/libexec/ld.so/elf/libbar/CVS/Root b/src/regress/libexec/ld.so/elf/libbar/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/elf/libbar/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/elf/libbar/Makefile b/src/regress/libexec/ld.so/elf/libbar/Makefile new file mode 100644 index 000000000..3c73f6d7f --- /dev/null +++ b/src/regress/libexec/ld.so/elf/libbar/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/05 21:47:23 matthieu Exp $ + +LIB= bar +SRCS= bar.c +CFLAGS+= -I${.CURDIR}/.. + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/elf/libbar/bar.c b/src/regress/libexec/ld.so/elf/libbar/bar.c new file mode 100644 index 000000000..43d874fc3 --- /dev/null +++ b/src/regress/libexec/ld.so/elf/libbar/bar.c @@ -0,0 +1,30 @@ +/* + * Public domain. 2002, Matthieu Herrb + * + * $OpenBSD: bar.c,v 1.1 2002/02/05 21:47:23 matthieu Exp $ + */ + +#include +#include "elfbug.h" + +int +uninitialized(void) +{ + printf("uninitialized called\n"); + return 1; +} + +int +bar(void) +{ + printf("bar\n"); + return 0; +} + +void +fooinit(void) +{ + if (func == uninitialized) { + func = bar; + } +} diff --git a/src/regress/libexec/ld.so/elf/libbar/obj b/src/regress/libexec/ld.so/elf/libbar/obj new file mode 120000 index 000000000..45c3dbd24 --- /dev/null +++ b/src/regress/libexec/ld.so/elf/libbar/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/elf/libbar \ No newline at end of file diff --git a/src/regress/libexec/ld.so/elf/libbar/shlib_version b/src/regress/libexec/ld.so/elf/libbar/shlib_version new file mode 100644 index 000000000..1edea46de --- /dev/null +++ b/src/regress/libexec/ld.so/elf/libbar/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/hidden/CVS/Entries b/src/regress/libexec/ld.so/hidden/CVS/Entries new file mode 100644 index 000000000..03f77369c --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/CVS/Entries @@ -0,0 +1,5 @@ +D/libaa//// +D/libab//// +D/test1//// +D/test2//// +/Makefile/1.2/Mon May 31 05:18:50 2010// diff --git a/src/regress/libexec/ld.so/hidden/CVS/Repository b/src/regress/libexec/ld.so/hidden/CVS/Repository new file mode 100644 index 000000000..4940273ef --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/hidden diff --git a/src/regress/libexec/ld.so/hidden/CVS/Root b/src/regress/libexec/ld.so/hidden/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/hidden/Makefile b/src/regress/libexec/ld.so/hidden/Makefile new file mode 100644 index 000000000..c3751a243 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.2 2010/05/10 18:20:31 drahn Exp $ + +.include + +.if ${COMPILER_VERSION:L} == "gcc3" || ${COMPILER_VERSION:L} == "gcc4" +SUBDIR+= libaa libab test1 test2 +.endif + +install: + +.include diff --git a/src/regress/libexec/ld.so/hidden/libaa/CVS/Entries b/src/regress/libexec/ld.so/hidden/libaa/CVS/Entries new file mode 100644 index 000000000..43d1d35ff --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libaa/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Tue Jul 31 20:31:42 2007// +/aa.c/1.2/Wed Aug 1 12:53:28 2007// +/shlib_version/1.1.1.1/Tue Jul 31 20:31:42 2007// +D diff --git a/src/regress/libexec/ld.so/hidden/libaa/CVS/Repository b/src/regress/libexec/ld.so/hidden/libaa/CVS/Repository new file mode 100644 index 000000000..e98ed4957 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libaa/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/hidden/libaa diff --git a/src/regress/libexec/ld.so/hidden/libaa/CVS/Root b/src/regress/libexec/ld.so/hidden/libaa/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libaa/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/hidden/libaa/Makefile b/src/regress/libexec/ld.so/hidden/libaa/Makefile new file mode 100644 index 000000000..14eafa6d3 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libaa/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2007/07/31 20:31:42 kurt Exp $ + +LIB=aa +SRCS= aa.c +NOPROFILE=yes + +regress: all + +install: + +.include diff --git a/src/regress/libexec/ld.so/hidden/libaa/aa.c b/src/regress/libexec/ld.so/hidden/libaa/aa.c new file mode 100644 index 000000000..c8ea2ac28 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libaa/aa.c @@ -0,0 +1,31 @@ +/* $OpenBSD: aa.c,v 1.2 2007/08/01 12:53:28 kurt Exp $ */ + +/* + * Copyright (c) 2007 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include + +void *hidden_check = &hidden_check; +__asm(".hidden hidden_check"); + +extern void *libaa_hidden_val; + +void test_aa() +{ + libaa_hidden_val = hidden_check; + if (hidden_check != &hidden_check) + errx(1, "libaa: hidden_check != &hidden_check\n"); +} diff --git a/src/regress/libexec/ld.so/hidden/libaa/obj b/src/regress/libexec/ld.so/hidden/libaa/obj new file mode 120000 index 000000000..f7c6cf65f --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libaa/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/hidden/libaa \ No newline at end of file diff --git a/src/regress/libexec/ld.so/hidden/libaa/shlib_version b/src/regress/libexec/ld.so/hidden/libaa/shlib_version new file mode 100644 index 000000000..97c9f92d6 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libaa/shlib_version @@ -0,0 +1,2 @@ +major=0 +minor=0 diff --git a/src/regress/libexec/ld.so/hidden/libab/CVS/Entries b/src/regress/libexec/ld.so/hidden/libab/CVS/Entries new file mode 100644 index 000000000..992899046 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libab/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Tue Jul 31 20:31:42 2007// +/ab.c/1.2/Wed Aug 1 12:53:28 2007// +/shlib_version/1.1.1.1/Tue Jul 31 20:31:42 2007// +D diff --git a/src/regress/libexec/ld.so/hidden/libab/CVS/Repository b/src/regress/libexec/ld.so/hidden/libab/CVS/Repository new file mode 100644 index 000000000..ef5d64285 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libab/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/hidden/libab diff --git a/src/regress/libexec/ld.so/hidden/libab/CVS/Root b/src/regress/libexec/ld.so/hidden/libab/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libab/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/hidden/libab/Makefile b/src/regress/libexec/ld.so/hidden/libab/Makefile new file mode 100644 index 000000000..5ab52aaf2 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libab/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2007/07/31 20:31:42 kurt Exp $ + +LIB=ab +SRCS= ab.c +NOPROFILE=yes + +regress: all + +install: + +.include diff --git a/src/regress/libexec/ld.so/hidden/libab/ab.c b/src/regress/libexec/ld.so/hidden/libab/ab.c new file mode 100644 index 000000000..9f07283a8 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libab/ab.c @@ -0,0 +1,31 @@ +/* $OpenBSD: ab.c,v 1.2 2007/08/01 12:53:28 kurt Exp $ */ + +/* + * Copyright (c) 2007 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include + +void *hidden_check = &hidden_check; +__asm(".hidden hidden_check"); + +extern void *libab_hidden_val; + +void test_ab() +{ + libab_hidden_val = hidden_check; + if (hidden_check != &hidden_check) + errx(1, "libab: hidden_check != &hidden_check\n"); +} diff --git a/src/regress/libexec/ld.so/hidden/libab/obj b/src/regress/libexec/ld.so/hidden/libab/obj new file mode 120000 index 000000000..a86e9853c --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libab/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/hidden/libab \ No newline at end of file diff --git a/src/regress/libexec/ld.so/hidden/libab/shlib_version b/src/regress/libexec/ld.so/hidden/libab/shlib_version new file mode 100644 index 000000000..97c9f92d6 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/libab/shlib_version @@ -0,0 +1,2 @@ +major=0 +minor=0 diff --git a/src/regress/libexec/ld.so/hidden/test1/CVS/Entries b/src/regress/libexec/ld.so/hidden/test1/CVS/Entries new file mode 100644 index 000000000..837f891c0 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/test1/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Tue Jul 31 20:31:42 2007// +/test1.c/1.2/Wed Aug 1 12:53:28 2007// +D diff --git a/src/regress/libexec/ld.so/hidden/test1/CVS/Repository b/src/regress/libexec/ld.so/hidden/test1/CVS/Repository new file mode 100644 index 000000000..4543548c9 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/test1/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/hidden/test1 diff --git a/src/regress/libexec/ld.so/hidden/test1/CVS/Root b/src/regress/libexec/ld.so/hidden/test1/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/test1/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/hidden/test1/Makefile b/src/regress/libexec/ld.so/hidden/test1/Makefile new file mode 100644 index 000000000..80e0db0ab --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/test1/Makefile @@ -0,0 +1,31 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2007/07/31 20:31:42 kurt Exp $ + +.include + +AA_DIR=${.CURDIR}/../libaa +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +AB_DIR=${.CURDIR}/../libab +AB_OBJDIR!= if [ -d $(AB_DIR)/${__objdir} ]; then \ + echo "$(AB_DIR)/${__objdir}"; \ + else \ + echo "$(AB_DIR)"; \ + fi + +PROG= test1 + +SRCS= test1.c + +CFLAGS+= -DLIBAA="\"$(AA_OBJDIR)/libaa.so\"" +CFLAGS+= -DLIBAB="\"$(AB_OBJDIR)/libab.so\"" +LDFLAGS+= -Wl,-E + +NOMAN= + +install: + +.include diff --git a/src/regress/libexec/ld.so/hidden/test1/obj b/src/regress/libexec/ld.so/hidden/test1/obj new file mode 120000 index 000000000..9c591e4e5 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/test1/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/hidden/test1 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/hidden/test1/test1.c b/src/regress/libexec/ld.so/hidden/test1/test1.c new file mode 100644 index 000000000..31ac3dccc --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/test1/test1.c @@ -0,0 +1,66 @@ +/* $OpenBSD: test1.c,v 1.2 2007/08/01 12:53:28 kurt Exp $ */ + +/* + * Copyright (c) 2007 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include + +void *hidden_check = NULL; +__asm(".hidden hidden_check"); + +void *libaa_hidden_val = NULL; +void *libab_hidden_val = NULL; + +int +main() +{ + void *libaa, *libab; + void (*hidden_test)(); + int i; + + libaa = dlopen(LIBAA, RTLD_LAZY); + libab = dlopen(LIBAB, RTLD_LAZY); + if (libaa == NULL) + errx(1, "dlopen(%s, RTLD_LAZY) FAILED\n", LIBAA); + if (libab == NULL) + errx(1, "dlopen(%s, RTLD_LAZY) FAILED\n", LIBAB); + + hidden_test = (void (*)())dlsym(libaa, "test_aa"); + if (hidden_test == NULL) + errx(1, "dlsym(libaa, \"test_aa\") FAILED\n"); + + (*hidden_test)(); + + hidden_test = (void (*)())dlsym(libab, "test_ab"); + if (hidden_test == NULL) + errx(1, "dlsym(libab, \"test_ab\") FAILED\n"); + + (*hidden_test)(); + + if (hidden_check != NULL) + errx(1, "hidden_check != NULL in main prog\n"); + + if (libaa_hidden_val == NULL || libab_hidden_val == NULL || + libaa_hidden_val == libab_hidden_val) + errx(1, "incorrect hidden_check detected in libs\n"); + + dlclose(libaa); + dlclose(libab); + + return (0); +} diff --git a/src/regress/libexec/ld.so/hidden/test2/CVS/Entries b/src/regress/libexec/ld.so/hidden/test2/CVS/Entries new file mode 100644 index 000000000..d6f9434d8 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/test2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Tue Jul 31 20:31:42 2007// +/test2.c/1.2/Wed Aug 1 12:53:28 2007// +D diff --git a/src/regress/libexec/ld.so/hidden/test2/CVS/Repository b/src/regress/libexec/ld.so/hidden/test2/CVS/Repository new file mode 100644 index 000000000..ec9aa1695 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/test2/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/hidden/test2 diff --git a/src/regress/libexec/ld.so/hidden/test2/CVS/Root b/src/regress/libexec/ld.so/hidden/test2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/test2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/hidden/test2/Makefile b/src/regress/libexec/ld.so/hidden/test2/Makefile new file mode 100644 index 000000000..e1cd6fe6f --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/test2/Makefile @@ -0,0 +1,35 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2007/07/31 20:31:42 kurt Exp $ + +.include + +AA_DIR=${.CURDIR}/../libaa +AA_OBJDIR!= if [ -d $(AA_DIR)/${__objdir} ]; then \ + echo "$(AA_DIR)/${__objdir}"; \ + else \ + echo "$(AA_DIR)"; \ + fi + +AB_DIR=${.CURDIR}/../libab +AB_OBJDIR!= if [ -d $(AB_DIR)/${__objdir} ]; then \ + echo "$(AB_DIR)/${__objdir}"; \ + else \ + echo "$(AB_DIR)"; \ + fi + +PROG= test2 + +SRCS= test2.c + +LDADD+= -laa +LDADD+= -lab +LDFLAGS+= -Wl,-E +LDFLAGS+= -Wl,-rpath,$(AA_OBJDIR) +LDFLAGS+= -L$(AA_OBJDIR) +LDFLAGS+= -Wl,-rpath,$(AB_OBJDIR) +LDFLAGS+= -L$(AB_OBJDIR) + +NOMAN= + +install: + +.include diff --git a/src/regress/libexec/ld.so/hidden/test2/obj b/src/regress/libexec/ld.so/hidden/test2/obj new file mode 120000 index 000000000..d6c52f568 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/test2/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/hidden/test2 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/hidden/test2/test2.c b/src/regress/libexec/ld.so/hidden/test2/test2.c new file mode 100644 index 000000000..f450e3ef3 --- /dev/null +++ b/src/regress/libexec/ld.so/hidden/test2/test2.c @@ -0,0 +1,46 @@ +/* $OpenBSD: test2.c,v 1.2 2007/08/01 12:53:28 kurt Exp $ */ + +/* + * Copyright (c) 2007 Kurt Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include + +void *hidden_check = NULL; +__asm(".hidden hidden_check"); + +void *libaa_hidden_val = NULL; +void *libab_hidden_val = NULL; + +extern void test_aa(void); +extern void test_bb(void); + +int +main() +{ + test_aa(); + test_ab(); + + if (hidden_check != NULL) + errx(1, "hidden_check != NULL in main prog\n"); + + if (libaa_hidden_val == NULL || libab_hidden_val == NULL || + libaa_hidden_val == libab_hidden_val) + errx(1, "incorrect hidden_check detected in libs\n"); + + return (0); +} diff --git a/src/regress/libexec/ld.so/lazy/CVS/Entries b/src/regress/libexec/ld.so/lazy/CVS/Entries new file mode 100644 index 000000000..b73a3dc48 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Wed Jan 2 18:36:59 2008// +D/libbar//// +D/libfoo//// +D/prog//// diff --git a/src/regress/libexec/ld.so/lazy/CVS/Repository b/src/regress/libexec/ld.so/lazy/CVS/Repository new file mode 100644 index 000000000..cb0b09220 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/lazy diff --git a/src/regress/libexec/ld.so/lazy/CVS/Root b/src/regress/libexec/ld.so/lazy/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/lazy/Makefile b/src/regress/libexec/ld.so/lazy/Makefile new file mode 100644 index 000000000..7250aeb59 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2008/01/02 18:36:59 matthieu Exp $ + +SUBDIR += libfoo libbar prog + +install: + +.include diff --git a/src/regress/libexec/ld.so/lazy/libbar/CVS/Entries b/src/regress/libexec/ld.so/lazy/libbar/CVS/Entries new file mode 100644 index 000000000..3353c2871 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libbar/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Wed Jan 2 18:36:59 2008// +/bar.c/1.1.1.1/Wed Jan 2 18:36:59 2008// +/shlib_version/1.1.1.1/Wed Jan 2 18:36:59 2008// +D diff --git a/src/regress/libexec/ld.so/lazy/libbar/CVS/Repository b/src/regress/libexec/ld.so/lazy/libbar/CVS/Repository new file mode 100644 index 000000000..a3f1636ab --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libbar/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/lazy/libbar diff --git a/src/regress/libexec/ld.so/lazy/libbar/CVS/Root b/src/regress/libexec/ld.so/lazy/libbar/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libbar/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/lazy/libbar/Makefile b/src/regress/libexec/ld.so/lazy/libbar/Makefile new file mode 100644 index 000000000..9e0c88f76 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libbar/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2008/01/02 18:36:59 matthieu Exp $ + +LIB= bar +SRCS= bar.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/lazy/libbar/bar.c b/src/regress/libexec/ld.so/lazy/libbar/bar.c new file mode 100644 index 000000000..8121a3023 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libbar/bar.c @@ -0,0 +1,11 @@ +/* $OpenBSD: bar.c,v 1.1.1.1 2008/01/02 18:36:59 matthieu Exp $ */ +/* Public Domain, 2008, Matthieu Herrb */ + +#include + +int +bar(void) +{ + printf("bar\n"); + return 0; +} diff --git a/src/regress/libexec/ld.so/lazy/libbar/obj b/src/regress/libexec/ld.so/lazy/libbar/obj new file mode 120000 index 000000000..6f6c58fb3 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libbar/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/lazy/libbar \ No newline at end of file diff --git a/src/regress/libexec/ld.so/lazy/libbar/shlib_version b/src/regress/libexec/ld.so/lazy/libbar/shlib_version new file mode 100644 index 000000000..97c9f92d6 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libbar/shlib_version @@ -0,0 +1,2 @@ +major=0 +minor=0 diff --git a/src/regress/libexec/ld.so/lazy/libfoo/CVS/Entries b/src/regress/libexec/ld.so/lazy/libfoo/CVS/Entries new file mode 100644 index 000000000..f2940ed3a --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libfoo/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Wed Jan 2 18:36:59 2008// +/foo.c/1.1.1.1/Wed Jan 2 18:36:59 2008// +/shlib_version/1.1.1.1/Wed Jan 2 18:36:59 2008// +D diff --git a/src/regress/libexec/ld.so/lazy/libfoo/CVS/Repository b/src/regress/libexec/ld.so/lazy/libfoo/CVS/Repository new file mode 100644 index 000000000..f4b7cc9ba --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libfoo/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/lazy/libfoo diff --git a/src/regress/libexec/ld.so/lazy/libfoo/CVS/Root b/src/regress/libexec/ld.so/lazy/libfoo/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libfoo/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/lazy/libfoo/Makefile b/src/regress/libexec/ld.so/lazy/libfoo/Makefile new file mode 100644 index 000000000..73761a604 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libfoo/Makefile @@ -0,0 +1,18 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2008/01/02 18:36:59 matthieu Exp $ + +.include + +LIB= foo +SRCS= foo.c + +BARDIR!= if test -d ${.CURDIR}/../libbar/${__objdir}; then \ + echo "${.CURDIR}/../libbar/${__objdir}"; \ + else \ + echo "${.CURDIR}/../libbar"; \ + fi + +CPPFLAGS= -DBAR=\"${BARDIR}/libbar.so\" + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/lazy/libfoo/foo.c b/src/regress/libexec/ld.so/lazy/libfoo/foo.c new file mode 100644 index 000000000..39f921444 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libfoo/foo.c @@ -0,0 +1,26 @@ +/* $OpenBSD: foo.c,v 1.1.1.1 2008/01/02 18:36:59 matthieu Exp $ */ +/* Public domain. 2008, Matthieu Herrb */ + +#include +#include + +static void *h = NULL; + +void +foo_init(void) +{ + printf("loading %s\n", BAR); + h = dlopen(BAR, RTLD_LAZY|RTLD_GLOBAL); + if (h == NULL) + errx(1, "dlopen %s: %s\n", BAR, dlerror()); + printf("loaded: %s\n", BAR); +} + +int +foo(void) +{ + if (h == NULL) + foo_init(); + + return bar(); +} diff --git a/src/regress/libexec/ld.so/lazy/libfoo/obj b/src/regress/libexec/ld.so/lazy/libfoo/obj new file mode 120000 index 000000000..d32ff9811 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libfoo/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/lazy/libfoo \ No newline at end of file diff --git a/src/regress/libexec/ld.so/lazy/libfoo/shlib_version b/src/regress/libexec/ld.so/lazy/libfoo/shlib_version new file mode 100644 index 000000000..97c9f92d6 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/libfoo/shlib_version @@ -0,0 +1,2 @@ +major=0 +minor=0 diff --git a/src/regress/libexec/ld.so/lazy/prog/CVS/Entries b/src/regress/libexec/ld.so/lazy/prog/CVS/Entries new file mode 100644 index 000000000..529418b0a --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/prog/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Wed Jan 2 18:36:59 2008// +/prog.c/1.1.1.1/Wed Jan 2 18:36:59 2008// +D diff --git a/src/regress/libexec/ld.so/lazy/prog/CVS/Repository b/src/regress/libexec/ld.so/lazy/prog/CVS/Repository new file mode 100644 index 000000000..14de9e633 --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/prog/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/lazy/prog diff --git a/src/regress/libexec/ld.so/lazy/prog/CVS/Root b/src/regress/libexec/ld.so/lazy/prog/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/prog/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/lazy/prog/Makefile b/src/regress/libexec/ld.so/lazy/prog/Makefile new file mode 100644 index 000000000..3f7e1f00e --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/prog/Makefile @@ -0,0 +1,15 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2008/01/02 18:36:59 matthieu Exp $ + +.include + +PROG= prog + +FOODIR!= if test -d ${.CURDIR}/../libfoo/${__objdir}; then \ + echo "${.CURDIR}/../libfoo/${__objdir}"; \ + else \ + echo "${.CURDIR}/../libfoo"; \ + fi + +CPPFLAGS= -DFOO=\"${FOODIR}/libfoo.so\" + +.include diff --git a/src/regress/libexec/ld.so/lazy/prog/obj b/src/regress/libexec/ld.so/lazy/prog/obj new file mode 120000 index 000000000..4794b1b3b --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/prog/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/lazy/prog \ No newline at end of file diff --git a/src/regress/libexec/ld.so/lazy/prog/prog.c b/src/regress/libexec/ld.so/lazy/prog/prog.c new file mode 100644 index 000000000..285a8c94d --- /dev/null +++ b/src/regress/libexec/ld.so/lazy/prog/prog.c @@ -0,0 +1,29 @@ +/* $OpenBSD: prog.c,v 1.1.1.1 2008/01/02 18:36:59 matthieu Exp $ */ +/* Public Domain, 2008, Matthieu Herrb */ + +#include +#include + +void *handle = NULL; + +typedef int (*foofunc)(void); + +int +main(int argc, char *argv[]) +{ + foofunc foo; + int i; + + printf("loading: %s\n", FOO); + handle = dlopen(FOO, RTLD_LAZY|RTLD_GLOBAL); + if (handle == NULL) { + errx(1, "dlopen: %s: %s\n", FOO, dlerror()); + } + printf("loaded: %s\n", FOO); + printf("looking up foo\n"); + foo = (foofunc)dlsym(handle, "foo"); + printf("found %p - calling it\n", foo); + i = foo(); + printf("done.\n"); + exit(i); +} diff --git a/src/regress/libexec/ld.so/link-order/CVS/Entries b/src/regress/libexec/ld.so/link-order/CVS/Entries new file mode 100644 index 000000000..252e10971 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/CVS/Entries @@ -0,0 +1,7 @@ +/Makefile/1.2/Tue Jul 1 07:08:31 2003// +D/lib10//// +D/lib11//// +D/lib20//// +D/libnover//// +D/prog//// +D/test//// diff --git a/src/regress/libexec/ld.so/link-order/CVS/Repository b/src/regress/libexec/ld.so/link-order/CVS/Repository new file mode 100644 index 000000000..2ad565a0f --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/link-order diff --git a/src/regress/libexec/ld.so/link-order/CVS/Root b/src/regress/libexec/ld.so/link-order/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/link-order/Makefile b/src/regress/libexec/ld.so/link-order/Makefile new file mode 100644 index 000000000..e5cbcc5a7 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/Makefile @@ -0,0 +1,12 @@ +# $OpenBSD: Makefile,v 1.2 2003/07/01 07:08:31 niklas Exp $ + +.include + +.if (${ELF_TOOLCHAIN} == "yes") +SUBDIR+= libnover +.endif +SUBDIR+= lib10 lib11 lib20 prog test + +install: + +.include diff --git a/src/regress/libexec/ld.so/link-order/lib10/10.c b/src/regress/libexec/ld.so/link-order/lib10/10.c new file mode 100644 index 000000000..acc0e36c4 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib10/10.c @@ -0,0 +1,13 @@ +/* + * Public domain. 2003. Niklas Hallqvist. + * + * $OpenBSD: 10.c,v 1.1 2003/07/01 05:51:30 niklas Exp $ + */ + +#include + +void +version(void) +{ + printf("1.0\n"); +} diff --git a/src/regress/libexec/ld.so/link-order/lib10/CVS/Entries b/src/regress/libexec/ld.so/link-order/lib10/CVS/Entries new file mode 100644 index 000000000..b98452dc8 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib10/CVS/Entries @@ -0,0 +1,4 @@ +/10.c/1.1/Tue Jul 1 05:51:30 2003// +/Makefile/1.1/Tue Jul 1 05:51:30 2003// +/shlib_version/1.3/Wed Jul 14 04:42:32 2004// +D diff --git a/src/regress/libexec/ld.so/link-order/lib10/CVS/Repository b/src/regress/libexec/ld.so/link-order/lib10/CVS/Repository new file mode 100644 index 000000000..4130a874d --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib10/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/link-order/lib10 diff --git a/src/regress/libexec/ld.so/link-order/lib10/CVS/Root b/src/regress/libexec/ld.so/link-order/lib10/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib10/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/link-order/lib10/Makefile b/src/regress/libexec/ld.so/link-order/lib10/Makefile new file mode 100644 index 000000000..8faed7061 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib10/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1 2003/07/01 05:51:30 niklas Exp $ + +LIB= test +SRCS= 10.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/link-order/lib10/obj b/src/regress/libexec/ld.so/link-order/lib10/obj new file mode 120000 index 000000000..7a10e6973 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib10/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/link-order/lib10 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/link-order/lib10/shlib_version b/src/regress/libexec/ld.so/link-order/lib10/shlib_version new file mode 100644 index 000000000..1edea46de --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib10/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 diff --git a/src/regress/libexec/ld.so/link-order/lib11/11.c b/src/regress/libexec/ld.so/link-order/lib11/11.c new file mode 100644 index 000000000..cd7fb8068 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib11/11.c @@ -0,0 +1,13 @@ +/* + * Public domain. 2003. Niklas Hallqvist. + * + * $OpenBSD: 11.c,v 1.1 2003/07/01 05:51:30 niklas Exp $ + */ + +#include + +void +version(void) +{ + printf("1.1\n"); +} diff --git a/src/regress/libexec/ld.so/link-order/lib11/CVS/Entries b/src/regress/libexec/ld.so/link-order/lib11/CVS/Entries new file mode 100644 index 000000000..d84f66fa5 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib11/CVS/Entries @@ -0,0 +1,4 @@ +/11.c/1.1/Tue Jul 1 05:51:30 2003// +/Makefile/1.1/Tue Jul 1 05:51:30 2003// +/shlib_version/1.3/Wed Jul 14 04:42:32 2004// +D diff --git a/src/regress/libexec/ld.so/link-order/lib11/CVS/Repository b/src/regress/libexec/ld.so/link-order/lib11/CVS/Repository new file mode 100644 index 000000000..a1607b608 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib11/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/link-order/lib11 diff --git a/src/regress/libexec/ld.so/link-order/lib11/CVS/Root b/src/regress/libexec/ld.so/link-order/lib11/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib11/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/link-order/lib11/Makefile b/src/regress/libexec/ld.so/link-order/lib11/Makefile new file mode 100644 index 000000000..3cc3ab371 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib11/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1 2003/07/01 05:51:30 niklas Exp $ + +LIB= test +SRCS= 11.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/link-order/lib11/obj b/src/regress/libexec/ld.so/link-order/lib11/obj new file mode 120000 index 000000000..6b1d34cf6 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib11/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/link-order/lib11 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/link-order/lib11/shlib_version b/src/regress/libexec/ld.so/link-order/lib11/shlib_version new file mode 100644 index 000000000..893819d18 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib11/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=1 diff --git a/src/regress/libexec/ld.so/link-order/lib20/20.c b/src/regress/libexec/ld.so/link-order/lib20/20.c new file mode 100644 index 000000000..9638a8167 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib20/20.c @@ -0,0 +1,13 @@ +/* + * Public domain. 2003. Niklas Hallqvist. + * + * $OpenBSD: 20.c,v 1.1 2003/07/01 05:51:30 niklas Exp $ + */ + +#include + +void +version(void) +{ + printf("2.0\n"); +} diff --git a/src/regress/libexec/ld.so/link-order/lib20/CVS/Entries b/src/regress/libexec/ld.so/link-order/lib20/CVS/Entries new file mode 100644 index 000000000..b46202456 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib20/CVS/Entries @@ -0,0 +1,4 @@ +/20.c/1.1/Tue Jul 1 05:51:30 2003// +/Makefile/1.1/Tue Jul 1 05:51:30 2003// +/shlib_version/1.3/Wed Jul 14 04:42:32 2004// +D diff --git a/src/regress/libexec/ld.so/link-order/lib20/CVS/Repository b/src/regress/libexec/ld.so/link-order/lib20/CVS/Repository new file mode 100644 index 000000000..b7cf35e97 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib20/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/link-order/lib20 diff --git a/src/regress/libexec/ld.so/link-order/lib20/CVS/Root b/src/regress/libexec/ld.so/link-order/lib20/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib20/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/link-order/lib20/Makefile b/src/regress/libexec/ld.so/link-order/lib20/Makefile new file mode 100644 index 000000000..09a07c6c7 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib20/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.1 2003/07/01 05:51:30 niklas Exp $ + +LIB= test +SRCS= 20.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/link-order/lib20/obj b/src/regress/libexec/ld.so/link-order/lib20/obj new file mode 120000 index 000000000..2bb25d1be --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib20/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/link-order/lib20 \ No newline at end of file diff --git a/src/regress/libexec/ld.so/link-order/lib20/shlib_version b/src/regress/libexec/ld.so/link-order/lib20/shlib_version new file mode 100644 index 000000000..b52599a16 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/lib20/shlib_version @@ -0,0 +1,2 @@ +major=2 +minor=0 diff --git a/src/regress/libexec/ld.so/link-order/libnover/CVS/Entries b/src/regress/libexec/ld.so/link-order/libnover/CVS/Entries new file mode 100644 index 000000000..8967df784 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/libnover/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Jul 1 05:51:30 2003// +/nover.c/1.1/Tue Jul 1 05:51:31 2003// +D diff --git a/src/regress/libexec/ld.so/link-order/libnover/CVS/Repository b/src/regress/libexec/ld.so/link-order/libnover/CVS/Repository new file mode 100644 index 000000000..941c8da52 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/libnover/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/link-order/libnover diff --git a/src/regress/libexec/ld.so/link-order/libnover/CVS/Root b/src/regress/libexec/ld.so/link-order/libnover/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/libnover/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/link-order/libnover/Makefile b/src/regress/libexec/ld.so/link-order/libnover/Makefile new file mode 100644 index 000000000..bab047f76 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/libnover/Makefile @@ -0,0 +1,16 @@ +# $OpenBSD: Makefile,v 1.1 2003/07/01 05:51:30 niklas Exp $ + +LIB= test +SRCS= nover.c + +regress: all + +.include + +all: lib${LIB}.so + +lib${LIB}.so: ${SOBJS} ${DPADD} + @echo building shared ${LIB} library + @rm -f lib${LIB}.so + ${CC} -shared ${PICFLAG} \ + -o lib${LIB}.so `${LORDER} ${SOBJS}|tsort -q` ${LDADD} diff --git a/src/regress/libexec/ld.so/link-order/libnover/nover.c b/src/regress/libexec/ld.so/link-order/libnover/nover.c new file mode 100644 index 000000000..ba3d2b50c --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/libnover/nover.c @@ -0,0 +1,13 @@ +/* + * Public domain. 2003. Niklas Hallqvist. + * + * $OpenBSD: nover.c,v 1.1 2003/07/01 05:51:31 niklas Exp $ + */ + +#include + +void +version(void) +{ + printf("none\n"); +} diff --git a/src/regress/libexec/ld.so/link-order/libnover/obj b/src/regress/libexec/ld.so/link-order/libnover/obj new file mode 120000 index 000000000..e65fa9a64 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/libnover/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/link-order/libnover \ No newline at end of file diff --git a/src/regress/libexec/ld.so/link-order/prog/CVS/Entries b/src/regress/libexec/ld.so/link-order/prog/CVS/Entries new file mode 100644 index 000000000..08e4e49ea --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/prog/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Jul 1 05:51:31 2003// +/prog.c/1.1/Tue Jul 1 05:51:31 2003// +D diff --git a/src/regress/libexec/ld.so/link-order/prog/CVS/Repository b/src/regress/libexec/ld.so/link-order/prog/CVS/Repository new file mode 100644 index 000000000..86f00ab3c --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/prog/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/link-order/prog diff --git a/src/regress/libexec/ld.so/link-order/prog/CVS/Root b/src/regress/libexec/ld.so/link-order/prog/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/prog/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/link-order/prog/Makefile b/src/regress/libexec/ld.so/link-order/prog/Makefile new file mode 100644 index 000000000..51556ff62 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/prog/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.1 2003/07/01 05:51:31 niklas Exp $ + +PROG= prog +SRCS= prog.c +NOMAN= true + +.include diff --git a/src/regress/libexec/ld.so/link-order/prog/obj b/src/regress/libexec/ld.so/link-order/prog/obj new file mode 120000 index 000000000..a830da9fa --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/prog/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/link-order/prog \ No newline at end of file diff --git a/src/regress/libexec/ld.so/link-order/prog/prog.c b/src/regress/libexec/ld.so/link-order/prog/prog.c new file mode 100644 index 000000000..28f9cfb66 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/prog/prog.c @@ -0,0 +1,25 @@ +#include +#include +#include + +#ifdef __ELF__ +#define C_LABEL(x) x +#else +#define C_LABEL(x) "_" ## x +#endif + +int +main() +{ + void *handle = dlopen("libtest.so", DL_LAZY); + void (*version)(void); + + if (handle == NULL) + errx(1, "could not dynamically link libtest"); + version = dlsym(handle, C_LABEL("version")); + if (version == NULL) + errx(2, "libtest did not define version()"); + version(); + dlclose(handle); + return 0; +} diff --git a/src/regress/libexec/ld.so/link-order/test/CVS/Entries b/src/regress/libexec/ld.so/link-order/test/CVS/Entries new file mode 100644 index 000000000..4d02188a7 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/test/CVS/Entries @@ -0,0 +1,3 @@ +/test.sh/1.1/Tue Jul 1 05:51:31 2003// +/Makefile/1.4/Sun Jun 27 18:30:02 2010// +D diff --git a/src/regress/libexec/ld.so/link-order/test/CVS/Repository b/src/regress/libexec/ld.so/link-order/test/CVS/Repository new file mode 100644 index 000000000..2cee98ef6 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/test/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/link-order/test diff --git a/src/regress/libexec/ld.so/link-order/test/CVS/Root b/src/regress/libexec/ld.so/link-order/test/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/test/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/link-order/test/Makefile b/src/regress/libexec/ld.so/link-order/test/Makefile new file mode 100644 index 000000000..5d84be1e4 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/test/Makefile @@ -0,0 +1,105 @@ +# $OpenBSD: Makefile,v 1.4 2010/06/20 14:19:13 phessler Exp $ + +.include + +REGRESS_TARGETS= test-none test-single test-minor-1 test-minor-2 \ + test-major-1 test-major-2 +.if (${ELF_TOOLCHAIN} == "yes") +REGRESS_TARGETS+= test-nover test-nover-single-1 test-nover-single-2 +.endif + +.include + +.if (${ELF_TOOLCHAIN} == "yes") +DIR_NOVER=${.CURDIR}/../libnover + +OBJDIR_NOVER!= if [ -d $(DIR_NOVER)/${__objdir} ]; then \ + echo "$(DIR_NOVER)/${__objdir}"; \ + else \ + echo "$(DIR_NOVER)"; \ + fi +.endif + +DIR_10=${.CURDIR}/../lib10 + +OBJDIR_10!= if [ -d $(DIR_10)/${__objdir} ]; then \ + echo "$(DIR_10)/${__objdir}"; \ + else \ + echo "$(DIR_10)"; \ + fi + +DIR_11=${.CURDIR}/../lib11 + +OBJDIR_11!= if [ -d $(DIR_11)/${__objdir} ]; then \ + echo "$(DIR_11)/${__objdir}"; \ + else \ + echo "$(DIR_11)"; \ + fi + +DIR_20=${.CURDIR}/../lib20 + +OBJDIR_20!= if [ -d $(DIR_20)/${__objdir} ]; then \ + echo "$(DIR_20)/${__objdir}"; \ + else \ + echo "$(DIR_20)"; \ + fi + +DIR_PROG=${.CURDIR}/../prog + +OBJDIR_PROG!= if [ -d $(DIR_PROG)/${__objdir} ]; then \ + echo "$(DIR_PROG)/${__objdir}"; \ + else \ + echo "$(DIR_PROG)"; \ + fi + +PROGPATH= ${OBJDIR_PROG}/prog + +prog: + @cd $(DIR_PROG) && $(MAKE) + +make-lib: prog + @mkdir lib >/dev/null 2>&1 || true + +clean: + @rm lib/* >/dev/null 2>&1 || true + +test-none: make-lib clean + sh ${.CURDIR}/test.sh ${PROGPATH} '%ERROR%' + +.if (${ELF_TOOLCHAIN} == "yes") +test-nover: make-lib clean + cp ${OBJDIR_NOVER}/libtest.so lib/ + sh ${.CURDIR}/test.sh ${PROGPATH} none +.endif + +test-single: make-lib clean + cp ${OBJDIR_10}/libtest.so.1.0 lib/ + sh ${.CURDIR}/test.sh ${PROGPATH} 1.0 + +test-minor-1: make-lib clean + cp ${OBJDIR_10}/libtest.so.1.0 ${OBJDIR_11}/libtest.so.1.1 lib/ + sh ${.CURDIR}/test.sh ${PROGPATH} 1.1 + +test-minor-2: make-lib clean + cp ${OBJDIR_10}/libtest.so.1.0 ${OBJDIR_11}/libtest.so.1.1 lib/ + sh ${.CURDIR}/test.sh ${PROGPATH} 1.1 + +test-major-1: make-lib clean + cp ${OBJDIR_11}/libtest.so.1.1 ${OBJDIR_20}/libtest.so.2.0 lib/ + sh ${.CURDIR}/test.sh ${PROGPATH} 2.0 + +test-major-2: make-lib clean + cp ${OBJDIR_11}/libtest.so.1.1 ${OBJDIR_20}/libtest.so.2.0 lib/ + sh ${.CURDIR}/test.sh ${PROGPATH} 2.0 + +.if (${ELF_TOOLCHAIN} == "yes") +test-nover-single-1: make-lib clean + cp ${OBJDIR_NOVER}/libtest.so ${OBJDIR_10}/libtest.so.1.0 lib/ + sh ${.CURDIR}/test.sh ${PROGPATH} none + +test-nover-single-2: make-lib clean + cp ${OBJDIR_10}/libtest.so.1.0 ${OBJDIR_NOVER}/libtest.so lib/ + sh ${.CURDIR}/test.sh ${PROGPATH} none +.endif + +.include diff --git a/src/regress/libexec/ld.so/link-order/test/obj b/src/regress/libexec/ld.so/link-order/test/obj new file mode 120000 index 000000000..ad55f8613 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/test/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/link-order/test \ No newline at end of file diff --git a/src/regress/libexec/ld.so/link-order/test/test.sh b/src/regress/libexec/ld.so/link-order/test/test.sh new file mode 100644 index 000000000..ef3bb4a19 --- /dev/null +++ b/src/regress/libexec/ld.so/link-order/test/test.sh @@ -0,0 +1,10 @@ +# $OpenBSD: test.sh,v 1.1 2003/07/01 05:51:31 niklas Exp $ + +msg=`LD_LIBRARY_PATH=lib $1` +case $2 in +%ERROR%) + test $? -ne 0;; +*) + test X"$msg" = X"$2" +esac +exit $? diff --git a/src/regress/libexec/ld.so/weak/CVS/Entries b/src/regress/libexec/ld.so/weak/CVS/Entries new file mode 100644 index 000000000..2f0ff3fa8 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/CVS/Entries @@ -0,0 +1,6 @@ +/Makefile/1.3/Wed Nov 13 21:52:11 2002// +/Makefile.inc/1.1/Wed Nov 13 22:08:39 2002// +D/libstrong//// +D/libweak//// +D/prog//// +D/prog2//// diff --git a/src/regress/libexec/ld.so/weak/CVS/Repository b/src/regress/libexec/ld.so/weak/CVS/Repository new file mode 100644 index 000000000..1e2536248 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/weak diff --git a/src/regress/libexec/ld.so/weak/CVS/Root b/src/regress/libexec/ld.so/weak/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/weak/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/weak/Makefile b/src/regress/libexec/ld.so/weak/Makefile new file mode 100644 index 000000000..388102c36 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.3 2002/11/13 21:52:11 fgsch Exp $ + +SUBDIR+= libstrong libweak prog prog2 + +install: + +.include diff --git a/src/regress/libexec/ld.so/weak/Makefile.inc b/src/regress/libexec/ld.so/weak/Makefile.inc new file mode 100644 index 000000000..db244aa88 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/Makefile.inc @@ -0,0 +1,3 @@ +# $OpenBSD: Makefile.inc,v 1.1 2002/11/13 22:08:39 todd Exp $ + +CFLAGS += -I${.CURDIR}/../prog -Wall -Werror diff --git a/src/regress/libexec/ld.so/weak/libstrong/CVS/Entries b/src/regress/libexec/ld.so/weak/libstrong/CVS/Entries new file mode 100644 index 000000000..687e9e753 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libstrong/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.2/Wed Nov 13 22:08:39 2002// +/shlib_version/1.2/Tue Jul 13 21:03:36 2004// +/strong.c/1.2/Mon Feb 11 19:49:04 2002// +D diff --git a/src/regress/libexec/ld.so/weak/libstrong/CVS/Repository b/src/regress/libexec/ld.so/weak/libstrong/CVS/Repository new file mode 100644 index 000000000..3ca5baa5e --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libstrong/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/weak/libstrong diff --git a/src/regress/libexec/ld.so/weak/libstrong/CVS/Root b/src/regress/libexec/ld.so/weak/libstrong/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libstrong/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/weak/libstrong/Makefile b/src/regress/libexec/ld.so/weak/libstrong/Makefile new file mode 100644 index 000000000..ea6b9e6e4 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libstrong/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.2 2002/11/13 22:08:39 todd Exp $ + +LIB= strong +SRCS= strong.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/weak/libstrong/obj b/src/regress/libexec/ld.so/weak/libstrong/obj new file mode 120000 index 000000000..72ce9dd7b --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libstrong/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/weak/libstrong \ No newline at end of file diff --git a/src/regress/libexec/ld.so/weak/libstrong/shlib_version b/src/regress/libexec/ld.so/weak/libstrong/shlib_version new file mode 100644 index 000000000..b52599a16 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libstrong/shlib_version @@ -0,0 +1,2 @@ +major=2 +minor=0 diff --git a/src/regress/libexec/ld.so/weak/libstrong/strong.c b/src/regress/libexec/ld.so/weak/libstrong/strong.c new file mode 100644 index 000000000..f32958326 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libstrong/strong.c @@ -0,0 +1,13 @@ +/* $OpenBSD: strong.c,v 1.2 2002/02/11 19:49:04 fgsch Exp $ */ + +/* + * Public domain. 2002, Federico Schwindt . + */ + +#include "defs.h" + +int +func() +{ + return (STRONG_REF); +} diff --git a/src/regress/libexec/ld.so/weak/libweak/CVS/Entries b/src/regress/libexec/ld.so/weak/libweak/CVS/Entries new file mode 100644 index 000000000..41007c320 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libweak/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.3/Wed Nov 13 22:08:39 2002// +/shlib_version/1.2/Tue Jul 13 21:03:36 2004// +/weak.c/1.2/Wed Nov 13 21:51:04 2002// +D diff --git a/src/regress/libexec/ld.so/weak/libweak/CVS/Repository b/src/regress/libexec/ld.so/weak/libweak/CVS/Repository new file mode 100644 index 000000000..4361cf52a --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libweak/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/weak/libweak diff --git a/src/regress/libexec/ld.so/weak/libweak/CVS/Root b/src/regress/libexec/ld.so/weak/libweak/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libweak/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/weak/libweak/Makefile b/src/regress/libexec/ld.so/weak/libweak/Makefile new file mode 100644 index 000000000..200a83f25 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libweak/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.3 2002/11/13 22:08:39 todd Exp $ + +LIB= weak +SRCS= weak.c + +regress: all + +.include diff --git a/src/regress/libexec/ld.so/weak/libweak/obj b/src/regress/libexec/ld.so/weak/libweak/obj new file mode 120000 index 000000000..9cd716386 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libweak/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/weak/libweak \ No newline at end of file diff --git a/src/regress/libexec/ld.so/weak/libweak/shlib_version b/src/regress/libexec/ld.so/weak/libweak/shlib_version new file mode 100644 index 000000000..b52599a16 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libweak/shlib_version @@ -0,0 +1,2 @@ +major=2 +minor=0 diff --git a/src/regress/libexec/ld.so/weak/libweak/weak.c b/src/regress/libexec/ld.so/weak/libweak/weak.c new file mode 100644 index 000000000..39736cd96 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/libweak/weak.c @@ -0,0 +1,16 @@ +/* $OpenBSD: weak.c,v 1.2 2002/11/13 21:51:04 fgsch Exp $ */ + +/* + * Public domain. 2002, Federico Schwindt . + */ + +#include +#include "defs.h" + +int +weak_func() +{ + return (WEAK_REF); +} + +__weak_alias(func,weak_func); diff --git a/src/regress/libexec/ld.so/weak/prog/CVS/Entries b/src/regress/libexec/ld.so/weak/prog/CVS/Entries new file mode 100644 index 000000000..763b2d53a --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Sun Feb 10 22:51:41 2002// +/defs.h/1.2/Wed Nov 13 22:08:39 2002// +/main.c/1.2/Mon Feb 11 19:47:58 2002// +D diff --git a/src/regress/libexec/ld.so/weak/prog/CVS/Repository b/src/regress/libexec/ld.so/weak/prog/CVS/Repository new file mode 100644 index 000000000..dad8a60fe --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/weak/prog diff --git a/src/regress/libexec/ld.so/weak/prog/CVS/Root b/src/regress/libexec/ld.so/weak/prog/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/weak/prog/Makefile b/src/regress/libexec/ld.so/weak/prog/Makefile new file mode 100644 index 000000000..09d58077c --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog/Makefile @@ -0,0 +1,23 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2002/02/10 22:51:41 fgsch Exp $ + +.include + +PROG= prog +SRCS= main.c + +LIBWEAK!= if test -d ${.CURDIR}/../libweak/${__objdir} ; then \ + echo "${.CURDIR}/../libweak/${__objdir}" ; \ + else \ + echo "${.CURDIR}/../libweak" ; \ + fi + +LIBSTRONG!= if test -d ${.CURDIR}/../libstrong/${__objdir} ; then \ + echo "${.CURDIR}/../libstrong/${__objdir}" ; \ + else \ + echo "${.CURDIR}/../libstrong" ; \ + fi + +LDADD+= -Wl,-rpath,${LIBWEAK} -L${LIBWEAK} -lweak +LDADD+= -Wl,-rpath,${LIBSTRONG} -L${LIBSTRONG} -lstrong + +.include diff --git a/src/regress/libexec/ld.so/weak/prog/defs.h b/src/regress/libexec/ld.so/weak/prog/defs.h new file mode 100644 index 000000000..05df357e4 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog/defs.h @@ -0,0 +1,11 @@ +/* $OpenBSD: defs.h,v 1.2 2002/11/13 22:08:39 todd Exp $ */ + +/* + * Public domain. 2002, Federico Schwindt . + */ + +#define WEAK_REF 3 +#define STRONG_REF 1 + +int weak_func(void); +int func(void); diff --git a/src/regress/libexec/ld.so/weak/prog/main.c b/src/regress/libexec/ld.so/weak/prog/main.c new file mode 100644 index 000000000..9be546b0d --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog/main.c @@ -0,0 +1,20 @@ +/* $OpenBSD: main.c,v 1.2 2002/02/11 19:47:58 fgsch Exp $ */ + +/* + * Public domain. 2002, Federico Schwindt . + */ + +#include +#include "defs.h" + +int +main(int argc, char **argv) +{ + if (weak_func() != WEAK_REF) + errx(1, "error calling weak reference"); + + if (func() != STRONG_REF) + errx(1, "error calling strong reference"); + + return (0); +} diff --git a/src/regress/libexec/ld.so/weak/prog/obj b/src/regress/libexec/ld.so/weak/prog/obj new file mode 120000 index 000000000..305c466eb --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/weak/prog \ No newline at end of file diff --git a/src/regress/libexec/ld.so/weak/prog2/CVS/Entries b/src/regress/libexec/ld.so/weak/prog2/CVS/Entries new file mode 100644 index 000000000..033a57aea --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Nov 13 21:52:11 2002// +/main.c/1.1/Wed Nov 13 21:52:11 2002// +D diff --git a/src/regress/libexec/ld.so/weak/prog2/CVS/Repository b/src/regress/libexec/ld.so/weak/prog2/CVS/Repository new file mode 100644 index 000000000..f58660d36 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog2/CVS/Repository @@ -0,0 +1 @@ +src/regress/libexec/ld.so/weak/prog2 diff --git a/src/regress/libexec/ld.so/weak/prog2/CVS/Root b/src/regress/libexec/ld.so/weak/prog2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/libexec/ld.so/weak/prog2/Makefile b/src/regress/libexec/ld.so/weak/prog2/Makefile new file mode 100644 index 000000000..523bc6e9b --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog2/Makefile @@ -0,0 +1,16 @@ +# $OpenBSD: Makefile,v 1.1 2002/11/13 21:52:11 fgsch Exp $ + +.include + +PROG= prog2 +SRCS= main.c + +LIBWEAK!= if test -d ${.CURDIR}/../libweak/${__objdir} ; then \ + echo "${.CURDIR}/../libweak/${__objdir}" ; \ + else \ + echo "${.CURDIR}/../libweak" ; \ + fi + +LDADD+= -Wl,-rpath,${LIBWEAK} -L${LIBWEAK} -lweak + +.include diff --git a/src/regress/libexec/ld.so/weak/prog2/main.c b/src/regress/libexec/ld.so/weak/prog2/main.c new file mode 100644 index 000000000..bd22e51f8 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog2/main.c @@ -0,0 +1,20 @@ +/* $OpenBSD: main.c,v 1.1 2002/11/13 21:52:11 fgsch Exp $ */ + +/* + * Public domain. 2002, Federico Schwindt . + */ + +#include +#include "defs.h" + +int +main(int argc, char **argv) +{ + if (weak_func() != WEAK_REF) + errx(1, "error calling weak_func"); + + if (func() != WEAK_REF) + errx(1, "error calling weak reference reference"); + + return (0); +} diff --git a/src/regress/libexec/ld.so/weak/prog2/obj b/src/regress/libexec/ld.so/weak/prog2/obj new file mode 120000 index 000000000..30c14d175 --- /dev/null +++ b/src/regress/libexec/ld.so/weak/prog2/obj @@ -0,0 +1 @@ +/usr/obj/regress/libexec/ld.so/weak/prog2 \ No newline at end of file diff --git a/src/regress/misc/CVS/Entries b/src/regress/misc/CVS/Entries new file mode 100644 index 000000000..aaa932af1 --- /dev/null +++ b/src/regress/misc/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.3/Mon Aug 15 18:53:41 2005// +D/X11//// +D/exceptions//// +D/objc//// diff --git a/src/regress/misc/CVS/Repository b/src/regress/misc/CVS/Repository new file mode 100644 index 000000000..1c4861d91 --- /dev/null +++ b/src/regress/misc/CVS/Repository @@ -0,0 +1 @@ +src/regress/misc diff --git a/src/regress/misc/CVS/Root b/src/regress/misc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/misc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/misc/Makefile b/src/regress/misc/Makefile new file mode 100644 index 000000000..0a4892ec9 --- /dev/null +++ b/src/regress/misc/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.3 2005/08/15 18:53:41 kettenis Exp $ + +SUBDIR+= X11 exceptions objc + +install: + +.include diff --git a/src/regress/misc/X11/CVS/Entries b/src/regress/misc/X11/CVS/Entries new file mode 100644 index 000000000..d1f5c591f --- /dev/null +++ b/src/regress/misc/X11/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Wed Aug 31 20:53:49 2005// +D/blt//// +D/bltone//// diff --git a/src/regress/misc/X11/CVS/Repository b/src/regress/misc/X11/CVS/Repository new file mode 100644 index 000000000..5a45142b1 --- /dev/null +++ b/src/regress/misc/X11/CVS/Repository @@ -0,0 +1 @@ +src/regress/misc/X11 diff --git a/src/regress/misc/X11/CVS/Root b/src/regress/misc/X11/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/misc/X11/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/misc/X11/Makefile b/src/regress/misc/X11/Makefile new file mode 100644 index 000000000..eb7c35025 --- /dev/null +++ b/src/regress/misc/X11/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.2 2005/08/31 20:53:49 kettenis Exp $ + +SUBDIR+= blt bltone + +install: + +.include diff --git a/src/regress/misc/X11/blt/CVS/Entries b/src/regress/misc/X11/blt/CVS/Entries new file mode 100644 index 000000000..f8c746a55 --- /dev/null +++ b/src/regress/misc/X11/blt/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Sat Feb 4 13:59:39 2006// +/blt.c/1.1/Wed Aug 31 20:53:49 2005// +D diff --git a/src/regress/misc/X11/blt/CVS/Repository b/src/regress/misc/X11/blt/CVS/Repository new file mode 100644 index 000000000..85eb03a17 --- /dev/null +++ b/src/regress/misc/X11/blt/CVS/Repository @@ -0,0 +1 @@ +src/regress/misc/X11/blt diff --git a/src/regress/misc/X11/blt/CVS/Root b/src/regress/misc/X11/blt/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/misc/X11/blt/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/misc/X11/blt/Makefile b/src/regress/misc/X11/blt/Makefile new file mode 100644 index 000000000..b5e167906 --- /dev/null +++ b/src/regress/misc/X11/blt/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.2 2006/02/04 13:59:39 kettenis Exp $ + +PROG= blt +LDADD+= -L/usr/X11R6/lib/modules -R/usr/X11R6/lib/modules -lfb +LDADD+= -Wl,--allow-shlib-undefined + +.include diff --git a/src/regress/misc/X11/blt/blt.c b/src/regress/misc/X11/blt/blt.c new file mode 100644 index 000000000..d9e11e305 --- /dev/null +++ b/src/regress/misc/X11/blt/blt.c @@ -0,0 +1,58 @@ +/* $OpenBSD: blt.c,v 1.1 2005/08/31 20:53:49 kettenis Exp $ */ +/* + * Written by Mark Kettenis 2004 Public Domain + */ + +#include +#include + +#include +#include + +typedef unsigned FbStip; +typedef unsigned FbBits; +typedef int FbStride; +typedef int Bool; + +extern void fbBlt (FbBits *, FbStride, int, FbBits *, FbStride, int, + int, int, int, FbBits, int, Bool, Bool); + +FbBits map[] = { 0x77ff7700, 0x11335577 }; + +int +main (void) +{ + int pagesize; + FbBits *src; + FbBits *dst; + int srcX, dstX; + int bpp; + int alu = 1; + FbBits pm = 0xffffffff; + + pagesize = getpagesize(); + + src = mmap(NULL, 2 * pagesize, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0); + assert(src); + + dst = mmap(NULL, 2 * pagesize, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0); + assert(dst); + + mprotect((char *)src + pagesize, pagesize, PROT_NONE); + src = (FbBits *)((char *)src + (pagesize - sizeof map)); + memcpy (src, map, sizeof map); + + for (bpp = 8; bpp <= 32; bpp += 8) + for (dstX = 0; dstX < 64; dstX += bpp) + for (srcX = 0; srcX < 32; srcX += bpp) + fbBlt(src, 1, srcX, dst, 256, dstX, + (32 - srcX), 2, alu, pm, bpp, 0, 0); + + for (bpp = 8; bpp <= 32; bpp += 8) + for (dstX = 0; dstX < 64; dstX += bpp) + for (srcX = 0; srcX < 32; srcX += bpp) + fbBlt(src, 1, srcX, dst, 256, dstX, + (64 - srcX), 1, alu, pm, bpp, 0, 0); + + return 0; +} diff --git a/src/regress/misc/X11/blt/obj b/src/regress/misc/X11/blt/obj new file mode 120000 index 000000000..e53baa2b8 --- /dev/null +++ b/src/regress/misc/X11/blt/obj @@ -0,0 +1 @@ +/usr/obj/regress/misc/X11/blt \ No newline at end of file diff --git a/src/regress/misc/X11/bltone/CVS/Entries b/src/regress/misc/X11/bltone/CVS/Entries new file mode 100644 index 000000000..c1bfa22ba --- /dev/null +++ b/src/regress/misc/X11/bltone/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Sat Feb 4 13:59:39 2006// +/bltone.c/1.4/Sat Aug 27 14:00:57 2005// +D diff --git a/src/regress/misc/X11/bltone/CVS/Repository b/src/regress/misc/X11/bltone/CVS/Repository new file mode 100644 index 000000000..f368d94e8 --- /dev/null +++ b/src/regress/misc/X11/bltone/CVS/Repository @@ -0,0 +1 @@ +src/regress/misc/X11/bltone diff --git a/src/regress/misc/X11/bltone/CVS/Root b/src/regress/misc/X11/bltone/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/misc/X11/bltone/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/misc/X11/bltone/Makefile b/src/regress/misc/X11/bltone/Makefile new file mode 100644 index 000000000..be1b46521 --- /dev/null +++ b/src/regress/misc/X11/bltone/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.2 2006/02/04 13:59:39 kettenis Exp $ + +PROG= bltone +LDADD+= -L/usr/X11R6/lib/modules -R/usr/X11R6/lib/modules -lfb +LDADD+= -Wl,--allow-shlib-undefined + +.include diff --git a/src/regress/misc/X11/bltone/bltone.c b/src/regress/misc/X11/bltone/bltone.c new file mode 100644 index 000000000..b654fd949 --- /dev/null +++ b/src/regress/misc/X11/bltone/bltone.c @@ -0,0 +1,57 @@ +/* $OpenBSD: bltone.c,v 1.4 2005/08/27 14:00:57 kettenis Exp $ */ +/* + * Written by Mark Kettenis 2004 Public Domain + */ + +#include +#include + +#include +#include + +typedef unsigned FbStip; +typedef unsigned FbBits; +typedef int FbStride; + +extern void fbBltOne (FbStip *, FbStride, int, FbBits *, FbStride, int, int, + int, int, FbBits, FbBits, FbBits, FbBits); + +FbStip mask[] = { 0x77ff7700, 0x11335577 }; + +int +main (void) +{ + int pagesize; + FbStip *src; + FbBits *dst; + int srcX, dstX; + int dstBpp; + + pagesize = getpagesize(); + + src = mmap(NULL, 2 * pagesize, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0); + assert(src); + + dst = mmap(NULL, 2 * pagesize, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0); + assert(dst); + + mprotect((char *)src + pagesize, pagesize, PROT_NONE); + src = (FbStip *)((char *)src + (pagesize - sizeof mask)); + memcpy (src, mask, sizeof mask); + + for (dstBpp = 8; dstBpp <= 32; dstBpp += 8) + for (dstX = 0; dstX < 64; dstX += 8) + for (srcX = 0; srcX < 32; srcX++) + fbBltOne(src, 1, srcX, dst, 128, dstX, dstBpp, + (32 - srcX) * dstBpp, 2, + 0, 0, 0xffffffff, 0); + + for (dstBpp = 8; dstBpp <= 32; dstBpp += 8) + for (dstX = 0; dstX < 64; dstX += 8) + for (srcX = 0; srcX < 32; srcX++) + fbBltOne(src, 1, srcX, dst, 128, dstX, dstBpp, + (64 - srcX) * dstBpp, 1, + 0, 0, 0xffffffff, 0); + + return 0; +} diff --git a/src/regress/misc/X11/bltone/obj b/src/regress/misc/X11/bltone/obj new file mode 120000 index 000000000..be67960cc --- /dev/null +++ b/src/regress/misc/X11/bltone/obj @@ -0,0 +1 @@ +/usr/obj/regress/misc/X11/bltone \ No newline at end of file diff --git a/src/regress/misc/exceptions/CVS/Entries b/src/regress/misc/exceptions/CVS/Entries new file mode 100644 index 000000000..f3e6123aa --- /dev/null +++ b/src/regress/misc/exceptions/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.3/Sun Jan 28 19:37:00 2007// +D/foo//// +D/libbar//// +D/simple//// diff --git a/src/regress/misc/exceptions/CVS/Repository b/src/regress/misc/exceptions/CVS/Repository new file mode 100644 index 000000000..9330a85c9 --- /dev/null +++ b/src/regress/misc/exceptions/CVS/Repository @@ -0,0 +1 @@ +src/regress/misc/exceptions diff --git a/src/regress/misc/exceptions/CVS/Root b/src/regress/misc/exceptions/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/misc/exceptions/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/misc/exceptions/Makefile b/src/regress/misc/exceptions/Makefile new file mode 100644 index 000000000..09308234a --- /dev/null +++ b/src/regress/misc/exceptions/Makefile @@ -0,0 +1,3 @@ +SUBDIR+= simple libbar foo + +.include diff --git a/src/regress/misc/exceptions/foo/CVS/Entries b/src/regress/misc/exceptions/foo/CVS/Entries new file mode 100644 index 000000000..b02959e3b --- /dev/null +++ b/src/regress/misc/exceptions/foo/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Jan 28 19:37:00 2007// +/foo.cc/1.1/Sun Jan 28 19:37:00 2007// +D diff --git a/src/regress/misc/exceptions/foo/CVS/Repository b/src/regress/misc/exceptions/foo/CVS/Repository new file mode 100644 index 000000000..df0389098 --- /dev/null +++ b/src/regress/misc/exceptions/foo/CVS/Repository @@ -0,0 +1 @@ +src/regress/misc/exceptions/foo diff --git a/src/regress/misc/exceptions/foo/CVS/Root b/src/regress/misc/exceptions/foo/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/misc/exceptions/foo/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/misc/exceptions/foo/Makefile b/src/regress/misc/exceptions/foo/Makefile new file mode 100644 index 000000000..2c1087d38 --- /dev/null +++ b/src/regress/misc/exceptions/foo/Makefile @@ -0,0 +1,15 @@ +.include + +BAR_DIR= ${.CURDIR}/../libbar + +BAR_OBJDIR!= if [ -d $(BAR_DIR)/${__objdir} ]; then \ + echo "$(BAR_DIR)/${__objdir}"; \ + else \ + echo "$(BAR_DIR)"; \ + fi + +PROG= foo +SRCS= foo.cc +LDADD= -Wl,-rpath,$(BAR_OBJDIR) -L$(BAR_OBJDIR) -lbar + +.include \ No newline at end of file diff --git a/src/regress/misc/exceptions/foo/foo.cc b/src/regress/misc/exceptions/foo/foo.cc new file mode 100644 index 000000000..a8fb4eaa8 --- /dev/null +++ b/src/regress/misc/exceptions/foo/foo.cc @@ -0,0 +1,18 @@ +#include + +using namespace std; + +int +main () +{ + cout << "Throwing up" << endl; + try { + throw false; + } + catch (...) { + cout << "Wew, that was close!" << endl; + return 0; + } + cout << "Done" << endl; + return 1; +} diff --git a/src/regress/misc/exceptions/foo/obj b/src/regress/misc/exceptions/foo/obj new file mode 120000 index 000000000..36ba92c09 --- /dev/null +++ b/src/regress/misc/exceptions/foo/obj @@ -0,0 +1 @@ +/usr/obj/regress/misc/exceptions/foo \ No newline at end of file diff --git a/src/regress/misc/exceptions/libbar/CVS/Entries b/src/regress/misc/exceptions/libbar/CVS/Entries new file mode 100644 index 000000000..d7b9aa80c --- /dev/null +++ b/src/regress/misc/exceptions/libbar/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Sun Jan 28 19:37:00 2007// +/bar.cc/1.1/Sun Jan 28 19:37:00 2007// +/shlib_version/1.1/Sun Jan 28 19:37:00 2007// +D diff --git a/src/regress/misc/exceptions/libbar/CVS/Repository b/src/regress/misc/exceptions/libbar/CVS/Repository new file mode 100644 index 000000000..63d4e8cc1 --- /dev/null +++ b/src/regress/misc/exceptions/libbar/CVS/Repository @@ -0,0 +1 @@ +src/regress/misc/exceptions/libbar diff --git a/src/regress/misc/exceptions/libbar/CVS/Root b/src/regress/misc/exceptions/libbar/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/misc/exceptions/libbar/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/misc/exceptions/libbar/Makefile b/src/regress/misc/exceptions/libbar/Makefile new file mode 100644 index 000000000..ffb6f3a4a --- /dev/null +++ b/src/regress/misc/exceptions/libbar/Makefile @@ -0,0 +1,6 @@ +LIB= bar +SRCS= bar.cc + +regress: all + +.include diff --git a/src/regress/misc/exceptions/libbar/bar.cc b/src/regress/misc/exceptions/libbar/bar.cc new file mode 100644 index 000000000..20e8adc45 --- /dev/null +++ b/src/regress/misc/exceptions/libbar/bar.cc @@ -0,0 +1,3 @@ +#include + +std::string bar("bar"); diff --git a/src/regress/misc/exceptions/libbar/obj b/src/regress/misc/exceptions/libbar/obj new file mode 120000 index 000000000..5019fbacd --- /dev/null +++ b/src/regress/misc/exceptions/libbar/obj @@ -0,0 +1 @@ +/usr/obj/regress/misc/exceptions/libbar \ No newline at end of file diff --git a/src/regress/misc/exceptions/libbar/shlib_version b/src/regress/misc/exceptions/libbar/shlib_version new file mode 100644 index 000000000..a45aa2c06 --- /dev/null +++ b/src/regress/misc/exceptions/libbar/shlib_version @@ -0,0 +1,2 @@ +major=1 +minor=0 \ No newline at end of file diff --git a/src/regress/misc/exceptions/simple/CVS/Entries b/src/regress/misc/exceptions/simple/CVS/Entries new file mode 100644 index 000000000..eb91d8062 --- /dev/null +++ b/src/regress/misc/exceptions/simple/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Jan 28 19:10:06 2007// +/exceptions.cc/1.1/Sun Jan 28 19:10:06 2007// +D diff --git a/src/regress/misc/exceptions/simple/CVS/Repository b/src/regress/misc/exceptions/simple/CVS/Repository new file mode 100644 index 000000000..be5314338 --- /dev/null +++ b/src/regress/misc/exceptions/simple/CVS/Repository @@ -0,0 +1 @@ +src/regress/misc/exceptions/simple diff --git a/src/regress/misc/exceptions/simple/CVS/Root b/src/regress/misc/exceptions/simple/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/misc/exceptions/simple/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/misc/exceptions/simple/Makefile b/src/regress/misc/exceptions/simple/Makefile new file mode 100644 index 000000000..9008d189a --- /dev/null +++ b/src/regress/misc/exceptions/simple/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2007/01/28 19:10:06 kettenis Exp $ + +PROG= exceptions +SRCS= exceptions.cc + +.include diff --git a/src/regress/misc/exceptions/simple/exceptions.cc b/src/regress/misc/exceptions/simple/exceptions.cc new file mode 100644 index 000000000..35a619500 --- /dev/null +++ b/src/regress/misc/exceptions/simple/exceptions.cc @@ -0,0 +1,19 @@ +/* $OpenBSD: exceptions.cc,v 1.1 2007/01/28 19:10:06 kettenis Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain + */ + +#include + +int +main() +{ + try { + throw("foo"); + } + catch(const char *p) { + if (!strcmp(p, "foo")) + return (0); + } + return (1); +} diff --git a/src/regress/misc/exceptions/simple/obj b/src/regress/misc/exceptions/simple/obj new file mode 120000 index 000000000..0059a0d39 --- /dev/null +++ b/src/regress/misc/exceptions/simple/obj @@ -0,0 +1 @@ +/usr/obj/regress/misc/exceptions/simple \ No newline at end of file diff --git a/src/regress/misc/objc/CVS/Entries b/src/regress/misc/objc/CVS/Entries new file mode 100644 index 000000000..a1cb48343 --- /dev/null +++ b/src/regress/misc/objc/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Mon Jul 23 17:24:06 2007// +/main.m/1.1/Sat Mar 26 17:21:25 2005// +D diff --git a/src/regress/misc/objc/CVS/Repository b/src/regress/misc/objc/CVS/Repository new file mode 100644 index 000000000..153569f87 --- /dev/null +++ b/src/regress/misc/objc/CVS/Repository @@ -0,0 +1 @@ +src/regress/misc/objc diff --git a/src/regress/misc/objc/CVS/Root b/src/regress/misc/objc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/misc/objc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/misc/objc/Makefile b/src/regress/misc/objc/Makefile new file mode 100644 index 000000000..06513fbd7 --- /dev/null +++ b/src/regress/misc/objc/Makefile @@ -0,0 +1,17 @@ +# $OpenBSD: Makefile,v 1.3 2007/07/23 17:24:06 kurt Exp $ + +.SUFFIXES: .m + +COMPILE.m?= ${CC} ${CFLAGS} ${CPPFLAGS} -c +LINK.m?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} + +.m: + ${LINK.m} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.m.o: + ${COMPILE.m} ${.IMPSRC} + +PROG= main +SRCS= main.m +LDADD= -lobjc -pthread + +.include diff --git a/src/regress/misc/objc/main.m b/src/regress/misc/objc/main.m new file mode 100644 index 000000000..6b4bc1381 --- /dev/null +++ b/src/regress/misc/objc/main.m @@ -0,0 +1,18 @@ +#include + +@interface Foo ++ (void) bar; +@end + +@implementation Foo ++ (void) bar { + exit(0); +} +@end + +int main (void) +{ + [Foo bar]; + + return 1; +} diff --git a/src/regress/misc/objc/obj b/src/regress/misc/objc/obj new file mode 120000 index 000000000..c307e7a13 --- /dev/null +++ b/src/regress/misc/objc/obj @@ -0,0 +1 @@ +/usr/obj/regress/misc/objc \ No newline at end of file diff --git a/src/regress/sbin/CVS/Entries b/src/regress/sbin/CVS/Entries new file mode 100644 index 000000000..1c78704ce --- /dev/null +++ b/src/regress/sbin/CVS/Entries @@ -0,0 +1,7 @@ +/Makefile/1.6/Fri May 26 04:02:59 2006// +D/ipsecctl//// +D/isakmpd//// +D/newfs//// +D/pfctl//// +D/route//// +D/disklabel//// diff --git a/src/regress/sbin/CVS/Repository b/src/regress/sbin/CVS/Repository new file mode 100644 index 000000000..d2fb590a0 --- /dev/null +++ b/src/regress/sbin/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin diff --git a/src/regress/sbin/CVS/Root b/src/regress/sbin/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/Makefile b/src/regress/sbin/Makefile new file mode 100644 index 000000000..c299f5034 --- /dev/null +++ b/src/regress/sbin/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.6 2006/05/26 04:02:59 deraadt Exp $ + +SUBDIR+= ipsecctl pfctl route + +install: + +.include diff --git a/src/regress/sbin/disklabel/CVS/Entries b/src/regress/sbin/disklabel/CVS/Entries new file mode 100644 index 000000000..b2b731c34 --- /dev/null +++ b/src/regress/sbin/disklabel/CVS/Entries @@ -0,0 +1,2 @@ +/disklabel-A/1.1/Mon Jan 4 02:37:11 2010// +D diff --git a/src/regress/sbin/disklabel/CVS/Repository b/src/regress/sbin/disklabel/CVS/Repository new file mode 100644 index 000000000..f847ec9e2 --- /dev/null +++ b/src/regress/sbin/disklabel/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/disklabel diff --git a/src/regress/sbin/disklabel/CVS/Root b/src/regress/sbin/disklabel/CVS/Root new file mode 100644 index 000000000..eb7bf5034 --- /dev/null +++ b/src/regress/sbin/disklabel/CVS/Root @@ -0,0 +1 @@ +syuu@cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/disklabel/disklabel-A b/src/regress/sbin/disklabel/disklabel-A new file mode 100644 index 000000000..9a2b29ecd --- /dev/null +++ b/src/regress/sbin/disklabel/disklabel-A @@ -0,0 +1,59 @@ +#!/bin/sh + +# Copyright (c) 2010 Theo de Raadt +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +D="\ + 18000\ + 256\ + 400\ + 800\ + 1000\ + 1024\ + 2000\ + 2200\ + 2300\ + 3000\ + 3500\ + 4000\ + 4100\ + 5000\ + 6000\ + 7000\ + 8000\ + 9000\ + 90000\ + 12000\ + 20000\ + 40000\ + 300000\ + 900000\ +" + +for i in $D; do + vnconfig -u svnd0 > /dev/null 2>&1 + echo "${i}MB disk" + rm -f /tmp/image f + dd if=/dev/zero of=/tmp/image bs=1m count=1 seek=${i} > /dev/null 2>&1 + ls -lh /tmp/image + vnconfig svnd0 /tmp/image + fdisk -iy svnd0 > /dev/null + (disklabel -A -p g svnd0; \ + disklabel -Aw -f f svnd0; \ + disklabel svnd0) | grep '^ [a-p]: ' \ + | egrep -v "unused" | sort; cat f + vnconfig -u svnd0 > /dev/null 2>&1 + read +done +vnconfig -u svnd0 > /dev/null 2>&1 diff --git a/src/regress/sbin/ipsecctl/CVS/Entries b/src/regress/sbin/ipsecctl/CVS/Entries new file mode 100644 index 000000000..171822f5e --- /dev/null +++ b/src/regress/sbin/ipsecctl/CVS/Entries @@ -0,0 +1,412 @@ +/ak128/1.1/Tue Aug 9 14:58:09 2005// +/ak160/1.1/Tue Aug 9 14:58:09 2005// +/ak256/1.1/Tue Aug 9 14:58:09 2005// +/ak384/1.1/Tue Aug 9 14:58:09 2005// +/ak512/1.1/Tue Aug 9 14:58:09 2005// +/ek128/1.1/Tue Aug 9 14:58:10 2005// +/ek160/1.1/Tue Aug 9 14:58:10 2005// +/ek192/1.1/Tue Aug 9 14:58:10 2005// +/ek64/1.1/Tue Aug 9 14:58:10 2005// +/ek80/1.1/Tue Aug 9 14:58:10 2005// +/ike1.in/1.1/Mon Sep 5 08:49:52 2005// +/ike1.ok/1.9/Tue Jul 1 15:00:54 2008// +/ike10.in/1.1/Fri Mar 31 14:02:08 2006// +/ike10.ok/1.7/Tue Jul 1 15:00:54 2008// +/ike11.in/1.1/Thu Apr 13 12:04:34 2006// +/ike11.ok/1.6/Tue Jul 1 15:00:54 2008// +/ike12.in/1.1/Tue May 30 19:36:54 2006// +/ike12.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike13.in/1.1/Tue May 30 19:36:54 2006// +/ike13.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike14.in/1.1/Tue May 30 19:36:54 2006// +/ike14.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike15.in/1.1/Wed May 31 11:34:25 2006// +/ike15.ok/1.5/Tue Jul 1 15:00:54 2008// +/ike16.in/1.1/Wed May 31 11:34:25 2006// +/ike16.ok/1.3/Tue Jul 1 15:00:54 2008// +/ike17.in/1.1/Wed May 31 11:34:25 2006// +/ike17.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike18.in/1.1/Wed May 31 11:34:25 2006// +/ike18.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike19.in/1.1/Wed May 31 11:34:25 2006// +/ike19.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike2.in/1.1/Mon Sep 5 08:49:52 2005// +/ike2.ok/1.9/Tue Jul 1 15:00:54 2008// +/ike20.in/1.1/Wed May 31 11:34:25 2006// +/ike20.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike21.in/1.1/Wed May 31 11:34:25 2006// +/ike21.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike22.in/1.1/Wed May 31 11:34:25 2006// +/ike22.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike23.in/1.1/Wed May 31 11:34:25 2006// +/ike23.ok/1.5/Tue Jul 1 15:00:54 2008// +/ike29.in/1.1/Wed May 31 11:34:25 2006// +/ike29.ok/1.6/Tue Jul 1 15:00:54 2008// +/ike3.in/1.1/Mon Sep 5 08:49:52 2005// +/ike3.ok/1.10/Tue Jul 1 15:00:54 2008// +/ike30.in/1.1/Wed May 31 11:34:25 2006// +/ike30.ok/1.6/Tue Jul 1 15:00:54 2008// +/ike31.in/1.1/Wed May 31 11:34:25 2006// +/ike31.ok/1.5/Tue Jul 1 15:00:54 2008// +/ike32.in/1.2/Thu Jun 8 21:20:19 2006// +/ike32.ok/1.5/Tue Jul 1 15:00:54 2008// +/ike33.in/1.2/Thu Jun 8 21:20:19 2006// +/ike33.ok/1.5/Tue Jul 1 15:00:54 2008// +/ike34.in/1.2/Thu Jun 8 21:20:19 2006// +/ike34.ok/1.5/Tue Jul 1 15:00:54 2008// +/ike35.in/1.2/Thu Jun 8 21:20:19 2006// +/ike35.ok/1.5/Tue Jul 1 15:00:54 2008// +/ike36.in/1.1/Wed May 31 11:34:25 2006// +/ike36.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike37.in/1.1/Wed May 31 11:34:25 2006// +/ike37.ok/1.6/Tue Jul 1 15:00:54 2008// +/ike38.in/1.1/Wed May 31 11:34:25 2006// +/ike38.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike39.in/1.1/Wed May 31 11:34:25 2006// +/ike39.ok/1.5/Tue Jul 1 15:00:54 2008// +/ike4.in/1.1/Mon Sep 5 08:49:52 2005// +/ike4.ok/1.10/Tue Jul 1 15:00:54 2008// +/ike40.in/1.1/Wed May 31 11:34:25 2006// +/ike40.ok/1.5/Tue Jul 1 15:00:54 2008// +/ike41.in/1.1/Fri Jun 2 06:10:08 2006// +/ike41.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike42.in/1.1/Fri Jun 2 17:06:42 2006// +/ike42.ok/1.6/Tue Jul 1 15:00:54 2008// +/ike43.in/1.1/Fri Jun 2 17:06:42 2006// +/ike43.ok/1.7/Tue Jul 1 15:00:54 2008// +/ike46.in/1.1/Thu Jun 8 21:15:21 2006// +/ike46.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike47.in/1.1/Thu Jun 15 17:03:21 2006// +/ike47.ok/1.5/Tue Jul 1 15:00:54 2008// +/ike48.in/1.1/Fri Jul 21 12:32:16 2006// +/ike48.ok/1.2/Tue Jul 1 15:00:54 2008// +/ike49.in/1.1/Fri Jul 21 12:32:16 2006// +/ike49.ok/1.2/Tue Jul 1 15:00:54 2008// +/ike5.in/1.3/Sat May 27 17:22:20 2006// +/ike5.ok/1.8/Tue Jul 1 15:00:54 2008// +/ike50.in/1.1/Fri Jul 21 12:45:19 2006// +/ike50.ok/1.2/Tue Jul 1 15:00:54 2008// +/ike51.in/1.1/Fri Jul 21 12:50:55 2006// +/ike51.ok/1.2/Tue Jul 1 15:00:54 2008// +/ike52.in/1.1/Fri Jul 21 12:50:55 2006// +/ike52.ok/1.2/Tue Jul 1 15:00:54 2008// +/ike53.in/1.1/Tue Aug 29 17:52:40 2006// +/ike53.ok/1.2/Tue Jul 1 15:00:54 2008// +/ike54.in/1.1/Tue Aug 29 17:52:40 2006// +/ike54.ok/1.4/Tue Jul 1 15:00:54 2008// +/ike55.in/1.1/Tue Aug 29 17:52:40 2006// +/ike55.ok/1.2/Tue Jul 1 15:00:54 2008// +/ike56.in/1.1/Thu Jan 4 21:31:21 2007// +/ike56.ok/1.2/Tue Jul 1 15:00:54 2008// +/ike57.in/1.1/Fri Mar 16 20:51:01 2007// +/ike57.ok/1.2/Tue Jul 1 15:00:54 2008// +/ike58.in/1.1/Thu May 10 06:10:04 2007// +/ike58.ok/1.2/Tue Jul 1 15:00:54 2008// +/ike59.in/1.1/Fri Jan 4 11:09:20 2008// +/ike59.ok/1.3/Mon Dec 22 14:04:32 2008// +/ike6.in/1.1/Mon Sep 5 08:49:52 2005// +/ike6.ok/1.9/Tue Jul 1 15:00:54 2008// +/ike60.in/1.2/Mon Jan 19 13:44:36 2009// +/ike60.ok/1.2/Mon Jan 19 13:44:36 2009// +/ike61.in/1.1/Tue Jan 20 14:40:36 2009// +/ike61.ok/1.1/Tue Jan 20 14:40:36 2009// +/ike62.in/1.1/Wed Jan 28 18:07:19 2009// +/ike62.ok/1.1/Wed Jan 28 18:07:19 2009// +/ike63.in/1.1/Tue Aug 4 15:07:54 2009// +/ike63.ok/1.1/Tue Aug 4 15:07:54 2009// +/ike64.in/1.1/Tue Aug 4 15:07:54 2009// +/ike64.ok/1.1/Tue Aug 4 15:07:54 2009// +/ike65.in/1.1/Tue Aug 4 15:07:54 2009// +/ike65.ok/1.1/Tue Aug 4 15:07:54 2009// +/ike66.in/1.1/Tue Aug 4 15:07:54 2009// +/ike66.ok/1.1/Tue Aug 4 15:07:54 2009// +/ike67.in/1.1/Tue Aug 4 15:07:54 2009// +/ike67.ok/1.1/Tue Aug 4 15:07:54 2009// +/ike68.in/1.1/Tue Aug 4 15:07:54 2009// +/ike68.ok/1.1/Tue Aug 4 15:07:54 2009// +/ike7.in/1.1/Mon Sep 5 08:49:52 2005// +/ike7.ok/1.8/Tue Jul 1 15:00:54 2008// +/ike8.in/1.1/Sun Oct 16 21:36:12 2005// +/ike8.ok/1.7/Tue Jul 1 15:00:54 2008// +/ike9.in/1.2/Fri Mar 31 13:57:00 2006// +/ike9.ok/1.7/Tue Jul 1 15:00:54 2008// +/ikedel1.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel1.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel10.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel10.ok/1.6/Tue Jul 1 15:00:54 2008// +/ikedel11.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel11.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel12.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel12.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel13.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel13.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel14.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel14.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel15.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel15.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel16.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel16.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel17.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel17.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel18.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel18.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel19.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel19.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel2.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel2.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel20.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel20.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel21.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel21.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel22.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel22.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel23.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel23.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel29.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel29.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel3.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel3.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel30.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel30.ok/1.6/Tue Jul 1 15:00:54 2008// +/ikedel31.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel31.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel32.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel32.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel33.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel33.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel34.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel34.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel35.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel35.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel36.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel36.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel37.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel37.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel38.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel38.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel39.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel39.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel4.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel4.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel40.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel40.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel41.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel41.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel42.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel42.ok/1.6/Tue Jul 1 15:00:54 2008// +/ikedel43.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel43.ok/1.6/Tue Jul 1 15:00:54 2008// +/ikedel46.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel46.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel47.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel47.ok/1.4/Tue Jul 1 15:00:54 2008// +/ikedel5.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel5.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel6.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel6.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel7.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel7.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel8.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel8.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedel9.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedel9.ok/1.5/Tue Jul 1 15:00:54 2008// +/ikedeldel1.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedeldel1.ok/1.1/Thu Jun 15 17:03:21 2006// +/ikedeldel47.in/1.1/Thu Jun 15 17:03:21 2006// +/ikedeldel47.ok/1.1/Thu Jun 15 17:03:21 2006// +/ikefail1.in/1.1/Wed May 31 11:34:25 2006// +/ikefail1.ok/1.2/Mon Nov 13 11:15:23 2006// +/ikefail11.in/1.2/Tue Oct 31 15:49:55 2006// +/ikefail11.ok/1.3/Mon Oct 15 20:58:53 2007// +/ikefail12.in/1.1/Tue Oct 31 14:39:53 2006// +/ikefail12.ok/1.2/Mon Oct 15 20:58:53 2007// +/ikefail13.in/1.1/Tue Jan 20 14:40:36 2009// +/ikefail13.ok/1.1/Tue Jan 20 14:40:36 2009// +/ikefail14.in/1.1/Fri Jan 30 14:24:52 2009// +/ikefail14.ok/1.1/Fri Jan 30 14:24:52 2009// +/ikefail2.in/1.1/Wed May 31 11:34:25 2006// +/ikefail2.ok/1.1/Wed May 31 11:34:25 2006// +/ikefail3.in/1.1/Fri Jun 2 17:06:42 2006// +/ikefail3.ok/1.1/Fri Jun 2 17:06:42 2006// +/ikefail4.in/1.1/Thu Jun 8 21:20:19 2006// +/ikefail4.ok/1.2/Mon Nov 13 11:15:23 2006// +/ikefail5.in/1.1/Thu Jun 8 21:20:19 2006// +/ikefail5.ok/1.2/Mon Nov 13 11:15:23 2006// +/ikefail6.in/1.1/Tue Aug 29 17:52:40 2006// +/ikefail6.ok/1.2/Tue Jul 1 15:00:54 2008// +/ikefail8.in/1.1/Tue Oct 31 14:39:53 2006// +/ikefail8.ok/1.3/Mon Feb 19 08:47:38 2007// +/ikefail9.in/1.1/Tue Oct 31 14:39:53 2006// +/ikefail9.ok/1.3/Mon Feb 19 08:47:38 2007// +/ipsec1.in/1.1/Fri Aug 5 09:18:26 2005// +/ipsec1.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec10.in/1.1/Fri Aug 5 09:18:26 2005// +/ipsec10.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec11.in/1.1/Fri Aug 5 09:18:26 2005// +/ipsec11.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec12.in/1.1/Fri Aug 5 09:18:27 2005// +/ipsec12.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec13.in/1.1/Sun Oct 16 21:36:12 2005// +/ipsec13.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec14.in/1.1/Tue Dec 6 14:27:57 2005// +/ipsec14.ok/1.2/Fri Mar 31 14:26:07 2006// +/ipsec15.in/1.2/Thu Apr 13 12:04:34 2006// +/ipsec15.ok/1.4/Wed Apr 19 16:13:41 2006// +/ipsec16.in/1.1/Thu Mar 30 13:40:44 2006// +/ipsec16.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec17.in/1.1/Thu Mar 30 13:40:44 2006// +/ipsec17.ok/1.2/Fri Mar 31 14:26:07 2006// +/ipsec18.in/1.1/Thu Mar 30 13:40:44 2006// +/ipsec18.ok/1.2/Fri Mar 31 14:26:07 2006// +/ipsec19.in/1.2/Tue Jul 3 11:33:38 2007// +/ipsec19.ok/1.4/Tue Jul 3 11:33:38 2007// +/ipsec2.in/1.1/Fri Aug 5 09:18:27 2005// +/ipsec2.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec20.in/1.1/Wed Apr 19 16:13:41 2006// +/ipsec20.ok/1.1/Wed Apr 19 16:13:41 2006// +/ipsec21.in/1.1/Wed Apr 19 16:13:41 2006// +/ipsec21.ok/1.1/Wed Apr 19 16:13:41 2006// +/ipsec22.in/1.1/Tue May 30 19:25:23 2006// +/ipsec22.ok/1.1/Tue May 30 19:25:23 2006// +/ipsec23.in/1.1/Tue May 30 19:25:23 2006// +/ipsec23.ok/1.2/Tue Jul 1 14:08:39 2008// +/ipsec24.in/1.1/Tue May 30 19:25:23 2006// +/ipsec24.ok/1.2/Tue Jul 1 14:08:39 2008// +/ipsec25.in/1.1/Wed May 31 11:34:25 2006// +/ipsec25.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec26.in/1.1/Wed May 31 11:34:25 2006// +/ipsec26.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec27.in/1.1/Wed May 31 11:34:25 2006// +/ipsec27.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec28.in/1.1/Wed May 31 11:34:25 2006// +/ipsec28.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec29.in/1.1/Wed May 31 11:34:25 2006// +/ipsec29.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec3.in/1.1/Fri Aug 5 09:18:27 2005// +/ipsec3.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec30.in/1.1/Wed May 31 11:34:25 2006// +/ipsec30.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec31.in/1.1/Wed May 31 11:34:25 2006// +/ipsec31.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec32.in/1.1/Wed May 31 11:34:25 2006// +/ipsec32.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec33.in/1.1/Wed May 31 11:34:25 2006// +/ipsec33.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec34.in/1.1/Wed May 31 11:34:25 2006// +/ipsec34.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec35.in/1.1/Wed May 31 11:34:25 2006// +/ipsec35.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec36.in/1.1/Wed May 31 11:34:25 2006// +/ipsec36.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec37.in/1.1/Wed May 31 11:34:25 2006// +/ipsec37.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec38.in/1.1/Wed May 31 11:34:25 2006// +/ipsec38.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec39.in/1.1/Wed May 31 11:34:25 2006// +/ipsec39.ok/1.2/Fri Jun 2 00:25:52 2006// +/ipsec4.in/1.1/Fri Aug 5 09:18:27 2005// +/ipsec4.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec40.in/1.1/Wed May 31 11:34:25 2006// +/ipsec40.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec41.in/1.1/Wed May 31 11:34:25 2006// +/ipsec41.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec42.in/1.1/Wed May 31 11:34:25 2006// +/ipsec42.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec43.in/1.1/Wed May 31 11:34:25 2006// +/ipsec43.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec44.in/1.1/Wed May 31 11:34:25 2006// +/ipsec44.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec5.in/1.1/Fri Aug 5 09:18:27 2005// +/ipsec5.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec50.in/1.1/Wed May 31 11:34:25 2006// +/ipsec50.ok/1.1/Wed May 31 11:34:25 2006// +/ipsec51.in/1.1/Fri Jun 2 04:12:52 2006// +/ipsec51.ok/1.1/Fri Jun 2 04:12:52 2006// +/ipsec52.in/1.1/Fri Jun 2 04:12:52 2006// +/ipsec52.ok/1.1/Fri Jun 2 04:12:52 2006// +/ipsec53.in/1.1/Wed Jan 10 14:37:09 2007// +/ipsec53.ok/1.1/Wed Jan 10 14:37:09 2007// +/ipsec54.in/1.1/Tue Jul 1 14:08:39 2008// +/ipsec54.ok/1.1/Tue Jul 1 14:08:39 2008// +/ipsec55.in/1.1/Tue Jul 1 14:08:39 2008// +/ipsec55.ok/1.1/Tue Jul 1 14:08:39 2008// +/ipsec56.in/1.1/Tue Jul 1 14:08:39 2008// +/ipsec56.ok/1.1/Tue Jul 1 14:08:39 2008// +/ipsec57.in/1.1/Tue Jul 1 14:08:39 2008// +/ipsec57.ok/1.1/Tue Jul 1 14:08:39 2008// +/ipsec58.in/1.1/Wed Jan 28 18:07:19 2009// +/ipsec58.ok/1.1/Wed Jan 28 18:07:19 2009// +/ipsec6.in/1.1/Fri Aug 5 09:18:27 2005// +/ipsec6.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec7.in/1.1/Fri Aug 5 09:18:27 2005// +/ipsec7.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec8.in/1.1/Fri Aug 5 09:18:27 2005// +/ipsec8.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsec9.in/1.1/Fri Aug 5 09:18:27 2005// +/ipsec9.ok/1.3/Wed Apr 19 16:13:41 2006// +/ipsecfail1.in/1.2/Fri Jun 2 00:24:59 2006// +/ipsecfail1.ok/1.2/Mon Nov 13 11:15:23 2006// +/ipsecfail2.in/1.3/Fri Jun 2 04:12:52 2006// +/ipsecfail2.ok/1.3/Fri Jun 2 04:12:52 2006// +/ipsecfail3.in/1.1/Tue Jul 1 14:08:39 2008// +/ipsecfail3.ok/1.1/Tue Jul 1 14:08:39 2008// +/sa1.in/1.2/Wed Mar 14 09:06:00 2007// +/sa1.ok/1.5/Wed Mar 14 09:06:00 2007// +/sa10.in/1.1/Tue Dec 6 14:27:57 2005// +/sa10.ok/1.1/Tue Dec 6 14:27:57 2005// +/sa11.in/1.2/Tue Jun 13 14:12:48 2006// +/sa11.ok/1.3/Tue Jun 13 14:12:48 2006// +/sa12.in/1.1/Wed Apr 12 14:06:16 2006// +/sa12.ok/1.2/Fri Jun 2 09:38:30 2006// +/sa13.in/1.2/Wed Mar 14 09:06:00 2007// +/sa13.ok/1.4/Wed Mar 14 09:06:00 2007// +/sa14.in/1.1/Thu Jun 1 03:14:26 2006// +/sa14.ok/1.2/Fri Jun 2 09:38:30 2006// +/sa15.in/1.2/Wed Mar 14 09:06:00 2007// +/sa15.ok/1.4/Wed Mar 14 09:06:00 2007// +/sa16.in/1.1/Thu Jun 1 03:14:26 2006// +/sa16.ok/1.2/Fri Jun 2 09:38:30 2006// +/sa17.in/1.1/Thu Jun 1 03:14:26 2006// +/sa17.ok/1.2/Fri Jun 2 09:38:30 2006// +/sa18.in/1.2/Tue Jun 13 14:12:48 2006// +/sa18.ok/1.3/Tue Jun 13 14:12:48 2006// +/sa19.in/1.2/Wed Mar 14 09:06:00 2007// +/sa19.ok/1.4/Wed Mar 14 09:06:00 2007// +/sa2.in/1.1/Mon Aug 8 14:44:59 2005// +/sa2.ok/1.3/Fri Jun 2 09:38:30 2006// +/sa20.in/1.1/Thu Jun 1 03:14:26 2006// +/sa20.ok/1.1/Thu Jun 1 03:14:26 2006// +/sa21.in/1.2/Tue Jun 13 14:12:48 2006// +/sa21.ok/1.3/Tue Jun 13 14:12:48 2006// +/sa22.in/1.1/Thu Jun 1 03:16:13 2006// +/sa22.ok/1.1/Thu Jun 1 03:16:13 2006// +/sa23.in/1.2/Tue Jun 13 14:12:48 2006// +/sa23.ok/1.3/Tue Jun 13 14:12:48 2006// +/sa24.in/1.1/Thu Jun 1 03:16:13 2006// +/sa24.ok/1.2/Fri Jun 2 09:38:30 2006// +/sa3.in/1.2/Wed Mar 14 09:06:00 2007// +/sa3.ok/1.5/Wed Mar 14 09:06:00 2007// +/sa4.in/1.1/Mon Aug 8 14:44:59 2005// +/sa4.ok/1.3/Fri Jun 2 09:38:30 2006// +/sa5.in/1.4/Thu Nov 24 11:54:26 2005// +/sa5.ok/1.4/Fri Jun 2 09:38:30 2006// +/sa6.in/1.4/Tue Jun 13 14:12:48 2006// +/sa6.ok/1.5/Tue Jun 13 14:12:48 2006// +/sa7.in/1.2/Wed Mar 14 09:06:00 2007// +/sa7.ok/1.5/Wed Mar 14 09:06:00 2007// +/sa8.in/1.1/Sun Oct 30 20:05:24 2005// +/sa8.ok/1.2/Sat Nov 12 12:13:24 2005// +/sa9.in/1.3/Mon Feb 19 10:18:01 2007// +/sa9.ok/1.4/Mon Feb 19 10:18:01 2007// +/safail1.in/1.1/Fri Feb 3 10:33:27 2006// +/safail1.ok/1.3/Fri Jun 16 10:12:53 2006// +/safail2.in/1.1/Thu Jun 15 11:04:41 2006// +/safail2.ok/1.3/Mon Nov 13 11:15:23 2006// +/tcpmd51.in/1.3/Fri Aug 5 14:40:06 2005// +/tcpmd51.ok/1.3/Fri Aug 5 14:40:06 2005// +/tcpmd52.in/1.3/Fri Aug 5 14:40:06 2005// +/tcpmd52.ok/1.3/Fri Aug 5 14:40:06 2005// +/tcpmd53.in/1.2/Thu Aug 11 09:57:24 2005// +/tcpmd53.ok/1.1/Tue Aug 9 14:58:10 2005// +/Makefile/1.58/Mon May 31 05:18:51 2010// +D diff --git a/src/regress/sbin/ipsecctl/CVS/Repository b/src/regress/sbin/ipsecctl/CVS/Repository new file mode 100644 index 000000000..55d44539e --- /dev/null +++ b/src/regress/sbin/ipsecctl/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/ipsecctl diff --git a/src/regress/sbin/ipsecctl/CVS/Root b/src/regress/sbin/ipsecctl/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/ipsecctl/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/ipsecctl/Makefile b/src/regress/sbin/ipsecctl/Makefile new file mode 100644 index 000000000..16b298b16 --- /dev/null +++ b/src/regress/sbin/ipsecctl/Makefile @@ -0,0 +1,126 @@ +# $OpenBSD: Makefile,v 1.58 2010/05/10 02:00:49 krw Exp $ + +# you can update the *.ok files with: make -i | patch +# TARGETS +# ipsec: feed ipsecNN.in through ipsecctl and check whether the output matches +# ipsecNN.ok +# tcpmd5: same as above, but for tcpmd5 rules +# sa: same as above, but for SA rules. +# ike: same as above, but for ike rules. + +IPSECTESTS=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +IPSECTESTS+=25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 +IPSECTESTS+=51 52 53 54 55 56 57 58 +TCPMD5TESTS=1 2 3 +SATESTS=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +SAFAIL=1 2 +IPSECFAIL=1 2 3 +IKEFAIL=1 3 4 5 6 8 9 11 12 13 14 +IKETESTS=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +IKETESTS+=16 17 18 19 20 21 22 23 +IKETESTS+=29 30 31 32 33 34 35 36 37 38 39 40 +IKETESTS+=41 42 43 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 +IKETESTS+=63 64 65 66 67 68 + +IKEDELTESTS=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +IKEDELTESTS+=16 17 18 19 20 21 22 23 +IKEDELTESTS+=29 30 31 32 33 34 35 36 37 38 39 40 +IKEDELTESTS+=41 42 43 46 47 + +SHELL=/bin/sh + +.MAIN: all + +.for n in ${IPSECTESTS} +IPSEC_TARGETS+=ipsec${n} + +ipsec${n}: + cat ${.CURDIR}/ipsec${n}.in | sed -e 's,DIR,${.CURDIR},g' | \ + ipsecctl -nv -f - | diff -u ${.CURDIR}/ipsec${n}.ok /dev/stdin +.endfor + +.for n in ${TCPMD5TESTS} +TCPMD5_TARGETS+=tcpmd5${n} + +tcpmd5${n}: + cat ${.CURDIR}/tcpmd5${n}.in | sed -e 's,DIR,${.CURDIR},g' | \ + ipsecctl -nkv -f - | diff -u ${.CURDIR}/tcpmd5${n}.ok /dev/stdin +.endfor + +.for n in ${SATESTS} +SA_TARGETS+=sa${n} + +sa${n}: + cat ${.CURDIR}/sa${n}.in | sed -e 's,DIR,${.CURDIR},g' | \ + ipsecctl -knv -f - | diff -u ${.CURDIR}/sa${n}.ok /dev/stdin +.endfor + +.for n in ${SAFAIL} +SAFAIL_TARGETS+=safail${n} + +safail${n}: + cat ${.CURDIR}/safail${n}.in | sed -e 's,DIR,${.CURDIR},g' | \ + ipsecctl -nv -f - 2>&1 | diff -u ${.CURDIR}/safail${n}.ok /dev/stdin +.endfor + +.for n in ${IPSECFAIL} +IPSECFAIL_TARGETS+=ipsecfail${n} + +ipsecfail${n}: + cat ${.CURDIR}/ipsecfail${n}.in | sed -e 's,DIR,${.CURDIR},g' | \ + ipsecctl -nv -f - 2>&1 | diff -u ${.CURDIR}/ipsecfail${n}.ok /dev/stdin +.endfor + +.for n in ${IKETESTS} +IKE_TARGETS+=ike${n} + +ike${n}: + cat ${.CURDIR}/ike${n}.in | sed -e 's,DIR,${.CURDIR},g' | \ + ipsecctl -nv -f - | diff -u ${.CURDIR}/ike${n}.ok /dev/stdin +.endfor + +.for n in ${IKEFAIL} +IKEFAIL_TARGETS+=ikefail${n} + +ikefail${n}: + cat ${.CURDIR}/ikefail${n}.in | sed -e 's,DIR,${.CURDIR},g' | \ + ipsecctl -nv -f - 2>&1 | diff -u ${.CURDIR}/ikefail${n}.ok /dev/stdin +.endfor + +.for n in ${IKEDELTESTS} +IKEDEL_TARGETS+=ikedel${n} + +ikedel${n}: + cat ${.CURDIR}/ikedel${n}.in | sed -e 's,DIR,${.CURDIR},g' | \ + ipsecctl -dnv -f - | diff -u ${.CURDIR}/ikedel${n}.ok /dev/stdin +.endfor + +ipsec: ${IPSEC_TARGETS} +REGRESS_TARGETS+=ipsec + +tcpmd5: ${TCPMD5_TARGETS} +REGRESS_TARGETS+=tcpmd5 + +sa: ${SA_TARGETS} +REGRESS_TARGETS+=sa + +safail: ${SAFAIL_TARGETS} +REGRESS_TARGETS+=safail + +ipsecfail: ${IPSECFAIL_TARGETS} +REGRESS_TARGETS+=ipsecfail + +ike: ${IKE_TARGETS} +REGRESS_TARGETS+=ike + +ikefail: ${IKEFAIL_TARGETS} +REGRESS_TARGETS+=ikefail + +ikedel: ${IKEDEL_TARGETS} +REGRESS_TARGETS+=ikedel + +alltests: ${REGRESS_TARGETS} + +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/sbin/ipsecctl/ak128 b/src/regress/sbin/ipsecctl/ak128 new file mode 100644 index 000000000..2abac58e6 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ak128 @@ -0,0 +1 @@ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/src/regress/sbin/ipsecctl/ak160 b/src/regress/sbin/ipsecctl/ak160 new file mode 100644 index 000000000..f26486d27 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ak160 @@ -0,0 +1 @@ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/src/regress/sbin/ipsecctl/ak256 b/src/regress/sbin/ipsecctl/ak256 new file mode 100644 index 000000000..93f308c87 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ak256 @@ -0,0 +1 @@ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/src/regress/sbin/ipsecctl/ak384 b/src/regress/sbin/ipsecctl/ak384 new file mode 100644 index 000000000..d06c50ec0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ak384 @@ -0,0 +1 @@ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/src/regress/sbin/ipsecctl/ak512 b/src/regress/sbin/ipsecctl/ak512 new file mode 100644 index 000000000..fc0b63bcb --- /dev/null +++ b/src/regress/sbin/ipsecctl/ak512 @@ -0,0 +1 @@ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/src/regress/sbin/ipsecctl/ek128 b/src/regress/sbin/ipsecctl/ek128 new file mode 100644 index 000000000..62231ac9b --- /dev/null +++ b/src/regress/sbin/ipsecctl/ek128 @@ -0,0 +1 @@ +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/ek160 b/src/regress/sbin/ipsecctl/ek160 new file mode 100644 index 000000000..9d0eb86bc --- /dev/null +++ b/src/regress/sbin/ipsecctl/ek160 @@ -0,0 +1 @@ +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/ek192 b/src/regress/sbin/ipsecctl/ek192 new file mode 100644 index 000000000..d7e715e4b --- /dev/null +++ b/src/regress/sbin/ipsecctl/ek192 @@ -0,0 +1 @@ +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/ek64 b/src/regress/sbin/ipsecctl/ek64 new file mode 100644 index 000000000..8ad64c89e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ek64 @@ -0,0 +1 @@ +eeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/ek80 b/src/regress/sbin/ipsecctl/ek80 new file mode 100644 index 000000000..24af66393 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ek80 @@ -0,0 +1 @@ +eeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/ike1.in b/src/regress/sbin/ipsecctl/ike1.in new file mode 100644 index 000000000..c627e0e9f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike1.in @@ -0,0 +1 @@ +ike from 131.188.33.51 to 131.188.33.29 diff --git a/src/regress/sbin/ipsecctl/ike1.ok b/src/regress/sbin/ipsecctl/ike1.ok new file mode 100644 index 000000000..8a94ed9e9 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike1.ok @@ -0,0 +1,18 @@ +C set [Phase 1]:131.188.33.29=peer-131.188.33.29 force +C set [peer-131.188.33.29]:Phase=1 force +C set [peer-131.188.33.29]:Address=131.188.33.29 force +C set [peer-131.188.33.29]:Configuration=phase1-peer-131.188.33.29 force +C set [phase1-peer-131.188.33.29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-131.188.33.29]:Transforms=AES-SHA-RSA_SIG force +C set [from-131.188.33.51-to-131.188.33.29]:Phase=2 force +C set [from-131.188.33.51-to-131.188.33.29]:ISAKMP-peer=peer-131.188.33.29 force +C set [from-131.188.33.51-to-131.188.33.29]:Configuration=phase2-from-131.188.33.51-to-131.188.33.29 force +C set [from-131.188.33.51-to-131.188.33.29]:Local-ID=from-131.188.33.51 force +C set [from-131.188.33.51-to-131.188.33.29]:Remote-ID=to-131.188.33.29 force +C set [phase2-from-131.188.33.51-to-131.188.33.29]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-131.188.33.51-to-131.188.33.29]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-131.188.33.51]:ID-type=IPV4_ADDR force +C set [from-131.188.33.51]:Address=131.188.33.51 force +C set [to-131.188.33.29]:ID-type=IPV4_ADDR force +C set [to-131.188.33.29]:Address=131.188.33.29 force +C add [Phase 2]:Connections=from-131.188.33.51-to-131.188.33.29 diff --git a/src/regress/sbin/ipsecctl/ike10.in b/src/regress/sbin/ipsecctl/ike10.in new file mode 100644 index 000000000..39783d0fb --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike10.in @@ -0,0 +1 @@ +ike esp proto etherip from 192.168.100.1 to 192.168.200.1 diff --git a/src/regress/sbin/ipsecctl/ike10.ok b/src/regress/sbin/ipsecctl/ike10.ok new file mode 100644 index 000000000..be106fe1f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike10.ok @@ -0,0 +1,20 @@ +C set [Phase 1]:192.168.200.1=peer-192.168.200.1 force +C set [peer-192.168.200.1]:Phase=1 force +C set [peer-192.168.200.1]:Address=192.168.200.1 force +C set [peer-192.168.200.1]:Configuration=phase1-peer-192.168.200.1 force +C set [phase1-peer-192.168.200.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-192.168.200.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-192.168.100.1=97-to-192.168.200.1=97]:Phase=2 force +C set [from-192.168.100.1=97-to-192.168.200.1=97]:ISAKMP-peer=peer-192.168.200.1 force +C set [from-192.168.100.1=97-to-192.168.200.1=97]:Configuration=phase2-from-192.168.100.1=97-to-192.168.200.1=97 force +C set [from-192.168.100.1=97-to-192.168.200.1=97]:Local-ID=from-192.168.100.1=97 force +C set [from-192.168.100.1=97-to-192.168.200.1=97]:Remote-ID=to-192.168.200.1=97 force +C set [phase2-from-192.168.100.1=97-to-192.168.200.1=97]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-192.168.100.1=97-to-192.168.200.1=97]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-192.168.100.1=97]:ID-type=IPV4_ADDR force +C set [from-192.168.100.1=97]:Address=192.168.100.1 force +C set [to-192.168.200.1=97]:ID-type=IPV4_ADDR force +C set [to-192.168.200.1=97]:Address=192.168.200.1 force +C set [from-192.168.100.1=97]:Protocol=97 force +C set [to-192.168.200.1=97]:Protocol=97 force +C add [Phase 2]:Connections=from-192.168.100.1=97-to-192.168.200.1=97 diff --git a/src/regress/sbin/ipsecctl/ike11.in b/src/regress/sbin/ipsecctl/ike11.in new file mode 100644 index 000000000..c7f1d04ad --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike11.in @@ -0,0 +1,2 @@ +ike from 1.1.1.1 to any local 192.168.3.2 peer 192.168.3.1 +ike from 1.1.1.1 to any peer 192.168.3.1 local 192.168.3.2 diff --git a/src/regress/sbin/ipsecctl/ike11.ok b/src/regress/sbin/ipsecctl/ike11.ok new file mode 100644 index 000000000..ff637adcf --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike11.ok @@ -0,0 +1,40 @@ +C set [Phase 1]:192.168.3.1=peer-192.168.3.1-local-192.168.3.2 force +C set [peer-192.168.3.1-local-192.168.3.2]:Phase=1 force +C set [peer-192.168.3.1-local-192.168.3.2]:Address=192.168.3.1 force +C set [peer-192.168.3.1-local-192.168.3.2]:Local-address=192.168.3.2 force +C set [peer-192.168.3.1-local-192.168.3.2]:Configuration=phase1-peer-192.168.3.1-local-192.168.3.2 force +C set [phase1-peer-192.168.3.1-local-192.168.3.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-192.168.3.1-local-192.168.3.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-0.0.0.0/0]:Phase=2 force +C set [from-1.1.1.1-to-0.0.0.0/0]:ISAKMP-peer=peer-192.168.3.1-local-192.168.3.2 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Configuration=phase2-from-1.1.1.1-to-0.0.0.0/0 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-1.1.1.1-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-0.0.0.0/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-1.1.1.1-to-0.0.0.0/0 +C set [Phase 1]:192.168.3.1=peer-192.168.3.1-local-192.168.3.2 force +C set [peer-192.168.3.1-local-192.168.3.2]:Phase=1 force +C set [peer-192.168.3.1-local-192.168.3.2]:Address=192.168.3.1 force +C set [peer-192.168.3.1-local-192.168.3.2]:Local-address=192.168.3.2 force +C set [peer-192.168.3.1-local-192.168.3.2]:Configuration=phase1-peer-192.168.3.1-local-192.168.3.2 force +C set [phase1-peer-192.168.3.1-local-192.168.3.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-192.168.3.1-local-192.168.3.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-0.0.0.0/0]:Phase=2 force +C set [from-1.1.1.1-to-0.0.0.0/0]:ISAKMP-peer=peer-192.168.3.1-local-192.168.3.2 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Configuration=phase2-from-1.1.1.1-to-0.0.0.0/0 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-1.1.1.1-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-0.0.0.0/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-1.1.1.1-to-0.0.0.0/0 diff --git a/src/regress/sbin/ipsecctl/ike12.in b/src/regress/sbin/ipsecctl/ike12.in new file mode 100644 index 000000000..b85bd6ee2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike12.in @@ -0,0 +1,2 @@ +TO="{ 2.2.2.0/24, 3.3.3.0/24, 4.4.4.0/24 }" +ike from 1.1.1.1 to $TO peer 5.5.5.5 diff --git a/src/regress/sbin/ipsecctl/ike12.ok b/src/regress/sbin/ipsecctl/ike12.ok new file mode 100644 index 000000000..2d00da756 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike12.ok @@ -0,0 +1,58 @@ +TO = "{ 2.2.2.0/24, 3.3.3.0/24, 4.4.4.0/24 }" +C set [Phase 1]:5.5.5.5=peer-5.5.5.5 force +C set [peer-5.5.5.5]:Phase=1 force +C set [peer-5.5.5.5]:Address=5.5.5.5 force +C set [peer-5.5.5.5]:Configuration=phase1-peer-5.5.5.5 force +C set [phase1-peer-5.5.5.5]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-5.5.5.5]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-2.2.2.0/24]:Phase=2 force +C set [from-1.1.1.1-to-2.2.2.0/24]:ISAKMP-peer=peer-5.5.5.5 force +C set [from-1.1.1.1-to-2.2.2.0/24]:Configuration=phase2-from-1.1.1.1-to-2.2.2.0/24 force +C set [from-1.1.1.1-to-2.2.2.0/24]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-2.2.2.0/24]:Remote-ID=to-2.2.2.0/24 force +C set [phase2-from-1.1.1.1-to-2.2.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-2.2.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-2.2.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-2.2.2.0/24]:Network=2.2.2.0 force +C set [to-2.2.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.0/24 +C set [Phase 1]:5.5.5.5=peer-5.5.5.5 force +C set [peer-5.5.5.5]:Phase=1 force +C set [peer-5.5.5.5]:Address=5.5.5.5 force +C set [peer-5.5.5.5]:Configuration=phase1-peer-5.5.5.5 force +C set [phase1-peer-5.5.5.5]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-5.5.5.5]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-3.3.3.0/24]:Phase=2 force +C set [from-1.1.1.1-to-3.3.3.0/24]:ISAKMP-peer=peer-5.5.5.5 force +C set [from-1.1.1.1-to-3.3.3.0/24]:Configuration=phase2-from-1.1.1.1-to-3.3.3.0/24 force +C set [from-1.1.1.1-to-3.3.3.0/24]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-3.3.3.0/24]:Remote-ID=to-3.3.3.0/24 force +C set [phase2-from-1.1.1.1-to-3.3.3.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-3.3.3.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-3.3.3.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-3.3.3.0/24]:Network=3.3.3.0 force +C set [to-3.3.3.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-1.1.1.1-to-3.3.3.0/24 +C set [Phase 1]:5.5.5.5=peer-5.5.5.5 force +C set [peer-5.5.5.5]:Phase=1 force +C set [peer-5.5.5.5]:Address=5.5.5.5 force +C set [peer-5.5.5.5]:Configuration=phase1-peer-5.5.5.5 force +C set [phase1-peer-5.5.5.5]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-5.5.5.5]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-4.4.4.0/24]:Phase=2 force +C set [from-1.1.1.1-to-4.4.4.0/24]:ISAKMP-peer=peer-5.5.5.5 force +C set [from-1.1.1.1-to-4.4.4.0/24]:Configuration=phase2-from-1.1.1.1-to-4.4.4.0/24 force +C set [from-1.1.1.1-to-4.4.4.0/24]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-4.4.4.0/24]:Remote-ID=to-4.4.4.0/24 force +C set [phase2-from-1.1.1.1-to-4.4.4.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-4.4.4.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-4.4.4.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-4.4.4.0/24]:Network=4.4.4.0 force +C set [to-4.4.4.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-1.1.1.1-to-4.4.4.0/24 diff --git a/src/regress/sbin/ipsecctl/ike13.in b/src/regress/sbin/ipsecctl/ike13.in new file mode 100644 index 000000000..b3aaf8b4b --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike13.in @@ -0,0 +1,2 @@ +FROM="{ 2.2.2.0/24, 3.3.3.0/24, 4.4.4.0/24 }" +ike from $FROM to 1.1.1.1 diff --git a/src/regress/sbin/ipsecctl/ike13.ok b/src/regress/sbin/ipsecctl/ike13.ok new file mode 100644 index 000000000..29d0cb1ba --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike13.ok @@ -0,0 +1,58 @@ +FROM = "{ 2.2.2.0/24, 3.3.3.0/24, 4.4.4.0/24 }" +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-2.2.2.0/24-to-1.1.1.1]:Phase=2 force +C set [from-2.2.2.0/24-to-1.1.1.1]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-2.2.2.0/24-to-1.1.1.1]:Configuration=phase2-from-2.2.2.0/24-to-1.1.1.1 force +C set [from-2.2.2.0/24-to-1.1.1.1]:Local-ID=from-2.2.2.0/24 force +C set [from-2.2.2.0/24-to-1.1.1.1]:Remote-ID=to-1.1.1.1 force +C set [phase2-from-2.2.2.0/24-to-1.1.1.1]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-2.2.2.0/24-to-1.1.1.1]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-2.2.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-2.2.2.0/24]:Network=2.2.2.0 force +C set [from-2.2.2.0/24]:Netmask=255.255.255.0 force +C set [to-1.1.1.1]:ID-type=IPV4_ADDR force +C set [to-1.1.1.1]:Address=1.1.1.1 force +C add [Phase 2]:Connections=from-2.2.2.0/24-to-1.1.1.1 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-3.3.3.0/24-to-1.1.1.1]:Phase=2 force +C set [from-3.3.3.0/24-to-1.1.1.1]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-3.3.3.0/24-to-1.1.1.1]:Configuration=phase2-from-3.3.3.0/24-to-1.1.1.1 force +C set [from-3.3.3.0/24-to-1.1.1.1]:Local-ID=from-3.3.3.0/24 force +C set [from-3.3.3.0/24-to-1.1.1.1]:Remote-ID=to-1.1.1.1 force +C set [phase2-from-3.3.3.0/24-to-1.1.1.1]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3.3.3.0/24-to-1.1.1.1]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3.3.3.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-3.3.3.0/24]:Network=3.3.3.0 force +C set [from-3.3.3.0/24]:Netmask=255.255.255.0 force +C set [to-1.1.1.1]:ID-type=IPV4_ADDR force +C set [to-1.1.1.1]:Address=1.1.1.1 force +C add [Phase 2]:Connections=from-3.3.3.0/24-to-1.1.1.1 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-4.4.4.0/24-to-1.1.1.1]:Phase=2 force +C set [from-4.4.4.0/24-to-1.1.1.1]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-4.4.4.0/24-to-1.1.1.1]:Configuration=phase2-from-4.4.4.0/24-to-1.1.1.1 force +C set [from-4.4.4.0/24-to-1.1.1.1]:Local-ID=from-4.4.4.0/24 force +C set [from-4.4.4.0/24-to-1.1.1.1]:Remote-ID=to-1.1.1.1 force +C set [phase2-from-4.4.4.0/24-to-1.1.1.1]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-4.4.4.0/24-to-1.1.1.1]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-4.4.4.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-4.4.4.0/24]:Network=4.4.4.0 force +C set [from-4.4.4.0/24]:Netmask=255.255.255.0 force +C set [to-1.1.1.1]:ID-type=IPV4_ADDR force +C set [to-1.1.1.1]:Address=1.1.1.1 force +C add [Phase 2]:Connections=from-4.4.4.0/24-to-1.1.1.1 diff --git a/src/regress/sbin/ipsecctl/ike14.in b/src/regress/sbin/ipsecctl/ike14.in new file mode 100644 index 000000000..9758b2171 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike14.in @@ -0,0 +1,3 @@ +FROM="{ 2.2.2.0/24, 3.3.3.0/24, 4.4.4.0/24 }" +TO="{ 5.5.5.0/24, 6.6.6.0/24, 7.7.7.0/24 }" +ike from $FROM to $TO peer 1.1.1.1 diff --git a/src/regress/sbin/ipsecctl/ike14.ok b/src/regress/sbin/ipsecctl/ike14.ok new file mode 100644 index 000000000..40d894038 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike14.ok @@ -0,0 +1,182 @@ +FROM = "{ 2.2.2.0/24, 3.3.3.0/24, 4.4.4.0/24 }" +TO = "{ 5.5.5.0/24, 6.6.6.0/24, 7.7.7.0/24 }" +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-2.2.2.0/24-to-5.5.5.0/24]:Phase=2 force +C set [from-2.2.2.0/24-to-5.5.5.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-2.2.2.0/24-to-5.5.5.0/24]:Configuration=phase2-from-2.2.2.0/24-to-5.5.5.0/24 force +C set [from-2.2.2.0/24-to-5.5.5.0/24]:Local-ID=from-2.2.2.0/24 force +C set [from-2.2.2.0/24-to-5.5.5.0/24]:Remote-ID=to-5.5.5.0/24 force +C set [phase2-from-2.2.2.0/24-to-5.5.5.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-2.2.2.0/24-to-5.5.5.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-2.2.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-2.2.2.0/24]:Network=2.2.2.0 force +C set [from-2.2.2.0/24]:Netmask=255.255.255.0 force +C set [to-5.5.5.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-5.5.5.0/24]:Network=5.5.5.0 force +C set [to-5.5.5.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-2.2.2.0/24-to-5.5.5.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-2.2.2.0/24-to-6.6.6.0/24]:Phase=2 force +C set [from-2.2.2.0/24-to-6.6.6.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-2.2.2.0/24-to-6.6.6.0/24]:Configuration=phase2-from-2.2.2.0/24-to-6.6.6.0/24 force +C set [from-2.2.2.0/24-to-6.6.6.0/24]:Local-ID=from-2.2.2.0/24 force +C set [from-2.2.2.0/24-to-6.6.6.0/24]:Remote-ID=to-6.6.6.0/24 force +C set [phase2-from-2.2.2.0/24-to-6.6.6.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-2.2.2.0/24-to-6.6.6.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-2.2.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-2.2.2.0/24]:Network=2.2.2.0 force +C set [from-2.2.2.0/24]:Netmask=255.255.255.0 force +C set [to-6.6.6.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-6.6.6.0/24]:Network=6.6.6.0 force +C set [to-6.6.6.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-2.2.2.0/24-to-6.6.6.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-2.2.2.0/24-to-7.7.7.0/24]:Phase=2 force +C set [from-2.2.2.0/24-to-7.7.7.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-2.2.2.0/24-to-7.7.7.0/24]:Configuration=phase2-from-2.2.2.0/24-to-7.7.7.0/24 force +C set [from-2.2.2.0/24-to-7.7.7.0/24]:Local-ID=from-2.2.2.0/24 force +C set [from-2.2.2.0/24-to-7.7.7.0/24]:Remote-ID=to-7.7.7.0/24 force +C set [phase2-from-2.2.2.0/24-to-7.7.7.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-2.2.2.0/24-to-7.7.7.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-2.2.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-2.2.2.0/24]:Network=2.2.2.0 force +C set [from-2.2.2.0/24]:Netmask=255.255.255.0 force +C set [to-7.7.7.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-7.7.7.0/24]:Network=7.7.7.0 force +C set [to-7.7.7.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-2.2.2.0/24-to-7.7.7.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-3.3.3.0/24-to-5.5.5.0/24]:Phase=2 force +C set [from-3.3.3.0/24-to-5.5.5.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-3.3.3.0/24-to-5.5.5.0/24]:Configuration=phase2-from-3.3.3.0/24-to-5.5.5.0/24 force +C set [from-3.3.3.0/24-to-5.5.5.0/24]:Local-ID=from-3.3.3.0/24 force +C set [from-3.3.3.0/24-to-5.5.5.0/24]:Remote-ID=to-5.5.5.0/24 force +C set [phase2-from-3.3.3.0/24-to-5.5.5.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3.3.3.0/24-to-5.5.5.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3.3.3.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-3.3.3.0/24]:Network=3.3.3.0 force +C set [from-3.3.3.0/24]:Netmask=255.255.255.0 force +C set [to-5.5.5.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-5.5.5.0/24]:Network=5.5.5.0 force +C set [to-5.5.5.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-3.3.3.0/24-to-5.5.5.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-3.3.3.0/24-to-6.6.6.0/24]:Phase=2 force +C set [from-3.3.3.0/24-to-6.6.6.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-3.3.3.0/24-to-6.6.6.0/24]:Configuration=phase2-from-3.3.3.0/24-to-6.6.6.0/24 force +C set [from-3.3.3.0/24-to-6.6.6.0/24]:Local-ID=from-3.3.3.0/24 force +C set [from-3.3.3.0/24-to-6.6.6.0/24]:Remote-ID=to-6.6.6.0/24 force +C set [phase2-from-3.3.3.0/24-to-6.6.6.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3.3.3.0/24-to-6.6.6.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3.3.3.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-3.3.3.0/24]:Network=3.3.3.0 force +C set [from-3.3.3.0/24]:Netmask=255.255.255.0 force +C set [to-6.6.6.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-6.6.6.0/24]:Network=6.6.6.0 force +C set [to-6.6.6.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-3.3.3.0/24-to-6.6.6.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-3.3.3.0/24-to-7.7.7.0/24]:Phase=2 force +C set [from-3.3.3.0/24-to-7.7.7.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-3.3.3.0/24-to-7.7.7.0/24]:Configuration=phase2-from-3.3.3.0/24-to-7.7.7.0/24 force +C set [from-3.3.3.0/24-to-7.7.7.0/24]:Local-ID=from-3.3.3.0/24 force +C set [from-3.3.3.0/24-to-7.7.7.0/24]:Remote-ID=to-7.7.7.0/24 force +C set [phase2-from-3.3.3.0/24-to-7.7.7.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3.3.3.0/24-to-7.7.7.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3.3.3.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-3.3.3.0/24]:Network=3.3.3.0 force +C set [from-3.3.3.0/24]:Netmask=255.255.255.0 force +C set [to-7.7.7.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-7.7.7.0/24]:Network=7.7.7.0 force +C set [to-7.7.7.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-3.3.3.0/24-to-7.7.7.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-4.4.4.0/24-to-5.5.5.0/24]:Phase=2 force +C set [from-4.4.4.0/24-to-5.5.5.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-4.4.4.0/24-to-5.5.5.0/24]:Configuration=phase2-from-4.4.4.0/24-to-5.5.5.0/24 force +C set [from-4.4.4.0/24-to-5.5.5.0/24]:Local-ID=from-4.4.4.0/24 force +C set [from-4.4.4.0/24-to-5.5.5.0/24]:Remote-ID=to-5.5.5.0/24 force +C set [phase2-from-4.4.4.0/24-to-5.5.5.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-4.4.4.0/24-to-5.5.5.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-4.4.4.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-4.4.4.0/24]:Network=4.4.4.0 force +C set [from-4.4.4.0/24]:Netmask=255.255.255.0 force +C set [to-5.5.5.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-5.5.5.0/24]:Network=5.5.5.0 force +C set [to-5.5.5.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-4.4.4.0/24-to-5.5.5.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-4.4.4.0/24-to-6.6.6.0/24]:Phase=2 force +C set [from-4.4.4.0/24-to-6.6.6.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-4.4.4.0/24-to-6.6.6.0/24]:Configuration=phase2-from-4.4.4.0/24-to-6.6.6.0/24 force +C set [from-4.4.4.0/24-to-6.6.6.0/24]:Local-ID=from-4.4.4.0/24 force +C set [from-4.4.4.0/24-to-6.6.6.0/24]:Remote-ID=to-6.6.6.0/24 force +C set [phase2-from-4.4.4.0/24-to-6.6.6.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-4.4.4.0/24-to-6.6.6.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-4.4.4.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-4.4.4.0/24]:Network=4.4.4.0 force +C set [from-4.4.4.0/24]:Netmask=255.255.255.0 force +C set [to-6.6.6.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-6.6.6.0/24]:Network=6.6.6.0 force +C set [to-6.6.6.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-4.4.4.0/24-to-6.6.6.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-4.4.4.0/24-to-7.7.7.0/24]:Phase=2 force +C set [from-4.4.4.0/24-to-7.7.7.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-4.4.4.0/24-to-7.7.7.0/24]:Configuration=phase2-from-4.4.4.0/24-to-7.7.7.0/24 force +C set [from-4.4.4.0/24-to-7.7.7.0/24]:Local-ID=from-4.4.4.0/24 force +C set [from-4.4.4.0/24-to-7.7.7.0/24]:Remote-ID=to-7.7.7.0/24 force +C set [phase2-from-4.4.4.0/24-to-7.7.7.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-4.4.4.0/24-to-7.7.7.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-4.4.4.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-4.4.4.0/24]:Network=4.4.4.0 force +C set [from-4.4.4.0/24]:Netmask=255.255.255.0 force +C set [to-7.7.7.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-7.7.7.0/24]:Network=7.7.7.0 force +C set [to-7.7.7.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-4.4.4.0/24-to-7.7.7.0/24 diff --git a/src/regress/sbin/ipsecctl/ike15.in b/src/regress/sbin/ipsecctl/ike15.in new file mode 100644 index 000000000..4470dc3b3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike15.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 3ffe::1 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ike15.ok b/src/regress/sbin/ipsecctl/ike15.ok new file mode 100644 index 000000000..db08bff64 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike15.ok @@ -0,0 +1,26 @@ +C set [Phase 1]:3ffe::1=peer-3ffe::1 force +C set [peer-3ffe::1]:Phase=1 force +C set [peer-3ffe::1]:Address=3ffe::1 force +C set [peer-3ffe::1]:Configuration=phase1-peer-3ffe::1 force +C set [phase1-peer-3ffe::1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::1]:Transforms=AES-SHA-RSA_SIG force +C set [peer-3ffe::1]:ID=id-sharleena.as10.net force +C set [id-sharleena.as10.net]:ID-type=FQDN force +C set [id-sharleena.as10.net]:Name=sharleena.as10.net force +C set [peer-3ffe::1]:Remote-ID=id-faui31o.informatik.uni-erlangen.de force +C set [id-faui31o.informatik.uni-erlangen.de]:ID-type=FQDN force +C set [id-faui31o.informatik.uni-erlangen.de]:Name=faui31o.informatik.uni-erlangen.de force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-3ffe::1 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 diff --git a/src/regress/sbin/ipsecctl/ike16.in b/src/regress/sbin/ipsecctl/ike16.in new file mode 100644 index 000000000..bd4e41639 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike16.in @@ -0,0 +1,8 @@ +ike esp from 10.1.1.0/24 to 10.1.2.0/24 peer 3ffe::29 \ + main auth hmac-sha1 enc 3des group modp3072 \ + quick auth hmac-sha1 enc 3des group modp3072 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de +ike esp from 3ffe::51 to 3ffe::29 \ + main auth hmac-sha1 enc aes group modp3072 \ + quick auth hmac-sha2-256 enc aes group modp3072 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ike16.ok b/src/regress/sbin/ipsecctl/ike16.ok new file mode 100644 index 000000000..ff6deccc8 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike16.ok @@ -0,0 +1,50 @@ +C set [Phase 1]:3ffe::29=peer-3ffe::29 force +C set [peer-3ffe::29]:Phase=1 force +C set [peer-3ffe::29]:Address=3ffe::29 force +C set [peer-3ffe::29]:Configuration=phase1-peer-3ffe::29 force +C set [phase1-peer-3ffe::29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::29]:Transforms=3DES-SHA-GRP15-RSA_SIG force +C set [peer-3ffe::29]:ID=id-sharleena.as10.net force +C set [id-sharleena.as10.net]:ID-type=FQDN force +C set [id-sharleena.as10.net]:Name=sharleena.as10.net force +C set [peer-3ffe::29]:Remote-ID=id-faui31o.informatik.uni-erlangen.de force +C set [id-faui31o.informatik.uni-erlangen.de]:ID-type=FQDN force +C set [id-faui31o.informatik.uni-erlangen.de]:Name=faui31o.informatik.uni-erlangen.de force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-3ffe::29 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-3DES-SHA-PFS-GRP15-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 +C set [Phase 1]:3ffe::29=peer-3ffe::29 force +C set [peer-3ffe::29]:Phase=1 force +C set [peer-3ffe::29]:Address=3ffe::29 force +C set [peer-3ffe::29]:Configuration=phase1-peer-3ffe::29 force +C set [phase1-peer-3ffe::29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::29]:Transforms=AES-SHA-GRP15-RSA_SIG force +C set [peer-3ffe::29]:ID=id-sharleena.as10.net force +C set [id-sharleena.as10.net]:ID-type=FQDN force +C set [id-sharleena.as10.net]:Name=sharleena.as10.net force +C set [peer-3ffe::29]:Remote-ID=id-faui31o.informatik.uni-erlangen.de force +C set [id-faui31o.informatik.uni-erlangen.de]:ID-type=FQDN force +C set [id-faui31o.informatik.uni-erlangen.de]:Name=faui31o.informatik.uni-erlangen.de force +C set [from-3ffe::51-to-3ffe::29]:Phase=2 force +C set [from-3ffe::51-to-3ffe::29]:ISAKMP-peer=peer-3ffe::29 force +C set [from-3ffe::51-to-3ffe::29]:Configuration=phase2-from-3ffe::51-to-3ffe::29 force +C set [from-3ffe::51-to-3ffe::29]:Local-ID=from-3ffe::51 force +C set [from-3ffe::51-to-3ffe::29]:Remote-ID=to-3ffe::29 force +C set [phase2-from-3ffe::51-to-3ffe::29]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::51-to-3ffe::29]:Suites=QM-ESP-AES-SHA2-256-PFS-GRP15-SUITE force +C set [from-3ffe::51]:ID-type=IPV6_ADDR force +C set [from-3ffe::51]:Address=3ffe::51 force +C set [to-3ffe::29]:ID-type=IPV6_ADDR force +C set [to-3ffe::29]:Address=3ffe::29 force +C add [Phase 2]:Connections=from-3ffe::51-to-3ffe::29 diff --git a/src/regress/sbin/ipsecctl/ike17.in b/src/regress/sbin/ipsecctl/ike17.in new file mode 100644 index 000000000..60cc40a85 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike17.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 3ffe::29 +ike from 3ffe::51 to 3ffe::29 diff --git a/src/regress/sbin/ipsecctl/ike17.ok b/src/regress/sbin/ipsecctl/ike17.ok new file mode 100644 index 000000000..1c92080f8 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike17.ok @@ -0,0 +1,38 @@ +C set [Phase 1]:3ffe::29=peer-3ffe::29 force +C set [peer-3ffe::29]:Phase=1 force +C set [peer-3ffe::29]:Address=3ffe::29 force +C set [peer-3ffe::29]:Configuration=phase1-peer-3ffe::29 force +C set [phase1-peer-3ffe::29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::29]:Transforms=AES-SHA-RSA_SIG force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-3ffe::29 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 +C set [Phase 1]:3ffe::29=peer-3ffe::29 force +C set [peer-3ffe::29]:Phase=1 force +C set [peer-3ffe::29]:Address=3ffe::29 force +C set [peer-3ffe::29]:Configuration=phase1-peer-3ffe::29 force +C set [phase1-peer-3ffe::29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::29]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe::51-to-3ffe::29]:Phase=2 force +C set [from-3ffe::51-to-3ffe::29]:ISAKMP-peer=peer-3ffe::29 force +C set [from-3ffe::51-to-3ffe::29]:Configuration=phase2-from-3ffe::51-to-3ffe::29 force +C set [from-3ffe::51-to-3ffe::29]:Local-ID=from-3ffe::51 force +C set [from-3ffe::51-to-3ffe::29]:Remote-ID=to-3ffe::29 force +C set [phase2-from-3ffe::51-to-3ffe::29]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::51-to-3ffe::29]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe::51]:ID-type=IPV6_ADDR force +C set [from-3ffe::51]:Address=3ffe::51 force +C set [to-3ffe::29]:ID-type=IPV6_ADDR force +C set [to-3ffe::29]:Address=3ffe::29 force +C add [Phase 2]:Connections=from-3ffe::51-to-3ffe::29 diff --git a/src/regress/sbin/ipsecctl/ike18.in b/src/regress/sbin/ipsecctl/ike18.in new file mode 100644 index 000000000..7fabcbf79 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike18.in @@ -0,0 +1,2 @@ +ike passive from 10.1.2.0/24 to 10.1.1.0/24 peer 3ffe::51 +ike passive from 3ffe::29 to 3ffe::51 diff --git a/src/regress/sbin/ipsecctl/ike18.ok b/src/regress/sbin/ipsecctl/ike18.ok new file mode 100644 index 000000000..f9cd33a4e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike18.ok @@ -0,0 +1,38 @@ +C set [Phase 1]:3ffe::51=peer-3ffe::51 force +C set [peer-3ffe::51]:Phase=1 force +C set [peer-3ffe::51]:Address=3ffe::51 force +C set [peer-3ffe::51]:Configuration=phase1-peer-3ffe::51 force +C set [phase1-peer-3ffe::51]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::51]:Transforms=AES-SHA-RSA_SIG force +C set [from-10.1.2.0/24-to-10.1.1.0/24]:Phase=2 force +C set [from-10.1.2.0/24-to-10.1.1.0/24]:ISAKMP-peer=peer-3ffe::51 force +C set [from-10.1.2.0/24-to-10.1.1.0/24]:Configuration=phase2-from-10.1.2.0/24-to-10.1.1.0/24 force +C set [from-10.1.2.0/24-to-10.1.1.0/24]:Local-ID=from-10.1.2.0/24 force +C set [from-10.1.2.0/24-to-10.1.1.0/24]:Remote-ID=to-10.1.1.0/24 force +C set [phase2-from-10.1.2.0/24-to-10.1.1.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.2.0/24-to-10.1.1.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.2.0/24]:Network=10.1.2.0 force +C set [from-10.1.2.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.1.0/24]:Network=10.1.1.0 force +C set [to-10.1.1.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Passive-Connections=from-10.1.2.0/24-to-10.1.1.0/24 +C set [Phase 1]:3ffe::51=peer-3ffe::51 force +C set [peer-3ffe::51]:Phase=1 force +C set [peer-3ffe::51]:Address=3ffe::51 force +C set [peer-3ffe::51]:Configuration=phase1-peer-3ffe::51 force +C set [phase1-peer-3ffe::51]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::51]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe::29-to-3ffe::51]:Phase=2 force +C set [from-3ffe::29-to-3ffe::51]:ISAKMP-peer=peer-3ffe::51 force +C set [from-3ffe::29-to-3ffe::51]:Configuration=phase2-from-3ffe::29-to-3ffe::51 force +C set [from-3ffe::29-to-3ffe::51]:Local-ID=from-3ffe::29 force +C set [from-3ffe::29-to-3ffe::51]:Remote-ID=to-3ffe::51 force +C set [phase2-from-3ffe::29-to-3ffe::51]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::29-to-3ffe::51]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe::29]:ID-type=IPV6_ADDR force +C set [from-3ffe::29]:Address=3ffe::29 force +C set [to-3ffe::51]:ID-type=IPV6_ADDR force +C set [to-3ffe::51]:Address=3ffe::51 force +C add [Phase 2]:Passive-Connections=from-3ffe::29-to-3ffe::51 diff --git a/src/regress/sbin/ipsecctl/ike19.in b/src/regress/sbin/ipsecctl/ike19.in new file mode 100644 index 000000000..d4e3fdb1d --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike19.in @@ -0,0 +1 @@ +ike from 1.1.1.1 to any peer 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ike19.ok b/src/regress/sbin/ipsecctl/ike19.ok new file mode 100644 index 000000000..fd7c14810 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike19.ok @@ -0,0 +1,19 @@ +C set [Phase 1]:3ffe::1=peer-3ffe::1 force +C set [peer-3ffe::1]:Phase=1 force +C set [peer-3ffe::1]:Address=3ffe::1 force +C set [peer-3ffe::1]:Configuration=phase1-peer-3ffe::1 force +C set [phase1-peer-3ffe::1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::1]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-0.0.0.0/0]:Phase=2 force +C set [from-1.1.1.1-to-0.0.0.0/0]:ISAKMP-peer=peer-3ffe::1 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Configuration=phase2-from-1.1.1.1-to-0.0.0.0/0 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-1.1.1.1-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-0.0.0.0/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-1.1.1.1-to-0.0.0.0/0 diff --git a/src/regress/sbin/ipsecctl/ike2.in b/src/regress/sbin/ipsecctl/ike2.in new file mode 100644 index 000000000..8e67139c3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike2.in @@ -0,0 +1 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 131.188.33.29 diff --git a/src/regress/sbin/ipsecctl/ike2.ok b/src/regress/sbin/ipsecctl/ike2.ok new file mode 100644 index 000000000..ea58311e6 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike2.ok @@ -0,0 +1,20 @@ +C set [Phase 1]:131.188.33.29=peer-131.188.33.29 force +C set [peer-131.188.33.29]:Phase=1 force +C set [peer-131.188.33.29]:Address=131.188.33.29 force +C set [peer-131.188.33.29]:Configuration=phase1-peer-131.188.33.29 force +C set [phase1-peer-131.188.33.29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-131.188.33.29]:Transforms=AES-SHA-RSA_SIG force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-131.188.33.29 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 diff --git a/src/regress/sbin/ipsecctl/ike20.in b/src/regress/sbin/ipsecctl/ike20.in new file mode 100644 index 000000000..c7f1d04ad --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike20.in @@ -0,0 +1,2 @@ +ike from 1.1.1.1 to any local 192.168.3.2 peer 192.168.3.1 +ike from 1.1.1.1 to any peer 192.168.3.1 local 192.168.3.2 diff --git a/src/regress/sbin/ipsecctl/ike20.ok b/src/regress/sbin/ipsecctl/ike20.ok new file mode 100644 index 000000000..ff637adcf --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike20.ok @@ -0,0 +1,40 @@ +C set [Phase 1]:192.168.3.1=peer-192.168.3.1-local-192.168.3.2 force +C set [peer-192.168.3.1-local-192.168.3.2]:Phase=1 force +C set [peer-192.168.3.1-local-192.168.3.2]:Address=192.168.3.1 force +C set [peer-192.168.3.1-local-192.168.3.2]:Local-address=192.168.3.2 force +C set [peer-192.168.3.1-local-192.168.3.2]:Configuration=phase1-peer-192.168.3.1-local-192.168.3.2 force +C set [phase1-peer-192.168.3.1-local-192.168.3.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-192.168.3.1-local-192.168.3.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-0.0.0.0/0]:Phase=2 force +C set [from-1.1.1.1-to-0.0.0.0/0]:ISAKMP-peer=peer-192.168.3.1-local-192.168.3.2 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Configuration=phase2-from-1.1.1.1-to-0.0.0.0/0 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-1.1.1.1-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-0.0.0.0/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-1.1.1.1-to-0.0.0.0/0 +C set [Phase 1]:192.168.3.1=peer-192.168.3.1-local-192.168.3.2 force +C set [peer-192.168.3.1-local-192.168.3.2]:Phase=1 force +C set [peer-192.168.3.1-local-192.168.3.2]:Address=192.168.3.1 force +C set [peer-192.168.3.1-local-192.168.3.2]:Local-address=192.168.3.2 force +C set [peer-192.168.3.1-local-192.168.3.2]:Configuration=phase1-peer-192.168.3.1-local-192.168.3.2 force +C set [phase1-peer-192.168.3.1-local-192.168.3.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-192.168.3.1-local-192.168.3.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-0.0.0.0/0]:Phase=2 force +C set [from-1.1.1.1-to-0.0.0.0/0]:ISAKMP-peer=peer-192.168.3.1-local-192.168.3.2 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Configuration=phase2-from-1.1.1.1-to-0.0.0.0/0 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-1.1.1.1-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-0.0.0.0/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-1.1.1.1-to-0.0.0.0/0 diff --git a/src/regress/sbin/ipsecctl/ike21.in b/src/regress/sbin/ipsecctl/ike21.in new file mode 100644 index 000000000..213c71e19 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike21.in @@ -0,0 +1 @@ +ike from 3ffe::1 to 3ffe::2 diff --git a/src/regress/sbin/ipsecctl/ike21.ok b/src/regress/sbin/ipsecctl/ike21.ok new file mode 100644 index 000000000..4767206f2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike21.ok @@ -0,0 +1,18 @@ +C set [Phase 1]:3ffe::2=peer-3ffe::2 force +C set [peer-3ffe::2]:Phase=1 force +C set [peer-3ffe::2]:Address=3ffe::2 force +C set [peer-3ffe::2]:Configuration=phase1-peer-3ffe::2 force +C set [phase1-peer-3ffe::2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::2]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe::1-to-3ffe::2]:Phase=2 force +C set [from-3ffe::1-to-3ffe::2]:ISAKMP-peer=peer-3ffe::2 force +C set [from-3ffe::1-to-3ffe::2]:Configuration=phase2-from-3ffe::1-to-3ffe::2 force +C set [from-3ffe::1-to-3ffe::2]:Local-ID=from-3ffe::1 force +C set [from-3ffe::1-to-3ffe::2]:Remote-ID=to-3ffe::2 force +C set [phase2-from-3ffe::1-to-3ffe::2]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::1-to-3ffe::2]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe::1]:ID-type=IPV6_ADDR force +C set [from-3ffe::1]:Address=3ffe::1 force +C set [to-3ffe::2]:ID-type=IPV6_ADDR force +C set [to-3ffe::2]:Address=3ffe::2 force +C add [Phase 2]:Connections=from-3ffe::1-to-3ffe::2 diff --git a/src/regress/sbin/ipsecctl/ike22.in b/src/regress/sbin/ipsecctl/ike22.in new file mode 100644 index 000000000..ddc4a19e1 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike22.in @@ -0,0 +1 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ike22.ok b/src/regress/sbin/ipsecctl/ike22.ok new file mode 100644 index 000000000..e037df8f1 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike22.ok @@ -0,0 +1,20 @@ +C set [Phase 1]:3ffe::1=peer-3ffe::1 force +C set [peer-3ffe::1]:Phase=1 force +C set [peer-3ffe::1]:Address=3ffe::1 force +C set [peer-3ffe::1]:Configuration=phase1-peer-3ffe::1 force +C set [phase1-peer-3ffe::1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::1]:Transforms=AES-SHA-RSA_SIG force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-3ffe::1 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 diff --git a/src/regress/sbin/ipsecctl/ike23.in b/src/regress/sbin/ipsecctl/ike23.in new file mode 100644 index 000000000..2b129c8f2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike23.in @@ -0,0 +1,2 @@ +ike from 3ffe::51 to 3ffe::29 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ike23.ok b/src/regress/sbin/ipsecctl/ike23.ok new file mode 100644 index 000000000..00c58f8e0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike23.ok @@ -0,0 +1,24 @@ +C set [Phase 1]:3ffe::29=peer-3ffe::29 force +C set [peer-3ffe::29]:Phase=1 force +C set [peer-3ffe::29]:Address=3ffe::29 force +C set [peer-3ffe::29]:Configuration=phase1-peer-3ffe::29 force +C set [phase1-peer-3ffe::29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::29]:Transforms=AES-SHA-RSA_SIG force +C set [peer-3ffe::29]:ID=id-sharleena.as10.net force +C set [id-sharleena.as10.net]:ID-type=FQDN force +C set [id-sharleena.as10.net]:Name=sharleena.as10.net force +C set [peer-3ffe::29]:Remote-ID=id-faui31o.informatik.uni-erlangen.de force +C set [id-faui31o.informatik.uni-erlangen.de]:ID-type=FQDN force +C set [id-faui31o.informatik.uni-erlangen.de]:Name=faui31o.informatik.uni-erlangen.de force +C set [from-3ffe::51-to-3ffe::29]:Phase=2 force +C set [from-3ffe::51-to-3ffe::29]:ISAKMP-peer=peer-3ffe::29 force +C set [from-3ffe::51-to-3ffe::29]:Configuration=phase2-from-3ffe::51-to-3ffe::29 force +C set [from-3ffe::51-to-3ffe::29]:Local-ID=from-3ffe::51 force +C set [from-3ffe::51-to-3ffe::29]:Remote-ID=to-3ffe::29 force +C set [phase2-from-3ffe::51-to-3ffe::29]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::51-to-3ffe::29]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe::51]:ID-type=IPV6_ADDR force +C set [from-3ffe::51]:Address=3ffe::51 force +C set [to-3ffe::29]:ID-type=IPV6_ADDR force +C set [to-3ffe::29]:Address=3ffe::29 force +C add [Phase 2]:Connections=from-3ffe::51-to-3ffe::29 diff --git a/src/regress/sbin/ipsecctl/ike29.in b/src/regress/sbin/ipsecctl/ike29.in new file mode 100644 index 000000000..d3f6c5b81 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike29.in @@ -0,0 +1 @@ +ike dynamic esp from 3ffe:3::/64 to 3ffe:4::/64 peer 3ffe:2::1 srcid noname.my.domain diff --git a/src/regress/sbin/ipsecctl/ike29.ok b/src/regress/sbin/ipsecctl/ike29.ok new file mode 100644 index 000000000..e0ac9d528 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike29.ok @@ -0,0 +1,25 @@ +C set [General]:Check-interval=30 force +C set [General]:DPD-check-interval=5 force +C set [Phase 1]:3ffe:2::1=peer-3ffe:2::1 force +C set [peer-3ffe:2::1]:Phase=1 force +C set [peer-3ffe:2::1]:Address=3ffe:2::1 force +C set [peer-3ffe:2::1]:Configuration=phase1-peer-3ffe:2::1 force +C set [phase1-peer-3ffe:2::1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe:2::1]:Transforms=AES-SHA-RSA_SIG force +C set [peer-3ffe:2::1]:ID=id-noname.my.domain force +C set [id-noname.my.domain]:ID-type=FQDN force +C set [id-noname.my.domain]:Name=noname.my.domain force +C set [from-3ffe:3::/64-to-3ffe:4::/64]:Phase=2 force +C set [from-3ffe:3::/64-to-3ffe:4::/64]:ISAKMP-peer=peer-3ffe:2::1 force +C set [from-3ffe:3::/64-to-3ffe:4::/64]:Configuration=phase2-from-3ffe:3::/64-to-3ffe:4::/64 force +C set [from-3ffe:3::/64-to-3ffe:4::/64]:Local-ID=from-3ffe:3::/64 force +C set [from-3ffe:3::/64-to-3ffe:4::/64]:Remote-ID=to-3ffe:4::/64 force +C set [phase2-from-3ffe:3::/64-to-3ffe:4::/64]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe:3::/64-to-3ffe:4::/64]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe:3::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [from-3ffe:3::/64]:Network=3ffe:3:: force +C set [from-3ffe:3::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C set [to-3ffe:4::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [to-3ffe:4::/64]:Network=3ffe:4:: force +C set [to-3ffe:4::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C add [Phase 2]:Connections=from-3ffe:3::/64-to-3ffe:4::/64 diff --git a/src/regress/sbin/ipsecctl/ike3.in b/src/regress/sbin/ipsecctl/ike3.in new file mode 100644 index 000000000..4dec756ed --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike3.in @@ -0,0 +1,2 @@ +ike from 131.188.33.51 to 131.188.33.29 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ike3.ok b/src/regress/sbin/ipsecctl/ike3.ok new file mode 100644 index 000000000..0c8bc8eb7 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike3.ok @@ -0,0 +1,24 @@ +C set [Phase 1]:131.188.33.29=peer-131.188.33.29 force +C set [peer-131.188.33.29]:Phase=1 force +C set [peer-131.188.33.29]:Address=131.188.33.29 force +C set [peer-131.188.33.29]:Configuration=phase1-peer-131.188.33.29 force +C set [phase1-peer-131.188.33.29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-131.188.33.29]:Transforms=AES-SHA-RSA_SIG force +C set [peer-131.188.33.29]:ID=id-sharleena.as10.net force +C set [id-sharleena.as10.net]:ID-type=FQDN force +C set [id-sharleena.as10.net]:Name=sharleena.as10.net force +C set [peer-131.188.33.29]:Remote-ID=id-faui31o.informatik.uni-erlangen.de force +C set [id-faui31o.informatik.uni-erlangen.de]:ID-type=FQDN force +C set [id-faui31o.informatik.uni-erlangen.de]:Name=faui31o.informatik.uni-erlangen.de force +C set [from-131.188.33.51-to-131.188.33.29]:Phase=2 force +C set [from-131.188.33.51-to-131.188.33.29]:ISAKMP-peer=peer-131.188.33.29 force +C set [from-131.188.33.51-to-131.188.33.29]:Configuration=phase2-from-131.188.33.51-to-131.188.33.29 force +C set [from-131.188.33.51-to-131.188.33.29]:Local-ID=from-131.188.33.51 force +C set [from-131.188.33.51-to-131.188.33.29]:Remote-ID=to-131.188.33.29 force +C set [phase2-from-131.188.33.51-to-131.188.33.29]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-131.188.33.51-to-131.188.33.29]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-131.188.33.51]:ID-type=IPV4_ADDR force +C set [from-131.188.33.51]:Address=131.188.33.51 force +C set [to-131.188.33.29]:ID-type=IPV4_ADDR force +C set [to-131.188.33.29]:Address=131.188.33.29 force +C add [Phase 2]:Connections=from-131.188.33.51-to-131.188.33.29 diff --git a/src/regress/sbin/ipsecctl/ike30.in b/src/regress/sbin/ipsecctl/ike30.in new file mode 100644 index 000000000..c09a378cd --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike30.in @@ -0,0 +1 @@ +ike esp proto etherip from 3ffe::1 to 3ffe::2 diff --git a/src/regress/sbin/ipsecctl/ike30.ok b/src/regress/sbin/ipsecctl/ike30.ok new file mode 100644 index 000000000..297f4293c --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike30.ok @@ -0,0 +1,20 @@ +C set [Phase 1]:3ffe::2=peer-3ffe::2 force +C set [peer-3ffe::2]:Phase=1 force +C set [peer-3ffe::2]:Address=3ffe::2 force +C set [peer-3ffe::2]:Configuration=phase1-peer-3ffe::2 force +C set [phase1-peer-3ffe::2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::2]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe::1=97-to-3ffe::2=97]:Phase=2 force +C set [from-3ffe::1=97-to-3ffe::2=97]:ISAKMP-peer=peer-3ffe::2 force +C set [from-3ffe::1=97-to-3ffe::2=97]:Configuration=phase2-from-3ffe::1=97-to-3ffe::2=97 force +C set [from-3ffe::1=97-to-3ffe::2=97]:Local-ID=from-3ffe::1=97 force +C set [from-3ffe::1=97-to-3ffe::2=97]:Remote-ID=to-3ffe::2=97 force +C set [phase2-from-3ffe::1=97-to-3ffe::2=97]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::1=97-to-3ffe::2=97]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe::1=97]:ID-type=IPV6_ADDR force +C set [from-3ffe::1=97]:Address=3ffe::1 force +C set [to-3ffe::2=97]:ID-type=IPV6_ADDR force +C set [to-3ffe::2=97]:Address=3ffe::2 force +C set [from-3ffe::1=97]:Protocol=97 force +C set [to-3ffe::2=97]:Protocol=97 force +C add [Phase 2]:Connections=from-3ffe::1=97-to-3ffe::2=97 diff --git a/src/regress/sbin/ipsecctl/ike31.in b/src/regress/sbin/ipsecctl/ike31.in new file mode 100644 index 000000000..c818df63f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike31.in @@ -0,0 +1 @@ +ike from 3ffe:2::1 to any peer 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ike31.ok b/src/regress/sbin/ipsecctl/ike31.ok new file mode 100644 index 000000000..eee8b862e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike31.ok @@ -0,0 +1,19 @@ +C set [Phase 1]:3ffe::1=peer-3ffe::1 force +C set [peer-3ffe::1]:Phase=1 force +C set [peer-3ffe::1]:Address=3ffe::1 force +C set [peer-3ffe::1]:Configuration=phase1-peer-3ffe::1 force +C set [phase1-peer-3ffe::1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::1]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe:2::1-to-::/0]:Phase=2 force +C set [from-3ffe:2::1-to-::/0]:ISAKMP-peer=peer-3ffe::1 force +C set [from-3ffe:2::1-to-::/0]:Configuration=phase2-from-3ffe:2::1-to-::/0 force +C set [from-3ffe:2::1-to-::/0]:Local-ID=from-3ffe:2::1 force +C set [from-3ffe:2::1-to-::/0]:Remote-ID=to-::/0 force +C set [phase2-from-3ffe:2::1-to-::/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe:2::1-to-::/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe:2::1]:ID-type=IPV6_ADDR force +C set [from-3ffe:2::1]:Address=3ffe:2::1 force +C set [to-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [to-::/0]:Network=:: force +C set [to-::/0]:Netmask=:: force +C add [Phase 2]:Connections=from-3ffe:2::1-to-::/0 diff --git a/src/regress/sbin/ipsecctl/ike32.in b/src/regress/sbin/ipsecctl/ike32.in new file mode 100644 index 000000000..0851e70d0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike32.in @@ -0,0 +1 @@ +ike from 1.1.1.1 to 2.2.2.2 quick life 1200 diff --git a/src/regress/sbin/ipsecctl/ike32.ok b/src/regress/sbin/ipsecctl/ike32.ok new file mode 100644 index 000000000..d2512e437 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike32.ok @@ -0,0 +1,19 @@ +C set [General]:Default-phase-2-lifetime=1200 force +C set [Phase 1]:2.2.2.2=peer-2.2.2.2 force +C set [peer-2.2.2.2]:Phase=1 force +C set [peer-2.2.2.2]:Address=2.2.2.2 force +C set [peer-2.2.2.2]:Configuration=phase1-peer-2.2.2.2 force +C set [phase1-peer-2.2.2.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-2.2.2.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-2.2.2.2]:Phase=2 force +C set [from-1.1.1.1-to-2.2.2.2]:ISAKMP-peer=peer-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Configuration=phase2-from-1.1.1.1-to-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-2.2.2.2]:Remote-ID=to-2.2.2.2 force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-2.2.2.2]:ID-type=IPV4_ADDR force +C set [to-2.2.2.2]:Address=2.2.2.2 force +C add [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ike33.in b/src/regress/sbin/ipsecctl/ike33.in new file mode 100644 index 000000000..10aff9739 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike33.in @@ -0,0 +1 @@ +ike from 1.1.1.1 to 2.2.2.2 main life 3600 diff --git a/src/regress/sbin/ipsecctl/ike33.ok b/src/regress/sbin/ipsecctl/ike33.ok new file mode 100644 index 000000000..a26b9bbec --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike33.ok @@ -0,0 +1,19 @@ +C set [General]:Default-phase-1-lifetime=3600 force +C set [Phase 1]:2.2.2.2=peer-2.2.2.2 force +C set [peer-2.2.2.2]:Phase=1 force +C set [peer-2.2.2.2]:Address=2.2.2.2 force +C set [peer-2.2.2.2]:Configuration=phase1-peer-2.2.2.2 force +C set [phase1-peer-2.2.2.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-2.2.2.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-2.2.2.2]:Phase=2 force +C set [from-1.1.1.1-to-2.2.2.2]:ISAKMP-peer=peer-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Configuration=phase2-from-1.1.1.1-to-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-2.2.2.2]:Remote-ID=to-2.2.2.2 force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-2.2.2.2]:ID-type=IPV4_ADDR force +C set [to-2.2.2.2]:Address=2.2.2.2 force +C add [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ike34.in b/src/regress/sbin/ipsecctl/ike34.in new file mode 100644 index 000000000..60ded09d6 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike34.in @@ -0,0 +1 @@ +ike from 3ffe::1/24 to 3ffe:2::/24 peer 1.2.3.4 diff --git a/src/regress/sbin/ipsecctl/ike34.ok b/src/regress/sbin/ipsecctl/ike34.ok new file mode 100644 index 000000000..d235efec2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike34.ok @@ -0,0 +1,20 @@ +C set [Phase 1]:1.2.3.4=peer-1.2.3.4 force +C set [peer-1.2.3.4]:Phase=1 force +C set [peer-1.2.3.4]:Address=1.2.3.4 force +C set [peer-1.2.3.4]:Configuration=phase1-peer-1.2.3.4 force +C set [phase1-peer-1.2.3.4]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.2.3.4]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe::1/24-to-3ffe:2::/24]:Phase=2 force +C set [from-3ffe::1/24-to-3ffe:2::/24]:ISAKMP-peer=peer-1.2.3.4 force +C set [from-3ffe::1/24-to-3ffe:2::/24]:Configuration=phase2-from-3ffe::1/24-to-3ffe:2::/24 force +C set [from-3ffe::1/24-to-3ffe:2::/24]:Local-ID=from-3ffe::1/24 force +C set [from-3ffe::1/24-to-3ffe:2::/24]:Remote-ID=to-3ffe:2::/24 force +C set [phase2-from-3ffe::1/24-to-3ffe:2::/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::1/24-to-3ffe:2::/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe::1/24]:ID-type=IPV6_ADDR_SUBNET force +C set [from-3ffe::1/24]:Network=3ffe::1 force +C set [from-3ffe::1/24]:Netmask=ffff:ff00:: force +C set [to-3ffe:2::/24]:ID-type=IPV6_ADDR_SUBNET force +C set [to-3ffe:2::/24]:Network=3ffe:2:: force +C set [to-3ffe:2::/24]:Netmask=ffff:ff00:: force +C add [Phase 2]:Connections=from-3ffe::1/24-to-3ffe:2::/24 diff --git a/src/regress/sbin/ipsecctl/ike35.in b/src/regress/sbin/ipsecctl/ike35.in new file mode 100644 index 000000000..fbf177e5f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike35.in @@ -0,0 +1 @@ +ike from 3ffe:2::/24 to 3ffe::1/24 peer 1.2.3.4 diff --git a/src/regress/sbin/ipsecctl/ike35.ok b/src/regress/sbin/ipsecctl/ike35.ok new file mode 100644 index 000000000..d74993925 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike35.ok @@ -0,0 +1,20 @@ +C set [Phase 1]:1.2.3.4=peer-1.2.3.4 force +C set [peer-1.2.3.4]:Phase=1 force +C set [peer-1.2.3.4]:Address=1.2.3.4 force +C set [peer-1.2.3.4]:Configuration=phase1-peer-1.2.3.4 force +C set [phase1-peer-1.2.3.4]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.2.3.4]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe:2::/24-to-3ffe::1/24]:Phase=2 force +C set [from-3ffe:2::/24-to-3ffe::1/24]:ISAKMP-peer=peer-1.2.3.4 force +C set [from-3ffe:2::/24-to-3ffe::1/24]:Configuration=phase2-from-3ffe:2::/24-to-3ffe::1/24 force +C set [from-3ffe:2::/24-to-3ffe::1/24]:Local-ID=from-3ffe:2::/24 force +C set [from-3ffe:2::/24-to-3ffe::1/24]:Remote-ID=to-3ffe::1/24 force +C set [phase2-from-3ffe:2::/24-to-3ffe::1/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe:2::/24-to-3ffe::1/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe:2::/24]:ID-type=IPV6_ADDR_SUBNET force +C set [from-3ffe:2::/24]:Network=3ffe:2:: force +C set [from-3ffe:2::/24]:Netmask=ffff:ff00:: force +C set [to-3ffe::1/24]:ID-type=IPV6_ADDR_SUBNET force +C set [to-3ffe::1/24]:Network=3ffe::1 force +C set [to-3ffe::1/24]:Netmask=ffff:ff00:: force +C add [Phase 2]:Connections=from-3ffe:2::/24-to-3ffe::1/24 diff --git a/src/regress/sbin/ipsecctl/ike36.in b/src/regress/sbin/ipsecctl/ike36.in new file mode 100644 index 000000000..ae00f2472 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike36.in @@ -0,0 +1 @@ +ike from 3ffe::3 to 3ffe::4 peer 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ike36.ok b/src/regress/sbin/ipsecctl/ike36.ok new file mode 100644 index 000000000..625c96508 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike36.ok @@ -0,0 +1,18 @@ +C set [Phase 1]:3ffe::1=peer-3ffe::1 force +C set [peer-3ffe::1]:Phase=1 force +C set [peer-3ffe::1]:Address=3ffe::1 force +C set [peer-3ffe::1]:Configuration=phase1-peer-3ffe::1 force +C set [phase1-peer-3ffe::1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::1]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe::3-to-3ffe::4]:Phase=2 force +C set [from-3ffe::3-to-3ffe::4]:ISAKMP-peer=peer-3ffe::1 force +C set [from-3ffe::3-to-3ffe::4]:Configuration=phase2-from-3ffe::3-to-3ffe::4 force +C set [from-3ffe::3-to-3ffe::4]:Local-ID=from-3ffe::3 force +C set [from-3ffe::3-to-3ffe::4]:Remote-ID=to-3ffe::4 force +C set [phase2-from-3ffe::3-to-3ffe::4]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::3-to-3ffe::4]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe::3]:ID-type=IPV6_ADDR force +C set [from-3ffe::3]:Address=3ffe::3 force +C set [to-3ffe::4]:ID-type=IPV6_ADDR force +C set [to-3ffe::4]:Address=3ffe::4 force +C add [Phase 2]:Connections=from-3ffe::3-to-3ffe::4 diff --git a/src/regress/sbin/ipsecctl/ike37.in b/src/regress/sbin/ipsecctl/ike37.in new file mode 100644 index 000000000..dad86107c --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike37.in @@ -0,0 +1,2 @@ +ike from 3ffe:1::/64 to 3ffe:2::/64 peer 3ffe::1 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ike37.ok b/src/regress/sbin/ipsecctl/ike37.ok new file mode 100644 index 000000000..3a6fac150 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike37.ok @@ -0,0 +1,26 @@ +C set [Phase 1]:3ffe::1=peer-3ffe::1 force +C set [peer-3ffe::1]:Phase=1 force +C set [peer-3ffe::1]:Address=3ffe::1 force +C set [peer-3ffe::1]:Configuration=phase1-peer-3ffe::1 force +C set [phase1-peer-3ffe::1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::1]:Transforms=AES-SHA-RSA_SIG force +C set [peer-3ffe::1]:ID=id-sharleena.as10.net force +C set [id-sharleena.as10.net]:ID-type=FQDN force +C set [id-sharleena.as10.net]:Name=sharleena.as10.net force +C set [peer-3ffe::1]:Remote-ID=id-faui31o.informatik.uni-erlangen.de force +C set [id-faui31o.informatik.uni-erlangen.de]:ID-type=FQDN force +C set [id-faui31o.informatik.uni-erlangen.de]:Name=faui31o.informatik.uni-erlangen.de force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Phase=2 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:ISAKMP-peer=peer-3ffe::1 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Configuration=phase2-from-3ffe:1::/64-to-3ffe:2::/64 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Local-ID=from-3ffe:1::/64 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Remote-ID=to-3ffe:2::/64 force +C set [phase2-from-3ffe:1::/64-to-3ffe:2::/64]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe:1::/64-to-3ffe:2::/64]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe:1::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [from-3ffe:1::/64]:Network=3ffe:1:: force +C set [from-3ffe:1::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C set [to-3ffe:2::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [to-3ffe:2::/64]:Network=3ffe:2:: force +C set [to-3ffe:2::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C add [Phase 2]:Connections=from-3ffe:1::/64-to-3ffe:2::/64 diff --git a/src/regress/sbin/ipsecctl/ike38.in b/src/regress/sbin/ipsecctl/ike38.in new file mode 100644 index 000000000..2f0968bc0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike38.in @@ -0,0 +1,9 @@ +ike esp from 3ffe:1::/64 to 3ffe:2::/64 peer 3ffe::29 \ + main auth hmac-sha1 enc 3des group modp3072 \ + quick auth hmac-sha1 enc 3des group modp3072 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de +ike esp from 3ffe::51 to 3ffe::29 \ + main auth hmac-sha1 enc aes group modp3072 \ + quick auth hmac-sha2-256 enc aes group modp3072 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de + diff --git a/src/regress/sbin/ipsecctl/ike38.ok b/src/regress/sbin/ipsecctl/ike38.ok new file mode 100644 index 000000000..3ff4fa5a0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike38.ok @@ -0,0 +1,50 @@ +C set [Phase 1]:3ffe::29=peer-3ffe::29 force +C set [peer-3ffe::29]:Phase=1 force +C set [peer-3ffe::29]:Address=3ffe::29 force +C set [peer-3ffe::29]:Configuration=phase1-peer-3ffe::29 force +C set [phase1-peer-3ffe::29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::29]:Transforms=3DES-SHA-GRP15-RSA_SIG force +C set [peer-3ffe::29]:ID=id-sharleena.as10.net force +C set [id-sharleena.as10.net]:ID-type=FQDN force +C set [id-sharleena.as10.net]:Name=sharleena.as10.net force +C set [peer-3ffe::29]:Remote-ID=id-faui31o.informatik.uni-erlangen.de force +C set [id-faui31o.informatik.uni-erlangen.de]:ID-type=FQDN force +C set [id-faui31o.informatik.uni-erlangen.de]:Name=faui31o.informatik.uni-erlangen.de force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Phase=2 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:ISAKMP-peer=peer-3ffe::29 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Configuration=phase2-from-3ffe:1::/64-to-3ffe:2::/64 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Local-ID=from-3ffe:1::/64 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Remote-ID=to-3ffe:2::/64 force +C set [phase2-from-3ffe:1::/64-to-3ffe:2::/64]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe:1::/64-to-3ffe:2::/64]:Suites=QM-ESP-3DES-SHA-PFS-GRP15-SUITE force +C set [from-3ffe:1::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [from-3ffe:1::/64]:Network=3ffe:1:: force +C set [from-3ffe:1::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C set [to-3ffe:2::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [to-3ffe:2::/64]:Network=3ffe:2:: force +C set [to-3ffe:2::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C add [Phase 2]:Connections=from-3ffe:1::/64-to-3ffe:2::/64 +C set [Phase 1]:3ffe::29=peer-3ffe::29 force +C set [peer-3ffe::29]:Phase=1 force +C set [peer-3ffe::29]:Address=3ffe::29 force +C set [peer-3ffe::29]:Configuration=phase1-peer-3ffe::29 force +C set [phase1-peer-3ffe::29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::29]:Transforms=AES-SHA-GRP15-RSA_SIG force +C set [peer-3ffe::29]:ID=id-sharleena.as10.net force +C set [id-sharleena.as10.net]:ID-type=FQDN force +C set [id-sharleena.as10.net]:Name=sharleena.as10.net force +C set [peer-3ffe::29]:Remote-ID=id-faui31o.informatik.uni-erlangen.de force +C set [id-faui31o.informatik.uni-erlangen.de]:ID-type=FQDN force +C set [id-faui31o.informatik.uni-erlangen.de]:Name=faui31o.informatik.uni-erlangen.de force +C set [from-3ffe::51-to-3ffe::29]:Phase=2 force +C set [from-3ffe::51-to-3ffe::29]:ISAKMP-peer=peer-3ffe::29 force +C set [from-3ffe::51-to-3ffe::29]:Configuration=phase2-from-3ffe::51-to-3ffe::29 force +C set [from-3ffe::51-to-3ffe::29]:Local-ID=from-3ffe::51 force +C set [from-3ffe::51-to-3ffe::29]:Remote-ID=to-3ffe::29 force +C set [phase2-from-3ffe::51-to-3ffe::29]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::51-to-3ffe::29]:Suites=QM-ESP-AES-SHA2-256-PFS-GRP15-SUITE force +C set [from-3ffe::51]:ID-type=IPV6_ADDR force +C set [from-3ffe::51]:Address=3ffe::51 force +C set [to-3ffe::29]:ID-type=IPV6_ADDR force +C set [to-3ffe::29]:Address=3ffe::29 force +C add [Phase 2]:Connections=from-3ffe::51-to-3ffe::29 diff --git a/src/regress/sbin/ipsecctl/ike39.in b/src/regress/sbin/ipsecctl/ike39.in new file mode 100644 index 000000000..b1c9c036f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike39.in @@ -0,0 +1,2 @@ +ike from 3ffe:1::/64 to 3ffe:2::/64 peer 3ffe::29 +ike from 3ffe::51 to 3ffe::29 diff --git a/src/regress/sbin/ipsecctl/ike39.ok b/src/regress/sbin/ipsecctl/ike39.ok new file mode 100644 index 000000000..8018391ca --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike39.ok @@ -0,0 +1,38 @@ +C set [Phase 1]:3ffe::29=peer-3ffe::29 force +C set [peer-3ffe::29]:Phase=1 force +C set [peer-3ffe::29]:Address=3ffe::29 force +C set [peer-3ffe::29]:Configuration=phase1-peer-3ffe::29 force +C set [phase1-peer-3ffe::29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::29]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Phase=2 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:ISAKMP-peer=peer-3ffe::29 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Configuration=phase2-from-3ffe:1::/64-to-3ffe:2::/64 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Local-ID=from-3ffe:1::/64 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Remote-ID=to-3ffe:2::/64 force +C set [phase2-from-3ffe:1::/64-to-3ffe:2::/64]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe:1::/64-to-3ffe:2::/64]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe:1::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [from-3ffe:1::/64]:Network=3ffe:1:: force +C set [from-3ffe:1::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C set [to-3ffe:2::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [to-3ffe:2::/64]:Network=3ffe:2:: force +C set [to-3ffe:2::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C add [Phase 2]:Connections=from-3ffe:1::/64-to-3ffe:2::/64 +C set [Phase 1]:3ffe::29=peer-3ffe::29 force +C set [peer-3ffe::29]:Phase=1 force +C set [peer-3ffe::29]:Address=3ffe::29 force +C set [peer-3ffe::29]:Configuration=phase1-peer-3ffe::29 force +C set [phase1-peer-3ffe::29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::29]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe::51-to-3ffe::29]:Phase=2 force +C set [from-3ffe::51-to-3ffe::29]:ISAKMP-peer=peer-3ffe::29 force +C set [from-3ffe::51-to-3ffe::29]:Configuration=phase2-from-3ffe::51-to-3ffe::29 force +C set [from-3ffe::51-to-3ffe::29]:Local-ID=from-3ffe::51 force +C set [from-3ffe::51-to-3ffe::29]:Remote-ID=to-3ffe::29 force +C set [phase2-from-3ffe::51-to-3ffe::29]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::51-to-3ffe::29]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe::51]:ID-type=IPV6_ADDR force +C set [from-3ffe::51]:Address=3ffe::51 force +C set [to-3ffe::29]:ID-type=IPV6_ADDR force +C set [to-3ffe::29]:Address=3ffe::29 force +C add [Phase 2]:Connections=from-3ffe::51-to-3ffe::29 diff --git a/src/regress/sbin/ipsecctl/ike4.in b/src/regress/sbin/ipsecctl/ike4.in new file mode 100644 index 000000000..3bd0446aa --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike4.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 131.188.33.29 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ike4.ok b/src/regress/sbin/ipsecctl/ike4.ok new file mode 100644 index 000000000..17ab6560f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike4.ok @@ -0,0 +1,26 @@ +C set [Phase 1]:131.188.33.29=peer-131.188.33.29 force +C set [peer-131.188.33.29]:Phase=1 force +C set [peer-131.188.33.29]:Address=131.188.33.29 force +C set [peer-131.188.33.29]:Configuration=phase1-peer-131.188.33.29 force +C set [phase1-peer-131.188.33.29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-131.188.33.29]:Transforms=AES-SHA-RSA_SIG force +C set [peer-131.188.33.29]:ID=id-sharleena.as10.net force +C set [id-sharleena.as10.net]:ID-type=FQDN force +C set [id-sharleena.as10.net]:Name=sharleena.as10.net force +C set [peer-131.188.33.29]:Remote-ID=id-faui31o.informatik.uni-erlangen.de force +C set [id-faui31o.informatik.uni-erlangen.de]:ID-type=FQDN force +C set [id-faui31o.informatik.uni-erlangen.de]:Name=faui31o.informatik.uni-erlangen.de force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-131.188.33.29 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 diff --git a/src/regress/sbin/ipsecctl/ike40.in b/src/regress/sbin/ipsecctl/ike40.in new file mode 100644 index 000000000..a9d288e7b --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike40.in @@ -0,0 +1,2 @@ +ike passive from 3ffe:1::/64 to 3ffe:2::/64 peer 3ffe::51 +ike passive from 3ffe::29 to 3ffe::51 diff --git a/src/regress/sbin/ipsecctl/ike40.ok b/src/regress/sbin/ipsecctl/ike40.ok new file mode 100644 index 000000000..9b283cab4 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike40.ok @@ -0,0 +1,38 @@ +C set [Phase 1]:3ffe::51=peer-3ffe::51 force +C set [peer-3ffe::51]:Phase=1 force +C set [peer-3ffe::51]:Address=3ffe::51 force +C set [peer-3ffe::51]:Configuration=phase1-peer-3ffe::51 force +C set [phase1-peer-3ffe::51]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::51]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Phase=2 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:ISAKMP-peer=peer-3ffe::51 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Configuration=phase2-from-3ffe:1::/64-to-3ffe:2::/64 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Local-ID=from-3ffe:1::/64 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Remote-ID=to-3ffe:2::/64 force +C set [phase2-from-3ffe:1::/64-to-3ffe:2::/64]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe:1::/64-to-3ffe:2::/64]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe:1::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [from-3ffe:1::/64]:Network=3ffe:1:: force +C set [from-3ffe:1::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C set [to-3ffe:2::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [to-3ffe:2::/64]:Network=3ffe:2:: force +C set [to-3ffe:2::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C add [Phase 2]:Passive-Connections=from-3ffe:1::/64-to-3ffe:2::/64 +C set [Phase 1]:3ffe::51=peer-3ffe::51 force +C set [peer-3ffe::51]:Phase=1 force +C set [peer-3ffe::51]:Address=3ffe::51 force +C set [peer-3ffe::51]:Configuration=phase1-peer-3ffe::51 force +C set [phase1-peer-3ffe::51]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::51]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe::29-to-3ffe::51]:Phase=2 force +C set [from-3ffe::29-to-3ffe::51]:ISAKMP-peer=peer-3ffe::51 force +C set [from-3ffe::29-to-3ffe::51]:Configuration=phase2-from-3ffe::29-to-3ffe::51 force +C set [from-3ffe::29-to-3ffe::51]:Local-ID=from-3ffe::29 force +C set [from-3ffe::29-to-3ffe::51]:Remote-ID=to-3ffe::51 force +C set [phase2-from-3ffe::29-to-3ffe::51]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::29-to-3ffe::51]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe::29]:ID-type=IPV6_ADDR force +C set [from-3ffe::29]:Address=3ffe::29 force +C set [to-3ffe::51]:ID-type=IPV6_ADDR force +C set [to-3ffe::51]:Address=3ffe::51 force +C add [Phase 2]:Passive-Connections=from-3ffe::29-to-3ffe::51 diff --git a/src/regress/sbin/ipsecctl/ike41.in b/src/regress/sbin/ipsecctl/ike41.in new file mode 100644 index 000000000..ae225eb5e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike41.in @@ -0,0 +1 @@ +ike from 1.1.1.1 to 2.2.2.2 main life 3600 quick life 1200 diff --git a/src/regress/sbin/ipsecctl/ike41.ok b/src/regress/sbin/ipsecctl/ike41.ok new file mode 100644 index 000000000..d69595c4a --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike41.ok @@ -0,0 +1,20 @@ +C set [General]:Default-phase-1-lifetime=3600 force +C set [General]:Default-phase-2-lifetime=1200 force +C set [Phase 1]:2.2.2.2=peer-2.2.2.2 force +C set [peer-2.2.2.2]:Phase=1 force +C set [peer-2.2.2.2]:Address=2.2.2.2 force +C set [peer-2.2.2.2]:Configuration=phase1-peer-2.2.2.2 force +C set [phase1-peer-2.2.2.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-2.2.2.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-2.2.2.2]:Phase=2 force +C set [from-1.1.1.1-to-2.2.2.2]:ISAKMP-peer=peer-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Configuration=phase2-from-1.1.1.1-to-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-2.2.2.2]:Remote-ID=to-2.2.2.2 force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-2.2.2.2]:ID-type=IPV4_ADDR force +C set [to-2.2.2.2]:Address=2.2.2.2 force +C add [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ike42.in b/src/regress/sbin/ipsecctl/ike42.in new file mode 100644 index 000000000..5fd64cf0a --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike42.in @@ -0,0 +1 @@ +ike esp proto udp from 1.1.1.1 port ntp to 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ike42.ok b/src/regress/sbin/ipsecctl/ike42.ok new file mode 100644 index 000000000..b385bd568 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike42.ok @@ -0,0 +1,21 @@ +C set [Phase 1]:2.2.2.2=peer-2.2.2.2 force +C set [peer-2.2.2.2]:Phase=1 force +C set [peer-2.2.2.2]:Address=2.2.2.2 force +C set [peer-2.2.2.2]:Configuration=phase1-peer-2.2.2.2 force +C set [phase1-peer-2.2.2.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-2.2.2.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1=17:123-to-2.2.2.2=17]:Phase=2 force +C set [from-1.1.1.1=17:123-to-2.2.2.2=17]:ISAKMP-peer=peer-2.2.2.2 force +C set [from-1.1.1.1=17:123-to-2.2.2.2=17]:Configuration=phase2-from-1.1.1.1=17:123-to-2.2.2.2=17 force +C set [from-1.1.1.1=17:123-to-2.2.2.2=17]:Local-ID=from-1.1.1.1=17:123 force +C set [from-1.1.1.1=17:123-to-2.2.2.2=17]:Remote-ID=to-2.2.2.2=17 force +C set [phase2-from-1.1.1.1=17:123-to-2.2.2.2=17]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1=17:123-to-2.2.2.2=17]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1=17:123]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1=17:123]:Address=1.1.1.1 force +C set [to-2.2.2.2=17]:ID-type=IPV4_ADDR force +C set [to-2.2.2.2=17]:Address=2.2.2.2 force +C set [from-1.1.1.1=17:123]:Protocol=17 force +C set [to-2.2.2.2=17]:Protocol=17 force +C set [from-1.1.1.1=17:123]:Port=123 force +C add [Phase 2]:Connections=from-1.1.1.1=17:123-to-2.2.2.2=17 diff --git a/src/regress/sbin/ipsecctl/ike43.in b/src/regress/sbin/ipsecctl/ike43.in new file mode 100644 index 000000000..509ab0c07 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike43.in @@ -0,0 +1 @@ +ike esp proto tcp from 3ffe::1 port 2022 to 3ffe::2 port ssh diff --git a/src/regress/sbin/ipsecctl/ike43.ok b/src/regress/sbin/ipsecctl/ike43.ok new file mode 100644 index 000000000..faabc9ff6 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike43.ok @@ -0,0 +1,22 @@ +C set [Phase 1]:3ffe::2=peer-3ffe::2 force +C set [peer-3ffe::2]:Phase=1 force +C set [peer-3ffe::2]:Address=3ffe::2 force +C set [peer-3ffe::2]:Configuration=phase1-peer-3ffe::2 force +C set [phase1-peer-3ffe::2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::2]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe::1=6:2022-to-3ffe::2=6:22]:Phase=2 force +C set [from-3ffe::1=6:2022-to-3ffe::2=6:22]:ISAKMP-peer=peer-3ffe::2 force +C set [from-3ffe::1=6:2022-to-3ffe::2=6:22]:Configuration=phase2-from-3ffe::1=6:2022-to-3ffe::2=6:22 force +C set [from-3ffe::1=6:2022-to-3ffe::2=6:22]:Local-ID=from-3ffe::1=6:2022 force +C set [from-3ffe::1=6:2022-to-3ffe::2=6:22]:Remote-ID=to-3ffe::2=6:22 force +C set [phase2-from-3ffe::1=6:2022-to-3ffe::2=6:22]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::1=6:2022-to-3ffe::2=6:22]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe::1=6:2022]:ID-type=IPV6_ADDR force +C set [from-3ffe::1=6:2022]:Address=3ffe::1 force +C set [to-3ffe::2=6:22]:ID-type=IPV6_ADDR force +C set [to-3ffe::2=6:22]:Address=3ffe::2 force +C set [from-3ffe::1=6:2022]:Protocol=6 force +C set [to-3ffe::2=6:22]:Protocol=6 force +C set [from-3ffe::1=6:2022]:Port=2022 force +C set [to-3ffe::2=6:22]:Port=22 force +C add [Phase 2]:Connections=from-3ffe::1=6:2022-to-3ffe::2=6:22 diff --git a/src/regress/sbin/ipsecctl/ike46.in b/src/regress/sbin/ipsecctl/ike46.in new file mode 100644 index 000000000..e3f90f6c0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike46.in @@ -0,0 +1,2 @@ +ike esp tunnel from 1.1.1.1 to 2.2.2.2 +ike esp transport from 1.1.1.1 to 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ike46.ok b/src/regress/sbin/ipsecctl/ike46.ok new file mode 100644 index 000000000..c52acd23f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike46.ok @@ -0,0 +1,36 @@ +C set [Phase 1]:2.2.2.2=peer-2.2.2.2 force +C set [peer-2.2.2.2]:Phase=1 force +C set [peer-2.2.2.2]:Address=2.2.2.2 force +C set [peer-2.2.2.2]:Configuration=phase1-peer-2.2.2.2 force +C set [phase1-peer-2.2.2.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-2.2.2.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-2.2.2.2]:Phase=2 force +C set [from-1.1.1.1-to-2.2.2.2]:ISAKMP-peer=peer-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Configuration=phase2-from-1.1.1.1-to-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-2.2.2.2]:Remote-ID=to-2.2.2.2 force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-2.2.2.2]:ID-type=IPV4_ADDR force +C set [to-2.2.2.2]:Address=2.2.2.2 force +C add [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 +C set [Phase 1]:2.2.2.2=peer-2.2.2.2 force +C set [peer-2.2.2.2]:Phase=1 force +C set [peer-2.2.2.2]:Address=2.2.2.2 force +C set [peer-2.2.2.2]:Configuration=phase1-peer-2.2.2.2 force +C set [phase1-peer-2.2.2.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-2.2.2.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-2.2.2.2]:Phase=2 force +C set [from-1.1.1.1-to-2.2.2.2]:ISAKMP-peer=peer-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Configuration=phase2-from-1.1.1.1-to-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-2.2.2.2]:Remote-ID=to-2.2.2.2 force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:Suites=QM-ESP-TRP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-2.2.2.2]:ID-type=IPV4_ADDR force +C set [to-2.2.2.2]:Address=2.2.2.2 force +C add [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ike47.in b/src/regress/sbin/ipsecctl/ike47.in new file mode 100644 index 000000000..6d12bf6a9 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike47.in @@ -0,0 +1 @@ +ike from any to any diff --git a/src/regress/sbin/ipsecctl/ike47.ok b/src/regress/sbin/ipsecctl/ike47.ok new file mode 100644 index 000000000..8d13650a9 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike47.ok @@ -0,0 +1,38 @@ +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA-RSA_SIG force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Phase=2 force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:ISAKMP-peer=peer-default force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Configuration=phase2-from-0.0.0.0/0-to-0.0.0.0/0 force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Local-ID=from-0.0.0.0/0 force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-0.0.0.0/0-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-0.0.0.0/0-to-0.0.0.0/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [from-0.0.0.0/0]:Network=0.0.0.0 force +C set [from-0.0.0.0/0]:Netmask=0.0.0.0 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-0.0.0.0/0-to-0.0.0.0/0 +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA-RSA_SIG force +C set [from-::/0-to-::/0]:Phase=2 force +C set [from-::/0-to-::/0]:ISAKMP-peer=peer-default force +C set [from-::/0-to-::/0]:Configuration=phase2-from-::/0-to-::/0 force +C set [from-::/0-to-::/0]:Local-ID=from-::/0 force +C set [from-::/0-to-::/0]:Remote-ID=to-::/0 force +C set [phase2-from-::/0-to-::/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-::/0-to-::/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [from-::/0]:Network=:: force +C set [from-::/0]:Netmask=:: force +C set [to-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [to-::/0]:Network=:: force +C set [to-::/0]:Netmask=:: force +C add [Phase 2]:Connections=from-::/0-to-::/0 diff --git a/src/regress/sbin/ipsecctl/ike48.in b/src/regress/sbin/ipsecctl/ike48.in new file mode 100644 index 000000000..3ff035fb4 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike48.in @@ -0,0 +1 @@ +ike from any to any psk mekmitasdigoat diff --git a/src/regress/sbin/ipsecctl/ike48.ok b/src/regress/sbin/ipsecctl/ike48.ok new file mode 100644 index 000000000..493ddc598 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike48.ok @@ -0,0 +1,40 @@ +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Authentication=mekmitasdigoat force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Phase=2 force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:ISAKMP-peer=peer-default force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Configuration=phase2-from-0.0.0.0/0-to-0.0.0.0/0 force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Local-ID=from-0.0.0.0/0 force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-0.0.0.0/0-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-0.0.0.0/0-to-0.0.0.0/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [from-0.0.0.0/0]:Network=0.0.0.0 force +C set [from-0.0.0.0/0]:Netmask=0.0.0.0 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-0.0.0.0/0-to-0.0.0.0/0 +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Authentication=mekmitasdigoat force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA force +C set [from-::/0-to-::/0]:Phase=2 force +C set [from-::/0-to-::/0]:ISAKMP-peer=peer-default force +C set [from-::/0-to-::/0]:Configuration=phase2-from-::/0-to-::/0 force +C set [from-::/0-to-::/0]:Local-ID=from-::/0 force +C set [from-::/0-to-::/0]:Remote-ID=to-::/0 force +C set [phase2-from-::/0-to-::/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-::/0-to-::/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [from-::/0]:Network=:: force +C set [from-::/0]:Netmask=:: force +C set [to-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [to-::/0]:Network=:: force +C set [to-::/0]:Netmask=:: force +C add [Phase 2]:Connections=from-::/0-to-::/0 diff --git a/src/regress/sbin/ipsecctl/ike49.in b/src/regress/sbin/ipsecctl/ike49.in new file mode 100644 index 000000000..5a53d3bf8 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike49.in @@ -0,0 +1 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 psk mekmitasdigoat diff --git a/src/regress/sbin/ipsecctl/ike49.ok b/src/regress/sbin/ipsecctl/ike49.ok new file mode 100644 index 000000000..cce2e81d5 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike49.ok @@ -0,0 +1,20 @@ +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Authentication=mekmitasdigoat force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-default force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 diff --git a/src/regress/sbin/ipsecctl/ike5.in b/src/regress/sbin/ipsecctl/ike5.in new file mode 100644 index 000000000..7a4c38a5d --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike5.in @@ -0,0 +1,8 @@ +ike esp from 10.1.1.0/24 to 10.1.2.0/24 peer 131.188.33.29 \ + main auth hmac-sha1 enc 3des group modp3072 \ + quick auth hmac-sha1 enc 3des group modp3072 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de +ike esp from 131.188.33.51 to 131.188.33.29 \ + main auth hmac-sha1 enc aes group modp3072 \ + quick auth hmac-sha2-256 enc aes group modp3072 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ike5.ok b/src/regress/sbin/ipsecctl/ike5.ok new file mode 100644 index 000000000..3cd131f1c --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike5.ok @@ -0,0 +1,50 @@ +C set [Phase 1]:131.188.33.29=peer-131.188.33.29 force +C set [peer-131.188.33.29]:Phase=1 force +C set [peer-131.188.33.29]:Address=131.188.33.29 force +C set [peer-131.188.33.29]:Configuration=phase1-peer-131.188.33.29 force +C set [phase1-peer-131.188.33.29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-131.188.33.29]:Transforms=3DES-SHA-GRP15-RSA_SIG force +C set [peer-131.188.33.29]:ID=id-sharleena.as10.net force +C set [id-sharleena.as10.net]:ID-type=FQDN force +C set [id-sharleena.as10.net]:Name=sharleena.as10.net force +C set [peer-131.188.33.29]:Remote-ID=id-faui31o.informatik.uni-erlangen.de force +C set [id-faui31o.informatik.uni-erlangen.de]:ID-type=FQDN force +C set [id-faui31o.informatik.uni-erlangen.de]:Name=faui31o.informatik.uni-erlangen.de force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-131.188.33.29 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-3DES-SHA-PFS-GRP15-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 +C set [Phase 1]:131.188.33.29=peer-131.188.33.29 force +C set [peer-131.188.33.29]:Phase=1 force +C set [peer-131.188.33.29]:Address=131.188.33.29 force +C set [peer-131.188.33.29]:Configuration=phase1-peer-131.188.33.29 force +C set [phase1-peer-131.188.33.29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-131.188.33.29]:Transforms=AES-SHA-GRP15-RSA_SIG force +C set [peer-131.188.33.29]:ID=id-sharleena.as10.net force +C set [id-sharleena.as10.net]:ID-type=FQDN force +C set [id-sharleena.as10.net]:Name=sharleena.as10.net force +C set [peer-131.188.33.29]:Remote-ID=id-faui31o.informatik.uni-erlangen.de force +C set [id-faui31o.informatik.uni-erlangen.de]:ID-type=FQDN force +C set [id-faui31o.informatik.uni-erlangen.de]:Name=faui31o.informatik.uni-erlangen.de force +C set [from-131.188.33.51-to-131.188.33.29]:Phase=2 force +C set [from-131.188.33.51-to-131.188.33.29]:ISAKMP-peer=peer-131.188.33.29 force +C set [from-131.188.33.51-to-131.188.33.29]:Configuration=phase2-from-131.188.33.51-to-131.188.33.29 force +C set [from-131.188.33.51-to-131.188.33.29]:Local-ID=from-131.188.33.51 force +C set [from-131.188.33.51-to-131.188.33.29]:Remote-ID=to-131.188.33.29 force +C set [phase2-from-131.188.33.51-to-131.188.33.29]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-131.188.33.51-to-131.188.33.29]:Suites=QM-ESP-AES-SHA2-256-PFS-GRP15-SUITE force +C set [from-131.188.33.51]:ID-type=IPV4_ADDR force +C set [from-131.188.33.51]:Address=131.188.33.51 force +C set [to-131.188.33.29]:ID-type=IPV4_ADDR force +C set [to-131.188.33.29]:Address=131.188.33.29 force +C add [Phase 2]:Connections=from-131.188.33.51-to-131.188.33.29 diff --git a/src/regress/sbin/ipsecctl/ike50.in b/src/regress/sbin/ipsecctl/ike50.in new file mode 100644 index 000000000..7dd1d6e45 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike50.in @@ -0,0 +1 @@ +ike from 10.1.1.0/24 to 10.2.2.0/24 local 1.1.1.1 diff --git a/src/regress/sbin/ipsecctl/ike50.ok b/src/regress/sbin/ipsecctl/ike50.ok new file mode 100644 index 000000000..d18632cc3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike50.ok @@ -0,0 +1,20 @@ +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Local-address=1.1.1.1 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA-RSA_SIG force +C set [from-10.1.1.0/24-to-10.2.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.2.2.0/24]:ISAKMP-peer=peer-default force +C set [from-10.1.1.0/24-to-10.2.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.2.2.0/24 force +C set [from-10.1.1.0/24-to-10.2.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.2.2.0/24]:Remote-ID=to-10.2.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.2.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.2.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.2.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.2.2.0/24]:Network=10.2.2.0 force +C set [to-10.2.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.2.2.0/24 diff --git a/src/regress/sbin/ipsecctl/ike51.in b/src/regress/sbin/ipsecctl/ike51.in new file mode 100644 index 000000000..cdf8f2e69 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike51.in @@ -0,0 +1 @@ +ike from 3ffe::1/24 to 3ffe:2::/24 psk mekmitasdigoat diff --git a/src/regress/sbin/ipsecctl/ike51.ok b/src/regress/sbin/ipsecctl/ike51.ok new file mode 100644 index 000000000..7748a47ec --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike51.ok @@ -0,0 +1,20 @@ +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Authentication=mekmitasdigoat force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA force +C set [from-3ffe::1/24-to-3ffe:2::/24]:Phase=2 force +C set [from-3ffe::1/24-to-3ffe:2::/24]:ISAKMP-peer=peer-default force +C set [from-3ffe::1/24-to-3ffe:2::/24]:Configuration=phase2-from-3ffe::1/24-to-3ffe:2::/24 force +C set [from-3ffe::1/24-to-3ffe:2::/24]:Local-ID=from-3ffe::1/24 force +C set [from-3ffe::1/24-to-3ffe:2::/24]:Remote-ID=to-3ffe:2::/24 force +C set [phase2-from-3ffe::1/24-to-3ffe:2::/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::1/24-to-3ffe:2::/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe::1/24]:ID-type=IPV6_ADDR_SUBNET force +C set [from-3ffe::1/24]:Network=3ffe::1 force +C set [from-3ffe::1/24]:Netmask=ffff:ff00:: force +C set [to-3ffe:2::/24]:ID-type=IPV6_ADDR_SUBNET force +C set [to-3ffe:2::/24]:Network=3ffe:2:: force +C set [to-3ffe:2::/24]:Netmask=ffff:ff00:: force +C add [Phase 2]:Connections=from-3ffe::1/24-to-3ffe:2::/24 diff --git a/src/regress/sbin/ipsecctl/ike52.in b/src/regress/sbin/ipsecctl/ike52.in new file mode 100644 index 000000000..a0dc38a79 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike52.in @@ -0,0 +1 @@ +ike from 3ffe::1/24 to 3ffe:2::/24 local 3ffe::3 diff --git a/src/regress/sbin/ipsecctl/ike52.ok b/src/regress/sbin/ipsecctl/ike52.ok new file mode 100644 index 000000000..26ab38fa2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike52.ok @@ -0,0 +1,20 @@ +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Local-address=3ffe::3 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe::1/24-to-3ffe:2::/24]:Phase=2 force +C set [from-3ffe::1/24-to-3ffe:2::/24]:ISAKMP-peer=peer-default force +C set [from-3ffe::1/24-to-3ffe:2::/24]:Configuration=phase2-from-3ffe::1/24-to-3ffe:2::/24 force +C set [from-3ffe::1/24-to-3ffe:2::/24]:Local-ID=from-3ffe::1/24 force +C set [from-3ffe::1/24-to-3ffe:2::/24]:Remote-ID=to-3ffe:2::/24 force +C set [phase2-from-3ffe::1/24-to-3ffe:2::/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe::1/24-to-3ffe:2::/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe::1/24]:ID-type=IPV6_ADDR_SUBNET force +C set [from-3ffe::1/24]:Network=3ffe::1 force +C set [from-3ffe::1/24]:Netmask=ffff:ff00:: force +C set [to-3ffe:2::/24]:ID-type=IPV6_ADDR_SUBNET force +C set [to-3ffe:2::/24]:Network=3ffe:2:: force +C set [to-3ffe:2::/24]:Netmask=ffff:ff00:: force +C add [Phase 2]:Connections=from-3ffe::1/24-to-3ffe:2::/24 diff --git a/src/regress/sbin/ipsecctl/ike53.in b/src/regress/sbin/ipsecctl/ike53.in new file mode 100644 index 000000000..0f93f3976 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike53.in @@ -0,0 +1 @@ +ike ah from 1.1.1.1 to 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ike53.ok b/src/regress/sbin/ipsecctl/ike53.ok new file mode 100644 index 000000000..f9b8c2e00 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike53.ok @@ -0,0 +1,18 @@ +C set [Phase 1]:2.2.2.2=peer-2.2.2.2 force +C set [peer-2.2.2.2]:Phase=1 force +C set [peer-2.2.2.2]:Address=2.2.2.2 force +C set [peer-2.2.2.2]:Configuration=phase1-peer-2.2.2.2 force +C set [phase1-peer-2.2.2.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-2.2.2.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-2.2.2.2]:Phase=2 force +C set [from-1.1.1.1-to-2.2.2.2]:ISAKMP-peer=peer-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Configuration=phase2-from-1.1.1.1-to-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-2.2.2.2]:Remote-ID=to-2.2.2.2 force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:Suites=QM-AH-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-2.2.2.2]:ID-type=IPV4_ADDR force +C set [to-2.2.2.2]:Address=2.2.2.2 force +C add [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ike54.in b/src/regress/sbin/ipsecctl/ike54.in new file mode 100644 index 000000000..a51f0e238 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike54.in @@ -0,0 +1 @@ +ike ah transport proto udp from 1.1.1.1 port ntp to any diff --git a/src/regress/sbin/ipsecctl/ike54.ok b/src/regress/sbin/ipsecctl/ike54.ok new file mode 100644 index 000000000..ba71199c1 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike54.ok @@ -0,0 +1,21 @@ +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1=17:123-to-0.0.0.0/0=17]:Phase=2 force +C set [from-1.1.1.1=17:123-to-0.0.0.0/0=17]:ISAKMP-peer=peer-default force +C set [from-1.1.1.1=17:123-to-0.0.0.0/0=17]:Configuration=phase2-from-1.1.1.1=17:123-to-0.0.0.0/0=17 force +C set [from-1.1.1.1=17:123-to-0.0.0.0/0=17]:Local-ID=from-1.1.1.1=17:123 force +C set [from-1.1.1.1=17:123-to-0.0.0.0/0=17]:Remote-ID=to-0.0.0.0/0=17 force +C set [phase2-from-1.1.1.1=17:123-to-0.0.0.0/0=17]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1=17:123-to-0.0.0.0/0=17]:Suites=QM-AH-TRP-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1=17:123]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1=17:123]:Address=1.1.1.1 force +C set [to-0.0.0.0/0=17]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0=17]:Network=0.0.0.0 force +C set [to-0.0.0.0/0=17]:Netmask=0.0.0.0 force +C set [from-1.1.1.1=17:123]:Protocol=17 force +C set [to-0.0.0.0/0=17]:Protocol=17 force +C set [from-1.1.1.1=17:123]:Port=123 force +C add [Phase 2]:Connections=from-1.1.1.1=17:123-to-0.0.0.0/0=17 diff --git a/src/regress/sbin/ipsecctl/ike55.in b/src/regress/sbin/ipsecctl/ike55.in new file mode 100644 index 000000000..34d49a5f5 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike55.in @@ -0,0 +1 @@ +ike ah from 1.1.1.1 to 2.2.2.2 quick auth hmac-md5 diff --git a/src/regress/sbin/ipsecctl/ike55.ok b/src/regress/sbin/ipsecctl/ike55.ok new file mode 100644 index 000000000..3afcf17b9 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike55.ok @@ -0,0 +1,18 @@ +C set [Phase 1]:2.2.2.2=peer-2.2.2.2 force +C set [peer-2.2.2.2]:Phase=1 force +C set [peer-2.2.2.2]:Address=2.2.2.2 force +C set [peer-2.2.2.2]:Configuration=phase1-peer-2.2.2.2 force +C set [phase1-peer-2.2.2.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-2.2.2.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-2.2.2.2]:Phase=2 force +C set [from-1.1.1.1-to-2.2.2.2]:ISAKMP-peer=peer-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Configuration=phase2-from-1.1.1.1-to-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-2.2.2.2]:Remote-ID=to-2.2.2.2 force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:Suites=QM-AH-MD5-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-2.2.2.2]:ID-type=IPV4_ADDR force +C set [to-2.2.2.2]:Address=2.2.2.2 force +C add [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ike56.in b/src/regress/sbin/ipsecctl/ike56.in new file mode 100644 index 000000000..2ab36f6af --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike56.in @@ -0,0 +1 @@ +ike passive esp from 127.0.0.1 to localhost diff --git a/src/regress/sbin/ipsecctl/ike56.ok b/src/regress/sbin/ipsecctl/ike56.ok new file mode 100644 index 000000000..c41b62ec2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike56.ok @@ -0,0 +1,18 @@ +C set [Phase 1]:127.0.0.1=peer-127.0.0.1 force +C set [peer-127.0.0.1]:Phase=1 force +C set [peer-127.0.0.1]:Address=127.0.0.1 force +C set [peer-127.0.0.1]:Configuration=phase1-peer-127.0.0.1 force +C set [phase1-peer-127.0.0.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-127.0.0.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-127.0.0.1-to-127.0.0.1]:Phase=2 force +C set [from-127.0.0.1-to-127.0.0.1]:ISAKMP-peer=peer-127.0.0.1 force +C set [from-127.0.0.1-to-127.0.0.1]:Configuration=phase2-from-127.0.0.1-to-127.0.0.1 force +C set [from-127.0.0.1-to-127.0.0.1]:Local-ID=from-127.0.0.1 force +C set [from-127.0.0.1-to-127.0.0.1]:Remote-ID=to-127.0.0.1 force +C set [phase2-from-127.0.0.1-to-127.0.0.1]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-127.0.0.1-to-127.0.0.1]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-127.0.0.1]:ID-type=IPV4_ADDR force +C set [from-127.0.0.1]:Address=127.0.0.1 force +C set [to-127.0.0.1]:ID-type=IPV4_ADDR force +C set [to-127.0.0.1]:Address=127.0.0.1 force +C add [Phase 2]:Passive-Connections=from-127.0.0.1-to-127.0.0.1 diff --git a/src/regress/sbin/ipsecctl/ike57.in b/src/regress/sbin/ipsecctl/ike57.in new file mode 100644 index 000000000..1d947fb99 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike57.in @@ -0,0 +1,3 @@ +ike from 10.0.0.0/24 to 10.0.1.0/24 peer 192.168.0.1 srcid me@example.com dstid other.example.com +ike from 10.0.0.0/24 to 10.0.2.0/24 peer 192.168.0.2 srcid me@example.com dstid other@example.com +ike from 10.0.0.0/24 to 10.0.3.0/24 peer 192.168.0.3 srcid me.example.com dstid other@example.com diff --git a/src/regress/sbin/ipsecctl/ike57.ok b/src/regress/sbin/ipsecctl/ike57.ok new file mode 100644 index 000000000..b99305288 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike57.ok @@ -0,0 +1,78 @@ +C set [Phase 1]:192.168.0.1=peer-192.168.0.1 force +C set [peer-192.168.0.1]:Phase=1 force +C set [peer-192.168.0.1]:Address=192.168.0.1 force +C set [peer-192.168.0.1]:Configuration=phase1-peer-192.168.0.1 force +C set [phase1-peer-192.168.0.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-192.168.0.1]:Transforms=AES-SHA-RSA_SIG force +C set [peer-192.168.0.1]:ID=id-me@example.com force +C set [id-me@example.com]:ID-type=USER_FQDN force +C set [id-me@example.com]:Name=me@example.com force +C set [peer-192.168.0.1]:Remote-ID=id-other.example.com force +C set [id-other.example.com]:ID-type=FQDN force +C set [id-other.example.com]:Name=other.example.com force +C set [from-10.0.0.0/24-to-10.0.1.0/24]:Phase=2 force +C set [from-10.0.0.0/24-to-10.0.1.0/24]:ISAKMP-peer=peer-192.168.0.1 force +C set [from-10.0.0.0/24-to-10.0.1.0/24]:Configuration=phase2-from-10.0.0.0/24-to-10.0.1.0/24 force +C set [from-10.0.0.0/24-to-10.0.1.0/24]:Local-ID=from-10.0.0.0/24 force +C set [from-10.0.0.0/24-to-10.0.1.0/24]:Remote-ID=to-10.0.1.0/24 force +C set [phase2-from-10.0.0.0/24-to-10.0.1.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.0.0.0/24-to-10.0.1.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.0.0.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.0.0.0/24]:Network=10.0.0.0 force +C set [from-10.0.0.0/24]:Netmask=255.255.255.0 force +C set [to-10.0.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.0.1.0/24]:Network=10.0.1.0 force +C set [to-10.0.1.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.0.0.0/24-to-10.0.1.0/24 +C set [Phase 1]:192.168.0.2=peer-192.168.0.2 force +C set [peer-192.168.0.2]:Phase=1 force +C set [peer-192.168.0.2]:Address=192.168.0.2 force +C set [peer-192.168.0.2]:Configuration=phase1-peer-192.168.0.2 force +C set [phase1-peer-192.168.0.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-192.168.0.2]:Transforms=AES-SHA-RSA_SIG force +C set [peer-192.168.0.2]:ID=id-me@example.com force +C set [id-me@example.com]:ID-type=USER_FQDN force +C set [id-me@example.com]:Name=me@example.com force +C set [peer-192.168.0.2]:Remote-ID=id-other@example.com force +C set [id-other@example.com]:ID-type=USER_FQDN force +C set [id-other@example.com]:Name=other@example.com force +C set [from-10.0.0.0/24-to-10.0.2.0/24]:Phase=2 force +C set [from-10.0.0.0/24-to-10.0.2.0/24]:ISAKMP-peer=peer-192.168.0.2 force +C set [from-10.0.0.0/24-to-10.0.2.0/24]:Configuration=phase2-from-10.0.0.0/24-to-10.0.2.0/24 force +C set [from-10.0.0.0/24-to-10.0.2.0/24]:Local-ID=from-10.0.0.0/24 force +C set [from-10.0.0.0/24-to-10.0.2.0/24]:Remote-ID=to-10.0.2.0/24 force +C set [phase2-from-10.0.0.0/24-to-10.0.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.0.0.0/24-to-10.0.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.0.0.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.0.0.0/24]:Network=10.0.0.0 force +C set [from-10.0.0.0/24]:Netmask=255.255.255.0 force +C set [to-10.0.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.0.2.0/24]:Network=10.0.2.0 force +C set [to-10.0.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.0.0.0/24-to-10.0.2.0/24 +C set [Phase 1]:192.168.0.3=peer-192.168.0.3 force +C set [peer-192.168.0.3]:Phase=1 force +C set [peer-192.168.0.3]:Address=192.168.0.3 force +C set [peer-192.168.0.3]:Configuration=phase1-peer-192.168.0.3 force +C set [phase1-peer-192.168.0.3]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-192.168.0.3]:Transforms=AES-SHA-RSA_SIG force +C set [peer-192.168.0.3]:ID=id-me.example.com force +C set [id-me.example.com]:ID-type=FQDN force +C set [id-me.example.com]:Name=me.example.com force +C set [peer-192.168.0.3]:Remote-ID=id-other@example.com force +C set [id-other@example.com]:ID-type=USER_FQDN force +C set [id-other@example.com]:Name=other@example.com force +C set [from-10.0.0.0/24-to-10.0.3.0/24]:Phase=2 force +C set [from-10.0.0.0/24-to-10.0.3.0/24]:ISAKMP-peer=peer-192.168.0.3 force +C set [from-10.0.0.0/24-to-10.0.3.0/24]:Configuration=phase2-from-10.0.0.0/24-to-10.0.3.0/24 force +C set [from-10.0.0.0/24-to-10.0.3.0/24]:Local-ID=from-10.0.0.0/24 force +C set [from-10.0.0.0/24-to-10.0.3.0/24]:Remote-ID=to-10.0.3.0/24 force +C set [phase2-from-10.0.0.0/24-to-10.0.3.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.0.0.0/24-to-10.0.3.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.0.0.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.0.0.0/24]:Network=10.0.0.0 force +C set [from-10.0.0.0/24]:Netmask=255.255.255.0 force +C set [to-10.0.3.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.0.3.0/24]:Network=10.0.3.0 force +C set [to-10.0.3.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.0.0.0/24-to-10.0.3.0/24 diff --git a/src/regress/sbin/ipsecctl/ike58.in b/src/regress/sbin/ipsecctl/ike58.in new file mode 100644 index 000000000..546522ba2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike58.in @@ -0,0 +1 @@ +ike from { any, ::/0 } to any diff --git a/src/regress/sbin/ipsecctl/ike58.ok b/src/regress/sbin/ipsecctl/ike58.ok new file mode 100644 index 000000000..bc2f331a2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike58.ok @@ -0,0 +1,57 @@ +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA-RSA_SIG force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Phase=2 force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:ISAKMP-peer=peer-default force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Configuration=phase2-from-0.0.0.0/0-to-0.0.0.0/0 force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Local-ID=from-0.0.0.0/0 force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-0.0.0.0/0-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-0.0.0.0/0-to-0.0.0.0/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [from-0.0.0.0/0]:Network=0.0.0.0 force +C set [from-0.0.0.0/0]:Netmask=0.0.0.0 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-0.0.0.0/0-to-0.0.0.0/0 +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA-RSA_SIG force +C set [from-::/0-to-::/0]:Phase=2 force +C set [from-::/0-to-::/0]:ISAKMP-peer=peer-default force +C set [from-::/0-to-::/0]:Configuration=phase2-from-::/0-to-::/0 force +C set [from-::/0-to-::/0]:Local-ID=from-::/0 force +C set [from-::/0-to-::/0]:Remote-ID=to-::/0 force +C set [phase2-from-::/0-to-::/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-::/0-to-::/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [from-::/0]:Network=:: force +C set [from-::/0]:Netmask=:: force +C set [to-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [to-::/0]:Network=:: force +C set [to-::/0]:Netmask=:: force +C add [Phase 2]:Connections=from-::/0-to-::/0 +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA-RSA_SIG force +C set [from-::/0-to-::/0]:Phase=2 force +C set [from-::/0-to-::/0]:ISAKMP-peer=peer-default force +C set [from-::/0-to-::/0]:Configuration=phase2-from-::/0-to-::/0 force +C set [from-::/0-to-::/0]:Local-ID=from-::/0 force +C set [from-::/0-to-::/0]:Remote-ID=to-::/0 force +C set [phase2-from-::/0-to-::/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-::/0-to-::/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [from-::/0]:Network=:: force +C set [from-::/0]:Netmask=:: force +C set [to-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [to-::/0]:Network=:: force +C set [to-::/0]:Netmask=:: force +C add [Phase 2]:Connections=from-::/0-to-::/0 diff --git a/src/regress/sbin/ipsecctl/ike59.in b/src/regress/sbin/ipsecctl/ike59.in new file mode 100644 index 000000000..67586314d --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike59.in @@ -0,0 +1 @@ +ike from 10.0.0.1/32 to 10.0.0.2/32 peer 1.2.3.4 diff --git a/src/regress/sbin/ipsecctl/ike59.ok b/src/regress/sbin/ipsecctl/ike59.ok new file mode 100644 index 000000000..c356fbb08 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike59.ok @@ -0,0 +1,20 @@ +C set [Phase 1]:1.2.3.4=peer-1.2.3.4 force +C set [peer-1.2.3.4]:Phase=1 force +C set [peer-1.2.3.4]:Address=1.2.3.4 force +C set [peer-1.2.3.4]:Configuration=phase1-peer-1.2.3.4 force +C set [phase1-peer-1.2.3.4]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.2.3.4]:Transforms=AES-SHA-RSA_SIG force +C set [from-10.0.0.1/32-to-10.0.0.2/32]:Phase=2 force +C set [from-10.0.0.1/32-to-10.0.0.2/32]:ISAKMP-peer=peer-1.2.3.4 force +C set [from-10.0.0.1/32-to-10.0.0.2/32]:Configuration=phase2-from-10.0.0.1/32-to-10.0.0.2/32 force +C set [from-10.0.0.1/32-to-10.0.0.2/32]:Local-ID=from-10.0.0.1/32 force +C set [from-10.0.0.1/32-to-10.0.0.2/32]:Remote-ID=to-10.0.0.2/32 force +C set [phase2-from-10.0.0.1/32-to-10.0.0.2/32]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.0.0.1/32-to-10.0.0.2/32]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.0.0.1/32]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.0.0.1/32]:Network=10.0.0.1 force +C set [from-10.0.0.1/32]:Netmask=255.255.255.255 force +C set [to-10.0.0.2/32]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.0.0.2/32]:Network=10.0.0.2 force +C set [to-10.0.0.2/32]:Netmask=255.255.255.255 force +C add [Phase 2]:Connections=from-10.0.0.1/32-to-10.0.0.2/32 diff --git a/src/regress/sbin/ipsecctl/ike6.in b/src/regress/sbin/ipsecctl/ike6.in new file mode 100644 index 000000000..9ae176184 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike6.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 131.188.33.29 +ike from 131.188.33.51 to 131.188.33.29 diff --git a/src/regress/sbin/ipsecctl/ike6.ok b/src/regress/sbin/ipsecctl/ike6.ok new file mode 100644 index 000000000..f755e168d --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike6.ok @@ -0,0 +1,38 @@ +C set [Phase 1]:131.188.33.29=peer-131.188.33.29 force +C set [peer-131.188.33.29]:Phase=1 force +C set [peer-131.188.33.29]:Address=131.188.33.29 force +C set [peer-131.188.33.29]:Configuration=phase1-peer-131.188.33.29 force +C set [phase1-peer-131.188.33.29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-131.188.33.29]:Transforms=AES-SHA-RSA_SIG force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-131.188.33.29 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 +C set [Phase 1]:131.188.33.29=peer-131.188.33.29 force +C set [peer-131.188.33.29]:Phase=1 force +C set [peer-131.188.33.29]:Address=131.188.33.29 force +C set [peer-131.188.33.29]:Configuration=phase1-peer-131.188.33.29 force +C set [phase1-peer-131.188.33.29]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-131.188.33.29]:Transforms=AES-SHA-RSA_SIG force +C set [from-131.188.33.51-to-131.188.33.29]:Phase=2 force +C set [from-131.188.33.51-to-131.188.33.29]:ISAKMP-peer=peer-131.188.33.29 force +C set [from-131.188.33.51-to-131.188.33.29]:Configuration=phase2-from-131.188.33.51-to-131.188.33.29 force +C set [from-131.188.33.51-to-131.188.33.29]:Local-ID=from-131.188.33.51 force +C set [from-131.188.33.51-to-131.188.33.29]:Remote-ID=to-131.188.33.29 force +C set [phase2-from-131.188.33.51-to-131.188.33.29]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-131.188.33.51-to-131.188.33.29]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-131.188.33.51]:ID-type=IPV4_ADDR force +C set [from-131.188.33.51]:Address=131.188.33.51 force +C set [to-131.188.33.29]:ID-type=IPV4_ADDR force +C set [to-131.188.33.29]:Address=131.188.33.29 force +C add [Phase 2]:Connections=from-131.188.33.51-to-131.188.33.29 diff --git a/src/regress/sbin/ipsecctl/ike60.in b/src/regress/sbin/ipsecctl/ike60.in new file mode 100644 index 000000000..6e29f82a6 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike60.in @@ -0,0 +1,3 @@ +ike from 10.0.0.1 to any main enc aes-128 quick enc aes-128 +ike from 10.0.0.2 to any main enc aes-192 quick enc aes-192 +ike from 10.0.0.3 to any main enc aes-256 quick enc aes-256 diff --git a/src/regress/sbin/ipsecctl/ike60.ok b/src/regress/sbin/ipsecctl/ike60.ok new file mode 100644 index 000000000..2d0b5724e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike60.ok @@ -0,0 +1,54 @@ +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-128-SHA-RSA_SIG force +C set [from-10.0.0.1-to-0.0.0.0/0]:Phase=2 force +C set [from-10.0.0.1-to-0.0.0.0/0]:ISAKMP-peer=peer-default force +C set [from-10.0.0.1-to-0.0.0.0/0]:Configuration=phase2-from-10.0.0.1-to-0.0.0.0/0 force +C set [from-10.0.0.1-to-0.0.0.0/0]:Local-ID=from-10.0.0.1 force +C set [from-10.0.0.1-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-10.0.0.1-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.0.0.1-to-0.0.0.0/0]:Suites=QM-ESP-AES-128-SHA2-256-PFS-SUITE force +C set [from-10.0.0.1]:ID-type=IPV4_ADDR force +C set [from-10.0.0.1]:Address=10.0.0.1 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-10.0.0.1-to-0.0.0.0/0 +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-192-SHA-RSA_SIG force +C set [from-10.0.0.2-to-0.0.0.0/0]:Phase=2 force +C set [from-10.0.0.2-to-0.0.0.0/0]:ISAKMP-peer=peer-default force +C set [from-10.0.0.2-to-0.0.0.0/0]:Configuration=phase2-from-10.0.0.2-to-0.0.0.0/0 force +C set [from-10.0.0.2-to-0.0.0.0/0]:Local-ID=from-10.0.0.2 force +C set [from-10.0.0.2-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-10.0.0.2-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.0.0.2-to-0.0.0.0/0]:Suites=QM-ESP-AES-192-SHA2-256-PFS-SUITE force +C set [from-10.0.0.2]:ID-type=IPV4_ADDR force +C set [from-10.0.0.2]:Address=10.0.0.2 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-10.0.0.2-to-0.0.0.0/0 +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-256-SHA-RSA_SIG force +C set [from-10.0.0.3-to-0.0.0.0/0]:Phase=2 force +C set [from-10.0.0.3-to-0.0.0.0/0]:ISAKMP-peer=peer-default force +C set [from-10.0.0.3-to-0.0.0.0/0]:Configuration=phase2-from-10.0.0.3-to-0.0.0.0/0 force +C set [from-10.0.0.3-to-0.0.0.0/0]:Local-ID=from-10.0.0.3 force +C set [from-10.0.0.3-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-10.0.0.3-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.0.0.3-to-0.0.0.0/0]:Suites=QM-ESP-AES-256-SHA2-256-PFS-SUITE force +C set [from-10.0.0.3]:ID-type=IPV4_ADDR force +C set [from-10.0.0.3]:Address=10.0.0.3 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-10.0.0.3-to-0.0.0.0/0 diff --git a/src/regress/sbin/ipsecctl/ike61.in b/src/regress/sbin/ipsecctl/ike61.in new file mode 100644 index 000000000..ebfe9b4bc --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike61.in @@ -0,0 +1,4 @@ +FROM="{ 2.2.2.0/24 (5.5.5.0/24), 3.3.3.0/24, 4.4.4.0/24 (6.6.6.0/24) }" +TO="{ 5.5.5.0/24, 6.6.6.0/24, 7.7.7.0/24 }" +ike from $FROM to $TO peer 1.1.1.1 +ike passive from 3ffe:1::/64 (affe:1::/64) to 3ffe:2::/64 peer 3ffe::51 diff --git a/src/regress/sbin/ipsecctl/ike61.ok b/src/regress/sbin/ipsecctl/ike61.ok new file mode 100644 index 000000000..0960408fb --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike61.ok @@ -0,0 +1,230 @@ +FROM = "{ 2.2.2.0/24 (5.5.5.0/24), 3.3.3.0/24, 4.4.4.0/24 (6.6.6.0/24) }" +TO = "{ 5.5.5.0/24, 6.6.6.0/24, 7.7.7.0/24 }" +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-2.2.2.0/24-to-5.5.5.0/24]:Phase=2 force +C set [from-2.2.2.0/24-to-5.5.5.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-2.2.2.0/24-to-5.5.5.0/24]:Configuration=phase2-from-2.2.2.0/24-to-5.5.5.0/24 force +C set [from-2.2.2.0/24-to-5.5.5.0/24]:Local-ID=from-2.2.2.0/24 force +C set [from-2.2.2.0/24-to-5.5.5.0/24]:NAT-ID=nat-5.5.5.0/24 force +C set [from-2.2.2.0/24-to-5.5.5.0/24]:Remote-ID=to-5.5.5.0/24 force +C set [phase2-from-2.2.2.0/24-to-5.5.5.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-2.2.2.0/24-to-5.5.5.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-2.2.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-2.2.2.0/24]:Network=2.2.2.0 force +C set [from-2.2.2.0/24]:Netmask=255.255.255.0 force +C set [nat-5.5.5.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [nat-5.5.5.0/24]:Network=5.5.5.0 force +C set [nat-5.5.5.0/24]:Netmask=255.255.255.0 force +C set [to-5.5.5.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-5.5.5.0/24]:Network=5.5.5.0 force +C set [to-5.5.5.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-2.2.2.0/24-to-5.5.5.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-2.2.2.0/24-to-6.6.6.0/24]:Phase=2 force +C set [from-2.2.2.0/24-to-6.6.6.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-2.2.2.0/24-to-6.6.6.0/24]:Configuration=phase2-from-2.2.2.0/24-to-6.6.6.0/24 force +C set [from-2.2.2.0/24-to-6.6.6.0/24]:Local-ID=from-2.2.2.0/24 force +C set [from-2.2.2.0/24-to-6.6.6.0/24]:NAT-ID=nat-5.5.5.0/24 force +C set [from-2.2.2.0/24-to-6.6.6.0/24]:Remote-ID=to-6.6.6.0/24 force +C set [phase2-from-2.2.2.0/24-to-6.6.6.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-2.2.2.0/24-to-6.6.6.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-2.2.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-2.2.2.0/24]:Network=2.2.2.0 force +C set [from-2.2.2.0/24]:Netmask=255.255.255.0 force +C set [nat-5.5.5.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [nat-5.5.5.0/24]:Network=5.5.5.0 force +C set [nat-5.5.5.0/24]:Netmask=255.255.255.0 force +C set [to-6.6.6.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-6.6.6.0/24]:Network=6.6.6.0 force +C set [to-6.6.6.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-2.2.2.0/24-to-6.6.6.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-2.2.2.0/24-to-7.7.7.0/24]:Phase=2 force +C set [from-2.2.2.0/24-to-7.7.7.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-2.2.2.0/24-to-7.7.7.0/24]:Configuration=phase2-from-2.2.2.0/24-to-7.7.7.0/24 force +C set [from-2.2.2.0/24-to-7.7.7.0/24]:Local-ID=from-2.2.2.0/24 force +C set [from-2.2.2.0/24-to-7.7.7.0/24]:NAT-ID=nat-5.5.5.0/24 force +C set [from-2.2.2.0/24-to-7.7.7.0/24]:Remote-ID=to-7.7.7.0/24 force +C set [phase2-from-2.2.2.0/24-to-7.7.7.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-2.2.2.0/24-to-7.7.7.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-2.2.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-2.2.2.0/24]:Network=2.2.2.0 force +C set [from-2.2.2.0/24]:Netmask=255.255.255.0 force +C set [nat-5.5.5.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [nat-5.5.5.0/24]:Network=5.5.5.0 force +C set [nat-5.5.5.0/24]:Netmask=255.255.255.0 force +C set [to-7.7.7.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-7.7.7.0/24]:Network=7.7.7.0 force +C set [to-7.7.7.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-2.2.2.0/24-to-7.7.7.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-3.3.3.0/24-to-5.5.5.0/24]:Phase=2 force +C set [from-3.3.3.0/24-to-5.5.5.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-3.3.3.0/24-to-5.5.5.0/24]:Configuration=phase2-from-3.3.3.0/24-to-5.5.5.0/24 force +C set [from-3.3.3.0/24-to-5.5.5.0/24]:Local-ID=from-3.3.3.0/24 force +C set [from-3.3.3.0/24-to-5.5.5.0/24]:Remote-ID=to-5.5.5.0/24 force +C set [phase2-from-3.3.3.0/24-to-5.5.5.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3.3.3.0/24-to-5.5.5.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3.3.3.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-3.3.3.0/24]:Network=3.3.3.0 force +C set [from-3.3.3.0/24]:Netmask=255.255.255.0 force +C set [to-5.5.5.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-5.5.5.0/24]:Network=5.5.5.0 force +C set [to-5.5.5.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-3.3.3.0/24-to-5.5.5.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-3.3.3.0/24-to-6.6.6.0/24]:Phase=2 force +C set [from-3.3.3.0/24-to-6.6.6.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-3.3.3.0/24-to-6.6.6.0/24]:Configuration=phase2-from-3.3.3.0/24-to-6.6.6.0/24 force +C set [from-3.3.3.0/24-to-6.6.6.0/24]:Local-ID=from-3.3.3.0/24 force +C set [from-3.3.3.0/24-to-6.6.6.0/24]:Remote-ID=to-6.6.6.0/24 force +C set [phase2-from-3.3.3.0/24-to-6.6.6.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3.3.3.0/24-to-6.6.6.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3.3.3.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-3.3.3.0/24]:Network=3.3.3.0 force +C set [from-3.3.3.0/24]:Netmask=255.255.255.0 force +C set [to-6.6.6.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-6.6.6.0/24]:Network=6.6.6.0 force +C set [to-6.6.6.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-3.3.3.0/24-to-6.6.6.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-3.3.3.0/24-to-7.7.7.0/24]:Phase=2 force +C set [from-3.3.3.0/24-to-7.7.7.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-3.3.3.0/24-to-7.7.7.0/24]:Configuration=phase2-from-3.3.3.0/24-to-7.7.7.0/24 force +C set [from-3.3.3.0/24-to-7.7.7.0/24]:Local-ID=from-3.3.3.0/24 force +C set [from-3.3.3.0/24-to-7.7.7.0/24]:Remote-ID=to-7.7.7.0/24 force +C set [phase2-from-3.3.3.0/24-to-7.7.7.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3.3.3.0/24-to-7.7.7.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3.3.3.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-3.3.3.0/24]:Network=3.3.3.0 force +C set [from-3.3.3.0/24]:Netmask=255.255.255.0 force +C set [to-7.7.7.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-7.7.7.0/24]:Network=7.7.7.0 force +C set [to-7.7.7.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-3.3.3.0/24-to-7.7.7.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-4.4.4.0/24-to-5.5.5.0/24]:Phase=2 force +C set [from-4.4.4.0/24-to-5.5.5.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-4.4.4.0/24-to-5.5.5.0/24]:Configuration=phase2-from-4.4.4.0/24-to-5.5.5.0/24 force +C set [from-4.4.4.0/24-to-5.5.5.0/24]:Local-ID=from-4.4.4.0/24 force +C set [from-4.4.4.0/24-to-5.5.5.0/24]:NAT-ID=nat-6.6.6.0/24 force +C set [from-4.4.4.0/24-to-5.5.5.0/24]:Remote-ID=to-5.5.5.0/24 force +C set [phase2-from-4.4.4.0/24-to-5.5.5.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-4.4.4.0/24-to-5.5.5.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-4.4.4.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-4.4.4.0/24]:Network=4.4.4.0 force +C set [from-4.4.4.0/24]:Netmask=255.255.255.0 force +C set [nat-6.6.6.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [nat-6.6.6.0/24]:Network=6.6.6.0 force +C set [nat-6.6.6.0/24]:Netmask=255.255.255.0 force +C set [to-5.5.5.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-5.5.5.0/24]:Network=5.5.5.0 force +C set [to-5.5.5.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-4.4.4.0/24-to-5.5.5.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-4.4.4.0/24-to-6.6.6.0/24]:Phase=2 force +C set [from-4.4.4.0/24-to-6.6.6.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-4.4.4.0/24-to-6.6.6.0/24]:Configuration=phase2-from-4.4.4.0/24-to-6.6.6.0/24 force +C set [from-4.4.4.0/24-to-6.6.6.0/24]:Local-ID=from-4.4.4.0/24 force +C set [from-4.4.4.0/24-to-6.6.6.0/24]:NAT-ID=nat-6.6.6.0/24 force +C set [from-4.4.4.0/24-to-6.6.6.0/24]:Remote-ID=to-6.6.6.0/24 force +C set [phase2-from-4.4.4.0/24-to-6.6.6.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-4.4.4.0/24-to-6.6.6.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-4.4.4.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-4.4.4.0/24]:Network=4.4.4.0 force +C set [from-4.4.4.0/24]:Netmask=255.255.255.0 force +C set [nat-6.6.6.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [nat-6.6.6.0/24]:Network=6.6.6.0 force +C set [nat-6.6.6.0/24]:Netmask=255.255.255.0 force +C set [to-6.6.6.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-6.6.6.0/24]:Network=6.6.6.0 force +C set [to-6.6.6.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-4.4.4.0/24-to-6.6.6.0/24 +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-4.4.4.0/24-to-7.7.7.0/24]:Phase=2 force +C set [from-4.4.4.0/24-to-7.7.7.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-4.4.4.0/24-to-7.7.7.0/24]:Configuration=phase2-from-4.4.4.0/24-to-7.7.7.0/24 force +C set [from-4.4.4.0/24-to-7.7.7.0/24]:Local-ID=from-4.4.4.0/24 force +C set [from-4.4.4.0/24-to-7.7.7.0/24]:NAT-ID=nat-6.6.6.0/24 force +C set [from-4.4.4.0/24-to-7.7.7.0/24]:Remote-ID=to-7.7.7.0/24 force +C set [phase2-from-4.4.4.0/24-to-7.7.7.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-4.4.4.0/24-to-7.7.7.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-4.4.4.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-4.4.4.0/24]:Network=4.4.4.0 force +C set [from-4.4.4.0/24]:Netmask=255.255.255.0 force +C set [nat-6.6.6.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [nat-6.6.6.0/24]:Network=6.6.6.0 force +C set [nat-6.6.6.0/24]:Netmask=255.255.255.0 force +C set [to-7.7.7.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-7.7.7.0/24]:Network=7.7.7.0 force +C set [to-7.7.7.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-4.4.4.0/24-to-7.7.7.0/24 +C set [Phase 1]:3ffe::51=peer-3ffe::51 force +C set [peer-3ffe::51]:Phase=1 force +C set [peer-3ffe::51]:Address=3ffe::51 force +C set [peer-3ffe::51]:Configuration=phase1-peer-3ffe::51 force +C set [phase1-peer-3ffe::51]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::51]:Transforms=AES-SHA-RSA_SIG force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Phase=2 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:ISAKMP-peer=peer-3ffe::51 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Configuration=phase2-from-3ffe:1::/64-to-3ffe:2::/64 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Local-ID=from-3ffe:1::/64 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:NAT-ID=nat-affe:1::/64 force +C set [from-3ffe:1::/64-to-3ffe:2::/64]:Remote-ID=to-3ffe:2::/64 force +C set [phase2-from-3ffe:1::/64-to-3ffe:2::/64]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3ffe:1::/64-to-3ffe:2::/64]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3ffe:1::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [from-3ffe:1::/64]:Network=3ffe:1:: force +C set [from-3ffe:1::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C set [nat-affe:1::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [nat-affe:1::/64]:Network=affe:1:: force +C set [nat-affe:1::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C set [to-3ffe:2::/64]:ID-type=IPV6_ADDR_SUBNET force +C set [to-3ffe:2::/64]:Network=3ffe:2:: force +C set [to-3ffe:2::/64]:Netmask=ffff:ffff:ffff:ffff:: force +C add [Phase 2]:Passive-Connections=from-3ffe:1::/64-to-3ffe:2::/64 diff --git a/src/regress/sbin/ipsecctl/ike62.in b/src/regress/sbin/ipsecctl/ike62.in new file mode 100644 index 000000000..a255d588b --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike62.in @@ -0,0 +1,3 @@ +ike from 1.1.1.1 to 2.2.2.2 +ike from 3.3.3.3 to 4.4.4.4 peer any +ike from 5.5.5.5 to 6.6.6.6 peer 9.9.9.9 diff --git a/src/regress/sbin/ipsecctl/ike62.ok b/src/regress/sbin/ipsecctl/ike62.ok new file mode 100644 index 000000000..c50b3a2f5 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike62.ok @@ -0,0 +1,53 @@ +C set [Phase 1]:2.2.2.2=peer-2.2.2.2 force +C set [peer-2.2.2.2]:Phase=1 force +C set [peer-2.2.2.2]:Address=2.2.2.2 force +C set [peer-2.2.2.2]:Configuration=phase1-peer-2.2.2.2 force +C set [phase1-peer-2.2.2.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-2.2.2.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-2.2.2.2]:Phase=2 force +C set [from-1.1.1.1-to-2.2.2.2]:ISAKMP-peer=peer-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Configuration=phase2-from-1.1.1.1-to-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-2.2.2.2]:Remote-ID=to-2.2.2.2 force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-2.2.2.2]:ID-type=IPV4_ADDR force +C set [to-2.2.2.2]:Address=2.2.2.2 force +C add [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA-RSA_SIG force +C set [from-3.3.3.3-to-4.4.4.4]:Phase=2 force +C set [from-3.3.3.3-to-4.4.4.4]:ISAKMP-peer=peer-default force +C set [from-3.3.3.3-to-4.4.4.4]:Configuration=phase2-from-3.3.3.3-to-4.4.4.4 force +C set [from-3.3.3.3-to-4.4.4.4]:Local-ID=from-3.3.3.3 force +C set [from-3.3.3.3-to-4.4.4.4]:Remote-ID=to-4.4.4.4 force +C set [phase2-from-3.3.3.3-to-4.4.4.4]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3.3.3.3-to-4.4.4.4]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3.3.3.3]:ID-type=IPV4_ADDR force +C set [from-3.3.3.3]:Address=3.3.3.3 force +C set [to-4.4.4.4]:ID-type=IPV4_ADDR force +C set [to-4.4.4.4]:Address=4.4.4.4 force +C add [Phase 2]:Connections=from-3.3.3.3-to-4.4.4.4 +C set [Phase 1]:9.9.9.9=peer-9.9.9.9 force +C set [peer-9.9.9.9]:Phase=1 force +C set [peer-9.9.9.9]:Address=9.9.9.9 force +C set [peer-9.9.9.9]:Configuration=phase1-peer-9.9.9.9 force +C set [phase1-peer-9.9.9.9]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-9.9.9.9]:Transforms=AES-SHA-RSA_SIG force +C set [from-5.5.5.5-to-6.6.6.6]:Phase=2 force +C set [from-5.5.5.5-to-6.6.6.6]:ISAKMP-peer=peer-9.9.9.9 force +C set [from-5.5.5.5-to-6.6.6.6]:Configuration=phase2-from-5.5.5.5-to-6.6.6.6 force +C set [from-5.5.5.5-to-6.6.6.6]:Local-ID=from-5.5.5.5 force +C set [from-5.5.5.5-to-6.6.6.6]:Remote-ID=to-6.6.6.6 force +C set [phase2-from-5.5.5.5-to-6.6.6.6]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-5.5.5.5-to-6.6.6.6]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-5.5.5.5]:ID-type=IPV4_ADDR force +C set [from-5.5.5.5]:Address=5.5.5.5 force +C set [to-6.6.6.6]:ID-type=IPV4_ADDR force +C set [to-6.6.6.6]:Address=6.6.6.6 force +C add [Phase 2]:Connections=from-5.5.5.5-to-6.6.6.6 diff --git a/src/regress/sbin/ipsecctl/ike63.in b/src/regress/sbin/ipsecctl/ike63.in new file mode 100644 index 000000000..3d655f484 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike63.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 1.1.1.1 \ + srcid 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ike63.ok b/src/regress/sbin/ipsecctl/ike63.ok new file mode 100644 index 000000000..e01e9f087 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike63.ok @@ -0,0 +1,23 @@ +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [peer-1.1.1.1]:ID=id-2.2.2.2 force +C set [id-2.2.2.2]:ID-type=IPV4_ADDR force +C set [id-2.2.2.2]:Address=2.2.2.2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 diff --git a/src/regress/sbin/ipsecctl/ike64.in b/src/regress/sbin/ipsecctl/ike64.in new file mode 100644 index 000000000..d0eb18390 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike64.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 1.1.1.1 \ + dstid 1.1.1.1 diff --git a/src/regress/sbin/ipsecctl/ike64.ok b/src/regress/sbin/ipsecctl/ike64.ok new file mode 100644 index 000000000..e0beaef2c --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike64.ok @@ -0,0 +1,23 @@ +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [peer-1.1.1.1]:Remote-ID=id-1.1.1.1 force +C set [id-1.1.1.1]:ID-type=IPV4_ADDR force +C set [id-1.1.1.1]:Address=1.1.1.1 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 diff --git a/src/regress/sbin/ipsecctl/ike65.in b/src/regress/sbin/ipsecctl/ike65.in new file mode 100644 index 000000000..de5aa2ccb --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike65.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 1.1.1.1 \ + srcid 2.2.2.2 dstid 1.1.1.1 diff --git a/src/regress/sbin/ipsecctl/ike65.ok b/src/regress/sbin/ipsecctl/ike65.ok new file mode 100644 index 000000000..e8bd73fca --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike65.ok @@ -0,0 +1,26 @@ +C set [Phase 1]:1.1.1.1=peer-1.1.1.1 force +C set [peer-1.1.1.1]:Phase=1 force +C set [peer-1.1.1.1]:Address=1.1.1.1 force +C set [peer-1.1.1.1]:Configuration=phase1-peer-1.1.1.1 force +C set [phase1-peer-1.1.1.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-1.1.1.1]:Transforms=AES-SHA-RSA_SIG force +C set [peer-1.1.1.1]:ID=id-2.2.2.2 force +C set [id-2.2.2.2]:ID-type=IPV4_ADDR force +C set [id-2.2.2.2]:Address=2.2.2.2 force +C set [peer-1.1.1.1]:Remote-ID=id-1.1.1.1 force +C set [id-1.1.1.1]:ID-type=IPV4_ADDR force +C set [id-1.1.1.1]:Address=1.1.1.1 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-1.1.1.1 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 diff --git a/src/regress/sbin/ipsecctl/ike66.in b/src/regress/sbin/ipsecctl/ike66.in new file mode 100644 index 000000000..b177fef89 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike66.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 3ffe::1 \ + srcid 3ffe::2 diff --git a/src/regress/sbin/ipsecctl/ike66.ok b/src/regress/sbin/ipsecctl/ike66.ok new file mode 100644 index 000000000..3c833ea79 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike66.ok @@ -0,0 +1,23 @@ +C set [Phase 1]:3ffe::1=peer-3ffe::1 force +C set [peer-3ffe::1]:Phase=1 force +C set [peer-3ffe::1]:Address=3ffe::1 force +C set [peer-3ffe::1]:Configuration=phase1-peer-3ffe::1 force +C set [phase1-peer-3ffe::1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::1]:Transforms=AES-SHA-RSA_SIG force +C set [peer-3ffe::1]:ID=id-3ffe::2 force +C set [id-3ffe::2]:ID-type=IPV6_ADDR force +C set [id-3ffe::2]:Address=3ffe::2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-3ffe::1 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 diff --git a/src/regress/sbin/ipsecctl/ike67.in b/src/regress/sbin/ipsecctl/ike67.in new file mode 100644 index 000000000..4bafe357f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike67.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 3ffe::1 \ + dstid 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ike67.ok b/src/regress/sbin/ipsecctl/ike67.ok new file mode 100644 index 000000000..5b3db6e75 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike67.ok @@ -0,0 +1,23 @@ +C set [Phase 1]:3ffe::1=peer-3ffe::1 force +C set [peer-3ffe::1]:Phase=1 force +C set [peer-3ffe::1]:Address=3ffe::1 force +C set [peer-3ffe::1]:Configuration=phase1-peer-3ffe::1 force +C set [phase1-peer-3ffe::1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::1]:Transforms=AES-SHA-RSA_SIG force +C set [peer-3ffe::1]:Remote-ID=id-3ffe::1 force +C set [id-3ffe::1]:ID-type=IPV6_ADDR force +C set [id-3ffe::1]:Address=3ffe::1 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-3ffe::1 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 diff --git a/src/regress/sbin/ipsecctl/ike68.in b/src/regress/sbin/ipsecctl/ike68.in new file mode 100644 index 000000000..6caeee5d5 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike68.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 3ffe::1 \ + srcid 3ffe::2 dstid 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ike68.ok b/src/regress/sbin/ipsecctl/ike68.ok new file mode 100644 index 000000000..020ce55fc --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike68.ok @@ -0,0 +1,26 @@ +C set [Phase 1]:3ffe::1=peer-3ffe::1 force +C set [peer-3ffe::1]:Phase=1 force +C set [peer-3ffe::1]:Address=3ffe::1 force +C set [peer-3ffe::1]:Configuration=phase1-peer-3ffe::1 force +C set [phase1-peer-3ffe::1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-3ffe::1]:Transforms=AES-SHA-RSA_SIG force +C set [peer-3ffe::1]:ID=id-3ffe::2 force +C set [id-3ffe::2]:ID-type=IPV6_ADDR force +C set [id-3ffe::2]:Address=3ffe::2 force +C set [peer-3ffe::1]:Remote-ID=id-3ffe::1 force +C set [id-3ffe::1]:ID-type=IPV6_ADDR force +C set [id-3ffe::1]:Address=3ffe::1 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Phase=2 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:ISAKMP-peer=peer-3ffe::1 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Configuration=phase2-from-10.1.1.0/24-to-10.1.2.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Local-ID=from-10.1.1.0/24 force +C set [from-10.1.1.0/24-to-10.1.2.0/24]:Remote-ID=to-10.1.2.0/24 force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.1.0/24-to-10.1.2.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.1.0/24]:Network=10.1.1.0 force +C set [from-10.1.1.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.2.0/24]:Network=10.1.2.0 force +C set [to-10.1.2.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 diff --git a/src/regress/sbin/ipsecctl/ike7.in b/src/regress/sbin/ipsecctl/ike7.in new file mode 100644 index 000000000..90197b85e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike7.in @@ -0,0 +1,2 @@ +ike passive from 10.1.2.0/24 to 10.1.1.0/24 peer 131.188.33.51 +ike passive from 131.188.33.29 to 131.188.33.51 diff --git a/src/regress/sbin/ipsecctl/ike7.ok b/src/regress/sbin/ipsecctl/ike7.ok new file mode 100644 index 000000000..401a040ae --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike7.ok @@ -0,0 +1,38 @@ +C set [Phase 1]:131.188.33.51=peer-131.188.33.51 force +C set [peer-131.188.33.51]:Phase=1 force +C set [peer-131.188.33.51]:Address=131.188.33.51 force +C set [peer-131.188.33.51]:Configuration=phase1-peer-131.188.33.51 force +C set [phase1-peer-131.188.33.51]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-131.188.33.51]:Transforms=AES-SHA-RSA_SIG force +C set [from-10.1.2.0/24-to-10.1.1.0/24]:Phase=2 force +C set [from-10.1.2.0/24-to-10.1.1.0/24]:ISAKMP-peer=peer-131.188.33.51 force +C set [from-10.1.2.0/24-to-10.1.1.0/24]:Configuration=phase2-from-10.1.2.0/24-to-10.1.1.0/24 force +C set [from-10.1.2.0/24-to-10.1.1.0/24]:Local-ID=from-10.1.2.0/24 force +C set [from-10.1.2.0/24-to-10.1.1.0/24]:Remote-ID=to-10.1.1.0/24 force +C set [phase2-from-10.1.2.0/24-to-10.1.1.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-10.1.2.0/24-to-10.1.1.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-10.1.2.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-10.1.2.0/24]:Network=10.1.2.0 force +C set [from-10.1.2.0/24]:Netmask=255.255.255.0 force +C set [to-10.1.1.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-10.1.1.0/24]:Network=10.1.1.0 force +C set [to-10.1.1.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Passive-Connections=from-10.1.2.0/24-to-10.1.1.0/24 +C set [Phase 1]:131.188.33.51=peer-131.188.33.51 force +C set [peer-131.188.33.51]:Phase=1 force +C set [peer-131.188.33.51]:Address=131.188.33.51 force +C set [peer-131.188.33.51]:Configuration=phase1-peer-131.188.33.51 force +C set [phase1-peer-131.188.33.51]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-131.188.33.51]:Transforms=AES-SHA-RSA_SIG force +C set [from-131.188.33.29-to-131.188.33.51]:Phase=2 force +C set [from-131.188.33.29-to-131.188.33.51]:ISAKMP-peer=peer-131.188.33.51 force +C set [from-131.188.33.29-to-131.188.33.51]:Configuration=phase2-from-131.188.33.29-to-131.188.33.51 force +C set [from-131.188.33.29-to-131.188.33.51]:Local-ID=from-131.188.33.29 force +C set [from-131.188.33.29-to-131.188.33.51]:Remote-ID=to-131.188.33.51 force +C set [phase2-from-131.188.33.29-to-131.188.33.51]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-131.188.33.29-to-131.188.33.51]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-131.188.33.29]:ID-type=IPV4_ADDR force +C set [from-131.188.33.29]:Address=131.188.33.29 force +C set [to-131.188.33.51]:ID-type=IPV4_ADDR force +C set [to-131.188.33.51]:Address=131.188.33.51 force +C add [Phase 2]:Passive-Connections=from-131.188.33.29-to-131.188.33.51 diff --git a/src/regress/sbin/ipsecctl/ike8.in b/src/regress/sbin/ipsecctl/ike8.in new file mode 100644 index 000000000..6eb530217 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike8.in @@ -0,0 +1 @@ +ike from 1.1.1.1 to any peer 192.168.3.1 diff --git a/src/regress/sbin/ipsecctl/ike8.ok b/src/regress/sbin/ipsecctl/ike8.ok new file mode 100644 index 000000000..a79aff6fe --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike8.ok @@ -0,0 +1,19 @@ +C set [Phase 1]:192.168.3.1=peer-192.168.3.1 force +C set [peer-192.168.3.1]:Phase=1 force +C set [peer-192.168.3.1]:Address=192.168.3.1 force +C set [peer-192.168.3.1]:Configuration=phase1-peer-192.168.3.1 force +C set [phase1-peer-192.168.3.1]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-192.168.3.1]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-0.0.0.0/0]:Phase=2 force +C set [from-1.1.1.1-to-0.0.0.0/0]:ISAKMP-peer=peer-192.168.3.1 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Configuration=phase2-from-1.1.1.1-to-0.0.0.0/0 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-1.1.1.1-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-0.0.0.0/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-1.1.1.1]:ID-type=IPV4_ADDR force +C set [from-1.1.1.1]:Address=1.1.1.1 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-1.1.1.1-to-0.0.0.0/0 diff --git a/src/regress/sbin/ipsecctl/ike9.in b/src/regress/sbin/ipsecctl/ike9.in new file mode 100644 index 000000000..f00ab35a8 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike9.in @@ -0,0 +1 @@ +ike dynamic esp from 3.3.3.0/24 to 4.4.4.0/24 peer 2.2.2.2 srcid noname.my.domain diff --git a/src/regress/sbin/ipsecctl/ike9.ok b/src/regress/sbin/ipsecctl/ike9.ok new file mode 100644 index 000000000..948fae49f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ike9.ok @@ -0,0 +1,25 @@ +C set [General]:Check-interval=30 force +C set [General]:DPD-check-interval=5 force +C set [Phase 1]:2.2.2.2=peer-2.2.2.2 force +C set [peer-2.2.2.2]:Phase=1 force +C set [peer-2.2.2.2]:Address=2.2.2.2 force +C set [peer-2.2.2.2]:Configuration=phase1-peer-2.2.2.2 force +C set [phase1-peer-2.2.2.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-2.2.2.2]:Transforms=AES-SHA-RSA_SIG force +C set [peer-2.2.2.2]:ID=id-noname.my.domain force +C set [id-noname.my.domain]:ID-type=FQDN force +C set [id-noname.my.domain]:Name=noname.my.domain force +C set [from-3.3.3.0/24-to-4.4.4.0/24]:Phase=2 force +C set [from-3.3.3.0/24-to-4.4.4.0/24]:ISAKMP-peer=peer-2.2.2.2 force +C set [from-3.3.3.0/24-to-4.4.4.0/24]:Configuration=phase2-from-3.3.3.0/24-to-4.4.4.0/24 force +C set [from-3.3.3.0/24-to-4.4.4.0/24]:Local-ID=from-3.3.3.0/24 force +C set [from-3.3.3.0/24-to-4.4.4.0/24]:Remote-ID=to-4.4.4.0/24 force +C set [phase2-from-3.3.3.0/24-to-4.4.4.0/24]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-3.3.3.0/24-to-4.4.4.0/24]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-3.3.3.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [from-3.3.3.0/24]:Network=3.3.3.0 force +C set [from-3.3.3.0/24]:Netmask=255.255.255.0 force +C set [to-4.4.4.0/24]:ID-type=IPV4_ADDR_SUBNET force +C set [to-4.4.4.0/24]:Network=4.4.4.0 force +C set [to-4.4.4.0/24]:Netmask=255.255.255.0 force +C add [Phase 2]:Connections=from-3.3.3.0/24-to-4.4.4.0/24 diff --git a/src/regress/sbin/ipsecctl/ikedel1.in b/src/regress/sbin/ipsecctl/ikedel1.in new file mode 100644 index 000000000..c627e0e9f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel1.in @@ -0,0 +1 @@ +ike from 131.188.33.51 to 131.188.33.29 diff --git a/src/regress/sbin/ipsecctl/ikedel1.ok b/src/regress/sbin/ipsecctl/ikedel1.ok new file mode 100644 index 000000000..3b5ba8a39 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel1.ok @@ -0,0 +1,4 @@ +t from-131.188.33.51-to-131.188.33.29 +C rmv [Phase 2]:Connections=from-131.188.33.51-to-131.188.33.29 +C rms [from-131.188.33.51-to-131.188.33.29] +C rms [phase2-from-131.188.33.51-to-131.188.33.29] diff --git a/src/regress/sbin/ipsecctl/ikedel10.in b/src/regress/sbin/ipsecctl/ikedel10.in new file mode 100644 index 000000000..39783d0fb --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel10.in @@ -0,0 +1 @@ +ike esp proto etherip from 192.168.100.1 to 192.168.200.1 diff --git a/src/regress/sbin/ipsecctl/ikedel10.ok b/src/regress/sbin/ipsecctl/ikedel10.ok new file mode 100644 index 000000000..0fe7b61a2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel10.ok @@ -0,0 +1,4 @@ +t from-192.168.100.1=97-to-192.168.200.1=97 +C rmv [Phase 2]:Connections=from-192.168.100.1=97-to-192.168.200.1=97 +C rms [from-192.168.100.1=97-to-192.168.200.1=97] +C rms [phase2-from-192.168.100.1=97-to-192.168.200.1=97] diff --git a/src/regress/sbin/ipsecctl/ikedel11.in b/src/regress/sbin/ipsecctl/ikedel11.in new file mode 100644 index 000000000..c7f1d04ad --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel11.in @@ -0,0 +1,2 @@ +ike from 1.1.1.1 to any local 192.168.3.2 peer 192.168.3.1 +ike from 1.1.1.1 to any peer 192.168.3.1 local 192.168.3.2 diff --git a/src/regress/sbin/ipsecctl/ikedel11.ok b/src/regress/sbin/ipsecctl/ikedel11.ok new file mode 100644 index 000000000..475f10b06 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel11.ok @@ -0,0 +1,8 @@ +t from-1.1.1.1-to-0.0.0.0/0 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-0.0.0.0/0 +C rms [from-1.1.1.1-to-0.0.0.0/0] +C rms [phase2-from-1.1.1.1-to-0.0.0.0/0] +t from-1.1.1.1-to-0.0.0.0/0 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-0.0.0.0/0 +C rms [from-1.1.1.1-to-0.0.0.0/0] +C rms [phase2-from-1.1.1.1-to-0.0.0.0/0] diff --git a/src/regress/sbin/ipsecctl/ikedel12.in b/src/regress/sbin/ipsecctl/ikedel12.in new file mode 100644 index 000000000..b85bd6ee2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel12.in @@ -0,0 +1,2 @@ +TO="{ 2.2.2.0/24, 3.3.3.0/24, 4.4.4.0/24 }" +ike from 1.1.1.1 to $TO peer 5.5.5.5 diff --git a/src/regress/sbin/ipsecctl/ikedel12.ok b/src/regress/sbin/ipsecctl/ikedel12.ok new file mode 100644 index 000000000..22a8c644d --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel12.ok @@ -0,0 +1,13 @@ +TO = "{ 2.2.2.0/24, 3.3.3.0/24, 4.4.4.0/24 }" +t from-1.1.1.1-to-2.2.2.0/24 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.0/24 +C rms [from-1.1.1.1-to-2.2.2.0/24] +C rms [phase2-from-1.1.1.1-to-2.2.2.0/24] +t from-1.1.1.1-to-3.3.3.0/24 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-3.3.3.0/24 +C rms [from-1.1.1.1-to-3.3.3.0/24] +C rms [phase2-from-1.1.1.1-to-3.3.3.0/24] +t from-1.1.1.1-to-4.4.4.0/24 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-4.4.4.0/24 +C rms [from-1.1.1.1-to-4.4.4.0/24] +C rms [phase2-from-1.1.1.1-to-4.4.4.0/24] diff --git a/src/regress/sbin/ipsecctl/ikedel13.in b/src/regress/sbin/ipsecctl/ikedel13.in new file mode 100644 index 000000000..b3aaf8b4b --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel13.in @@ -0,0 +1,2 @@ +FROM="{ 2.2.2.0/24, 3.3.3.0/24, 4.4.4.0/24 }" +ike from $FROM to 1.1.1.1 diff --git a/src/regress/sbin/ipsecctl/ikedel13.ok b/src/regress/sbin/ipsecctl/ikedel13.ok new file mode 100644 index 000000000..e80665011 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel13.ok @@ -0,0 +1,13 @@ +FROM = "{ 2.2.2.0/24, 3.3.3.0/24, 4.4.4.0/24 }" +t from-2.2.2.0/24-to-1.1.1.1 +C rmv [Phase 2]:Connections=from-2.2.2.0/24-to-1.1.1.1 +C rms [from-2.2.2.0/24-to-1.1.1.1] +C rms [phase2-from-2.2.2.0/24-to-1.1.1.1] +t from-3.3.3.0/24-to-1.1.1.1 +C rmv [Phase 2]:Connections=from-3.3.3.0/24-to-1.1.1.1 +C rms [from-3.3.3.0/24-to-1.1.1.1] +C rms [phase2-from-3.3.3.0/24-to-1.1.1.1] +t from-4.4.4.0/24-to-1.1.1.1 +C rmv [Phase 2]:Connections=from-4.4.4.0/24-to-1.1.1.1 +C rms [from-4.4.4.0/24-to-1.1.1.1] +C rms [phase2-from-4.4.4.0/24-to-1.1.1.1] diff --git a/src/regress/sbin/ipsecctl/ikedel14.in b/src/regress/sbin/ipsecctl/ikedel14.in new file mode 100644 index 000000000..9758b2171 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel14.in @@ -0,0 +1,3 @@ +FROM="{ 2.2.2.0/24, 3.3.3.0/24, 4.4.4.0/24 }" +TO="{ 5.5.5.0/24, 6.6.6.0/24, 7.7.7.0/24 }" +ike from $FROM to $TO peer 1.1.1.1 diff --git a/src/regress/sbin/ipsecctl/ikedel14.ok b/src/regress/sbin/ipsecctl/ikedel14.ok new file mode 100644 index 000000000..b3a89db61 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel14.ok @@ -0,0 +1,38 @@ +FROM = "{ 2.2.2.0/24, 3.3.3.0/24, 4.4.4.0/24 }" +TO = "{ 5.5.5.0/24, 6.6.6.0/24, 7.7.7.0/24 }" +t from-2.2.2.0/24-to-5.5.5.0/24 +C rmv [Phase 2]:Connections=from-2.2.2.0/24-to-5.5.5.0/24 +C rms [from-2.2.2.0/24-to-5.5.5.0/24] +C rms [phase2-from-2.2.2.0/24-to-5.5.5.0/24] +t from-2.2.2.0/24-to-6.6.6.0/24 +C rmv [Phase 2]:Connections=from-2.2.2.0/24-to-6.6.6.0/24 +C rms [from-2.2.2.0/24-to-6.6.6.0/24] +C rms [phase2-from-2.2.2.0/24-to-6.6.6.0/24] +t from-2.2.2.0/24-to-7.7.7.0/24 +C rmv [Phase 2]:Connections=from-2.2.2.0/24-to-7.7.7.0/24 +C rms [from-2.2.2.0/24-to-7.7.7.0/24] +C rms [phase2-from-2.2.2.0/24-to-7.7.7.0/24] +t from-3.3.3.0/24-to-5.5.5.0/24 +C rmv [Phase 2]:Connections=from-3.3.3.0/24-to-5.5.5.0/24 +C rms [from-3.3.3.0/24-to-5.5.5.0/24] +C rms [phase2-from-3.3.3.0/24-to-5.5.5.0/24] +t from-3.3.3.0/24-to-6.6.6.0/24 +C rmv [Phase 2]:Connections=from-3.3.3.0/24-to-6.6.6.0/24 +C rms [from-3.3.3.0/24-to-6.6.6.0/24] +C rms [phase2-from-3.3.3.0/24-to-6.6.6.0/24] +t from-3.3.3.0/24-to-7.7.7.0/24 +C rmv [Phase 2]:Connections=from-3.3.3.0/24-to-7.7.7.0/24 +C rms [from-3.3.3.0/24-to-7.7.7.0/24] +C rms [phase2-from-3.3.3.0/24-to-7.7.7.0/24] +t from-4.4.4.0/24-to-5.5.5.0/24 +C rmv [Phase 2]:Connections=from-4.4.4.0/24-to-5.5.5.0/24 +C rms [from-4.4.4.0/24-to-5.5.5.0/24] +C rms [phase2-from-4.4.4.0/24-to-5.5.5.0/24] +t from-4.4.4.0/24-to-6.6.6.0/24 +C rmv [Phase 2]:Connections=from-4.4.4.0/24-to-6.6.6.0/24 +C rms [from-4.4.4.0/24-to-6.6.6.0/24] +C rms [phase2-from-4.4.4.0/24-to-6.6.6.0/24] +t from-4.4.4.0/24-to-7.7.7.0/24 +C rmv [Phase 2]:Connections=from-4.4.4.0/24-to-7.7.7.0/24 +C rms [from-4.4.4.0/24-to-7.7.7.0/24] +C rms [phase2-from-4.4.4.0/24-to-7.7.7.0/24] diff --git a/src/regress/sbin/ipsecctl/ikedel15.in b/src/regress/sbin/ipsecctl/ikedel15.in new file mode 100644 index 000000000..4470dc3b3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel15.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 3ffe::1 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ikedel15.ok b/src/regress/sbin/ipsecctl/ikedel15.ok new file mode 100644 index 000000000..84b7935d3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel15.ok @@ -0,0 +1,4 @@ +t from-10.1.1.0/24-to-10.1.2.0/24 +C rmv [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 +C rms [from-10.1.1.0/24-to-10.1.2.0/24] +C rms [phase2-from-10.1.1.0/24-to-10.1.2.0/24] diff --git a/src/regress/sbin/ipsecctl/ikedel16.in b/src/regress/sbin/ipsecctl/ikedel16.in new file mode 100644 index 000000000..bd4e41639 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel16.in @@ -0,0 +1,8 @@ +ike esp from 10.1.1.0/24 to 10.1.2.0/24 peer 3ffe::29 \ + main auth hmac-sha1 enc 3des group modp3072 \ + quick auth hmac-sha1 enc 3des group modp3072 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de +ike esp from 3ffe::51 to 3ffe::29 \ + main auth hmac-sha1 enc aes group modp3072 \ + quick auth hmac-sha2-256 enc aes group modp3072 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ikedel16.ok b/src/regress/sbin/ipsecctl/ikedel16.ok new file mode 100644 index 000000000..cdb180fb4 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel16.ok @@ -0,0 +1,8 @@ +t from-10.1.1.0/24-to-10.1.2.0/24 +C rmv [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 +C rms [from-10.1.1.0/24-to-10.1.2.0/24] +C rms [phase2-from-10.1.1.0/24-to-10.1.2.0/24] +t from-3ffe::51-to-3ffe::29 +C rmv [Phase 2]:Connections=from-3ffe::51-to-3ffe::29 +C rms [from-3ffe::51-to-3ffe::29] +C rms [phase2-from-3ffe::51-to-3ffe::29] diff --git a/src/regress/sbin/ipsecctl/ikedel17.in b/src/regress/sbin/ipsecctl/ikedel17.in new file mode 100644 index 000000000..60cc40a85 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel17.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 3ffe::29 +ike from 3ffe::51 to 3ffe::29 diff --git a/src/regress/sbin/ipsecctl/ikedel17.ok b/src/regress/sbin/ipsecctl/ikedel17.ok new file mode 100644 index 000000000..cdb180fb4 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel17.ok @@ -0,0 +1,8 @@ +t from-10.1.1.0/24-to-10.1.2.0/24 +C rmv [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 +C rms [from-10.1.1.0/24-to-10.1.2.0/24] +C rms [phase2-from-10.1.1.0/24-to-10.1.2.0/24] +t from-3ffe::51-to-3ffe::29 +C rmv [Phase 2]:Connections=from-3ffe::51-to-3ffe::29 +C rms [from-3ffe::51-to-3ffe::29] +C rms [phase2-from-3ffe::51-to-3ffe::29] diff --git a/src/regress/sbin/ipsecctl/ikedel18.in b/src/regress/sbin/ipsecctl/ikedel18.in new file mode 100644 index 000000000..7fabcbf79 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel18.in @@ -0,0 +1,2 @@ +ike passive from 10.1.2.0/24 to 10.1.1.0/24 peer 3ffe::51 +ike passive from 3ffe::29 to 3ffe::51 diff --git a/src/regress/sbin/ipsecctl/ikedel18.ok b/src/regress/sbin/ipsecctl/ikedel18.ok new file mode 100644 index 000000000..08de725df --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel18.ok @@ -0,0 +1,8 @@ +t from-10.1.2.0/24-to-10.1.1.0/24 +C rmv [Phase 2]:Passive-Connections=from-10.1.2.0/24-to-10.1.1.0/24 +C rms [from-10.1.2.0/24-to-10.1.1.0/24] +C rms [phase2-from-10.1.2.0/24-to-10.1.1.0/24] +t from-3ffe::29-to-3ffe::51 +C rmv [Phase 2]:Passive-Connections=from-3ffe::29-to-3ffe::51 +C rms [from-3ffe::29-to-3ffe::51] +C rms [phase2-from-3ffe::29-to-3ffe::51] diff --git a/src/regress/sbin/ipsecctl/ikedel19.in b/src/regress/sbin/ipsecctl/ikedel19.in new file mode 100644 index 000000000..d4e3fdb1d --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel19.in @@ -0,0 +1 @@ +ike from 1.1.1.1 to any peer 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ikedel19.ok b/src/regress/sbin/ipsecctl/ikedel19.ok new file mode 100644 index 000000000..877f8f40f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel19.ok @@ -0,0 +1,4 @@ +t from-1.1.1.1-to-0.0.0.0/0 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-0.0.0.0/0 +C rms [from-1.1.1.1-to-0.0.0.0/0] +C rms [phase2-from-1.1.1.1-to-0.0.0.0/0] diff --git a/src/regress/sbin/ipsecctl/ikedel2.in b/src/regress/sbin/ipsecctl/ikedel2.in new file mode 100644 index 000000000..8e67139c3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel2.in @@ -0,0 +1 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 131.188.33.29 diff --git a/src/regress/sbin/ipsecctl/ikedel2.ok b/src/regress/sbin/ipsecctl/ikedel2.ok new file mode 100644 index 000000000..84b7935d3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel2.ok @@ -0,0 +1,4 @@ +t from-10.1.1.0/24-to-10.1.2.0/24 +C rmv [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 +C rms [from-10.1.1.0/24-to-10.1.2.0/24] +C rms [phase2-from-10.1.1.0/24-to-10.1.2.0/24] diff --git a/src/regress/sbin/ipsecctl/ikedel20.in b/src/regress/sbin/ipsecctl/ikedel20.in new file mode 100644 index 000000000..c7f1d04ad --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel20.in @@ -0,0 +1,2 @@ +ike from 1.1.1.1 to any local 192.168.3.2 peer 192.168.3.1 +ike from 1.1.1.1 to any peer 192.168.3.1 local 192.168.3.2 diff --git a/src/regress/sbin/ipsecctl/ikedel20.ok b/src/regress/sbin/ipsecctl/ikedel20.ok new file mode 100644 index 000000000..475f10b06 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel20.ok @@ -0,0 +1,8 @@ +t from-1.1.1.1-to-0.0.0.0/0 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-0.0.0.0/0 +C rms [from-1.1.1.1-to-0.0.0.0/0] +C rms [phase2-from-1.1.1.1-to-0.0.0.0/0] +t from-1.1.1.1-to-0.0.0.0/0 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-0.0.0.0/0 +C rms [from-1.1.1.1-to-0.0.0.0/0] +C rms [phase2-from-1.1.1.1-to-0.0.0.0/0] diff --git a/src/regress/sbin/ipsecctl/ikedel21.in b/src/regress/sbin/ipsecctl/ikedel21.in new file mode 100644 index 000000000..213c71e19 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel21.in @@ -0,0 +1 @@ +ike from 3ffe::1 to 3ffe::2 diff --git a/src/regress/sbin/ipsecctl/ikedel21.ok b/src/regress/sbin/ipsecctl/ikedel21.ok new file mode 100644 index 000000000..ece0234b9 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel21.ok @@ -0,0 +1,4 @@ +t from-3ffe::1-to-3ffe::2 +C rmv [Phase 2]:Connections=from-3ffe::1-to-3ffe::2 +C rms [from-3ffe::1-to-3ffe::2] +C rms [phase2-from-3ffe::1-to-3ffe::2] diff --git a/src/regress/sbin/ipsecctl/ikedel22.in b/src/regress/sbin/ipsecctl/ikedel22.in new file mode 100644 index 000000000..ddc4a19e1 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel22.in @@ -0,0 +1 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ikedel22.ok b/src/regress/sbin/ipsecctl/ikedel22.ok new file mode 100644 index 000000000..84b7935d3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel22.ok @@ -0,0 +1,4 @@ +t from-10.1.1.0/24-to-10.1.2.0/24 +C rmv [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 +C rms [from-10.1.1.0/24-to-10.1.2.0/24] +C rms [phase2-from-10.1.1.0/24-to-10.1.2.0/24] diff --git a/src/regress/sbin/ipsecctl/ikedel23.in b/src/regress/sbin/ipsecctl/ikedel23.in new file mode 100644 index 000000000..2b129c8f2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel23.in @@ -0,0 +1,2 @@ +ike from 3ffe::51 to 3ffe::29 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ikedel23.ok b/src/regress/sbin/ipsecctl/ikedel23.ok new file mode 100644 index 000000000..e6e030043 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel23.ok @@ -0,0 +1,4 @@ +t from-3ffe::51-to-3ffe::29 +C rmv [Phase 2]:Connections=from-3ffe::51-to-3ffe::29 +C rms [from-3ffe::51-to-3ffe::29] +C rms [phase2-from-3ffe::51-to-3ffe::29] diff --git a/src/regress/sbin/ipsecctl/ikedel29.in b/src/regress/sbin/ipsecctl/ikedel29.in new file mode 100644 index 000000000..d3f6c5b81 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel29.in @@ -0,0 +1 @@ +ike dynamic esp from 3ffe:3::/64 to 3ffe:4::/64 peer 3ffe:2::1 srcid noname.my.domain diff --git a/src/regress/sbin/ipsecctl/ikedel29.ok b/src/regress/sbin/ipsecctl/ikedel29.ok new file mode 100644 index 000000000..b599d9ed5 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel29.ok @@ -0,0 +1,4 @@ +t from-3ffe:3::/64-to-3ffe:4::/64 +C rmv [Phase 2]:Connections=from-3ffe:3::/64-to-3ffe:4::/64 +C rms [from-3ffe:3::/64-to-3ffe:4::/64] +C rms [phase2-from-3ffe:3::/64-to-3ffe:4::/64] diff --git a/src/regress/sbin/ipsecctl/ikedel3.in b/src/regress/sbin/ipsecctl/ikedel3.in new file mode 100644 index 000000000..4dec756ed --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel3.in @@ -0,0 +1,2 @@ +ike from 131.188.33.51 to 131.188.33.29 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ikedel3.ok b/src/regress/sbin/ipsecctl/ikedel3.ok new file mode 100644 index 000000000..3b5ba8a39 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel3.ok @@ -0,0 +1,4 @@ +t from-131.188.33.51-to-131.188.33.29 +C rmv [Phase 2]:Connections=from-131.188.33.51-to-131.188.33.29 +C rms [from-131.188.33.51-to-131.188.33.29] +C rms [phase2-from-131.188.33.51-to-131.188.33.29] diff --git a/src/regress/sbin/ipsecctl/ikedel30.in b/src/regress/sbin/ipsecctl/ikedel30.in new file mode 100644 index 000000000..c09a378cd --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel30.in @@ -0,0 +1 @@ +ike esp proto etherip from 3ffe::1 to 3ffe::2 diff --git a/src/regress/sbin/ipsecctl/ikedel30.ok b/src/regress/sbin/ipsecctl/ikedel30.ok new file mode 100644 index 000000000..f06f4e31b --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel30.ok @@ -0,0 +1,4 @@ +t from-3ffe::1=97-to-3ffe::2=97 +C rmv [Phase 2]:Connections=from-3ffe::1=97-to-3ffe::2=97 +C rms [from-3ffe::1=97-to-3ffe::2=97] +C rms [phase2-from-3ffe::1=97-to-3ffe::2=97] diff --git a/src/regress/sbin/ipsecctl/ikedel31.in b/src/regress/sbin/ipsecctl/ikedel31.in new file mode 100644 index 000000000..c818df63f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel31.in @@ -0,0 +1 @@ +ike from 3ffe:2::1 to any peer 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ikedel31.ok b/src/regress/sbin/ipsecctl/ikedel31.ok new file mode 100644 index 000000000..718af424d --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel31.ok @@ -0,0 +1,4 @@ +t from-3ffe:2::1-to-::/0 +C rmv [Phase 2]:Connections=from-3ffe:2::1-to-::/0 +C rms [from-3ffe:2::1-to-::/0] +C rms [phase2-from-3ffe:2::1-to-::/0] diff --git a/src/regress/sbin/ipsecctl/ikedel32.in b/src/regress/sbin/ipsecctl/ikedel32.in new file mode 100644 index 000000000..0851e70d0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel32.in @@ -0,0 +1 @@ +ike from 1.1.1.1 to 2.2.2.2 quick life 1200 diff --git a/src/regress/sbin/ipsecctl/ikedel32.ok b/src/regress/sbin/ipsecctl/ikedel32.ok new file mode 100644 index 000000000..2d8a848f3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel32.ok @@ -0,0 +1,4 @@ +t from-1.1.1.1-to-2.2.2.2 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 +C rms [from-1.1.1.1-to-2.2.2.2] +C rms [phase2-from-1.1.1.1-to-2.2.2.2] diff --git a/src/regress/sbin/ipsecctl/ikedel33.in b/src/regress/sbin/ipsecctl/ikedel33.in new file mode 100644 index 000000000..10aff9739 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel33.in @@ -0,0 +1 @@ +ike from 1.1.1.1 to 2.2.2.2 main life 3600 diff --git a/src/regress/sbin/ipsecctl/ikedel33.ok b/src/regress/sbin/ipsecctl/ikedel33.ok new file mode 100644 index 000000000..2d8a848f3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel33.ok @@ -0,0 +1,4 @@ +t from-1.1.1.1-to-2.2.2.2 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 +C rms [from-1.1.1.1-to-2.2.2.2] +C rms [phase2-from-1.1.1.1-to-2.2.2.2] diff --git a/src/regress/sbin/ipsecctl/ikedel34.in b/src/regress/sbin/ipsecctl/ikedel34.in new file mode 100644 index 000000000..60ded09d6 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel34.in @@ -0,0 +1 @@ +ike from 3ffe::1/24 to 3ffe:2::/24 peer 1.2.3.4 diff --git a/src/regress/sbin/ipsecctl/ikedel34.ok b/src/regress/sbin/ipsecctl/ikedel34.ok new file mode 100644 index 000000000..8b9222ca3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel34.ok @@ -0,0 +1,4 @@ +t from-3ffe::1/24-to-3ffe:2::/24 +C rmv [Phase 2]:Connections=from-3ffe::1/24-to-3ffe:2::/24 +C rms [from-3ffe::1/24-to-3ffe:2::/24] +C rms [phase2-from-3ffe::1/24-to-3ffe:2::/24] diff --git a/src/regress/sbin/ipsecctl/ikedel35.in b/src/regress/sbin/ipsecctl/ikedel35.in new file mode 100644 index 000000000..fbf177e5f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel35.in @@ -0,0 +1 @@ +ike from 3ffe:2::/24 to 3ffe::1/24 peer 1.2.3.4 diff --git a/src/regress/sbin/ipsecctl/ikedel35.ok b/src/regress/sbin/ipsecctl/ikedel35.ok new file mode 100644 index 000000000..d5a2dba97 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel35.ok @@ -0,0 +1,4 @@ +t from-3ffe:2::/24-to-3ffe::1/24 +C rmv [Phase 2]:Connections=from-3ffe:2::/24-to-3ffe::1/24 +C rms [from-3ffe:2::/24-to-3ffe::1/24] +C rms [phase2-from-3ffe:2::/24-to-3ffe::1/24] diff --git a/src/regress/sbin/ipsecctl/ikedel36.in b/src/regress/sbin/ipsecctl/ikedel36.in new file mode 100644 index 000000000..ae00f2472 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel36.in @@ -0,0 +1 @@ +ike from 3ffe::3 to 3ffe::4 peer 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ikedel36.ok b/src/regress/sbin/ipsecctl/ikedel36.ok new file mode 100644 index 000000000..374004944 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel36.ok @@ -0,0 +1,4 @@ +t from-3ffe::3-to-3ffe::4 +C rmv [Phase 2]:Connections=from-3ffe::3-to-3ffe::4 +C rms [from-3ffe::3-to-3ffe::4] +C rms [phase2-from-3ffe::3-to-3ffe::4] diff --git a/src/regress/sbin/ipsecctl/ikedel37.in b/src/regress/sbin/ipsecctl/ikedel37.in new file mode 100644 index 000000000..dad86107c --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel37.in @@ -0,0 +1,2 @@ +ike from 3ffe:1::/64 to 3ffe:2::/64 peer 3ffe::1 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ikedel37.ok b/src/regress/sbin/ipsecctl/ikedel37.ok new file mode 100644 index 000000000..f26b164ad --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel37.ok @@ -0,0 +1,4 @@ +t from-3ffe:1::/64-to-3ffe:2::/64 +C rmv [Phase 2]:Connections=from-3ffe:1::/64-to-3ffe:2::/64 +C rms [from-3ffe:1::/64-to-3ffe:2::/64] +C rms [phase2-from-3ffe:1::/64-to-3ffe:2::/64] diff --git a/src/regress/sbin/ipsecctl/ikedel38.in b/src/regress/sbin/ipsecctl/ikedel38.in new file mode 100644 index 000000000..2f0968bc0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel38.in @@ -0,0 +1,9 @@ +ike esp from 3ffe:1::/64 to 3ffe:2::/64 peer 3ffe::29 \ + main auth hmac-sha1 enc 3des group modp3072 \ + quick auth hmac-sha1 enc 3des group modp3072 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de +ike esp from 3ffe::51 to 3ffe::29 \ + main auth hmac-sha1 enc aes group modp3072 \ + quick auth hmac-sha2-256 enc aes group modp3072 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de + diff --git a/src/regress/sbin/ipsecctl/ikedel38.ok b/src/regress/sbin/ipsecctl/ikedel38.ok new file mode 100644 index 000000000..d662ee836 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel38.ok @@ -0,0 +1,8 @@ +t from-3ffe:1::/64-to-3ffe:2::/64 +C rmv [Phase 2]:Connections=from-3ffe:1::/64-to-3ffe:2::/64 +C rms [from-3ffe:1::/64-to-3ffe:2::/64] +C rms [phase2-from-3ffe:1::/64-to-3ffe:2::/64] +t from-3ffe::51-to-3ffe::29 +C rmv [Phase 2]:Connections=from-3ffe::51-to-3ffe::29 +C rms [from-3ffe::51-to-3ffe::29] +C rms [phase2-from-3ffe::51-to-3ffe::29] diff --git a/src/regress/sbin/ipsecctl/ikedel39.in b/src/regress/sbin/ipsecctl/ikedel39.in new file mode 100644 index 000000000..b1c9c036f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel39.in @@ -0,0 +1,2 @@ +ike from 3ffe:1::/64 to 3ffe:2::/64 peer 3ffe::29 +ike from 3ffe::51 to 3ffe::29 diff --git a/src/regress/sbin/ipsecctl/ikedel39.ok b/src/regress/sbin/ipsecctl/ikedel39.ok new file mode 100644 index 000000000..d662ee836 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel39.ok @@ -0,0 +1,8 @@ +t from-3ffe:1::/64-to-3ffe:2::/64 +C rmv [Phase 2]:Connections=from-3ffe:1::/64-to-3ffe:2::/64 +C rms [from-3ffe:1::/64-to-3ffe:2::/64] +C rms [phase2-from-3ffe:1::/64-to-3ffe:2::/64] +t from-3ffe::51-to-3ffe::29 +C rmv [Phase 2]:Connections=from-3ffe::51-to-3ffe::29 +C rms [from-3ffe::51-to-3ffe::29] +C rms [phase2-from-3ffe::51-to-3ffe::29] diff --git a/src/regress/sbin/ipsecctl/ikedel4.in b/src/regress/sbin/ipsecctl/ikedel4.in new file mode 100644 index 000000000..3bd0446aa --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel4.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 131.188.33.29 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ikedel4.ok b/src/regress/sbin/ipsecctl/ikedel4.ok new file mode 100644 index 000000000..84b7935d3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel4.ok @@ -0,0 +1,4 @@ +t from-10.1.1.0/24-to-10.1.2.0/24 +C rmv [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 +C rms [from-10.1.1.0/24-to-10.1.2.0/24] +C rms [phase2-from-10.1.1.0/24-to-10.1.2.0/24] diff --git a/src/regress/sbin/ipsecctl/ikedel40.in b/src/regress/sbin/ipsecctl/ikedel40.in new file mode 100644 index 000000000..a9d288e7b --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel40.in @@ -0,0 +1,2 @@ +ike passive from 3ffe:1::/64 to 3ffe:2::/64 peer 3ffe::51 +ike passive from 3ffe::29 to 3ffe::51 diff --git a/src/regress/sbin/ipsecctl/ikedel40.ok b/src/regress/sbin/ipsecctl/ikedel40.ok new file mode 100644 index 000000000..ea82fffd1 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel40.ok @@ -0,0 +1,8 @@ +t from-3ffe:1::/64-to-3ffe:2::/64 +C rmv [Phase 2]:Passive-Connections=from-3ffe:1::/64-to-3ffe:2::/64 +C rms [from-3ffe:1::/64-to-3ffe:2::/64] +C rms [phase2-from-3ffe:1::/64-to-3ffe:2::/64] +t from-3ffe::29-to-3ffe::51 +C rmv [Phase 2]:Passive-Connections=from-3ffe::29-to-3ffe::51 +C rms [from-3ffe::29-to-3ffe::51] +C rms [phase2-from-3ffe::29-to-3ffe::51] diff --git a/src/regress/sbin/ipsecctl/ikedel41.in b/src/regress/sbin/ipsecctl/ikedel41.in new file mode 100644 index 000000000..ae225eb5e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel41.in @@ -0,0 +1 @@ +ike from 1.1.1.1 to 2.2.2.2 main life 3600 quick life 1200 diff --git a/src/regress/sbin/ipsecctl/ikedel41.ok b/src/regress/sbin/ipsecctl/ikedel41.ok new file mode 100644 index 000000000..2d8a848f3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel41.ok @@ -0,0 +1,4 @@ +t from-1.1.1.1-to-2.2.2.2 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 +C rms [from-1.1.1.1-to-2.2.2.2] +C rms [phase2-from-1.1.1.1-to-2.2.2.2] diff --git a/src/regress/sbin/ipsecctl/ikedel42.in b/src/regress/sbin/ipsecctl/ikedel42.in new file mode 100644 index 000000000..5fd64cf0a --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel42.in @@ -0,0 +1 @@ +ike esp proto udp from 1.1.1.1 port ntp to 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ikedel42.ok b/src/regress/sbin/ipsecctl/ikedel42.ok new file mode 100644 index 000000000..63c5bac70 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel42.ok @@ -0,0 +1,4 @@ +t from-1.1.1.1=17:123-to-2.2.2.2=17 +C rmv [Phase 2]:Connections=from-1.1.1.1=17:123-to-2.2.2.2=17 +C rms [from-1.1.1.1=17:123-to-2.2.2.2=17] +C rms [phase2-from-1.1.1.1=17:123-to-2.2.2.2=17] diff --git a/src/regress/sbin/ipsecctl/ikedel43.in b/src/regress/sbin/ipsecctl/ikedel43.in new file mode 100644 index 000000000..509ab0c07 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel43.in @@ -0,0 +1 @@ +ike esp proto tcp from 3ffe::1 port 2022 to 3ffe::2 port ssh diff --git a/src/regress/sbin/ipsecctl/ikedel43.ok b/src/regress/sbin/ipsecctl/ikedel43.ok new file mode 100644 index 000000000..6c2226435 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel43.ok @@ -0,0 +1,4 @@ +t from-3ffe::1=6:2022-to-3ffe::2=6:22 +C rmv [Phase 2]:Connections=from-3ffe::1=6:2022-to-3ffe::2=6:22 +C rms [from-3ffe::1=6:2022-to-3ffe::2=6:22] +C rms [phase2-from-3ffe::1=6:2022-to-3ffe::2=6:22] diff --git a/src/regress/sbin/ipsecctl/ikedel46.in b/src/regress/sbin/ipsecctl/ikedel46.in new file mode 100644 index 000000000..e3f90f6c0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel46.in @@ -0,0 +1,2 @@ +ike esp tunnel from 1.1.1.1 to 2.2.2.2 +ike esp transport from 1.1.1.1 to 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ikedel46.ok b/src/regress/sbin/ipsecctl/ikedel46.ok new file mode 100644 index 000000000..72e3255f9 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel46.ok @@ -0,0 +1,8 @@ +t from-1.1.1.1-to-2.2.2.2 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 +C rms [from-1.1.1.1-to-2.2.2.2] +C rms [phase2-from-1.1.1.1-to-2.2.2.2] +t from-1.1.1.1-to-2.2.2.2 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-2.2.2.2 +C rms [from-1.1.1.1-to-2.2.2.2] +C rms [phase2-from-1.1.1.1-to-2.2.2.2] diff --git a/src/regress/sbin/ipsecctl/ikedel47.in b/src/regress/sbin/ipsecctl/ikedel47.in new file mode 100644 index 000000000..6d12bf6a9 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel47.in @@ -0,0 +1 @@ +ike from any to any diff --git a/src/regress/sbin/ipsecctl/ikedel47.ok b/src/regress/sbin/ipsecctl/ikedel47.ok new file mode 100644 index 000000000..21bb8960f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel47.ok @@ -0,0 +1,8 @@ +t from-0.0.0.0/0-to-0.0.0.0/0 +C rmv [Phase 2]:Connections=from-0.0.0.0/0-to-0.0.0.0/0 +C rms [from-0.0.0.0/0-to-0.0.0.0/0] +C rms [phase2-from-0.0.0.0/0-to-0.0.0.0/0] +t from-::/0-to-::/0 +C rmv [Phase 2]:Connections=from-::/0-to-::/0 +C rms [from-::/0-to-::/0] +C rms [phase2-from-::/0-to-::/0] diff --git a/src/regress/sbin/ipsecctl/ikedel5.in b/src/regress/sbin/ipsecctl/ikedel5.in new file mode 100644 index 000000000..7a4c38a5d --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel5.in @@ -0,0 +1,8 @@ +ike esp from 10.1.1.0/24 to 10.1.2.0/24 peer 131.188.33.29 \ + main auth hmac-sha1 enc 3des group modp3072 \ + quick auth hmac-sha1 enc 3des group modp3072 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de +ike esp from 131.188.33.51 to 131.188.33.29 \ + main auth hmac-sha1 enc aes group modp3072 \ + quick auth hmac-sha2-256 enc aes group modp3072 \ + srcid sharleena.as10.net dstid faui31o.informatik.uni-erlangen.de diff --git a/src/regress/sbin/ipsecctl/ikedel5.ok b/src/regress/sbin/ipsecctl/ikedel5.ok new file mode 100644 index 000000000..ffe427b99 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel5.ok @@ -0,0 +1,8 @@ +t from-10.1.1.0/24-to-10.1.2.0/24 +C rmv [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 +C rms [from-10.1.1.0/24-to-10.1.2.0/24] +C rms [phase2-from-10.1.1.0/24-to-10.1.2.0/24] +t from-131.188.33.51-to-131.188.33.29 +C rmv [Phase 2]:Connections=from-131.188.33.51-to-131.188.33.29 +C rms [from-131.188.33.51-to-131.188.33.29] +C rms [phase2-from-131.188.33.51-to-131.188.33.29] diff --git a/src/regress/sbin/ipsecctl/ikedel6.in b/src/regress/sbin/ipsecctl/ikedel6.in new file mode 100644 index 000000000..9ae176184 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel6.in @@ -0,0 +1,2 @@ +ike from 10.1.1.0/24 to 10.1.2.0/24 peer 131.188.33.29 +ike from 131.188.33.51 to 131.188.33.29 diff --git a/src/regress/sbin/ipsecctl/ikedel6.ok b/src/regress/sbin/ipsecctl/ikedel6.ok new file mode 100644 index 000000000..ffe427b99 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel6.ok @@ -0,0 +1,8 @@ +t from-10.1.1.0/24-to-10.1.2.0/24 +C rmv [Phase 2]:Connections=from-10.1.1.0/24-to-10.1.2.0/24 +C rms [from-10.1.1.0/24-to-10.1.2.0/24] +C rms [phase2-from-10.1.1.0/24-to-10.1.2.0/24] +t from-131.188.33.51-to-131.188.33.29 +C rmv [Phase 2]:Connections=from-131.188.33.51-to-131.188.33.29 +C rms [from-131.188.33.51-to-131.188.33.29] +C rms [phase2-from-131.188.33.51-to-131.188.33.29] diff --git a/src/regress/sbin/ipsecctl/ikedel7.in b/src/regress/sbin/ipsecctl/ikedel7.in new file mode 100644 index 000000000..90197b85e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel7.in @@ -0,0 +1,2 @@ +ike passive from 10.1.2.0/24 to 10.1.1.0/24 peer 131.188.33.51 +ike passive from 131.188.33.29 to 131.188.33.51 diff --git a/src/regress/sbin/ipsecctl/ikedel7.ok b/src/regress/sbin/ipsecctl/ikedel7.ok new file mode 100644 index 000000000..8102d736f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel7.ok @@ -0,0 +1,8 @@ +t from-10.1.2.0/24-to-10.1.1.0/24 +C rmv [Phase 2]:Passive-Connections=from-10.1.2.0/24-to-10.1.1.0/24 +C rms [from-10.1.2.0/24-to-10.1.1.0/24] +C rms [phase2-from-10.1.2.0/24-to-10.1.1.0/24] +t from-131.188.33.29-to-131.188.33.51 +C rmv [Phase 2]:Passive-Connections=from-131.188.33.29-to-131.188.33.51 +C rms [from-131.188.33.29-to-131.188.33.51] +C rms [phase2-from-131.188.33.29-to-131.188.33.51] diff --git a/src/regress/sbin/ipsecctl/ikedel8.in b/src/regress/sbin/ipsecctl/ikedel8.in new file mode 100644 index 000000000..6eb530217 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel8.in @@ -0,0 +1 @@ +ike from 1.1.1.1 to any peer 192.168.3.1 diff --git a/src/regress/sbin/ipsecctl/ikedel8.ok b/src/regress/sbin/ipsecctl/ikedel8.ok new file mode 100644 index 000000000..877f8f40f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel8.ok @@ -0,0 +1,4 @@ +t from-1.1.1.1-to-0.0.0.0/0 +C rmv [Phase 2]:Connections=from-1.1.1.1-to-0.0.0.0/0 +C rms [from-1.1.1.1-to-0.0.0.0/0] +C rms [phase2-from-1.1.1.1-to-0.0.0.0/0] diff --git a/src/regress/sbin/ipsecctl/ikedel9.in b/src/regress/sbin/ipsecctl/ikedel9.in new file mode 100644 index 000000000..f00ab35a8 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel9.in @@ -0,0 +1 @@ +ike dynamic esp from 3.3.3.0/24 to 4.4.4.0/24 peer 2.2.2.2 srcid noname.my.domain diff --git a/src/regress/sbin/ipsecctl/ikedel9.ok b/src/regress/sbin/ipsecctl/ikedel9.ok new file mode 100644 index 000000000..c1cd47a2b --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedel9.ok @@ -0,0 +1,4 @@ +t from-3.3.3.0/24-to-4.4.4.0/24 +C rmv [Phase 2]:Connections=from-3.3.3.0/24-to-4.4.4.0/24 +C rms [from-3.3.3.0/24-to-4.4.4.0/24] +C rms [phase2-from-3.3.3.0/24-to-4.4.4.0/24] diff --git a/src/regress/sbin/ipsecctl/ikedeldel1.in b/src/regress/sbin/ipsecctl/ikedeldel1.in new file mode 100644 index 000000000..c627e0e9f --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedeldel1.in @@ -0,0 +1 @@ +ike from 131.188.33.51 to 131.188.33.29 diff --git a/src/regress/sbin/ipsecctl/ikedeldel1.ok b/src/regress/sbin/ipsecctl/ikedeldel1.ok new file mode 100644 index 000000000..9c563d1d0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedeldel1.ok @@ -0,0 +1,7 @@ +t IPsec-131.188.33.51-131.188.33.29 +C rms [peer-131.188.33.29] +C rms [mm-131.188.33.29] +C rms [IPsec-131.188.33.51-131.188.33.29] +C rms [qm-131.188.33.51-131.188.33.29] +C rms [lid-131.188.33.51] +C rms [rid-131.188.33.29] diff --git a/src/regress/sbin/ipsecctl/ikedeldel47.in b/src/regress/sbin/ipsecctl/ikedeldel47.in new file mode 100644 index 000000000..6d12bf6a9 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedeldel47.in @@ -0,0 +1 @@ +ike from any to any diff --git a/src/regress/sbin/ipsecctl/ikedeldel47.ok b/src/regress/sbin/ipsecctl/ikedeldel47.ok new file mode 100644 index 000000000..63a60eb95 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikedeldel47.ok @@ -0,0 +1,10 @@ +t IPsec-0.0.0.0/0-0.0.0.0/0 +C rms [IPsec-0.0.0.0/0-0.0.0.0/0] +C rms [qm-0.0.0.0/0-0.0.0.0/0] +C rms [lid-0.0.0.0/0] +C rms [rid-0.0.0.0/0] +t IPsec-::/0-::/0 +C rms [IPsec-::/0-::/0] +C rms [qm-::/0-::/0] +C rms [lid-::/0] +C rms [rid-::/0] diff --git a/src/regress/sbin/ipsecctl/ikefail1.in b/src/regress/sbin/ipsecctl/ikefail1.in new file mode 100644 index 000000000..bf4708d61 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail1.in @@ -0,0 +1 @@ +ike esp from 3ffe::1 to 1.1.1.1 diff --git a/src/regress/sbin/ipsecctl/ikefail1.ok b/src/regress/sbin/ipsecctl/ikefail1.ok new file mode 100644 index 000000000..961e15d64 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail1.ok @@ -0,0 +1,2 @@ +stdin: 1: source/destination address families do not match +ipsecctl: Syntax error in config file: ipsec rules not loaded diff --git a/src/regress/sbin/ipsecctl/ikefail11.in b/src/regress/sbin/ipsecctl/ikefail11.in new file mode 100644 index 000000000..8cb50f010 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail11.in @@ -0,0 +1,6 @@ +# missing closing quote in last line +remote_gw = "192.168.0.1" +remote_net = "{ 10.0.100.0/22, 10.0.2/24 }" +local_net = "{ 172.16.18.0/26 }" + +ike esp from $local_net to $remote_net peer $remote_gw psk "test123 diff --git a/src/regress/sbin/ipsecctl/ikefail11.ok b/src/regress/sbin/ipsecctl/ikefail11.ok new file mode 100644 index 000000000..335e6f0fd --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail11.ok @@ -0,0 +1,6 @@ +stdin: 6: reached end of file while parsing quoted string +stdin: 6: syntax error +ipsecctl: Syntax error in config file: ipsec rules not loaded +remote_gw = "192.168.0.1" +remote_net = "{ 10.0.100.0/22, 10.0.2/24 }" +local_net = "{ 172.16.18.0/26 }" diff --git a/src/regress/sbin/ipsecctl/ikefail12.in b/src/regress/sbin/ipsecctl/ikefail12.in new file mode 100644 index 000000000..d7f4a6e17 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail12.in @@ -0,0 +1,6 @@ +# missng closing quote in line 4, no quotes in line 6 +remote_gw = "192.168.0.1" +remote_net = "{ 10.0.100.0/22, 10.0.2/24 }" +local_net = "{ 172.16.18.0/26 } + +ike esp from $local_net to $remote_net peer $remote_gw diff --git a/src/regress/sbin/ipsecctl/ikefail12.ok b/src/regress/sbin/ipsecctl/ikefail12.ok new file mode 100644 index 000000000..2c23b34ac --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail12.ok @@ -0,0 +1,5 @@ +stdin: 4: reached end of file while parsing quoted string +stdin: 4: syntax error +ipsecctl: Syntax error in config file: ipsec rules not loaded +remote_gw = "192.168.0.1" +remote_net = "{ 10.0.100.0/22, 10.0.2/24 }" diff --git a/src/regress/sbin/ipsecctl/ikefail13.in b/src/regress/sbin/ipsecctl/ikefail13.in new file mode 100644 index 000000000..c6b2385ca --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail13.in @@ -0,0 +1,2 @@ +# invalid NAT flow combinations +ike from 192.168.1.0/24 (1::2/24) to 172.16.0.0/12 peer 5.5.5.5 diff --git a/src/regress/sbin/ipsecctl/ikefail13.ok b/src/regress/sbin/ipsecctl/ikefail13.ok new file mode 100644 index 000000000..8a9aeec71 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail13.ok @@ -0,0 +1,2 @@ +stdin: 2: Flow NAT address family mismatch +ipsecctl: Syntax error in config file: ipsec rules not loaded diff --git a/src/regress/sbin/ipsecctl/ikefail14.in b/src/regress/sbin/ipsecctl/ikefail14.in new file mode 100644 index 000000000..6f1987d72 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail14.in @@ -0,0 +1,11 @@ +ike from any to any \ + local 1.1.1.1 peer any \ + main \ + srcid src.id dstid dst.id \ + psk secret +ike from ::/0 to any \ + local 2.2.2.2 peer any \ + aggressive \ + srcid src.wrong dstid dst.wrong \ + psk insecure +ike from ::/0 to any diff --git a/src/regress/sbin/ipsecctl/ikefail14.ok b/src/regress/sbin/ipsecctl/ikefail14.ok new file mode 100644 index 000000000..a5a88d31b --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail14.ok @@ -0,0 +1,109 @@ +stdin: 10: default peer local mismatch +stdin: 10: default peer psk mismatch +stdin: 10: default peer phase 1 mode mismatch +stdin: 10: default peer srcid mismatch +stdin: 10: default peer dstid mismatch +stdin: 11: default peer local mismatch +stdin: 11: default peer phase 1 auth mismatch +stdin: 11: default peer srcid mismatch +stdin: 11: default peer dstid mismatch +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Local-address=1.1.1.1 force +C set [peer-default]:Authentication=secret force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA force +C set [peer-default]:ID=id-src.id force +C set [id-src.id]:ID-type=FQDN force +C set [id-src.id]:Name=src.id force +C set [peer-default]:Remote-ID=id-dst.id force +C set [id-dst.id]:ID-type=FQDN force +C set [id-dst.id]:Name=dst.id force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Phase=2 force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:ISAKMP-peer=peer-default force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Configuration=phase2-from-0.0.0.0/0-to-0.0.0.0/0 force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Local-ID=from-0.0.0.0/0 force +C set [from-0.0.0.0/0-to-0.0.0.0/0]:Remote-ID=to-0.0.0.0/0 force +C set [phase2-from-0.0.0.0/0-to-0.0.0.0/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-0.0.0.0/0-to-0.0.0.0/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [from-0.0.0.0/0]:Network=0.0.0.0 force +C set [from-0.0.0.0/0]:Netmask=0.0.0.0 force +C set [to-0.0.0.0/0]:ID-type=IPV4_ADDR_SUBNET force +C set [to-0.0.0.0/0]:Network=0.0.0.0 force +C set [to-0.0.0.0/0]:Netmask=0.0.0.0 force +C add [Phase 2]:Connections=from-0.0.0.0/0-to-0.0.0.0/0 +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Local-address=1.1.1.1 force +C set [peer-default]:Authentication=secret force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA force +C set [peer-default]:ID=id-src.id force +C set [id-src.id]:ID-type=FQDN force +C set [id-src.id]:Name=src.id force +C set [peer-default]:Remote-ID=id-dst.id force +C set [id-dst.id]:ID-type=FQDN force +C set [id-dst.id]:Name=dst.id force +C set [from-::/0-to-::/0]:Phase=2 force +C set [from-::/0-to-::/0]:ISAKMP-peer=peer-default force +C set [from-::/0-to-::/0]:Configuration=phase2-from-::/0-to-::/0 force +C set [from-::/0-to-::/0]:Local-ID=from-::/0 force +C set [from-::/0-to-::/0]:Remote-ID=to-::/0 force +C set [phase2-from-::/0-to-::/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-::/0-to-::/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [from-::/0]:Network=:: force +C set [from-::/0]:Netmask=:: force +C set [to-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [to-::/0]:Network=:: force +C set [to-::/0]:Netmask=:: force +C add [Phase 2]:Connections=from-::/0-to-::/0 +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Local-address=2.2.2.2 force +C set [peer-default]:Authentication=insecure force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=AGGRESSIVE force +C add [phase1-peer-default]:Transforms=AES-SHA force +C set [peer-default]:ID=id-src.wrong force +C set [id-src.wrong]:ID-type=FQDN force +C set [id-src.wrong]:Name=src.wrong force +C set [peer-default]:Remote-ID=id-dst.wrong force +C set [id-dst.wrong]:ID-type=FQDN force +C set [id-dst.wrong]:Name=dst.wrong force +C set [from-::/0-to-::/0]:Phase=2 force +C set [from-::/0-to-::/0]:ISAKMP-peer=peer-default force +C set [from-::/0-to-::/0]:Configuration=phase2-from-::/0-to-::/0 force +C set [from-::/0-to-::/0]:Local-ID=from-::/0 force +C set [from-::/0-to-::/0]:Remote-ID=to-::/0 force +C set [phase2-from-::/0-to-::/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-::/0-to-::/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [from-::/0]:Network=:: force +C set [from-::/0]:Netmask=:: force +C set [to-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [to-::/0]:Network=:: force +C set [to-::/0]:Netmask=:: force +C add [Phase 2]:Connections=from-::/0-to-::/0 +C set [Phase 1]:Default=peer-default force +C set [peer-default]:Phase=1 force +C set [peer-default]:Configuration=phase1-peer-default force +C set [phase1-peer-default]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-default]:Transforms=AES-SHA-RSA_SIG force +C set [from-::/0-to-::/0]:Phase=2 force +C set [from-::/0-to-::/0]:ISAKMP-peer=peer-default force +C set [from-::/0-to-::/0]:Configuration=phase2-from-::/0-to-::/0 force +C set [from-::/0-to-::/0]:Local-ID=from-::/0 force +C set [from-::/0-to-::/0]:Remote-ID=to-::/0 force +C set [phase2-from-::/0-to-::/0]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-::/0-to-::/0]:Suites=QM-ESP-AES-SHA2-256-PFS-SUITE force +C set [from-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [from-::/0]:Network=:: force +C set [from-::/0]:Netmask=:: force +C set [to-::/0]:ID-type=IPV6_ADDR_SUBNET force +C set [to-::/0]:Network=:: force +C set [to-::/0]:Netmask=:: force +C add [Phase 2]:Connections=from-::/0-to-::/0 diff --git a/src/regress/sbin/ipsecctl/ikefail2.in b/src/regress/sbin/ipsecctl/ikefail2.in new file mode 100644 index 000000000..204fde1ed --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail2.in @@ -0,0 +1,2 @@ +ike from 3ffe::1 to any local 3ffe:3::2 peer 192.168.3.1 +ike from 3ffe::1 to any peer 3ffe:3::1 local 3ffe:3::2 diff --git a/src/regress/sbin/ipsecctl/ikefail2.ok b/src/regress/sbin/ipsecctl/ikefail2.ok new file mode 100644 index 000000000..07eff6466 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail2.ok @@ -0,0 +1,3 @@ +stdin: 1: src and dst addresses do not match +stdin: 2: src and dst addresses do not match +ipsecctl: Syntax error in config file: ipsec rules not loaded diff --git a/src/regress/sbin/ipsecctl/ikefail3.in b/src/regress/sbin/ipsecctl/ikefail3.in new file mode 100644 index 000000000..43c18d230 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail3.in @@ -0,0 +1 @@ +ike esp from 1.1.1.1 to 2.2.2.2 port ssh diff --git a/src/regress/sbin/ipsecctl/ikefail3.ok b/src/regress/sbin/ipsecctl/ikefail3.ok new file mode 100644 index 000000000..113b15b60 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail3.ok @@ -0,0 +1,2 @@ +stdin: 1: no protocol supplied with source/destination ports +ipsecctl: Syntax error in config file: ipsec rules not loaded diff --git a/src/regress/sbin/ipsecctl/ikefail4.in b/src/regress/sbin/ipsecctl/ikefail4.in new file mode 100644 index 000000000..8ad27e31e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail4.in @@ -0,0 +1 @@ +ike from 3ffe::1/24 to 10.1.2.0/24 peer 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ikefail4.ok b/src/regress/sbin/ipsecctl/ikefail4.ok new file mode 100644 index 000000000..961e15d64 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail4.ok @@ -0,0 +1,2 @@ +stdin: 1: source/destination address families do not match +ipsecctl: Syntax error in config file: ipsec rules not loaded diff --git a/src/regress/sbin/ipsecctl/ikefail5.in b/src/regress/sbin/ipsecctl/ikefail5.in new file mode 100644 index 000000000..db2408536 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail5.in @@ -0,0 +1 @@ +ike from 10.1.2.0/24 to 3ffe::1/24 peer 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ikefail5.ok b/src/regress/sbin/ipsecctl/ikefail5.ok new file mode 100644 index 000000000..961e15d64 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail5.ok @@ -0,0 +1,2 @@ +stdin: 1: source/destination address families do not match +ipsecctl: Syntax error in config file: ipsec rules not loaded diff --git a/src/regress/sbin/ipsecctl/ikefail6.in b/src/regress/sbin/ipsecctl/ikefail6.in new file mode 100644 index 000000000..e13e85d46 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail6.in @@ -0,0 +1 @@ +ike ah from 1.1.1.1 to 2.2.2.2 quick enc aes diff --git a/src/regress/sbin/ipsecctl/ikefail6.ok b/src/regress/sbin/ipsecctl/ikefail6.ok new file mode 100644 index 000000000..d71e7b12e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail6.ok @@ -0,0 +1,14 @@ +ipsecctl: illegal transform aes +C set [Phase 1]:2.2.2.2=peer-2.2.2.2 force +C set [peer-2.2.2.2]:Phase=1 force +C set [peer-2.2.2.2]:Address=2.2.2.2 force +C set [peer-2.2.2.2]:Configuration=phase1-peer-2.2.2.2 force +C set [phase1-peer-2.2.2.2]:EXCHANGE_TYPE=ID_PROT force +C add [phase1-peer-2.2.2.2]:Transforms=AES-SHA-RSA_SIG force +C set [from-1.1.1.1-to-2.2.2.2]:Phase=2 force +C set [from-1.1.1.1-to-2.2.2.2]:ISAKMP-peer=peer-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Configuration=phase2-from-1.1.1.1-to-2.2.2.2 force +C set [from-1.1.1.1-to-2.2.2.2]:Local-ID=from-1.1.1.1 force +C set [from-1.1.1.1-to-2.2.2.2]:Remote-ID=to-2.2.2.2 force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:EXCHANGE_TYPE=QUICK_MODE force +C set [phase2-from-1.1.1.1-to-2.2.2.2]:Suites=QM-AH- \ No newline at end of file diff --git a/src/regress/sbin/ipsecctl/ikefail8.in b/src/regress/sbin/ipsecctl/ikefail8.in new file mode 100644 index 000000000..4ca15c9ce --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail8.in @@ -0,0 +1,6 @@ +# missing quote in line +remote_gw = "192.168.0.1 +remote_net = "{ 10.0.100.0/22, 10.0.2/24 }" +local_net = "{ 172.16.18.0/26 }" + +ike esp from $local_net to $remote_net peer $remote_gw psk "test123" diff --git a/src/regress/sbin/ipsecctl/ikefail8.ok b/src/regress/sbin/ipsecctl/ikefail8.ok new file mode 100644 index 000000000..cd0f51f73 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail8.ok @@ -0,0 +1,2 @@ +stdin: 3: syntax error +ipsecctl: Syntax error in config file: ipsec rules not loaded diff --git a/src/regress/sbin/ipsecctl/ikefail9.in b/src/regress/sbin/ipsecctl/ikefail9.in new file mode 100644 index 000000000..66fa924d2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail9.in @@ -0,0 +1,6 @@ +# missing closing quote in line 2 +remote_gw = "192.168.0.1" +remote_net = "{ 10.0.100.0/22, 10.0.2/24 } +local_net = "{ 172.16.18.0/26 }" + +ike esp from $local_net to $remote_net peer $remote_gw psk "test123" diff --git a/src/regress/sbin/ipsecctl/ikefail9.ok b/src/regress/sbin/ipsecctl/ikefail9.ok new file mode 100644 index 000000000..eee6ac977 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ikefail9.ok @@ -0,0 +1,3 @@ +stdin: 4: syntax error +ipsecctl: Syntax error in config file: ipsec rules not loaded +remote_gw = "192.168.0.1" diff --git a/src/regress/sbin/ipsecctl/ipsec1.in b/src/regress/sbin/ipsecctl/ipsec1.in new file mode 100644 index 000000000..0c75d0177 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec1.in @@ -0,0 +1 @@ +flow esp from 1.1.1.1 to 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ipsec1.ok b/src/regress/sbin/ipsecctl/ipsec1.ok new file mode 100644 index 000000000..a819260e4 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec1.ok @@ -0,0 +1,2 @@ +flow esp out from 1.1.1.1 to 2.2.2.2 peer 2.2.2.2 type require +flow esp in from 2.2.2.2 to 1.1.1.1 peer 2.2.2.2 type require diff --git a/src/regress/sbin/ipsecctl/ipsec10.in b/src/regress/sbin/ipsecctl/ipsec10.in new file mode 100644 index 000000000..b0e4ec66a --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec10.in @@ -0,0 +1,3 @@ +flow ah from 1.1.1.1 to 3.3.3.0/24 peer 2.2.2.2 \ + srcid host1.one.net \ + dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec10.ok b/src/regress/sbin/ipsecctl/ipsec10.ok new file mode 100644 index 000000000..422f3c183 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec10.ok @@ -0,0 +1,2 @@ +flow ah out from 1.1.1.1 to 3.3.3.0/24 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require +flow ah in from 3.3.3.0/24 to 1.1.1.1 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec11.in b/src/regress/sbin/ipsecctl/ipsec11.in new file mode 100644 index 000000000..a8ecab56c --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec11.in @@ -0,0 +1,3 @@ +flow ah from 4.4.0.0/16 to 3.3.3.0/24 peer 2.2.2.2 \ + srcid host1.one.net \ + dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec11.ok b/src/regress/sbin/ipsecctl/ipsec11.ok new file mode 100644 index 000000000..3a6c5ac77 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec11.ok @@ -0,0 +1,2 @@ +flow ah out from 4.4.0.0/16 to 3.3.3.0/24 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require +flow ah in from 3.3.3.0/24 to 4.4.0.0/16 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec12.in b/src/regress/sbin/ipsecctl/ipsec12.in new file mode 100644 index 000000000..09fd8974b --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec12.in @@ -0,0 +1,6 @@ +flow ah out from 4.4.0.0/16 to 3.3.3.0/24 peer 2.2.2.2 \ + srcid host1.one.net \ + dstid host2.two.net +flow ah in from 3.3.3.0/24 to 4.4.0.0/16 peer 2.2.2.2 \ + srcid host1.one.net \ + dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec12.ok b/src/regress/sbin/ipsecctl/ipsec12.ok new file mode 100644 index 000000000..3a6c5ac77 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec12.ok @@ -0,0 +1,2 @@ +flow ah out from 4.4.0.0/16 to 3.3.3.0/24 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require +flow ah in from 3.3.3.0/24 to 4.4.0.0/16 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec13.in b/src/regress/sbin/ipsecctl/ipsec13.in new file mode 100644 index 000000000..145fe01dd --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec13.in @@ -0,0 +1 @@ +flow esp from 1.1.1.1 to any peer 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ipsec13.ok b/src/regress/sbin/ipsecctl/ipsec13.ok new file mode 100644 index 000000000..cc614ebc0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec13.ok @@ -0,0 +1,2 @@ +flow esp out from 1.1.1.1 to 0.0.0.0/0 peer 2.2.2.2 type require +flow esp in from 0.0.0.0/0 to 1.1.1.1 peer 2.2.2.2 type require diff --git a/src/regress/sbin/ipsecctl/ipsec14.in b/src/regress/sbin/ipsecctl/ipsec14.in new file mode 100644 index 000000000..3ded65143 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec14.in @@ -0,0 +1 @@ +flow ipip out from 0.0.0.0/0 to 192.168.11.0/24 peer 10.0.0.2 diff --git a/src/regress/sbin/ipsecctl/ipsec14.ok b/src/regress/sbin/ipsecctl/ipsec14.ok new file mode 100644 index 000000000..4f54ba0b8 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec14.ok @@ -0,0 +1 @@ +flow ipip out from 0.0.0.0/0 to 192.168.11.0/24 peer 10.0.0.2 type require diff --git a/src/regress/sbin/ipsecctl/ipsec15.in b/src/regress/sbin/ipsecctl/ipsec15.in new file mode 100644 index 000000000..e54659444 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec15.in @@ -0,0 +1,2 @@ +flow esp from 1.1.1.0/24 to 2.2.2.0/24 local 192.168.0.1 peer 192.168.100.1 +flow esp from 1.1.1.0/24 to 2.2.2.0/24 peer 192.168.100.1 local 192.168.0.1 diff --git a/src/regress/sbin/ipsecctl/ipsec15.ok b/src/regress/sbin/ipsecctl/ipsec15.ok new file mode 100644 index 000000000..344a452fb --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec15.ok @@ -0,0 +1,4 @@ +flow esp out from 1.1.1.0/24 to 2.2.2.0/24 local 192.168.0.1 peer 192.168.100.1 type require +flow esp in from 2.2.2.0/24 to 1.1.1.0/24 local 192.168.0.1 peer 192.168.100.1 type require +flow esp out from 1.1.1.0/24 to 2.2.2.0/24 local 192.168.0.1 peer 192.168.100.1 type require +flow esp in from 2.2.2.0/24 to 1.1.1.0/24 local 192.168.0.1 peer 192.168.100.1 type require diff --git a/src/regress/sbin/ipsecctl/ipsec16.in b/src/regress/sbin/ipsecctl/ipsec16.in new file mode 100644 index 000000000..14cef559c --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec16.in @@ -0,0 +1,5 @@ +a="1.1.1.0/24" +b="2.2.2.0/24" +l="192.168.0.1" +p="192.168.100.1" +flow esp from $a to $b local $l peer $p diff --git a/src/regress/sbin/ipsecctl/ipsec16.ok b/src/regress/sbin/ipsecctl/ipsec16.ok new file mode 100644 index 000000000..c3a0f3767 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec16.ok @@ -0,0 +1,6 @@ +a = "1.1.1.0/24" +b = "2.2.2.0/24" +l = "192.168.0.1" +p = "192.168.100.1" +flow esp out from 1.1.1.0/24 to 2.2.2.0/24 local 192.168.0.1 peer 192.168.100.1 type require +flow esp in from 2.2.2.0/24 to 1.1.1.0/24 local 192.168.0.1 peer 192.168.100.1 type require diff --git a/src/regress/sbin/ipsecctl/ipsec17.in b/src/regress/sbin/ipsecctl/ipsec17.in new file mode 100644 index 000000000..ab3f26d4d --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec17.in @@ -0,0 +1 @@ +flow in from 3.3.3.0/24 to 3.3.3.0/24 type bypass diff --git a/src/regress/sbin/ipsecctl/ipsec17.ok b/src/regress/sbin/ipsecctl/ipsec17.ok new file mode 100644 index 000000000..91aac52b7 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec17.ok @@ -0,0 +1 @@ +flow esp in from 3.3.3.0/24 to 3.3.3.0/24 type bypass diff --git a/src/regress/sbin/ipsecctl/ipsec18.in b/src/regress/sbin/ipsecctl/ipsec18.in new file mode 100644 index 000000000..9ca60732a --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec18.in @@ -0,0 +1 @@ +flow in from any to 3.3.3.0/24 type deny diff --git a/src/regress/sbin/ipsecctl/ipsec18.ok b/src/regress/sbin/ipsecctl/ipsec18.ok new file mode 100644 index 000000000..41decbc23 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec18.ok @@ -0,0 +1 @@ +flow esp in from 0.0.0.0/0 to 3.3.3.0/24 type deny diff --git a/src/regress/sbin/ipsecctl/ipsec19.in b/src/regress/sbin/ipsecctl/ipsec19.in new file mode 100644 index 000000000..1df80a7ba --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec19.in @@ -0,0 +1,4 @@ +flow esp proto etherip from 1.1.1.1 to 2.2.2.2 +flow esp proto 97 from 2.2.2.2 to 3.3.3.3 +flow esp proto esp from 4.4.4.4 to 5.5.5.5 +flow esp proto 50 from 6.6.6.6 to 7.7.7.7 diff --git a/src/regress/sbin/ipsecctl/ipsec19.ok b/src/regress/sbin/ipsecctl/ipsec19.ok new file mode 100644 index 000000000..44a06b5af --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec19.ok @@ -0,0 +1,8 @@ +flow esp out proto etherip from 1.1.1.1 to 2.2.2.2 peer 2.2.2.2 type require +flow esp in proto etherip from 2.2.2.2 to 1.1.1.1 peer 2.2.2.2 type require +flow esp out proto etherip from 2.2.2.2 to 3.3.3.3 peer 3.3.3.3 type require +flow esp in proto etherip from 3.3.3.3 to 2.2.2.2 peer 3.3.3.3 type require +flow esp out proto esp from 4.4.4.4 to 5.5.5.5 peer 5.5.5.5 type require +flow esp in proto esp from 5.5.5.5 to 4.4.4.4 peer 5.5.5.5 type require +flow esp out proto esp from 6.6.6.6 to 7.7.7.7 peer 7.7.7.7 type require +flow esp in proto esp from 7.7.7.7 to 6.6.6.6 peer 7.7.7.7 type require diff --git a/src/regress/sbin/ipsecctl/ipsec2.in b/src/regress/sbin/ipsecctl/ipsec2.in new file mode 100644 index 000000000..81893d38b --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec2.in @@ -0,0 +1 @@ +flow esp from 1.1.1.1 to 2.2.2.2 srcid host1.one.net dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec2.ok b/src/regress/sbin/ipsecctl/ipsec2.ok new file mode 100644 index 000000000..f4ab78e7c --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec2.ok @@ -0,0 +1,2 @@ +flow esp out from 1.1.1.1 to 2.2.2.2 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require +flow esp in from 2.2.2.2 to 1.1.1.1 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec20.in b/src/regress/sbin/ipsecctl/ipsec20.in new file mode 100644 index 000000000..cfe054889 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec20.in @@ -0,0 +1,7 @@ +flow esp from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 +flow esp from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type use +flow esp from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type require +flow esp from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type acquire +flow esp from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type dontacq +flow esp from 192.168.3.3 to 192.168.3.2 type bypass +flow esp from 192.168.3.3 to 192.168.3.2 type deny diff --git a/src/regress/sbin/ipsecctl/ipsec20.ok b/src/regress/sbin/ipsecctl/ipsec20.ok new file mode 100644 index 000000000..1ac49418e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec20.ok @@ -0,0 +1,14 @@ +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type require +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type require +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type use +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type use +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type require +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type require +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type acquire +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type acquire +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type dontacq +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type dontacq +flow esp out from 192.168.3.3 to 192.168.3.2 type bypass +flow esp in from 192.168.3.2 to 192.168.3.3 type bypass +flow esp out from 192.168.3.3 to 192.168.3.2 type deny +flow esp in from 192.168.3.2 to 192.168.3.3 type deny diff --git a/src/regress/sbin/ipsecctl/ipsec21.in b/src/regress/sbin/ipsecctl/ipsec21.in new file mode 100644 index 000000000..4b45729ab --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec21.in @@ -0,0 +1,14 @@ +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type use +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type use +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type require +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type require +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type acquire +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type acquire +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type dontacq +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type dontacq +flow esp out from 192.168.3.3 to 192.168.3.2 type bypass +flow esp in from 192.168.3.2 to 192.168.3.3 type bypass +flow esp out from 192.168.3.3 to 192.168.3.2 type deny +flow esp in from 192.168.3.2 to 192.168.3.3 type deny diff --git a/src/regress/sbin/ipsecctl/ipsec21.ok b/src/regress/sbin/ipsecctl/ipsec21.ok new file mode 100644 index 000000000..1ac49418e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec21.ok @@ -0,0 +1,14 @@ +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type require +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type require +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type use +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type use +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type require +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type require +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type acquire +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type acquire +flow esp out from 192.168.3.3 to 192.168.3.2 peer 192.168.3.3 type dontacq +flow esp in from 192.168.3.2 to 192.168.3.3 peer 192.168.3.3 type dontacq +flow esp out from 192.168.3.3 to 192.168.3.2 type bypass +flow esp in from 192.168.3.2 to 192.168.3.3 type bypass +flow esp out from 192.168.3.3 to 192.168.3.2 type deny +flow esp in from 192.168.3.2 to 192.168.3.3 type deny diff --git a/src/regress/sbin/ipsecctl/ipsec22.in b/src/regress/sbin/ipsecctl/ipsec22.in new file mode 100644 index 000000000..d8473d57a --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec22.in @@ -0,0 +1,2 @@ +FROM="{ 1.1.1.1, 2.2.2.2, 3.3.3.3 }" +flow esp from $FROM to 4.4.4.4 diff --git a/src/regress/sbin/ipsecctl/ipsec22.ok b/src/regress/sbin/ipsecctl/ipsec22.ok new file mode 100644 index 000000000..ed14980df --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec22.ok @@ -0,0 +1,7 @@ +FROM = "{ 1.1.1.1, 2.2.2.2, 3.3.3.3 }" +flow esp out from 1.1.1.1 to 4.4.4.4 peer 4.4.4.4 type require +flow esp in from 4.4.4.4 to 1.1.1.1 peer 4.4.4.4 type require +flow esp out from 2.2.2.2 to 4.4.4.4 peer 4.4.4.4 type require +flow esp in from 4.4.4.4 to 2.2.2.2 peer 4.4.4.4 type require +flow esp out from 3.3.3.3 to 4.4.4.4 peer 4.4.4.4 type require +flow esp in from 4.4.4.4 to 3.3.3.3 peer 4.4.4.4 type require diff --git a/src/regress/sbin/ipsecctl/ipsec23.in b/src/regress/sbin/ipsecctl/ipsec23.in new file mode 100644 index 000000000..c43bd91d3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec23.in @@ -0,0 +1,2 @@ +TO="{ 1.1.1.1, 2.2.2.2, 3.3.3.3 }" +flow esp from 4.4.4.4 to $TO diff --git a/src/regress/sbin/ipsecctl/ipsec23.ok b/src/regress/sbin/ipsecctl/ipsec23.ok new file mode 100644 index 000000000..b1e2c2100 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec23.ok @@ -0,0 +1,7 @@ +TO = "{ 1.1.1.1, 2.2.2.2, 3.3.3.3 }" +flow esp out from 4.4.4.4 to 1.1.1.1 peer 1.1.1.1 type require +flow esp in from 1.1.1.1 to 4.4.4.4 peer 1.1.1.1 type require +flow esp out from 4.4.4.4 to 2.2.2.2 peer 2.2.2.2 type require +flow esp in from 2.2.2.2 to 4.4.4.4 peer 2.2.2.2 type require +flow esp out from 4.4.4.4 to 3.3.3.3 peer 3.3.3.3 type require +flow esp in from 3.3.3.3 to 4.4.4.4 peer 3.3.3.3 type require diff --git a/src/regress/sbin/ipsecctl/ipsec24.in b/src/regress/sbin/ipsecctl/ipsec24.in new file mode 100644 index 000000000..5c93262c4 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec24.in @@ -0,0 +1,3 @@ +FROM="{ 1.1.1.1, 2.2.2.2, 3.3.3.3 }" +TO="{ 4.4.4.4, 5.5.5.5, 6.6.6.6 }" +flow esp from $FROM to $TO diff --git a/src/regress/sbin/ipsecctl/ipsec24.ok b/src/regress/sbin/ipsecctl/ipsec24.ok new file mode 100644 index 000000000..491d60e56 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec24.ok @@ -0,0 +1,20 @@ +FROM = "{ 1.1.1.1, 2.2.2.2, 3.3.3.3 }" +TO = "{ 4.4.4.4, 5.5.5.5, 6.6.6.6 }" +flow esp out from 1.1.1.1 to 4.4.4.4 peer 4.4.4.4 type require +flow esp in from 4.4.4.4 to 1.1.1.1 peer 4.4.4.4 type require +flow esp out from 1.1.1.1 to 5.5.5.5 peer 5.5.5.5 type require +flow esp in from 5.5.5.5 to 1.1.1.1 peer 5.5.5.5 type require +flow esp out from 1.1.1.1 to 6.6.6.6 peer 6.6.6.6 type require +flow esp in from 6.6.6.6 to 1.1.1.1 peer 6.6.6.6 type require +flow esp out from 2.2.2.2 to 4.4.4.4 peer 4.4.4.4 type require +flow esp in from 4.4.4.4 to 2.2.2.2 peer 4.4.4.4 type require +flow esp out from 2.2.2.2 to 5.5.5.5 peer 5.5.5.5 type require +flow esp in from 5.5.5.5 to 2.2.2.2 peer 5.5.5.5 type require +flow esp out from 2.2.2.2 to 6.6.6.6 peer 6.6.6.6 type require +flow esp in from 6.6.6.6 to 2.2.2.2 peer 6.6.6.6 type require +flow esp out from 3.3.3.3 to 4.4.4.4 peer 4.4.4.4 type require +flow esp in from 4.4.4.4 to 3.3.3.3 peer 4.4.4.4 type require +flow esp out from 3.3.3.3 to 5.5.5.5 peer 5.5.5.5 type require +flow esp in from 5.5.5.5 to 3.3.3.3 peer 5.5.5.5 type require +flow esp out from 3.3.3.3 to 6.6.6.6 peer 6.6.6.6 type require +flow esp in from 6.6.6.6 to 3.3.3.3 peer 6.6.6.6 type require diff --git a/src/regress/sbin/ipsecctl/ipsec25.in b/src/regress/sbin/ipsecctl/ipsec25.in new file mode 100644 index 000000000..09f71fe32 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec25.in @@ -0,0 +1 @@ +flow from 3ffe::1 to 3ffe::2 diff --git a/src/regress/sbin/ipsecctl/ipsec25.ok b/src/regress/sbin/ipsecctl/ipsec25.ok new file mode 100644 index 000000000..5ec141001 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec25.ok @@ -0,0 +1,2 @@ +flow esp out from 3ffe::1 to 3ffe::2 peer 3ffe::2 type require +flow esp in from 3ffe::2 to 3ffe::1 peer 3ffe::2 type require diff --git a/src/regress/sbin/ipsecctl/ipsec26.in b/src/regress/sbin/ipsecctl/ipsec26.in new file mode 100644 index 000000000..0745de157 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec26.in @@ -0,0 +1,3 @@ +flow ah from 3ffe:1::1 to 3ffe:3::/24 peer 3ffe:2::1 \ + srcid host1.one.net \ + dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec26.ok b/src/regress/sbin/ipsecctl/ipsec26.ok new file mode 100644 index 000000000..a168f06a7 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec26.ok @@ -0,0 +1,2 @@ +flow ah out from 3ffe:1::1 to 3ffe:3::/24 peer 3ffe:2::1 srcid host1.one.net dstid host2.two.net type require +flow ah in from 3ffe:3::/24 to 3ffe:1::1 peer 3ffe:2::1 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec27.in b/src/regress/sbin/ipsecctl/ipsec27.in new file mode 100644 index 000000000..8db230ebb --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec27.in @@ -0,0 +1 @@ +flow ah from 3ffe::1 to 3ffe::2 srcid host1.one.net dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec27.ok b/src/regress/sbin/ipsecctl/ipsec27.ok new file mode 100644 index 000000000..4b19ead6d --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec27.ok @@ -0,0 +1,2 @@ +flow ah out from 3ffe::1 to 3ffe::2 peer 3ffe::2 srcid host1.one.net dstid host2.two.net type require +flow ah in from 3ffe::2 to 3ffe::1 peer 3ffe::2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec28.in b/src/regress/sbin/ipsecctl/ipsec28.in new file mode 100644 index 000000000..18cb2c931 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec28.in @@ -0,0 +1 @@ +flow ah from 3ffe::1 to 3ffe::2 diff --git a/src/regress/sbin/ipsecctl/ipsec28.ok b/src/regress/sbin/ipsecctl/ipsec28.ok new file mode 100644 index 000000000..3d6c5cfc5 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec28.ok @@ -0,0 +1,2 @@ +flow ah out from 3ffe::1 to 3ffe::2 peer 3ffe::2 type require +flow ah in from 3ffe::2 to 3ffe::1 peer 3ffe::2 type require diff --git a/src/regress/sbin/ipsecctl/ipsec29.in b/src/regress/sbin/ipsecctl/ipsec29.in new file mode 100644 index 000000000..e8fd84379 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec29.in @@ -0,0 +1,6 @@ +flow esp out from 3ffe:1::/16 to 3ffe:2::/24 peer 3ffe::2 \ + srcid host1.one.net \ + dstid host2.two.net +flow esp in from 3ffe:1::/24 to 3ffe:2::/16 peer 3ffe::2 \ + srcid host1.one.net \ + dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec29.ok b/src/regress/sbin/ipsecctl/ipsec29.ok new file mode 100644 index 000000000..d0409c7e5 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec29.ok @@ -0,0 +1,2 @@ +flow esp out from 3ffe:1::/16 to 3ffe:2::/24 peer 3ffe::2 srcid host1.one.net dstid host2.two.net type require +flow esp in from 3ffe:1::/24 to 3ffe:2::/16 peer 3ffe::2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec3.in b/src/regress/sbin/ipsecctl/ipsec3.in new file mode 100644 index 000000000..1e0bbcb27 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec3.in @@ -0,0 +1 @@ +flow esp from 1.1.1.1 to 3.3.3.0/24 peer 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ipsec3.ok b/src/regress/sbin/ipsecctl/ipsec3.ok new file mode 100644 index 000000000..0a510da2c --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec3.ok @@ -0,0 +1,2 @@ +flow esp out from 1.1.1.1 to 3.3.3.0/24 peer 2.2.2.2 type require +flow esp in from 3.3.3.0/24 to 1.1.1.1 peer 2.2.2.2 type require diff --git a/src/regress/sbin/ipsecctl/ipsec30.in b/src/regress/sbin/ipsecctl/ipsec30.in new file mode 100644 index 000000000..a25d79902 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec30.in @@ -0,0 +1,3 @@ +flow esp from 3ffe:1::/16 to 3ffe:3::/24 peer 3ffe::2 \ + srcid host1.one.net \ + dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec30.ok b/src/regress/sbin/ipsecctl/ipsec30.ok new file mode 100644 index 000000000..9aeb0fa8a --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec30.ok @@ -0,0 +1,2 @@ +flow esp out from 3ffe:1::/16 to 3ffe:3::/24 peer 3ffe::2 srcid host1.one.net dstid host2.two.net type require +flow esp in from 3ffe:3::/24 to 3ffe:1::/16 peer 3ffe::2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec31.in b/src/regress/sbin/ipsecctl/ipsec31.in new file mode 100644 index 000000000..1f2c08939 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec31.in @@ -0,0 +1,3 @@ +flow esp from 3ffe:1::1 to 3ffe:3::/64 peer 3ffe:2::1 \ + srcid host1.one.net \ + dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec31.ok b/src/regress/sbin/ipsecctl/ipsec31.ok new file mode 100644 index 000000000..6812f6f42 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec31.ok @@ -0,0 +1,2 @@ +flow esp out from 3ffe:1::1 to 3ffe:3::/64 peer 3ffe:2::1 srcid host1.one.net dstid host2.two.net type require +flow esp in from 3ffe:3::/64 to 3ffe:1::1 peer 3ffe:2::1 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec32.in b/src/regress/sbin/ipsecctl/ipsec32.in new file mode 100644 index 000000000..daf471754 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec32.in @@ -0,0 +1,3 @@ +flow ah from 3ffe:4::/16 to 3ff3:3::/24 peer 3ffe::2 \ + srcid host1.one.net \ + dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec32.ok b/src/regress/sbin/ipsecctl/ipsec32.ok new file mode 100644 index 000000000..de29916cf --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec32.ok @@ -0,0 +1,2 @@ +flow ah out from 3ffe:4::/16 to 3ff3:3::/24 peer 3ffe::2 srcid host1.one.net dstid host2.two.net type require +flow ah in from 3ff3:3::/24 to 3ffe:4::/16 peer 3ffe::2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec33.in b/src/regress/sbin/ipsecctl/ipsec33.in new file mode 100644 index 000000000..3a41dc084 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec33.in @@ -0,0 +1,6 @@ +flow ah out from 3ffe:4::/16 to 3ffe:3::/24 peer 3ffe::2 \ + srcid host1.one.net \ + dstid host2.two.net +flow ah in from 3ffe:3::/24 to 3ffe:4::/16 peer 3ffe::2 \ + srcid host1.one.net \ + dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec33.ok b/src/regress/sbin/ipsecctl/ipsec33.ok new file mode 100644 index 000000000..eb626f3be --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec33.ok @@ -0,0 +1,2 @@ +flow ah out from 3ffe:4::/16 to 3ffe:3::/24 peer 3ffe::2 srcid host1.one.net dstid host2.two.net type require +flow ah in from 3ffe:3::/24 to 3ffe:4::/16 peer 3ffe::2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec34.in b/src/regress/sbin/ipsecctl/ipsec34.in new file mode 100644 index 000000000..550d73a52 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec34.in @@ -0,0 +1,14 @@ +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type use +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type use +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type require +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type require +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type acquire +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type acquire +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type dontacq +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type dontacq +flow esp out from 3ffe::3 to 3ffe::2 type bypass +flow esp in from 3ffe::2 to 3ffe::3 type bypass +flow esp out from 3ffe::3 to 3ffe::2 type deny +flow esp in from 3ffe::2 to 3ffe::3 type deny diff --git a/src/regress/sbin/ipsecctl/ipsec34.ok b/src/regress/sbin/ipsecctl/ipsec34.ok new file mode 100644 index 000000000..229f2b04d --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec34.ok @@ -0,0 +1,14 @@ +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type require +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type require +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type use +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type use +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type require +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type require +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type acquire +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type acquire +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type dontacq +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type dontacq +flow esp out from 3ffe::3 to 3ffe::2 type bypass +flow esp in from 3ffe::2 to 3ffe::3 type bypass +flow esp out from 3ffe::3 to 3ffe::2 type deny +flow esp in from 3ffe::2 to 3ffe::3 type deny diff --git a/src/regress/sbin/ipsecctl/ipsec35.in b/src/regress/sbin/ipsecctl/ipsec35.in new file mode 100644 index 000000000..e39a067f9 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec35.in @@ -0,0 +1 @@ +flow ipip out from :: to 3ffe:2::/24 peer 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ipsec35.ok b/src/regress/sbin/ipsecctl/ipsec35.ok new file mode 100644 index 000000000..a95fc5044 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec35.ok @@ -0,0 +1 @@ +flow ipip out from :: to 3ffe:2::/24 peer 3ffe::1 type require diff --git a/src/regress/sbin/ipsecctl/ipsec36.in b/src/regress/sbin/ipsecctl/ipsec36.in new file mode 100644 index 000000000..1bdaea71a --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec36.in @@ -0,0 +1,2 @@ +flow esp from 3ffe:1::0/24 to 3ffe:2::/24 local 3ffe::1 peer 3ffe:100::1 +flow esp from 3ffe:1::0/24 to 3ffe:2::/24 peer 3ffe:100::1 local 3ffe::1 diff --git a/src/regress/sbin/ipsecctl/ipsec36.ok b/src/regress/sbin/ipsecctl/ipsec36.ok new file mode 100644 index 000000000..9b02f0d25 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec36.ok @@ -0,0 +1,4 @@ +flow esp out from 3ffe:1::/24 to 3ffe:2::/24 local 3ffe::1 peer 3ffe:100::1 type require +flow esp in from 3ffe:2::/24 to 3ffe:1::/24 local 3ffe::1 peer 3ffe:100::1 type require +flow esp out from 3ffe:1::/24 to 3ffe:2::/24 local 3ffe::1 peer 3ffe:100::1 type require +flow esp in from 3ffe:2::/24 to 3ffe:1::/24 local 3ffe::1 peer 3ffe:100::1 type require diff --git a/src/regress/sbin/ipsecctl/ipsec37.in b/src/regress/sbin/ipsecctl/ipsec37.in new file mode 100644 index 000000000..1eefa3cea --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec37.in @@ -0,0 +1,5 @@ +a="3ffe:1::/24" +b="3ffe:2::/24" +l="3ffe::1" +p="3ffe:100::1" +flow esp from $a to $b local $l peer $p diff --git a/src/regress/sbin/ipsecctl/ipsec37.ok b/src/regress/sbin/ipsecctl/ipsec37.ok new file mode 100644 index 000000000..9c0d83559 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec37.ok @@ -0,0 +1,6 @@ +a = "3ffe:1::/24" +b = "3ffe:2::/24" +l = "3ffe::1" +p = "3ffe:100::1" +flow esp out from 3ffe:1::/24 to 3ffe:2::/24 local 3ffe::1 peer 3ffe:100::1 type require +flow esp in from 3ffe:2::/24 to 3ffe:1::/24 local 3ffe::1 peer 3ffe:100::1 type require diff --git a/src/regress/sbin/ipsecctl/ipsec38.in b/src/regress/sbin/ipsecctl/ipsec38.in new file mode 100644 index 000000000..7cc417a03 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec38.in @@ -0,0 +1 @@ +flow in from 3ffe:3::/24 to 3ffe:3::/24 type bypass diff --git a/src/regress/sbin/ipsecctl/ipsec38.ok b/src/regress/sbin/ipsecctl/ipsec38.ok new file mode 100644 index 000000000..f7edb8de6 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec38.ok @@ -0,0 +1 @@ +flow esp in from 3ffe:3::/24 to 3ffe:3::/24 type bypass diff --git a/src/regress/sbin/ipsecctl/ipsec39.in b/src/regress/sbin/ipsecctl/ipsec39.in new file mode 100644 index 000000000..fbe81ee32 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec39.in @@ -0,0 +1 @@ +flow in from any to 3ffe:3::/24 type deny diff --git a/src/regress/sbin/ipsecctl/ipsec39.ok b/src/regress/sbin/ipsecctl/ipsec39.ok new file mode 100644 index 000000000..2363fe4e7 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec39.ok @@ -0,0 +1 @@ +flow esp in from ::/0 to 3ffe:3::/24 type deny diff --git a/src/regress/sbin/ipsecctl/ipsec4.in b/src/regress/sbin/ipsecctl/ipsec4.in new file mode 100644 index 000000000..355cdd706 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec4.in @@ -0,0 +1,3 @@ +flow esp from 1.1.1.1 to 3.3.3.0/24 peer 2.2.2.2 \ + srcid host1.one.net \ + dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec4.ok b/src/regress/sbin/ipsecctl/ipsec4.ok new file mode 100644 index 000000000..9e7d8286a --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec4.ok @@ -0,0 +1,2 @@ +flow esp out from 1.1.1.1 to 3.3.3.0/24 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require +flow esp in from 3.3.3.0/24 to 1.1.1.1 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec40.in b/src/regress/sbin/ipsecctl/ipsec40.in new file mode 100644 index 000000000..d622820e1 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec40.in @@ -0,0 +1,2 @@ +flow esp proto etherip from 3ffe:1::1 to 3ffe:1::2 +flow esp proto 97 from 3ffe:2::1 to 3ffe:3::1 diff --git a/src/regress/sbin/ipsecctl/ipsec40.ok b/src/regress/sbin/ipsecctl/ipsec40.ok new file mode 100644 index 000000000..253aa3914 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec40.ok @@ -0,0 +1,4 @@ +flow esp out proto etherip from 3ffe:1::1 to 3ffe:1::2 peer 3ffe:1::2 type require +flow esp in proto etherip from 3ffe:1::2 to 3ffe:1::1 peer 3ffe:1::2 type require +flow esp out proto etherip from 3ffe:2::1 to 3ffe:3::1 peer 3ffe:3::1 type require +flow esp in proto etherip from 3ffe:3::1 to 3ffe:2::1 peer 3ffe:3::1 type require diff --git a/src/regress/sbin/ipsecctl/ipsec41.in b/src/regress/sbin/ipsecctl/ipsec41.in new file mode 100644 index 000000000..f8b21d7c9 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec41.in @@ -0,0 +1,7 @@ +flow esp from 3ffe::3 to 3ffe::2 peer 3ffe::3 +flow esp from 3ffe::3 to 3ffe::2 peer 3ffe::3 type use +flow esp from 3ffe::3 to 3ffe::2 peer 3ffe::3 type require +flow esp from 3ffe::3 to 3ffe::2 peer 3ffe::3 type acquire +flow esp from 3ffe::3 to 3ffe::2 peer 3ffe::3 type dontacq +flow esp from 3ffe::3 to 3ffe::2 type bypass +flow esp from 3ffe::3 to 3ffe::2 type deny diff --git a/src/regress/sbin/ipsecctl/ipsec41.ok b/src/regress/sbin/ipsecctl/ipsec41.ok new file mode 100644 index 000000000..229f2b04d --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec41.ok @@ -0,0 +1,14 @@ +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type require +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type require +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type use +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type use +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type require +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type require +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type acquire +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type acquire +flow esp out from 3ffe::3 to 3ffe::2 peer 3ffe::3 type dontacq +flow esp in from 3ffe::2 to 3ffe::3 peer 3ffe::3 type dontacq +flow esp out from 3ffe::3 to 3ffe::2 type bypass +flow esp in from 3ffe::2 to 3ffe::3 type bypass +flow esp out from 3ffe::3 to 3ffe::2 type deny +flow esp in from 3ffe::2 to 3ffe::3 type deny diff --git a/src/regress/sbin/ipsecctl/ipsec42.in b/src/regress/sbin/ipsecctl/ipsec42.in new file mode 100644 index 000000000..5dd087d37 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec42.in @@ -0,0 +1 @@ +flow esp from 3ffe:1::1 to 3ffe:2::1 diff --git a/src/regress/sbin/ipsecctl/ipsec42.ok b/src/regress/sbin/ipsecctl/ipsec42.ok new file mode 100644 index 000000000..23b5f1bbb --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec42.ok @@ -0,0 +1,2 @@ +flow esp out from 3ffe:1::1 to 3ffe:2::1 peer 3ffe:2::1 type require +flow esp in from 3ffe:2::1 to 3ffe:1::1 peer 3ffe:2::1 type require diff --git a/src/regress/sbin/ipsecctl/ipsec43.in b/src/regress/sbin/ipsecctl/ipsec43.in new file mode 100644 index 000000000..5fd71bd8a --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec43.in @@ -0,0 +1 @@ +flow esp from 3ffe:1::1 to 3ffe:2::2 srcid host1.one.net dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec43.ok b/src/regress/sbin/ipsecctl/ipsec43.ok new file mode 100644 index 000000000..d3a7f77aa --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec43.ok @@ -0,0 +1,2 @@ +flow esp out from 3ffe:1::1 to 3ffe:2::2 peer 3ffe:2::2 srcid host1.one.net dstid host2.two.net type require +flow esp in from 3ffe:2::2 to 3ffe:1::1 peer 3ffe:2::2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec44.in b/src/regress/sbin/ipsecctl/ipsec44.in new file mode 100644 index 000000000..9c16b1948 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec44.in @@ -0,0 +1 @@ +flow esp from 3ffe:1::1 to 3ffe:3::/64 peer 3ffe:2::1 diff --git a/src/regress/sbin/ipsecctl/ipsec44.ok b/src/regress/sbin/ipsecctl/ipsec44.ok new file mode 100644 index 000000000..94c64d5b8 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec44.ok @@ -0,0 +1,2 @@ +flow esp out from 3ffe:1::1 to 3ffe:3::/64 peer 3ffe:2::1 type require +flow esp in from 3ffe:3::/64 to 3ffe:1::1 peer 3ffe:2::1 type require diff --git a/src/regress/sbin/ipsecctl/ipsec5.in b/src/regress/sbin/ipsecctl/ipsec5.in new file mode 100644 index 000000000..a67fe4e5a --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec5.in @@ -0,0 +1,3 @@ +flow esp from 4.4.0.0/16 to 3.3.3.0/24 peer 2.2.2.2 \ + srcid host1.one.net \ + dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec5.ok b/src/regress/sbin/ipsecctl/ipsec5.ok new file mode 100644 index 000000000..33b661e68 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec5.ok @@ -0,0 +1,2 @@ +flow esp out from 4.4.0.0/16 to 3.3.3.0/24 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require +flow esp in from 3.3.3.0/24 to 4.4.0.0/16 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec50.in b/src/regress/sbin/ipsecctl/ipsec50.in new file mode 100644 index 000000000..abf4df1b5 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec50.in @@ -0,0 +1 @@ +flow ah from 3ffe::1 to 3ffe:3::/24 peer 3ffe::2 diff --git a/src/regress/sbin/ipsecctl/ipsec50.ok b/src/regress/sbin/ipsecctl/ipsec50.ok new file mode 100644 index 000000000..f3d7fc713 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec50.ok @@ -0,0 +1,2 @@ +flow ah out from 3ffe::1 to 3ffe:3::/24 peer 3ffe::2 type require +flow ah in from 3ffe:3::/24 to 3ffe::1 peer 3ffe::2 type require diff --git a/src/regress/sbin/ipsecctl/ipsec51.in b/src/regress/sbin/ipsecctl/ipsec51.in new file mode 100644 index 000000000..cc2a55e64 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec51.in @@ -0,0 +1,2 @@ +flow ah proto udp from 1.1.1.1 port ntp to 2.2.2.2 +flow ah proto udp from 1.1.1.1 port 123 to 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ipsec51.ok b/src/regress/sbin/ipsecctl/ipsec51.ok new file mode 100644 index 000000000..c3141dfa0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec51.ok @@ -0,0 +1,4 @@ +flow ah out proto udp from 1.1.1.1 port ntp to 2.2.2.2 peer 2.2.2.2 type require +flow ah in proto udp from 2.2.2.2 to 1.1.1.1 port ntp peer 2.2.2.2 type require +flow ah out proto udp from 1.1.1.1 port ntp to 2.2.2.2 peer 2.2.2.2 type require +flow ah in proto udp from 2.2.2.2 to 1.1.1.1 port ntp peer 2.2.2.2 type require diff --git a/src/regress/sbin/ipsecctl/ipsec52.in b/src/regress/sbin/ipsecctl/ipsec52.in new file mode 100644 index 000000000..ec5468050 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec52.in @@ -0,0 +1 @@ +flow esp proto tcp from 3ffe::1 port 2022 to 3ffe::2 port ssh diff --git a/src/regress/sbin/ipsecctl/ipsec52.ok b/src/regress/sbin/ipsecctl/ipsec52.ok new file mode 100644 index 000000000..76cb00883 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec52.ok @@ -0,0 +1,2 @@ +flow esp out proto tcp from 3ffe::1 port 2022 to 3ffe::2 port ssh peer 3ffe::2 type require +flow esp in proto tcp from 3ffe::2 port ssh to 3ffe::1 port 2022 peer 3ffe::2 type require diff --git a/src/regress/sbin/ipsecctl/ipsec53.in b/src/regress/sbin/ipsecctl/ipsec53.in new file mode 100644 index 000000000..c4650d992 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec53.in @@ -0,0 +1,2 @@ +flow from lo0 to 127.0.0.1 +flow from { 127.0.0.1, ::1 } to { ::1 } diff --git a/src/regress/sbin/ipsecctl/ipsec53.ok b/src/regress/sbin/ipsecctl/ipsec53.ok new file mode 100644 index 000000000..db10bb122 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec53.ok @@ -0,0 +1,4 @@ +flow esp out from 127.0.0.1 to 127.0.0.1 peer 127.0.0.1 type require +flow esp in from 127.0.0.1 to 127.0.0.1 peer 127.0.0.1 type require +flow esp out from ::1 to ::1 peer ::1 type require +flow esp in from ::1 to ::1 peer ::1 type require diff --git a/src/regress/sbin/ipsecctl/ipsec54.in b/src/regress/sbin/ipsecctl/ipsec54.in new file mode 100644 index 000000000..c4cce2f8a --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec54.in @@ -0,0 +1 @@ +flow from 1.1.1.1 to { 2.2.2.2 3.3.3.3 } diff --git a/src/regress/sbin/ipsecctl/ipsec54.ok b/src/regress/sbin/ipsecctl/ipsec54.ok new file mode 100644 index 000000000..a92ee9127 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec54.ok @@ -0,0 +1,4 @@ +flow esp out from 1.1.1.1 to 2.2.2.2 peer 2.2.2.2 type require +flow esp in from 2.2.2.2 to 1.1.1.1 peer 2.2.2.2 type require +flow esp out from 1.1.1.1 to 3.3.3.3 peer 3.3.3.3 type require +flow esp in from 3.3.3.3 to 1.1.1.1 peer 3.3.3.3 type require diff --git a/src/regress/sbin/ipsecctl/ipsec55.in b/src/regress/sbin/ipsecctl/ipsec55.in new file mode 100644 index 000000000..cf3a57a76 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec55.in @@ -0,0 +1 @@ +flow from 1.1.1.1 to 2.2.2.0/24 peer 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ipsec55.ok b/src/regress/sbin/ipsecctl/ipsec55.ok new file mode 100644 index 000000000..48517e8c8 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec55.ok @@ -0,0 +1,2 @@ +flow esp out from 1.1.1.1 to 2.2.2.0/24 peer 2.2.2.2 type require +flow esp in from 2.2.2.0/24 to 1.1.1.1 peer 2.2.2.2 type require diff --git a/src/regress/sbin/ipsecctl/ipsec56.in b/src/regress/sbin/ipsecctl/ipsec56.in new file mode 100644 index 000000000..079ec4c6e --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec56.in @@ -0,0 +1 @@ +flow from 1.1.1.1 to 2.2.2.0/24 type bypass diff --git a/src/regress/sbin/ipsecctl/ipsec56.ok b/src/regress/sbin/ipsecctl/ipsec56.ok new file mode 100644 index 000000000..149efe982 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec56.ok @@ -0,0 +1,2 @@ +flow esp out from 1.1.1.1 to 2.2.2.0/24 type bypass +flow esp in from 2.2.2.0/24 to 1.1.1.1 type bypass diff --git a/src/regress/sbin/ipsecctl/ipsec57.in b/src/regress/sbin/ipsecctl/ipsec57.in new file mode 100644 index 000000000..3c1695ada --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec57.in @@ -0,0 +1 @@ +flow from { ::1 1.1.1.1 } to { ::2 2.2.2.2 ::3 } diff --git a/src/regress/sbin/ipsecctl/ipsec57.ok b/src/regress/sbin/ipsecctl/ipsec57.ok new file mode 100644 index 000000000..5d2d032b2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec57.ok @@ -0,0 +1,6 @@ +flow esp out from ::1 to ::2 peer ::2 type require +flow esp in from ::2 to ::1 peer ::2 type require +flow esp out from ::1 to ::3 peer ::3 type require +flow esp in from ::3 to ::1 peer ::3 type require +flow esp out from 1.1.1.1 to 2.2.2.2 peer 2.2.2.2 type require +flow esp in from 2.2.2.2 to 1.1.1.1 peer 2.2.2.2 type require diff --git a/src/regress/sbin/ipsecctl/ipsec58.in b/src/regress/sbin/ipsecctl/ipsec58.in new file mode 100644 index 000000000..e21d557b1 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec58.in @@ -0,0 +1,3 @@ +flow from 1.1.1.1 to 2.2.2.2 +flow from 3.3.3.3 to 4.4.4.4 peer any +flow from 5.5.5.5 to 6.6.6.6 peer 9.9.9.9 diff --git a/src/regress/sbin/ipsecctl/ipsec58.ok b/src/regress/sbin/ipsecctl/ipsec58.ok new file mode 100644 index 000000000..972bbbc33 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec58.ok @@ -0,0 +1,6 @@ +flow esp out from 1.1.1.1 to 2.2.2.2 peer 2.2.2.2 type require +flow esp in from 2.2.2.2 to 1.1.1.1 peer 2.2.2.2 type require +flow esp out from 3.3.3.3 to 4.4.4.4 type require +flow esp in from 4.4.4.4 to 3.3.3.3 type require +flow esp out from 5.5.5.5 to 6.6.6.6 peer 9.9.9.9 type require +flow esp in from 6.6.6.6 to 5.5.5.5 peer 9.9.9.9 type require diff --git a/src/regress/sbin/ipsecctl/ipsec6.in b/src/regress/sbin/ipsecctl/ipsec6.in new file mode 100644 index 000000000..1c78a5198 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec6.in @@ -0,0 +1,6 @@ +flow esp out from 4.4.0.0/16 to 3.3.3.0/24 peer 2.2.2.2 \ + srcid host1.one.net \ + dstid host2.two.net +flow esp in from 3.3.3.0/24 to 4.4.0.0/16 peer 2.2.2.2 \ + srcid host1.one.net \ + dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec6.ok b/src/regress/sbin/ipsecctl/ipsec6.ok new file mode 100644 index 000000000..33b661e68 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec6.ok @@ -0,0 +1,2 @@ +flow esp out from 4.4.0.0/16 to 3.3.3.0/24 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require +flow esp in from 3.3.3.0/24 to 4.4.0.0/16 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec7.in b/src/regress/sbin/ipsecctl/ipsec7.in new file mode 100644 index 000000000..dcb503866 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec7.in @@ -0,0 +1 @@ +flow ah from 1.1.1.1 to 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ipsec7.ok b/src/regress/sbin/ipsecctl/ipsec7.ok new file mode 100644 index 000000000..f3da1c9de --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec7.ok @@ -0,0 +1,2 @@ +flow ah out from 1.1.1.1 to 2.2.2.2 peer 2.2.2.2 type require +flow ah in from 2.2.2.2 to 1.1.1.1 peer 2.2.2.2 type require diff --git a/src/regress/sbin/ipsecctl/ipsec8.in b/src/regress/sbin/ipsecctl/ipsec8.in new file mode 100644 index 000000000..5de51b8ab --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec8.in @@ -0,0 +1 @@ +flow ah from 1.1.1.1 to 2.2.2.2 srcid host1.one.net dstid host2.two.net diff --git a/src/regress/sbin/ipsecctl/ipsec8.ok b/src/regress/sbin/ipsecctl/ipsec8.ok new file mode 100644 index 000000000..183c383c8 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec8.ok @@ -0,0 +1,2 @@ +flow ah out from 1.1.1.1 to 2.2.2.2 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require +flow ah in from 2.2.2.2 to 1.1.1.1 peer 2.2.2.2 srcid host1.one.net dstid host2.two.net type require diff --git a/src/regress/sbin/ipsecctl/ipsec9.in b/src/regress/sbin/ipsecctl/ipsec9.in new file mode 100644 index 000000000..b24efe705 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec9.in @@ -0,0 +1 @@ +flow ah from 1.1.1.1 to 3.3.3.0/24 peer 2.2.2.2 diff --git a/src/regress/sbin/ipsecctl/ipsec9.ok b/src/regress/sbin/ipsecctl/ipsec9.ok new file mode 100644 index 000000000..2b4699be2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsec9.ok @@ -0,0 +1,2 @@ +flow ah out from 1.1.1.1 to 3.3.3.0/24 peer 2.2.2.2 type require +flow ah in from 3.3.3.0/24 to 1.1.1.1 peer 2.2.2.2 type require diff --git a/src/regress/sbin/ipsecctl/ipsecfail1.in b/src/regress/sbin/ipsecctl/ipsecfail1.in new file mode 100644 index 000000000..df5904574 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsecfail1.in @@ -0,0 +1 @@ +flow from 3ffe::1 to 1.1.1.1 diff --git a/src/regress/sbin/ipsecctl/ipsecfail1.ok b/src/regress/sbin/ipsecctl/ipsecfail1.ok new file mode 100644 index 000000000..961e15d64 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsecfail1.ok @@ -0,0 +1,2 @@ +stdin: 1: source/destination address families do not match +ipsecctl: Syntax error in config file: ipsec rules not loaded diff --git a/src/regress/sbin/ipsecctl/ipsecfail2.in b/src/regress/sbin/ipsecctl/ipsecfail2.in new file mode 100644 index 000000000..a49509a36 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsecfail2.in @@ -0,0 +1 @@ +flow from 1.1.1.1 to 2.2.2.2 port ssh diff --git a/src/regress/sbin/ipsecctl/ipsecfail2.ok b/src/regress/sbin/ipsecctl/ipsecfail2.ok new file mode 100644 index 000000000..113b15b60 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsecfail2.ok @@ -0,0 +1,2 @@ +stdin: 1: no protocol supplied with source/destination ports +ipsecctl: Syntax error in config file: ipsec rules not loaded diff --git a/src/regress/sbin/ipsecctl/ipsecfail3.in b/src/regress/sbin/ipsecctl/ipsecfail3.in new file mode 100644 index 000000000..d0e3863fc --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsecfail3.in @@ -0,0 +1,2 @@ +# destination network without peer in flow must fail +flow from 1.1.1.1 to { 2.2.2.2 3.3.3.0/24 } diff --git a/src/regress/sbin/ipsecctl/ipsecfail3.ok b/src/regress/sbin/ipsecctl/ipsecfail3.ok new file mode 100644 index 000000000..c85057213 --- /dev/null +++ b/src/regress/sbin/ipsecctl/ipsecfail3.ok @@ -0,0 +1,4 @@ +stdin: 2: no peer specified for destination 3.3.3.0/24 +ipsecctl: Syntax error in config file: ipsec rules not loaded +flow esp out from 1.1.1.1 to 2.2.2.2 peer 2.2.2.2 type require +flow esp in from 2.2.2.2 to 1.1.1.1 peer 2.2.2.2 type require diff --git a/src/regress/sbin/ipsecctl/obj b/src/regress/sbin/ipsecctl/obj new file mode 120000 index 000000000..13a4b410a --- /dev/null +++ b/src/regress/sbin/ipsecctl/obj @@ -0,0 +1 @@ +/usr/obj/regress/sbin/ipsecctl \ No newline at end of file diff --git a/src/regress/sbin/ipsecctl/sa1.in b/src/regress/sbin/ipsecctl/sa1.in new file mode 100644 index 000000000..020741610 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa1.in @@ -0,0 +1,3 @@ +esp from 1.1.1.1 to 2.2.2.2 spi 0xdeadbeef:0xbeefdead \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa1.ok b/src/regress/sbin/ipsecctl/sa1.ok new file mode 100644 index 000000000..11b63147a --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa1.ok @@ -0,0 +1,6 @@ +esp tunnel from 1.1.1.1 to 2.2.2.2 spi 0xdeadbeef auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.1 spi 0xbeefdead auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa10.in b/src/regress/sbin/ipsecctl/sa10.in new file mode 100644 index 000000000..ff4651714 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa10.in @@ -0,0 +1 @@ +ipip from 10.0.0.1 to 10.0.0.2 spi 0x0a000001 diff --git a/src/regress/sbin/ipsecctl/sa10.ok b/src/regress/sbin/ipsecctl/sa10.ok new file mode 100644 index 000000000..ff4651714 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa10.ok @@ -0,0 +1 @@ +ipip from 10.0.0.1 to 10.0.0.2 spi 0x0a000001 diff --git a/src/regress/sbin/ipsecctl/sa11.in b/src/regress/sbin/ipsecctl/sa11.in new file mode 100644 index 000000000..8abf09973 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa11.in @@ -0,0 +1,42 @@ +esp transport from 1.1.1.1 to 2.2.2.2 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" \ + enckey file "DIR/ek128:DIR/ek128" +esp transport from 1.1.1.2 to 2.2.2.2 spi 0x2eadbeef:0xbeef2ead \ + enc 3des-cbc \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek192:DIR/ek192" +esp transport from 1.1.1.3 to 2.2.2.2 spi 0x3eadbeef:0xbeef3ead \ + enc des-cbc \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek64:DIR/ek64" +esp transport from 1.1.1.4 to 2.2.2.2 spi 0x4eadbeef:0xbeef4ead \ + enc aes \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp transport from 1.1.1.5 to 2.2.2.2 spi 0x5eadbeef:0xbeef5ead \ + enc aesctr \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp transport from 1.1.1.6 to 2.2.2.2 spi 0x6eadbeef:0xbeef6ead \ + enc blowfish \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp transport from 1.1.1.7 to 2.2.2.2 spi 0x7eadbeef:0xbeef7ead \ + enc cast128 \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp transport from 1.1.1.8 to 2.2.2.2 spi 0x8eadbeef:0xbeef8ead \ + enc null \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" +esp transport from 1.1.1.9 to 2.2.2.2 spi 0x9eadbeef:0xbeef9ead \ + enc skipjack \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek80:DIR/ek80" diff --git a/src/regress/sbin/ipsecctl/sa11.ok b/src/regress/sbin/ipsecctl/sa11.ok new file mode 100644 index 000000000..bb7a460dc --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa11.ok @@ -0,0 +1,52 @@ +esp transport from 1.1.1.1 to 2.2.2.2 spi 0x1eadbeef auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 2.2.2.2 to 1.1.1.1 spi 0xbeef1ead auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 1.1.1.2 to 2.2.2.2 spi 0x2eadbeef auth hmac-sha1 enc 3des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 2.2.2.2 to 1.1.1.2 spi 0xbeef2ead auth hmac-sha1 enc 3des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 1.1.1.3 to 2.2.2.2 spi 0x3eadbeef auth hmac-sha1 enc des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeee +esp transport from 2.2.2.2 to 1.1.1.3 spi 0xbeef3ead auth hmac-sha1 enc des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeee +esp transport from 1.1.1.4 to 2.2.2.2 spi 0x4eadbeef auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 2.2.2.2 to 1.1.1.4 spi 0xbeef4ead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 1.1.1.5 to 2.2.2.2 spi 0x5eadbeef auth hmac-sha1 enc aesctr \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 2.2.2.2 to 1.1.1.5 spi 0xbeef5ead auth hmac-sha1 enc aesctr \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 1.1.1.6 to 2.2.2.2 spi 0x6eadbeef auth hmac-sha1 enc blowfish \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 2.2.2.2 to 1.1.1.6 spi 0xbeef6ead auth hmac-sha1 enc blowfish \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 1.1.1.7 to 2.2.2.2 spi 0x7eadbeef auth hmac-sha1 enc cast128 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 2.2.2.2 to 1.1.1.7 spi 0xbeef7ead auth hmac-sha1 enc cast128 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 1.1.1.8 to 2.2.2.2 spi 0x8eadbeef auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp transport from 2.2.2.2 to 1.1.1.8 spi 0xbeef8ead auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp transport from 1.1.1.9 to 2.2.2.2 spi 0x9eadbeef auth hmac-sha1 enc skipjack \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeee +esp transport from 2.2.2.2 to 1.1.1.9 spi 0xbeef9ead auth hmac-sha1 enc skipjack \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa12.in b/src/regress/sbin/ipsecctl/sa12.in new file mode 100644 index 000000000..3ebf84ecd --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa12.in @@ -0,0 +1,14 @@ +ah transport from 1.1.1.1 to 2.2.2.2 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" +ah transport from 1.1.1.2 to 2.2.2.2 spi 0x2eadbeef:0xbeef2ead auth hmac-md5 \ + authkey file "DIR/ak128:DIR/ak128" +ah transport from 1.1.1.3 to 2.2.2.2 spi 0x3eadbeef:0xbeef3ead auth hmac-ripemd160 \ + authkey file "DIR/ak160:DIR/ak160" +ah transport from 1.1.1.4 to 2.2.2.2 spi 0x4eadbeef:0xbeef4ead auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" +ah transport from 1.1.1.5 to 2.2.2.2 spi 0x5eadbeef:0xbeef5ead auth hmac-sha2-256 \ + authkey file "DIR/ak256:DIR/ak256" +ah transport from 1.1.1.6 to 2.2.2.2 spi 0x6eadbeef:0xbeef6ead auth hmac-sha2-384 \ + authkey file "DIR/ak384:DIR/ak384" +ah transport from 1.1.1.7 to 2.2.2.2 spi 0x7eadbeef:0xbeef7ead auth hmac-sha2-512 \ + authkey file "DIR/ak512:DIR/ak512" diff --git a/src/regress/sbin/ipsecctl/sa12.ok b/src/regress/sbin/ipsecctl/sa12.ok new file mode 100644 index 000000000..b47569a01 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa12.ok @@ -0,0 +1,28 @@ +ah transport from 1.1.1.1 to 2.2.2.2 spi 0x1eadbeef auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 2.2.2.2 to 1.1.1.1 spi 0xbeef1ead auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 1.1.1.2 to 2.2.2.2 spi 0x2eadbeef auth hmac-md5 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 2.2.2.2 to 1.1.1.2 spi 0xbeef2ead auth hmac-md5 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 1.1.1.3 to 2.2.2.2 spi 0x3eadbeef auth hmac-ripemd160 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 2.2.2.2 to 1.1.1.3 spi 0xbeef3ead auth hmac-ripemd160 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 1.1.1.4 to 2.2.2.2 spi 0x4eadbeef auth hmac-sha1 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 2.2.2.2 to 1.1.1.4 spi 0xbeef4ead auth hmac-sha1 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 1.1.1.5 to 2.2.2.2 spi 0x5eadbeef auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 2.2.2.2 to 1.1.1.5 spi 0xbeef5ead auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 1.1.1.6 to 2.2.2.2 spi 0x6eadbeef auth hmac-sha2-384 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 2.2.2.2 to 1.1.1.6 spi 0xbeef6ead auth hmac-sha2-384 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 1.1.1.7 to 2.2.2.2 spi 0x7eadbeef auth hmac-sha2-512 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 2.2.2.2 to 1.1.1.7 spi 0xbeef7ead auth hmac-sha2-512 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/src/regress/sbin/ipsecctl/sa13.in b/src/regress/sbin/ipsecctl/sa13.in new file mode 100644 index 000000000..912b5a58d --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa13.in @@ -0,0 +1,3 @@ +esp from 3ffe::1 to 3ffe::2 spi 0xdeadbeef:0xbeefdead \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa13.ok b/src/regress/sbin/ipsecctl/sa13.ok new file mode 100644 index 000000000..0f75aea6f --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa13.ok @@ -0,0 +1,6 @@ +esp tunnel from 3ffe::1 to 3ffe::2 spi 0xdeadbeef auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::2 to 3ffe::1 spi 0xbeefdead auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa14.in b/src/regress/sbin/ipsecctl/sa14.in new file mode 100644 index 000000000..95c0b143f --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa14.in @@ -0,0 +1,3 @@ +esp from 3ffe::1 to 3ffe::2 spi 0xdeadbeef:0xbeefdead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa14.ok b/src/regress/sbin/ipsecctl/sa14.ok new file mode 100644 index 000000000..9220d9802 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa14.ok @@ -0,0 +1,6 @@ +esp tunnel from 3ffe::1 to 3ffe::2 spi 0xdeadbeef auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::2 to 3ffe::1 spi 0xbeefdead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa15.in b/src/regress/sbin/ipsecctl/sa15.in new file mode 100644 index 000000000..ff1ed3070 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa15.in @@ -0,0 +1,6 @@ +esp from 3ffe::1 to 3ffe::2 spi 0xdeadbeef \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp from 3ffe::2 to 3ffe::1 spi 0xbeefdead \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa15.ok b/src/regress/sbin/ipsecctl/sa15.ok new file mode 100644 index 000000000..0f75aea6f --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa15.ok @@ -0,0 +1,6 @@ +esp tunnel from 3ffe::1 to 3ffe::2 spi 0xdeadbeef auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::2 to 3ffe::1 spi 0xbeefdead auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa16.in b/src/regress/sbin/ipsecctl/sa16.in new file mode 100644 index 000000000..ebb44b8ad --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa16.in @@ -0,0 +1,7 @@ +esp from 3ffe::1 to 3ffe::2 spi 0xdeadbeef auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee + +esp from 3ffe::2 to 3ffe::1 spi 0xbeefdead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa16.ok b/src/regress/sbin/ipsecctl/sa16.ok new file mode 100644 index 000000000..9220d9802 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa16.ok @@ -0,0 +1,6 @@ +esp tunnel from 3ffe::1 to 3ffe::2 spi 0xdeadbeef auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::2 to 3ffe::1 spi 0xbeefdead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa17.in b/src/regress/sbin/ipsecctl/sa17.in new file mode 100644 index 000000000..758bfceee --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa17.in @@ -0,0 +1,14 @@ +ah from 3ffe::1 to 3ffe::8 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" +ah from 3ffe::2 to 3ffe::8 spi 0x2eadbeef:0xbeef2ead auth hmac-md5 \ + authkey file "DIR/ak128:DIR/ak128" +ah from 3ffe::3 to 3ffe::8 spi 0x3eadbeef:0xbeef3ead auth hmac-ripemd160 \ + authkey file "DIR/ak160:DIR/ak160" +ah from 3ffe::4 to 3ffe::8 spi 0x4eadbeef:0xbeef4ead auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" +ah from 3ffe::5 to 3ffe::8 spi 0x5eadbeef:0xbeef5ead auth hmac-sha2-256 \ + authkey file "DIR/ak256:DIR/ak256" +ah from 3ffe::6 to 3ffe::8 spi 0x6eadbeef:0xbeef6ead auth hmac-sha2-384 \ + authkey file "DIR/ak384:DIR/ak384" +ah from 3ffe::7 to 3ffe::8 spi 0x7eadbeef:0xbeef7ead auth hmac-sha2-512 \ + authkey file "DIR/ak512:DIR/ak512" diff --git a/src/regress/sbin/ipsecctl/sa17.ok b/src/regress/sbin/ipsecctl/sa17.ok new file mode 100644 index 000000000..3e72ef685 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa17.ok @@ -0,0 +1,28 @@ +ah tunnel from 3ffe::1 to 3ffe::8 spi 0x1eadbeef auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::8 to 3ffe::1 spi 0xbeef1ead auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::2 to 3ffe::8 spi 0x2eadbeef auth hmac-md5 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::8 to 3ffe::2 spi 0xbeef2ead auth hmac-md5 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::3 to 3ffe::8 spi 0x3eadbeef auth hmac-ripemd160 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::8 to 3ffe::3 spi 0xbeef3ead auth hmac-ripemd160 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::4 to 3ffe::8 spi 0x4eadbeef auth hmac-sha1 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::8 to 3ffe::4 spi 0xbeef4ead auth hmac-sha1 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::5 to 3ffe::8 spi 0x5eadbeef auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::8 to 3ffe::5 spi 0xbeef5ead auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::6 to 3ffe::8 spi 0x6eadbeef auth hmac-sha2-384 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::8 to 3ffe::6 spi 0xbeef6ead auth hmac-sha2-384 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::7 to 3ffe::8 spi 0x7eadbeef auth hmac-sha2-512 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 3ffe::8 to 3ffe::7 spi 0xbeef7ead auth hmac-sha2-512 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/src/regress/sbin/ipsecctl/sa18.in b/src/regress/sbin/ipsecctl/sa18.in new file mode 100644 index 000000000..12fdc997c --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa18.in @@ -0,0 +1,34 @@ +esp from 3ffe::1 to 3ffe::10 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 3ffe::2 to 3ffe::10 spi 0x2eadbeef:0xbeef2ead auth hmac-sha1 \ + enc 3des-cbc \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek192:DIR/ek192" +esp from 3ffe::3 to 3ffe::10 spi 0x3eadbeef:0xbeef3ead auth hmac-sha1 \ + enc des-cbc \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek64:DIR/ek64" +esp from 3ffe::4 to 3ffe::10 spi 0x4eadbeef:0xbeef4ead auth hmac-sha1 \ + enc aes \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 3ffe::5 to 3ffe::10 spi 0x5eadbeef:0xbeef5ead auth hmac-sha1 \ + enc aesctr \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp from 3ffe::6 to 3ffe::10 spi 0x6eadbeef:0xbeef6ead auth hmac-sha1 \ + enc blowfish \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp from 3ffe::7 to 3ffe::10 spi 0x7eadbeef:0xbeef7ead auth hmac-sha1 \ + enc cast128 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 3ffe::8 to 3ffe::10 spi 0x8eadbeef:0xbeef8ead auth hmac-sha1 \ + enc null \ + authkey file "DIR/ak160:DIR/ak160" +esp from 3ffe::9 to 3ffe::10 spi 0x9eadbeef:0xbeef9ead auth hmac-sha1 \ + enc skipjack \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek80:DIR/ek80" diff --git a/src/regress/sbin/ipsecctl/sa18.ok b/src/regress/sbin/ipsecctl/sa18.ok new file mode 100644 index 000000000..31d24d7d1 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa18.ok @@ -0,0 +1,52 @@ +esp tunnel from 3ffe::1 to 3ffe::10 spi 0x1eadbeef auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::1 spi 0xbeef1ead auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::2 to 3ffe::10 spi 0x2eadbeef auth hmac-sha1 enc 3des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::2 spi 0xbeef2ead auth hmac-sha1 enc 3des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::3 to 3ffe::10 spi 0x3eadbeef auth hmac-sha1 enc des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::3 spi 0xbeef3ead auth hmac-sha1 enc des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeee +esp tunnel from 3ffe::4 to 3ffe::10 spi 0x4eadbeef auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::4 spi 0xbeef4ead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::5 to 3ffe::10 spi 0x5eadbeef auth hmac-sha1 enc aesctr \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::5 spi 0xbeef5ead auth hmac-sha1 enc aesctr \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::6 to 3ffe::10 spi 0x6eadbeef auth hmac-sha1 enc blowfish \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::6 spi 0xbeef6ead auth hmac-sha1 enc blowfish \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::7 to 3ffe::10 spi 0x7eadbeef auth hmac-sha1 enc cast128 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::7 spi 0xbeef7ead auth hmac-sha1 enc cast128 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::8 to 3ffe::10 spi 0x8eadbeef auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp tunnel from 3ffe::10 to 3ffe::8 spi 0xbeef8ead auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp tunnel from 3ffe::9 to 3ffe::10 spi 0x9eadbeef auth hmac-sha1 enc skipjack \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::9 spi 0xbeef9ead auth hmac-sha1 enc skipjack \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa19.in b/src/regress/sbin/ipsecctl/sa19.in new file mode 100644 index 000000000..db60c175a --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa19.in @@ -0,0 +1,3 @@ +esp from 3ffe::1 to any spi 0xdeadbeef:0xbeefdead \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa19.ok b/src/regress/sbin/ipsecctl/sa19.ok new file mode 100644 index 000000000..97a30aeb8 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa19.ok @@ -0,0 +1,6 @@ +esp tunnel from 3ffe::1 to ::/0 spi 0xdeadbeef auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from ::/0 to 3ffe::1 spi 0xbeefdead auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa2.in b/src/regress/sbin/ipsecctl/sa2.in new file mode 100644 index 000000000..d382bc9d0 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa2.in @@ -0,0 +1,3 @@ +esp from 1.1.1.1 to 2.2.2.2 spi 0xdeadbeef:0xbeefdead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa2.ok b/src/regress/sbin/ipsecctl/sa2.ok new file mode 100644 index 000000000..f16955359 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa2.ok @@ -0,0 +1,6 @@ +esp tunnel from 1.1.1.1 to 2.2.2.2 spi 0xdeadbeef auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.1 spi 0xbeefdead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa20.in b/src/regress/sbin/ipsecctl/sa20.in new file mode 100644 index 000000000..3b2c41a30 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa20.in @@ -0,0 +1,3 @@ +ipcomp from 3ffe::1 to 3ffe::2 spi 0x1000:0x1001 +ipcomp from 3ffe::3 to 3ffe::4 spi 0x2000:0x2001 comp deflate +ipcomp from 3ffe::5 to 3ffe::6 spi 0x3000:0x3001 comp lzs diff --git a/src/regress/sbin/ipsecctl/sa20.ok b/src/regress/sbin/ipsecctl/sa20.ok new file mode 100644 index 000000000..4c7e1bdc6 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa20.ok @@ -0,0 +1,6 @@ +ipcomp tunnel from 3ffe::1 to 3ffe::2 spi 0x00001000 comp deflate +ipcomp tunnel from 3ffe::2 to 3ffe::1 spi 0x00001001 comp deflate +ipcomp tunnel from 3ffe::3 to 3ffe::4 spi 0x00002000 comp deflate +ipcomp tunnel from 3ffe::4 to 3ffe::3 spi 0x00002001 comp deflate +ipcomp tunnel from 3ffe::5 to 3ffe::6 spi 0x00003000 comp lzs +ipcomp tunnel from 3ffe::6 to 3ffe::5 spi 0x00003001 comp lzs diff --git a/src/regress/sbin/ipsecctl/sa21.in b/src/regress/sbin/ipsecctl/sa21.in new file mode 100644 index 000000000..807bd49bb --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa21.in @@ -0,0 +1,42 @@ +esp from 3ffe::1 to 3ffe::10 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 3ffe::2 to 3ffe::10 spi 0x2eadbeef:0xbeef2ead \ + enc 3des-cbc \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek192:DIR/ek192" +esp from 3ffe::3 to 3ffe::10 spi 0x3eadbeef:0xbeef3ead \ + enc des-cbc \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek64:DIR/ek64" +esp from 3ffe::4 to 3ffe::10 spi 0x4eadbeef:0xbeef4ead \ + enc aes \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 3ffe::5 to 3ffe::10 spi 0x5eadbeef:0xbeef5ead \ + enc aesctr \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp from 3ffe::6 to 3ffe::10 spi 0x6eadbeef:0xbeef6ead \ + enc blowfish \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp from 3ffe::7 to 3ffe::10 spi 0x7eadbeef:0xbeef7ead \ + enc cast128 \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 3ffe::8 to 3ffe::10 spi 0x8eadbeef:0xbeef8ead \ + enc null \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" +esp from 3ffe::9 to 3ffe::10 spi 0x9eadbeef:0xbeef9ead \ + enc skipjack \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek80:DIR/ek80" diff --git a/src/regress/sbin/ipsecctl/sa21.ok b/src/regress/sbin/ipsecctl/sa21.ok new file mode 100644 index 000000000..31d24d7d1 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa21.ok @@ -0,0 +1,52 @@ +esp tunnel from 3ffe::1 to 3ffe::10 spi 0x1eadbeef auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::1 spi 0xbeef1ead auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::2 to 3ffe::10 spi 0x2eadbeef auth hmac-sha1 enc 3des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::2 spi 0xbeef2ead auth hmac-sha1 enc 3des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::3 to 3ffe::10 spi 0x3eadbeef auth hmac-sha1 enc des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::3 spi 0xbeef3ead auth hmac-sha1 enc des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeee +esp tunnel from 3ffe::4 to 3ffe::10 spi 0x4eadbeef auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::4 spi 0xbeef4ead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::5 to 3ffe::10 spi 0x5eadbeef auth hmac-sha1 enc aesctr \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::5 spi 0xbeef5ead auth hmac-sha1 enc aesctr \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::6 to 3ffe::10 spi 0x6eadbeef auth hmac-sha1 enc blowfish \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::6 spi 0xbeef6ead auth hmac-sha1 enc blowfish \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::7 to 3ffe::10 spi 0x7eadbeef auth hmac-sha1 enc cast128 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::7 spi 0xbeef7ead auth hmac-sha1 enc cast128 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::8 to 3ffe::10 spi 0x8eadbeef auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp tunnel from 3ffe::10 to 3ffe::8 spi 0xbeef8ead auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp tunnel from 3ffe::9 to 3ffe::10 spi 0x9eadbeef auth hmac-sha1 enc skipjack \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::9 spi 0xbeef9ead auth hmac-sha1 enc skipjack \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa22.in b/src/regress/sbin/ipsecctl/sa22.in new file mode 100644 index 000000000..e66e9a7f2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa22.in @@ -0,0 +1 @@ +ipip from 3ffe::1 to 3ffe::2 spi 0x0a000001 diff --git a/src/regress/sbin/ipsecctl/sa22.ok b/src/regress/sbin/ipsecctl/sa22.ok new file mode 100644 index 000000000..e66e9a7f2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa22.ok @@ -0,0 +1 @@ +ipip from 3ffe::1 to 3ffe::2 spi 0x0a000001 diff --git a/src/regress/sbin/ipsecctl/sa23.in b/src/regress/sbin/ipsecctl/sa23.in new file mode 100644 index 000000000..2b7667b77 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa23.in @@ -0,0 +1,42 @@ +esp transport from 3ffe::1 to 3ffe::10 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" \ + enckey file "DIR/ek128:DIR/ek128" +esp transport from 3ffe::2 to 3ffe::10 spi 0x2eadbeef:0xbeef2ead \ + enc 3des-cbc \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek192:DIR/ek192" +esp transport from 3ffe::3 to 3ffe::10 spi 0x3eadbeef:0xbeef3ead \ + enc des-cbc \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek64:DIR/ek64" +esp transport from 3ffe::4 to 3ffe::10 spi 0x4eadbeef:0xbeef4ead \ + enc aes \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp transport from 3ffe::5 to 3ffe::10 spi 0x5eadbeef:0xbeef5ead \ + enc aesctr \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp transport from 3ffe::6 to 3ffe::10 spi 0x6eadbeef:0xbeef6ead \ + enc blowfish \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp transport from 3ffe::7 to 3ffe::10 spi 0x7eadbeef:0xbeef7ead \ + enc cast128 \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp transport from 3ffe::8 to 3ffe::10 spi 0x8eadbeef:0xbeef8ead \ + enc null \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" +esp transport from 3ffe::9 to 3ffe::10 spi 0x9eadbeef:0xbeef9ead \ + enc skipjack \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek80:DIR/ek80" diff --git a/src/regress/sbin/ipsecctl/sa23.ok b/src/regress/sbin/ipsecctl/sa23.ok new file mode 100644 index 000000000..12d047507 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa23.ok @@ -0,0 +1,52 @@ +esp transport from 3ffe::1 to 3ffe::10 spi 0x1eadbeef auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::1 spi 0xbeef1ead auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::2 to 3ffe::10 spi 0x2eadbeef auth hmac-sha1 enc 3des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::2 spi 0xbeef2ead auth hmac-sha1 enc 3des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::3 to 3ffe::10 spi 0x3eadbeef auth hmac-sha1 enc des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::3 spi 0xbeef3ead auth hmac-sha1 enc des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeee +esp transport from 3ffe::4 to 3ffe::10 spi 0x4eadbeef auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::4 spi 0xbeef4ead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::5 to 3ffe::10 spi 0x5eadbeef auth hmac-sha1 enc aesctr \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::5 spi 0xbeef5ead auth hmac-sha1 enc aesctr \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::6 to 3ffe::10 spi 0x6eadbeef auth hmac-sha1 enc blowfish \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::6 spi 0xbeef6ead auth hmac-sha1 enc blowfish \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::7 to 3ffe::10 spi 0x7eadbeef auth hmac-sha1 enc cast128 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::7 spi 0xbeef7ead auth hmac-sha1 enc cast128 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::8 to 3ffe::10 spi 0x8eadbeef auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp transport from 3ffe::10 to 3ffe::8 spi 0xbeef8ead auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp transport from 3ffe::9 to 3ffe::10 spi 0x9eadbeef auth hmac-sha1 enc skipjack \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::9 spi 0xbeef9ead auth hmac-sha1 enc skipjack \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa24.in b/src/regress/sbin/ipsecctl/sa24.in new file mode 100644 index 000000000..0f4c7ea28 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa24.in @@ -0,0 +1,14 @@ +ah transport from 3ffe::1 to 3ffe::8 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" +ah transport from 3ffe::2 to 3ffe::8 spi 0x2eadbeef:0xbeef2ead auth hmac-md5 \ + authkey file "DIR/ak128:DIR/ak128" +ah transport from 3ffe::3 to 3ffe::8 spi 0x3eadbeef:0xbeef3ead auth hmac-ripemd160 \ + authkey file "DIR/ak160:DIR/ak160" +ah transport from 3ffe::4 to 3ffe::8 spi 0x4eadbeef:0xbeef4ead auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" +ah transport from 3ffe::5 to 3ffe::8 spi 0x5eadbeef:0xbeef5ead auth hmac-sha2-256 \ + authkey file "DIR/ak256:DIR/ak256" +ah transport from 3ffe::6 to 3ffe::8 spi 0x6eadbeef:0xbeef6ead auth hmac-sha2-384 \ + authkey file "DIR/ak384:DIR/ak384" +ah transport from 3ffe::7 to 3ffe::8 spi 0x7eadbeef:0xbeef7ead auth hmac-sha2-512 \ + authkey file "DIR/ak512:DIR/ak512" diff --git a/src/regress/sbin/ipsecctl/sa24.ok b/src/regress/sbin/ipsecctl/sa24.ok new file mode 100644 index 000000000..c42bdff48 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa24.ok @@ -0,0 +1,28 @@ +ah transport from 3ffe::1 to 3ffe::8 spi 0x1eadbeef auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::1 spi 0xbeef1ead auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::2 to 3ffe::8 spi 0x2eadbeef auth hmac-md5 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::2 spi 0xbeef2ead auth hmac-md5 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::3 to 3ffe::8 spi 0x3eadbeef auth hmac-ripemd160 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::3 spi 0xbeef3ead auth hmac-ripemd160 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::4 to 3ffe::8 spi 0x4eadbeef auth hmac-sha1 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::4 spi 0xbeef4ead auth hmac-sha1 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::5 to 3ffe::8 spi 0x5eadbeef auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::5 spi 0xbeef5ead auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::6 to 3ffe::8 spi 0x6eadbeef auth hmac-sha2-384 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::6 spi 0xbeef6ead auth hmac-sha2-384 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::7 to 3ffe::8 spi 0x7eadbeef auth hmac-sha2-512 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::7 spi 0xbeef7ead auth hmac-sha2-512 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/src/regress/sbin/ipsecctl/sa3.in b/src/regress/sbin/ipsecctl/sa3.in new file mode 100644 index 000000000..ba706a0db --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa3.in @@ -0,0 +1,6 @@ +esp from 1.1.1.1 to 2.2.2.2 spi 0xdeadbeef \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp from 2.2.2.2 to 1.1.1.1 spi 0xbeefdead \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa3.ok b/src/regress/sbin/ipsecctl/sa3.ok new file mode 100644 index 000000000..11b63147a --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa3.ok @@ -0,0 +1,6 @@ +esp tunnel from 1.1.1.1 to 2.2.2.2 spi 0xdeadbeef auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.1 spi 0xbeefdead auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa4.in b/src/regress/sbin/ipsecctl/sa4.in new file mode 100644 index 000000000..ce15ae1b2 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa4.in @@ -0,0 +1,7 @@ +esp from 1.1.1.1 to 2.2.2.2 spi 0xdeadbeef auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee + +esp from 2.2.2.2 to 1.1.1.1 spi 0xbeefdead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa4.ok b/src/regress/sbin/ipsecctl/sa4.ok new file mode 100644 index 000000000..f16955359 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa4.ok @@ -0,0 +1,6 @@ +esp tunnel from 1.1.1.1 to 2.2.2.2 spi 0xdeadbeef auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.1 spi 0xbeefdead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa5.in b/src/regress/sbin/ipsecctl/sa5.in new file mode 100644 index 000000000..a46d0df79 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa5.in @@ -0,0 +1,14 @@ +ah from 1.1.1.1 to 2.2.2.2 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" +ah from 1.1.1.2 to 2.2.2.2 spi 0x2eadbeef:0xbeef2ead auth hmac-md5 \ + authkey file "DIR/ak128:DIR/ak128" +ah from 1.1.1.3 to 2.2.2.2 spi 0x3eadbeef:0xbeef3ead auth hmac-ripemd160 \ + authkey file "DIR/ak160:DIR/ak160" +ah from 1.1.1.4 to 2.2.2.2 spi 0x4eadbeef:0xbeef4ead auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" +ah from 1.1.1.5 to 2.2.2.2 spi 0x5eadbeef:0xbeef5ead auth hmac-sha2-256 \ + authkey file "DIR/ak256:DIR/ak256" +ah from 1.1.1.6 to 2.2.2.2 spi 0x6eadbeef:0xbeef6ead auth hmac-sha2-384 \ + authkey file "DIR/ak384:DIR/ak384" +ah from 1.1.1.7 to 2.2.2.2 spi 0x7eadbeef:0xbeef7ead auth hmac-sha2-512 \ + authkey file "DIR/ak512:DIR/ak512" diff --git a/src/regress/sbin/ipsecctl/sa5.ok b/src/regress/sbin/ipsecctl/sa5.ok new file mode 100644 index 000000000..5d95d6195 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa5.ok @@ -0,0 +1,28 @@ +ah tunnel from 1.1.1.1 to 2.2.2.2 spi 0x1eadbeef auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 2.2.2.2 to 1.1.1.1 spi 0xbeef1ead auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 1.1.1.2 to 2.2.2.2 spi 0x2eadbeef auth hmac-md5 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 2.2.2.2 to 1.1.1.2 spi 0xbeef2ead auth hmac-md5 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 1.1.1.3 to 2.2.2.2 spi 0x3eadbeef auth hmac-ripemd160 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 2.2.2.2 to 1.1.1.3 spi 0xbeef3ead auth hmac-ripemd160 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 1.1.1.4 to 2.2.2.2 spi 0x4eadbeef auth hmac-sha1 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 2.2.2.2 to 1.1.1.4 spi 0xbeef4ead auth hmac-sha1 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 1.1.1.5 to 2.2.2.2 spi 0x5eadbeef auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 2.2.2.2 to 1.1.1.5 spi 0xbeef5ead auth hmac-sha2-256 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 1.1.1.6 to 2.2.2.2 spi 0x6eadbeef auth hmac-sha2-384 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 2.2.2.2 to 1.1.1.6 spi 0xbeef6ead auth hmac-sha2-384 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 1.1.1.7 to 2.2.2.2 spi 0x7eadbeef auth hmac-sha2-512 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah tunnel from 2.2.2.2 to 1.1.1.7 spi 0xbeef7ead auth hmac-sha2-512 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/src/regress/sbin/ipsecctl/sa6.in b/src/regress/sbin/ipsecctl/sa6.in new file mode 100644 index 000000000..2867b98f3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa6.in @@ -0,0 +1,34 @@ +esp from 1.1.1.1 to 2.2.2.2 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 1.1.1.2 to 2.2.2.2 spi 0x2eadbeef:0xbeef2ead auth hmac-sha1 \ + enc 3des-cbc \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek192:DIR/ek192" +esp from 1.1.1.3 to 2.2.2.2 spi 0x3eadbeef:0xbeef3ead auth hmac-sha1 \ + enc des-cbc \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek64:DIR/ek64" +esp from 1.1.1.4 to 2.2.2.2 spi 0x4eadbeef:0xbeef4ead auth hmac-sha1 \ + enc aes \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 1.1.1.5 to 2.2.2.2 spi 0x5eadbeef:0xbeef5ead auth hmac-sha1 \ + enc aesctr \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp from 1.1.1.6 to 2.2.2.2 spi 0x6eadbeef:0xbeef6ead auth hmac-sha1 \ + enc blowfish \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp from 1.1.1.7 to 2.2.2.2 spi 0x7eadbeef:0xbeef7ead auth hmac-sha1 \ + enc cast128 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 1.1.1.8 to 2.2.2.2 spi 0x8eadbeef:0xbeef8ead auth hmac-sha1 \ + enc null \ + authkey file "DIR/ak160:DIR/ak160" +esp from 1.1.1.9 to 2.2.2.2 spi 0x9eadbeef:0xbeef9ead auth hmac-sha1 \ + enc skipjack \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek80:DIR/ek80" diff --git a/src/regress/sbin/ipsecctl/sa6.ok b/src/regress/sbin/ipsecctl/sa6.ok new file mode 100644 index 000000000..677ca9339 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa6.ok @@ -0,0 +1,52 @@ +esp tunnel from 1.1.1.1 to 2.2.2.2 spi 0x1eadbeef auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.1 spi 0xbeef1ead auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.2 to 2.2.2.2 spi 0x2eadbeef auth hmac-sha1 enc 3des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.2 spi 0xbeef2ead auth hmac-sha1 enc 3des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.3 to 2.2.2.2 spi 0x3eadbeef auth hmac-sha1 enc des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.3 spi 0xbeef3ead auth hmac-sha1 enc des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.4 to 2.2.2.2 spi 0x4eadbeef auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.4 spi 0xbeef4ead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.5 to 2.2.2.2 spi 0x5eadbeef auth hmac-sha1 enc aesctr \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.5 spi 0xbeef5ead auth hmac-sha1 enc aesctr \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.6 to 2.2.2.2 spi 0x6eadbeef auth hmac-sha1 enc blowfish \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.6 spi 0xbeef6ead auth hmac-sha1 enc blowfish \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.7 to 2.2.2.2 spi 0x7eadbeef auth hmac-sha1 enc cast128 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.7 spi 0xbeef7ead auth hmac-sha1 enc cast128 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.8 to 2.2.2.2 spi 0x8eadbeef auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp tunnel from 2.2.2.2 to 1.1.1.8 spi 0xbeef8ead auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp tunnel from 1.1.1.9 to 2.2.2.2 spi 0x9eadbeef auth hmac-sha1 enc skipjack \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.9 spi 0xbeef9ead auth hmac-sha1 enc skipjack \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa7.in b/src/regress/sbin/ipsecctl/sa7.in new file mode 100644 index 000000000..04decb076 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa7.in @@ -0,0 +1,3 @@ +esp from 1.1.1.1 to any spi 0xdeadbeef:0xbeefdead \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa7.ok b/src/regress/sbin/ipsecctl/sa7.ok new file mode 100644 index 000000000..d3a3727ef --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa7.ok @@ -0,0 +1,6 @@ +esp tunnel from 1.1.1.1 to 0.0.0.0/0 spi 0xdeadbeef auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 0.0.0.0/0 to 1.1.1.1 spi 0xbeefdead auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/sa8.in b/src/regress/sbin/ipsecctl/sa8.in new file mode 100644 index 000000000..104c1aeb3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa8.in @@ -0,0 +1,3 @@ +ipcomp from 1.1.1.1 to 2.2.2.2 spi 0x1000:0x1001 +ipcomp from 3.3.3.3 to 4.4.4.4 spi 0x2000:0x2001 comp deflate +ipcomp from 5.5.5.5 to 6.6.6.6 spi 0x3000:0x3001 comp lzs diff --git a/src/regress/sbin/ipsecctl/sa8.ok b/src/regress/sbin/ipsecctl/sa8.ok new file mode 100644 index 000000000..faab80108 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa8.ok @@ -0,0 +1,6 @@ +ipcomp tunnel from 1.1.1.1 to 2.2.2.2 spi 0x00001000 comp deflate +ipcomp tunnel from 2.2.2.2 to 1.1.1.1 spi 0x00001001 comp deflate +ipcomp tunnel from 3.3.3.3 to 4.4.4.4 spi 0x00002000 comp deflate +ipcomp tunnel from 4.4.4.4 to 3.3.3.3 spi 0x00002001 comp deflate +ipcomp tunnel from 5.5.5.5 to 6.6.6.6 spi 0x00003000 comp lzs +ipcomp tunnel from 6.6.6.6 to 5.5.5.5 spi 0x00003001 comp lzs diff --git a/src/regress/sbin/ipsecctl/sa9.in b/src/regress/sbin/ipsecctl/sa9.in new file mode 100644 index 000000000..edbac916a --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa9.in @@ -0,0 +1,46 @@ +esp from 1.1.1.1 to 2.2.2.2 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 1.1.1.2 to 2.2.2.2 spi 0x2eadbeef:0xbeef2ead \ + enc 3des-cbc \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek192:DIR/ek192" +esp from 1.1.1.3 to 2.2.2.2 spi 0x3eadbeef:0xbeef3ead \ + enc des-cbc \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek64:DIR/ek64" +esp from 1.1.1.4 to 2.2.2.2 spi 0x4eadbeef:0xbeef4ead \ + enc aes \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 1.1.1.5 to 2.2.2.2 spi 0x5eadbeef:0xbeef5ead \ + enc aesctr \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp from 1.1.1.6 to 2.2.2.2 spi 0x6eadbeef:0xbeef6ead \ + enc blowfish \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp from 1.1.1.7 to 2.2.2.2 spi 0x7eadbeef:0xbeef7ead \ + enc cast128 \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 1.1.1.8 to 2.2.2.2 spi 0x8eadbeef:0xbeef8ead \ + enc null \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" +esp from 1.1.1.9 to 2.2.2.2 spi 0x9eadbeef:0xbeef9ead \ + enc skipjack \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek80:DIR/ek80" +esp from 1.1.1.10 to 2.2.2.2 spi 0xaeadbeef:0xbeefaead \ + enc null \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" diff --git a/src/regress/sbin/ipsecctl/sa9.ok b/src/regress/sbin/ipsecctl/sa9.ok new file mode 100644 index 000000000..3737c0e26 --- /dev/null +++ b/src/regress/sbin/ipsecctl/sa9.ok @@ -0,0 +1,56 @@ +esp tunnel from 1.1.1.1 to 2.2.2.2 spi 0x1eadbeef auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.1 spi 0xbeef1ead auth hmac-sha2-256 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.2 to 2.2.2.2 spi 0x2eadbeef auth hmac-sha1 enc 3des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.2 spi 0xbeef2ead auth hmac-sha1 enc 3des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.3 to 2.2.2.2 spi 0x3eadbeef auth hmac-sha1 enc des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.3 spi 0xbeef3ead auth hmac-sha1 enc des-cbc \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.4 to 2.2.2.2 spi 0x4eadbeef auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.4 spi 0xbeef4ead auth hmac-sha1 enc aes \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.5 to 2.2.2.2 spi 0x5eadbeef auth hmac-sha1 enc aesctr \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.5 spi 0xbeef5ead auth hmac-sha1 enc aesctr \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.6 to 2.2.2.2 spi 0x6eadbeef auth hmac-sha1 enc blowfish \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.6 spi 0xbeef6ead auth hmac-sha1 enc blowfish \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.7 to 2.2.2.2 spi 0x7eadbeef auth hmac-sha1 enc cast128 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.7 spi 0xbeef7ead auth hmac-sha1 enc cast128 \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.8 to 2.2.2.2 spi 0x8eadbeef auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp tunnel from 2.2.2.2 to 1.1.1.8 spi 0xbeef8ead auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp tunnel from 1.1.1.9 to 2.2.2.2 spi 0x9eadbeef auth hmac-sha1 enc skipjack \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeee +esp tunnel from 2.2.2.2 to 1.1.1.9 spi 0xbeef9ead auth hmac-sha1 enc skipjack \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeee +esp tunnel from 1.1.1.10 to 2.2.2.2 spi 0xaeadbeef auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp tunnel from 2.2.2.2 to 1.1.1.10 spi 0xbeefaead auth hmac-sha1 enc null \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/src/regress/sbin/ipsecctl/safail1.in b/src/regress/sbin/ipsecctl/safail1.in new file mode 100644 index 000000000..a10bb3179 --- /dev/null +++ b/src/regress/sbin/ipsecctl/safail1.in @@ -0,0 +1,6 @@ +esp from 1.1.1.1 to 2.2.2.2 spi 0x1eadbeef:0xbeef1ead \ + comp deflate enc 3des-cbc auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek192:DIR/ek192" +ipcomp from 3.3.3.3 to 4.4.4.4 spi 0x2000:0x2001 \ + comp deflate enc 3des-cbc auth hmac-sha1 diff --git a/src/regress/sbin/ipsecctl/safail1.ok b/src/regress/sbin/ipsecctl/safail1.ok new file mode 100644 index 000000000..bb468a39f --- /dev/null +++ b/src/regress/sbin/ipsecctl/safail1.ok @@ -0,0 +1,3 @@ +stdin: 4: esp does not provide compression +stdin: 6: no encryption or authentication with ipcomp +ipsecctl: Syntax error in config file: ipsec rules not loaded diff --git a/src/regress/sbin/ipsecctl/safail2.in b/src/regress/sbin/ipsecctl/safail2.in new file mode 100644 index 000000000..1612fcdd4 --- /dev/null +++ b/src/regress/sbin/ipsecctl/safail2.in @@ -0,0 +1,6 @@ +esp from 1.1.1.1 to 3ffe::1 spi 0xdeadbeef:0xbeefdead \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp from 3ffe::1 to 1.1.1.1 spi 0xdeadbeef:0xbeefdead \ + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee diff --git a/src/regress/sbin/ipsecctl/safail2.ok b/src/regress/sbin/ipsecctl/safail2.ok new file mode 100644 index 000000000..960795db3 --- /dev/null +++ b/src/regress/sbin/ipsecctl/safail2.ok @@ -0,0 +1,3 @@ +stdin: 3: source/destination address families do not match +stdin: 6: source/destination address families do not match +ipsecctl: Syntax error in config file: ipsec rules not loaded diff --git a/src/regress/sbin/ipsecctl/tcpmd51.in b/src/regress/sbin/ipsecctl/tcpmd51.in new file mode 100644 index 000000000..035f2a71a --- /dev/null +++ b/src/regress/sbin/ipsecctl/tcpmd51.in @@ -0,0 +1 @@ +tcpmd5 from 1.1.1.1 to 2.2.2.2 spi 0x2000:0x2001 authkey 0xdeadbeef:0xbeefdead diff --git a/src/regress/sbin/ipsecctl/tcpmd51.ok b/src/regress/sbin/ipsecctl/tcpmd51.ok new file mode 100644 index 000000000..0f61ac988 --- /dev/null +++ b/src/regress/sbin/ipsecctl/tcpmd51.ok @@ -0,0 +1,2 @@ +tcpmd5 from 1.1.1.1 to 2.2.2.2 spi 0x00002000 authkey 0xdeadbeef +tcpmd5 from 2.2.2.2 to 1.1.1.1 spi 0x00002001 authkey 0xbeefdead diff --git a/src/regress/sbin/ipsecctl/tcpmd52.in b/src/regress/sbin/ipsecctl/tcpmd52.in new file mode 100644 index 000000000..7f5ef95a9 --- /dev/null +++ b/src/regress/sbin/ipsecctl/tcpmd52.in @@ -0,0 +1,2 @@ +tcpmd5 from 1.1.1.1 to 2.2.2.2 spi 0x1000 authkey 0xdeadbeef +tcpmd5 from 1.1.1.1 to 2.2.2.2 spi 0x1001 authkey 0xbeefdead diff --git a/src/regress/sbin/ipsecctl/tcpmd52.ok b/src/regress/sbin/ipsecctl/tcpmd52.ok new file mode 100644 index 000000000..35d5e42b1 --- /dev/null +++ b/src/regress/sbin/ipsecctl/tcpmd52.ok @@ -0,0 +1,2 @@ +tcpmd5 from 1.1.1.1 to 2.2.2.2 spi 0x00001000 authkey 0xdeadbeef +tcpmd5 from 1.1.1.1 to 2.2.2.2 spi 0x00001001 authkey 0xbeefdead diff --git a/src/regress/sbin/ipsecctl/tcpmd53.in b/src/regress/sbin/ipsecctl/tcpmd53.in new file mode 100644 index 000000000..4810c7e9d --- /dev/null +++ b/src/regress/sbin/ipsecctl/tcpmd53.in @@ -0,0 +1 @@ +tcpmd5 from 1.1.1.1 to 2.2.2.2 spi 0x2000:0x2001 authkey file "DIR/ak160:DIR/ak160" diff --git a/src/regress/sbin/ipsecctl/tcpmd53.ok b/src/regress/sbin/ipsecctl/tcpmd53.ok new file mode 100644 index 000000000..90ecabfcb --- /dev/null +++ b/src/regress/sbin/ipsecctl/tcpmd53.ok @@ -0,0 +1,2 @@ +tcpmd5 from 1.1.1.1 to 2.2.2.2 spi 0x00002000 authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +tcpmd5 from 2.2.2.2 to 1.1.1.1 spi 0x00002001 authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/src/regress/sbin/isakmpd/CVS/Entries b/src/regress/sbin/isakmpd/CVS/Entries new file mode 100644 index 000000000..6bb75a5f0 --- /dev/null +++ b/src/regress/sbin/isakmpd/CVS/Entries @@ -0,0 +1,13 @@ +/Makefile/1.1/Fri Apr 8 17:11:11 2005// +D/b2n//// +D/crypto//// +D/dh//// +D/ec2n//// +D/exchange//// +D/group//// +D/hmac//// +D/msg//// +D/prf//// +D/rsakeygen//// +D/util//// +D/x509//// diff --git a/src/regress/sbin/isakmpd/CVS/Repository b/src/regress/sbin/isakmpd/CVS/Repository new file mode 100644 index 000000000..1f335f05b --- /dev/null +++ b/src/regress/sbin/isakmpd/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd diff --git a/src/regress/sbin/isakmpd/CVS/Root b/src/regress/sbin/isakmpd/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/Makefile b/src/regress/sbin/isakmpd/Makefile new file mode 100644 index 000000000..6f573f8e7 --- /dev/null +++ b/src/regress/sbin/isakmpd/Makefile @@ -0,0 +1,36 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/08 17:11:11 cloder Exp $ +# $EOM: Makefile,v 1.8 1999/07/17 20:44:13 niklas Exp $ + +# +# Copyright (c) 1998, 1999 Niklas Hallqvist. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# +# This code was written under funding by Ericsson Radio Systems. +# + +SUBDIR= b2n crypto dh ec2n group hmac prf rsakeygen util + +# exchange and x509 are meant to be run manually + +.include diff --git a/src/regress/sbin/isakmpd/b2n/CVS/Entries b/src/regress/sbin/isakmpd/b2n/CVS/Entries new file mode 100644 index 000000000..e2344bdda --- /dev/null +++ b/src/regress/sbin/isakmpd/b2n/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Apr 8 17:12:48 2005// +/b2ntest.c/1.1/Fri Apr 8 17:12:48 2005// +D diff --git a/src/regress/sbin/isakmpd/b2n/CVS/Repository b/src/regress/sbin/isakmpd/b2n/CVS/Repository new file mode 100644 index 000000000..5770a83a9 --- /dev/null +++ b/src/regress/sbin/isakmpd/b2n/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd/b2n diff --git a/src/regress/sbin/isakmpd/b2n/CVS/Root b/src/regress/sbin/isakmpd/b2n/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/b2n/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/b2n/Makefile b/src/regress/sbin/isakmpd/b2n/Makefile new file mode 100644 index 000000000..00297b0bc --- /dev/null +++ b/src/regress/sbin/isakmpd/b2n/Makefile @@ -0,0 +1,16 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/08 17:12:48 cloder Exp $ +# $EOM: Makefile,v 1.12 2000/10/13 13:04:17 ho Exp $ + +# Test some math + +PROG= b2ntest +SRCS= b2ntest.c conf.c log.c math_2n.c sysdep.c util.c +NOMAN= +TOPSRC= ${.CURDIR}/../../../../sbin/isakmpd +TOPOBJ!= cd ${TOPSRC}; printf "all:\n\t@pwd\n" |${MAKE} -f- +OS!= awk '/^OS=/ { print $$2 }' ${.CURDIR}/../../Makefile +.PATH: ${TOPSRC} ${TOPSRC}/sysdep/openbsd ${TOPOBJ} +CFLAGS+= -I${TOPSRC} -I${TOPSRC}/sysdep/openbsd -I${TOPOBJ} -Wall +DEBUG= -g + +.include diff --git a/src/regress/sbin/isakmpd/b2n/b2ntest.c b/src/regress/sbin/isakmpd/b2n/b2ntest.c new file mode 100644 index 000000000..1e17a220d --- /dev/null +++ b/src/regress/sbin/isakmpd/b2n/b2ntest.c @@ -0,0 +1,368 @@ +/* $OpenBSD: b2ntest.c,v 1.1 2005/04/08 17:12:48 cloder Exp $ */ +/* $EOM: b2ntest.c,v 1.4 1998/07/16 19:31:55 provos Exp $ */ + +/* + * Copyright (c) 1998 Niels Provos. All rights reserved. + * Copyright (c) 2001 Niklas Hallqvist. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This code was written under funding by Ericsson Radio Systems. + */ + +/* + * B2N is a module for doing arithmetic on the Field GF(2**n) which is + * isomorph to ring of polynomials GF(2)[x]/p(x) where p(x) is an + * irreduciable polynomial over GF(2)[x] with grade n. + */ + +#include +#include +#include + +#include "math_2n.h" + +#define BUFSIZE 200 + +#define CMP_FAIL(n,x) b2n_snprint (buf, BUFSIZE, n); if (strcmp (buf, (x))) \ + printf ("FAILED: %s != %s ", buf, x); else printf ("OKAY "); + +int +main (void) +{ + int i; + b2n_t n, m, d, r; + char buf[BUFSIZE]; + + b2n_init (n); + b2n_init (m); + b2n_init (d); + b2n_init (r); + + printf ("Arithimetic Tests for GF(2)[x]:\n"); + printf ("Testing: b2n_set*: "); + b2n_set_ui (n, 0xffc0); + CMP_FAIL (n, "0xffc0"); + + b2n_set_str (m, "0x180c0"); + CMP_FAIL (m, "0x0180c0"); + b2n_set_str (m, "0x808b8080c0"); + CMP_FAIL (m, "0x808b8080c0"); + + printf ("\nTesting: b2n_add: "); + b2n_add (d, n, m); + CMP_FAIL (d, "0x808b807f00"); + b2n_add (n, n, m); + CMP_FAIL (n, "0x808b807f00"); + b2n_add (n, n, n); + CMP_FAIL (n, "0x00"); + b2n_set_str (n, "0x9090900000000000000000"); + b2n_set_ui (m, 0); + b2n_add (n, n, m); + CMP_FAIL (n, "0x9090900000000000000000"); + + printf ("\nTesting: b2n_lshift: "); + b2n_set_str (m, "0x808b8080c0"); + b2n_lshift (n, m, 3); + CMP_FAIL (n, "0x04045c040600"); + b2n_lshift (n, m, 11); + CMP_FAIL (n, "0x04045c04060000"); + b2n_set (n, m); + for (i = 0; i < 11; i++) + b2n_lshift (n, n, 1); + CMP_FAIL (n, "0x04045c04060000"); + b2n_lshift (d, m, 12); + CMP_FAIL (d, "0x0808b8080c0000"); + b2n_set_str (m, "0xdeadbeef"); + b2n_lshift (d, m, 103); + CMP_FAIL (d, "0x6f56df7780000000000000000000000000"); + + printf ("\nTesting: b2n_rshift: "); + b2n_rshift (m, n, 3); + CMP_FAIL (m, "0x808b8080c000"); + b2n_rshift (m, m, 11); + CMP_FAIL (m, "0x1011701018"); + b2n_set_str (m, "0x12381998713258186712365"); + b2n_rshift (m, m, 23); + CMP_FAIL (m, "0x024703330e264b030c"); + b2n_set_str (m, "0x12381998713258186712365"); + for (i=0; i<23; i++) + b2n_rshift (m, m, 1); + CMP_FAIL (m, "0x024703330e264b030c"); + + printf ("\nTesting: b2n_mul: 0x9 o 0x5: "); + b2n_set_ui (n, 9); + b2n_set_ui (m, 5); + b2n_mul (d, n, m); + CMP_FAIL (d, "0x2d"); + b2n_mul (n, n, m); + CMP_FAIL (d, "0x2d"); + + printf ("\nTesting: b2n_mul: 0x9 o 0x0: "); + b2n_set_ui (n, 9); + b2n_set_ui (m, 0); + b2n_mul (d, n, m); + CMP_FAIL (d, "0x00"); + b2n_set_ui (n, 0); + b2n_set_ui (m, 9); + b2n_mul (d, n, m); + CMP_FAIL (d, "0x00"); + + printf ("\nTesting: b2n_mul: 0x9 o 0x1: "); + b2n_set_ui (n, 9); + b2n_set_ui (m, 1); + b2n_mul (d, n, m); + CMP_FAIL (d, "0x09"); + + printf ("\nTesting: b2n_mul: 0x12329 o 0x1235: "); + b2n_set_str (n, "0x12329"); + b2n_set_str (m, "0x1235"); + b2n_mul (d, n, m); + CMP_FAIL (d, "0x10473a3d"); + b2n_mul (n, n, m); + CMP_FAIL (d, "0x10473a3d"); + + printf ("\nTesting: b2n_square: 0x1235 o 0x1235: "); + b2n_set_str (m, "0x1235"); + b2n_square (n, m); + CMP_FAIL (n, "0x01040511"); + + printf ("\nTesting: b2n_square: 0x80c1235 o 0x80c1235: "); + b2n_set_str (m, "0x80c1235"); + b2n_square (n, m); + CMP_FAIL (n, "0x40005001040511"); + + b2n_set_str (m, "0x12329"); + printf ("\nTesting: sigbit: 0x12329: %d, %s", + b2n_sigbit(m), b2n_sigbit(m) == 17 ? "OKAY" : "FAILED"); + b2n_set_ui (m, 0); + printf ("\nTesting: sigbit: 0x0: %d, %s", + b2n_sigbit(m), b2n_sigbit(m) == 0 ? "OKAY" : "FAILED"); + b2n_set_str (m, "0x7f3290000"); + printf ("\nTesting: sigbit: 0x7f3290000: %d, %s", + b2n_sigbit(m), b2n_sigbit(m) == 35 ? "OKAY" : "FAILED"); + + printf ("\nTesting: b2n_cmp: "); + b2n_set_str (m, "0x2234"); + b2n_set_str (n, "0x1234"); + printf ("%d <-> %d, ", b2n_sigbit (m), b2n_sigbit(n)); + printf ("%d, %d ,%d: ", b2n_cmp (m,m), b2n_cmp (m,n), b2n_cmp (n,m)); + if (b2n_cmp (m,m) || b2n_cmp (m,n) != 1 || b2n_cmp (n,m) != -1) + printf ("FAILED"); + else + printf ("OKAY"); + printf ("\nTesting: b2n_cmp_null: "); + b2n_set_str (m, "0x2234"); + b2n_set_ui (n, 0); + printf ("%d, %d: ", b2n_cmp_null (m), b2n_cmp_null (n)); + if (b2n_cmp_null (m) != 1 || b2n_cmp_null (n)) + printf ("FAILED"); + else + printf ("OKAY"); + + printf ("\nTesting: b2n_div: 0x2d / 0x5: "); + b2n_set_str (n, "0x2d"); + b2n_set_ui (m, 5); + b2n_div (n, m, n, m); + CMP_FAIL (n, "0x09"); + CMP_FAIL (m, "0x00"); + printf ("\nTesting: b2n_div: 0x2d / 0x1: "); + b2n_set_str (n, "0x2d"); + b2n_set_ui (m, 1); + b2n_div (n, m, n, m); + CMP_FAIL (n, "0x2d"); + CMP_FAIL (m, "0x00"); + + printf ("\nTesting: b2n_div: 0x10473a3d / 0x1235: "); + b2n_set_str (n, "0x10473a3d"); + b2n_set_str (m, "0x1235"); + b2n_div (n, m, n, m); + CMP_FAIL (n, "0x012329"); + CMP_FAIL (m, "0x00"); + + printf ("\nTesting: b2n_div: 0x10473a3d / 0x1536: "); + b2n_set_str (n, "0x10473a3d"); + b2n_set_str (m, "0x1536"); + b2n_div (n, m, n, m); + CMP_FAIL (n, "0x014331"); + CMP_FAIL (m, "0xab"); + b2n_set_str (n, "0x10473a3d"); + b2n_set_str (m, "0x1536"); + b2n_div_q (d, n, m); + CMP_FAIL (d, "0x014331"); + b2n_div_r (d, n, m); + CMP_FAIL (d, "0xab"); + + printf ("\nTesting: b2n_div: " + "0x0800000000000000000000004000000000000001 / 0xffab09909a00: "); + b2n_set_str (n, "0x0800000000000000000000004000000000000001"); + b2n_set_str (m, "0xffab09909a00"); + b2n_div_q (d, n, m); + CMP_FAIL (d, "0x18083e83a98647cedae0b3e69a5e"); + b2n_div_r (d, n, m); + CMP_FAIL (d, "0x5b8bf98cac01"); + b2n_set (d, m); + b2n_div (n, m, n, m); + CMP_FAIL (n, "0x18083e83a98647cedae0b3e69a5e"); + CMP_FAIL (m, "0x5b8bf98cac01"); + + printf ("\nTesting: b2n_div: " + "0x0800000000000000000000004000000000000001 / 0x7b: "); + b2n_set_str (n, "0x0800000000000000000000004000000000000001"); + b2n_set_str (m, "0x7b"); + b2n_div (n, m, n, m); + CMP_FAIL (n, "0x32dea27065bd44e0cb7a89c000000000000000"); + CMP_FAIL (m, "0x01"); + + printf ("\n\nArithimetic Tests for GF(2**m) ~= GF(2)[x]/p(x):\n"); + printf ("Testing: b2n_gcd: "); + b2n_set_str (d, "0x771"); + b2n_set_str (m, "0x26d"); + b2n_gcd (n, m, d); + CMP_FAIL (n, "0x0b"); + b2n_set_str (d, "0x0800000000000000000000004000000000000001"); + b2n_set_str (m, "0xffab09909a00"); + b2n_gcd (n, m, d); + CMP_FAIL (n, "0x01"); + b2n_set_str (d, "0x0800000000000000000000004000000000000001"); + b2n_set_str (m, "0x7b"); + b2n_gcd (n, m, d); + CMP_FAIL (n, "0x01"); + + printf ("\nTesting: b2n_mul_inv: "); + b2n_set_str (d, "0x0800000000000000000000004000000000000001"); + b2n_set_str (m, "0xffab09909a00"); + b2n_mul_inv (n, m, d); + CMP_FAIL (n, "0x074029149f69304174d28858ae5c60df208a22a8"); + b2n_set_str (n, "0xffab09909a00"); + b2n_mul_inv (n, n, d); + CMP_FAIL (n, "0x074029149f69304174d28858ae5c60df208a22a8"); + b2n_mul (n, n, m); + b2n_mod (n, n, d); + CMP_FAIL (n, "0x01"); + b2n_set_str (d, "0x0800000000000000000000004000000000000001"); + b2n_set_str (m, "0x7b"); + b2n_mul_inv (n, m, d); + CMP_FAIL (n, "0x32dea27065bd44e0cb7a89c000000000000000"); + b2n_mul (n, n, m); + b2n_mod (n, n, d); + CMP_FAIL (n, "0x01"); + + printf ("\nTesting: b2n_random: "); + b2n_random (m, 155); + b2n_snprint (buf, BUFSIZE, m); + printf ("%s, %d", buf, b2n_sigbit(m)); + + printf ("\nTesting: b2n_sqrt: "); + b2n_set_str (n, "0x0800000000000000000000004000000000000001"); + b2n_set_ui (d, 2); + b2n_sqrt (m, d, n); + b2n_square (d, m); + b2n_add (d, d, m); + b2n_mod (d, d, n); + CMP_FAIL (d, "0x02"); + + /* x**3 + b */ + b2n_set_ui (n, 0x7b); + b2n_square (d, n); + b2n_mul (d, d, n); + b2n_set_str (n, "0x07338f"); + b2n_add (d, d, n); + b2n_set_str (n, "0x0800000000000000000000004000000000000001"); + b2n_mod (d, d, n); + /* \alpha = x**3 + b - end */ + + /* \beta = x**(-2)*\alpha */ + b2n_set_ui (m, 0x7b); + b2n_mul_inv (m, m, n); + b2n_square (m, m); + b2n_mod (m, m, n); + b2n_mul (d, d, m); + b2n_mod (d, d, n); + b2n_set (r, d); + /* \beta = x**(-2)*\alpha - end */ + + b2n_sqrt (m, d, n); + CMP_FAIL (m, "0x0690aec7cd215d8f9a42bb1f0000000000000004"); + b2n_square (d, m); + b2n_mod (d, d, n); + b2n_add (d, d, m); + b2n_mod (d, d, n); + printf ("Squaring Check: "); + CMP_FAIL (d, "0x03d5af92c8311d9e8f56be4b3e690aec7cd215cc"); + + printf ("\nTesting: b2n_trace: "); + b2n_set_ui (m, 2); + b2n_trace (d, m, n); + CMP_FAIL (d, "0x00"); + b2n_set_ui (m, 0x11223); + b2n_trace (d, m, n); + CMP_FAIL (d, "0x01"); + + printf ("\nTesting: b2n_exp_mod: "); + b2n_set_ui (m, 0x7b); + b2n_exp_mod (d, m, 5, n); + CMP_FAIL (d, "0x7cccb7cb"); + b2n_set_str (m, "0x123456789abcdef"); + b2n_exp_mod (d, m, 13, n); + CMP_FAIL (d, "0x043f0a8550cb69b3c50d0340d1c6d5c97ecd60d4"); + + printf ("\nTesting: b2n_3mul: "); + b2n_set_ui (m, 0x7b); + b2n_3mul (m, m); + CMP_FAIL (m, "0x0171"); + + b2n_set_ui (m, 0x7fffffff); + b2n_3mul (m, m); + CMP_FAIL (m, "0x017ffffffd"); + + printf ("\nTesting: b2n_nadd: "); + b2n_set_str (m, "0x7fffffff"); + b2n_set_str (n, "0x10203045"); + b2n_nadd (d, n, m); + CMP_FAIL (d, "0x90203044"); + + b2n_set_str (m, "0x9a4a54d8b8dfa566112849991214329a233d"); + b2n_set_str (n, "0x70ee40dd60c8657e58eda9a17ad9176e28b4b457e5a34a0948e335"); + b2n_nadd (d, n, m); + CMP_FAIL (d, "0x70ee40dd60c8657e5987f3f65391f7138ec5dca17eb55e3be30672"); + + printf ("\nTesting: b2n_nsub: "); + b2n_set_str (n, "0x90203044"); + b2n_set_str (m, "0x10203045"); + b2n_nsub (d, n, m); + CMP_FAIL (d, "0x7fffffff"); + + b2n_set_str (n, "0x70ee40dd60c8657e5987f3f65391f7138ec5dca17eb55e3be30672"); + b2n_set_str (m, "0x70ee40dd60c8657e58eda9a17ad9176e28b4b457e5a34a0948e335"); + b2n_nsub (d, n, m); + CMP_FAIL (d, "0x9a4a54d8b8dfa566112849991214329a233d"); + + b2n_clear (n); + b2n_clear (m); + b2n_clear (d); + b2n_clear (r); + + printf ("\n"); + return 0; +} diff --git a/src/regress/sbin/isakmpd/crypto/CVS/Entries b/src/regress/sbin/isakmpd/crypto/CVS/Entries new file mode 100644 index 000000000..32fb5e967 --- /dev/null +++ b/src/regress/sbin/isakmpd/crypto/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Apr 8 17:12:48 2005// +/cryptotest.c/1.1/Fri Apr 8 17:12:48 2005// +D diff --git a/src/regress/sbin/isakmpd/crypto/CVS/Repository b/src/regress/sbin/isakmpd/crypto/CVS/Repository new file mode 100644 index 000000000..410869d4c --- /dev/null +++ b/src/regress/sbin/isakmpd/crypto/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd/crypto diff --git a/src/regress/sbin/isakmpd/crypto/CVS/Root b/src/regress/sbin/isakmpd/crypto/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/crypto/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/crypto/Makefile b/src/regress/sbin/isakmpd/crypto/Makefile new file mode 100644 index 000000000..a0877a51c --- /dev/null +++ b/src/regress/sbin/isakmpd/crypto/Makefile @@ -0,0 +1,20 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/08 17:12:48 cloder Exp $ +# $EOM: Makefile,v 1.7 2000/03/28 21:22:06 ho Exp $ + +# Test Crypto: + +PROG= cryptotest +SRCS= crypto.c cryptotest.c conf.c log.c sysdep.c util.c +TOPSRC= ${.CURDIR}/../../../../sbin/isakmpd +TOPOBJ!= cd ${TOPSRC}; printf "all:\n\t@pwd\n" |${MAKE} -f- +OS!= awk '/^OS=/ { print $$2 }' ${.CURDIR}/../../Makefile +.PATH: ${TOPSRC} ${TOPSRC}/sysdep/openbsd ${TOPOBJ} +CFLAGS+= -I${TOPSRC} -I${TOPSRC}/sysdep/openbsd -I${TOPOBJ} -Wall \ + -DUSE_TRIPLEDES -DUSE_CAST -DUSE_BLOWFISH -DUSE_DES \ + -DUSE_AES +LDADD+= -lcrypto -ldes +DPADD+= ${LIBCRYPTO} ${LIBDES} +NOMAN= +DEBUG= -g + +.include diff --git a/src/regress/sbin/isakmpd/crypto/cryptotest.c b/src/regress/sbin/isakmpd/crypto/cryptotest.c new file mode 100644 index 000000000..e0c6d792c --- /dev/null +++ b/src/regress/sbin/isakmpd/crypto/cryptotest.c @@ -0,0 +1,178 @@ +/* $OpenBSD: cryptotest.c,v 1.1 2005/04/08 17:12:48 cloder Exp $ */ +/* $EOM: cryptotest.c,v 1.5 1998/10/07 16:40:49 niklas Exp $ */ + +/* + * Copyright (c) 1998 Niels Provos. All rights reserved. + * Copyright (c) 2001 Niklas Hallqvist. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This code was written under funding by Ericsson Radio Systems. + */ + +#include +#include +#include +#include +#include + +#include "crypto.h" + +void test_crypto (enum transform); + +#define SET_KEY(x,y) {size_t i; for (i=0; i < (y); i++) (x)[i] = i;} + +int +verify_buf (u_int8_t *buf, u_int16_t len) +{ + int i; + + for (i = 0; i < len; i++) + if (buf[i] != i) + return 0; + + return 1; +} + +#define nibble2bin(y) (tolower((y)) < 'a' ? (y) - '0': tolower((y)) - 'a' + 10) +#define hexchar2bin(x) ((nibble2bin((x)[0]) << 4) + nibble2bin((x)[1])) +#define nibble2c(x) ((x) >= 10 ? ('a'-10+(x)) : ('0' + (x))) + +static void asc2bin (u_int8_t *bin, u_int8_t *asc, u_int16_t len) +{ + int i; + + for (i = 0; i < len; i += 2, asc += 2) + { + *bin++ = hexchar2bin(asc); + } +} + +void +special_test_blf (void) +{ + u_int8_t *akey = "0123456789ABCDEFF0E1D2C3B4A59687"; + u_int8_t *aiv = "FEDCBA9876543210"; + u_int8_t data[] = "7654321 Now is the time for \0\0\0"; /* len 29 */ + u_int8_t *acipher + = "6B77B4D63006DEE605B156E27403979358DEB9E7154616D959F1652BD5FF92CCE7"; + u_int8_t key[16], cipher[32], iv[8]; + struct crypto_xf *xf; + struct keystate *ks; + enum cryptoerr err; + int i; + + asc2bin (key, akey, strlen (akey)); + asc2bin (iv, aiv, strlen (aiv)); + asc2bin (cipher, acipher, 64); + + xf = crypto_get (BLOWFISH_CBC); + printf ("Special Test-Case %s: ", xf->name); + + ks = crypto_init (xf, key, 16, &err); + if (!ks) + { + printf ("FAILED (init %d)", err); + goto fail; + } + + crypto_init_iv (ks, iv, xf->blocksize); + crypto_encrypt (ks, data, 32); + + for (i = 0; i < 32; i++) + if (data[i] != cipher[i]) + break; + if (i < 32) + printf ("FAILED "); + else + printf ("OKAY "); + + free (ks); + +fail: + printf ("\n"); + return; +} + +int +main (void) +{ + test_crypto (DES_CBC); + + test_crypto (TRIPLEDES_CBC); + + test_crypto (BLOWFISH_CBC); + + test_crypto (CAST_CBC); + + test_crypto (AES_CBC); + + special_test_blf (); + + return 0; +} + +void +dump_buf (u_int8_t *buf, size_t len) +{ + size_t i; + + for (i = 0; i < len; i++) + printf ("%02x ", buf[i]); + printf ("\n"); +} + +void +test_crypto (enum transform which) +{ + u_int8_t buf[256]; + struct crypto_xf *xf; + struct keystate *ks; + enum cryptoerr err; + + xf = crypto_get (which); + printf ("Testing %s: ", xf->name); + + SET_KEY (buf, xf->keymax); + ks = crypto_init (xf, buf, xf->keymax, &err); + if (!ks) + { + printf ("FAILED (init %d)", err); + goto fail; + } + SET_KEY (buf, sizeof (buf)); + crypto_init_iv (ks, buf, xf->blocksize); + crypto_encrypt (ks, buf, sizeof (buf)); + dump_buf (buf, sizeof buf); + crypto_decrypt (ks, buf, sizeof (buf)); + if (!verify_buf (buf, sizeof (buf))) + printf ("FAILED "); + else + printf ("OKAY "); + + free (ks); + + fail: + printf ("\n"); + return; +} diff --git a/src/regress/sbin/isakmpd/dh/CVS/Entries b/src/regress/sbin/isakmpd/dh/CVS/Entries new file mode 100644 index 000000000..d9d564097 --- /dev/null +++ b/src/regress/sbin/isakmpd/dh/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Apr 8 17:12:48 2005// +/dhtest.c/1.1/Fri Apr 8 17:12:48 2005// +D diff --git a/src/regress/sbin/isakmpd/dh/CVS/Repository b/src/regress/sbin/isakmpd/dh/CVS/Repository new file mode 100644 index 000000000..de85f14a7 --- /dev/null +++ b/src/regress/sbin/isakmpd/dh/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd/dh diff --git a/src/regress/sbin/isakmpd/dh/CVS/Root b/src/regress/sbin/isakmpd/dh/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/dh/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/dh/Makefile b/src/regress/sbin/isakmpd/dh/Makefile new file mode 100644 index 000000000..032550bb7 --- /dev/null +++ b/src/regress/sbin/isakmpd/dh/Makefile @@ -0,0 +1,29 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/08 17:12:48 cloder Exp $ +# $EOM: Makefile,v 1.10 2000/04/07 20:19:43 niklas Exp $ + +# Test DH: + +PROG= dhtest +SRCS= math_2n.c math_ec2n.c math_group.c dh.c dhtest.c log.c util.c \ + sysdep.c gmp_util.c conf.c +TOPSRC= ${.CURDIR}/../../../../sbin/isakmpd +TOPOBJ!= cd ${TOPSRC}; printf "all:\n\t@pwd\n" |${MAKE} -f- +OS!= awk '/^OS=/ { print $$2 }' ${.CURDIR}/../../Makefile +FEATURES!= awk '/^FEATURES=/ { print $$0 }' ${.CURDIR}/../../Makefile | sed 's/FEATURES=.//' +.PATH: ${TOPSRC} ${TOPSRC}/sysdep/openbsd ${TOPOBJ} +CFLAGS+= -I${TOPSRC} -I${TOPSRC}/sysdep/openbsd -I${TOPOBJ} -Wall \ + -DUSE_EC +NOMAN= +LDADD+= -lcrypto +DPADD+= ${LIBCRYPTO} +DEBUG= -g + +.if ${FEATURES:Mgmp} == "gmp" +CFLAGS+= -DMP_FLAVOUR=MP_FLAVOUR_GMP +LDADD+= -lgmp +DPADD+= ${LIBGMP} +.else +CFLAGS+= -DMP_FLAVOUR=MP_FLAVOUR_OPENSSL +.endif + +.include diff --git a/src/regress/sbin/isakmpd/dh/dhtest.c b/src/regress/sbin/isakmpd/dh/dhtest.c new file mode 100644 index 000000000..7e4faa0de --- /dev/null +++ b/src/regress/sbin/isakmpd/dh/dhtest.c @@ -0,0 +1,102 @@ +/* $OpenBSD: dhtest.c,v 1.1 2005/04/08 17:12:48 cloder Exp $ */ +/* $EOM: dhtest.c,v 1.1 1998/07/18 21:14:20 provos Exp $ */ + +/* + * Copyright (c) 1998 Niels Provos. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This code was written under funding by Ericsson Radio Systems. + */ + +/* + * This module does a Diffie-Hellman Exchange + */ + +#include +#include +#include + +#include "math_group.h" +#include "dh.h" + +#define DUMP_X(_x_) point = (_x_); b2n_print (point->x); + +int +main (void) +{ + int len; + char buf[100], buf2[100]; + char sec[100], sec2[100]; + struct group *group, *group2; + + group_init (); + group = group_get (4); + group2 = group_get (4); + + printf ("Testing DH (elliptic curve): \n"); + + printf ("dh_getlen\n"); + len = dh_getlen (group); + printf ("dh_create_exchange\n"); + dh_create_exchange (group, buf); + dh_create_exchange (group2, buf2); + + printf ("dh_create_shared\n"); + dh_create_shared (group, sec, buf2); + dh_create_shared (group2, sec2, buf); + + printf ("Result: "); + if (memcmp (sec, sec2, len)) + printf ("FAILED "); + else + printf ("OKAY "); + + group_free (group); + group_free (group2); + + printf ("\nTesting DH (MODP): \n"); + + group = group_get (1); + group2 = group_get (1); + + printf ("dh_getlen\n"); + len = dh_getlen (group); + printf ("dh_create_exchange\n"); + dh_create_exchange (group, buf); + dh_create_exchange (group2, buf2); + + printf ("dh_create_shared\n"); + dh_create_shared (group, sec, buf2); + dh_create_shared (group2, sec2, buf); + + printf ("Result: "); + if (memcmp (sec, sec2, len)) + printf ("FAILED "); + else + printf ("OKAY "); + + + printf ("\n"); + return 0; +} diff --git a/src/regress/sbin/isakmpd/ec2n/CVS/Entries b/src/regress/sbin/isakmpd/ec2n/CVS/Entries new file mode 100644 index 000000000..9da773c01 --- /dev/null +++ b/src/regress/sbin/isakmpd/ec2n/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Apr 8 17:12:49 2005// +/ec2ntest.c/1.1/Fri Apr 8 17:12:49 2005// +D diff --git a/src/regress/sbin/isakmpd/ec2n/CVS/Repository b/src/regress/sbin/isakmpd/ec2n/CVS/Repository new file mode 100644 index 000000000..9c3f2ba07 --- /dev/null +++ b/src/regress/sbin/isakmpd/ec2n/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd/ec2n diff --git a/src/regress/sbin/isakmpd/ec2n/CVS/Root b/src/regress/sbin/isakmpd/ec2n/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/ec2n/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/ec2n/Makefile b/src/regress/sbin/isakmpd/ec2n/Makefile new file mode 100644 index 000000000..564d6e1f8 --- /dev/null +++ b/src/regress/sbin/isakmpd/ec2n/Makefile @@ -0,0 +1,16 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/08 17:12:49 cloder Exp $ +# $EOM: Makefile,v 1.9 2000/10/13 13:04:17 ho Exp $ + +# Test EC2N: + +PROG= ec2ntest +SRCS= math_2n.c math_ec2n.c ec2ntest.c log.c sysdep.c util.c conf.c +TOPSRC= ${.CURDIR}/../../../../sbin/isakmpd +TOPOBJ!= cd ${TOPSRC}; printf "all:\n\t@pwd\n" |${MAKE} -f- +OS!= awk '/^OS=/ { print $$2 }' ${.CURDIR}/../../Makefile +.PATH: ${TOPSRC} ${TOPSRC}/sysdep/openbsd ${TOPOBJ} +CFLAGS+= -I${TOPSRC} -I${TOPSRC}/sysdep/openbsd -I${TOPOBJ} -Wall +NOMAN= +DEBUG= -g + +.include diff --git a/src/regress/sbin/isakmpd/ec2n/ec2ntest.c b/src/regress/sbin/isakmpd/ec2n/ec2ntest.c new file mode 100644 index 000000000..3b540bdbc --- /dev/null +++ b/src/regress/sbin/isakmpd/ec2n/ec2ntest.c @@ -0,0 +1,144 @@ +/* $OpenBSD: ec2ntest.c,v 1.1 2005/04/08 17:12:49 cloder Exp $ */ +/* $EOM: ec2ntest.c,v 1.3 1998/07/16 09:21:59 niklas Exp $ */ + +/* + * Copyright (c) 1998 Niels Provos. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This code was written under funding by Ericsson Radio Systems. + */ + +/* + * B2N is a module for doing arithmetic on the Field GF(2**n) which is + * isomorph to ring of polynomials GF(2)[x]/p(x) where p(x) is an + * irreduciable polynomial over GF(2)[x] with grade n. + */ + +#include +#include +#include + +#include "math_2n.h" +#include "math_ec2n.h" + +#define BUFSIZE 200 + +#define CMP_FAIL(n,x) b2n_snprint (buf, BUFSIZE, n); if (strcmp (buf, (x))) \ + printf ("FAILED: %s != %s ", buf, x); else printf ("OKAY "); + +int +main (void) +{ + b2n_t k; + ec2np_t p, q, r; + ec2ng_t g; + char buf[BUFSIZE]; + + b2n_init (k); + ec2np_init (p); + ec2np_init (q); + ec2np_init (r); + ec2ng_init (g); + + printf ("Testing: ec2ng_set* :"); + /* Init Group */ + ec2ng_set_p_str (g, "0x0800000000000000000000004000000000000001"); + CMP_FAIL (g->p, "0x0800000000000000000000004000000000000001"); + ec2ng_set_a_ui (g, 0); + CMP_FAIL (g->a, "0x00"); + ec2ng_set_b_str (g, "0x07338f"); + CMP_FAIL (g->b, "0x07338f"); + + printf ("\nTesting: ec2np_find_y: "); + /* Init Point */ + ec2np_set_x_ui (p, 0x7b); + ec2np_find_y (p, g); + + CMP_FAIL (p->y, "0x01c8"); + + printf ("\nTesting: ec2np_ison: "); + if (ec2np_ison (p, g)) + printf ("OKAY "); + else + printf ("FAILED "); + + ec2np_set_x_ui (q, 0x4); + ec2np_find_y (q, g); + if (ec2np_ison (q, g)) + printf ("OKAY "); + else + printf ("FAILED "); + + printf ("\nTesting: ec2np_add: "); + ec2np_set (r, p); + b2n_add (r->y, r->y, r->x); + ec2np_add (r, r, p, g); + if (!r->inf) + printf ("FAILED "); + else + printf ("OKAY "); + + ec2np_add (q, p, q, g); + CMP_FAIL (q->x, "0x06f32d7cc82cec8612a87a86e026350fb7595469"); + CMP_FAIL (q->y, "0x4ab92e21e51358ca8deab3fbbc9f7d8a7d1575"); + if (ec2np_ison (q, g)) + printf ("OKAY "); + else + printf ("FAILED "); + + ec2np_add (p, q, q, g); + CMP_FAIL (p->x, "0x0390001461385559a22ac9b6181c1e1889b38451"); + CMP_FAIL (p->y, "0x0188e61f38d747d7813c6a8b33d14dfb7418b04c"); + if (ec2np_ison (p, g)) + printf ("OKAY "); + else + printf ("FAILED "); + + printf ("\nTesting: ec2np_mul: "); + b2n_set_ui (k, 57); + ec2np_set (q, p); + ec2np_mul (q, q, k, g); + if (ec2np_ison (q, g)) + printf ("OKAY "); + else + printf ("FAILED "); + CMP_FAIL (q->x, "0x06bcf88caab88f99399350c46559da3b91afbf9d"); + + b2n_set_str (k, "0x0800000000000000000057db5698537193aef943"); + ec2np_set (q, p); + ec2np_mul (q, q, k, g); + if (ec2np_ison (q, g)) + printf ("OKAY "); + else + printf ("FAILED "); + CMP_FAIL (q->x, "0x0390001461385559a22ac9b6181c1e1889b38451"); + + printf ("\n"); + ec2np_clear (p); + ec2np_clear (q); + ec2np_clear (r); + ec2ng_clear (g); + b2n_clear (k); + return 0; +} diff --git a/src/regress/sbin/isakmpd/exchange/CVS/Entries b/src/regress/sbin/isakmpd/exchange/CVS/Entries new file mode 100644 index 000000000..4b214ed66 --- /dev/null +++ b/src/regress/sbin/isakmpd/exchange/CVS/Entries @@ -0,0 +1,10 @@ +/Makefile/1.1/Fri Apr 8 17:12:49 2005// +/README/1.1/Fri Apr 8 17:13:51 2005// +/def-i.1/1.1/Fri Apr 8 17:12:49 2005// +/def-r.1/1.1/Fri Apr 8 17:12:49 2005// +/mm-1-setup.sh/1.1/Fri Apr 8 17:12:49 2005// +/mm-i-1.t/1.1/Fri Apr 8 17:12:49 2005// +/mm-r-1.t/1.1/Fri Apr 8 17:12:49 2005// +/run.pl/1.1/Fri Apr 8 17:12:49 2005// +/run.sh/1.1/Fri Apr 8 17:12:49 2005// +D diff --git a/src/regress/sbin/isakmpd/exchange/CVS/Repository b/src/regress/sbin/isakmpd/exchange/CVS/Repository new file mode 100644 index 000000000..f61c07111 --- /dev/null +++ b/src/regress/sbin/isakmpd/exchange/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd/exchange diff --git a/src/regress/sbin/isakmpd/exchange/CVS/Root b/src/regress/sbin/isakmpd/exchange/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/exchange/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/exchange/Makefile b/src/regress/sbin/isakmpd/exchange/Makefile new file mode 100644 index 000000000..134118970 --- /dev/null +++ b/src/regress/sbin/isakmpd/exchange/Makefile @@ -0,0 +1,52 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/08 17:12:49 cloder Exp $ +# $EOM: Makefile,v 1.8 2000/03/28 21:22:07 ho Exp $ + +# +# Copyright (c) 1998, 1999 Niklas Hallqvist. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# +# This code was written under funding by Ericsson Radio Systems. +# + +TOPSRC= ${.CURDIR}/../../../../sbin/isakmpd +TOPOBJ!= cd ${TOPSRC}; printf "all:\n\t@pwd\n" |${MAKE} -f- +.PATH: ${TOPSRC} ${TOPSRC}/sysdep/openbsd ${TOPOBJ} +CFLAGS+= -I${TOPSRC} -I${TOPSRC}/sysdep/openbsd -I${TOPOBJ} -Wall +RUN= ${SUDO} env ISAKMPD=${TOPOBJ}/isakmpd sh ${.CURDIR}/run.sh + +TESTS= def + +REGRESS_TARGETS=${TESTS:S/^/test-/} + +.for TEST in ${TESTS} +test-${TEST}: + @echo Testing "${TEST}" test as initiator + @${RUN} ${RUNFLAGS} ${.CURDIR}/${TEST} +# @echo Testing "${TEST}" test as responder +# @${RUN} -r ${RUNFLAGS} ${.CURDIR}/${TEST} +.endfor + +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/sbin/isakmpd/exchange/README b/src/regress/sbin/isakmpd/exchange/README new file mode 100644 index 000000000..5645c8d36 --- /dev/null +++ b/src/regress/sbin/isakmpd/exchange/README @@ -0,0 +1,78 @@ +$OpenBSD: README,v 1.1 2005/04/08 17:13:51 cloder Exp $ +$EOM: README,v 1.1 1999/08/05 15:07:37 niklas Exp $ + +XXX The old run.sh test-framework is obsoleted, it will go away anyday. + +We wanted to do a regression test environment which was flexible +enough to be able to easily reproduce anomalies in isakmpd. It +turns out this is not easy to do, as many problems are timing related. + +Currently ticks are milliseconds. An idea is to try to measure +isakmpd's response time somehow, and use that time as some kind of +basis for a tick. + +Our test environment should be able to parse scripts like this: + +#Tick Action Format Data +0 send H* ffffffff +0 recv H* 00000000 +1000 send H* deadbeef + +Ticks are not absolute but relative to the last event. the format is +Perl's pack/unpack template formats. Data is in the given format with +one exception, spaces are ignored, newlines are end-of-data unless +preceded by a backslash. + +Comments are lines with a numbersign as the first non-whitespace +character. Empty lines are ignored, unless inside a multi-line data +in which it will be part of the data buffer. + +Here is a real world example: + +# $RCSId$ + +# Initiate a MM +0 send H* ad9de636 f12460bb 00000000 00000000 01100200 00000000 \ + 00000050 00000034 00000001 00000001 00000028 01010001 \ + 00000020 00010000 80010005 80020002 80030001 80040002 \ + 800b0001 800c0258 + +400 recv H* ad9de636 f12460bb 2aa5a583 ab2f3980 01100200 00000000 \ + 00000050 00000034 00000001 00000001 00000028 01010001 \ + 00000020 00010000 80010005 80020002 80030001 80040002 \ + 800b0001 800c0258 + +110 send H* ad9de636 f12460bb 2aa5a583 ab2f3980 04100200 00000000 \ + 000000b4 0a000084 60a8c102 ce97687e 45e3fdd9 6fd586b4 \ + f3a91167 559dd214 a78d678e 2772b7b2 83267487 15ec02a9 \ + 419b77ee 0f2add09 e9e09b7d ad40c883 ef2039c9 c59b67ff \ + 56e4d6f8 c99d47cb d4a565bc 8d192f76 f695d243 09121df5 \ + 524884a7 3f702630 7f4fad44 e222c4b1 242fd1cd ca3a161d \ + bcdf6706 025cc90d c4b00ef9 bee5ada2 00000014 ff7c493c \ + 88e68a10 4ab19a6a 7e75c771 + +800 recv H* ad9de636 f12460bb 2aa5a583 ab2f3980 04100200 00000000 \ + 000000b4 0a000084 681b9859 7680a3ff 894bb982 ef924bc8 \ + 4d9c7ebf 3a92db7b bcfe68f7 6e1de327 a975293f f5c550b1 \ + 9c69d6ed 64f201ec 514f4f44 0e6242b9 df4917e6 4418212d \ + 66a66eb1 f3b70c2d 4e14e382 d42ebe04 1027957c 5dadcaf1 \ + a531c085 6cee739f 433c185c 12a8a946 88622f66 f211783c \ + 277e134d 22d8e809 f1d38bab 6ca2a35f 00000014 6a917048 \ + a406fd47 b3d16554 cd6f0967 + +140 send H* ad9de636 f12460bb 2aa5a583 ab2f3980 05100201 00000000 \ + 0000005c d6571dec a8b55acb 1069210c 7d195417 1c2738e9 \ + 42f1d9a3 8561d0ec 0697cd06 ac1beb19 1dc8acf5 904ec1d5 \ + 5b2b154e 38b0de90 4f2e1f71 083047ca 10cab3d5 + +900 recv H* ad9de636 f12460bb 2aa5a583 ab2f3980 05100201 00000000 \ + 00000044 b46b1db4 9ecfbfa6 a5e9baa2 8eb3cb68 be3a857c \ + b039fa72 d595e69f 03669dbd 350781e2 56c36dce + +run with: + +perl run.pl filename + +You need to have an isakmpd listening on the address which is given in +run.pl. Of course you need to run it in deterministic mode (-r). +There will be a better explanation soon. diff --git a/src/regress/sbin/isakmpd/exchange/def-i.1 b/src/regress/sbin/isakmpd/exchange/def-i.1 new file mode 100644 index 0000000000000000000000000000000000000000..1712249353470b7d24957b071546c28b6f155f8c GIT binary patch literal 72 ycmbRGk0oTK;I8KkP{1g_1Y>#t89G4B2*nDFj9|6|kY;EAvKyFym>Gy!7#IOo-Uk~1 literal 0 HcmV?d00001 diff --git a/src/regress/sbin/isakmpd/exchange/def-r.1 b/src/regress/sbin/isakmpd/exchange/def-r.1 new file mode 100644 index 0000000000000000000000000000000000000000..56f5e627c8e919e14adb88f28469f09840e01ec5 GIT binary patch literal 72 zcmbRGk0oTK;I8MQIUlmbcFS#G6kuY20uLaq1H_C_tiZ?!W=jBRh6W(JfeDD2ftZDX F5dbJ)3Y7o= literal 0 HcmV?d00001 diff --git a/src/regress/sbin/isakmpd/exchange/mm-1-setup.sh b/src/regress/sbin/isakmpd/exchange/mm-1-setup.sh new file mode 100644 index 000000000..7d1dc4287 --- /dev/null +++ b/src/regress/sbin/isakmpd/exchange/mm-1-setup.sh @@ -0,0 +1,12 @@ +# $OpenBSD: mm-1-setup.sh,v 1.1 2005/04/08 17:12:49 cloder Exp $ +# $EOM: mm-1-setup.sh,v 1.2 1999/10/05 12:54:27 niklas Exp $ + +# XXX Need to start isakmpd here in a nice way. + +echo "C set [Phase 1]:127.0.0.1=localhost 1">/tmp/fifo +echo "C set [localhost]:phase=1 1">/tmp/fifo +echo "C set [localhost]:transport=udp 1">/tmp/fifo +echo "C set [localhost]:address=127.0.0.1 1">/tmp/fifo +echo "C set [localhost]:port=1501 1">/tmp/fifo +echo "C set [localhost]:configuration=default-main-mode 1">/tmp/fifo +echo "C set [localhost]:authentication=mekmitasdigoat 1">/tmp/fifo diff --git a/src/regress/sbin/isakmpd/exchange/mm-i-1.t b/src/regress/sbin/isakmpd/exchange/mm-i-1.t new file mode 100644 index 000000000..84470a75e --- /dev/null +++ b/src/regress/sbin/isakmpd/exchange/mm-i-1.t @@ -0,0 +1,43 @@ +# $OpenBSD: mm-i-1.t,v 1.1 2005/04/08 17:12:49 cloder Exp $ +# $EOM: mm-i-1.t,v 1.1 1999/08/05 15:07:38 niklas Exp $ + +# The seed to isakmpd was 19990805 + +# Initiate a MM +0 send H* ad9de636 f12460bb 00000000 00000000 01100200 00000000 \ + 00000050 00000034 00000001 00000001 00000028 01010001 \ + 00000020 00010000 80010005 80020002 80030001 80040002 \ + 800b0001 800c0258 + +400 recv H* ad9de636 f12460bb 2aa5a583 ab2f3980 01100200 00000000 \ + 00000050 00000034 00000001 00000001 00000028 01010001 \ + 00000020 00010000 80010005 80020002 80030001 80040002 \ + 800b0001 800c0258 + +110 send H* ad9de636 f12460bb 2aa5a583 ab2f3980 04100200 00000000 \ + 000000b4 0a000084 60a8c102 ce97687e 45e3fdd9 6fd586b4 \ + f3a91167 559dd214 a78d678e 2772b7b2 83267487 15ec02a9 \ + 419b77ee 0f2add09 e9e09b7d ad40c883 ef2039c9 c59b67ff \ + 56e4d6f8 c99d47cb d4a565bc 8d192f76 f695d243 09121df5 \ + 524884a7 3f702630 7f4fad44 e222c4b1 242fd1cd ca3a161d \ + bcdf6706 025cc90d c4b00ef9 bee5ada2 00000014 ff7c493c \ + 88e68a10 4ab19a6a 7e75c771 + +800 recv H* ad9de636 f12460bb 2aa5a583 ab2f3980 04100200 00000000 \ + 000000b4 0a000084 681b9859 7680a3ff 894bb982 ef924bc8 \ + 4d9c7ebf 3a92db7b bcfe68f7 6e1de327 a975293f f5c550b1 \ + 9c69d6ed 64f201ec 514f4f44 0e6242b9 df4917e6 4418212d \ + 66a66eb1 f3b70c2d 4e14e382 d42ebe04 1027957c 5dadcaf1 \ + a531c085 6cee739f 433c185c 12a8a946 88622f66 f211783c \ + 277e134d 22d8e809 f1d38bab 6ca2a35f 00000014 6a917048 \ + a406fd47 b3d16554 cd6f0967 + +140 send H* ad9de636 f12460bb 2aa5a583 ab2f3980 05100201 00000000 \ + 0000005c d6571dec a8b55acb 1069210c 7d195417 1c2738e9 \ + 42f1d9a3 8561d0ec 0697cd06 ac1beb19 1dc8acf5 904ec1d5 \ + 5b2b154e 38b0de90 4f2e1f71 083047ca 10cab3d5 + +900 recv H* ad9de636 f12460bb 2aa5a583 ab2f3980 05100201 00000000 \ + 00000044 b46b1db4 9ecfbfa6 a5e9baa2 8eb3cb68 be3a857c \ + b039fa72 d595e69f 03669dbd 350781e2 56c36dce + diff --git a/src/regress/sbin/isakmpd/exchange/mm-r-1.t b/src/regress/sbin/isakmpd/exchange/mm-r-1.t new file mode 100644 index 000000000..3c3a4e314 --- /dev/null +++ b/src/regress/sbin/isakmpd/exchange/mm-r-1.t @@ -0,0 +1,42 @@ +# $OpenBSD: mm-r-1.t,v 1.1 2005/04/08 17:12:49 cloder Exp $ +# $EOM: mm-r-1.t,v 1.1 1999/08/05 15:07:38 niklas Exp $ + +# The seed to isakmpd was 19990805 + +# Respond to this MM +999999 recv H* ad9de636 f12460bb 00000000 00000000 01100200 00000000 \ + 00000050 00000034 00000001 00000001 00000028 01010001 \ + 00000020 00010000 80010005 80020002 80030001 80040002 \ + 800b0001 800c0258 + +40 send H* ad9de636 f12460bb 2aa5a583 ab2f3980 01100200 00000000 \ + 00000050 00000034 00000001 00000001 00000028 01010001 \ + 00000020 00010000 80010005 80020002 80030001 80040002 \ + 800b0001 800c0258 + +1100 recv H* ad9de636 f12460bb 2aa5a583 ab2f3980 04100200 00000000 \ + 000000b4 0a000084 60a8c102 ce97687e 45e3fdd9 6fd586b4 \ + f3a91167 559dd214 a78d678e 2772b7b2 83267487 15ec02a9 \ + 419b77ee 0f2add09 e9e09b7d ad40c883 ef2039c9 c59b67ff \ + 56e4d6f8 c99d47cb d4a565bc 8d192f76 f695d243 09121df5 \ + 524884a7 3f702630 7f4fad44 e222c4b1 242fd1cd ca3a161d \ + bcdf6706 025cc90d c4b00ef9 bee5ada2 00000014 ff7c493c \ + 88e68a10 4ab19a6a 7e75c771 + +80 send H* ad9de636 f12460bb 2aa5a583 ab2f3980 04100200 00000000 \ + 000000b4 0a000084 681b9859 7680a3ff 894bb982 ef924bc8 \ + 4d9c7ebf 3a92db7b bcfe68f7 6e1de327 a975293f f5c550b1 \ + 9c69d6ed 64f201ec 514f4f44 0e6242b9 df4917e6 4418212d \ + 66a66eb1 f3b70c2d 4e14e382 d42ebe04 1027957c 5dadcaf1 \ + a531c085 6cee739f 433c185c 12a8a946 88622f66 f211783c \ + 277e134d 22d8e809 f1d38bab 6ca2a35f 00000014 6a917048 \ + a406fd47 b3d16554 cd6f0967 + +1400 recv H* ad9de636 f12460bb 2aa5a583 ab2f3980 05100201 00000000 \ + 0000005c d6571dec a8b55acb 1069210c 7d195417 1c2738e9 \ + 42f1d9a3 8561d0ec 0697cd06 ac1beb19 1dc8acf5 904ec1d5 \ + 5b2b154e 38b0de90 4f2e1f71 083047ca 10cab3d5 + +90 send H* ad9de636 f12460bb 2aa5a583 ab2f3980 05100201 00000000 \ + 00000044 b46b1db4 9ecfbfa6 a5e9baa2 8eb3cb68 be3a857c \ + b039fa72 d595e69f 03669dbd 350781e2 56c36dce diff --git a/src/regress/sbin/isakmpd/exchange/run.pl b/src/regress/sbin/isakmpd/exchange/run.pl new file mode 100644 index 000000000..3bd32e166 --- /dev/null +++ b/src/regress/sbin/isakmpd/exchange/run.pl @@ -0,0 +1,105 @@ +#!/usr/bin/perl +# $OpenBSD: run.pl,v 1.1 2005/04/08 17:12:49 cloder Exp $ +# $EOM: run.pl,v 1.2 1999/08/05 22:42:42 niklas Exp $ + +# +# Copyright (c) 2004 Niklas Hallqvist. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +use strict; +require 5.002; +require 'sys/syscall.ph'; +use Socket; +use Sys::Hostname; + +my ($rfd, $tickfac, $myaddr, $myport, $hisaddr, $hisport, $proto, $bindaddr, + $conaddr, $sec, $tick, $action, $template, $data, $next, + $nfd, $pkt, $verbose); + +$| = 1; + +$verbose = 1; +$tickfac = 0.001; +$myaddr = gethostbyname ('127.0.0.1'); +$myport = 1501; + $hisaddr = inet_aton ('127.0.0.1'); +$hisport = 1500; + +$proto = getprotobyname ('udp'); +$bindaddr = sockaddr_in ($myport, $myaddr); +socket (SOCKET, PF_INET, SOCK_DGRAM, $proto) || die "socket: $!"; +bind (SOCKET, $bindaddr); +vec ($rfd, fileno SOCKET, 1) = 1; + +$conaddr = sockaddr_in ($hisport, $hisaddr); + +sub getsec +{ + my ($tv) = pack ("ll", 0, 0); + my ($tz) = pack ("ii", 0, 0); + syscall (&SYS_gettimeofday, $tv, $tz) && return undef; + my ($sec, $usec) = unpack ("ll", $tv); + $sec % 86400 + $usec / 1000000; +} + +$sec = &getsec; +while (<>) { + next if /^\s*#/o || /^\s*$/o; + chop; + ($tick, $action, $template, $data) = split ' ', $_, 4; + while ($data =~ /\\$/o) { + chop $data; + $_ = <>; + next if /^\s*#/o; + chop; + $data .= $_; + } + $data =~ s/\s//go; + $data = pack $template, $data; + $next = $sec + $tick * $tickfac; + if ($action eq "send") { + # Wait for the moment to come. + print STDERR "waiting ", $next - $sec, " secs\n"; + select undef, undef, undef, $next - $sec + while ($sec = &getsec) < $next; +# print $data; + send SOCKET, $data, 0, $conaddr; + print STDERR "sent ", unpack ("H*", $data), "\n" if $verbose; + } elsif ($action eq "recv") { + $sec = &getsec; + printf (STDERR "waiting for data or the %.3f sec timeout\n", + $next - $sec); + $nfd = select $rfd, undef, undef, $next - $sec; + if ($nfd) { + printf STDERR "got back after %.3f secs\n", &getsec - $sec + if $verbose; +# sysread (STDIN, $pkt, 65536) if $nfd; + sysread (SOCKET, $pkt, 65536) if $nfd; + print STDERR "read ", unpack ("H*", $pkt), "\n" if $verbose; + print STDERR "cmp ", unpack ("H*", $data), "\n" if $verbose; + } else { + print STDERR "timed out\n" if $verbose; + } + die "mismatch\n" if $pkt ne $data; + } +} diff --git a/src/regress/sbin/isakmpd/exchange/run.sh b/src/regress/sbin/isakmpd/exchange/run.sh new file mode 100644 index 000000000..e73d2ee61 --- /dev/null +++ b/src/regress/sbin/isakmpd/exchange/run.sh @@ -0,0 +1,139 @@ +#!/bin/sh +# $OpenBSD: run.sh,v 1.1 2005/04/08 17:12:49 cloder Exp $ +# $EOM: run.sh,v 1.6 1999/08/05 15:02:33 niklas Exp $ + +# +# Copyright (c) 1998, 1999 Niklas Hallqvist. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# +# This code was written under funding by Ericsson Radio Systems. +# + +# Defaults +SRCPORT=1500 +DSTPORT=1501 +FIFO=test.fifo +TIMEOUT=2 + +NC=${NC:-/usr/bin/nc} +ISAKMPD=${ISAKMPD:-/sbin/isakmpd} + +progname=`basename $0` +indent=`echo -n $progname |sed 's/./ /g'` +seed=980801 +initiator=yes +retval=0 +verbose=no +clean=yes + +usage () +{ + echo "usage: $progname [-nrv] [-d dst-port] [-f fifo] [-s src-port]" >&2 + echo " $indent [-t timeout] testsuite" >&2 + exit 2 +} + +set -- `getopt d:f:nrs:t:v $*` +if [ $? != 0 ]; then + usage +fi +for i; do + case "$i" in + -d) + DSTPORT=$2; shift; shift;; + -f) + FIFO=$2; shift; shift;; + -n) + clean=no; shift;; + -r) + initiator=no; shift;; + -s) + SRCPORT=$2; shift; shift;; + -t) + TIMEOUT=$2; shift; shift;; + -v) + verbose=yes; shift;; + --) + shift; break;; + esac +done + +if [ $# -eq 1 ]; then + suite=$1 +else + usage +fi + +[ ${verbose} = yes ] && set -x + +# Start isakmpd and wait for the fifo to get created +echo Removing ${FIFO} +rm -f ${FIFO} +${ISAKMPD} -d -p${SRCPORT} -f${FIFO} -r${seed} & +isakmpd_pid=$! +echo isakmpd pid is $isakmpd_pid +trap 'echo Got signal; kill $isakmpd_pid; echo Removing ${FIFO}; rm -f ${FIFO}; [ $clean = yes ] && rm -f packet' 1 2 15 +while [ ! -p ${FIFO} ]; do + sleep 1 +done + +# Start the exchange +if [ $initiator = yes ]; then + ${NC} -nul -w${TIMEOUT} 127.0.0.1 ${DSTPORT} packet & +# ${NC} -nu -w${TIMEOUT} -p${SRCPORT} 127.0.0.1 ${DSTPORT} packet + sleep 1 + echo "c udp 127.0.0.1:${DSTPORT} 2 1" >${FIFO} + in_packets=`ls ${suite}-i.* 2>/dev/null` + out_packets=`ls ${suite}-r.* 2>/dev/null` +else + in_packets=`ls ${suite}-r.* 2>/dev/null` + out_packets=`ls ${suite}-i.* 2>/dev/null` +fi +his_turn=$initiator +while [ \( $his_turn = yes -a X"$in_packets" != X \) \ + -o \( $his_turn = no -a X"$out_packets" != X \) ]; do + if [ $his_turn = no ]; then + set $out_packets + packet=$1 + shift + out_packets=$* + cat $packet |${NC} -nu -w${TIMEOUT} -p${SRCPORT} 127.0.0.1 ${DSTPORT} \ + >packet + my_turn=no + else + set $in_packets + packet=$1 + shift + in_packets=$* + if ! cmp $packet packet 2>/dev/null; then + retval=1 + break + fi + my_turn=yes + fi +done +kill $isakmpd_pid +rm -f ${FIFO} +[ $clean = yes ] && rm -f packet +exit $retval diff --git a/src/regress/sbin/isakmpd/group/CVS/Entries b/src/regress/sbin/isakmpd/group/CVS/Entries new file mode 100644 index 000000000..c6cacbfe6 --- /dev/null +++ b/src/regress/sbin/isakmpd/group/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Apr 8 17:12:49 2005// +/grouptest.c/1.1/Fri Apr 8 17:12:49 2005// +D diff --git a/src/regress/sbin/isakmpd/group/CVS/Repository b/src/regress/sbin/isakmpd/group/CVS/Repository new file mode 100644 index 000000000..5a9a41163 --- /dev/null +++ b/src/regress/sbin/isakmpd/group/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd/group diff --git a/src/regress/sbin/isakmpd/group/CVS/Root b/src/regress/sbin/isakmpd/group/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/group/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/group/Makefile b/src/regress/sbin/isakmpd/group/Makefile new file mode 100644 index 000000000..3c8fe9d89 --- /dev/null +++ b/src/regress/sbin/isakmpd/group/Makefile @@ -0,0 +1,29 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/08 17:12:49 cloder Exp $ +# $EOM: Makefile,v 1.12 2000/04/07 20:19:43 niklas Exp $ + +# Test Group: + +PROG= grouptest +SRCS= math_2n.c math_ec2n.c math_group.c grouptest.c log.c util.c \ + sysdep.c gmp_util.c conf.c +TOPSRC= ${.CURDIR}/../../../../sbin/isakmpd +TOPOBJ!= cd ${TOPSRC}; printf "all:\n\t@pwd\n" |${MAKE} -f- +OS!= awk '/^OS=/ { print $$2 }' ${.CURDIR}/../../Makefile +FEATURES!= awk '/^FEATURES=/ { print $$0 }' ${.CURDIR}/../../Makefile | sed 's/FEATURES=.//' +.PATH: ${TOPSRC} ${TOPSRC}/sysdep/openbsd ${TOPOBJ} +CFLAGS+= -I${TOPSRC} -I${TOPSRC}/sysdep/openbsd -I${TOPOBJ} -Wall \ + -DUSE_EC +NOMAN= +LDADD+= -lcrypto +DPADD+= ${LIBCRYPTO} +DEBUG= -g + +.if ${FEATURES:Mgmp} == "gmp" +CFLAGS+= -DMP_FLAVOUR=MP_FLAVOUR_GMP +LDADD+= -lgmp +DPADD+= ${LIBGMP} +.else +CFLAGS+= -DMP_FLAVOUR=MP_FLAVOUR_OPENSSL +.endif + +.include diff --git a/src/regress/sbin/isakmpd/group/grouptest.c b/src/regress/sbin/isakmpd/group/grouptest.c new file mode 100644 index 000000000..493f30aac --- /dev/null +++ b/src/regress/sbin/isakmpd/group/grouptest.c @@ -0,0 +1,121 @@ +/* $OpenBSD: grouptest.c,v 1.1 2005/04/08 17:12:49 cloder Exp $ */ +/* $EOM: grouptest.c,v 1.2 1998/07/18 21:15:55 provos Exp $ */ + +/* + * Copyright (c) 1998 Niels Provos. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This code was written under funding by Ericsson Radio Systems. + */ + +/* + * This module exercises the operations supplied by the group abstraction. + */ + +#include +#include +#include + +#include "math_2n.h" +#include "math_ec2n.h" +#include "math_group.h" + +#define DUMP_X(_x_) point = (_x_); b2n_print (point->x); + +int +main (void) +{ + int i; + char buf[100]; + char buf2[100]; + struct group *group, *group2; + ec2np_ptr point; + + group_init (); + group = group_get (3); + group2 = group_get (3); + + printf ("Testing: setraw, getraw: "); + for (i = 0; i < 20; i++) + buf[i] = i; + + group->setraw (group, group->c, buf, 20); + if (group->getlen (group) != 20) + printf ("FAILED "); + else + printf ("OKAY "); + + group->getraw (group, group->c, buf2); + for (i = 0; i < 20; i++) + if (buf2[i] != i) + break; + if (i < 20) + printf ("FAILED "); + else + printf ("OKAY "); + + printf ("\nTesting: setrandom: "); + group->setrandom (group, group->c); + DUMP_X (group->c); + group2->setrandom (group2, group2->c); + DUMP_X (group2->c); + + printf ("\nTesting: operation:\n"); + group->operation (group, group->a, group->gen, group->c); + point = group->a; + printf ("\tX (%d): ", point->x->chunks); b2n_print (point->x); + printf ("\tY (%d): ", point->y->chunks); b2n_print (point->y); + + group2->operation (group2, group2->a, group2->gen, group2->c); + point = group2->a; + printf ("\tX (%d): ", point->x->chunks); b2n_print (point->x); + printf ("\tY (%d): ", point->y->chunks); b2n_print (point->y); + + printf ("Exchange Value 1: "); b2n_print (group->d); + printf ("Exchange Value 2: "); b2n_print (group2->d); + + printf ("Testing: operation ...:\n"); + group->getraw (group, group->a, buf); + group2->setraw (group2, group2->b, buf, 20); + + group2->getraw (group2, group2->a, buf); + group->setraw (group, group->b, buf, 20); + + group2->operation (group2, group2->a, group2->b, group2->c); + printf ("Exchange Value 21: "); DUMP_X (group2->a); + + group->operation (group, group->a, group->b, group->c); + printf ("Exchange Value 12: "); DUMP_X (group->a); + + group->getraw (group, group->a, buf); + group2->getraw (group2, group2->a, buf2); + printf ("Testing: operation ...: "); + if (memcmp(buf, buf2, 20)) + printf ("FAILED "); + else + printf ("OKAY "); + + printf ("\n"); + return 0; +} diff --git a/src/regress/sbin/isakmpd/hmac/CVS/Entries b/src/regress/sbin/isakmpd/hmac/CVS/Entries new file mode 100644 index 000000000..0e37e5eee --- /dev/null +++ b/src/regress/sbin/isakmpd/hmac/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Apr 8 17:12:49 2005// +/hmactest.c/1.1/Fri Apr 8 17:12:49 2005// +D diff --git a/src/regress/sbin/isakmpd/hmac/CVS/Repository b/src/regress/sbin/isakmpd/hmac/CVS/Repository new file mode 100644 index 000000000..98b663133 --- /dev/null +++ b/src/regress/sbin/isakmpd/hmac/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd/hmac diff --git a/src/regress/sbin/isakmpd/hmac/CVS/Root b/src/regress/sbin/isakmpd/hmac/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/hmac/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/hmac/Makefile b/src/regress/sbin/isakmpd/hmac/Makefile new file mode 100644 index 000000000..a284fab22 --- /dev/null +++ b/src/regress/sbin/isakmpd/hmac/Makefile @@ -0,0 +1,16 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/08 17:12:49 cloder Exp $ +# $EOM: Makefile,v 1.3 1999/02/25 15:14:24 niklas Exp $ + +# Test HMAC: + +PROG= hmactest +SRCS= hash.c hmactest.c +TOPSRC= ${.CURDIR}/../../../../sbin/isakmpd +TOPOBJ!= cd ${TOPSRC}; printf "all:\n\t@pwd\n" |${MAKE} -f- +OS!= awk '/^OS=/ { print $$2 }' ${.CURDIR}/../../Makefile +.PATH: ${TOPSRC} ${TOPSRC}/sysdep/openbsd ${TOPOBJ} +CFLAGS+= -I${TOPSRC} -I${TOPSRC}/sysdep/openbsd -I${TOPOBJ} -Wall +NOMAN= +DEBUG= -g + +.include diff --git a/src/regress/sbin/isakmpd/hmac/hmactest.c b/src/regress/sbin/isakmpd/hmac/hmactest.c new file mode 100644 index 000000000..1213039e9 --- /dev/null +++ b/src/regress/sbin/isakmpd/hmac/hmactest.c @@ -0,0 +1,93 @@ +/* $OpenBSD: hmactest.c,v 1.1 2005/04/08 17:12:49 cloder Exp $ */ +/* $EOM: hmactest.c,v 1.3 1998/08/09 19:16:24 niklas Exp $ */ + +/* + * Copyright (c) 1998 Niels Provos. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This code was written under funding by Ericsson Radio Systems. + */ + +#include +#include +#include +#include + +#include "hash.h" + +int test_hmac(char *, struct hash *, char *, int, char *, int, char *); + +#define nibble2c(x) ((x) >= 10 ? ('a'-10+(x)) : ('0' + (x))) + +int +main (void) +{ + char key[100]; + + memset(key, 11, 20); + test_hmac ("HMAC-MD5 Test Case 1", hash_get (HASH_MD5), + key, 16, "Hi There", 8, "9294727a3638bb1c13f48ef8158bfc9d"); + test_hmac ("HMAC-MD5 Test Case 2", hash_get (HASH_MD5), + "Jefe", 4, + "what do ya want for nothing?", 28, + "750c783e6ab0b503eaa86e310a5db738"); + test_hmac ("HMAC-SHA1 Test Case 1", hash_get (HASH_SHA1), + key, 20, "Hi There", 8, + "b617318655057264e28bc0b6fb378c8ef146be00"); + test_hmac ("HMAC-SHA1 Test Case 2", hash_get (HASH_SHA1), + "Jefe", 4, "what do ya want for nothing?", 28, + "effcdf6ae5eb2fa2d27416d5f184df9c259a7c79"); + + return 0; +} + +int +test_hmac(char *test, struct hash *hash, char *key, int klen, + char *data, int dlen, char *cmp) +{ + char output[2*HASH_MAX+1]; + int i; + + printf("Testing %s: ", test); + + hash->HMACInit(hash, key, klen); + hash->Update(hash->ctx, data, dlen); + hash->HMACFinal(hash->digest, hash); + + for (i=0; ihashsize; i++) + { + output[2*i] = nibble2c((hash->digest[i] >> 4) & 0xf); + output[2*i+1] = nibble2c(hash->digest[i] & 0xf); + } + output[2*i] = 0; + + if (!strcmp(output, cmp)) + { + printf("OKAY\n"); + return 1; + } + + printf("%s <-> %s\n", output, cmp); + return 0; +} diff --git a/src/regress/sbin/isakmpd/msg/CVS/Entries b/src/regress/sbin/isakmpd/msg/CVS/Entries new file mode 100644 index 000000000..e118bf352 --- /dev/null +++ b/src/regress/sbin/isakmpd/msg/CVS/Entries @@ -0,0 +1,2 @@ +/check.sh/1.1/Fri Apr 8 17:12:50 2005// +D diff --git a/src/regress/sbin/isakmpd/msg/CVS/Repository b/src/regress/sbin/isakmpd/msg/CVS/Repository new file mode 100644 index 000000000..5c5ef5254 --- /dev/null +++ b/src/regress/sbin/isakmpd/msg/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd/msg diff --git a/src/regress/sbin/isakmpd/msg/CVS/Root b/src/regress/sbin/isakmpd/msg/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/msg/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/msg/check.sh b/src/regress/sbin/isakmpd/msg/check.sh new file mode 100644 index 000000000..8073e5024 --- /dev/null +++ b/src/regress/sbin/isakmpd/msg/check.sh @@ -0,0 +1,88 @@ +#!/bin/sh +# $OpenBSD: check.sh,v 1.1 2005/04/08 17:12:50 cloder Exp $ +# $EOM: check.sh,v 1.4 1998/07/17 21:33:13 niklas Exp $ + +# +# Copyright (c) 1998 Niklas Hallqvist. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# +# This code was written under funding by Ericsson. +# + +PROGNAME=$0 +NC=/usr/bin/nc +HOST=localhost +ISAKMP_PORT=500 + +set -- `getopt p: $*` +if [ $? != 0 ]; then + echo 'usage: $PROGNAME [-p port] host' >&2 + exit 2 +fi +for i; do + case "$i" in + -p) + ISAKMP_PORT=$2; shift; shift;; + --) + shift; break;; + esac +done + +if [ $# -gt 0 ]; then + HOST=$1 +fi + +send () { + ${NC} -u -w 1 ${HOST} ${ISAKMP_PORT} +} + +# Short message +printf "SHORT!" |send + +# (Most probably) invalid cookie +printf "INVALID COOKIES!\0\x10\0\0\0\0\0\0\0\0\0\x1c" |send + +# Invalid next payload type +printf "01234567\0\0\0\0\0\0\0\0!\x10\0\0\0\0\0\0\0\0\0\x1c" |send + +# Invalid major version +printf "01234567\0\0\0\0\0\0\0\0\0\x20\0\0\0\0\0\0\0\0\0\x1c" |send + +# Invalid minor version +printf "01234567\0\0\0\0\0\0\0\0\0\x11\0\0\0\0\0\0\0\0\0\x1c" |send + +# Invalid exchange type +printf "01234567\0\0\0\0\0\0\0\0\0\x10!\0\0\0\0\0\0\0\0\x1c" |send + +# Invalid flags +printf "01234567\0\0\0\0\0\0\0\0\0\x10\2\x80\0\0\0\0\0\0\0\x1c" |send + +# Invalid message ID +printf "01234567\0\0\0\0\0\0\0\0\0\x10\2\0BAD!\0\0\0\x1c" |send + +# Short length +printf "01234567\0\0\0\0\0\0\0\0\0\x10\2\0\0\0\0\0\0\0\0\x1b" |send + +# Long length +printf "01234567\0\0\0\0\0\0\0\0\0\x10\2\0\0\0\0\0\0\0\0\x1d" |send diff --git a/src/regress/sbin/isakmpd/prf/CVS/Entries b/src/regress/sbin/isakmpd/prf/CVS/Entries new file mode 100644 index 000000000..d08db1794 --- /dev/null +++ b/src/regress/sbin/isakmpd/prf/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Apr 8 17:12:50 2005// +/prftest.c/1.1/Fri Apr 8 17:12:50 2005// +D diff --git a/src/regress/sbin/isakmpd/prf/CVS/Repository b/src/regress/sbin/isakmpd/prf/CVS/Repository new file mode 100644 index 000000000..e0e0fbdde --- /dev/null +++ b/src/regress/sbin/isakmpd/prf/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd/prf diff --git a/src/regress/sbin/isakmpd/prf/CVS/Root b/src/regress/sbin/isakmpd/prf/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/prf/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/prf/Makefile b/src/regress/sbin/isakmpd/prf/Makefile new file mode 100644 index 000000000..4e078add1 --- /dev/null +++ b/src/regress/sbin/isakmpd/prf/Makefile @@ -0,0 +1,16 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/08 17:12:50 cloder Exp $ +# $EOM: Makefile,v 1.6 2000/03/28 21:22:07 ho Exp $ + +# Test PRF: + +PROG= prftest +SRCS= prf.c hash.c log.c prftest.c conf.c sysdep.c util.c +TOPSRC= ${.CURDIR}/../../../../sbin/isakmpd +TOPOBJ!= cd ${TOPSRC}; printf "all:\n\t@pwd\n" |${MAKE} -f- +OS!= awk '/^OS=/ { print $$2 }' ${.CURDIR}/../../Makefile +.PATH: ${TOPSRC} ${TOPSRC}/sysdep/openbsd ${TOPOBJ} +CFLAGS+= -I${TOPSRC} -I${TOPSRC}/sysdep/openbsd -I${TOPOBJ} -Wall +NOMAN= +DEBUG= -g + +.include diff --git a/src/regress/sbin/isakmpd/prf/prftest.c b/src/regress/sbin/isakmpd/prf/prftest.c new file mode 100644 index 000000000..ca3fa0635 --- /dev/null +++ b/src/regress/sbin/isakmpd/prf/prftest.c @@ -0,0 +1,116 @@ +/* $OpenBSD: prftest.c,v 1.1 2005/04/08 17:12:50 cloder Exp $ */ +/* $EOM: prftest.c,v 1.2 1998/10/07 16:40:50 niklas Exp $ */ + +/* + * Copyright (c) 1998 Niels Provos. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This code was written under funding by Ericsson Radio Systems. + */ + +#include +#include +#include +#include + +#include "hash.h" +#include "prf.h" + +int test_prf (char *, enum hashes, char *, int, char *, int, char *); + +#define nibble2c(x) ((x) >= 10 ? ('a'-10+(x)) : ('0' + (x))) + +/* + * Basically the same as the HMAC regress, but to keep with modularity + * prf seems to be useful. So here we just check the HMAC test cases, + * until there are more PRFs. + */ + +int +main (void) +{ + char key[100]; + + memset (key, 11, 20); + test_prf ("PRF MD5 Test Case 1", HASH_MD5, + key, 16, "Hi There", 8, "9294727a3638bb1c13f48ef8158bfc9d"); + test_prf ("PRF MD5 Test Case 2", HASH_MD5, + "Jefe", 4, + "what do ya want for nothing?", 28, + "750c783e6ab0b503eaa86e310a5db738"); + test_prf ("PRF SHA1 Test Case 1", HASH_SHA1, + key, 20, "Hi There", 8, + "b617318655057264e28bc0b6fb378c8ef146be00"); + test_prf ("PRF SHA1 Test Case 2", HASH_SHA1, + "Jefe", 4, "what do ya want for nothing?", 28, + "effcdf6ae5eb2fa2d27416d5f184df9c259a7c79"); + test_prf ("PRF SHA1 Test Case 3", HASH_SHA1, + "Bloody long key, this one, eben longer than the blocksize " + "of ordinary keyed HMAC functions", 90, + "what do ya want for nothing?", 28, + "52ca5fbcd7d4821bc6bf8b6e95e131109dff901b"); + + return 0; +} + +int +test_prf (char *test, enum hashes hash, char *key, int klen, + char *data, int dlen, char *cmp) +{ + char output[2*HASH_MAX+1]; + char digest[HASH_MAX]; + struct prf *prf; + int i; + + printf ("Testing %s: ", test); + + prf = prf_alloc (PRF_HMAC, hash, key, klen); + if (!prf) + { + printf("prf_alloc () failed\n"); + return 0; + } + + prf->Init (prf->prfctx); + prf->Update (prf->prfctx, data, dlen); + prf->Final (digest, prf->prfctx); + + prf_free (prf); + + for (i = 0; i < prf->blocksize; i++) + { + output[2 * i] = nibble2c ((digest[i] >> 4) & 0xf); + output[2 * i + 1] = nibble2c (digest[i] & 0xf); + } + output[2 * i] = 0; + + if (strcmp (output, cmp) == 0) + { + printf ("OKAY\n"); + return 1; + } + + printf ("%s <-> %s\n", output, cmp); + return 0; +} diff --git a/src/regress/sbin/isakmpd/rsakeygen/.cvsignore b/src/regress/sbin/isakmpd/rsakeygen/.cvsignore new file mode 100644 index 000000000..73252cb7f --- /dev/null +++ b/src/regress/sbin/isakmpd/rsakeygen/.cvsignore @@ -0,0 +1,2 @@ +isakmpd_key +isakmpd_key.pub \ No newline at end of file diff --git a/src/regress/sbin/isakmpd/rsakeygen/CVS/Entries b/src/regress/sbin/isakmpd/rsakeygen/CVS/Entries new file mode 100644 index 000000000..6b6c9305d --- /dev/null +++ b/src/regress/sbin/isakmpd/rsakeygen/CVS/Entries @@ -0,0 +1,4 @@ +/.cvsignore/1.1/Fri Apr 8 17:12:50 2005// +/Makefile/1.1/Fri Apr 8 17:12:50 2005// +/rsakeygen.c/1.1/Fri Apr 8 17:12:50 2005// +D diff --git a/src/regress/sbin/isakmpd/rsakeygen/CVS/Repository b/src/regress/sbin/isakmpd/rsakeygen/CVS/Repository new file mode 100644 index 000000000..ccc5253f6 --- /dev/null +++ b/src/regress/sbin/isakmpd/rsakeygen/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd/rsakeygen diff --git a/src/regress/sbin/isakmpd/rsakeygen/CVS/Root b/src/regress/sbin/isakmpd/rsakeygen/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/rsakeygen/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/rsakeygen/Makefile b/src/regress/sbin/isakmpd/rsakeygen/Makefile new file mode 100644 index 000000000..4b07c5a44 --- /dev/null +++ b/src/regress/sbin/isakmpd/rsakeygen/Makefile @@ -0,0 +1,69 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/08 17:12:50 cloder Exp $ +# $EOM: Makefile,v 1.10 2000/03/28 21:23:24 ho Exp $ + +# +# Copyright (c) 1999 Niels Provos. All rights reserved. +# Copyright (c) 1999, 2001 Niklas Hallqvist. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# +# This code was written under funding by Ericsson Radio Systems. +# + +# RSA Key Generation + +PROG= rsakeygen +SRCS= libcrypto.c log.c rsakeygen.c sysdep.c util.c conf.c +TOPSRC= ${.CURDIR}/../../../../sbin/isakmpd +TOPOBJ!= cd ${TOPSRC}; printf "all:\n\t@pwd\n" |${MAKE} -f- +OS!= awk '/^OS=/ { print $$2 }' ${.CURDIR}/../../Makefile +FEATURES!= awk '/^FEATURES=/ { print $$0 }' ${.CURDIR}/../../Makefile | sed 's/FEATURES=.//' +.PATH: ${TOPSRC} ${TOPSRC}/sysdep/openbsd ${TOPOBJ} +CFLAGS+= -I${TOPSRC} -I${TOPSRC}/sysdep/openbsd -I${TOPOBJ} -Wall \ + -DUSE_DEBUG +NOMAN= +DEBUG= -g + +.if ${FEATURES:Mgmp} == "gmp" +CFLAGS+= -DMP_FLAVOUR=MP_FLAVOUR_GMP +LDADD+= -lgmp +DPADD+= ${LIBGMP} +.else +CFLAGS+= -DMP_FLAVOUR=MP_FLAVOUR_OPENSSL +.endif + +.include "${TOPSRC}/sysdep/openbsd/Makefile.sysdep" + +.ifdef HAVE_DLOPEN +CFLAGS+= -DHAVE_DLOPEN +SRCS+= dyn.c +.endif + +CFLAGS+= -DUSE_LIBCRYPTO +LDADD+= -lcrypto +DPADD+= ${LIBCRYPTO} + +LDADD+= ${DESLIB} +DPADD+= ${DESLIBDEP} + +.include diff --git a/src/regress/sbin/isakmpd/rsakeygen/rsakeygen.c b/src/regress/sbin/isakmpd/rsakeygen/rsakeygen.c new file mode 100644 index 000000000..57383dbae --- /dev/null +++ b/src/regress/sbin/isakmpd/rsakeygen/rsakeygen.c @@ -0,0 +1,128 @@ +/* $OpenBSD: rsakeygen.c,v 1.1 2005/04/08 17:12:50 cloder Exp $ */ +/* $EOM: rsakeygen.c,v 1.10 2000/12/21 15:18:53 ho Exp $ */ + +/* + * Copyright (c) 1998, 1999 Niels Provos. All rights reserved. + * Copyright (c) 1999, 2001 Niklas Hallqvist. All rights reserved. + * Copyright (c) 2001 Håkan Olsson. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This code was written under funding by Ericsson Radio Systems. + */ + +#include +#include +#include +#include +#include + +#include "libcrypto.h" +#include "log.h" +#include "math_mp.h" + +#define nibble2bin(y) (tolower (y) < 'a' ? (y) - '0' : tolower (y) - 'a' + 10) +#define hexchar2bin(x) ((nibble2bin ((x)[0]) << 4) + nibble2bin ((x)[1])) +#define nibble2c(x) ((x) >= 10 ? ('a' - 10 + (x)) : ('0' + (x))) + +#define TEST_STRING "!Dies ist ein Test" + +int +main (void) +{ + u_int8_t enc[256], dec[256], *asn, *foo; + int len; + FILE *fd; + int erg = 0; + RSA *key; + + libcrypto_init (); + + log_debug_cmd (LOG_CRYPTO, 99); + memset (dec, '\0', sizeof dec); + strlcpy (dec, TEST_STRING, 256); + + key = RSA_generate_key (1024, RSA_F4, NULL, NULL); + if (key == NULL) + { + printf("Failed to generate key\n"); + return 1; + } + + printf ("n: 0x"); + BN_print_fp (stdout, key->n); + printf ("\ne: 0x"); + BN_print_fp (stdout, key->e); + printf ("\n"); + + printf ("n: 0x"); + BN_print_fp (stdout, key->n); + printf ("\ne: 0x"); + BN_print_fp (stdout, key->e); + printf ("\nd: 0x"); + BN_print_fp (stdout, key->d); + printf ("\np: 0x"); + BN_print_fp (stdout, key->p); + printf ("\nq: 0x"); + BN_print_fp (stdout, key->q); + printf ("\n"); + + printf ("Testing Signing/Verifying: "); + /* Sign with Private Key */ + len = RSA_private_encrypt (strlen (dec) + 1, dec, enc, key, + RSA_PKCS1_PADDING); + if (len == -1) + printf ("SIGN FAILED "); + else + { + /* Decrypt/Verify with Public Key */ + erg = RSA_public_decrypt (len, enc, dec, key, RSA_PKCS1_PADDING); + + if (erg == -1 || strcmp (dec, TEST_STRING)) + printf ("VERIFY FAILED"); + else + printf ("OKAY"); + } + + printf ("\n"); + + len = i2d_RSAPublicKey (key, NULL); + foo = asn = malloc (len); + len = i2d_RSAPublicKey (key, &foo); + fd = fopen ("isakmpd_key.pub", "w"); + fwrite (asn, len, 1, fd); + fclose (fd); + free (asn); + + len = i2d_RSAPrivateKey (key, NULL); + foo = asn = malloc (len); + len = i2d_RSAPrivateKey (key, &foo); + fd = fopen ("isakmpd_key", "w"); + fwrite (asn, len, 1, fd); + fclose (fd); + free (asn); + + RSA_free (key); + + return 0; +} diff --git a/src/regress/sbin/isakmpd/util/CVS/Entries b/src/regress/sbin/isakmpd/util/CVS/Entries new file mode 100644 index 000000000..501ef14e9 --- /dev/null +++ b/src/regress/sbin/isakmpd/util/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Apr 8 17:12:50 2005// +/utiltest.c/1.1/Fri Apr 8 17:12:50 2005// +D diff --git a/src/regress/sbin/isakmpd/util/CVS/Repository b/src/regress/sbin/isakmpd/util/CVS/Repository new file mode 100644 index 000000000..889e2c806 --- /dev/null +++ b/src/regress/sbin/isakmpd/util/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd/util diff --git a/src/regress/sbin/isakmpd/util/CVS/Root b/src/regress/sbin/isakmpd/util/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/util/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/util/Makefile b/src/regress/sbin/isakmpd/util/Makefile new file mode 100644 index 000000000..31a816175 --- /dev/null +++ b/src/regress/sbin/isakmpd/util/Makefile @@ -0,0 +1,15 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/08 17:12:50 cloder Exp $ + +# Test some utility functions + +PROG= utiltest +SRCS= log.c sysdep.c util.c utiltest.c conf.c +TOPSRC= ${.CURDIR}/../../../../sbin/isakmpd +TOPOBJ!= cd ${TOPSRC}; printf "all:\n\t@pwd\n" |${MAKE} -f- +OS!= awk '/^OS=/ { print $$2 }' ${.CURDIR}/../../Makefile +.PATH: ${TOPSRC} ${TOPSRC}/sysdep/openbsd ${TOPOBJ} +CFLAGS+= -I${TOPSRC} -I${TOPSRC}/sysdep/openbsd -I${TOPOBJ} -Wall +NOMAN= +DEBUG= -g + +.include diff --git a/src/regress/sbin/isakmpd/util/utiltest.c b/src/regress/sbin/isakmpd/util/utiltest.c new file mode 100644 index 000000000..544766956 --- /dev/null +++ b/src/regress/sbin/isakmpd/util/utiltest.c @@ -0,0 +1,85 @@ +/* $OpenBSD: utiltest.c,v 1.1 2005/04/08 17:12:50 cloder Exp $ */ + +/* + * Copyright (c) 2001 Niklas Hallqvist. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include + +#include "sysdep.h" + +#include "util.h" + +int test_1 (char *, char *, int); + +int +main (int argc, char *argv[]) +{ + test_1 ("10.0.0.1", "10", 0); + test_1 ("10.0.0.1", "isakmp", 0); + test_1 ("10::1", "10", 0); + test_1 ("10::1", "isakmp", 0); + test_1 ("10.0x0.1", "10", -1); + test_1 ("10.0.0.1", "telnet", -1); + test_1 ("10::x:1", "10", -1); + test_1 ("10::1", "telnet", -1); + return 0; +} + +int test_1 (char *address, char *port, int ok) +{ + struct sockaddr *sa; +#ifdef DEBUG + struct sockaddr_in *sai; + struct sockaddr_in6 *sai6; + int i; +#endif + int rv; + + printf ("test_1 (\"%s\", \"%s\") ", address, port); + rv = text2sockaddr (address, port, &sa, 0, 0) == ok; + printf (rv ? "OK" : "FAIL"); + printf ("\n"); + +#ifdef DEBUG + printf ("af %d len %d ", sa->sa_family, sa->sa_len); + if (sa->sa_family == AF_INET) + { + sai = (struct sockaddr_in *)sa; + printf ("addr %08x port %d\n", ntohl (sai->sin_addr.s_addr), + ntohs (sai->sin_port)); + } + else + { + sai6 = (struct sockaddr_in6 *)sa; + printf ("addr "); + for (i = 0; i < sizeof sai6->sin6_addr; i++) + printf ("%02x", sai6->sin6_addr.s6_addr[i]); + printf (" port %d\n", ntohs (sai6->sin6_port)); + } +#endif + return rv; +} diff --git a/src/regress/sbin/isakmpd/x509/CVS/Entries b/src/regress/sbin/isakmpd/x509/CVS/Entries new file mode 100644 index 000000000..c5c53d2e1 --- /dev/null +++ b/src/regress/sbin/isakmpd/x509/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Apr 8 17:12:50 2005// +/x509test.c/1.1/Fri Apr 8 17:12:50 2005// +D diff --git a/src/regress/sbin/isakmpd/x509/CVS/Repository b/src/regress/sbin/isakmpd/x509/CVS/Repository new file mode 100644 index 000000000..37b804964 --- /dev/null +++ b/src/regress/sbin/isakmpd/x509/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/isakmpd/x509 diff --git a/src/regress/sbin/isakmpd/x509/CVS/Root b/src/regress/sbin/isakmpd/x509/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/isakmpd/x509/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/isakmpd/x509/Makefile b/src/regress/sbin/isakmpd/x509/Makefile new file mode 100644 index 000000000..af44e8f1d --- /dev/null +++ b/src/regress/sbin/isakmpd/x509/Makefile @@ -0,0 +1,78 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/08 17:12:50 cloder Exp $ +# $EOM: Makefile,v 1.16 2000/09/28 12:53:27 niklas Exp $ + +# +# Copyright (c) 1999 Niels Provos. All rights reserved. +# Copyright (c) 1999, 2001 Niklas Hallqvist. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# +# This code was written under funding by Ericsson Radio Systems. +# + +# Test X509 + +# Enable this if you have a DNSSEC enabled OpenSSL +#LIBLWRES= /usr/local/lib/liblwres.a + +PROG= x509test +SRCS= x509test.c conf.c log.c libcrypto.c sysdep.c field.c util.c \ + isakmp_fld.c ipsec_fld.c ipsec_num.c isakmp_num.c constants.c \ + cert.c +TOPSRC= ${.CURDIR}/../../../../sbin/isakmpd +TOPOBJ!= cd ${TOPSRC}; printf "all:\n\t@pwd\n" |${MAKE} -f- +OS!= awk '/^OS=/ { print $$2 }' ${.CURDIR}/../../Makefile +FEATURES!= awk '/^FEATURES=/ { print $$0 }' ${TOPSRC}/Makefile | sed 's/FEATURES=.//' +.PATH: ${TOPSRC} ${TOPSRC}/sysdep/openbsd ${TOPOBJ} +CFLAGS+= -I${TOPSRC} -I${TOPSRC}/sysdep/openbsd -I${TOPOBJ} -Wall +NOMAN= +DEBUG= -g + +.if ${FEATURES:Mgmp} == "gmp" +CFLAGS+= -DMP_FLAVOUR=MP_FLAVOUR_GMP +LDADD+= -lgmp +DPADD+= ${LIBGMP} +.else +CFLAGS+= -DMP_FLAVOUR=MP_FLAVOUR_OPENSSL +.endif + +.include "${TOPSRC}/sysdep/openbsd/Makefile.sysdep" + +X509= x509.c +POLICY= policy.c + +POLICY= policy.c +LDADD+= -lkeynote -lm +DPADD+= ${LIBKEYNOTE} ${LIBM} +CFLAGS+= -DUSE_KEYNOTE + +CFLAGS+= -DUSE_LIBCRYPTO +LDADD+= -lcrypto ${LIBLWRES} +DPADD+= ${LIBCRYPTO} + +SRCS+= ${X509} ${POLICY} + +LDADD+= ${DESLIB} +DPADD+= ${DESLIBDEP} + +.include diff --git a/src/regress/sbin/isakmpd/x509/x509test.c b/src/regress/sbin/isakmpd/x509/x509test.c new file mode 100644 index 000000000..116a87177 --- /dev/null +++ b/src/regress/sbin/isakmpd/x509/x509test.c @@ -0,0 +1,291 @@ +/* $OpenBSD: x509test.c,v 1.1 2005/04/08 17:12:50 cloder Exp $ */ +/* $EOM: x509test.c,v 1.9 2000/12/21 15:24:25 ho Exp $ */ + +/* + * Copyright (c) 1998, 1999 Niels Provos. All rights reserved. + * Copyright (c) 1999, 2001 Niklas Hallqvist. All rights reserved. + * Copyright (c) 2001 Håkan Olsson. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This code was written under funding by Ericsson Radio Systems. + */ + +/* + * This program takes a certificate generated by ssleay and a key pair + * from rsakeygen. It reads the IP address from certificate.txt and + * includes this as subject alt name extension into the certifcate. + * The result gets written as new certificate that can be used by + * isakmpd. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "conf.h" +#include "ipsec_num.h" +#include "isakmp_fld.h" +#include "libcrypto.h" +#include "log.h" +#include "math_mp.h" +#include "x509.h" + +static int x509_check_subjectaltname (u_char *, u_int, X509 *); + +u_int32_t file_sz; + +#if 0 +/* XXX Currently unused. */ +static u_int8_t * +open_file (char *name) +{ + int fd; + struct stat st; + u_int8_t *addr; + + if (stat (name, &st) == -1) + log_fatal ("stat (\"%s\", &st)", name); + file_sz = st.st_size; + fd = open (name, O_RDONLY); + if (fd == -1) + log_fatal ("open (\"%s\", O_RDONLY)", name); + addr = mmap (0, file_sz, PROT_READ | PROT_WRITE, MAP_FILE | MAP_PRIVATE, + fd, 0); + if (addr == MAP_FAILED) + log_fatal ("mmap (0, %d, PROT_READ | PROT_WRITE, MAP_FILE | MAP_PRIVATE," + "%d, 0)", file_sz, fd); + close (fd); + + return addr; +} +#endif + +/* + * Check that a certificate has a subjectAltName and that it matches our ID. + */ +static int +x509_check_subjectaltname (u_char *id, u_int id_len, X509 *scert) +{ + u_int8_t *altname; + u_int32_t altlen; + int type, idtype, ret; + + type = x509_cert_subjectaltname (scert, &altname, &altlen); + if (!type) + { + log_print ("x509_check_subjectaltname: can't access subjectAltName"); + return 0; + } + + /* + * Now that we have the X509 certicate in native form, get the + * subjectAltName extension and verify that it matches our ID. + */ + + /* XXX Get type of ID. */ + idtype = id[0]; + id += ISAKMP_ID_DATA_OFF - ISAKMP_GEN_SZ; + id_len -= ISAKMP_ID_DATA_OFF - ISAKMP_GEN_SZ; + + ret = 0; + switch (idtype) + { + case IPSEC_ID_IPV4_ADDR: + if (type == X509v3_IP_ADDR) + ret = 1; + break; + case IPSEC_ID_FQDN: + if (type == X509v3_DNS_NAME) + ret = 1; + break; + case IPSEC_ID_USER_FQDN: + if (type == X509v3_RFC_NAME) + ret = 1; + break; + default: + ret = 0; + break; + } + + if (!ret) + { + LOG_DBG ((LOG_CRYPTO, 50, + "x509_check_subjectaltname: " + "our ID type (%d) does not match X509 cert ID type (%d)", + idtype, type)); + return 0; + } + + if (altlen != id_len || memcmp (altname, id, id_len) != 0) + { + LOG_DBG ((LOG_CRYPTO, 50, + "x509_check_subjectaltname: " + "our ID does not match X509 cert ID")); + return 0; + } + + return 1; +} + +int +main (int argc, char *argv[]) +{ + RSA *pub_key, *priv_key; + X509 *cert; + BIO *certfile, *keyfile; + EVP_PKEY *pkey_pub; + u_char ipaddr[6]; + struct in_addr saddr; + char enc[256], dec[256]; + u_int8_t idpayload[8]; + int err, len; + + if (argc < 3 || argc > 4) + { + fprintf (stderr, "usage: x509test private-key certificate ip-address\n"); + exit (1); + } + + /* + * X509_verify will fail, as will all other functions that call + * EVP_get_digest_byname. + */ + + libcrypto_init (); + + printf ("Reading private key %s\n", argv[1]); + keyfile = BIO_new (BIO_s_file ()); + if (BIO_read_filename (keyfile, argv[1]) == -1) + { + perror ("read"); + exit (1); + } +#if SSLEAY_VERSION_NUMBER >= 0x00904100L + priv_key = PEM_read_bio_RSAPrivateKey (keyfile, NULL, NULL, NULL); +#else + priv_key = PEM_read_bio_RSAPrivateKey (keyfile, NULL, NULL); +#endif + BIO_free (keyfile); + if (priv_key == NULL) + { + printf("PEM_read_bio_RSAPrivateKey () failed\n"); + exit (1); + } + + /* Use a certificate created by ssleay. */ + printf ("Reading ssleay created certificate %s\n", argv[2]); + certfile = BIO_new (BIO_s_file ()); + if (BIO_read_filename (certfile, argv[2]) == -1) + { + perror ("read"); + exit (1); + } +#if SSLEAY_VERSION_NUMBER >= 0x00904100L + cert = PEM_read_bio_X509 (certfile, NULL, NULL, NULL); +#else + cert = PEM_read_bio_X509 (certfile, NULL, NULL); +#endif + BIO_free (certfile); + if (cert == NULL) + { + printf("PEM_read_bio_X509 () failed\n"); + exit (1); + } + + pkey_pub = X509_get_pubkey (cert); + /* XXX Violation of the interface? */ + pub_key = pkey_pub->pkey.rsa; + if (pub_key == NULL) + { + exit (1); + } + + printf ("Testing RSA keys: "); + + err = 0; + strlcpy (dec, "Eine kleine Testmeldung", 256); + if ((len = RSA_private_encrypt (strlen (dec), dec, enc, priv_key, + RSA_PKCS1_PADDING)) == -1) + + printf ("SIGN FAILED "); + else + err = RSA_public_decrypt (len, enc, dec, pub_key, RSA_PKCS1_PADDING); + + if (err == -1 || strcmp (dec, "Eine kleine Testmeldung")) + printf ("SIGN/VERIFY FAILED"); + else + printf ("OKAY"); + printf ("\n"); + + + printf ("Validate SIGNED: "); + err = X509_verify (cert, pkey_pub); + printf ("X509 verify: %d ", err); + if (err == -1) + printf ("FAILED "); + else + printf ("OKAY "); + printf ("\n"); + + if (argc == 4) + { + printf ("Verifying extension: "); + if (inet_aton (argv[3], &saddr) == 0) + { + printf ("inet_aton () failed\n"); + exit (1); + } + + saddr.s_addr = htonl (saddr.s_addr); + ipaddr[0] = 0x87; + ipaddr[1] = 0x04; + ipaddr[2] = saddr.s_addr >> 24; + ipaddr[3] = (saddr.s_addr >> 16) & 0xff; + ipaddr[4] = (saddr.s_addr >> 8) & 0xff; + ipaddr[5] = saddr.s_addr & 0xff; + bzero (idpayload, sizeof idpayload); + idpayload[0] = IPSEC_ID_IPV4_ADDR; + bcopy (ipaddr + 2, idpayload + 4, 4); + + if (!x509_check_subjectaltname (idpayload, sizeof idpayload, cert)) + printf("FAILED "); + else + printf("OKAY "); + printf ("\n"); + } + + return 1; +} diff --git a/src/regress/sbin/newfs/CVS/Entries b/src/regress/sbin/newfs/CVS/Entries new file mode 100644 index 000000000..b3eca6c3b --- /dev/null +++ b/src/regress/sbin/newfs/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Apr 18 10:18:23 2007// +/checknewfs/1.3/Sun Apr 26 21:32:31 2009// +D diff --git a/src/regress/sbin/newfs/CVS/Repository b/src/regress/sbin/newfs/CVS/Repository new file mode 100644 index 000000000..e340632f0 --- /dev/null +++ b/src/regress/sbin/newfs/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/newfs diff --git a/src/regress/sbin/newfs/CVS/Root b/src/regress/sbin/newfs/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/newfs/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/newfs/Makefile b/src/regress/sbin/newfs/Makefile new file mode 100644 index 000000000..56565f660 --- /dev/null +++ b/src/regress/sbin/newfs/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2007/04/18 10:18:23 otto Exp $ +# +# Regress tests for newfs + +all: + sh checknewfs diff --git a/src/regress/sbin/newfs/checknewfs b/src/regress/sbin/newfs/checknewfs new file mode 100644 index 000000000..a64d72d83 --- /dev/null +++ b/src/regress/sbin/newfs/checknewfs @@ -0,0 +1,55 @@ +#!/bin/ksh +# $OpenBSD: checknewfs,v 1.3 2009/04/26 21:32:31 okan Exp $ +# Written by Otto Moerbeek, 2007, Public domain + + +cleanup() { + vnconfig -u svnd0 + rm -f $image +} + +trap 'cleanup' INT + +dotest() { + image=$(mktemp -t imageXXXXXXXXXX); + dd if=/dev/prandom of=$image bs=512 count=$1 2>/dev/null && + vnconfig svnd0 $image && + disklabel -w svnd0 $2 && + newfs $3 /dev/rsvnd0a + if [ $? != 0 ]; then + ret=$(($ret + 1)) + echo TEST $1 $2 \"$3\" failed + else + (fsck -nf /dev/svnd0a | fgrep SALVAGE) + if [ $? == 0 ]; then + ret=$(($ret + 1)) + echo TEST $1 $2 \"$3\" failed + else + echo TEST $1 $2 \"$3\" OK + fi + fi + echo ========================== + if [ $clean == 1 ]; then + cleanup + fi +} + +ret=0 + +vnconfig -u svnd0 > /dev/null 2>&1 +if [ $# == 0 ]; then + clean=1 + dotest 3800 rdroot "-m 0 -o space -i 4096" + dotest 5760 floppy288 "-m 0 -o space -i 81920 -c 5760" + dotest 5760 floppy288 "-m 0 -o space -i 81920 -c 5752" + dotest 5760 floppy288 "-m 0 -o space -i 524288 -c 5760" + dotest 5760 floppy288 "-m 0 -o space -i 524288 -c 5761" + dotest 2880 floppy3 "-m 0 -o space -i 81920" + dotest 2880 floppy3 "-m 0 -o space -i 81920 -c 2880" + dotest 2880 floppy3 "-m 0 -o space -i 524288 -c 2880" +else + clean=0 + dotest "${@}" +fi + +exit $ret diff --git a/src/regress/sbin/pfctl/CVS/Entries b/src/regress/sbin/pfctl/CVS/Entries new file mode 100644 index 000000000..04c209d73 --- /dev/null +++ b/src/regress/sbin/pfctl/CVS/Entries @@ -0,0 +1,529 @@ +/if2ip/1.6/Tue Jun 30 03:44:35 2009// +/pf1.in/1.5/Fri Oct 6 17:09:41 2006// +/pf1.loaded/1.9/Tue Oct 17 08:15:32 2006// +/pf1.ok/1.15/Tue Oct 17 08:15:32 2006// +/pf1.optimized/1.3/Tue Oct 17 08:15:32 2006// +/pf10.in/1.6/Tue Dec 31 02:23:20 2002// +/pf10.loaded/1.7/Fri Oct 6 17:09:41 2006// +/pf10.ok/1.10/Fri Oct 6 17:09:41 2006// +/pf10.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf11.in/1.3/Tue Dec 31 00:49:32 2002// +/pf11.loaded/1.8/Fri Oct 6 17:09:41 2006// +/pf11.ok/1.9/Fri Oct 6 17:09:41 2006// +/pf11.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf12.in/1.3/Fri Oct 6 17:09:41 2006// +/pf12.loaded/1.8/Tue Oct 17 08:15:32 2006// +/pf12.ok/1.8/Tue Oct 17 08:15:32 2006// +/pf12.optimized/1.3/Tue Oct 17 08:15:32 2006// +/pf13.in/1.6/Wed Sep 23 14:08:33 2009// +/pf14.in/1.1/Fri Jun 7 18:35:55 2002// +/pf14.loaded/1.7/Fri Oct 6 17:09:41 2006// +/pf14.ok/1.4/Fri Oct 6 17:09:41 2006// +/pf14.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf15.in/1.11/Mon Apr 6 12:41:47 2009// +/pf15.loaded/1.15/Mon Apr 6 12:41:47 2009// +/pf15.ok/1.16/Mon Apr 6 12:41:47 2009// +/pf15.optimized/1.3/Mon Apr 6 12:41:47 2009// +/pf16.in/1.6/Wed Sep 23 14:08:33 2009// +/pf16.loaded/1.13/Tue Oct 6 14:11:07 2009// +/pf16.ok/1.12/Wed Sep 23 14:08:33 2009// +/pf16.optimized/1.5/Tue Oct 6 14:11:07 2009// +/pf17.in/1.9/Wed Sep 23 14:08:33 2009// +/pf18.in/1.8/Wed Sep 23 14:08:33 2009// +/pf18.ok/1.11/Wed Sep 23 14:08:33 2009// +/pf19.in/1.3/Wed Sep 23 14:08:33 2009// +/pf19.loaded/1.7/Wed Sep 23 14:08:33 2009// +/pf19.ok/1.7/Wed Sep 23 14:08:33 2009// +/pf19.optimized/1.2/Wed Sep 23 14:08:33 2009// +/pf2.in/1.6/Fri Dec 5 16:55:40 2003// +/pf2.loaded/1.9/Fri Oct 6 17:09:41 2006// +/pf2.ok/1.14/Fri Oct 6 17:09:41 2006// +/pf2.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf20.in/1.4/Wed Sep 2 17:25:46 2009// +/pf20.loaded/1.7/Wed Sep 23 14:08:33 2009// +/pf20.ok/1.7/Wed Sep 23 14:08:33 2009// +/pf20.optimized/1.2/Wed Sep 23 14:08:33 2009// +/pf21.in/1.2/Mon Apr 6 12:41:47 2009// +/pf21.ok/1.5/Mon Apr 6 12:41:48 2009// +/pf21.optimized/1.2/Mon Apr 6 12:41:48 2009// +/pf22.in/1.4/Tue Dec 16 00:33:30 2003// +/pf22.ok/1.5/Tue Dec 16 00:33:30 2003// +/pf23.in/1.1/Mon Jul 15 18:19:37 2002// +/pf23.loaded/1.6/Tue Jul 29 20:28:34 2003// +/pf23.ok/1.4/Tue Jul 29 20:28:34 2003// +/pf23.optimized/1.1/Fri Oct 1 23:19:17 2004// +/pf24.in/1.1/Sun Jul 21 01:37:57 2002// +/pf24.loaded/1.7/Fri Oct 6 17:09:41 2006// +/pf24.ok/1.6/Fri Oct 6 17:09:41 2006// +/pf24.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf25.in/1.3/Sun May 22 05:41:40 2005// +/pf25.loaded/1.9/Sun May 22 05:41:40 2005// +/pf25.ok/1.8/Sun May 22 05:41:40 2005// +/pf25.optimized/1.2/Sun May 22 21:24:42 2005// +/pf26.in/1.1/Sun Sep 15 17:41:43 2002// +/pf26.loaded/1.7/Wed Dec 31 11:55:04 2003// +/pf26.ok/1.4/Tue Jul 29 20:28:34 2003// +/pf26.optimized/1.1/Fri Oct 1 23:19:18 2004// +/pf27.in/1.2/Wed Sep 2 17:25:46 2009// +/pf27.ok/1.5/Wed Sep 23 14:08:33 2009// +/pf28.in/1.2/Sat May 28 19:36:00 2005// +/pf28.loaded/1.7/Sat May 28 19:36:00 2005// +/pf28.ok/1.6/Sat May 28 19:36:00 2005// +/pf28.optimized/1.2/Sat May 28 19:36:00 2005// +/pf29.in/1.3/Wed Sep 23 14:08:33 2009// +/pf29.loaded/1.6/Tue Oct 6 14:11:07 2009// +/pf29.ok/1.4/Wed Sep 23 14:08:33 2009// +/pf29.optimized/1.2/Tue Oct 6 14:11:07 2009// +/pf3.in/1.5/Fri Oct 6 17:09:41 2006// +/pf3.loaded/1.8/Tue Oct 17 08:15:32 2006// +/pf3.ok/1.12/Tue Oct 17 08:15:32 2006// +/pf3.optimized/1.3/Tue Oct 17 08:15:32 2006// +/pf30.in/1.1/Fri Sep 20 09:40:19 2002// +/pf30.loaded/1.6/Tue Jul 29 20:28:34 2003// +/pf30.ok/1.4/Tue Jul 29 20:28:34 2003// +/pf30.optimized/1.1/Fri Oct 1 23:19:18 2004// +/pf31.in/1.2/Tue Feb 18 17:43:48 2003// +/pf31.loaded/1.7/Tue Jul 29 20:28:34 2003// +/pf31.ok/1.6/Sat Oct 28 14:30:05 2006// +/pf31.optimized/1.1/Fri Oct 1 23:19:18 2004// +/pf32.in/1.2/Tue Feb 3 19:34:20 2004// +/pf32.loaded/1.8/Fri Oct 6 17:09:41 2006// +/pf32.ok/1.5/Fri Oct 6 17:09:41 2006// +/pf32.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf33.in/1.8/Fri Oct 6 17:09:41 2006// +/pf33.loaded/1.2/Wed Jan 1 04:26:19 2003// +/pf33.ok/1.15/Fri Oct 6 17:09:41 2006// +/pf34.in/1.2/Sun Apr 25 18:14:22 2004// +/pf34.loaded/1.8/Fri Oct 6 17:09:41 2006// +/pf34.ok/1.5/Fri Oct 6 17:09:41 2006// +/pf34.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf35.in/1.4/Fri Apr 30 12:53:56 2004// +/pf35.loaded/1.2/Wed Jan 1 04:26:19 2003// +/pf35.ok/1.12/Fri Oct 6 17:09:41 2006// +/pf36.in/1.3/Wed Sep 2 17:25:46 2009// +/pf37.in/1.4/Fri Dec 5 16:55:40 2003// +/pf37.ok/1.6/Fri Dec 5 16:55:40 2003// +/pf38.in/1.2/Fri Dec 5 16:55:40 2003// +/pf38.loaded/1.8/Fri Oct 6 17:09:41 2006// +/pf38.ok/1.5/Fri Oct 6 17:09:41 2006// +/pf38.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf39.in/1.1/Wed Dec 4 11:35:41 2002// +/pf39.loaded/1.9/Fri Oct 6 17:09:41 2006// +/pf39.ok/1.7/Fri Oct 6 17:09:41 2006// +/pf39.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf4.in/1.4/Mon Dec 15 18:07:15 2003// +/pf4.loaded/1.7/Mon Dec 15 18:07:15 2003// +/pf4.ok/1.11/Mon Dec 15 18:07:15 2003// +/pf4.optimized/1.1/Fri Oct 1 23:19:18 2004// +/pf40.in/1.4/Mon Apr 6 12:41:48 2009// +/pf40.loaded/1.10/Mon Apr 6 12:41:48 2009// +/pf40.ok/1.6/Mon Apr 6 12:41:48 2009// +/pf40.optimized/1.4/Mon Apr 6 12:41:48 2009// +/pf42.in/1.2/Mon Dec 16 22:21:19 2002// +/pf42.ok/1.4/Mon Mar 3 14:18:04 2003// +/pf43.in/1.3/Fri Apr 30 12:53:56 2004// +/pf43.loaded/1.2/Wed Jan 1 04:26:19 2003// +/pf43.ok/1.6/Fri Oct 6 17:09:41 2006// +/pf44.in/1.2/Mon Apr 6 12:41:48 2009// +/pf44.loaded/1.8/Tue Jun 30 03:42:11 2009// +/pf44.ok/1.5/Tue Jun 30 03:42:11 2009// +/pf44.optimized/1.3/Tue Jun 30 03:42:11 2009// +/pf45.in/1.2/Mon Dec 23 12:00:30 2002// +/pf45.ok/1.2/Mon Mar 3 14:18:04 2003// +/pf47.in/1.2/Mon Dec 15 18:07:15 2003// +/pf47.loaded/1.10/Fri Oct 6 17:09:41 2006// +/pf47.ok/1.4/Fri Oct 6 17:09:41 2006// +/pf47.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf48.in/1.6/Wed Sep 2 17:25:46 2009// +/pf48.loaded/1.10/Tue Oct 6 14:11:07 2009// +/pf48.ok/1.8/Wed Sep 23 14:08:33 2009// +/pf48.optimized/1.5/Tue Oct 6 14:11:07 2009// +/pf49.in/1.2/Wed Dec 31 11:55:04 2003// +/pf49.loaded/1.7/Fri Oct 6 17:09:41 2006// +/pf49.ok/1.4/Fri Oct 6 17:09:41 2006// +/pf49.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf5.in/1.2/Mon Jul 15 13:37:11 2002// +/pf5.loaded/1.6/Tue Jul 29 20:28:34 2003// +/pf5.ok/1.11/Tue Jul 29 20:28:34 2003// +/pf5.optimized/1.1/Fri Oct 1 23:19:18 2004// +/pf50.in/1.1/Fri Feb 14 22:33:47 2003// +/pf50.ok/1.2/Tue Jul 29 20:28:34 2003// +/pf51.in/1.3/Wed Sep 2 17:25:46 2009// +/pf51.ok/1.7/Wed Sep 23 14:08:33 2009// +/pf52.in/1.1/Tue Feb 18 17:54:32 2003// +/pf52.ok/1.1/Tue Feb 18 17:54:32 2003// +/pf53.in/1.1/Wed Feb 19 23:15:51 2003// +/pf53.ok/1.3/Fri Oct 6 17:09:41 2006// +/pf54.in/1.2/Mon Apr 6 12:41:48 2009// +/pf54.loaded/1.6/Mon Apr 6 12:41:48 2009// +/pf54.ok/1.3/Mon Apr 6 12:41:48 2009// +/pf54.optimized/1.2/Mon Apr 6 12:41:48 2009// +/pf55.in/1.3/Tue Dec 16 08:22:27 2003// +/pf55.ok/1.3/Tue Dec 16 08:22:27 2003// +/pf56.in/1.2/Mon Nov 10 03:16:47 2003// +/pf56.loaded/1.8/Fri Oct 6 17:09:41 2006// +/pf56.ok/1.5/Fri Oct 6 17:09:41 2006// +/pf56.optimized/1.3/Fri Oct 6 17:09:41 2006// +/pf57.in/1.1/Mon Feb 24 20:56:56 2003// +/pf57.ok/1.3/Fri Oct 6 17:09:41 2006// +/pf58.in/1.4/Fri Apr 30 12:53:56 2004// +/pf58.ok/1.6/Thu Apr 6 16:44:07 2006// +/pf59.in/1.4/Fri Dec 5 16:55:40 2003// +/pf59.ok/1.3/Fri Dec 5 16:55:40 2003// +/pf6.in/1.2/Mon Oct 1 19:59:43 2001// +/pf6.ok/1.3/Thu Dec 5 13:09:32 2002// +/pf60.in/1.1/Wed Mar 19 14:03:52 2003// +/pf60.loaded/1.4/Fri Oct 6 17:09:41 2006// +/pf60.ok/1.3/Fri Oct 6 17:09:41 2006// +/pf60.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf61.in/1.1/Sat Apr 5 21:50:14 2003// +/pf61.loaded/1.5/Fri Oct 6 17:09:41 2006// +/pf61.ok/1.3/Fri Oct 6 17:09:41 2006// +/pf61.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf62.in/1.1/Sun Apr 13 23:49:12 2003// +/pf62.ok/1.2/Tue Apr 15 10:57:28 2003// +/pf63.in/1.2/Fri Apr 30 11:37:48 2004// +/pf63.ok/1.3/Fri Apr 30 11:37:48 2004// +/pf64.in/1.3/Fri Apr 30 11:37:49 2004// +/pf64.ok/1.3/Fri Apr 30 11:37:49 2004// +/pf65.in/1.1/Thu May 1 16:18:10 2003// +/pf65.loaded/1.3/Tue Jul 29 20:28:34 2003// +/pf65.ok/1.2/Tue Jul 29 20:28:34 2003// +/pf65.optimized/1.1/Fri Oct 1 23:19:18 2004// +/pf66.in/1.2/Wed Sep 2 17:25:46 2009// +/pf66.loaded/1.3/Tue Oct 6 14:11:07 2009// +/pf66.ok/1.2/Wed Sep 23 14:08:33 2009// +/pf66.optimized/1.2/Tue Oct 6 14:11:07 2009// +/pf67.in/1.2/Fri Dec 5 16:55:40 2003// +/pf67.loaded/1.5/Fri Oct 6 17:09:41 2006// +/pf67.ok/1.4/Fri Oct 6 17:09:41 2006// +/pf67.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf68.in/1.4/Mon Apr 6 12:41:48 2009// +/pf68.loaded/1.8/Tue Jun 30 03:42:11 2009// +/pf68.ok/1.6/Tue Jun 30 03:42:11 2009// +/pf68.optimized/1.3/Tue Jun 30 03:42:11 2009// +/pf69.in/1.2/Wed Sep 2 17:25:46 2009// +/pf69.loaded/1.5/Tue Oct 6 14:11:07 2009// +/pf69.ok/1.4/Wed Sep 23 14:08:33 2009// +/pf69.optimized/1.3/Tue Oct 6 14:11:07 2009// +/pf7.in/1.5/Wed Feb 4 18:37:56 2004// +/pf7.loaded/1.9/Fri Oct 6 17:09:41 2006// +/pf7.ok/1.14/Fri Oct 6 17:09:41 2006// +/pf7.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf73.in/1.3/Mon Apr 6 12:41:48 2009// +/pf73.loaded/1.7/Tue Jun 30 03:42:11 2009// +/pf73.ok/1.5/Tue Jun 30 03:42:11 2009// +/pf73.optimized/1.3/Tue Jun 30 03:42:11 2009// +/pf74.in/1.1/Sat May 17 01:55:09 2003// +/pf74.loaded/1.4/Fri Oct 6 17:09:41 2006// +/pf74.ok/1.3/Fri Oct 6 17:09:41 2006// +/pf74.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf75.in/1.1/Sat May 17 02:07:07 2003// +/pf75.loaded/1.3/Tue Jul 29 20:28:34 2003// +/pf75.ok/1.2/Tue Jul 29 20:28:34 2003// +/pf75.optimized/1.1/Fri Oct 1 23:19:18 2004// +/pf76.in/1.2/Tue Oct 6 14:11:07 2009// +/pf76.loaded/1.2/Tue Oct 6 14:11:07 2009// +/pf76.ok/1.2/Tue Oct 6 14:11:07 2009// +/pf76.optimized/1.2/Tue Oct 6 14:11:07 2009// +/pf77.in/1.2/Thu Jun 12 09:47:24 2003// +/pf77.loaded/1.4/Fri Oct 6 17:09:41 2006// +/pf77.ok/1.3/Fri Oct 6 17:09:41 2006// +/pf77.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf78.in/1.1/Wed Jun 18 11:09:22 2003// +/pf78.loaded/1.3/Fri Oct 6 17:09:41 2006// +/pf78.ok/1.3/Fri Oct 6 17:09:41 2006// +/pf78.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf79.in/1.1/Wed Jun 18 11:38:56 2003// +/pf79.loaded/1.4/Fri Oct 6 17:09:41 2006// +/pf79.ok/1.4/Fri Oct 6 17:09:41 2006// +/pf79.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf8.in/1.5/Fri Dec 5 16:55:40 2003// +/pf8.loaded/1.7/Fri Dec 5 16:55:40 2003// +/pf8.ok/1.14/Fri Dec 5 16:55:40 2003// +/pf8.optimized/1.1/Fri Oct 1 23:19:18 2004// +/pf80.in/1.5/Tue Oct 6 14:11:07 2009// +/pf80.loaded/1.5/Tue Oct 6 14:11:07 2009// +/pf80.ok/1.7/Tue Oct 6 14:11:07 2009// +/pf80.optimized/1.5/Tue Oct 6 14:11:07 2009// +/pf81.in/1.1/Sat Jul 19 14:18:09 2003// +/pf81.loaded/1.6/Fri Oct 6 17:09:41 2006// +/pf81.ok/1.3/Fri Oct 6 17:09:41 2006// +/pf81.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf82.in/1.3/Tue Jul 29 00:53:41 2003// +/pf82.loaded/1.7/Fri Oct 6 17:09:41 2006// +/pf82.ok/1.4/Fri Oct 6 17:09:41 2006// +/pf82.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf83.in/1.2/Fri Dec 5 16:55:40 2003// +/pf83.ok/1.1/Thu Nov 6 15:22:16 2003// +/pf84.in/1.3/Wed Sep 2 17:25:46 2009// +/pf85.in/1.1/Tue Feb 3 19:39:45 2004// +/pf85.ok/1.2/Fri Oct 6 17:09:41 2006// +/pf86.in/1.1/Wed Feb 4 18:30:32 2004// +/pf86.ok/1.1/Wed Feb 4 18:30:32 2004// +/pf87.in/1.1/Tue Oct 5 18:33:44 2004// +/pf87.loaded/1.2/Fri Oct 6 17:09:41 2006// +/pf87.ok/1.2/Fri Oct 6 17:09:41 2006// +/pf87.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf88.in/1.1/Tue Oct 5 18:33:44 2004// +/pf88.loaded/1.2/Fri Oct 6 17:09:41 2006// +/pf88.ok/1.2/Fri Oct 6 17:09:41 2006// +/pf88.optimized/1.2/Fri Oct 6 17:09:41 2006// +/pf89.in/1.1/Tue Dec 7 21:32:00 2004// +/pf89.loaded/1.1/Tue Dec 7 21:32:00 2004// +/pf89.ok/1.1/Tue Dec 7 21:32:00 2004// +/pf89.optimized/1.1/Tue Dec 7 21:32:00 2004// +/pf9.in/1.3/Fri Dec 5 16:55:40 2003// +/pf9.loaded/1.7/Fri Dec 5 16:55:40 2003// +/pf9.ok/1.9/Fri Dec 5 16:55:40 2003// +/pf9.optimized/1.1/Fri Oct 1 23:19:18 2004// +/pf90.in/1.1/Wed Oct 25 14:30:46 2006// +/pf90.loaded/1.1/Wed Oct 25 14:30:46 2006// +/pf90.ok/1.1/Wed Oct 25 14:30:46 2006// +/pf90.optimized/1.1/Wed Oct 25 14:30:46 2006// +/pf91.in/1.2/Fri Feb 1 07:21:14 2008// +/pf91.loaded/1.2/Fri Feb 1 07:21:14 2008// +/pf91.ok/1.2/Fri Feb 1 07:21:14 2008// +/pf91.optimized/1.2/Fri Feb 1 07:21:14 2008// +/pf92.in/1.2/Mon Apr 21 01:51:10 2008// +/pf92.loaded/1.1/Tue Nov 7 01:14:17 2006// +/pf92.ok/1.1/Tue Nov 7 01:14:17 2006// +/pf92.optimized/1.1/Tue Nov 7 01:14:17 2006// +/pf93.in/1.1/Tue Nov 28 17:03:03 2006// +/pf93.ok/1.1/Tue Nov 28 17:03:03 2006// +/pf94.in/1.1/Thu Aug 30 12:24:28 2007// +/pf94.ok/1.1/Thu Aug 30 12:24:28 2007// +/pf95.in/1.2/Sun Oct 14 21:52:14 2007// +/pf95.include/1.1/Sun Oct 14 21:52:14 2007// +/pf95.ok/1.2/Sun Oct 14 21:52:14 2007// +/pf96.in/1.1/Thu May 8 00:44:57 2008// +/pf96.ok/1.1/Thu May 8 00:44:57 2008// +/pf97.in/1.2/Fri May 9 05:41:02 2008// +/pf97.ok/1.2/Fri May 9 05:41:02 2008// +/pf98.in/1.2/Wed Sep 23 14:08:33 2009// +/pf98.ok/1.2/Wed Sep 23 14:08:33 2009// +/pfail1.in/1.1/Thu Jul 26 14:33:45 2001// +/pfail1.ok/1.6/Sat Oct 28 14:30:05 2006// +/pfail11.in/1.2/Thu May 14 22:57:18 2009// +/pfail11.ok/1.9/Thu May 14 22:57:18 2009// +/pfail12.in/1.4/Thu Sep 3 12:23:17 2009// +/pfail12.ok/1.5/Thu Sep 3 12:23:17 2009// +/pfail13.in/1.1/Tue Jul 30 15:01:41 2002// +/pfail13.ok/1.3/Mon Aug 4 12:18:37 2003// +/pfail14.in/1.1/Sun Sep 15 17:41:43 2002// +/pfail14.ok/1.4/Wed Dec 31 11:55:04 2003// +/pfail15.in/1.1/Sun Sep 22 15:19:09 2002// +/pfail15.ok/1.3/Mon Aug 4 12:18:37 2003// +/pfail16.in/1.3/Wed Feb 19 19:17:35 2003// +/pfail16.ok/1.3/Mon Aug 4 12:18:37 2003// +/pfail17.in/1.1/Wed Feb 19 23:19:10 2003// +/pfail17.ok/1.3/Mon Aug 4 12:18:37 2003// +/pfail18.in/1.2/Fri Feb 21 10:36:15 2003// +/pfail18.ok/1.7/Wed Aug 20 13:05:27 2003// +/pfail19.in/1.5/Mon Sep 7 12:21:09 2009// +/pfail2.in/1.2/Wed Feb 19 22:55:33 2003// +/pfail2.ok/1.4/Mon Aug 4 12:18:37 2003// +/pfail20.in/1.3/Wed Sep 2 17:25:46 2009// +/pfail20.ok/1.5/Sat Oct 28 14:30:05 2006// +/pfail23.in/1.4/Wed Sep 23 14:08:33 2009// +/pfail25.in/1.2/Mon Apr 6 12:41:48 2009// +/pfail25.ok/1.6/Mon Apr 6 12:41:48 2009// +/pfail27.in/1.3/Thu Sep 24 12:05:37 2009// +/pfail27.ok/1.5/Thu Sep 24 12:05:37 2009// +/pfail29.in/1.2/Sun Nov 25 15:35:09 2007// +/pfail29.ok/1.3/Mon Aug 4 12:18:37 2003// +/pfail3.in/1.1/Sat Sep 15 23:25:23 2001// +/pfail3.ok/1.4/Mon Aug 4 12:18:37 2003// +/pfail30.in/1.3/Thu Sep 24 12:05:37 2009// +/pfail31.in/1.5/Wed Mar 12 15:47:28 2003// +/pfail31.ok/1.8/Wed Aug 20 13:05:27 2003// +/pfail32.in/1.2/Wed Mar 12 15:50:30 2003// +/pfail32.ok/1.8/Wed Dec 31 11:55:04 2003// +/pfail33.in/1.1/Thu Mar 27 16:13:15 2003// +/pfail33.ok/1.5/Wed Dec 31 11:55:04 2003// +/pfail34.in/1.1/Thu Mar 27 16:13:15 2003// +/pfail34.ok/1.5/Wed Dec 31 11:55:04 2003// +/pfail35.in/1.2/Sun Apr 13 23:41:33 2003// +/pfail35.ok/1.3/Wed Aug 6 09:51:00 2003// +/pfail36.in/1.1/Sun Apr 13 23:40:52 2003// +/pfail36.ok/1.3/Wed Aug 6 09:51:00 2003// +/pfail37.in/1.2/Wed Oct 25 14:15:24 2006// +/pfail37.ok/1.3/Wed Oct 25 14:15:24 2006// +/pfail38.in/1.3/Thu Sep 24 12:05:37 2009// +/pfail38.ok/1.4/Thu Sep 24 12:05:37 2009// +/pfail39.in/1.3/Wed Sep 23 14:08:33 2009// +/pfail39.ok/1.3/Wed Oct 25 14:15:24 2006// +/pfail4.in/1.2/Mon Oct 7 13:28:19 2002// +/pfail4.ok/1.3/Mon Aug 4 12:18:37 2003// +/pfail40.in/1.1/Mon May 19 18:21:28 2003// +/pfail40.ok/1.3/Fri Oct 1 04:33:27 2004// +/pfail41.in/1.2/Wed Sep 2 17:25:46 2009// +/pfail41.ok/1.2/Mon Aug 4 12:18:37 2003// +/pfail42.in/1.1/Mon May 19 20:25:45 2003// +/pfail42.ok/1.2/Mon Aug 4 12:18:37 2003// +/pfail43.in/1.1/Fri Jul 11 09:21:00 2003// +/pfail43.ok/1.2/Mon Aug 4 12:18:37 2003// +/pfail44.in/1.1/Wed Aug 20 13:04:50 2003// +/pfail44.ok/1.3/Sat Oct 28 14:30:05 2006// +/pfail45.in/1.1/Wed Aug 20 13:04:50 2003// +/pfail45.ok/1.1/Wed Aug 20 13:04:50 2003// +/pfail46.in/1.1/Wed Aug 20 16:33:08 2003// +/pfail46.ok/1.2/Sun Aug 24 13:04:45 2003// +/pfail47.in/1.1/Tue Dec 16 00:30:16 2003// +/pfail47.ok/1.1/Tue Dec 16 00:30:16 2003// +/pfail48.in/1.1/Tue Feb 24 21:09:06 2004// +/pfail48.ok/1.1/Tue Feb 24 21:09:06 2004// +/pfail49.in/1.3/Wed Sep 2 17:25:46 2009// +/pfail49.ok/1.2/Sat Oct 28 14:30:05 2006// +/pfail5.in/1.1/Sat Sep 15 23:25:23 2001// +/pfail5.ok/1.4/Mon Aug 4 12:18:37 2003// +/pfail50.in/1.1/Fri Apr 22 11:08:32 2005// +/pfail50.ok/1.3/Sat Oct 28 14:30:05 2006// +/pfail52.in/1.1/Sat May 28 19:45:49 2005// +/pfail52.ok/1.1/Sat May 28 19:45:49 2005// +/pfail53.in/1.2/Thu May 8 00:44:57 2008// +/pfail53.ok/1.2/Thu May 8 00:44:57 2008// +/pfail6.in/1.2/Tue Dec 31 00:49:32 2002// +/pfail6.ok/1.3/Mon Aug 4 12:18:37 2003// +/pfail7.in/1.1/Sat Sep 15 23:25:23 2001// +/pfail7.ok/1.3/Mon Aug 4 12:18:37 2003// +/pfail8.in/1.4/Thu Sep 3 12:23:17 2009// +/pfaltq1.in/1.3/Fri Dec 5 16:55:40 2003// +/pfaltq1.ok/1.9/Wed Sep 19 12:52:48 2007// +/pfaltq10.in/1.2/Fri Dec 5 16:55:40 2003// +/pfaltq10.ok/1.9/Wed Sep 19 12:52:48 2007// +/pfaltq11.in/1.3/Mon May 3 12:56:02 2004// +/pfaltq11.ok/1.10/Wed Sep 19 12:52:48 2007// +/pfaltq12.in/1.2/Mon May 3 12:56:02 2004// +/pfaltq12.ok/1.9/Wed Sep 19 12:52:48 2007// +/pfaltq13.in/1.2/Mon May 3 12:56:02 2004// +/pfaltq13.ok/1.8/Wed Sep 19 12:52:48 2007// +/pfaltq14.in/1.1/Mon Apr 14 16:52:25 2003// +/pfaltq14.ok/1.6/Wed Sep 19 12:52:48 2007// +/pfaltq2.in/1.3/Fri Dec 5 16:55:40 2003// +/pfaltq2.ok/1.8/Wed Sep 19 12:52:48 2007// +/pfaltq3.in/1.4/Mon May 3 12:56:02 2004// +/pfaltq3.ok/1.10/Wed Sep 19 12:52:48 2007// +/pfaltq4.in/1.3/Fri Dec 5 16:55:40 2003// +/pfaltq4.ok/1.8/Wed Sep 19 12:52:48 2007// +/pfaltq5.in/1.1/Tue Mar 11 15:07:19 2003// +/pfaltq5.ok/1.10/Wed Sep 19 12:52:48 2007// +/pfaltq6.in/1.2/Mon May 3 12:56:02 2004// +/pfaltq6.ok/1.10/Wed Sep 19 12:52:48 2007// +/pfaltq7.in/1.2/Fri Dec 5 16:55:40 2003// +/pfaltq7.ok/1.8/Wed Sep 19 12:52:48 2007// +/pfaltq8.in/1.3/Sun Mar 7 20:16:01 2004// +/pfaltq8.ok/1.8/Wed Sep 19 12:52:48 2007// +/pfaltq9.in/1.3/Sun Mar 7 20:16:01 2004// +/pfaltq9.ok/1.8/Wed Sep 19 12:52:48 2007// +/pfchksum1.in/1.2/Wed Sep 19 20:57:44 2007// +/pfchksum1.ok/1.1/Sat May 28 00:52:41 2005// +/pfchksum2.in/1.2/Wed Sep 19 20:57:44 2007// +/pfchksum2.ok/1.1/Sat May 28 00:52:41 2005// +/pfchksum3.in/1.2/Wed Sep 19 20:57:44 2007// +/pfchksum3.ok/1.1/Sat May 28 00:52:41 2005// +/pfi1.in/1.1/Tue Jan 6 12:34:05 2004// +/pfi1.ok/1.1/Tue Jan 6 12:34:05 2004// +/pfi2.in/1.1/Tue Jan 6 12:34:05 2004// +/pfi2.ok/1.1/Tue Jan 6 12:34:05 2004// +/pfi3.in/1.1/Tue Jan 6 12:34:05 2004// +/pfi3.ok/1.1/Tue Jan 6 12:34:05 2004// +/pfopt1.in/1.1/Fri Feb 14 10:59:20 2003// +/pfopt1.ok/1.2/Tue Jul 29 20:28:34 2003// +/pfopt1.opts/1.1/Fri Feb 14 10:59:20 2003// +/pfopt2.ok/1.1/Tue Feb 18 19:11:57 2003// +/pfopt6.in/1.1/Tue Nov 7 05:31:26 2006// +/pfopt6.ok/1.1/Tue Nov 7 05:31:26 2006// +/pfopt6.opts/1.1/Tue Nov 7 05:31:26 2006// +/pfr.addrs1/1.2/Wed Dec 31 11:55:04 2003// +/pfr.addrs2/1.1/Tue Feb 25 09:06:32 2003// +/pfr.exec/1.15/Sun Oct 19 16:16:03 2008// +/pfr1.in/1.2/Wed Jan 15 17:08:16 2003// +/pfr1.ok/1.12/Sun Oct 19 16:18:52 2008// +/pfr10.in/1.1/Wed Jan 15 17:08:16 2003// +/pfr10.ok/1.8/Sun Oct 19 16:18:52 2008// +/pfr11.in/1.1/Wed Jan 15 17:08:16 2003// +/pfr11.ok/1.8/Sun Oct 19 16:18:52 2008// +/pfr12.in/1.3/Wed Sep 19 12:54:52 2007// +/pfr12.ok/1.8/Wed Sep 19 12:54:52 2007// +/pfr13.in/1.2/Sun Mar 7 20:50:49 2004// +/pfr13.ok/1.3/Sun Mar 7 20:50:49 2004// +/pfr2.in/1.2/Wed Jan 15 17:08:16 2003// +/pfr2.ok/1.12/Sun Oct 19 16:18:52 2008// +/pfr3.in/1.2/Sun Mar 7 20:50:49 2004// +/pfr3.ok/1.8/Sun Mar 7 20:50:49 2004// +/pfr4.in/1.1/Tue Jan 14 14:43:31 2003// +/pfr4.ok/1.7/Sun Jun 8 10:39:02 2003// +/pfr5.in/1.1/Tue Jan 14 14:43:31 2003// +/pfr5.ok/1.7/Sun Jun 8 10:39:02 2003// +/pfr6.in/1.2/Sun Mar 7 20:50:49 2004// +/pfr6.ok/1.8/Sun Mar 7 20:50:49 2004// +/pfr7.in/1.2/Tue Jan 14 21:59:20 2003// +/pfr7.ok/1.7/Sun Jun 8 10:39:02 2003// +/pfr8.in/1.1/Tue Jan 14 14:43:31 2003// +/pfr8.ok/1.8/Sun Jun 8 10:39:02 2003// +/pfr9.in/1.1/Tue Jan 14 14:43:31 2003// +/pfr9.ok/1.6/Sun Jun 8 10:39:02 2003// +/pfsetup1.clean/1.3/Fri Dec 5 16:55:40 2003// +/pfsetup1.in/1.2/Fri Dec 5 16:55:40 2003// +/pfsetup1.ok/1.4/Wed Sep 19 12:53:48 2007// +/pfsetup1.setup/1.2/Fri Dec 5 16:55:40 2003// +/pfsetup2.clean/1.3/Fri Dec 5 16:55:40 2003// +/pfsetup2.in/1.2/Fri Dec 5 16:55:40 2003// +/pfsetup2.ok/1.4/Fri Dec 5 16:55:40 2003// +/pfsetup2.setup/1.3/Fri Dec 5 16:55:40 2003// +/pfsetup3.clean/1.3/Fri Dec 5 16:55:40 2003// +/pfsetup3.in/1.2/Fri Dec 5 16:55:40 2003// +/pfsetup3.ok/1.6/Sun Mar 7 20:50:49 2004// +/pfsetup3.setup/1.3/Fri May 27 19:00:10 2005// +/pfsetup4.clean/1.2/Fri Dec 5 16:55:40 2003// +/pfsetup4.in/1.2/Fri Dec 5 16:55:40 2003// +/pfsetup4.ok/1.3/Fri Dec 5 16:55:40 2003// +/pfsetup4.setup/1.2/Fri Dec 5 16:55:40 2003// +/pfsimple1.in/1.1/Wed Sep 18 08:57:09 2002// +/pfsimple2.in/1.4/Tue Feb 3 19:34:20 2004// +/pf13.loaded/1.11/Sat Feb 6 00:59:49 2010// +/pf13.ok/1.14/Sat Feb 6 00:59:49 2010// +/pf13.optimized/1.4/Sat Feb 6 00:59:49 2010// +/pf17.loaded/1.15/Sat Feb 6 00:59:49 2010// +/pf17.ok/1.10/Sat Feb 6 00:59:49 2010// +/pf17.optimized/1.3/Sat Feb 6 00:59:49 2010// +/pf18.loaded/1.10/Sat Feb 6 00:59:49 2010// +/pf18.optimized/1.3/Sat Feb 6 00:59:49 2010// +/pf27.loaded/1.7/Sat Feb 6 00:59:49 2010// +/pf27.optimized/1.2/Sat Feb 6 00:59:49 2010// +/pf36.loaded/1.6/Sat Feb 6 00:59:49 2010// +/pf36.ok/1.5/Sat Feb 6 00:59:49 2010// +/pf36.optimized/1.2/Sat Feb 6 00:59:49 2010// +/pf41.in/1.4/Sat Feb 6 00:59:49 2010// +/pf41.ok/1.8/Sat Feb 6 00:59:49 2010// +/pf46.in/1.4/Sat Feb 6 00:59:49 2010// +/pf46.loaded/1.8/Sat Feb 6 00:59:49 2010// +/pf46.ok/1.6/Sat Feb 6 00:59:49 2010// +/pf46.optimized/1.4/Sat Feb 6 00:59:49 2010// +/pf70.in/1.2/Sat Feb 6 00:59:49 2010// +/pf70.loaded/1.4/Sat Feb 6 00:59:49 2010// +/pf70.ok/1.3/Sat Feb 6 00:59:49 2010// +/pf70.optimized/1.2/Sat Feb 6 00:59:49 2010// +/pf71.in/1.2/Sat Feb 6 00:59:49 2010// +/pf71.loaded/1.4/Sat Feb 6 00:59:49 2010// +/pf71.ok/1.3/Sat Feb 6 00:59:49 2010// +/pf71.optimized/1.2/Sat Feb 6 00:59:49 2010// +/pf72.in/1.2/Sat Feb 6 00:59:49 2010// +/pf72.loaded/1.4/Sat Feb 6 00:59:49 2010// +/pf72.ok/1.3/Sat Feb 6 00:59:49 2010// +/pf72.optimized/1.2/Sat Feb 6 00:59:49 2010// +/pf84.loaded/1.5/Sat Feb 6 00:59:49 2010// +/pf84.ok/1.5/Sat Feb 6 00:59:49 2010// +/pf84.optimized/1.4/Sat Feb 6 00:59:49 2010// +/pfail19.ok/1.10/Sat Feb 6 00:59:49 2010// +/pfail23.ok/1.4/Sat Feb 6 00:59:49 2010// +/pfail30.ok/1.8/Sat Feb 6 00:59:49 2010// +/pfail8.ok/1.4/Sat Feb 6 00:59:49 2010// +/pfopt2.in/1.7/Mon Apr 5 23:11:49 2010// +/pfopt2.opts/1.2/Mon Apr 5 23:11:49 2010// +/pfopt3.in/1.7/Mon Apr 5 23:11:49 2010// +/pfopt3.ok/1.4/Mon Apr 5 23:11:49 2010// +/pfopt3.opts/1.2/Mon Apr 5 23:11:49 2010// +/Makefile/1.211/Sun Jun 27 18:30:03 2010// +D diff --git a/src/regress/sbin/pfctl/CVS/Repository b/src/regress/sbin/pfctl/CVS/Repository new file mode 100644 index 000000000..6ec967b27 --- /dev/null +++ b/src/regress/sbin/pfctl/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/pfctl diff --git a/src/regress/sbin/pfctl/CVS/Root b/src/regress/sbin/pfctl/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/pfctl/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/pfctl/Makefile b/src/regress/sbin/pfctl/Makefile new file mode 100644 index 000000000..c64fd9b32 --- /dev/null +++ b/src/regress/sbin/pfctl/Makefile @@ -0,0 +1,314 @@ +# $OpenBSD: Makefile,v 1.211 2010/06/20 20:35:06 phessler Exp $ + +# TARGETS +# pf: feed pfNN.in through pfctl and check whether the output matches pfNN.ok +# selfpf: feed pfctl output through pfctl again and verify it stays the same +# pfail: invalid rulesets pfctl must reject; pfailNN.in and pfailNN.ok +# pfsetup: set up lo1 and perform more tests +# pfr: table tests +# pfsimple: just check whether pfctl accepts a given ruleset, not checking output +# pfload: load ruleset into anchor regress and verify pfctl -vvsr +# pfoptimize: as pfload, with -o flag to pfctl +# pfopt: as target pf, but supply extra command line options + +PFTESTS=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 +PFTESTS+=28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 +PFTESTS+=51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 +PFTESTS+=74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 +PFTESTS+=97 98 +PFFAIL=1 2 3 4 5 6 7 8 11 12 13 14 15 16 17 18 19 20 23 25 27 +PFFAIL+=29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 +PFSIMPLE=1 2 +PFSETUP=1 2 3 4 +PFLOAD=1 2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20 23 24 25 26 27 28 29 +PFLOAD+=30 31 32 34 36 38 39 40 44 46 47 48 49 54 56 60 61 65 66 67 68 69 70 71 +PFLOAD+=72 73 74 75 76 77 78 79 80 81 82 84 87 88 89 90 91 92 +PFALTQ=1 2 3 4 5 6 7 8 9 10 11 12 13 14 +# disabled; no altq in anchors +# PFLOAD+=33 35 37 42 43 45 51 58 59 62 63 64 +# only testing parser, load test would be useless +# PFLOAD+=6 22 41 50 52 53 55 57 83 85 86 +PFTABLE=1 2 3 4 5 6 7 8 9 10 11 12 13 +PFOPT=1 2 3 6 +PFIF2IP=1 2 3 +PFCHKSUM=1 2 3 + +SHELL=/bin/sh + +.MAIN: all + +.ifmake !obj && !clean && !cleandir && !depend && !regress +.if (${.TARGET} != all && ! make(all)) || (${.TARGET} == all) +.BEGIN: + -${SUDO} ifconfig lo1000000 create + -${SUDO} ifconfig tun1000000 create + -${SUDO} ifconfig tun1000001 create + +.END: + -${SUDO} ifconfig lo1000000 destroy + -${SUDO} ifconfig tun1000000 destroy + -${SUDO} ifconfig tun1000001 destroy + +.INTERRUPT: + -${SUDO} ifconfig lo1000000 destroy + -${SUDO} ifconfig lo1000010 destroy + -${SUDO} ifconfig tun1000000 destroy + -${SUDO} ifconfig tun1000001 destroy +.endif +.endif + +.for n in ${PFFAIL} +PFAIL_TARGETS+=pfail${n} +PFAIL_UPDATES+=pfail${n}-update + +pfail${n}: + pfctl -o none -nv -f - < ${.CURDIR}/pfail${n}.in 2>&1 | \ + diff -u ${.CURDIR}/pfail${n}.ok /dev/stdin + +pfail${n}-update: + if pfctl -o none -nv -f - < ${.CURDIR}/pfail${n}.in > \ + ${.CURDIR}/pfail${n}.ok 2>&1; then \ + true; \ + fi; + +.endfor + +pfail: ${PFAIL_TARGETS} +pfail-update: ${PFAIL_UPDATES} +REGRESS_TARGETS+=pfail +UPDATE_TARGETS+=pfail-update + +.for n in ${PFTESTS} +PF_TARGETS+=pf${n} +PF_UPDATES+=pf${n}-update + +pf${n}: + pfctl -o none -nv -f - < ${.CURDIR}/pf${n}.in | \ + diff -u ${.CURDIR}/pf${n}.ok /dev/stdin + +pf${n}-update: + pfctl -o none -nv -f - < ${.CURDIR}/pf${n}.in > ${.CURDIR}/pf${n}.ok + +SELFPF_TARGETS+=selfpf${n} +selfpf${n}: + pfctl -o none -nv -f - < ${.CURDIR}/pf${n}.ok | \ + diff -u ${.CURDIR}/pf${n}.ok /dev/stdin + +.endfor + +pf: ${PF_TARGETS} +selfpf: ${SELFPF_TARGETS} +pf-update: ${PF_UPDATES} +REGRESS_TARGETS+=pf-include-setup pf +REGRESS_TARGETS+=selfpf +UPDATE_TARGETS+=pf-update + +pf-include-setup: + cp ${.CURDIR}/pf95.include ${.OBJDIR} + chmod og-rwx ${.OBJDIR}/pf95.include + +.for n in ${PFSIMPLE} +PFSIMPLE_TARGETS+=pfsimple${n} + +pfsimple${n}: + pfctl -o none -nf - < ${.CURDIR}/pfsimple${n}.in + +.endfor + +pfsimple: ${PFSIMPLE_TARGETS} +REGRESS_TARGETS+=pfsimple + +.for n in ${PFLOAD} +PFLOAD_TARGETS+=pfload${n} +PFLOAD_UPDATES+=pfload${n}-update + +pfload${n}: + ${SUDO} pfctl -o none -a regress -f - < ${.CURDIR}/pf${n}.in + (${SUDO} pfctl -o none -a 'regress/*' -gvvsr | \ + sed -e 's/__automatic_[0-9a-f]*_/__automatic_/g' ) | \ + diff -u ${.CURDIR}/pf${n}.loaded /dev/stdin + ${SUDO} pfctl -o none -a regress -Fr >/dev/null 2>&1 + +pfload${n}-update: + ${SUDO} pfctl -o none -a regress -f - < ${.CURDIR}/pf${n}.in + (${SUDO} pfctl -o none -a 'regress/*' -gvvsr | \ + sed -e 's/__automatic_[0-9a-f]*_/__automatic_/g' ) \ + > ${.CURDIR}/pf${n}.loaded + ${SUDO} pfctl -o none -a regress -Fr >/dev/null 2>&1 + +.endfor + +pfload: ${PFLOAD_TARGETS} +pfload-update: ${PFLOAD_UPDATES} +REGRESS_TARGETS+=pfload +REGRESS_ROOT_TARGETS+=pfload +UPDATE_TARGETS+=pfload-update + +.for n in ${PFLOAD} +PFOPTIMIZE_TARGETS+=pfoptimize${n} +PFOPTIMIZE_UPDATES+=pfoptimize${n}-update + +pfoptimize${n}: + ${SUDO} pfctl -obasic -a regress -f - < ${.CURDIR}/pf${n}.in + (${SUDO} pfctl -o none -a regress -gvvsr | \ + sed -e 's/__automatic_[0-9a-f]*_/__automatic_/g') | \ + diff -u ${.CURDIR}/pf${n}.optimized /dev/stdin + ${SUDO} pfctl -o none -a regress -Fr >/dev/null 2>&1 + +pfoptimize${n}-update: + ${SUDO} pfctl -obasic -a regress -f - < ${.CURDIR}/pf${n}.in + (${SUDO} pfctl -o none -a regress -gvvsr | \ + sed -e 's/__automatic_[0-9a-f]*_/__automatic_/g' ) \ + > ${.CURDIR}/pf${n}.optimized + ${SUDO} pfctl -o none -a regress -Fr >/dev/null 2>&1 + +.endfor + +pfoptimize: ${PFOPTIMIZE_TARGETS} +pfoptimize-update: ${PFOPTIMIZE_UPDATES} +REGRESS_TARGETS+=pfoptimize +REGRESS_ROOT_TARGETS+=pfoptimize +UPDATE_TARGETS+=pfoptimize-update + +.for n in ${PFTABLE} +PFR_TARGETS+=pfr${n} +PFR_UPDATES+=pfr${n}-update + +pfr${n}: + ${SUDO} /bin/ksh ${.CURDIR}/pfr.exec ${.CURDIR}/pfr${n}.in | \ + diff -u ${.CURDIR}/pfr${n}.ok /dev/stdin + +pfr${n}-update: + ${SUDO} /bin/ksh ${.CURDIR}/pfr.exec ${.CURDIR}/pfr${n}.in > \ + ${.CURDIR}/pfr${n}.ok + +.endfor + +pfr: ${PFR_TARGETS} +pfr-update: ${PFR_UPDATES} +NODEFAULT_TARGETS+=pfr +REGRESS_ROOT_TARGETS+=pfr + +.for n in ${PFIF2IP} +PFI_TARGETS+=pfi${n} +PFI_UPDATES+=pfi${n}-update + +pfi${n}: + xargs ${SUDO} /bin/ksh ${.CURDIR}/if2ip <${.CURDIR}/pfi${n}.in | \ + diff -u ${.CURDIR}/pfi${n}.ok /dev/stdin + +pfi${n}-update: + xargs ${SUDO} /bin/ksh ${.CURDIR}/if2ip <${.CURDIR}/pfi${n}.in \ + > ${.CURDIR}/pfi${n}.ok + +.endfor + +pfi: ${PFI_TARGETS} +pfi-update: ${PFI_UPDATES} +REGRESS_TARGETS+=pfi +REGRESS_ROOT_TARGETS+=pfi +UPDATE_TARGETS+=pfi-update + +.for n in ${PFOPT} +PFOPT_TARGETS+=pfopt${n} +PFOPT_UPDATES+=pfopt${n}-update + +pfopt${n}: + pfctl -o none -nv -f - `cat ${.CURDIR}/pfopt${n}.opts` \ + < ${.CURDIR}/pfopt${n}.in | \ + diff -u ${.CURDIR}/pfopt${n}.ok /dev/stdin + +pfopt${n}-update: + pfctl -o none -nv -f - `cat ${.CURDIR}/pfopt${n}.opts` \ + < ${.CURDIR}/pfopt${n}.in > ${.CURDIR}/pfopt${n}.ok + +.endfor + +pfopt: ${PFOPT_TARGETS} +pfopt-update: ${PFOPT_UPDATES} +REGRESS_TARGETS+=pfopt +UPDATE_TARGETS+=pfopt-update + +.for n in ${PFSETUP} +PFSETUP_TARGETS+=pfsetup${n} +PFSETUP_UPDATES+=pfsetup${n}-update + +pfsetup${n}: + ${SUDO} ${SHELL} ${.CURDIR}/pfsetup${n}.setup + pfctl -o none -nv -f - < ${.CURDIR}/pfsetup${n}.in | \ + diff -u ${.CURDIR}/pfsetup${n}.ok /dev/stdin + ${SUDO} ${SHELL} ${.CURDIR}/pfsetup${n}.clean + +pfsetup${n}-update: + ${SUDO} ${SHELL} ${.CURDIR}/pfsetup${n}.setup + pfctl -o none -nv -f - < ${.CURDIR}/pfsetup${n}.in \ + > ${.CURDIR}/pfsetup${n}.ok + ${SUDO} ${SHELL} ${.CURDIR}/pfsetup${n}.clean + +.endfor + +pfsetup: ${PFSETUP_TARGETS} +pfsetup-update: ${PFSETUP_UPDATES} + +NODEFAULT_TARGETS+=pfsetup +REGRESS_ROOT_TARGETS+=pfsetup + +.for n in ${PFALTQ} +PFALTQ_TARGETS+=pfaltq${n} +PFALTQ_UPDATES+=pfaltq${n}-update + +pfaltq${n}: + ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 + ${SUDO} pfctl -o none -f - < ${.CURDIR}/pfaltq${n}.in + ( ${SUDO} pfctl -o none -gsq; \ + ${SUDO} pfctl -o none -gsr ) | \ + diff -u ${.CURDIR}/pfaltq${n}.ok /dev/stdin + ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 + +pfaltq${n}-update: + ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 + ${SUDO} pfctl -o none -f - < ${.CURDIR}/pfaltq${n}.in + ( ${SUDO} pfctl -o none -gsq; \ + ${SUDO} pfctl -o none -gsr ) > ${.CURDIR}/pfaltq${n}.ok + ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 + +.endfor + +pfaltq: ${PFALTQ_TARGETS} +pfaltq-update: ${PFALTQ_UPDATES} + +NODEFAULT_TARGETS+=pfaltq +REGRESS_ROOT_TARGETS+=pfaltq + +.for n in ${PFCHKSUM} +PFCHKSUM_TARGETS+=pfchksum${n} +PFCHKSUM_UPDATES+=pfchksum${n}-update + +pfchksum${n}: + ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 + ${SUDO} pfctl -o none -f - < ${.CURDIR}/pfchksum${n}.in + ${SUDO} pfctl -o none -vsi | grep '^Checksum:' | \ + diff -u ${.CURDIR}/pfchksum${n}.ok /dev/stdin + ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 + +pfchksum${n}-update: + ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 + ${SUDO} pfctl -o none -f - < ${.CURDIR}/pfchksum${n}.in + ${SUDO} pfctl -o none -vsi | grep '^Checksum:' > ${.CURDIR}/pfchksum${n}.ok + ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 + +.endfor + +pfchksum: ${PFCHKSUM_TARGETS} +pfchksum-update: ${PFCHKSUM_UPDATES} + +NODEFAULT_TARGETS+=pfchksum +REGRESS_ROOT_TARGETS+=pfchksum + +update: ${UPDATE_TARGETS} + +alltests: ${REGRESS_TARGETS} ${NODEFAULT_TARGETS} + +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/sbin/pfctl/if2ip b/src/regress/sbin/pfctl/if2ip new file mode 100644 index 000000000..a14243662 --- /dev/null +++ b/src/regress/sbin/pfctl/if2ip @@ -0,0 +1,55 @@ +#!/bin/ksh +# simple script that compare and display interface to address translation +# done by the userland pfctl tool and by the kernel PF dynamic code. + +if2ip_user() { + echo "pass in from $1" | pfctl -o none -nvf- 2>/dev/null \ + | awk '{print " "(($3=="on")?$7:$5)}' | sort -u +} + +kernel_spec() { + set -- `echo $1 | sed "s;/; ;"` + if [ "X$2" == "X" ]; then + echo "($1)" + else + echo "($1)/$2" + fi +} + +if2ip_kernel() { + T=`echo "pass in on tun100 from $1" | pfctl -a regress/if2ip -f- \ + -vf- | awk '{ print $6}' | tr -d "()"` + pfctl -a _pf -t "$T" -Ts | sort + pfctl -a regress/if2ip -qFr +} + +while [ "X$1" != "X" ]; do + if [ "$1" == "-q" ]; then + QUIET=1 + shift + fi + if [ "$1" == "-v" ]; then + QUIET=0 + shift + fi + + UIP=`if2ip_user $1` + KIF=`kernel_spec $1` + KIP=`if2ip_kernel $KIF` + + if [ "$QUIET" == "1" ]; then + if [ "$UIP" == "$KIP" ]; then + echo "$1 and $KIF match." + else + echo "$1 and $KIF mismatch." + fi + else + echo "$1:"$UIP + echo "$KIF:"$KIP + fi + + if [ "$UIP" != "$KIP" ]; then + exit 1 + fi + shift +done diff --git a/src/regress/sbin/pfctl/obj b/src/regress/sbin/pfctl/obj new file mode 120000 index 000000000..bbbc10b7a --- /dev/null +++ b/src/regress/sbin/pfctl/obj @@ -0,0 +1 @@ +/usr/obj/regress/sbin/pfctl \ No newline at end of file diff --git a/src/regress/sbin/pfctl/pf1.in b/src/regress/sbin/pfctl/pf1.in new file mode 100644 index 000000000..494eee356 --- /dev/null +++ b/src/regress/sbin/pfctl/pf1.in @@ -0,0 +1,8 @@ +pass in all +pass in from any to any no state +pass in proto tcp from any port <= 1024 to any label foo_bar +pass in proto tcp from any to any port = 25 +pass in proto tcp from 10.0.0.0/8 port > 1024 to ! 10.1.2.3 port != 22 +pass in proto igmp from 10.0.0.0/8 to 10.1.1.1 allow-opts +pass in proto tcp from { 1.2.3.4, 1.2.3.5 } to any label \ +"$nr:$proto:$srcaddr:$srcport:$dstaddr:$dstport" diff --git a/src/regress/sbin/pfctl/pf1.loaded b/src/regress/sbin/pfctl/pf1.loaded new file mode 100644 index 000000000..2d7d41d54 --- /dev/null +++ b/src/regress/sbin/pfctl/pf1.loaded @@ -0,0 +1,32 @@ +@0 pass in all flags S/SA keep state + [ Skip steps: i=end d=end f=4 p=2 sa=4 sp=2 da=4 dp=3 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in all no state + [ Skip steps: i=end d=end f=4 sa=4 da=4 dp=3 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in proto tcp from any port <= 1024 to any flags S/SA keep state label "foo_bar" + [ Skip steps: i=end d=end f=4 p=5 sa=4 da=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in proto tcp from any to any port = smtp flags S/SA keep state + [ Skip steps: i=end d=end p=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in inet proto tcp from 10.0.0.0/8 port > 1024 to ! 10.1.2.3 port != ssh flags S/SA keep state + [ Skip steps: i=end d=end f=end sa=6 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in inet proto igmp from 10.0.0.0/8 to 10.1.1.1 keep state allow-opts + [ Skip steps: i=end d=end f=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in inet proto tcp from 1.2.3.4 to any flags S/SA keep state label "6:tcp:1.2.3.4::any:" + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in inet proto tcp from 1.2.3.5 to any flags S/SA keep state label "7:tcp:1.2.3.5::any:" + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf1.ok b/src/regress/sbin/pfctl/pf1.ok new file mode 100644 index 000000000..10fb28bb3 --- /dev/null +++ b/src/regress/sbin/pfctl/pf1.ok @@ -0,0 +1,8 @@ +pass in all flags S/SA keep state +pass in all no state +pass in proto tcp from any port <= 1024 to any flags S/SA keep state label "foo_bar" +pass in proto tcp from any to any port = smtp flags S/SA keep state +pass in inet proto tcp from 10.0.0.0/8 port > 1024 to ! 10.1.2.3 port != ssh flags S/SA keep state +pass in inet proto igmp from 10.0.0.0/8 to 10.1.1.1 keep state allow-opts +pass in inet proto tcp from 1.2.3.4 to any flags S/SA keep state label "6:tcp:1.2.3.4::any:" +pass in inet proto tcp from 1.2.3.5 to any flags S/SA keep state label "7:tcp:1.2.3.5::any:" diff --git a/src/regress/sbin/pfctl/pf1.optimized b/src/regress/sbin/pfctl/pf1.optimized new file mode 100644 index 000000000..2d7d41d54 --- /dev/null +++ b/src/regress/sbin/pfctl/pf1.optimized @@ -0,0 +1,32 @@ +@0 pass in all flags S/SA keep state + [ Skip steps: i=end d=end f=4 p=2 sa=4 sp=2 da=4 dp=3 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in all no state + [ Skip steps: i=end d=end f=4 sa=4 da=4 dp=3 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in proto tcp from any port <= 1024 to any flags S/SA keep state label "foo_bar" + [ Skip steps: i=end d=end f=4 p=5 sa=4 da=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in proto tcp from any to any port = smtp flags S/SA keep state + [ Skip steps: i=end d=end p=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in inet proto tcp from 10.0.0.0/8 port > 1024 to ! 10.1.2.3 port != ssh flags S/SA keep state + [ Skip steps: i=end d=end f=end sa=6 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in inet proto igmp from 10.0.0.0/8 to 10.1.1.1 keep state allow-opts + [ Skip steps: i=end d=end f=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in inet proto tcp from 1.2.3.4 to any flags S/SA keep state label "6:tcp:1.2.3.4::any:" + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in inet proto tcp from 1.2.3.5 to any flags S/SA keep state label "7:tcp:1.2.3.5::any:" + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf10.in b/src/regress/sbin/pfctl/pf10.in new file mode 100644 index 000000000..250576b99 --- /dev/null +++ b/src/regress/sbin/pfctl/pf10.in @@ -0,0 +1,31 @@ +# return variants +pass in inet proto icmp all +pass in inet6 proto icmp6 all +block in inet proto icmp all +block in inet6 proto icmp6 all +block return-rst in inet proto tcp all +block return-rst in inet6 proto tcp all +block return-rst(ttl 10) in inet proto tcp all +block return-rst(ttl 10) in inet6 proto tcp all +block return-icmp in inet proto icmp all +block return-icmp(0) in inet proto icmp all +block return-icmp(net-unr) in inet proto icmp all +block return-icmp(5) in inet proto icmp all +block return-icmp(srcfail) in inet proto icmp all +block return-icmp(10) in inet proto icmp all +block return-icmp(host-prohib) in inet proto icmp all +block return-icmp(15) in inet proto icmp all +block return-icmp(cutoff-preced) in inet proto icmp all +block return-icmp6 in inet6 proto icmp6 all +block return-icmp6(0) in inet6 proto icmp6 all +block return-icmp6(noroute-unr) in inet6 proto icmp6 all +block return-icmp6(1) in inet6 proto icmp6 all +block return-icmp6(admin-unr) in inet6 proto icmp6 all +block return-icmp6(2) in inet6 proto icmp6 all +block return-icmp6(notnbr-unr) in inet6 proto icmp6 all +block return-icmp6(3) in inet6 proto icmp6 all +block return-icmp6(addr-unr) in inet6 proto icmp6 all +block return-icmp6(4) in inet6 proto icmp6 all +block return-icmp6(port-unr) in inet6 proto icmp6 all +block return-icmp(5, 1) in all +block return-icmp(srcfail, admin-unr) in all diff --git a/src/regress/sbin/pfctl/pf10.loaded b/src/regress/sbin/pfctl/pf10.loaded new file mode 100644 index 000000000..04f75737b --- /dev/null +++ b/src/regress/sbin/pfctl/pf10.loaded @@ -0,0 +1,120 @@ +@0 pass in inet proto icmp all keep state + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in inet6 proto ipv6-icmp all keep state + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in inet proto icmp all + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block return-rst in inet proto tcp all + [ Skip steps: i=end d=end p=8 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block return-rst in inet6 proto tcp all + [ Skip steps: i=end d=end p=8 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 block return-rst(ttl 10) in inet proto tcp all + [ Skip steps: i=end d=end p=8 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block return-rst(ttl 10) in inet6 proto tcp all + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block return-icmp(port-unr) in inet proto icmp all + [ Skip steps: i=end d=end f=17 p=17 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 block return-icmp(net-unr) in inet proto icmp all + [ Skip steps: i=end d=end f=17 p=17 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block return-icmp(net-unr) in inet proto icmp all + [ Skip steps: i=end d=end f=17 p=17 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 block return-icmp(srcfail) in inet proto icmp all + [ Skip steps: i=end d=end f=17 p=17 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 block return-icmp(srcfail) in inet proto icmp all + [ Skip steps: i=end d=end f=17 p=17 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 block return-icmp(host-prohib) in inet proto icmp all + [ Skip steps: i=end d=end f=17 p=17 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 block return-icmp(host-prohib) in inet proto icmp all + [ Skip steps: i=end d=end f=17 p=17 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 block return-icmp(cutoff-preced) in inet proto icmp all + [ Skip steps: i=end d=end f=17 p=17 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 block return-icmp(cutoff-preced) in inet proto icmp all + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 block return-icmp6(port-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=28 p=28 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 block return-icmp6(noroute-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=28 p=28 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 block return-icmp6(noroute-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=28 p=28 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 block return-icmp6(admin-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=28 p=28 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 block return-icmp6(admin-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=28 p=28 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@22 block return-icmp6(notnbr-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=28 p=28 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@23 block return-icmp6(notnbr-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=28 p=28 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@24 block return-icmp6(addr-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=28 p=28 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@25 block return-icmp6(addr-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=28 p=28 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@26 block return-icmp6(port-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=28 p=28 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@27 block return-icmp6(port-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@28 block return-icmp(srcfail, admin-unr) in all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@29 block return-icmp(srcfail, admin-unr) in all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf10.ok b/src/regress/sbin/pfctl/pf10.ok new file mode 100644 index 000000000..4003c2306 --- /dev/null +++ b/src/regress/sbin/pfctl/pf10.ok @@ -0,0 +1,30 @@ +pass in inet proto icmp all keep state +pass in inet6 proto ipv6-icmp all keep state +block drop in inet proto icmp all +block drop in inet6 proto ipv6-icmp all +block return-rst in inet proto tcp all +block return-rst in inet6 proto tcp all +block return-rst(ttl 10) in inet proto tcp all +block return-rst(ttl 10) in inet6 proto tcp all +block return-icmp(port-unr) in inet proto icmp all +block return-icmp(net-unr) in inet proto icmp all +block return-icmp(net-unr) in inet proto icmp all +block return-icmp(srcfail) in inet proto icmp all +block return-icmp(srcfail) in inet proto icmp all +block return-icmp(host-prohib) in inet proto icmp all +block return-icmp(host-prohib) in inet proto icmp all +block return-icmp(cutoff-preced) in inet proto icmp all +block return-icmp(cutoff-preced) in inet proto icmp all +block return-icmp6(port-unr) in inet6 proto ipv6-icmp all +block return-icmp6(noroute-unr) in inet6 proto ipv6-icmp all +block return-icmp6(noroute-unr) in inet6 proto ipv6-icmp all +block return-icmp6(admin-unr) in inet6 proto ipv6-icmp all +block return-icmp6(admin-unr) in inet6 proto ipv6-icmp all +block return-icmp6(notnbr-unr) in inet6 proto ipv6-icmp all +block return-icmp6(notnbr-unr) in inet6 proto ipv6-icmp all +block return-icmp6(addr-unr) in inet6 proto ipv6-icmp all +block return-icmp6(addr-unr) in inet6 proto ipv6-icmp all +block return-icmp6(port-unr) in inet6 proto ipv6-icmp all +block return-icmp6(port-unr) in inet6 proto ipv6-icmp all +block return-icmp(srcfail, admin-unr) in all +block return-icmp(srcfail, admin-unr) in all diff --git a/src/regress/sbin/pfctl/pf10.optimized b/src/regress/sbin/pfctl/pf10.optimized new file mode 100644 index 000000000..a9b4e8075 --- /dev/null +++ b/src/regress/sbin/pfctl/pf10.optimized @@ -0,0 +1,76 @@ +@0 pass in inet proto icmp all keep state + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in inet6 proto ipv6-icmp all keep state + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in inet proto icmp all + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block return-rst in inet proto tcp all + [ Skip steps: i=end d=end p=8 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block return-rst in inet6 proto tcp all + [ Skip steps: i=end d=end p=8 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 block return-rst(ttl 10) in inet proto tcp all + [ Skip steps: i=end d=end p=8 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block return-rst(ttl 10) in inet6 proto tcp all + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block return-icmp(port-unr) in inet proto icmp all + [ Skip steps: i=end d=end f=13 p=13 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 block return-icmp(net-unr) in inet proto icmp all + [ Skip steps: i=end d=end f=13 p=13 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block return-icmp(srcfail) in inet proto icmp all + [ Skip steps: i=end d=end f=13 p=13 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 block return-icmp(host-prohib) in inet proto icmp all + [ Skip steps: i=end d=end f=13 p=13 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 block return-icmp(cutoff-preced) in inet proto icmp all + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 block return-icmp6(port-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=18 p=18 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 block return-icmp6(noroute-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=18 p=18 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 block return-icmp6(admin-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=18 p=18 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 block return-icmp6(notnbr-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end f=18 p=18 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 block return-icmp6(addr-unr) in inet6 proto ipv6-icmp all + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 block return-icmp(srcfail, admin-unr) in all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf11.in b/src/regress/sbin/pfctl/pf11.in new file mode 100644 index 000000000..a4dd3d574 --- /dev/null +++ b/src/regress/sbin/pfctl/pf11.in @@ -0,0 +1,18 @@ +pass in inet proto icmp all icmp-type 0 +pass in inet proto icmp all icmp-type 0 code 0 +pass in inet proto icmp all icmp-type 1 +pass in inet proto icmp all icmp-type 1 code 1 +pass in inet6 proto ipv6-icmp all icmp6-type 0 +pass in inet6 proto ipv6-icmp all icmp6-type 0 code 0 +pass in inet6 proto ipv6-icmp all icmp6-type 1 +pass in inet6 proto ipv6-icmp all icmp6-type 1 code 1 +block in inet proto icmp all icmp-type 0 +block in inet proto icmp all icmp-type 0 code 0 +block in inet proto icmp all icmp-type 1 +block in inet proto icmp all icmp-type 1 code 1 +block in inet6 proto ipv6-icmp all icmp6-type 0 +block in inet6 proto ipv6-icmp all icmp6-type 0 code 0 +block in inet6 proto ipv6-icmp all icmp6-type 1 +block in inet6 proto ipv6-icmp all icmp6-type 1 code 1 +pass in inet proto icmp all icmp-type unreach code needfrag +pass in inet6 proto ipv6-icmp all icmp6-type timex code reassemb diff --git a/src/regress/sbin/pfctl/pf11.loaded b/src/regress/sbin/pfctl/pf11.loaded new file mode 100644 index 000000000..8728d7617 --- /dev/null +++ b/src/regress/sbin/pfctl/pf11.loaded @@ -0,0 +1,72 @@ +@0 pass in inet proto icmp all icmp-type echorep keep state + [ Skip steps: i=end d=end f=4 p=4 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in inet proto icmp all icmp-type echorep code 0 keep state + [ Skip steps: i=end d=end f=4 p=4 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in inet proto icmp all icmp-type 1 keep state + [ Skip steps: i=end d=end f=4 p=4 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in inet proto icmp all icmp-type 1 code 1 keep state + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in inet6 proto ipv6-icmp all icmp6-type 0 keep state + [ Skip steps: i=end d=end f=8 p=8 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in inet6 proto ipv6-icmp all icmp6-type 0 code 0 keep state + [ Skip steps: i=end d=end f=8 p=8 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in inet6 proto ipv6-icmp all icmp6-type unreach keep state + [ Skip steps: i=end d=end f=8 p=8 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in inet6 proto ipv6-icmp all icmp6-type unreach code admin-unr keep state + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block drop in inet proto icmp all icmp-type echorep + [ Skip steps: i=end d=end f=12 p=12 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 block drop in inet proto icmp all icmp-type echorep code 0 + [ Skip steps: i=end d=end f=12 p=12 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block drop in inet proto icmp all icmp-type 1 + [ Skip steps: i=end d=end f=12 p=12 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 block drop in inet proto icmp all icmp-type 1 code 1 + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 block drop in inet6 proto ipv6-icmp all icmp6-type 0 + [ Skip steps: i=end d=end f=16 p=16 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 block drop in inet6 proto ipv6-icmp all icmp6-type 0 code 0 + [ Skip steps: i=end d=end f=16 p=16 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 block drop in inet6 proto ipv6-icmp all icmp6-type unreach + [ Skip steps: i=end d=end f=16 p=16 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 block drop in inet6 proto ipv6-icmp all icmp6-type unreach code admin-unr + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass in inet proto icmp all icmp-type unreach code needfrag keep state + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass in inet6 proto ipv6-icmp all icmp6-type timex code reassemb keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf11.ok b/src/regress/sbin/pfctl/pf11.ok new file mode 100644 index 000000000..1268e772d --- /dev/null +++ b/src/regress/sbin/pfctl/pf11.ok @@ -0,0 +1,18 @@ +pass in inet proto icmp all icmp-type echorep keep state +pass in inet proto icmp all icmp-type echorep code 0 keep state +pass in inet proto icmp all icmp-type 1 keep state +pass in inet proto icmp all icmp-type 1 code 1 keep state +pass in inet6 proto ipv6-icmp all icmp6-type 0 keep state +pass in inet6 proto ipv6-icmp all icmp6-type 0 code 0 keep state +pass in inet6 proto ipv6-icmp all icmp6-type unreach keep state +pass in inet6 proto ipv6-icmp all icmp6-type unreach code admin-unr keep state +block drop in inet proto icmp all icmp-type echorep +block drop in inet proto icmp all icmp-type echorep code 0 +block drop in inet proto icmp all icmp-type 1 +block drop in inet proto icmp all icmp-type 1 code 1 +block drop in inet6 proto ipv6-icmp all icmp6-type 0 +block drop in inet6 proto ipv6-icmp all icmp6-type 0 code 0 +block drop in inet6 proto ipv6-icmp all icmp6-type unreach +block drop in inet6 proto ipv6-icmp all icmp6-type unreach code admin-unr +pass in inet proto icmp all icmp-type unreach code needfrag keep state +pass in inet6 proto ipv6-icmp all icmp6-type timex code reassemb keep state diff --git a/src/regress/sbin/pfctl/pf11.optimized b/src/regress/sbin/pfctl/pf11.optimized new file mode 100644 index 000000000..8728d7617 --- /dev/null +++ b/src/regress/sbin/pfctl/pf11.optimized @@ -0,0 +1,72 @@ +@0 pass in inet proto icmp all icmp-type echorep keep state + [ Skip steps: i=end d=end f=4 p=4 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in inet proto icmp all icmp-type echorep code 0 keep state + [ Skip steps: i=end d=end f=4 p=4 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in inet proto icmp all icmp-type 1 keep state + [ Skip steps: i=end d=end f=4 p=4 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in inet proto icmp all icmp-type 1 code 1 keep state + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in inet6 proto ipv6-icmp all icmp6-type 0 keep state + [ Skip steps: i=end d=end f=8 p=8 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in inet6 proto ipv6-icmp all icmp6-type 0 code 0 keep state + [ Skip steps: i=end d=end f=8 p=8 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in inet6 proto ipv6-icmp all icmp6-type unreach keep state + [ Skip steps: i=end d=end f=8 p=8 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in inet6 proto ipv6-icmp all icmp6-type unreach code admin-unr keep state + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block drop in inet proto icmp all icmp-type echorep + [ Skip steps: i=end d=end f=12 p=12 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 block drop in inet proto icmp all icmp-type echorep code 0 + [ Skip steps: i=end d=end f=12 p=12 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block drop in inet proto icmp all icmp-type 1 + [ Skip steps: i=end d=end f=12 p=12 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 block drop in inet proto icmp all icmp-type 1 code 1 + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 block drop in inet6 proto ipv6-icmp all icmp6-type 0 + [ Skip steps: i=end d=end f=16 p=16 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 block drop in inet6 proto ipv6-icmp all icmp6-type 0 code 0 + [ Skip steps: i=end d=end f=16 p=16 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 block drop in inet6 proto ipv6-icmp all icmp6-type unreach + [ Skip steps: i=end d=end f=16 p=16 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 block drop in inet6 proto ipv6-icmp all icmp6-type unreach code admin-unr + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass in inet proto icmp all icmp-type unreach code needfrag keep state + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass in inet6 proto ipv6-icmp all icmp6-type timex code reassemb keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf12.in b/src/regress/sbin/pfctl/pf12.in new file mode 100644 index 000000000..15e4eae6a --- /dev/null +++ b/src/regress/sbin/pfctl/pf12.in @@ -0,0 +1,5 @@ +pass in from 127.0.0.1 to 127.0.0.1/8 no state +pass in from 127.0.0.1/16 to 127.0.0.1/24 no state +pass in from 127.0.0.1/25 to ! 127.0.0.1/26 +pass in inet from ! localhost to localhost/16 +pass in inet from ! lo0 to ! lo0/8 diff --git a/src/regress/sbin/pfctl/pf12.loaded b/src/regress/sbin/pfctl/pf12.loaded new file mode 100644 index 000000000..9a3c77fc3 --- /dev/null +++ b/src/regress/sbin/pfctl/pf12.loaded @@ -0,0 +1,20 @@ +@0 pass in inet from 127.0.0.1 to 127.0.0.0/8 no state + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in inet from 127.0.0.0/16 to 127.0.0.0/24 no state + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in inet from 127.0.0.0/25 to ! 127.0.0.0/26 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in inet from ! 127.0.0.1 to 127.0.0.0/16 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in inet from ! 127.0.0.1 to ! 127.0.0.0/8 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf12.ok b/src/regress/sbin/pfctl/pf12.ok new file mode 100644 index 000000000..4ca6765f3 --- /dev/null +++ b/src/regress/sbin/pfctl/pf12.ok @@ -0,0 +1,5 @@ +pass in inet from 127.0.0.1 to 127.0.0.0/8 no state +pass in inet from 127.0.0.0/16 to 127.0.0.0/24 no state +pass in inet from 127.0.0.0/25 to ! 127.0.0.0/26 flags S/SA keep state +pass in inet from ! 127.0.0.1 to 127.0.0.0/16 flags S/SA keep state +pass in inet from ! 127.0.0.1 to ! 127.0.0.0/8 flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf12.optimized b/src/regress/sbin/pfctl/pf12.optimized new file mode 100644 index 000000000..faf666d78 --- /dev/null +++ b/src/regress/sbin/pfctl/pf12.optimized @@ -0,0 +1,20 @@ +@0 pass in inet from 127.0.0.1 to 127.0.0.0/8 no state + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in inet from 127.0.0.0/16 to 127.0.0.0/24 no state + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in inet from ! 127.0.0.1 to 127.0.0.0/16 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=4 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in inet from ! 127.0.0.1 to ! 127.0.0.0/8 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in inet from 127.0.0.0/25 to ! 127.0.0.0/26 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf13.in b/src/regress/sbin/pfctl/pf13.in new file mode 100644 index 000000000..bfed24e11 --- /dev/null +++ b/src/regress/sbin/pfctl/pf13.in @@ -0,0 +1,22 @@ +pass in quick on enc0 from any to any fastroute +pass in quick on enc0 inet from any to any fastroute +pass in quick on enc0 inet6 from any to any fastroute + +pass out quick on tun1000000 inet from any to any route-to tun1000001 +pass out quick on tun1000000 from any to 192.168.1.1 route-to tun1000001 +pass out quick on tun1000000 from any to fec0::1 route-to tun1000001 + +block in on tun1000000 proto tcp from any to any port = 21 dup-to (tun1000001 192.168.1.1) +block in on tun1000000 proto tcp from any to any port = 21 dup-to (tun1000001 fec0::1) + +pass in quick on tun1000000 from 192.168.1.1/32 to 10.1.1.1/32 route-to tun1000001 +pass in quick on tun1000000 from fec0::1/64 to fec1::2/128 route-to tun1000001 + +block in on tun1000000 proto tcp from any to any port = 21 reply-to (tun1000001 192.168.1.1) +block in on tun1000000 proto tcp from any to any port = 21 reply-to (tun1000001 fec0::1) + +pass in quick on tun1000000 from 192.168.1.1/32 to 10.1.1.1/32 reply-to tun1000001 +pass in quick on tun1000000 from fec0::1/64 to fec1::2/128 reply-to tun1000001 + +pass in quick on tun1000000 from 192.168.1.1/32 to 10.1.1.1/32 dup-to (tun1000001 192.168.1.100) +pass in quick on tun1000000 from fec0::1/64 to fec1::2/128 dup-to (tun1000001 fec1::2) diff --git a/src/regress/sbin/pfctl/pf13.loaded b/src/regress/sbin/pfctl/pf13.loaded new file mode 100644 index 000000000..225a37d41 --- /dev/null +++ b/src/regress/sbin/pfctl/pf13.loaded @@ -0,0 +1,64 @@ +@0 pass in quick on enc0 all flags S/SA keep state fastroute + [ Skip steps: i=3 d=3 p=6 sa=8 sp=end da=4 dp=6 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in quick on enc0 inet all flags S/SA keep state fastroute + [ Skip steps: i=3 d=3 p=6 sa=8 sp=end da=4 dp=6 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in quick on enc0 inet6 all flags S/SA keep state fastroute + [ Skip steps: p=6 sa=8 sp=end da=4 dp=6 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass out quick on tun1000000 inet all flags S/SA keep state route-to tun1000001 + [ Skip steps: i=end d=6 f=5 p=6 sa=8 sp=end dp=6 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass out quick on tun1000000 inet from any to 192.168.1.1 flags S/SA keep state route-to tun1000001 + [ Skip steps: i=end d=6 p=6 sa=8 sp=end dp=6 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass out quick on tun1000000 inet6 from any to fec0::1 flags S/SA keep state route-to tun1000001 + [ Skip steps: i=end sa=8 sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 block drop in on tun1000000 inet proto tcp from any to any port = ftp dup-to 192.168.1.1@tun1000001 + [ Skip steps: i=end d=end p=8 sa=8 sp=end da=8 dp=8 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block drop in on tun1000000 inet6 proto tcp from any to any port = ftp dup-to fec0::1@tun1000001 + [ Skip steps: i=end d=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in quick on tun1000000 inet from 192.168.1.1 to 10.1.1.1 flags S/SA keep state route-to tun1000001 + [ Skip steps: i=end d=end p=10 sp=end dp=10 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass in quick on tun1000000 inet6 from fec0::/64 to fec1::2 flags S/SA keep state route-to tun1000001 + [ Skip steps: i=end d=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block drop in on tun1000000 inet proto tcp from any to any port = ftp reply-to 192.168.1.1@tun1000001 + [ Skip steps: i=end d=end p=12 sa=12 sp=end da=12 dp=12 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 block drop in on tun1000000 inet6 proto tcp from any to any port = ftp reply-to fec0::1@tun1000001 + [ Skip steps: i=end d=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass in quick on tun1000000 inet from 192.168.1.1 to 10.1.1.1 flags S/SA keep state reply-to tun1000001 + [ Skip steps: i=end d=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass in quick on tun1000000 inet6 from fec0::/64 to fec1::2 flags S/SA keep state reply-to tun1000001 + [ Skip steps: i=end d=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 pass in quick on tun1000000 inet from 192.168.1.1 to 10.1.1.1 flags S/SA keep state dup-to 192.168.1.100@tun1000001 + [ Skip steps: i=end d=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass in quick on tun1000000 inet6 from fec0::/64 to fec1::2 flags S/SA keep state dup-to fec1::2@tun1000001 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf13.ok b/src/regress/sbin/pfctl/pf13.ok new file mode 100644 index 000000000..b41a66907 --- /dev/null +++ b/src/regress/sbin/pfctl/pf13.ok @@ -0,0 +1,16 @@ +pass in quick on enc0 all flags S/SA keep state fastroute +pass in quick on enc0 inet all flags S/SA keep state fastroute +pass in quick on enc0 inet6 all flags S/SA keep state fastroute +pass out quick on tun1000000 inet all flags S/SA keep state route-to tun1000001 +pass out quick on tun1000000 inet from any to 192.168.1.1 flags S/SA keep state route-to tun1000001 +pass out quick on tun1000000 inet6 from any to fec0::1 flags S/SA keep state route-to tun1000001 +block drop in on tun1000000 inet proto tcp from any to any port = ftp dup-to 192.168.1.1@tun1000001 +block drop in on tun1000000 inet6 proto tcp from any to any port = ftp dup-to fec0::1@tun1000001 +pass in quick on tun1000000 inet from 192.168.1.1 to 10.1.1.1 flags S/SA keep state route-to tun1000001 +pass in quick on tun1000000 inet6 from fec0::/64 to fec1::2 flags S/SA keep state route-to tun1000001 +block drop in on tun1000000 inet proto tcp from any to any port = ftp reply-to 192.168.1.1@tun1000001 +block drop in on tun1000000 inet6 proto tcp from any to any port = ftp reply-to fec0::1@tun1000001 +pass in quick on tun1000000 inet from 192.168.1.1 to 10.1.1.1 flags S/SA keep state reply-to tun1000001 +pass in quick on tun1000000 inet6 from fec0::/64 to fec1::2 flags S/SA keep state reply-to tun1000001 +pass in quick on tun1000000 inet from 192.168.1.1 to 10.1.1.1 flags S/SA keep state dup-to 192.168.1.100@tun1000001 +pass in quick on tun1000000 inet6 from fec0::/64 to fec1::2 flags S/SA keep state dup-to fec1::2@tun1000001 diff --git a/src/regress/sbin/pfctl/pf13.optimized b/src/regress/sbin/pfctl/pf13.optimized new file mode 100644 index 000000000..53ccd8415 --- /dev/null +++ b/src/regress/sbin/pfctl/pf13.optimized @@ -0,0 +1,52 @@ +@0 pass in quick on enc0 all flags S/SA keep state fastroute + [ Skip steps: p=3 sa=5 sp=end da=2 dp=3 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass out quick on tun1000000 inet all flags S/SA keep state route-to tun1000001 + [ Skip steps: i=end d=3 p=3 sa=5 sp=end dp=3 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass out quick on tun1000000 inet6 from any to fec0::1 flags S/SA keep state route-to tun1000001 + [ Skip steps: i=end sa=5 sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in on tun1000000 inet proto tcp from any to any port = ftp dup-to 192.168.1.1@tun1000001 + [ Skip steps: i=end d=end p=5 sa=5 sp=end da=5 dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block drop in on tun1000000 inet6 proto tcp from any to any port = ftp dup-to fec0::1@tun1000001 + [ Skip steps: i=end d=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in quick on tun1000000 inet from 192.168.1.1 to 10.1.1.1 flags S/SA keep state route-to tun1000001 + [ Skip steps: i=end d=end p=7 sp=end dp=7 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in quick on tun1000000 inet6 from fec0::/64 to fec1::2 flags S/SA keep state route-to tun1000001 + [ Skip steps: i=end d=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block drop in on tun1000000 inet proto tcp from any to any port = ftp reply-to 192.168.1.1@tun1000001 + [ Skip steps: i=end d=end p=9 sa=9 sp=end da=9 dp=9 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block drop in on tun1000000 inet6 proto tcp from any to any port = ftp reply-to fec0::1@tun1000001 + [ Skip steps: i=end d=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass in quick on tun1000000 inet from 192.168.1.1 to 10.1.1.1 flags S/SA keep state reply-to tun1000001 + [ Skip steps: i=end d=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass in quick on tun1000000 inet6 from fec0::/64 to fec1::2 flags S/SA keep state reply-to tun1000001 + [ Skip steps: i=end d=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass in quick on tun1000000 inet from 192.168.1.1 to 10.1.1.1 flags S/SA keep state dup-to 192.168.1.100@tun1000001 + [ Skip steps: i=end d=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass in quick on tun1000000 inet6 from fec0::/64 to fec1::2 flags S/SA keep state dup-to fec1::2@tun1000001 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf14.in b/src/regress/sbin/pfctl/pf14.in new file mode 100644 index 000000000..eaca6de0f --- /dev/null +++ b/src/regress/sbin/pfctl/pf14.in @@ -0,0 +1,6 @@ +pass in quick on lo0 from fe80::1%lo0 to fe80::1%lo0 +pass in quick from fe80::1%lo0 to fe80::1%lo0 +pass in quick from fe80::1%lo0 to any +pass in quick from any to fe80::1%lo0 +pass in quick on lo0 from fe80::1%lo0 to any +pass in quick on lo0 from any to fe80::1%lo0 diff --git a/src/regress/sbin/pfctl/pf14.loaded b/src/regress/sbin/pfctl/pf14.loaded new file mode 100644 index 000000000..43d0448bc --- /dev/null +++ b/src/regress/sbin/pfctl/pf14.loaded @@ -0,0 +1,24 @@ +@0 pass in quick on lo0 inet6 from fe80::1 to fe80::1 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=3 sp=end da=2 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in quick on lo0 inet6 from fe80::1 to fe80::1 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=3 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in quick on lo0 inet6 from fe80::1 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in quick on lo0 inet6 from any to fe80::1 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in quick on lo0 inet6 from fe80::1 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in quick on lo0 inet6 from any to fe80::1 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf14.ok b/src/regress/sbin/pfctl/pf14.ok new file mode 100644 index 000000000..15cc43ff7 --- /dev/null +++ b/src/regress/sbin/pfctl/pf14.ok @@ -0,0 +1,6 @@ +pass in quick on lo0 inet6 from fe80::1 to fe80::1 flags S/SA keep state +pass in quick on lo0 inet6 from fe80::1 to fe80::1 flags S/SA keep state +pass in quick on lo0 inet6 from fe80::1 to any flags S/SA keep state +pass in quick on lo0 inet6 from any to fe80::1 flags S/SA keep state +pass in quick on lo0 inet6 from fe80::1 to any flags S/SA keep state +pass in quick on lo0 inet6 from any to fe80::1 flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf14.optimized b/src/regress/sbin/pfctl/pf14.optimized new file mode 100644 index 000000000..f18879251 --- /dev/null +++ b/src/regress/sbin/pfctl/pf14.optimized @@ -0,0 +1,8 @@ +@0 pass in quick on lo0 inet6 from fe80::1 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in quick on lo0 inet6 from any to fe80::1 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf15.in b/src/regress/sbin/pfctl/pf15.in new file mode 100644 index 000000000..890096963 --- /dev/null +++ b/src/regress/sbin/pfctl/pf15.in @@ -0,0 +1,11 @@ +set reassemble yes no-df +set reassemble no +match scrub(no-df) +match scrub(min-ttl 25) +match scrub(max-mss 224) +match scrub(no-df max-mss 224) +match scrub(set-tos lowdelay) +match out proto esp scrub(set-tos throughput) +match out proto ah scrub(set-tos reliability) +match out proto icmp scrub(set-tos 0x12) +match out all tagged THROUGHPUT scrub (set-tos throughput) diff --git a/src/regress/sbin/pfctl/pf15.loaded b/src/regress/sbin/pfctl/pf15.loaded new file mode 100644 index 000000000..7604eb47a --- /dev/null +++ b/src/regress/sbin/pfctl/pf15.loaded @@ -0,0 +1,36 @@ +@0 match all scrub (no-df) + [ Skip steps: i=end d=5 f=end p=5 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match all scrub (min-ttl 25) + [ Skip steps: i=end d=5 f=end p=5 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match all scrub (max-mss 224) + [ Skip steps: i=end d=5 f=end p=5 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match all scrub (no-df max-mss 224) + [ Skip steps: i=end d=5 f=end p=5 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match all scrub (set-tos 0x10) + [ Skip steps: i=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match out proto esp all scrub (set-tos 0x08) + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match out proto ah all scrub (set-tos 0x04) + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match out proto icmp all scrub (set-tos 0x12) + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match out all scrub (set-tos 0x08) tagged THROUGHPUT + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf15.ok b/src/regress/sbin/pfctl/pf15.ok new file mode 100644 index 000000000..24776aad2 --- /dev/null +++ b/src/regress/sbin/pfctl/pf15.ok @@ -0,0 +1,11 @@ +set reassemble yes no-df +set reassemble no +match all scrub (no-df) +match all scrub (min-ttl 25) +match all scrub (max-mss 224) +match all scrub (no-df max-mss 224) +match all scrub (set-tos 0x10) +match out proto esp all scrub (set-tos 0x08) +match out proto ah all scrub (set-tos 0x04) +match out proto icmp all scrub (set-tos 0x12) +match out all scrub (set-tos 0x08) tagged THROUGHPUT diff --git a/src/regress/sbin/pfctl/pf15.optimized b/src/regress/sbin/pfctl/pf15.optimized new file mode 100644 index 000000000..6b2db1c03 --- /dev/null +++ b/src/regress/sbin/pfctl/pf15.optimized @@ -0,0 +1,20 @@ +@0 match all scrub (no-df) + [ Skip steps: i=end d=4 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match all scrub (min-ttl 25) + [ Skip steps: i=end d=4 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match all scrub (no-df max-mss 224) + [ Skip steps: i=end d=4 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match all scrub (set-tos 0x10) + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match out all scrub (set-tos 0x08) tagged THROUGHPUT + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf16.in b/src/regress/sbin/pfctl/pf16.in new file mode 100644 index 000000000..43662f0af --- /dev/null +++ b/src/regress/sbin/pfctl/pf16.in @@ -0,0 +1,5 @@ +# Test rule order processing: should fail unless nat -> filter +match out on lo0 from 192.168.1.1 to any nat-to 10.0.0.1 +match in on lo0 proto tcp from any to 1.2.3.4/32 port 2222 rdr-to 10.0.0.10 port 22 +match on lo0 from 192.168.1.1 to any binat-to 10.0.0.1 +pass in on lo1000000 from any to any no state diff --git a/src/regress/sbin/pfctl/pf16.loaded b/src/regress/sbin/pfctl/pf16.loaded new file mode 100644 index 000000000..3f8f6e88a --- /dev/null +++ b/src/regress/sbin/pfctl/pf16.loaded @@ -0,0 +1,20 @@ +@0 match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 + [ Skip steps: i=4 f=4 sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 inet proto tcp from any to 1.2.3.4 port = 2222 rdr-to 10.0.0.10 port 22 + [ Skip steps: i=4 f=4 sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 static-port + [ Skip steps: i=4 f=4 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match in on lo0 inet from any to 10.0.0.1 rdr-to 192.168.1.1 + [ Skip steps: d=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in on lo1000000 all no state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf16.ok b/src/regress/sbin/pfctl/pf16.ok new file mode 100644 index 000000000..d65374a16 --- /dev/null +++ b/src/regress/sbin/pfctl/pf16.ok @@ -0,0 +1,5 @@ +match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 +match in on lo0 inet proto tcp from any to 1.2.3.4 port = 2222 rdr-to 10.0.0.10 port 22 +match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 static-port +match in on lo0 inet from any to 10.0.0.1 rdr-to 192.168.1.1 +pass in on lo1000000 all no state diff --git a/src/regress/sbin/pfctl/pf16.optimized b/src/regress/sbin/pfctl/pf16.optimized new file mode 100644 index 000000000..3f8f6e88a --- /dev/null +++ b/src/regress/sbin/pfctl/pf16.optimized @@ -0,0 +1,20 @@ +@0 match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 + [ Skip steps: i=4 f=4 sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 inet proto tcp from any to 1.2.3.4 port = 2222 rdr-to 10.0.0.10 port 22 + [ Skip steps: i=4 f=4 sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 static-port + [ Skip steps: i=4 f=4 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match in on lo0 inet from any to 10.0.0.1 rdr-to 192.168.1.1 + [ Skip steps: d=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in on lo1000000 all no state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf17.in b/src/regress/sbin/pfctl/pf17.in new file mode 100644 index 000000000..37b973d79 --- /dev/null +++ b/src/regress/sbin/pfctl/pf17.in @@ -0,0 +1,52 @@ +# test binat + +match on lo0 from 192.168.1.1 to any binat-to 10.0.0.1 +match on lo0 proto tcp from 192.168.1.2 to any binat-to 10.0.0.2 +match on lo0 proto udp from 192.168.1.3 to any binat-to 10.0.0.3 +match on lo0 proto icmp from 192.168.1.4 to any binat-to 10.0.0.4 + +match on lo0 from 192.168.1.5 to 172.16.1.1 binat-to 10.0.0.5 +match on lo0 from 192.168.1.6 to 172.16.1.2/32 binat-to 10.0.0.6 +match on lo0 from 192.168.1.7 to 172.16.2.0/24 binat-to 10.0.0.7 + +match on lo0 from 192.168.2.0/24 to any binat-to 10.0.5.0/24 +match on lo0 from 192.168.2.0/28 to any binat-to 10.0.4.0/28 +match on lo0 from 192.168.2.0/30 to 192.168.3.1 binat-to 10.0.3.0/30 + +match on lo0 from 192.168.1.8 to ! 172.17.0.0/16 binat-to 10.0.0.8 + +match on lo0 from 1.1.1.1 to no-route binat-to 2.2.2.2 +match on lo0 from (lo0:0) to 1.1.1.1 binat-to 2.2.2.2 +match on lo0 from (lo0:0) to 1.1.1.1 binat-to (lo1000000:0) +match on lo0 inet from (lo0:0) to (lo1000000:0) binat-to (lo1000000:0) +match on lo0 from 1.1.1.1 to binat-to 2.2.2.2 +match on lo0 from 1.1.1.1 to ! binat-to 2.2.2.2 +match on lo0 from 1.1.1.1 to (lo1000000:0) binat-to 2.2.2.2 +match on lo0 from 1.1.1.1 to !(lo1000000:0) binat-to 2.2.2.2 +match on lo0 from (lo0:0) to binat-to 2.2.2.2 + +match on lo0 from ::1 to no-route binat-to ::2 +match on lo0 from (lo0:0) to ::1 binat-to ::2 +match on lo0 from (lo0:0) to ::1 binat-to (lo1000000:0) +match on lo0 inet6 from (lo0:0) to (lo1000000:0) binat-to (lo1000000:0) +match on lo0 from ::1 to binat-to ::2 +match on lo0 from ::1 to ! binat-to ::2 +match on lo0 from ::1 to (lo1000000:0) binat-to ::2 +match on lo0 from ::1 to !(lo1000000:0) binat-to ::2 +match on lo0 from (lo0:0) to binat-to ::2 + +match on lo0 from ::1 to (lo0) binat-to ::1 +match on lo0 from ::1 to (lo0:0) binat-to ::1 +match on lo0 from ::1 to (lo0:peer) binat-to ::1 +match on lo0 from ::1 to (lo0:peer:0) binat-to ::1 +match on lo0 from ::1 to (lo0:broadcast) binat-to ::1 +match on lo0 from ::1 to (lo0:broadcast:0) binat-to ::1 +match on lo0 from ::1 to (lo0:network) binat-to ::1 +match on lo0 from ::1 to (lo0:network:0) binat-to ::1 +match on lo0 from ::1 to (lo0)/100 binat-to ::2 +match on lo0 from ::1 to (lo0:0)/100 binat-to ::2 +match on lo0 from ::1 to (lo0:peer)/100 binat-to ::2 +match on lo0 from ::1 to (lo0:peer:0)/100 binat-to ::2 + +match on lo from (lo0:0) to ::1 binat-to ::2 +match on tun from (lo0:0) to ::1 binat-to ::2 diff --git a/src/regress/sbin/pfctl/pf17.loaded b/src/regress/sbin/pfctl/pf17.loaded new file mode 100644 index 000000000..f541e3978 --- /dev/null +++ b/src/regress/sbin/pfctl/pf17.loaded @@ -0,0 +1,344 @@ +@0 match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 static-port + [ Skip steps: i=82 f=40 p=2 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 inet from any to 10.0.0.1 rdr-to 192.168.1.1 + [ Skip steps: i=82 f=40 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 static-port + [ Skip steps: i=82 f=40 p=4 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match in on lo0 inet proto tcp from any to 10.0.0.2 rdr-to 192.168.1.2 + [ Skip steps: i=82 f=40 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 static-port + [ Skip steps: i=82 f=40 p=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match in on lo0 inet proto udp from any to 10.0.0.3 rdr-to 192.168.1.3 + [ Skip steps: i=82 f=40 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match out on lo0 inet proto icmp from 192.168.1.4 to any nat-to 10.0.0.4 static-port + [ Skip steps: i=82 f=40 p=8 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match in on lo0 inet proto icmp from any to 10.0.0.4 rdr-to 192.168.1.4 + [ Skip steps: i=82 f=40 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match out on lo0 inet from 192.168.1.5 to 172.16.1.1 nat-to 10.0.0.5 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 match in on lo0 inet from 172.16.1.1 to 10.0.0.5 rdr-to 192.168.1.5 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 match out on lo0 inet from 192.168.1.6 to 172.16.1.2 nat-to 10.0.0.6 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 match in on lo0 inet from 172.16.1.2 to 10.0.0.6 rdr-to 192.168.1.6 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 match out on lo0 inet from 192.168.1.7 to 172.16.2.0/24 nat-to 10.0.0.7 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 match in on lo0 inet from 172.16.2.0/24 to 10.0.0.7 rdr-to 192.168.1.7 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 match out on lo0 inet from 192.168.2.0/24 to any nat-to 10.0.5.0/24 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 match in on lo0 inet from any to 10.0.5.0/24 rdr-to 192.168.2.0/24 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 match out on lo0 inet from 192.168.2.0/28 to any nat-to 10.0.4.0/28 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 match in on lo0 inet from any to 10.0.4.0/28 rdr-to 192.168.2.0/28 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 match out on lo0 inet from 192.168.2.0/30 to 192.168.3.1 nat-to 10.0.3.0/30 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 match in on lo0 inet from 192.168.3.1 to 10.0.3.0/30 rdr-to 192.168.2.0/30 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 match out on lo0 inet from 192.168.1.8 to ! 172.17.0.0/16 nat-to 10.0.0.8 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 match in on lo0 inet from ! 172.17.0.0/16 to 10.0.0.8 rdr-to 192.168.1.8 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@22 match out on lo0 inet from 1.1.1.1 to no-route nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@23 match in on lo0 inet from no-route to 2.2.2.2 rdr-to 1.1.1.1 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@24 match out on lo0 inet from (lo0:0:1) to 1.1.1.1 nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@25 match in on lo0 inet from 1.1.1.1 to 2.2.2.2 rdr-to (lo0:0:1) + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@26 match out on lo0 inet from (lo0:0:1) to 1.1.1.1 nat-to (lo1000000:0:*) static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@27 match in on lo0 inet from 1.1.1.1 to (lo1000000:0:*) rdr-to (lo0:0:1) + [ Skip steps: i=82 f=40 p=end sp=end da=30 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@28 match out on lo0 inet from (lo0:0:1) to (lo1000000:0:*) nat-to (lo1000000:0:*) static-port + [ Skip steps: i=82 f=40 p=end sp=end da=30 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@29 match in on lo0 inet from (lo1000000:0:*) to (lo1000000:0:*) rdr-to (lo0:0:1) + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@30 match out on lo0 inet from 1.1.1.1 to nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@31 match in on lo0 inet from to 2.2.2.2 rdr-to 1.1.1.1 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@32 match out on lo0 inet from 1.1.1.1 to ! nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@33 match in on lo0 inet from ! to 2.2.2.2 rdr-to 1.1.1.1 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@34 match out on lo0 inet from 1.1.1.1 to (lo1000000:0:*) nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@35 match in on lo0 inet from (lo1000000:0:*) to 2.2.2.2 rdr-to 1.1.1.1 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@36 match out on lo0 inet from 1.1.1.1 to ! (lo1000000:0:*) nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@37 match in on lo0 inet from ! (lo1000000:0:*) to 2.2.2.2 rdr-to 1.1.1.1 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@38 match out on lo0 inet from (lo0:0:1) to nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@39 match in on lo0 inet from to 2.2.2.2 rdr-to (lo0:0:1) + [ Skip steps: i=82 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@40 match out on lo0 inet6 from ::1 to no-route nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@41 match in on lo0 inet6 from no-route to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@42 match out on lo0 inet6 from (lo0:0:1) to ::1 nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@43 match in on lo0 inet6 from ::1 to ::2 rdr-to (lo0:0:1) + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@44 match out on lo0 inet6 from (lo0:0:1) to ::1 nat-to (lo1000000:0:*) static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@45 match in on lo0 inet6 from ::1 to (lo1000000:0:*) rdr-to (lo0:0:1) + [ Skip steps: i=82 f=end p=end sp=end da=48 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@46 match out on lo0 inet6 from (lo0:0:1) to (lo1000000:0:*) nat-to (lo1000000:0:*) static-port + [ Skip steps: i=82 f=end p=end sp=end da=48 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@47 match in on lo0 inet6 from (lo1000000:0:*) to (lo1000000:0:*) rdr-to (lo0:0:1) + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@48 match out on lo0 inet6 from ::1 to nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@49 match in on lo0 inet6 from to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@50 match out on lo0 inet6 from ::1 to ! nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@51 match in on lo0 inet6 from ! to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@52 match out on lo0 inet6 from ::1 to (lo1000000:0:*) nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@53 match in on lo0 inet6 from (lo1000000:0:*) to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@54 match out on lo0 inet6 from ::1 to ! (lo1000000:0:*) nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@55 match in on lo0 inet6 from ! (lo1000000:0:*) to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@56 match out on lo0 inet6 from (lo0:0:1) to nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@57 match in on lo0 inet6 from to ::2 rdr-to (lo0:0:1) + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@58 match out on lo0 inet6 from ::1 to (lo0:2) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@59 match in on lo0 inet6 from (lo0:2) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@60 match out on lo0 inet6 from ::1 to (lo0:0:1) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@61 match in on lo0 inet6 from (lo0:0:1) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@62 match out on lo0 inet6 from ::1 to (lo0:peer:*) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@63 match in on lo0 inet6 from (lo0:peer:*) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@64 match out on lo0 inet6 from ::1 to (lo0:peer:0:*) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@65 match in on lo0 inet6 from (lo0:peer:0:*) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@66 match out on lo0 inet6 from ::1 to (lo0:broadcast:*) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@67 match in on lo0 inet6 from (lo0:broadcast:*) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@68 match out on lo0 inet6 from ::1 to (lo0:broadcast:0:*) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@69 match in on lo0 inet6 from (lo0:broadcast:0:*) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@70 match out on lo0 inet6 from ::1 to (lo0:network:1) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@71 match in on lo0 inet6 from (lo0:network:1) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@72 match out on lo0 inet6 from ::1 to (lo0:network:0:1) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@73 match in on lo0 inet6 from (lo0:network:0:1) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@74 match out on lo0 inet6 from ::1 to (lo0:2)/100 nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@75 match in on lo0 inet6 from (lo0:2)/100 to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@76 match out on lo0 inet6 from ::1 to (lo0:0:1)/100 nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@77 match in on lo0 inet6 from (lo0:0:1)/100 to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@78 match out on lo0 inet6 from ::1 to (lo0:peer:*)/100 nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@79 match in on lo0 inet6 from (lo0:peer:*)/100 to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@80 match out on lo0 inet6 from ::1 to (lo0:peer:0:*)/100 nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@81 match in on lo0 inet6 from (lo0:peer:0:*)/100 to ::2 rdr-to ::1 + [ Skip steps: f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@82 match out on lo inet6 from (lo0:0:1) to ::1 nat-to ::2 static-port + [ Skip steps: i=84 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@83 match in on lo inet6 from ::1 to ::2 rdr-to (lo0:0:1) + [ Skip steps: f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@84 match out on tun inet6 from (lo0:0:1) to ::1 nat-to ::2 static-port + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@85 match in on tun inet6 from ::1 to ::2 rdr-to (lo0:0:1) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf17.ok b/src/regress/sbin/pfctl/pf17.ok new file mode 100644 index 000000000..f849c7f6b --- /dev/null +++ b/src/regress/sbin/pfctl/pf17.ok @@ -0,0 +1,86 @@ +match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 static-port +match in on lo0 inet from any to 10.0.0.1 rdr-to 192.168.1.1 +match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 static-port +match in on lo0 inet proto tcp from any to 10.0.0.2 rdr-to 192.168.1.2 +match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 static-port +match in on lo0 inet proto udp from any to 10.0.0.3 rdr-to 192.168.1.3 +match out on lo0 inet proto icmp from 192.168.1.4 to any nat-to 10.0.0.4 static-port +match in on lo0 inet proto icmp from any to 10.0.0.4 rdr-to 192.168.1.4 +match out on lo0 inet from 192.168.1.5 to 172.16.1.1 nat-to 10.0.0.5 static-port +match in on lo0 inet from 172.16.1.1 to 10.0.0.5 rdr-to 192.168.1.5 +match out on lo0 inet from 192.168.1.6 to 172.16.1.2 nat-to 10.0.0.6 static-port +match in on lo0 inet from 172.16.1.2 to 10.0.0.6 rdr-to 192.168.1.6 +match out on lo0 inet from 192.168.1.7 to 172.16.2.0/24 nat-to 10.0.0.7 static-port +match in on lo0 inet from 172.16.2.0/24 to 10.0.0.7 rdr-to 192.168.1.7 +match out on lo0 inet from 192.168.2.0/24 to any nat-to 10.0.5.0/24 static-port +match in on lo0 inet from any to 10.0.5.0/24 rdr-to 192.168.2.0/24 +match out on lo0 inet from 192.168.2.0/28 to any nat-to 10.0.4.0/28 static-port +match in on lo0 inet from any to 10.0.4.0/28 rdr-to 192.168.2.0/28 +match out on lo0 inet from 192.168.2.0/30 to 192.168.3.1 nat-to 10.0.3.0/30 static-port +match in on lo0 inet from 192.168.3.1 to 10.0.3.0/30 rdr-to 192.168.2.0/30 +match out on lo0 inet from 192.168.1.8 to ! 172.17.0.0/16 nat-to 10.0.0.8 static-port +match in on lo0 inet from ! 172.17.0.0/16 to 10.0.0.8 rdr-to 192.168.1.8 +match out on lo0 inet from 1.1.1.1 to no-route nat-to 2.2.2.2 static-port +match in on lo0 inet from no-route to 2.2.2.2 rdr-to 1.1.1.1 +match out on lo0 inet from (lo0:0) to 1.1.1.1 nat-to 2.2.2.2 static-port +match in on lo0 inet from 1.1.1.1 to 2.2.2.2 rdr-to (lo0:0) +match out on lo0 inet from (lo0:0) to 1.1.1.1 nat-to (lo1000000:0) static-port +match in on lo0 inet from 1.1.1.1 to (lo1000000:0) rdr-to (lo0:0) +match out on lo0 inet from (lo0:0) to (lo1000000:0) nat-to (lo1000000:0) static-port +match in on lo0 inet from (lo1000000:0) to (lo1000000:0) rdr-to (lo0:0) +match out on lo0 inet from 1.1.1.1 to nat-to 2.2.2.2 static-port +match in on lo0 inet from to 2.2.2.2 rdr-to 1.1.1.1 +match out on lo0 inet from 1.1.1.1 to ! nat-to 2.2.2.2 static-port +match in on lo0 inet from ! to 2.2.2.2 rdr-to 1.1.1.1 +match out on lo0 inet from 1.1.1.1 to (lo1000000:0) nat-to 2.2.2.2 static-port +match in on lo0 inet from (lo1000000:0) to 2.2.2.2 rdr-to 1.1.1.1 +match out on lo0 inet from 1.1.1.1 to ! (lo1000000:0) nat-to 2.2.2.2 static-port +match in on lo0 inet from ! (lo1000000:0) to 2.2.2.2 rdr-to 1.1.1.1 +match out on lo0 inet from (lo0:0) to nat-to 2.2.2.2 static-port +match in on lo0 inet from to 2.2.2.2 rdr-to (lo0:0) +match out on lo0 inet6 from ::1 to no-route nat-to ::2 static-port +match in on lo0 inet6 from no-route to ::2 rdr-to ::1 +match out on lo0 inet6 from (lo0:0) to ::1 nat-to ::2 static-port +match in on lo0 inet6 from ::1 to ::2 rdr-to (lo0:0) +match out on lo0 inet6 from (lo0:0) to ::1 nat-to (lo1000000:0) static-port +match in on lo0 inet6 from ::1 to (lo1000000:0) rdr-to (lo0:0) +match out on lo0 inet6 from (lo0:0) to (lo1000000:0) nat-to (lo1000000:0) static-port +match in on lo0 inet6 from (lo1000000:0) to (lo1000000:0) rdr-to (lo0:0) +match out on lo0 inet6 from ::1 to nat-to ::2 static-port +match in on lo0 inet6 from to ::2 rdr-to ::1 +match out on lo0 inet6 from ::1 to ! nat-to ::2 static-port +match in on lo0 inet6 from ! to ::2 rdr-to ::1 +match out on lo0 inet6 from ::1 to (lo1000000:0) nat-to ::2 static-port +match in on lo0 inet6 from (lo1000000:0) to ::2 rdr-to ::1 +match out on lo0 inet6 from ::1 to ! (lo1000000:0) nat-to ::2 static-port +match in on lo0 inet6 from ! (lo1000000:0) to ::2 rdr-to ::1 +match out on lo0 inet6 from (lo0:0) to nat-to ::2 static-port +match in on lo0 inet6 from to ::2 rdr-to (lo0:0) +match out on lo0 inet6 from ::1 to (lo0) nat-to ::1 static-port +match in on lo0 inet6 from (lo0) to ::1 rdr-to ::1 +match out on lo0 inet6 from ::1 to (lo0:0) nat-to ::1 static-port +match in on lo0 inet6 from (lo0:0) to ::1 rdr-to ::1 +match out on lo0 inet6 from ::1 to (lo0:peer) nat-to ::1 static-port +match in on lo0 inet6 from (lo0:peer) to ::1 rdr-to ::1 +match out on lo0 inet6 from ::1 to (lo0:peer:0) nat-to ::1 static-port +match in on lo0 inet6 from (lo0:peer:0) to ::1 rdr-to ::1 +match out on lo0 inet6 from ::1 to (lo0:broadcast) nat-to ::1 static-port +match in on lo0 inet6 from (lo0:broadcast) to ::1 rdr-to ::1 +match out on lo0 inet6 from ::1 to (lo0:broadcast:0) nat-to ::1 static-port +match in on lo0 inet6 from (lo0:broadcast:0) to ::1 rdr-to ::1 +match out on lo0 inet6 from ::1 to (lo0:network) nat-to ::1 static-port +match in on lo0 inet6 from (lo0:network) to ::1 rdr-to ::1 +match out on lo0 inet6 from ::1 to (lo0:network:0) nat-to ::1 static-port +match in on lo0 inet6 from (lo0:network:0) to ::1 rdr-to ::1 +match out on lo0 inet6 from ::1 to (lo0)/100 nat-to ::2 static-port +match in on lo0 inet6 from (lo0)/100 to ::2 rdr-to ::1 +match out on lo0 inet6 from ::1 to (lo0:0)/100 nat-to ::2 static-port +match in on lo0 inet6 from (lo0:0)/100 to ::2 rdr-to ::1 +match out on lo0 inet6 from ::1 to (lo0:peer)/100 nat-to ::2 static-port +match in on lo0 inet6 from (lo0:peer)/100 to ::2 rdr-to ::1 +match out on lo0 inet6 from ::1 to (lo0:peer:0)/100 nat-to ::2 static-port +match in on lo0 inet6 from (lo0:peer:0)/100 to ::2 rdr-to ::1 +match out on lo inet6 from (lo0:0) to ::1 nat-to ::2 static-port +match in on lo inet6 from ::1 to ::2 rdr-to (lo0:0) +match out on tun inet6 from (lo0:0) to ::1 nat-to ::2 static-port +match in on tun inet6 from ::1 to ::2 rdr-to (lo0:0) diff --git a/src/regress/sbin/pfctl/pf17.optimized b/src/regress/sbin/pfctl/pf17.optimized new file mode 100644 index 000000000..f541e3978 --- /dev/null +++ b/src/regress/sbin/pfctl/pf17.optimized @@ -0,0 +1,344 @@ +@0 match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 static-port + [ Skip steps: i=82 f=40 p=2 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 inet from any to 10.0.0.1 rdr-to 192.168.1.1 + [ Skip steps: i=82 f=40 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 static-port + [ Skip steps: i=82 f=40 p=4 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match in on lo0 inet proto tcp from any to 10.0.0.2 rdr-to 192.168.1.2 + [ Skip steps: i=82 f=40 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 static-port + [ Skip steps: i=82 f=40 p=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match in on lo0 inet proto udp from any to 10.0.0.3 rdr-to 192.168.1.3 + [ Skip steps: i=82 f=40 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match out on lo0 inet proto icmp from 192.168.1.4 to any nat-to 10.0.0.4 static-port + [ Skip steps: i=82 f=40 p=8 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match in on lo0 inet proto icmp from any to 10.0.0.4 rdr-to 192.168.1.4 + [ Skip steps: i=82 f=40 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match out on lo0 inet from 192.168.1.5 to 172.16.1.1 nat-to 10.0.0.5 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 match in on lo0 inet from 172.16.1.1 to 10.0.0.5 rdr-to 192.168.1.5 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 match out on lo0 inet from 192.168.1.6 to 172.16.1.2 nat-to 10.0.0.6 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 match in on lo0 inet from 172.16.1.2 to 10.0.0.6 rdr-to 192.168.1.6 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 match out on lo0 inet from 192.168.1.7 to 172.16.2.0/24 nat-to 10.0.0.7 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 match in on lo0 inet from 172.16.2.0/24 to 10.0.0.7 rdr-to 192.168.1.7 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 match out on lo0 inet from 192.168.2.0/24 to any nat-to 10.0.5.0/24 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 match in on lo0 inet from any to 10.0.5.0/24 rdr-to 192.168.2.0/24 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 match out on lo0 inet from 192.168.2.0/28 to any nat-to 10.0.4.0/28 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 match in on lo0 inet from any to 10.0.4.0/28 rdr-to 192.168.2.0/28 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 match out on lo0 inet from 192.168.2.0/30 to 192.168.3.1 nat-to 10.0.3.0/30 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 match in on lo0 inet from 192.168.3.1 to 10.0.3.0/30 rdr-to 192.168.2.0/30 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 match out on lo0 inet from 192.168.1.8 to ! 172.17.0.0/16 nat-to 10.0.0.8 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 match in on lo0 inet from ! 172.17.0.0/16 to 10.0.0.8 rdr-to 192.168.1.8 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@22 match out on lo0 inet from 1.1.1.1 to no-route nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@23 match in on lo0 inet from no-route to 2.2.2.2 rdr-to 1.1.1.1 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@24 match out on lo0 inet from (lo0:0:1) to 1.1.1.1 nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@25 match in on lo0 inet from 1.1.1.1 to 2.2.2.2 rdr-to (lo0:0:1) + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@26 match out on lo0 inet from (lo0:0:1) to 1.1.1.1 nat-to (lo1000000:0:*) static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@27 match in on lo0 inet from 1.1.1.1 to (lo1000000:0:*) rdr-to (lo0:0:1) + [ Skip steps: i=82 f=40 p=end sp=end da=30 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@28 match out on lo0 inet from (lo0:0:1) to (lo1000000:0:*) nat-to (lo1000000:0:*) static-port + [ Skip steps: i=82 f=40 p=end sp=end da=30 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@29 match in on lo0 inet from (lo1000000:0:*) to (lo1000000:0:*) rdr-to (lo0:0:1) + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@30 match out on lo0 inet from 1.1.1.1 to nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@31 match in on lo0 inet from to 2.2.2.2 rdr-to 1.1.1.1 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@32 match out on lo0 inet from 1.1.1.1 to ! nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@33 match in on lo0 inet from ! to 2.2.2.2 rdr-to 1.1.1.1 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@34 match out on lo0 inet from 1.1.1.1 to (lo1000000:0:*) nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@35 match in on lo0 inet from (lo1000000:0:*) to 2.2.2.2 rdr-to 1.1.1.1 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@36 match out on lo0 inet from 1.1.1.1 to ! (lo1000000:0:*) nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@37 match in on lo0 inet from ! (lo1000000:0:*) to 2.2.2.2 rdr-to 1.1.1.1 + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@38 match out on lo0 inet from (lo0:0:1) to nat-to 2.2.2.2 static-port + [ Skip steps: i=82 f=40 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@39 match in on lo0 inet from to 2.2.2.2 rdr-to (lo0:0:1) + [ Skip steps: i=82 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@40 match out on lo0 inet6 from ::1 to no-route nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@41 match in on lo0 inet6 from no-route to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@42 match out on lo0 inet6 from (lo0:0:1) to ::1 nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@43 match in on lo0 inet6 from ::1 to ::2 rdr-to (lo0:0:1) + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@44 match out on lo0 inet6 from (lo0:0:1) to ::1 nat-to (lo1000000:0:*) static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@45 match in on lo0 inet6 from ::1 to (lo1000000:0:*) rdr-to (lo0:0:1) + [ Skip steps: i=82 f=end p=end sp=end da=48 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@46 match out on lo0 inet6 from (lo0:0:1) to (lo1000000:0:*) nat-to (lo1000000:0:*) static-port + [ Skip steps: i=82 f=end p=end sp=end da=48 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@47 match in on lo0 inet6 from (lo1000000:0:*) to (lo1000000:0:*) rdr-to (lo0:0:1) + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@48 match out on lo0 inet6 from ::1 to nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@49 match in on lo0 inet6 from to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@50 match out on lo0 inet6 from ::1 to ! nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@51 match in on lo0 inet6 from ! to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@52 match out on lo0 inet6 from ::1 to (lo1000000:0:*) nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@53 match in on lo0 inet6 from (lo1000000:0:*) to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@54 match out on lo0 inet6 from ::1 to ! (lo1000000:0:*) nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@55 match in on lo0 inet6 from ! (lo1000000:0:*) to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@56 match out on lo0 inet6 from (lo0:0:1) to nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@57 match in on lo0 inet6 from to ::2 rdr-to (lo0:0:1) + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@58 match out on lo0 inet6 from ::1 to (lo0:2) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@59 match in on lo0 inet6 from (lo0:2) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@60 match out on lo0 inet6 from ::1 to (lo0:0:1) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@61 match in on lo0 inet6 from (lo0:0:1) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@62 match out on lo0 inet6 from ::1 to (lo0:peer:*) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@63 match in on lo0 inet6 from (lo0:peer:*) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@64 match out on lo0 inet6 from ::1 to (lo0:peer:0:*) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@65 match in on lo0 inet6 from (lo0:peer:0:*) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@66 match out on lo0 inet6 from ::1 to (lo0:broadcast:*) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@67 match in on lo0 inet6 from (lo0:broadcast:*) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@68 match out on lo0 inet6 from ::1 to (lo0:broadcast:0:*) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@69 match in on lo0 inet6 from (lo0:broadcast:0:*) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@70 match out on lo0 inet6 from ::1 to (lo0:network:1) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@71 match in on lo0 inet6 from (lo0:network:1) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@72 match out on lo0 inet6 from ::1 to (lo0:network:0:1) nat-to ::1 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@73 match in on lo0 inet6 from (lo0:network:0:1) to ::1 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@74 match out on lo0 inet6 from ::1 to (lo0:2)/100 nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@75 match in on lo0 inet6 from (lo0:2)/100 to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@76 match out on lo0 inet6 from ::1 to (lo0:0:1)/100 nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@77 match in on lo0 inet6 from (lo0:0:1)/100 to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@78 match out on lo0 inet6 from ::1 to (lo0:peer:*)/100 nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@79 match in on lo0 inet6 from (lo0:peer:*)/100 to ::2 rdr-to ::1 + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@80 match out on lo0 inet6 from ::1 to (lo0:peer:0:*)/100 nat-to ::2 static-port + [ Skip steps: i=82 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@81 match in on lo0 inet6 from (lo0:peer:0:*)/100 to ::2 rdr-to ::1 + [ Skip steps: f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@82 match out on lo inet6 from (lo0:0:1) to ::1 nat-to ::2 static-port + [ Skip steps: i=84 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@83 match in on lo inet6 from ::1 to ::2 rdr-to (lo0:0:1) + [ Skip steps: f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@84 match out on tun inet6 from (lo0:0:1) to ::1 nat-to ::2 static-port + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@85 match in on tun inet6 from ::1 to ::2 rdr-to (lo0:0:1) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf18.in b/src/regress/sbin/pfctl/pf18.in new file mode 100644 index 000000000..ab3c81f86 --- /dev/null +++ b/src/regress/sbin/pfctl/pf18.in @@ -0,0 +1,19 @@ +# test nat + +TEST_LIST1 = "{ 192.168.1.5, 192.168.1.6, 192.168.1.7 }" +TEST_LIST2 = "{ 172.6.1.1, 172.14.1.2/32, 172.16.2.0/24 }" + +match out on lo0 from 192.168.1.1 to any nat-to 10.0.0.1 +match out on lo0 proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 +match out on lo0 proto udp from 192.168.1.3 to any nat-to 10.0.0.3 +match out on lo0 proto icmp from 192.168.1.4 to any nat-to 10.0.0.4 + +match out on lo0 inet from $TEST_LIST1 to $TEST_LIST2 nat-to lo0 + +match out on lo0 inet from 192.168.0.1/24 to any nat-to (lo0) + +match out on lo0 from 192.168.1.8 to ! 172.17.0.0/16 nat-to 10.0.0.8 + +match out on ! lo0 proto { udp, tcp } from any to any nat-to 10.0.0.8 static-port + +match out on { lo0, tun1000000 } from any to any nat-to 10.0.0.8 diff --git a/src/regress/sbin/pfctl/pf18.loaded b/src/regress/sbin/pfctl/pf18.loaded new file mode 100644 index 000000000..83c6f7f54 --- /dev/null +++ b/src/regress/sbin/pfctl/pf18.loaded @@ -0,0 +1,76 @@ +@0 match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 + [ Skip steps: i=15 d=end f=end sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 + [ Skip steps: i=15 d=end f=end sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 + [ Skip steps: i=15 d=end f=end sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match out on lo0 inet proto icmp from 192.168.1.4 to any nat-to 10.0.0.4 + [ Skip steps: i=15 d=end f=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match out on lo0 inet from 192.168.1.5 to 172.6.1.1 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sa=7 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match out on lo0 inet from 192.168.1.5 to 172.14.1.2 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sa=7 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match out on lo0 inet from 192.168.1.5 to 172.16.2.0/24 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match out on lo0 inet from 192.168.1.6 to 172.6.1.1 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sa=10 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match out on lo0 inet from 192.168.1.6 to 172.14.1.2 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sa=10 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 match out on lo0 inet from 192.168.1.6 to 172.16.2.0/24 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 match out on lo0 inet from 192.168.1.7 to 172.6.1.1 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sa=13 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 match out on lo0 inet from 192.168.1.7 to 172.14.1.2 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sa=13 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 match out on lo0 inet from 192.168.1.7 to 172.16.2.0/24 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 match out on lo0 inet from 192.168.0.0/24 to any nat-to (lo0:1) round-robin + [ Skip steps: i=15 d=end f=end p=15 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 match out on lo0 inet from 192.168.1.8 to ! 172.17.0.0/16 nat-to 10.0.0.8 + [ Skip steps: d=end f=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 match out on ! lo0 inet proto udp all nat-to 10.0.0.8 static-port + [ Skip steps: i=17 d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 match out on ! lo0 inet proto tcp all nat-to 10.0.0.8 static-port + [ Skip steps: d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 match out on lo0 inet all nat-to 10.0.0.8 + [ Skip steps: d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 match out on tun1000000 inet all nat-to 10.0.0.8 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf18.ok b/src/regress/sbin/pfctl/pf18.ok new file mode 100644 index 000000000..6ba137ae8 --- /dev/null +++ b/src/regress/sbin/pfctl/pf18.ok @@ -0,0 +1,21 @@ +TEST_LIST1 = "{ 192.168.1.5, 192.168.1.6, 192.168.1.7 }" +TEST_LIST2 = "{ 172.6.1.1, 172.14.1.2/32, 172.16.2.0/24 }" +match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 +match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 +match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 +match out on lo0 inet proto icmp from 192.168.1.4 to any nat-to 10.0.0.4 +match out on lo0 inet from 192.168.1.5 to 172.6.1.1 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.5 to 172.14.1.2 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.5 to 172.16.2.0/24 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.6 to 172.6.1.1 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.6 to 172.14.1.2 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.6 to 172.16.2.0/24 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.7 to 172.6.1.1 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.7 to 172.14.1.2 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.7 to 172.16.2.0/24 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.0.0/24 to any nat-to (lo0) round-robin +match out on lo0 inet from 192.168.1.8 to ! 172.17.0.0/16 nat-to 10.0.0.8 +match out on ! lo0 inet proto udp all nat-to 10.0.0.8 static-port +match out on ! lo0 inet proto tcp all nat-to 10.0.0.8 static-port +match out on lo0 inet all nat-to 10.0.0.8 +match out on tun1000000 inet all nat-to 10.0.0.8 diff --git a/src/regress/sbin/pfctl/pf18.optimized b/src/regress/sbin/pfctl/pf18.optimized new file mode 100644 index 000000000..83c6f7f54 --- /dev/null +++ b/src/regress/sbin/pfctl/pf18.optimized @@ -0,0 +1,76 @@ +@0 match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 + [ Skip steps: i=15 d=end f=end sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 + [ Skip steps: i=15 d=end f=end sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 + [ Skip steps: i=15 d=end f=end sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match out on lo0 inet proto icmp from 192.168.1.4 to any nat-to 10.0.0.4 + [ Skip steps: i=15 d=end f=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match out on lo0 inet from 192.168.1.5 to 172.6.1.1 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sa=7 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match out on lo0 inet from 192.168.1.5 to 172.14.1.2 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sa=7 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match out on lo0 inet from 192.168.1.5 to 172.16.2.0/24 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match out on lo0 inet from 192.168.1.6 to 172.6.1.1 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sa=10 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match out on lo0 inet from 192.168.1.6 to 172.14.1.2 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sa=10 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 match out on lo0 inet from 192.168.1.6 to 172.16.2.0/24 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 match out on lo0 inet from 192.168.1.7 to 172.6.1.1 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sa=13 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 match out on lo0 inet from 192.168.1.7 to 172.14.1.2 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sa=13 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 match out on lo0 inet from 192.168.1.7 to 172.16.2.0/24 nat-to 127.0.0.1 + [ Skip steps: i=15 d=end f=end p=15 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 match out on lo0 inet from 192.168.0.0/24 to any nat-to (lo0:1) round-robin + [ Skip steps: i=15 d=end f=end p=15 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 match out on lo0 inet from 192.168.1.8 to ! 172.17.0.0/16 nat-to 10.0.0.8 + [ Skip steps: d=end f=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 match out on ! lo0 inet proto udp all nat-to 10.0.0.8 static-port + [ Skip steps: i=17 d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 match out on ! lo0 inet proto tcp all nat-to 10.0.0.8 static-port + [ Skip steps: d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 match out on lo0 inet all nat-to 10.0.0.8 + [ Skip steps: d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 match out on tun1000000 inet all nat-to 10.0.0.8 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf19.in b/src/regress/sbin/pfctl/pf19.in new file mode 100644 index 000000000..5005302c6 --- /dev/null +++ b/src/regress/sbin/pfctl/pf19.in @@ -0,0 +1,9 @@ +EVIL = "lo0" +GOOD = "{ lo0, lo1000000 }" +GOOD_NET = "{ 127.0.0.0/24, 10.0.1.0/24 }" +DEST_NET = "{ 1.2.3.4/25, 2.4.6.8/30 }" + +match in on lo0 proto tcp from any to 1.2.3.4/32 port 2222 rdr-to 10.0.0.10 port 22 + +# Test list processing +match in on $GOOD proto tcp from $GOOD_NET to $DEST_NET port 21 rdr-to 127.0.0.1 port 8021 diff --git a/src/regress/sbin/pfctl/pf19.loaded b/src/regress/sbin/pfctl/pf19.loaded new file mode 100644 index 000000000..07d401a7d --- /dev/null +++ b/src/regress/sbin/pfctl/pf19.loaded @@ -0,0 +1,36 @@ +@0 match in on lo0 inet proto tcp from any to 1.2.3.4 port = 2222 rdr-to 10.0.0.10 port 22 + [ Skip steps: i=5 d=end f=end p=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=5 d=end f=end p=end sa=3 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match in on lo0 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=5 d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match in on lo0 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=5 d=end f=end p=end sa=5 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match in on lo0 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sa=7 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf19.ok b/src/regress/sbin/pfctl/pf19.ok new file mode 100644 index 000000000..a5afc374d --- /dev/null +++ b/src/regress/sbin/pfctl/pf19.ok @@ -0,0 +1,13 @@ +EVIL = "lo0" +GOOD = "{ lo0, lo1000000 }" +GOOD_NET = "{ 127.0.0.0/24, 10.0.1.0/24 }" +DEST_NET = "{ 1.2.3.4/25, 2.4.6.8/30 }" +match in on lo0 inet proto tcp from any to 1.2.3.4 port = 2222 rdr-to 10.0.0.10 port 22 +match in on lo0 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo0 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo0 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo0 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 diff --git a/src/regress/sbin/pfctl/pf19.optimized b/src/regress/sbin/pfctl/pf19.optimized new file mode 100644 index 000000000..07d401a7d --- /dev/null +++ b/src/regress/sbin/pfctl/pf19.optimized @@ -0,0 +1,36 @@ +@0 match in on lo0 inet proto tcp from any to 1.2.3.4 port = 2222 rdr-to 10.0.0.10 port 22 + [ Skip steps: i=5 d=end f=end p=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=5 d=end f=end p=end sa=3 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match in on lo0 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=5 d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match in on lo0 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=5 d=end f=end p=end sa=5 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match in on lo0 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sa=7 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf2.in b/src/regress/sbin/pfctl/pf2.in new file mode 100644 index 000000000..bef5d9b08 --- /dev/null +++ b/src/regress/sbin/pfctl/pf2.in @@ -0,0 +1,34 @@ +# test + +block out log on tun1000000 all +block in log on tun1000000 all + +block return-rst out log on tun1000000 proto tcp all +block return-rst in log on tun1000000 proto tcp all +block return-icmp out log on tun1000000 proto udp all +block return-icmp in log on tun1000000 proto udp all + +block out log quick on tun1000000 from ! 157.161.48.183 to any + +block in quick on tun1000000 from any to 255.255.255.255 + +block in log quick on tun1000000 from 10.0.0.0/8 to any +block in log quick on tun1000000 from 172.16.0.0/12 to any +block in quick log on tun1000000 from 192.168.0.0/16 to any +block in quick log on tun1000000 from 255.255.255.255/32 to any + +block in log quick from no-route to any + +pass out on tun1000000 inet proto icmp all icmp-type 8 code 0 keep state +pass in on tun1000000 inet proto icmp all icmp-type 8 code 0 keep state + +pass out on tun1000000 proto udp all keep state + +pass in on tun1000000 proto udp from any to any port = domain keep state + +pass out on tun1000000 proto tcp all keep state + +pass in on tun1000000 proto tcp from any to any port = ssh keep state +pass in on tun1000000 proto tcp from any to any port = smtp keep state +pass in on tun1000000 proto tcp from any to any port = domain keep state +pass in on tun1000000 proto tcp from any to any port = auth keep state diff --git a/src/regress/sbin/pfctl/pf2.loaded b/src/regress/sbin/pfctl/pf2.loaded new file mode 100644 index 000000000..967e5d83a --- /dev/null +++ b/src/regress/sbin/pfctl/pf2.loaded @@ -0,0 +1,88 @@ +@0 block drop out log on tun1000000 all + [ Skip steps: i=12 f=6 p=2 sa=6 sp=end da=7 dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in log on tun1000000 all + [ Skip steps: i=12 f=6 sa=6 sp=end da=7 dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block return-rst out log on tun1000000 proto tcp all + [ Skip steps: i=12 f=6 p=4 sa=6 sp=end da=7 dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block return-rst in log on tun1000000 proto tcp all + [ Skip steps: i=12 f=6 sa=6 sp=end da=7 dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block return-icmp(port-unr, port-unr) out log on tun1000000 proto udp all + [ Skip steps: i=12 f=6 p=6 sa=6 sp=end da=7 dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block return-icmp(port-unr, port-unr) in log on tun1000000 proto udp all + [ Skip steps: i=12 sp=end da=7 dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 block drop out log quick on tun1000000 inet from ! 157.161.48.183 to any + [ Skip steps: i=12 f=12 p=13 sp=end dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block drop in quick on tun1000000 inet from any to 255.255.255.255 + [ Skip steps: i=12 d=13 f=12 p=13 sp=end dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block drop in log quick on tun1000000 inet from 10.0.0.0/8 to any + [ Skip steps: i=12 d=13 f=12 p=13 sp=end da=end dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 block drop in log quick on tun1000000 inet from 172.16.0.0/12 to any + [ Skip steps: i=12 d=13 f=12 p=13 sp=end da=end dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block drop in log quick on tun1000000 inet from 192.168.0.0/16 to any + [ Skip steps: i=12 d=13 f=12 p=13 sp=end da=end dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 block drop in log quick on tun1000000 inet from 255.255.255.255 to any + [ Skip steps: d=13 p=13 sp=end da=end dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 block drop in log quick from no-route to any + [ Skip steps: sp=end da=end dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass out on tun1000000 inet proto icmp all icmp-type echoreq code 0 keep state + [ Skip steps: i=end f=15 p=15 sa=end sp=end da=end dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 pass in on tun1000000 inet proto icmp all icmp-type echoreq code 0 keep state + [ Skip steps: i=end sa=end sp=end da=end dp=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass out on tun1000000 proto udp all keep state + [ Skip steps: i=end f=end p=17 sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass in on tun1000000 proto udp from any to any port = domain keep state + [ Skip steps: i=end f=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass out on tun1000000 proto tcp all flags S/SA keep state + [ Skip steps: i=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 pass in on tun1000000 proto tcp from any to any port = ssh flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 pass in on tun1000000 proto tcp from any to any port = smtp flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 pass in on tun1000000 proto tcp from any to any port = domain flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 pass in on tun1000000 proto tcp from any to any port = auth flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf2.ok b/src/regress/sbin/pfctl/pf2.ok new file mode 100644 index 000000000..02e309901 --- /dev/null +++ b/src/regress/sbin/pfctl/pf2.ok @@ -0,0 +1,22 @@ +block drop out log on tun1000000 all +block drop in log on tun1000000 all +block return-rst out log on tun1000000 proto tcp all +block return-rst in log on tun1000000 proto tcp all +block return-icmp(port-unr, port-unr) out log on tun1000000 proto udp all +block return-icmp(port-unr, port-unr) in log on tun1000000 proto udp all +block drop out log quick on tun1000000 inet from ! 157.161.48.183 to any +block drop in quick on tun1000000 inet from any to 255.255.255.255 +block drop in log quick on tun1000000 inet from 10.0.0.0/8 to any +block drop in log quick on tun1000000 inet from 172.16.0.0/12 to any +block drop in log quick on tun1000000 inet from 192.168.0.0/16 to any +block drop in log quick on tun1000000 inet from 255.255.255.255 to any +block drop in log quick from no-route to any +pass out on tun1000000 inet proto icmp all icmp-type echoreq code 0 keep state +pass in on tun1000000 inet proto icmp all icmp-type echoreq code 0 keep state +pass out on tun1000000 proto udp all keep state +pass in on tun1000000 proto udp from any to any port = domain keep state +pass out on tun1000000 proto tcp all flags S/SA keep state +pass in on tun1000000 proto tcp from any to any port = ssh flags S/SA keep state +pass in on tun1000000 proto tcp from any to any port = smtp flags S/SA keep state +pass in on tun1000000 proto tcp from any to any port = domain flags S/SA keep state +pass in on tun1000000 proto tcp from any to any port = auth flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf2.optimized b/src/regress/sbin/pfctl/pf2.optimized new file mode 100644 index 000000000..1742eb371 --- /dev/null +++ b/src/regress/sbin/pfctl/pf2.optimized @@ -0,0 +1,88 @@ +@0 block drop out log on tun1000000 all + [ Skip steps: i=12 f=6 p=2 sa=6 sp=end da=7 dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in log on tun1000000 all + [ Skip steps: i=12 f=6 sa=6 sp=end da=7 dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block return-rst out log on tun1000000 proto tcp all + [ Skip steps: i=12 f=6 p=4 sa=6 sp=end da=7 dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block return-rst in log on tun1000000 proto tcp all + [ Skip steps: i=12 f=6 sa=6 sp=end da=7 dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block return-icmp(port-unr, port-unr) out log on tun1000000 proto udp all + [ Skip steps: i=12 f=6 p=6 sa=6 sp=end da=7 dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block return-icmp(port-unr, port-unr) in log on tun1000000 proto udp all + [ Skip steps: i=12 sp=end da=7 dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 block drop out log quick on tun1000000 inet from ! 157.161.48.183 to any + [ Skip steps: i=12 f=12 p=13 sp=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block drop in quick on tun1000000 inet from any to 255.255.255.255 + [ Skip steps: i=12 d=19 f=12 p=13 sp=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block drop in log quick on tun1000000 inet from 10.0.0.0/8 to any + [ Skip steps: i=12 d=19 f=12 p=13 sp=end da=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 block drop in log quick on tun1000000 inet from 172.16.0.0/12 to any + [ Skip steps: i=12 d=19 f=12 p=13 sp=end da=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block drop in log quick on tun1000000 inet from 192.168.0.0/16 to any + [ Skip steps: i=12 d=19 f=12 p=13 sp=end da=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 block drop in log quick on tun1000000 inet from 255.255.255.255 to any + [ Skip steps: d=19 p=13 sp=end da=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 block drop in log quick from no-route to any + [ Skip steps: d=19 f=17 sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass in on tun1000000 proto tcp from any to any port = ssh flags S/SA keep state + [ Skip steps: i=end d=19 f=17 p=17 sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 pass in on tun1000000 proto tcp from any to any port = smtp flags S/SA keep state + [ Skip steps: i=end d=19 f=17 p=17 sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass in on tun1000000 proto tcp from any to any port = domain flags S/SA keep state + [ Skip steps: i=end d=19 f=17 p=17 sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass in on tun1000000 proto tcp from any to any port = auth flags S/SA keep state + [ Skip steps: i=end d=19 sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass in on tun1000000 inet proto icmp all icmp-type echoreq code 0 keep state + [ Skip steps: i=end d=19 sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 pass in on tun1000000 proto udp from any to any port = domain keep state + [ Skip steps: i=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 pass out on tun1000000 inet proto icmp all icmp-type echoreq code 0 keep state + [ Skip steps: i=end d=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 pass out on tun1000000 proto udp all keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 pass out on tun1000000 proto tcp all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf20.in b/src/regress/sbin/pfctl/pf20.in new file mode 100644 index 000000000..c973785bc --- /dev/null +++ b/src/regress/sbin/pfctl/pf20.in @@ -0,0 +1,9 @@ +# Test whether list expansion in NAT/RDR works correctly + +EVIL = "lo0" +GOOD = "{ lo0, lo1000000 }" +GOOD_NET = "{ 127.0.0.0/24, 10.0.1.0/24 }" +DEST_NET = "{ 1.2.3.4/25, 2.4.6.8/30 }" + +match out on $EVIL inet from $GOOD_NET to $DEST_NET nat-to $EVIL +match in on $GOOD proto tcp from $GOOD_NET to $DEST_NET port 21 rdr-to 127.0.0.1 port 8021 diff --git a/src/regress/sbin/pfctl/pf20.loaded b/src/regress/sbin/pfctl/pf20.loaded new file mode 100644 index 000000000..f60ab43e2 --- /dev/null +++ b/src/regress/sbin/pfctl/pf20.loaded @@ -0,0 +1,48 @@ +@0 match out on lo0 inet from 127.0.0.0/24 to 1.2.3.0/25 nat-to 127.0.0.1 + [ Skip steps: i=8 d=4 f=end p=4 sa=2 sp=end dp=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match out on lo0 inet from 127.0.0.0/24 to 2.4.6.8/30 nat-to 127.0.0.1 + [ Skip steps: i=8 d=4 f=end p=4 sp=end dp=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet from 10.0.1.0/24 to 1.2.3.0/25 nat-to 127.0.0.1 + [ Skip steps: i=8 d=4 f=end p=4 sa=4 sp=end dp=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match out on lo0 inet from 10.0.1.0/24 to 2.4.6.8/30 nat-to 127.0.0.1 + [ Skip steps: i=8 f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match in on lo0 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=8 d=end f=end p=end sa=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match in on lo0 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=8 d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match in on lo0 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=8 d=end f=end p=end sa=8 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match in on lo0 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sa=10 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf20.ok b/src/regress/sbin/pfctl/pf20.ok new file mode 100644 index 000000000..bd2c6cf20 --- /dev/null +++ b/src/regress/sbin/pfctl/pf20.ok @@ -0,0 +1,16 @@ +EVIL = "lo0" +GOOD = "{ lo0, lo1000000 }" +GOOD_NET = "{ 127.0.0.0/24, 10.0.1.0/24 }" +DEST_NET = "{ 1.2.3.4/25, 2.4.6.8/30 }" +match out on lo0 inet from 127.0.0.0/24 to 1.2.3.0/25 nat-to 127.0.0.1 +match out on lo0 inet from 127.0.0.0/24 to 2.4.6.8/30 nat-to 127.0.0.1 +match out on lo0 inet from 10.0.1.0/24 to 1.2.3.0/25 nat-to 127.0.0.1 +match out on lo0 inet from 10.0.1.0/24 to 2.4.6.8/30 nat-to 127.0.0.1 +match in on lo0 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo0 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo0 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo0 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 diff --git a/src/regress/sbin/pfctl/pf20.optimized b/src/regress/sbin/pfctl/pf20.optimized new file mode 100644 index 000000000..f60ab43e2 --- /dev/null +++ b/src/regress/sbin/pfctl/pf20.optimized @@ -0,0 +1,48 @@ +@0 match out on lo0 inet from 127.0.0.0/24 to 1.2.3.0/25 nat-to 127.0.0.1 + [ Skip steps: i=8 d=4 f=end p=4 sa=2 sp=end dp=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match out on lo0 inet from 127.0.0.0/24 to 2.4.6.8/30 nat-to 127.0.0.1 + [ Skip steps: i=8 d=4 f=end p=4 sp=end dp=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet from 10.0.1.0/24 to 1.2.3.0/25 nat-to 127.0.0.1 + [ Skip steps: i=8 d=4 f=end p=4 sa=4 sp=end dp=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match out on lo0 inet from 10.0.1.0/24 to 2.4.6.8/30 nat-to 127.0.0.1 + [ Skip steps: i=8 f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match in on lo0 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=8 d=end f=end p=end sa=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match in on lo0 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=8 d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match in on lo0 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=8 d=end f=end p=end sa=8 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match in on lo0 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sa=10 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf21.in b/src/regress/sbin/pfctl/pf21.in new file mode 100644 index 000000000..c3b94cd24 --- /dev/null +++ b/src/regress/sbin/pfctl/pf21.in @@ -0,0 +1,3 @@ +set reassemble yes +set reassemble no +set reassemble yes no-df diff --git a/src/regress/sbin/pfctl/pf21.ok b/src/regress/sbin/pfctl/pf21.ok new file mode 100644 index 000000000..50b0874ef --- /dev/null +++ b/src/regress/sbin/pfctl/pf21.ok @@ -0,0 +1,3 @@ +set reassemble yes +set reassemble no +set reassemble yes no-df diff --git a/src/regress/sbin/pfctl/pf21.optimized b/src/regress/sbin/pfctl/pf21.optimized new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/sbin/pfctl/pf22.in b/src/regress/sbin/pfctl/pf22.in new file mode 100644 index 000000000..d301e1de6 --- /dev/null +++ b/src/regress/sbin/pfctl/pf22.in @@ -0,0 +1,10 @@ +set optimization aggressive +set timeout { tcp.closing 6, tcp.opening 6 } +set timeout tcp.first 6 +set limit states 500 +set limit {states 1000,frags 1000} +set loginterface lo0 +set loginterface none +set hostid 1 +set require-order no +set require-order yes diff --git a/src/regress/sbin/pfctl/pf22.ok b/src/regress/sbin/pfctl/pf22.ok new file mode 100644 index 000000000..1dce21489 --- /dev/null +++ b/src/regress/sbin/pfctl/pf22.ok @@ -0,0 +1,12 @@ +set optimization aggressive +set timeout tcp.closing 6 +set timeout tcp.opening 6 +set timeout tcp.first 6 +set limit states 500 +set limit states 1000 +set limit frags 1000 +set loginterface lo0 +set loginterface none +set hostid 0x00000001 +set require-order no +set require-order yes diff --git a/src/regress/sbin/pfctl/pf23.in b/src/regress/sbin/pfctl/pf23.in new file mode 100644 index 000000000..2adbe16c4 --- /dev/null +++ b/src/regress/sbin/pfctl/pf23.in @@ -0,0 +1,2 @@ +#test negated interface matching +block in on ! lo0 all diff --git a/src/regress/sbin/pfctl/pf23.loaded b/src/regress/sbin/pfctl/pf23.loaded new file mode 100644 index 000000000..d6033524e --- /dev/null +++ b/src/regress/sbin/pfctl/pf23.loaded @@ -0,0 +1,4 @@ +@0 block drop in on ! lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf23.ok b/src/regress/sbin/pfctl/pf23.ok new file mode 100644 index 000000000..83a75fe71 --- /dev/null +++ b/src/regress/sbin/pfctl/pf23.ok @@ -0,0 +1 @@ +block drop in on ! lo0 all diff --git a/src/regress/sbin/pfctl/pf23.optimized b/src/regress/sbin/pfctl/pf23.optimized new file mode 100644 index 000000000..d6033524e --- /dev/null +++ b/src/regress/sbin/pfctl/pf23.optimized @@ -0,0 +1,4 @@ +@0 block drop in on ! lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf24.in b/src/regress/sbin/pfctl/pf24.in new file mode 100644 index 000000000..73c204933 --- /dev/null +++ b/src/regress/sbin/pfctl/pf24.in @@ -0,0 +1,8 @@ +#test variable concat +a="ssh" +b="ftp" +c=$a $b +d=$a $b $a $b +e=$a $b $b "test" $a $b + +pass in proto tcp from any to any port { $c } diff --git a/src/regress/sbin/pfctl/pf24.loaded b/src/regress/sbin/pfctl/pf24.loaded new file mode 100644 index 000000000..d92f7f501 --- /dev/null +++ b/src/regress/sbin/pfctl/pf24.loaded @@ -0,0 +1,8 @@ +@0 pass in proto tcp from any to any port = ssh flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in proto tcp from any to any port = ftp flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf24.ok b/src/regress/sbin/pfctl/pf24.ok new file mode 100644 index 000000000..c6ff2f037 --- /dev/null +++ b/src/regress/sbin/pfctl/pf24.ok @@ -0,0 +1,7 @@ +a = "ssh" +b = "ftp" +c = "ssh ftp" +d = "ssh ftp ssh ftp" +e = "ssh ftp ftp test ssh ftp" +pass in proto tcp from any to any port = ssh flags S/SA keep state +pass in proto tcp from any to any port = ftp flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf24.optimized b/src/regress/sbin/pfctl/pf24.optimized new file mode 100644 index 000000000..d92f7f501 --- /dev/null +++ b/src/regress/sbin/pfctl/pf24.optimized @@ -0,0 +1,8 @@ +@0 pass in proto tcp from any to any port = ssh flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in proto tcp from any to any port = ftp flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf25.in b/src/regress/sbin/pfctl/pf25.in new file mode 100644 index 000000000..28d1a335c --- /dev/null +++ b/src/regress/sbin/pfctl/pf25.in @@ -0,0 +1,4 @@ +antispoof for lo0 +antispoof log quick for lo0 inet +antispoof for (lo0) +antispoof log quick for (lo0) inet diff --git a/src/regress/sbin/pfctl/pf25.loaded b/src/regress/sbin/pfctl/pf25.loaded new file mode 100644 index 000000000..37180adfd --- /dev/null +++ b/src/regress/sbin/pfctl/pf25.loaded @@ -0,0 +1,20 @@ +@0 block drop in on ! lo0 inet from 127.0.0.0/8 to any + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in on ! lo0 inet6 from ::1 to any + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in log quick on ! lo0 inet from 127.0.0.0/8 to any + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in on ! lo0 from (lo0:network:2) to any + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block drop in log quick on ! lo0 inet from (lo0:network:1) to any + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf25.ok b/src/regress/sbin/pfctl/pf25.ok new file mode 100644 index 000000000..17cb83ec1 --- /dev/null +++ b/src/regress/sbin/pfctl/pf25.ok @@ -0,0 +1,5 @@ +block drop in on ! lo0 inet from 127.0.0.0/8 to any +block drop in on ! lo0 inet6 from ::1 to any +block drop in log quick on ! lo0 inet from 127.0.0.0/8 to any +block drop in on ! lo0 from (lo0:network) to any +block drop in log quick on ! lo0 inet from (lo0:network) to any diff --git a/src/regress/sbin/pfctl/pf25.optimized b/src/regress/sbin/pfctl/pf25.optimized new file mode 100644 index 000000000..37180adfd --- /dev/null +++ b/src/regress/sbin/pfctl/pf25.optimized @@ -0,0 +1,20 @@ +@0 block drop in on ! lo0 inet from 127.0.0.0/8 to any + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in on ! lo0 inet6 from ::1 to any + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in log quick on ! lo0 inet from 127.0.0.0/8 to any + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in on ! lo0 from (lo0:network:2) to any + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block drop in log quick on ! lo0 inet from (lo0:network:1) to any + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf26.in b/src/regress/sbin/pfctl/pf26.in new file mode 100644 index 000000000..5799de5af --- /dev/null +++ b/src/regress/sbin/pfctl/pf26.in @@ -0,0 +1,2 @@ +block in on lo0 inet from ! (lo0) to any +block out on lo0 inet from any to ! (lo0) diff --git a/src/regress/sbin/pfctl/pf26.loaded b/src/regress/sbin/pfctl/pf26.loaded new file mode 100644 index 000000000..ef79533ea --- /dev/null +++ b/src/regress/sbin/pfctl/pf26.loaded @@ -0,0 +1,8 @@ +@0 block drop in on lo0 inet from ! (lo0:1) to any + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop out on lo0 inet from any to ! (lo0:1) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf26.ok b/src/regress/sbin/pfctl/pf26.ok new file mode 100644 index 000000000..a9a281244 --- /dev/null +++ b/src/regress/sbin/pfctl/pf26.ok @@ -0,0 +1,2 @@ +block drop in on lo0 inet from ! (lo0) to any +block drop out on lo0 inet from any to ! (lo0) diff --git a/src/regress/sbin/pfctl/pf26.optimized b/src/regress/sbin/pfctl/pf26.optimized new file mode 100644 index 000000000..ef79533ea --- /dev/null +++ b/src/regress/sbin/pfctl/pf26.optimized @@ -0,0 +1,8 @@ +@0 block drop in on lo0 inet from ! (lo0:1) to any + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop out on lo0 inet from any to ! (lo0:1) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf27.in b/src/regress/sbin/pfctl/pf27.in new file mode 100644 index 000000000..d39da58c4 --- /dev/null +++ b/src/regress/sbin/pfctl/pf27.in @@ -0,0 +1,17 @@ +# test af detection logic + +match out on lo0 from any to 127.0.0.1 nat-to lo0 +match out on lo0 from 127.0.0.1 to any nat-to lo0 +match out on lo0 from any to lo0 nat-to 127.0.0.1 + +match out on lo0 from any to 127.0.0.1 nat-to (lo0) +match out on lo0 from 127.0.0.1 to any nat-to (lo0) +match out on lo0 from any to (lo0) nat-to 127.0.0.1 + +match in on lo0 from any to 127.0.0.1 rdr-to lo0 +match in on lo0 from 127.0.0.1 to any rdr-to lo0 +match in on lo0 from any to lo0 rdr-to 127.0.0.1 + +match in on lo0 from any to 127.0.0.1 rdr-to (lo0) +match in on lo0 from 127.0.0.1 to any rdr-to (lo0) +match in on lo0 from any to (lo0) rdr-to 127.0.0.1 diff --git a/src/regress/sbin/pfctl/pf27.loaded b/src/regress/sbin/pfctl/pf27.loaded new file mode 100644 index 000000000..9c262fdcd --- /dev/null +++ b/src/regress/sbin/pfctl/pf27.loaded @@ -0,0 +1,48 @@ +@0 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.1 + [ Skip steps: i=end d=6 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match out on lo0 inet from 127.0.0.1 to any nat-to 127.0.0.1 + [ Skip steps: i=end d=6 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.1 + [ Skip steps: i=end d=6 f=end p=end sa=4 sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match out on lo0 inet from any to 127.0.0.1 nat-to (lo0:1) round-robin + [ Skip steps: i=end d=6 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match out on lo0 inet from 127.0.0.1 to any nat-to (lo0:1) round-robin + [ Skip steps: i=end d=6 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match out on lo0 inet from any to (lo0:1) nat-to 127.0.0.1 + [ Skip steps: i=end f=end p=end sa=7 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.1 + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match in on lo0 inet from 127.0.0.1 to any rdr-to 127.0.0.1 + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.1 + [ Skip steps: i=end d=end f=end p=end sa=10 sp=end da=10 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 match in on lo0 inet from any to 127.0.0.1 rdr-to (lo0:1) round-robin + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 match in on lo0 inet from 127.0.0.1 to any rdr-to (lo0:1) round-robin + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 match in on lo0 inet from any to (lo0:1) rdr-to 127.0.0.1 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf27.ok b/src/regress/sbin/pfctl/pf27.ok new file mode 100644 index 000000000..c4709f70e --- /dev/null +++ b/src/regress/sbin/pfctl/pf27.ok @@ -0,0 +1,12 @@ +match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.1 +match out on lo0 inet from 127.0.0.1 to any nat-to 127.0.0.1 +match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.1 +match out on lo0 inet from any to 127.0.0.1 nat-to (lo0) round-robin +match out on lo0 inet from 127.0.0.1 to any nat-to (lo0) round-robin +match out on lo0 inet from any to (lo0) nat-to 127.0.0.1 +match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.1 +match in on lo0 inet from 127.0.0.1 to any rdr-to 127.0.0.1 +match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.1 +match in on lo0 inet from any to 127.0.0.1 rdr-to (lo0) round-robin +match in on lo0 inet from 127.0.0.1 to any rdr-to (lo0) round-robin +match in on lo0 inet from any to (lo0) rdr-to 127.0.0.1 diff --git a/src/regress/sbin/pfctl/pf27.optimized b/src/regress/sbin/pfctl/pf27.optimized new file mode 100644 index 000000000..3d0900b9f --- /dev/null +++ b/src/regress/sbin/pfctl/pf27.optimized @@ -0,0 +1,40 @@ +@0 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.1 + [ Skip steps: i=end d=5 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match out on lo0 inet from 127.0.0.1 to any nat-to 127.0.0.1 + [ Skip steps: i=end d=5 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet from any to 127.0.0.1 nat-to (lo0:1) round-robin + [ Skip steps: i=end d=5 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match out on lo0 inet from 127.0.0.1 to any nat-to (lo0:1) round-robin + [ Skip steps: i=end d=5 f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match out on lo0 inet from any to (lo0:1) nat-to 127.0.0.1 + [ Skip steps: i=end f=end p=end sa=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.1 + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match in on lo0 inet from 127.0.0.1 to any rdr-to 127.0.0.1 + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match in on lo0 inet from any to 127.0.0.1 rdr-to (lo0:1) round-robin + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match in on lo0 inet from 127.0.0.1 to any rdr-to (lo0:1) round-robin + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 match in on lo0 inet from any to (lo0:1) rdr-to 127.0.0.1 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf28.in b/src/regress/sbin/pfctl/pf28.in new file mode 100644 index 000000000..cfcc0b952 --- /dev/null +++ b/src/regress/sbin/pfctl/pf28.in @@ -0,0 +1,7 @@ +# test logging keywords, and log quick/quick log order +block in log (all) quick on lo0 all +block in quick log on lo0 all +block in quick log (all) on lo0 all +block in log quick on lo0 all +block in log on lo0 all +block in log (all) on lo0 all diff --git a/src/regress/sbin/pfctl/pf28.loaded b/src/regress/sbin/pfctl/pf28.loaded new file mode 100644 index 000000000..116076ae8 --- /dev/null +++ b/src/regress/sbin/pfctl/pf28.loaded @@ -0,0 +1,24 @@ +@0 block drop in log (all) quick on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in log quick on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in log (all) quick on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in log quick on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block drop in log on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block drop in log (all) on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf28.ok b/src/regress/sbin/pfctl/pf28.ok new file mode 100644 index 000000000..ff6ca332d --- /dev/null +++ b/src/regress/sbin/pfctl/pf28.ok @@ -0,0 +1,6 @@ +block drop in log (all) quick on lo0 all +block drop in log quick on lo0 all +block drop in log (all) quick on lo0 all +block drop in log quick on lo0 all +block drop in log on lo0 all +block drop in log (all) on lo0 all diff --git a/src/regress/sbin/pfctl/pf28.optimized b/src/regress/sbin/pfctl/pf28.optimized new file mode 100644 index 000000000..116076ae8 --- /dev/null +++ b/src/regress/sbin/pfctl/pf28.optimized @@ -0,0 +1,24 @@ +@0 block drop in log (all) quick on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in log quick on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in log (all) quick on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in log quick on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block drop in log on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block drop in log (all) on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf29.in b/src/regress/sbin/pfctl/pf29.in new file mode 100644 index 000000000..9edbfd553 --- /dev/null +++ b/src/regress/sbin/pfctl/pf29.in @@ -0,0 +1,3 @@ +match in on lo0 proto tcp from any to 192.168.0.0/24 port 8000:8010 rdr-to 127.0.0.1 port 8000:* +match in on lo0 proto tcp from any to 192.168.0.0/24 port ftp:ssh rdr-to 127.0.0.1 port bgp:* +match in on lo0 proto tcp from any to 192.168.0.0/24 port 1000:3000 rdr-to 127.0.0.1 port 22 diff --git a/src/regress/sbin/pfctl/pf29.loaded b/src/regress/sbin/pfctl/pf29.loaded new file mode 100644 index 000000000..6c4baf48f --- /dev/null +++ b/src/regress/sbin/pfctl/pf29.loaded @@ -0,0 +1,12 @@ +@0 match in on lo0 inet proto tcp from any to 192.168.0.0/24 port 8000:8010 rdr-to 127.0.0.1 port 8000:8010 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 inet proto tcp from any to 192.168.0.0/24 port 21:22 rdr-to 127.0.0.1 port 179:180 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match in on lo0 inet proto tcp from any to 192.168.0.0/24 port 1000:3000 rdr-to 127.0.0.1 port 22 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf29.ok b/src/regress/sbin/pfctl/pf29.ok new file mode 100644 index 000000000..d3a91157f --- /dev/null +++ b/src/regress/sbin/pfctl/pf29.ok @@ -0,0 +1,3 @@ +match in on lo0 inet proto tcp from any to 192.168.0.0/24 port 8000:8010 rdr-to 127.0.0.1 port 8000:8010 +match in on lo0 inet proto tcp from any to 192.168.0.0/24 port 21:22 rdr-to 127.0.0.1 port 179:180 +match in on lo0 inet proto tcp from any to 192.168.0.0/24 port 1000:3000 rdr-to 127.0.0.1 port 22 diff --git a/src/regress/sbin/pfctl/pf29.optimized b/src/regress/sbin/pfctl/pf29.optimized new file mode 100644 index 000000000..6c4baf48f --- /dev/null +++ b/src/regress/sbin/pfctl/pf29.optimized @@ -0,0 +1,12 @@ +@0 match in on lo0 inet proto tcp from any to 192.168.0.0/24 port 8000:8010 rdr-to 127.0.0.1 port 8000:8010 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 inet proto tcp from any to 192.168.0.0/24 port 21:22 rdr-to 127.0.0.1 port 179:180 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match in on lo0 inet proto tcp from any to 192.168.0.0/24 port 1000:3000 rdr-to 127.0.0.1 port 22 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf3.in b/src/regress/sbin/pfctl/pf3.in new file mode 100644 index 000000000..fc8238343 --- /dev/null +++ b/src/regress/sbin/pfctl/pf3.in @@ -0,0 +1,13 @@ +pass in all +pass in from any to any + +block in proto tcp from any to any flags FUPEW/FSRPAUEW +block in proto tcp from any to any flags SF/SFRA +block in proto tcp from any to any flags /SFRAW + +pass in proto { udp, icmp, tcp } from any to any flags S/SA +pass in from any to any flags S/SA no state +pass in from any to any flags any no state +pass in from any to any flags any +pass in from any to any keep state +pass in from any to any diff --git a/src/regress/sbin/pfctl/pf3.loaded b/src/regress/sbin/pfctl/pf3.loaded new file mode 100644 index 000000000..dbeea3c5f --- /dev/null +++ b/src/regress/sbin/pfctl/pf3.loaded @@ -0,0 +1,52 @@ +@0 pass in all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=2 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in all flags S/SA keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in proto tcp all flags FPUEW/FSRPAUEW + [ Skip steps: i=end d=end f=end p=5 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in proto tcp all flags FS/FSRA + [ Skip steps: i=end d=end f=end p=5 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block drop in proto tcp all flags /FSRAW + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in proto udp all keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in proto icmp all keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in proto tcp all flags S/SA keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in all flags S/SA no state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass in all no state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass in all flags any keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass in all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass in all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf3.ok b/src/regress/sbin/pfctl/pf3.ok new file mode 100644 index 000000000..1d9432f9d --- /dev/null +++ b/src/regress/sbin/pfctl/pf3.ok @@ -0,0 +1,13 @@ +pass in all flags S/SA keep state +pass in all flags S/SA keep state +block drop in proto tcp all flags FPUEW/FSRPAUEW +block drop in proto tcp all flags FS/FSRA +block drop in proto tcp all flags /FSRAW +pass in proto udp all keep state +pass in proto icmp all keep state +pass in proto tcp all flags S/SA keep state +pass in all flags S/SA no state +pass in all no state +pass in all flags any keep state +pass in all flags S/SA keep state +pass in all flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf3.optimized b/src/regress/sbin/pfctl/pf3.optimized new file mode 100644 index 000000000..e7b9eb09f --- /dev/null +++ b/src/regress/sbin/pfctl/pf3.optimized @@ -0,0 +1,36 @@ +@0 pass in all flags S/SA keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in proto tcp all flags FPUEW/FSRPAUEW + [ Skip steps: i=end d=end f=end p=4 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in proto tcp all flags FS/FSRA + [ Skip steps: i=end d=end f=end p=4 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in proto tcp all flags /FSRAW + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in proto udp all keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in proto icmp all keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in proto tcp all flags S/SA keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in all no state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in all flags any keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf30.in b/src/regress/sbin/pfctl/pf30.in new file mode 100644 index 000000000..8ea257809 --- /dev/null +++ b/src/regress/sbin/pfctl/pf30.in @@ -0,0 +1,7 @@ +#test line continuation + +block \ + in \ + on lo0 \ + from any \ + to any diff --git a/src/regress/sbin/pfctl/pf30.loaded b/src/regress/sbin/pfctl/pf30.loaded new file mode 100644 index 000000000..e03a3b26b --- /dev/null +++ b/src/regress/sbin/pfctl/pf30.loaded @@ -0,0 +1,4 @@ +@0 block drop in on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf30.ok b/src/regress/sbin/pfctl/pf30.ok new file mode 100644 index 000000000..11fb969bb --- /dev/null +++ b/src/regress/sbin/pfctl/pf30.ok @@ -0,0 +1 @@ +block drop in on lo0 all diff --git a/src/regress/sbin/pfctl/pf30.optimized b/src/regress/sbin/pfctl/pf30.optimized new file mode 100644 index 000000000..e03a3b26b --- /dev/null +++ b/src/regress/sbin/pfctl/pf30.optimized @@ -0,0 +1,4 @@ +@0 block drop in on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf31.in b/src/regress/sbin/pfctl/pf31.in new file mode 100644 index 000000000..1968852f6 --- /dev/null +++ b/src/regress/sbin/pfctl/pf31.in @@ -0,0 +1,22 @@ +set block-policy drop +block return in on lo0 all +block return in on lo0 inet all +block return in on lo0 inet6 all +block drop in on lo0 all +block drop in on lo0 inet all +block drop in on lo0 inet6 all +block in on lo0 all +block in on lo0 inet all +block in on lo0 inet6 all +set require-order no +set block-policy return +block return in on lo0 all +block return in on lo0 inet all +block return in on lo0 inet6 all +block drop in on lo0 all +block drop in on lo0 inet all +block drop in on lo0 inet6 all +block in on lo0 all +block in on lo0 inet all +block in on lo0 inet6 all + diff --git a/src/regress/sbin/pfctl/pf31.loaded b/src/regress/sbin/pfctl/pf31.loaded new file mode 100644 index 000000000..29a3b0a09 --- /dev/null +++ b/src/regress/sbin/pfctl/pf31.loaded @@ -0,0 +1,72 @@ +@0 block return in on lo0 all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block return in on lo0 inet all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block return in on lo0 inet6 all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in on lo0 all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block drop in on lo0 inet all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block drop in on lo0 inet6 all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 block drop in on lo0 all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block drop in on lo0 inet all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block drop in on lo0 inet6 all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 block return in on lo0 all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block return in on lo0 inet all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 block return in on lo0 inet6 all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 block drop in on lo0 all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 block drop in on lo0 inet all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 block drop in on lo0 inet6 all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 block return in on lo0 all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 block return in on lo0 inet all + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 block return in on lo0 inet6 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf31.ok b/src/regress/sbin/pfctl/pf31.ok new file mode 100644 index 000000000..d04aebc51 --- /dev/null +++ b/src/regress/sbin/pfctl/pf31.ok @@ -0,0 +1,21 @@ +set block-policy drop +set require-order no +set block-policy return +block return in on lo0 all +block return in on lo0 inet all +block return in on lo0 inet6 all +block drop in on lo0 all +block drop in on lo0 inet all +block drop in on lo0 inet6 all +block drop in on lo0 all +block drop in on lo0 inet all +block drop in on lo0 inet6 all +block return in on lo0 all +block return in on lo0 inet all +block return in on lo0 inet6 all +block drop in on lo0 all +block drop in on lo0 inet all +block drop in on lo0 inet6 all +block return in on lo0 all +block return in on lo0 inet all +block return in on lo0 inet6 all diff --git a/src/regress/sbin/pfctl/pf31.optimized b/src/regress/sbin/pfctl/pf31.optimized new file mode 100644 index 000000000..d1b6d7ed6 --- /dev/null +++ b/src/regress/sbin/pfctl/pf31.optimized @@ -0,0 +1,20 @@ +@0 block return in on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block return in on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block return in on lo0 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf32.in b/src/regress/sbin/pfctl/pf32.in new file mode 100644 index 000000000..333dafa72 --- /dev/null +++ b/src/regress/sbin/pfctl/pf32.in @@ -0,0 +1,7 @@ +pass in from 10/8 to any +pass in from 10.1/8 to any +pass in from 192.168.37.29/25 to any +pass in from 192.168.37.29/24 to any +pass in from 192.168.37.29/16 to any +pass in from 192.168.37.29/8 to any + diff --git a/src/regress/sbin/pfctl/pf32.loaded b/src/regress/sbin/pfctl/pf32.loaded new file mode 100644 index 000000000..ee61b979f --- /dev/null +++ b/src/regress/sbin/pfctl/pf32.loaded @@ -0,0 +1,24 @@ +@0 pass in inet from 10.0.0.0/8 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=2 sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in inet from 10.0.0.0/8 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in inet from 192.168.37.0/25 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in inet from 192.168.37.0/24 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in inet from 192.168.0.0/16 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in inet from 192.0.0.0/8 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf32.ok b/src/regress/sbin/pfctl/pf32.ok new file mode 100644 index 000000000..826ce61eb --- /dev/null +++ b/src/regress/sbin/pfctl/pf32.ok @@ -0,0 +1,6 @@ +pass in inet from 10.0.0.0/8 to any flags S/SA keep state +pass in inet from 10.0.0.0/8 to any flags S/SA keep state +pass in inet from 192.168.37.0/25 to any flags S/SA keep state +pass in inet from 192.168.37.0/24 to any flags S/SA keep state +pass in inet from 192.168.0.0/16 to any flags S/SA keep state +pass in inet from 192.0.0.0/8 to any flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf32.optimized b/src/regress/sbin/pfctl/pf32.optimized new file mode 100644 index 000000000..0f1fb723f --- /dev/null +++ b/src/regress/sbin/pfctl/pf32.optimized @@ -0,0 +1,8 @@ +@0 pass in inet from 10.0.0.0/8 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in inet from 192.0.0.0/8 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf33.in b/src/regress/sbin/pfctl/pf33.in new file mode 100644 index 000000000..8b7d2a049 --- /dev/null +++ b/src/regress/sbin/pfctl/pf33.in @@ -0,0 +1,18 @@ +ext_if = "lo0" + +altq on $ext_if cbq bandwidth 10Mb tbrsize 1824 \ + queue { deflt, http, ssh, mail, rsets } +queue deflt bandwidth 10% priority 0 cbq(default ecn) +queue http bandwidth 1.5Mb priority 3 { http_vhosts, http_cust1 } +queue http_vhosts bandwidth 40% cbq(borrow red) +queue http_cust1 bandwidth 0.5Mb +queue mail bandwidth 10% priority 1 +queue ssh bandwidth 200Kb priority 7 cbq(borrow) +queue rsets bandwidth 150000b priority 0 cbq(red) + +block return in on $ext_if inet all queue rsets +pass in on $ext_if inet proto tcp from any to any port 80 keep state queue http +pass out on $ext_if inet proto tcp from any to any port 22 keep state queue ssh +pass in on $ext_if inet proto tcp from any to any port 22 keep state queue ssh +pass out on $ext_if inet proto tcp from any to any port 25 keep state queue mail +pass out on $ext_if inet all diff --git a/src/regress/sbin/pfctl/pf33.loaded b/src/regress/sbin/pfctl/pf33.loaded new file mode 100644 index 000000000..b46e8ba71 --- /dev/null +++ b/src/regress/sbin/pfctl/pf33.loaded @@ -0,0 +1,24 @@ +@0 block return in on lo0 inet all queue rsets +[ Skip steps: i=end d=2 f=end sa=end sp=end da=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@1 pass in on lo0 inet proto tcp from any to any port = www keep state queue http +[ Skip steps: i=end f=end p=5 sa=end sp=end da=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@2 pass out on lo0 inet proto tcp from any to any port = ssh keep state queue ssh +[ Skip steps: i=end f=end p=5 sa=end sp=end da=end dp=4 ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@3 pass in on lo0 inet proto tcp from any to any port = ssh keep state queue ssh +[ Skip steps: i=end f=end p=5 sa=end sp=end da=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@4 pass out on lo0 inet proto tcp from any to any port = smtp keep state queue mail +[ Skip steps: i=end d=end f=end sa=end sp=end da=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@5 pass out on lo0 inet all keep state +[ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + diff --git a/src/regress/sbin/pfctl/pf33.ok b/src/regress/sbin/pfctl/pf33.ok new file mode 100644 index 000000000..a45faf507 --- /dev/null +++ b/src/regress/sbin/pfctl/pf33.ok @@ -0,0 +1,15 @@ +ext_if = "lo0" +altq on lo0 cbq bandwidth 10Mb tbrsize 1824 queue { deflt http ssh mail rsets } +queue deflt bandwidth 10% priority 0 cbq( red ecn default ) +queue http bandwidth 1.50Mb priority 3 { http_vhosts http_cust1 } +queue http_vhosts bandwidth 40% cbq( red borrow ) +queue http_cust1 bandwidth 500Kb +queue mail bandwidth 10% +queue ssh bandwidth 200Kb priority 7 cbq( borrow ) +queue rsets bandwidth 150Kb priority 0 cbq( red ) +block return in on lo0 inet all queue rsets +pass in on lo0 inet proto tcp from any to any port = www flags S/SA keep state queue http +pass out on lo0 inet proto tcp from any to any port = ssh flags S/SA keep state queue ssh +pass in on lo0 inet proto tcp from any to any port = ssh flags S/SA keep state queue ssh +pass out on lo0 inet proto tcp from any to any port = smtp flags S/SA keep state queue mail +pass out on lo0 inet all flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf34.in b/src/regress/sbin/pfctl/pf34.in new file mode 100644 index 000000000..e3248d281 --- /dev/null +++ b/src/regress/sbin/pfctl/pf34.in @@ -0,0 +1,5 @@ +#mixed af, probability +pass in from any to { 127.0.0.1, 2000::1 } +pass in probability 0.5 +pass in probability 50% +pass in inet6 proto tcp from ::1 probability 0.8% diff --git a/src/regress/sbin/pfctl/pf34.loaded b/src/regress/sbin/pfctl/pf34.loaded new file mode 100644 index 000000000..c626fc813 --- /dev/null +++ b/src/regress/sbin/pfctl/pf34.loaded @@ -0,0 +1,20 @@ +@0 pass in inet from any to 127.0.0.1 flags S/SA keep state + [ Skip steps: i=end d=end p=4 sa=4 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in inet6 from any to 2000::1 flags S/SA keep state + [ Skip steps: i=end d=end p=4 sa=4 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in all flags S/SA keep state probability 50% + [ Skip steps: i=end d=end f=4 p=4 sa=4 sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in all flags S/SA keep state probability 50% + [ Skip steps: i=end d=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in inet6 proto tcp from ::1 to any flags S/SA keep state probability 0.8% + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf34.ok b/src/regress/sbin/pfctl/pf34.ok new file mode 100644 index 000000000..a91f1ae50 --- /dev/null +++ b/src/regress/sbin/pfctl/pf34.ok @@ -0,0 +1,5 @@ +pass in inet from any to 127.0.0.1 flags S/SA keep state +pass in inet6 from any to 2000::1 flags S/SA keep state +pass in all flags S/SA keep state probability 50% +pass in all flags S/SA keep state probability 50% +pass in inet6 proto tcp from ::1 to any flags S/SA keep state probability 0.8% diff --git a/src/regress/sbin/pfctl/pf34.optimized b/src/regress/sbin/pfctl/pf34.optimized new file mode 100644 index 000000000..c626fc813 --- /dev/null +++ b/src/regress/sbin/pfctl/pf34.optimized @@ -0,0 +1,20 @@ +@0 pass in inet from any to 127.0.0.1 flags S/SA keep state + [ Skip steps: i=end d=end p=4 sa=4 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in inet6 from any to 2000::1 flags S/SA keep state + [ Skip steps: i=end d=end p=4 sa=4 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in all flags S/SA keep state probability 50% + [ Skip steps: i=end d=end f=4 p=4 sa=4 sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in all flags S/SA keep state probability 50% + [ Skip steps: i=end d=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in inet6 proto tcp from ::1 to any flags S/SA keep state probability 0.8% + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf35.in b/src/regress/sbin/pfctl/pf35.in new file mode 100644 index 000000000..de12cfcd2 --- /dev/null +++ b/src/regress/sbin/pfctl/pf35.in @@ -0,0 +1,31 @@ +#test matching on tos; test queue rules which specify qlimit, test altq rule +#with tbrsize specification, test queue rules which do not specify bandwidth, +#test queue rule which doesn't specify anything +#test altq rule with qlimit spec + +intf = "lo0" +developerhosts="10.0.0.0/24" +employeehosts="10.0.1.0/24" + +altq on $intf cbq(ecn) bandwidth 10Mb qlimit 100 tbrsize 5000 \ + queue { std, http, mail, ssh } + +queue std bandwidth 10% qlimit 1 cbq(default) +queue http bandwidth 60% priority 2 cbq(borrow red) { employees, developers } +queue developers bandwidth 60% +queue employees bandwidth 40% +queue mail bandwidth 10% priority 0 cbq(borrow ecn) +queue ssh bandwidth 20% cbq(borrow) { ssh_interactive, ssh_bulk } +queue ssh_interactive priority 7 bandwidth 30% +queue ssh_bulk priority 0 qlimit 60 bandwidth 70% + +block return out on $intf inet all queue std +pass out on $intf inet proto tcp from $developerhosts to any port 80 keep state \ + queue developers +pass out on $intf inet proto tcp from $employeehosts to any port 80 keep state \ + queue employees +pass out on $intf inet proto tcp from any to any port 22 tos 0x10 \ + keep state queue ssh_interactive #priority for interactive sessions +pass out on $intf inet proto tcp from any to any port 22 tos 0x08 \ + keep state queue ssh_bulk #less priority for scp/sftp/... +pass out on $intf inet proto tcp from any to any port 25 keep state queue mail diff --git a/src/regress/sbin/pfctl/pf35.loaded b/src/regress/sbin/pfctl/pf35.loaded new file mode 100644 index 000000000..ad524701b --- /dev/null +++ b/src/regress/sbin/pfctl/pf35.loaded @@ -0,0 +1,24 @@ +@0 block return out on lo0 inet all queue std +[ Skip steps: i=end d=end f=end sp=end da=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@1 pass out on lo0 inet proto tcp from 10.0.0.0/24 to any port = www keep state queue developers +[ Skip steps: i=end d=end f=end p=end sp=end da=end dp=3 ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@2 pass out on lo0 inet proto tcp from 10.0.1.0/24 to any port = www keep state queue employees +[ Skip steps: i=end d=end f=end p=end sp=end da=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@3 pass out on lo0 inet proto tcp from any to any port = ssh tos 0x10 keep state queue ssh_interactive +[ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=5 ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@4 pass out on lo0 inet proto tcp from any to any port = ssh tos 0x08 keep state queue ssh_bulk +[ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@5 pass out on lo0 inet proto tcp from any to any port = smtp keep state queue mail +[ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + diff --git a/src/regress/sbin/pfctl/pf35.ok b/src/regress/sbin/pfctl/pf35.ok new file mode 100644 index 000000000..392f89d29 --- /dev/null +++ b/src/regress/sbin/pfctl/pf35.ok @@ -0,0 +1,18 @@ +intf = "lo0" +developerhosts = "10.0.0.0/24" +employeehosts = "10.0.1.0/24" +altq on lo0 cbq( red ecn ) bandwidth 10Mb qlimit 100 tbrsize 5000 queue { std http mail ssh } +queue std bandwidth 10% qlimit 1 cbq( default ) +queue http bandwidth 60% priority 2 cbq( red borrow ) { employees developers } +queue developers bandwidth 60% +queue employees bandwidth 40% +queue mail bandwidth 10% priority 0 cbq( red ecn borrow ) +queue ssh bandwidth 20% cbq( borrow ) { ssh_interactive ssh_bulk } +queue ssh_interactive bandwidth 30% priority 7 +queue ssh_bulk bandwidth 70% priority 0 qlimit 60 +block return out on lo0 inet all queue std +pass out on lo0 inet proto tcp from 10.0.0.0/24 to any port = www flags S/SA keep state queue developers +pass out on lo0 inet proto tcp from 10.0.1.0/24 to any port = www flags S/SA keep state queue employees +pass out on lo0 inet proto tcp from any to any port = ssh flags S/SA tos 0x10 keep state queue ssh_interactive +pass out on lo0 inet proto tcp from any to any port = ssh flags S/SA tos 0x08 keep state queue ssh_bulk +pass out on lo0 inet proto tcp from any to any port = smtp flags S/SA keep state queue mail diff --git a/src/regress/sbin/pfctl/pf36.in b/src/regress/sbin/pfctl/pf36.in new file mode 100644 index 000000000..bc7d7c7b8 --- /dev/null +++ b/src/regress/sbin/pfctl/pf36.in @@ -0,0 +1,17 @@ +# test nat pools syntax + +match out on lo0 from any to 127.0.0.1 nat-to { 127.0.0.1, 127.0.0.2 } +match out on lo0 from any to 127.0.0.1 nat-to { 127.0.0.1, 127.0.0.2 } round-robin +match out on lo0 from any to 127.0.0.1 nat-to lo0/24 bitmask static-port +match out on lo0 from any to 127.0.0.1 nat-to lo0/24 random +match out on lo0 from any to lo0 nat-to 127.0.0.1/24 source-hash 0x0123456789ABCDEF0123456789abcdef +match out on lo0 from any to 127.0.0.1 nat-to lo0/24 source-hash foobarlicious +match out on lo0 from any to 127.0.0.1 nat-to lo0/24 round-robin + +match in on lo0 from any to lo0 rdr-to { 127.0.0.1, 127.0.0.2 } +match in on lo0 from any to lo0 rdr-to { 127.0.0.1, 127.0.0.2 } round-robin +match in on lo0 from any to lo0 rdr-to 127.0.0.1/24 bitmask +match in on lo0 from any to lo0 rdr-to 127.0.0.1/24 random +match in on lo0 from any to 127.0.0.1 rdr-to lo0/24 source-hash 0x0123456789ABCDEF0123456789abcdef +match in on lo0 from any to lo0 rdr-to 127.0.0.1/24 source-hash foobarlicious +match in on lo0 from any to lo0 rdr-to 127.0.0.1/24 round-robin diff --git a/src/regress/sbin/pfctl/pf36.loaded b/src/regress/sbin/pfctl/pf36.loaded new file mode 100644 index 000000000..ed59f6a3d --- /dev/null +++ b/src/regress/sbin/pfctl/pf36.loaded @@ -0,0 +1,56 @@ +@0 match out on lo0 inet from any to 127.0.0.1 nat-to <__automatic_0:2> round-robin + [ Skip steps: i=end d=7 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match out on lo0 inet from any to 127.0.0.1 nat-to <__automatic_1:2> round-robin + [ Skip steps: i=end d=7 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 bitmask static-port + [ Skip steps: i=end d=7 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 random + [ Skip steps: i=end d=7 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 source-hash 0x0123456789abcdef0123456789abcdef + [ Skip steps: i=end d=7 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 source-hash 0x4da8e393fd22f577426cfdf7fe52d3b0 + [ Skip steps: i=end d=7 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 round-robin + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match in on lo0 inet from any to 127.0.0.1 rdr-to <__automatic_2:2> round-robin + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match in on lo0 inet from any to 127.0.0.1 rdr-to <__automatic_5:2> round-robin + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 bitmask + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 random + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 source-hash 0x0123456789abcdef0123456789abcdef + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 source-hash 0x4da8e393fd22f577426cfdf7fe52d3b0 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 round-robin + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf36.ok b/src/regress/sbin/pfctl/pf36.ok new file mode 100644 index 000000000..c61138b0e --- /dev/null +++ b/src/regress/sbin/pfctl/pf36.ok @@ -0,0 +1,22 @@ +table <__automatic_0> const { 127.0.0.1 127.0.0.2 } +table <__automatic_1> const { 127.0.0.1 127.0.0.2 } +table <__automatic_2> const { 127.0.0.1 127.0.0.2 } +table <__automatic_3> const { 127.0.0.1 127.0.0.2 } +table <__automatic_4> const { 127.0.0.1 127.0.0.2 } +table <__automatic_5> const { 127.0.0.1 127.0.0.2 } +table <__automatic_6> const { 127.0.0.1 127.0.0.2 } +table <__automatic_7> const { 127.0.0.1 127.0.0.2 } +match out on lo0 inet from any to 127.0.0.1 nat-to <__automatic_0> round-robin +match out on lo0 inet from any to 127.0.0.1 nat-to <__automatic_1> round-robin +match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 bitmask static-port +match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 random +match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 source-hash 0x0123456789abcdef0123456789abcdef +match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 source-hash 0x4da8e393fd22f577426cfdf7fe52d3b0 +match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 round-robin +match in on lo0 inet from any to 127.0.0.1 rdr-to <__automatic_2> round-robin +match in on lo0 inet from any to 127.0.0.1 rdr-to <__automatic_5> round-robin +match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 bitmask +match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 random +match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 source-hash 0x0123456789abcdef0123456789abcdef +match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 source-hash 0x4da8e393fd22f577426cfdf7fe52d3b0 +match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 round-robin diff --git a/src/regress/sbin/pfctl/pf36.optimized b/src/regress/sbin/pfctl/pf36.optimized new file mode 100644 index 000000000..ed59f6a3d --- /dev/null +++ b/src/regress/sbin/pfctl/pf36.optimized @@ -0,0 +1,56 @@ +@0 match out on lo0 inet from any to 127.0.0.1 nat-to <__automatic_0:2> round-robin + [ Skip steps: i=end d=7 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match out on lo0 inet from any to 127.0.0.1 nat-to <__automatic_1:2> round-robin + [ Skip steps: i=end d=7 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 bitmask static-port + [ Skip steps: i=end d=7 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 random + [ Skip steps: i=end d=7 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 source-hash 0x0123456789abcdef0123456789abcdef + [ Skip steps: i=end d=7 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 source-hash 0x4da8e393fd22f577426cfdf7fe52d3b0 + [ Skip steps: i=end d=7 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match out on lo0 inet from any to 127.0.0.1 nat-to 127.0.0.0/24 round-robin + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match in on lo0 inet from any to 127.0.0.1 rdr-to <__automatic_2:2> round-robin + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match in on lo0 inet from any to 127.0.0.1 rdr-to <__automatic_5:2> round-robin + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 bitmask + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 random + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 source-hash 0x0123456789abcdef0123456789abcdef + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 source-hash 0x4da8e393fd22f577426cfdf7fe52d3b0 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 match in on lo0 inet from any to 127.0.0.1 rdr-to 127.0.0.0/24 round-robin + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf37.in b/src/regress/sbin/pfctl/pf37.in new file mode 100644 index 000000000..9d65f3e3f --- /dev/null +++ b/src/regress/sbin/pfctl/pf37.in @@ -0,0 +1,5 @@ +#test altq with interface expansion +#also tests multiple queues with the same name but on different interfaces + +altq on { lo0 lo1000000 } tbrsize 1824 cbq bandwidth 10Mb queue std +queue std cbq(default) diff --git a/src/regress/sbin/pfctl/pf37.ok b/src/regress/sbin/pfctl/pf37.ok new file mode 100644 index 000000000..13e63197d --- /dev/null +++ b/src/regress/sbin/pfctl/pf37.ok @@ -0,0 +1,3 @@ +altq on lo0 cbq bandwidth 10Mb tbrsize 1824 queue { std } +altq on lo1000000 cbq bandwidth 10Mb tbrsize 1824 queue { std } +queue std cbq( default ) diff --git a/src/regress/sbin/pfctl/pf38.in b/src/regress/sbin/pfctl/pf38.in new file mode 100644 index 000000000..1e63d6e5e --- /dev/null +++ b/src/regress/sbin/pfctl/pf38.in @@ -0,0 +1,5 @@ +# test + +pass in on tun1000000 proto tcp from any to any user bin +pass in on tun1000000 proto tcp from any to any group bin +pass in on tun1000000 proto tcp from any to any group wheel user root user bin diff --git a/src/regress/sbin/pfctl/pf38.loaded b/src/regress/sbin/pfctl/pf38.loaded new file mode 100644 index 000000000..40c5f36a7 --- /dev/null +++ b/src/regress/sbin/pfctl/pf38.loaded @@ -0,0 +1,16 @@ +@0 pass in on tun1000000 proto tcp all user = 3 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in on tun1000000 proto tcp all group = 7 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in on tun1000000 proto tcp all user = 3 group = 0 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in on tun1000000 proto tcp all user = 0 group = 0 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf38.ok b/src/regress/sbin/pfctl/pf38.ok new file mode 100644 index 000000000..77e2ee63b --- /dev/null +++ b/src/regress/sbin/pfctl/pf38.ok @@ -0,0 +1,4 @@ +pass in on tun1000000 proto tcp all user = 3 flags S/SA keep state +pass in on tun1000000 proto tcp all group = 7 flags S/SA keep state +pass in on tun1000000 proto tcp all user = 3 group = 0 flags S/SA keep state +pass in on tun1000000 proto tcp all user = 0 group = 0 flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf38.optimized b/src/regress/sbin/pfctl/pf38.optimized new file mode 100644 index 000000000..40c5f36a7 --- /dev/null +++ b/src/regress/sbin/pfctl/pf38.optimized @@ -0,0 +1,16 @@ +@0 pass in on tun1000000 proto tcp all user = 3 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in on tun1000000 proto tcp all group = 7 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in on tun1000000 proto tcp all user = 3 group = 0 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in on tun1000000 proto tcp all user = 0 group = 0 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf39.in b/src/regress/sbin/pfctl/pf39.in new file mode 100644 index 000000000..4212df1ef --- /dev/null +++ b/src/regress/sbin/pfctl/pf39.in @@ -0,0 +1,24 @@ +#test random ordered opts + +body1="pass in log quick on lo0 inet proto icmp all " +body2="pass in log quick on lo0 inet proto tcp all " +o_user="user root " +o_user2="user bin " +o_group="group wheel " +o_group2="group nobody " +o_flags="flags S/SA " +o_icmpspec="icmp-type 0 code 0 " +o_tos="tos 0x08 " +o_keep="keep state " +o_fragment="fragment " +o_allowopts="allow-opts " +o_label="label blah" +o_qname="queue blah" + +$body2 $o_fragment $o_keep $o_label $o_tos +$body1 $o_user $o_qname $o_tos $o_keep $o_group $o_label $o_allowopts \ +$o_user2 $o_icmpspec $o_group2 +$body2 $o_keep +$body2 $o_label $o_keep $o_qname $o_tos +$body1 $o_icmpspec $o_tos +$body2 $o_flags $o_allowopts diff --git a/src/regress/sbin/pfctl/pf39.loaded b/src/regress/sbin/pfctl/pf39.loaded new file mode 100644 index 000000000..7ce257d4a --- /dev/null +++ b/src/regress/sbin/pfctl/pf39.loaded @@ -0,0 +1,36 @@ +@0 pass in log quick on lo0 inet proto tcp all tos 0x08 keep state fragment label "blah" + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in log quick on lo0 inet proto icmp all user = 3 group = 32767 icmp-type echorep code 0 tos 0x08 keep state allow-opts label "blah" queue blah + [ Skip steps: i=end d=end f=end p=5 sa=end sp=end da=end dp=end ] + [ queue: qname=blah qid=1 pqname= pqid=1 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in log quick on lo0 inet proto icmp all user = 3 group = 0 icmp-type echorep code 0 tos 0x08 keep state allow-opts label "blah" queue blah + [ Skip steps: i=end d=end f=end p=5 sa=end sp=end da=end dp=end ] + [ queue: qname=blah qid=1 pqname= pqid=1 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in log quick on lo0 inet proto icmp all user = 0 group = 32767 icmp-type echorep code 0 tos 0x08 keep state allow-opts label "blah" queue blah + [ Skip steps: i=end d=end f=end p=5 sa=end sp=end da=end dp=end ] + [ queue: qname=blah qid=1 pqname= pqid=1 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in log quick on lo0 inet proto icmp all user = 0 group = 0 icmp-type echorep code 0 tos 0x08 keep state allow-opts label "blah" queue blah + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname=blah qid=1 pqname= pqid=1 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in log quick on lo0 inet proto tcp all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=7 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in log quick on lo0 inet proto tcp all flags S/SA tos 0x08 keep state label "blah" queue blah + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname=blah qid=1 pqname= pqid=1 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in log quick on lo0 inet proto icmp all icmp-type echorep code 0 tos 0x08 keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in log quick on lo0 inet proto tcp all flags S/SA keep state allow-opts + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf39.ok b/src/regress/sbin/pfctl/pf39.ok new file mode 100644 index 000000000..50e623de7 --- /dev/null +++ b/src/regress/sbin/pfctl/pf39.ok @@ -0,0 +1,23 @@ +body1 = "pass in log quick on lo0 inet proto icmp all " +body2 = "pass in log quick on lo0 inet proto tcp all " +o_user = "user root " +o_user2 = "user bin " +o_group = "group wheel " +o_group2 = "group nobody " +o_flags = "flags S/SA " +o_icmpspec = "icmp-type 0 code 0 " +o_tos = "tos 0x08 " +o_keep = "keep state " +o_fragment = "fragment " +o_allowopts = "allow-opts " +o_label = "label blah" +o_qname = "queue blah" +pass in log quick on lo0 inet proto tcp all tos 0x08 keep state fragment label "blah" +pass in log quick on lo0 inet proto icmp all user = 3 group = 32767 icmp-type echorep code 0 tos 0x08 keep state allow-opts label "blah" queue blah +pass in log quick on lo0 inet proto icmp all user = 3 group = 0 icmp-type echorep code 0 tos 0x08 keep state allow-opts label "blah" queue blah +pass in log quick on lo0 inet proto icmp all user = 0 group = 32767 icmp-type echorep code 0 tos 0x08 keep state allow-opts label "blah" queue blah +pass in log quick on lo0 inet proto icmp all user = 0 group = 0 icmp-type echorep code 0 tos 0x08 keep state allow-opts label "blah" queue blah +pass in log quick on lo0 inet proto tcp all flags S/SA keep state +pass in log quick on lo0 inet proto tcp all flags S/SA tos 0x08 keep state label "blah" queue blah +pass in log quick on lo0 inet proto icmp all icmp-type echorep code 0 tos 0x08 keep state +pass in log quick on lo0 inet proto tcp all flags S/SA keep state allow-opts diff --git a/src/regress/sbin/pfctl/pf39.optimized b/src/regress/sbin/pfctl/pf39.optimized new file mode 100644 index 000000000..7ce257d4a --- /dev/null +++ b/src/regress/sbin/pfctl/pf39.optimized @@ -0,0 +1,36 @@ +@0 pass in log quick on lo0 inet proto tcp all tos 0x08 keep state fragment label "blah" + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in log quick on lo0 inet proto icmp all user = 3 group = 32767 icmp-type echorep code 0 tos 0x08 keep state allow-opts label "blah" queue blah + [ Skip steps: i=end d=end f=end p=5 sa=end sp=end da=end dp=end ] + [ queue: qname=blah qid=1 pqname= pqid=1 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in log quick on lo0 inet proto icmp all user = 3 group = 0 icmp-type echorep code 0 tos 0x08 keep state allow-opts label "blah" queue blah + [ Skip steps: i=end d=end f=end p=5 sa=end sp=end da=end dp=end ] + [ queue: qname=blah qid=1 pqname= pqid=1 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in log quick on lo0 inet proto icmp all user = 0 group = 32767 icmp-type echorep code 0 tos 0x08 keep state allow-opts label "blah" queue blah + [ Skip steps: i=end d=end f=end p=5 sa=end sp=end da=end dp=end ] + [ queue: qname=blah qid=1 pqname= pqid=1 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in log quick on lo0 inet proto icmp all user = 0 group = 0 icmp-type echorep code 0 tos 0x08 keep state allow-opts label "blah" queue blah + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname=blah qid=1 pqname= pqid=1 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in log quick on lo0 inet proto tcp all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=7 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in log quick on lo0 inet proto tcp all flags S/SA tos 0x08 keep state label "blah" queue blah + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname=blah qid=1 pqname= pqid=1 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in log quick on lo0 inet proto icmp all icmp-type echorep code 0 tos 0x08 keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in log quick on lo0 inet proto tcp all flags S/SA keep state allow-opts + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf4.in b/src/regress/sbin/pfctl/pf4.in new file mode 100644 index 000000000..dcd6ee916 --- /dev/null +++ b/src/regress/sbin/pfctl/pf4.in @@ -0,0 +1,16 @@ +block in all +block in proto tcp all +block in proto { tcp, udp } all + +block in from any to any +block in from 10.0.0.0/8 to any +block in from ! 10.0.0.0/8 to any +block in from { 10.0.0.0/8, 172.16.0.0/12 } to any + +block in proto tcp from any port = ssh to any +block in proto tcp from any port { ssh, ftp >< 2048, != 1234, >= www } \ + to any port 1024:2048 + +block in proto { tcp, udp } from { 10.0.0.0/8, 172.16.0.0/12 } port { ssh, ftp } \ + to { 192.168.0.0/16, 12.34.56.78 } port { 6667, 6668, 6669:65535 } + diff --git a/src/regress/sbin/pfctl/pf4.loaded b/src/regress/sbin/pfctl/pf4.loaded new file mode 100644 index 000000000..322ffafde --- /dev/null +++ b/src/regress/sbin/pfctl/pf4.loaded @@ -0,0 +1,248 @@ +@0 block drop in all + [ Skip steps: i=end d=end f=5 sa=5 sp=9 da=14 dp=10 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in proto tcp all + [ Skip steps: i=end d=end f=5 p=3 sa=5 sp=9 da=14 dp=10 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in proto tcp all + [ Skip steps: i=end d=end f=5 sa=5 sp=9 da=14 dp=10 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in proto udp all + [ Skip steps: i=end d=end f=5 sa=5 sp=9 da=14 dp=10 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block drop in all + [ Skip steps: i=end d=end p=9 sp=9 da=14 dp=10 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block drop in inet from 10.0.0.0/8 to any + [ Skip steps: i=end d=end f=9 p=9 sp=9 da=14 dp=10 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 block drop in inet from ! 10.0.0.0/8 to any + [ Skip steps: i=end d=end f=9 p=9 sp=9 da=14 dp=10 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block drop in inet from 10.0.0.0/8 to any + [ Skip steps: i=end d=end f=9 p=9 sp=9 da=14 dp=10 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block drop in inet from 172.16.0.0/12 to any + [ Skip steps: i=end d=end da=14 dp=10 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 block drop in proto tcp from any port = ssh to any + [ Skip steps: i=end d=end f=14 p=38 sa=14 sp=11 da=14 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block drop in proto tcp from any port = ssh to any port 1024:2048 + [ Skip steps: i=end d=end f=14 p=38 sa=14 da=14 dp=14 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 block drop in proto tcp from any port 21 >< 2048 to any port 1024:2048 + [ Skip steps: i=end d=end f=14 p=38 sa=14 da=14 dp=14 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 block drop in proto tcp from any port != 1234 to any port 1024:2048 + [ Skip steps: i=end d=end f=14 p=38 sa=14 da=14 dp=14 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 block drop in proto tcp from any port >= 80 to any port 1024:2048 + [ Skip steps: i=end d=end p=38 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 block drop in inet proto tcp from 10.0.0.0/8 port = ssh to 192.168.0.0/16 port = 6667 + [ Skip steps: i=end d=end f=end p=38 sa=26 sp=20 da=17 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 block drop in inet proto tcp from 10.0.0.0/8 port = ssh to 192.168.0.0/16 port = 6668 + [ Skip steps: i=end d=end f=end p=38 sa=26 sp=20 da=17 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 block drop in inet proto tcp from 10.0.0.0/8 port = ssh to 192.168.0.0/16 port 6669:65535 + [ Skip steps: i=end d=end f=end p=38 sa=26 sp=20 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 block drop in inet proto tcp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=38 sa=26 sp=20 da=20 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 block drop in inet proto tcp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 6668 + [ Skip steps: i=end d=end f=end p=38 sa=26 sp=20 da=20 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 block drop in inet proto tcp from 10.0.0.0/8 port = ssh to 12.34.56.78 port 6669:65535 + [ Skip steps: i=end d=end f=end p=38 sa=26 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 block drop in inet proto tcp from 10.0.0.0/8 port = ftp to 192.168.0.0/16 port = 6667 + [ Skip steps: i=end d=end f=end p=38 sa=26 sp=26 da=23 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 block drop in inet proto tcp from 10.0.0.0/8 port = ftp to 192.168.0.0/16 port = 6668 + [ Skip steps: i=end d=end f=end p=38 sa=26 sp=26 da=23 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@22 block drop in inet proto tcp from 10.0.0.0/8 port = ftp to 192.168.0.0/16 port 6669:65535 + [ Skip steps: i=end d=end f=end p=38 sa=26 sp=26 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@23 block drop in inet proto tcp from 10.0.0.0/8 port = ftp to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=38 sa=26 sp=26 da=26 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@24 block drop in inet proto tcp from 10.0.0.0/8 port = ftp to 12.34.56.78 port = 6668 + [ Skip steps: i=end d=end f=end p=38 sa=26 sp=26 da=26 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@25 block drop in inet proto tcp from 10.0.0.0/8 port = ftp to 12.34.56.78 port 6669:65535 + [ Skip steps: i=end d=end f=end p=38 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@26 block drop in inet proto tcp from 172.16.0.0/12 port = ssh to 192.168.0.0/16 port = 6667 + [ Skip steps: i=end d=end f=end p=38 sa=38 sp=32 da=29 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@27 block drop in inet proto tcp from 172.16.0.0/12 port = ssh to 192.168.0.0/16 port = 6668 + [ Skip steps: i=end d=end f=end p=38 sa=38 sp=32 da=29 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@28 block drop in inet proto tcp from 172.16.0.0/12 port = ssh to 192.168.0.0/16 port 6669:65535 + [ Skip steps: i=end d=end f=end p=38 sa=38 sp=32 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@29 block drop in inet proto tcp from 172.16.0.0/12 port = ssh to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=38 sa=38 sp=32 da=32 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@30 block drop in inet proto tcp from 172.16.0.0/12 port = ssh to 12.34.56.78 port = 6668 + [ Skip steps: i=end d=end f=end p=38 sa=38 sp=32 da=32 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@31 block drop in inet proto tcp from 172.16.0.0/12 port = ssh to 12.34.56.78 port 6669:65535 + [ Skip steps: i=end d=end f=end p=38 sa=38 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@32 block drop in inet proto tcp from 172.16.0.0/12 port = ftp to 192.168.0.0/16 port = 6667 + [ Skip steps: i=end d=end f=end p=38 sa=38 sp=38 da=35 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@33 block drop in inet proto tcp from 172.16.0.0/12 port = ftp to 192.168.0.0/16 port = 6668 + [ Skip steps: i=end d=end f=end p=38 sa=38 sp=38 da=35 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@34 block drop in inet proto tcp from 172.16.0.0/12 port = ftp to 192.168.0.0/16 port 6669:65535 + [ Skip steps: i=end d=end f=end p=38 sa=38 sp=38 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@35 block drop in inet proto tcp from 172.16.0.0/12 port = ftp to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=38 sa=38 sp=38 da=38 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@36 block drop in inet proto tcp from 172.16.0.0/12 port = ftp to 12.34.56.78 port = 6668 + [ Skip steps: i=end d=end f=end p=38 sa=38 sp=38 da=38 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@37 block drop in inet proto tcp from 172.16.0.0/12 port = ftp to 12.34.56.78 port 6669:65535 + [ Skip steps: i=end d=end f=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@38 block drop in inet proto udp from 10.0.0.0/8 port = ssh to 192.168.0.0/16 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=50 sp=44 da=41 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@39 block drop in inet proto udp from 10.0.0.0/8 port = ssh to 192.168.0.0/16 port = 6668 + [ Skip steps: i=end d=end f=end p=end sa=50 sp=44 da=41 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@40 block drop in inet proto udp from 10.0.0.0/8 port = ssh to 192.168.0.0/16 port 6669:65535 + [ Skip steps: i=end d=end f=end p=end sa=50 sp=44 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@41 block drop in inet proto udp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=50 sp=44 da=44 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@42 block drop in inet proto udp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 6668 + [ Skip steps: i=end d=end f=end p=end sa=50 sp=44 da=44 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@43 block drop in inet proto udp from 10.0.0.0/8 port = ssh to 12.34.56.78 port 6669:65535 + [ Skip steps: i=end d=end f=end p=end sa=50 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@44 block drop in inet proto udp from 10.0.0.0/8 port = 21 to 192.168.0.0/16 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=50 sp=50 da=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@45 block drop in inet proto udp from 10.0.0.0/8 port = 21 to 192.168.0.0/16 port = 6668 + [ Skip steps: i=end d=end f=end p=end sa=50 sp=50 da=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@46 block drop in inet proto udp from 10.0.0.0/8 port = 21 to 192.168.0.0/16 port 6669:65535 + [ Skip steps: i=end d=end f=end p=end sa=50 sp=50 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@47 block drop in inet proto udp from 10.0.0.0/8 port = 21 to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=50 sp=50 da=50 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@48 block drop in inet proto udp from 10.0.0.0/8 port = 21 to 12.34.56.78 port = 6668 + [ Skip steps: i=end d=end f=end p=end sa=50 sp=50 da=50 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@49 block drop in inet proto udp from 10.0.0.0/8 port = 21 to 12.34.56.78 port 6669:65535 + [ Skip steps: i=end d=end f=end p=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@50 block drop in inet proto udp from 172.16.0.0/12 port = ssh to 192.168.0.0/16 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=end sp=56 da=53 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@51 block drop in inet proto udp from 172.16.0.0/12 port = ssh to 192.168.0.0/16 port = 6668 + [ Skip steps: i=end d=end f=end p=end sa=end sp=56 da=53 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@52 block drop in inet proto udp from 172.16.0.0/12 port = ssh to 192.168.0.0/16 port 6669:65535 + [ Skip steps: i=end d=end f=end p=end sa=end sp=56 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@53 block drop in inet proto udp from 172.16.0.0/12 port = ssh to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=end sp=56 da=56 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@54 block drop in inet proto udp from 172.16.0.0/12 port = ssh to 12.34.56.78 port = 6668 + [ Skip steps: i=end d=end f=end p=end sa=end sp=56 da=56 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@55 block drop in inet proto udp from 172.16.0.0/12 port = ssh to 12.34.56.78 port 6669:65535 + [ Skip steps: i=end d=end f=end p=end sa=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@56 block drop in inet proto udp from 172.16.0.0/12 port = 21 to 192.168.0.0/16 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@57 block drop in inet proto udp from 172.16.0.0/12 port = 21 to 192.168.0.0/16 port = 6668 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@58 block drop in inet proto udp from 172.16.0.0/12 port = 21 to 192.168.0.0/16 port 6669:65535 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@59 block drop in inet proto udp from 172.16.0.0/12 port = 21 to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@60 block drop in inet proto udp from 172.16.0.0/12 port = 21 to 12.34.56.78 port = 6668 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@61 block drop in inet proto udp from 172.16.0.0/12 port = 21 to 12.34.56.78 port 6669:65535 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf4.ok b/src/regress/sbin/pfctl/pf4.ok new file mode 100644 index 000000000..37c515c09 --- /dev/null +++ b/src/regress/sbin/pfctl/pf4.ok @@ -0,0 +1,62 @@ +block drop in all +block drop in proto tcp all +block drop in proto tcp all +block drop in proto udp all +block drop in all +block drop in inet from 10.0.0.0/8 to any +block drop in inet from ! 10.0.0.0/8 to any +block drop in inet from 10.0.0.0/8 to any +block drop in inet from 172.16.0.0/12 to any +block drop in proto tcp from any port = ssh to any +block drop in proto tcp from any port = ssh to any port 1024:2048 +block drop in proto tcp from any port 21 >< 2048 to any port 1024:2048 +block drop in proto tcp from any port != 1234 to any port 1024:2048 +block drop in proto tcp from any port >= 80 to any port 1024:2048 +block drop in inet proto tcp from 10.0.0.0/8 port = ssh to 192.168.0.0/16 port = 6667 +block drop in inet proto tcp from 10.0.0.0/8 port = ssh to 192.168.0.0/16 port = 6668 +block drop in inet proto tcp from 10.0.0.0/8 port = ssh to 192.168.0.0/16 port 6669:65535 +block drop in inet proto tcp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 6667 +block drop in inet proto tcp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 6668 +block drop in inet proto tcp from 10.0.0.0/8 port = ssh to 12.34.56.78 port 6669:65535 +block drop in inet proto tcp from 10.0.0.0/8 port = ftp to 192.168.0.0/16 port = 6667 +block drop in inet proto tcp from 10.0.0.0/8 port = ftp to 192.168.0.0/16 port = 6668 +block drop in inet proto tcp from 10.0.0.0/8 port = ftp to 192.168.0.0/16 port 6669:65535 +block drop in inet proto tcp from 10.0.0.0/8 port = ftp to 12.34.56.78 port = 6667 +block drop in inet proto tcp from 10.0.0.0/8 port = ftp to 12.34.56.78 port = 6668 +block drop in inet proto tcp from 10.0.0.0/8 port = ftp to 12.34.56.78 port 6669:65535 +block drop in inet proto tcp from 172.16.0.0/12 port = ssh to 192.168.0.0/16 port = 6667 +block drop in inet proto tcp from 172.16.0.0/12 port = ssh to 192.168.0.0/16 port = 6668 +block drop in inet proto tcp from 172.16.0.0/12 port = ssh to 192.168.0.0/16 port 6669:65535 +block drop in inet proto tcp from 172.16.0.0/12 port = ssh to 12.34.56.78 port = 6667 +block drop in inet proto tcp from 172.16.0.0/12 port = ssh to 12.34.56.78 port = 6668 +block drop in inet proto tcp from 172.16.0.0/12 port = ssh to 12.34.56.78 port 6669:65535 +block drop in inet proto tcp from 172.16.0.0/12 port = ftp to 192.168.0.0/16 port = 6667 +block drop in inet proto tcp from 172.16.0.0/12 port = ftp to 192.168.0.0/16 port = 6668 +block drop in inet proto tcp from 172.16.0.0/12 port = ftp to 192.168.0.0/16 port 6669:65535 +block drop in inet proto tcp from 172.16.0.0/12 port = ftp to 12.34.56.78 port = 6667 +block drop in inet proto tcp from 172.16.0.0/12 port = ftp to 12.34.56.78 port = 6668 +block drop in inet proto tcp from 172.16.0.0/12 port = ftp to 12.34.56.78 port 6669:65535 +block drop in inet proto udp from 10.0.0.0/8 port = ssh to 192.168.0.0/16 port = 6667 +block drop in inet proto udp from 10.0.0.0/8 port = ssh to 192.168.0.0/16 port = 6668 +block drop in inet proto udp from 10.0.0.0/8 port = ssh to 192.168.0.0/16 port 6669:65535 +block drop in inet proto udp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 6667 +block drop in inet proto udp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 6668 +block drop in inet proto udp from 10.0.0.0/8 port = ssh to 12.34.56.78 port 6669:65535 +block drop in inet proto udp from 10.0.0.0/8 port = 21 to 192.168.0.0/16 port = 6667 +block drop in inet proto udp from 10.0.0.0/8 port = 21 to 192.168.0.0/16 port = 6668 +block drop in inet proto udp from 10.0.0.0/8 port = 21 to 192.168.0.0/16 port 6669:65535 +block drop in inet proto udp from 10.0.0.0/8 port = 21 to 12.34.56.78 port = 6667 +block drop in inet proto udp from 10.0.0.0/8 port = 21 to 12.34.56.78 port = 6668 +block drop in inet proto udp from 10.0.0.0/8 port = 21 to 12.34.56.78 port 6669:65535 +block drop in inet proto udp from 172.16.0.0/12 port = ssh to 192.168.0.0/16 port = 6667 +block drop in inet proto udp from 172.16.0.0/12 port = ssh to 192.168.0.0/16 port = 6668 +block drop in inet proto udp from 172.16.0.0/12 port = ssh to 192.168.0.0/16 port 6669:65535 +block drop in inet proto udp from 172.16.0.0/12 port = ssh to 12.34.56.78 port = 6667 +block drop in inet proto udp from 172.16.0.0/12 port = ssh to 12.34.56.78 port = 6668 +block drop in inet proto udp from 172.16.0.0/12 port = ssh to 12.34.56.78 port 6669:65535 +block drop in inet proto udp from 172.16.0.0/12 port = 21 to 192.168.0.0/16 port = 6667 +block drop in inet proto udp from 172.16.0.0/12 port = 21 to 192.168.0.0/16 port = 6668 +block drop in inet proto udp from 172.16.0.0/12 port = 21 to 192.168.0.0/16 port 6669:65535 +block drop in inet proto udp from 172.16.0.0/12 port = 21 to 12.34.56.78 port = 6667 +block drop in inet proto udp from 172.16.0.0/12 port = 21 to 12.34.56.78 port = 6668 +block drop in inet proto udp from 172.16.0.0/12 port = 21 to 12.34.56.78 port 6669:65535 diff --git a/src/regress/sbin/pfctl/pf4.optimized b/src/regress/sbin/pfctl/pf4.optimized new file mode 100644 index 000000000..fb3454c2d --- /dev/null +++ b/src/regress/sbin/pfctl/pf4.optimized @@ -0,0 +1,8 @@ +@0 block drop in all + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in inet from ! 10.0.0.0/8 to any + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf40.in b/src/regress/sbin/pfctl/pf40.in new file mode 100644 index 000000000..7d91ad447 --- /dev/null +++ b/src/regress/sbin/pfctl/pf40.in @@ -0,0 +1,20 @@ +block +block return +block return-rst proto tcp +pass +pass in no state +pass out no state +pass all no state +block in all +block out all +block from any to any +pass in from any to any +pass out from any to any +block on lo0 +pass on lo0 all +block on lo0 from any to any +pass proto tcp flags S/SA +pass proto udp keep state +pass in proto udp all keep state +pass out proto udp from any to any keep state +pass out on lo0 proto tcp from any to any port 25 keep state diff --git a/src/regress/sbin/pfctl/pf40.loaded b/src/regress/sbin/pfctl/pf40.loaded new file mode 100644 index 000000000..7a6af32bf --- /dev/null +++ b/src/regress/sbin/pfctl/pf40.loaded @@ -0,0 +1,80 @@ +@0 block drop all + [ Skip steps: i=12 d=4 f=end p=2 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block return all + [ Skip steps: i=12 d=4 f=end sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block return-rst proto tcp all + [ Skip steps: i=12 d=4 f=end sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass all flags S/SA keep state + [ Skip steps: i=12 f=end p=15 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in all no state + [ Skip steps: i=12 f=end p=15 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass out all no state + [ Skip steps: i=12 f=end p=15 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass all no state + [ Skip steps: i=12 f=end p=15 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block drop in all + [ Skip steps: i=12 f=end p=15 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block drop out all + [ Skip steps: i=12 f=end p=15 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 block drop all + [ Skip steps: i=12 f=end p=15 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass in all flags S/SA keep state + [ Skip steps: i=12 f=end p=15 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass out all flags S/SA keep state + [ Skip steps: f=end p=15 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 block drop on lo0 all + [ Skip steps: i=15 d=17 f=end p=15 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass on lo0 all flags S/SA keep state + [ Skip steps: i=15 d=17 f=end p=15 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 block drop on lo0 all + [ Skip steps: d=17 f=end sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass proto tcp all flags S/SA keep state + [ Skip steps: i=19 d=17 f=end sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass proto udp all keep state + [ Skip steps: i=19 f=end p=19 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass in proto udp all keep state + [ Skip steps: i=19 f=end p=19 sa=end sp=end da=end dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 pass out proto udp all keep state + [ Skip steps: d=end f=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 pass out on lo0 proto tcp from any to any port = smtp flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf40.ok b/src/regress/sbin/pfctl/pf40.ok new file mode 100644 index 000000000..1a740bb96 --- /dev/null +++ b/src/regress/sbin/pfctl/pf40.ok @@ -0,0 +1,20 @@ +block drop all +block return all +block return-rst proto tcp all +pass all flags S/SA keep state +pass in all no state +pass out all no state +pass all no state +block drop in all +block drop out all +block drop all +pass in all flags S/SA keep state +pass out all flags S/SA keep state +block drop on lo0 all +pass on lo0 all flags S/SA keep state +block drop on lo0 all +pass proto tcp all flags S/SA keep state +pass proto udp all keep state +pass in proto udp all keep state +pass out proto udp all keep state +pass out on lo0 proto tcp from any to any port = smtp flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf40.optimized b/src/regress/sbin/pfctl/pf40.optimized new file mode 100644 index 000000000..61b43756f --- /dev/null +++ b/src/regress/sbin/pfctl/pf40.optimized @@ -0,0 +1,52 @@ +@0 block drop all + [ Skip steps: i=8 d=6 f=end p=2 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block return all + [ Skip steps: i=8 d=6 f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block return-rst proto tcp all + [ Skip steps: i=8 d=6 f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass all flags S/SA keep state + [ Skip steps: i=8 d=6 f=end p=11 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass all no state + [ Skip steps: i=8 d=6 f=end p=11 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block drop all + [ Skip steps: i=8 f=end p=11 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in all flags S/SA keep state + [ Skip steps: i=8 f=end p=11 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass out all flags S/SA keep state + [ Skip steps: f=end p=11 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block drop on lo0 all + [ Skip steps: i=11 d=end f=end p=11 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass on lo0 all flags S/SA keep state + [ Skip steps: i=11 d=end f=end p=11 sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block drop on lo0 all + [ Skip steps: d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass proto tcp all flags S/SA keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass proto udp all keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf41.in b/src/regress/sbin/pfctl/pf41.in new file mode 100644 index 000000000..42987e7f0 --- /dev/null +++ b/src/regress/sbin/pfctl/pf41.in @@ -0,0 +1,12 @@ +anchor foo +anchor bar all +anchor bar from any to any +anchor foo inet +anchor foo inet6 +anchor foo inet all +anchor foo proto tcp +anchor foo inet proto tcp from 10.1.2.3 port smtp to 10.2.3.4 port ssh +anchor foobar inet6 proto udp from ::1 port 1 to ::1 port 2 +anchor filteropt out proto tcp to any port 22 user root +anchor filteropt in proto tcp to (self) port 22 group sshd +anchor filteropt out inet proto icmp all icmp-type echoreq diff --git a/src/regress/sbin/pfctl/pf41.ok b/src/regress/sbin/pfctl/pf41.ok new file mode 100644 index 000000000..89e4608cf --- /dev/null +++ b/src/regress/sbin/pfctl/pf41.ok @@ -0,0 +1,12 @@ +anchor "foo" all +anchor "bar" all +anchor "bar" all +anchor "foo" inet all +anchor "foo" inet6 all +anchor "foo" inet all +anchor "foo" proto tcp all +anchor "foo" inet proto tcp from 10.1.2.3 port = smtp to 10.2.3.4 port = ssh +anchor "foobar" inet6 proto udp from ::1 port = 1 to ::1 port = 2 +anchor "filteropt" out proto tcp from any to any port = ssh user = 0 +anchor "filteropt" in proto tcp from any to (self) port = ssh group = 27 +anchor "filteropt" out inet proto icmp all icmp-type echoreq diff --git a/src/regress/sbin/pfctl/pf42.in b/src/regress/sbin/pfctl/pf42.in new file mode 100644 index 000000000..9270158ef --- /dev/null +++ b/src/regress/sbin/pfctl/pf42.in @@ -0,0 +1,9 @@ +# shuffle opts a bit around to test flexopts + +ext_if = "lo0" + +altq on $ext_if bandwidth 10Mb tbrsize 1824 cbq \ + queue { deflt, http, ssh, mail, rsets } +queue deflt cbq(default ecn) bandwidth 10% priority 0 +queue http priority 3 bandwidth 1.5Mb { http_vhosts, http_cust1 } +queue http_vhosts cbq(borrow red) bandwidth 40% diff --git a/src/regress/sbin/pfctl/pf42.ok b/src/regress/sbin/pfctl/pf42.ok new file mode 100644 index 000000000..bdd1add87 --- /dev/null +++ b/src/regress/sbin/pfctl/pf42.ok @@ -0,0 +1,5 @@ +ext_if = "lo0" +altq on lo0 cbq bandwidth 10Mb tbrsize 1824 queue { deflt http ssh mail rsets } +queue deflt bandwidth 10% priority 0 cbq( red ecn default ) +queue http bandwidth 1.50Mb priority 3 { http_vhosts http_cust1 } +queue http_vhosts bandwidth 40% cbq( red borrow ) diff --git a/src/regress/sbin/pfctl/pf43.in b/src/regress/sbin/pfctl/pf43.in new file mode 100644 index 000000000..bb144b0f7 --- /dev/null +++ b/src/regress/sbin/pfctl/pf43.in @@ -0,0 +1,11 @@ +#test various forms of queue assignment + +altq on lo0 tbrsize 3648 bandwidth 100Mb cbq queue { bulk, prio } +queue bulk priority 1 cbq(default) bandwidth 70% +queue prio priority 7 bandwidth 30% +pass in on lo0 inet proto tcp from any to lo0 port 22 queue (bulk prio) +pass in on lo0 inet proto tcp from any to lo0 port 22 queue bulk +pass in on lo0 inet proto tcp from any to lo0 port 22 queue (bulk, prio) +pass in on lo0 inet proto tcp from any to lo0 port 22 queue (bulk) +pass in on lo0 inet proto tcp from any to lo0 port 22 queue(bulk prio) + diff --git a/src/regress/sbin/pfctl/pf43.loaded b/src/regress/sbin/pfctl/pf43.loaded new file mode 100644 index 000000000..c971e64a4 --- /dev/null +++ b/src/regress/sbin/pfctl/pf43.loaded @@ -0,0 +1,20 @@ +@0 pass in on lo0 inet proto tcp from any to 127.0.0.1 port = ssh queue(bulk, prio) +[ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@1 pass in on lo0 inet proto tcp from any to 127.0.0.1 port = ssh queue bulk +[ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@2 pass in on lo0 inet proto tcp from any to 127.0.0.1 port = ssh queue(bulk, prio) +[ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@3 pass in on lo0 inet proto tcp from any to 127.0.0.1 port = ssh queue bulk +[ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + +@4 pass in on lo0 inet proto tcp from any to 127.0.0.1 port = ssh queue(bulk, prio) +[ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] +[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] + diff --git a/src/regress/sbin/pfctl/pf43.ok b/src/regress/sbin/pfctl/pf43.ok new file mode 100644 index 000000000..def31b543 --- /dev/null +++ b/src/regress/sbin/pfctl/pf43.ok @@ -0,0 +1,8 @@ +altq on lo0 cbq bandwidth 100Mb tbrsize 3648 queue { bulk prio } +queue bulk bandwidth 70% cbq( default ) +queue prio bandwidth 30% priority 7 +pass in on lo0 inet proto tcp from any to 127.0.0.1 port = ssh flags S/SA keep state queue(bulk, prio) +pass in on lo0 inet proto tcp from any to 127.0.0.1 port = ssh flags S/SA keep state queue bulk +pass in on lo0 inet proto tcp from any to 127.0.0.1 port = ssh flags S/SA keep state queue(bulk, prio) +pass in on lo0 inet proto tcp from any to 127.0.0.1 port = ssh flags S/SA keep state queue bulk +pass in on lo0 inet proto tcp from any to 127.0.0.1 port = ssh flags S/SA keep state queue(bulk, prio) diff --git a/src/regress/sbin/pfctl/pf44.in b/src/regress/sbin/pfctl/pf44.in new file mode 100644 index 000000000..a254534ee --- /dev/null +++ b/src/regress/sbin/pfctl/pf44.in @@ -0,0 +1,8 @@ +#scrub opts in unusual order + +match in on lo0 from any to any scrub(min-ttl 15, no-df, max-mss 224) +match in on lo0 from any to any scrub(no-df max-mss 224 min-ttl 15) +match in on lo0 from any to any scrub(max-mss 224, min-ttl 15 no-df) +match in on lo0 from any to any scrub(min-ttl 15 no-df, max-mss 224) +match in on lo0 from any to any scrub(no-df max-mss 224 min-ttl 15) +match in on lo0 from any to any scrub(max-mss 224 min-ttl 15 no-df reassemble tcp) diff --git a/src/regress/sbin/pfctl/pf44.loaded b/src/regress/sbin/pfctl/pf44.loaded new file mode 100644 index 000000000..9f0b8e380 --- /dev/null +++ b/src/regress/sbin/pfctl/pf44.loaded @@ -0,0 +1,24 @@ +@0 match in on lo0 all scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 all scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match in on lo0 all scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match in on lo0 all scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match in on lo0 all scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match in on lo0 all scrub (no-df min-ttl 15 reassemble tcp max-mss 224) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf44.ok b/src/regress/sbin/pfctl/pf44.ok new file mode 100644 index 000000000..14d511fc9 --- /dev/null +++ b/src/regress/sbin/pfctl/pf44.ok @@ -0,0 +1,6 @@ +match in on lo0 all scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 all scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 all scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 all scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 all scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 all scrub (no-df min-ttl 15 reassemble tcp max-mss 224) diff --git a/src/regress/sbin/pfctl/pf44.optimized b/src/regress/sbin/pfctl/pf44.optimized new file mode 100644 index 000000000..e17fe45c1 --- /dev/null +++ b/src/regress/sbin/pfctl/pf44.optimized @@ -0,0 +1,8 @@ +@0 match in on lo0 all scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 all scrub (no-df min-ttl 15 reassemble tcp max-mss 224) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf45.in b/src/regress/sbin/pfctl/pf45.in new file mode 100644 index 000000000..139f54be1 --- /dev/null +++ b/src/regress/sbin/pfctl/pf45.in @@ -0,0 +1,4 @@ +altq on lo0 priq bandwidth 10Mb tbrsize 1824 queue { pri-low pri-med pri-high } +queue pri-low priority 0 +queue pri-med priority 1 priq(default) +queue pri-high priority 2 diff --git a/src/regress/sbin/pfctl/pf45.ok b/src/regress/sbin/pfctl/pf45.ok new file mode 100644 index 000000000..6f5b89564 --- /dev/null +++ b/src/regress/sbin/pfctl/pf45.ok @@ -0,0 +1,4 @@ +altq on lo0 priq bandwidth 10Mb tbrsize 1824 queue { pri-low pri-med pri-high } +queue pri-low priority 0 +queue pri-med priq( default ) +queue pri-high priority 2 diff --git a/src/regress/sbin/pfctl/pf46.in b/src/regress/sbin/pfctl/pf46.in new file mode 100644 index 000000000..bb5b66678 --- /dev/null +++ b/src/regress/sbin/pfctl/pf46.in @@ -0,0 +1,7 @@ +pass in on lo0 from any to any route-to { (pflog0 127.0.0.1), (pflog0 127.0.0.2) } +pass out on lo0 from any to any route-to { (pflog0 127.0.0.1), (pflog0 127.0.0.2) } round-robin +pass in on lo0 from any to any route-to (pflog0 127.0.0.1/24) bitmask +pass out on lo0 from any to any dup-to (pflog0 127.0.0.1/24) random +pass in on lo0 inet from any to any reply-to (pflog0 127.0.0.0/28) source-hash 0x0123456789ABCDEF0123456789abcdef +pass out on lo0 from any to any route-to (pflog0 127.0.0.1/24) source-hash foobarlicious +pass in on lo0 from any to any dup-to (pflog0 127.0.0.1/24) round-robin diff --git a/src/regress/sbin/pfctl/pf46.loaded b/src/regress/sbin/pfctl/pf46.loaded new file mode 100644 index 000000000..75ca49254 --- /dev/null +++ b/src/regress/sbin/pfctl/pf46.loaded @@ -0,0 +1,28 @@ +@0 pass in on lo0 inet all flags S/SA keep state route-to <__automatic_0:2> round-robin + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass out on lo0 inet all flags S/SA keep state route-to <__automatic_1:2> round-robin + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in on lo0 inet all flags S/SA keep state route-to 127.0.0.0/24@pflog0 + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass out on lo0 inet all flags S/SA keep state dup-to 127.0.0.0/24@pflog0 + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in on lo0 inet all flags S/SA keep state reply-to 127.0.0.0/28@pflog0 + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass out on lo0 inet all flags S/SA keep state route-to 127.0.0.0/24@pflog0 + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in on lo0 inet all flags S/SA keep state dup-to 127.0.0.0/24@pflog0 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf46.ok b/src/regress/sbin/pfctl/pf46.ok new file mode 100644 index 000000000..b8440124c --- /dev/null +++ b/src/regress/sbin/pfctl/pf46.ok @@ -0,0 +1,9 @@ +table <__automatic_0> const { 127.0.0.1@pflog0 127.0.0.2@pflog0 } +table <__automatic_1> const { 127.0.0.1@pflog0 127.0.0.2@pflog0 } +pass in on lo0 inet all flags S/SA keep state route-to <__automatic_0> round-robin +pass out on lo0 inet all flags S/SA keep state route-to <__automatic_1> round-robin +pass in on lo0 inet all flags S/SA keep state route-to 127.0.0.0/24@pflog0 +pass out on lo0 inet all flags S/SA keep state dup-to 127.0.0.0/24@pflog0 +pass in on lo0 inet all flags S/SA keep state reply-to 127.0.0.0/28@pflog0 +pass out on lo0 inet all flags S/SA keep state route-to 127.0.0.0/24@pflog0 +pass in on lo0 inet all flags S/SA keep state dup-to 127.0.0.0/24@pflog0 diff --git a/src/regress/sbin/pfctl/pf46.optimized b/src/regress/sbin/pfctl/pf46.optimized new file mode 100644 index 000000000..75ca49254 --- /dev/null +++ b/src/regress/sbin/pfctl/pf46.optimized @@ -0,0 +1,28 @@ +@0 pass in on lo0 inet all flags S/SA keep state route-to <__automatic_0:2> round-robin + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass out on lo0 inet all flags S/SA keep state route-to <__automatic_1:2> round-robin + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in on lo0 inet all flags S/SA keep state route-to 127.0.0.0/24@pflog0 + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass out on lo0 inet all flags S/SA keep state dup-to 127.0.0.0/24@pflog0 + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in on lo0 inet all flags S/SA keep state reply-to 127.0.0.0/28@pflog0 + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass out on lo0 inet all flags S/SA keep state route-to 127.0.0.0/24@pflog0 + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in on lo0 inet all flags S/SA keep state dup-to 127.0.0.0/24@pflog0 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf47.in b/src/regress/sbin/pfctl/pf47.in new file mode 100644 index 000000000..0fcfa14eb --- /dev/null +++ b/src/regress/sbin/pfctl/pf47.in @@ -0,0 +1,67 @@ +pass in on lo0 all label "" + +pass in all label "$if" +pass in on lo0 all label "$if" +pass in on lo0 all label "$if$if" + +pass in on lo0 all label "$srcaddr" +pass in on lo0 from 0/0 to any label "$srcaddr" +pass in on lo0 from 127.0.0.1 to any label "$srcaddr" +pass in on lo0 from 127.0.0.1 to any label "$srcaddr$srcaddr" +pass in on lo0 from 127.0.0.1 to any label ":$srcaddr:$srcaddr:" +pass in on lo0 from 127.0.0.1/8 to any label "$srcaddr" +pass in on lo0 from 127.0.0.1/16 to any label "$srcaddr$srcaddr" +pass in on lo0 from 127.0.0.1/31 to any label ":$srcaddr:$srcaddr:" +pass in on lo0 inet6 from fe80::1 to any label "$srcaddr" +pass in on lo0 inet6 from fe80::1 to any label "$srcaddr$srcaddr" +pass in on lo0 inet6 from fe80::1 to any label ":$srcaddr:$srcaddr:" +pass in on lo0 inet6 from lo0/8 to any label "$srcaddr" +pass in on lo0 inet6 from lo0/64 to any label "$srcaddr$srcaddr" +pass in on lo0 inet6 from lo0/127 to any label ":$srcaddr:$srcaddr:" + +pass in on lo0 all label "!$dstaddr!" +pass in on lo0 inet from any to (lo0) label "$dstaddr" +pass in on lo0 inet from any to (lo0) label "$dstaddr$dstaddr" +pass in on lo0 inet from any to (lo0) label " $dstaddr $dstaddr " +pass in on lo0 from any to ! 127.0.0.1/8 label "$dstaddr" +pass in on lo0 from any to ! 127.0.0.1/16 label "$dstaddr$dstaddr" +pass in on lo0 from any to ! 127.0.0.1/31 label " $dstaddr $dstaddr " +pass in on lo0 inet6 from any to ! (lo0) label "$dstaddr" +pass in on lo0 inet6 from any to ! (lo0) label "$dstaddr$dstaddr" +pass in on lo0 inet6 from any to ! (lo0) label " $dstaddr $dstaddr " +pass in on lo0 inet6 from any to ! ::1/8 label "$dstaddr" +pass in on lo0 inet6 from any to ! ::1/64 label "$dstaddr$dstaddr" +pass in on lo0 inet6 from any to ! ::1/127 label " $dstaddr $dstaddr " + +pass in on lo0 all label "x$srcportx" +pass in on lo0 proto tcp from any port = 28 to any label "$srcport" +pass in on lo0 proto tcp from any port 28 >< 29 to any label "$srcport" +pass in on lo0 proto tcp from any port 28 <> 29 to any label "$srcport" +pass in on lo0 proto tcp from any port 28:29 to any label "$srcport" +pass in on lo0 proto tcp from any port != 28 to any label "$srcport" +pass in on lo0 proto tcp from any port < 28 to any label "$srcport" +pass in on lo0 proto tcp from any port <= 28 to any label "$srcport" +pass in on lo0 proto tcp from any port > 28 to any label "$srcport" +pass in on lo0 proto tcp from any port >= 28 to any label "$srcport" +pass in on lo0 proto tcp from any port = 28 to any label "$srcport$srcport" +pass in on lo0 proto tcp from any port = 28 to any label "$$srcport$$srcport$" + +pass in on lo0 all label "$dstport" +pass in on lo0 proto udp from any to any port = 29 label "$dstport" +pass in on lo0 proto udp from any to any port != 29 label "$dstport$dstport" +pass in on lo0 proto udp from any to any port > 29 label "x$dstportx$dstportx" + +pass in on lo0 all label "$proto" +pass in on lo0 proto esp all label "$proto" +pass in on lo0 proto esp all label "$proto$proto" +pass in on lo0 proto esp all label "-$proto-$proto-" +pass in on lo0 proto 166 all label "$proto" +pass in on lo0 proto 166 all label "$proto$proto" +pass in on lo0 proto 166 all label "_$proto_$proto_" + +pass in on lo0 all label "$nr" +pass in on lo0 all label "$nr$nr" +pass in on lo0 all label "%$nr%$nr%" + +pass in on lo0 proto tcp from 127.0.0.1 port = 30 to 127.0.0.2 port = 44 \ + label "if $if proto $proto $srcaddr $srcport $dstaddr $dstport" diff --git a/src/regress/sbin/pfctl/pf47.loaded b/src/regress/sbin/pfctl/pf47.loaded new file mode 100644 index 000000000..cdbc89021 --- /dev/null +++ b/src/regress/sbin/pfctl/pf47.loaded @@ -0,0 +1,244 @@ +@0 pass in on lo0 all flags S/SA keep state + [ Skip steps: d=end f=5 p=35 sa=6 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in all flags S/SA keep state label "any" + [ Skip steps: d=end f=5 p=35 sa=6 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in on lo0 all flags S/SA keep state label "lo0" + [ Skip steps: i=end d=end f=5 p=35 sa=6 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in on lo0 all flags S/SA keep state label "lo0lo0" + [ Skip steps: i=end d=end f=5 p=35 sa=6 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in on lo0 all flags S/SA keep state label "any" + [ Skip steps: i=end d=end p=35 sa=6 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in on lo0 inet all flags S/SA keep state label "any" + [ Skip steps: i=end d=end f=12 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in on lo0 inet from 127.0.0.1 to any flags S/SA keep state label "127.0.0.1" + [ Skip steps: i=end d=end f=12 p=35 sa=9 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in on lo0 inet from 127.0.0.1 to any flags S/SA keep state label "127.0.0.1127.0.0.1" + [ Skip steps: i=end d=end f=12 p=35 sa=9 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in on lo0 inet from 127.0.0.1 to any flags S/SA keep state label ":127.0.0.1:127.0.0.1:" + [ Skip steps: i=end d=end f=12 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass in on lo0 inet from 127.0.0.0/8 to any flags S/SA keep state label "127.0.0.0/8" + [ Skip steps: i=end d=end f=12 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass in on lo0 inet from 127.0.0.0/16 to any flags S/SA keep state label "127.0.0.0/16127.0.0.0/16" + [ Skip steps: i=end d=end f=12 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass in on lo0 inet from 127.0.0.0/31 to any flags S/SA keep state label ":127.0.0.0/31:127.0.0.0/31:" + [ Skip steps: i=end d=end p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass in on lo0 inet6 from fe80::1 to any flags S/SA keep state label "fe80::1" + [ Skip steps: i=end d=end f=21 p=35 sa=15 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass in on lo0 inet6 from fe80::1 to any flags S/SA keep state label "fe80::1fe80::1" + [ Skip steps: i=end d=end f=21 p=35 sa=15 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 pass in on lo0 inet6 from fe80::1 to any flags S/SA keep state label ":fe80::1:fe80::1:" + [ Skip steps: i=end d=end f=21 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass in on lo0 inet6 from ::/8 to any flags S/SA keep state label "::/8" + [ Skip steps: i=end d=end f=21 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass in on lo0 inet6 from fe00::/8 to any flags S/SA keep state label "fe00::/8" + [ Skip steps: i=end d=end f=21 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass in on lo0 inet6 from ::/64 to any flags S/SA keep state label "::/64::/64" + [ Skip steps: i=end d=end f=21 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 pass in on lo0 inet6 from fe80::/64 to any flags S/SA keep state label "fe80::/64fe80::/64" + [ Skip steps: i=end d=end f=21 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 pass in on lo0 inet6 from ::/127 to any flags S/SA keep state label ":::/127:::/127:" + [ Skip steps: i=end d=end f=21 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 pass in on lo0 inet6 from fe80::/127 to any flags S/SA keep state label ":fe80::/127:fe80::/127:" + [ Skip steps: i=end d=end p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 pass in on lo0 all flags S/SA keep state label "!any!" + [ Skip steps: i=end d=end p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@22 pass in on lo0 inet from any to (lo0:1) flags S/SA keep state label "(lo0)" + [ Skip steps: i=end d=end f=28 p=35 sa=60 sp=35 da=25 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@23 pass in on lo0 inet from any to (lo0:1) flags S/SA keep state label "(lo0)(lo0)" + [ Skip steps: i=end d=end f=28 p=35 sa=60 sp=35 da=25 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@24 pass in on lo0 inet from any to (lo0:1) flags S/SA keep state label " (lo0) (lo0) " + [ Skip steps: i=end d=end f=28 p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@25 pass in on lo0 inet from any to ! 127.0.0.0/8 flags S/SA keep state label "! 127.0.0.0/8" + [ Skip steps: i=end d=end f=28 p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@26 pass in on lo0 inet from any to ! 127.0.0.0/16 flags S/SA keep state label "! 127.0.0.0/16! 127.0.0.0/16" + [ Skip steps: i=end d=end f=28 p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@27 pass in on lo0 inet from any to ! 127.0.0.0/31 flags S/SA keep state label " ! 127.0.0.0/31 ! 127.0.0.0/31 " + [ Skip steps: i=end d=end p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@28 pass in on lo0 inet6 from any to ! (lo0:2) flags S/SA keep state label "! (lo0)" + [ Skip steps: i=end d=end f=34 p=35 sa=60 sp=35 da=31 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@29 pass in on lo0 inet6 from any to ! (lo0:2) flags S/SA keep state label "! (lo0)! (lo0)" + [ Skip steps: i=end d=end f=34 p=35 sa=60 sp=35 da=31 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@30 pass in on lo0 inet6 from any to ! (lo0:2) flags S/SA keep state label " ! (lo0) ! (lo0) " + [ Skip steps: i=end d=end f=34 p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@31 pass in on lo0 inet6 from any to ! ::/8 flags S/SA keep state label "! ::/8" + [ Skip steps: i=end d=end f=34 p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@32 pass in on lo0 inet6 from any to ! ::/64 flags S/SA keep state label "! ::/64! ::/64" + [ Skip steps: i=end d=end f=34 p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@33 pass in on lo0 inet6 from any to ! ::/127 flags S/SA keep state label " ! ::/127 ! ::/127 " + [ Skip steps: i=end d=end p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@34 pass in on lo0 all flags S/SA keep state label "xx" + [ Skip steps: i=end d=end f=60 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@35 pass in on lo0 proto tcp from any port = 28 to any flags S/SA keep state label "28" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@36 pass in on lo0 proto tcp from any port 28 >< 29 to any flags S/SA keep state label "28><29" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@37 pass in on lo0 proto tcp from any port 28 <> 29 to any flags S/SA keep state label "28<>29" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@38 pass in on lo0 proto tcp from any port 28:29 to any flags S/SA keep state + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@39 pass in on lo0 proto tcp from any port != 28 to any flags S/SA keep state label "!=28" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@40 pass in on lo0 proto tcp from any port < 28 to any flags S/SA keep state label "<28" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@41 pass in on lo0 proto tcp from any port <= 28 to any flags S/SA keep state label "<=28" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@42 pass in on lo0 proto tcp from any port > 28 to any flags S/SA keep state label ">28" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@43 pass in on lo0 proto tcp from any port >= 28 to any flags S/SA keep state label ">=28" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@44 pass in on lo0 proto tcp from any port = 28 to any flags S/SA keep state label "2828" + [ Skip steps: i=end d=end f=60 p=46 sa=60 sp=46 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@45 pass in on lo0 proto tcp from any port = 28 to any flags S/SA keep state label "$28$28$" + [ Skip steps: i=end d=end f=60 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@46 pass in on lo0 all flags S/SA keep state + [ Skip steps: i=end d=end f=60 sa=60 sp=60 da=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@47 pass in on lo0 proto udp from any to any port = 29 keep state label "29" + [ Skip steps: i=end d=end f=60 p=50 sa=60 sp=60 da=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@48 pass in on lo0 proto udp from any to any port != 29 keep state label "!=29!=29" + [ Skip steps: i=end d=end f=60 p=50 sa=60 sp=60 da=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@49 pass in on lo0 proto udp from any to any port > 29 keep state label "x>29x>29x" + [ Skip steps: i=end d=end f=60 sa=60 sp=60 da=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@50 pass in on lo0 all flags S/SA keep state label "ip" + [ Skip steps: i=end d=end f=60 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@51 pass in on lo0 proto esp all keep state label "esp" + [ Skip steps: i=end d=end f=60 p=54 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@52 pass in on lo0 proto esp all keep state label "espesp" + [ Skip steps: i=end d=end f=60 p=54 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@53 pass in on lo0 proto esp all keep state label "-esp-esp-" + [ Skip steps: i=end d=end f=60 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@54 pass in on lo0 proto 166 all keep state label "166" + [ Skip steps: i=end d=end f=60 p=57 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@55 pass in on lo0 proto 166 all keep state label "166166" + [ Skip steps: i=end d=end f=60 p=57 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@56 pass in on lo0 proto 166 all keep state label "_166_166_" + [ Skip steps: i=end d=end f=60 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@57 pass in on lo0 all flags S/SA keep state label "57" + [ Skip steps: i=end d=end f=60 p=60 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@58 pass in on lo0 all flags S/SA keep state label "5858" + [ Skip steps: i=end d=end f=60 p=60 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@59 pass in on lo0 all flags S/SA keep state label "%59%59%" + [ Skip steps: i=end d=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@60 pass in on lo0 inet proto tcp from 127.0.0.1 port = 30 to 127.0.0.2 port = 44 flags S/SA keep state label "if lo0 proto tcp 127.0.0.1 30 127.0.0.2 44" + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf47.ok b/src/regress/sbin/pfctl/pf47.ok new file mode 100644 index 000000000..fb9e6e3c1 --- /dev/null +++ b/src/regress/sbin/pfctl/pf47.ok @@ -0,0 +1,61 @@ +pass in on lo0 all flags S/SA keep state +pass in all flags S/SA keep state label "any" +pass in on lo0 all flags S/SA keep state label "lo0" +pass in on lo0 all flags S/SA keep state label "lo0lo0" +pass in on lo0 all flags S/SA keep state label "any" +pass in on lo0 inet all flags S/SA keep state label "any" +pass in on lo0 inet from 127.0.0.1 to any flags S/SA keep state label "127.0.0.1" +pass in on lo0 inet from 127.0.0.1 to any flags S/SA keep state label "127.0.0.1127.0.0.1" +pass in on lo0 inet from 127.0.0.1 to any flags S/SA keep state label ":127.0.0.1:127.0.0.1:" +pass in on lo0 inet from 127.0.0.0/8 to any flags S/SA keep state label "127.0.0.0/8" +pass in on lo0 inet from 127.0.0.0/16 to any flags S/SA keep state label "127.0.0.0/16127.0.0.0/16" +pass in on lo0 inet from 127.0.0.0/31 to any flags S/SA keep state label ":127.0.0.0/31:127.0.0.0/31:" +pass in on lo0 inet6 from fe80::1 to any flags S/SA keep state label "fe80::1" +pass in on lo0 inet6 from fe80::1 to any flags S/SA keep state label "fe80::1fe80::1" +pass in on lo0 inet6 from fe80::1 to any flags S/SA keep state label ":fe80::1:fe80::1:" +pass in on lo0 inet6 from ::/8 to any flags S/SA keep state label "::/8" +pass in on lo0 inet6 from fe00::/8 to any flags S/SA keep state label "fe00::/8" +pass in on lo0 inet6 from ::/64 to any flags S/SA keep state label "::/64::/64" +pass in on lo0 inet6 from fe80::/64 to any flags S/SA keep state label "fe80::/64fe80::/64" +pass in on lo0 inet6 from ::/127 to any flags S/SA keep state label ":::/127:::/127:" +pass in on lo0 inet6 from fe80::/127 to any flags S/SA keep state label ":fe80::/127:fe80::/127:" +pass in on lo0 all flags S/SA keep state label "!any!" +pass in on lo0 inet from any to (lo0) flags S/SA keep state label "(lo0)" +pass in on lo0 inet from any to (lo0) flags S/SA keep state label "(lo0)(lo0)" +pass in on lo0 inet from any to (lo0) flags S/SA keep state label " (lo0) (lo0) " +pass in on lo0 inet from any to ! 127.0.0.0/8 flags S/SA keep state label "! 127.0.0.0/8" +pass in on lo0 inet from any to ! 127.0.0.0/16 flags S/SA keep state label "! 127.0.0.0/16! 127.0.0.0/16" +pass in on lo0 inet from any to ! 127.0.0.0/31 flags S/SA keep state label " ! 127.0.0.0/31 ! 127.0.0.0/31 " +pass in on lo0 inet6 from any to ! (lo0) flags S/SA keep state label "! (lo0)" +pass in on lo0 inet6 from any to ! (lo0) flags S/SA keep state label "! (lo0)! (lo0)" +pass in on lo0 inet6 from any to ! (lo0) flags S/SA keep state label " ! (lo0) ! (lo0) " +pass in on lo0 inet6 from any to ! ::/8 flags S/SA keep state label "! ::/8" +pass in on lo0 inet6 from any to ! ::/64 flags S/SA keep state label "! ::/64! ::/64" +pass in on lo0 inet6 from any to ! ::/127 flags S/SA keep state label " ! ::/127 ! ::/127 " +pass in on lo0 all flags S/SA keep state label "xx" +pass in on lo0 proto tcp from any port = 28 to any flags S/SA keep state label "28" +pass in on lo0 proto tcp from any port 28 >< 29 to any flags S/SA keep state label "28><29" +pass in on lo0 proto tcp from any port 28 <> 29 to any flags S/SA keep state label "28<>29" +pass in on lo0 proto tcp from any port 28:29 to any flags S/SA keep state +pass in on lo0 proto tcp from any port != 28 to any flags S/SA keep state label "!=28" +pass in on lo0 proto tcp from any port < 28 to any flags S/SA keep state label "<28" +pass in on lo0 proto tcp from any port <= 28 to any flags S/SA keep state label "<=28" +pass in on lo0 proto tcp from any port > 28 to any flags S/SA keep state label ">28" +pass in on lo0 proto tcp from any port >= 28 to any flags S/SA keep state label ">=28" +pass in on lo0 proto tcp from any port = 28 to any flags S/SA keep state label "2828" +pass in on lo0 proto tcp from any port = 28 to any flags S/SA keep state label "$28$28$" +pass in on lo0 all flags S/SA keep state +pass in on lo0 proto udp from any to any port = 29 keep state label "29" +pass in on lo0 proto udp from any to any port != 29 keep state label "!=29!=29" +pass in on lo0 proto udp from any to any port > 29 keep state label "x>29x>29x" +pass in on lo0 all flags S/SA keep state label "ip" +pass in on lo0 proto esp all keep state label "esp" +pass in on lo0 proto esp all keep state label "espesp" +pass in on lo0 proto esp all keep state label "-esp-esp-" +pass in on lo0 proto 166 all keep state label "166" +pass in on lo0 proto 166 all keep state label "166166" +pass in on lo0 proto 166 all keep state label "_166_166_" +pass in on lo0 all flags S/SA keep state label "57" +pass in on lo0 all flags S/SA keep state label "5858" +pass in on lo0 all flags S/SA keep state label "%59%59%" +pass in on lo0 inet proto tcp from 127.0.0.1 port = 30 to 127.0.0.2 port = 44 flags S/SA keep state label "if lo0 proto tcp 127.0.0.1 30 127.0.0.2 44" diff --git a/src/regress/sbin/pfctl/pf47.optimized b/src/regress/sbin/pfctl/pf47.optimized new file mode 100644 index 000000000..cdbc89021 --- /dev/null +++ b/src/regress/sbin/pfctl/pf47.optimized @@ -0,0 +1,244 @@ +@0 pass in on lo0 all flags S/SA keep state + [ Skip steps: d=end f=5 p=35 sa=6 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in all flags S/SA keep state label "any" + [ Skip steps: d=end f=5 p=35 sa=6 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in on lo0 all flags S/SA keep state label "lo0" + [ Skip steps: i=end d=end f=5 p=35 sa=6 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in on lo0 all flags S/SA keep state label "lo0lo0" + [ Skip steps: i=end d=end f=5 p=35 sa=6 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in on lo0 all flags S/SA keep state label "any" + [ Skip steps: i=end d=end p=35 sa=6 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in on lo0 inet all flags S/SA keep state label "any" + [ Skip steps: i=end d=end f=12 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in on lo0 inet from 127.0.0.1 to any flags S/SA keep state label "127.0.0.1" + [ Skip steps: i=end d=end f=12 p=35 sa=9 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in on lo0 inet from 127.0.0.1 to any flags S/SA keep state label "127.0.0.1127.0.0.1" + [ Skip steps: i=end d=end f=12 p=35 sa=9 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in on lo0 inet from 127.0.0.1 to any flags S/SA keep state label ":127.0.0.1:127.0.0.1:" + [ Skip steps: i=end d=end f=12 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass in on lo0 inet from 127.0.0.0/8 to any flags S/SA keep state label "127.0.0.0/8" + [ Skip steps: i=end d=end f=12 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass in on lo0 inet from 127.0.0.0/16 to any flags S/SA keep state label "127.0.0.0/16127.0.0.0/16" + [ Skip steps: i=end d=end f=12 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass in on lo0 inet from 127.0.0.0/31 to any flags S/SA keep state label ":127.0.0.0/31:127.0.0.0/31:" + [ Skip steps: i=end d=end p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass in on lo0 inet6 from fe80::1 to any flags S/SA keep state label "fe80::1" + [ Skip steps: i=end d=end f=21 p=35 sa=15 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass in on lo0 inet6 from fe80::1 to any flags S/SA keep state label "fe80::1fe80::1" + [ Skip steps: i=end d=end f=21 p=35 sa=15 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 pass in on lo0 inet6 from fe80::1 to any flags S/SA keep state label ":fe80::1:fe80::1:" + [ Skip steps: i=end d=end f=21 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass in on lo0 inet6 from ::/8 to any flags S/SA keep state label "::/8" + [ Skip steps: i=end d=end f=21 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass in on lo0 inet6 from fe00::/8 to any flags S/SA keep state label "fe00::/8" + [ Skip steps: i=end d=end f=21 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass in on lo0 inet6 from ::/64 to any flags S/SA keep state label "::/64::/64" + [ Skip steps: i=end d=end f=21 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 pass in on lo0 inet6 from fe80::/64 to any flags S/SA keep state label "fe80::/64fe80::/64" + [ Skip steps: i=end d=end f=21 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 pass in on lo0 inet6 from ::/127 to any flags S/SA keep state label ":::/127:::/127:" + [ Skip steps: i=end d=end f=21 p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 pass in on lo0 inet6 from fe80::/127 to any flags S/SA keep state label ":fe80::/127:fe80::/127:" + [ Skip steps: i=end d=end p=35 sp=35 da=22 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 pass in on lo0 all flags S/SA keep state label "!any!" + [ Skip steps: i=end d=end p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@22 pass in on lo0 inet from any to (lo0:1) flags S/SA keep state label "(lo0)" + [ Skip steps: i=end d=end f=28 p=35 sa=60 sp=35 da=25 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@23 pass in on lo0 inet from any to (lo0:1) flags S/SA keep state label "(lo0)(lo0)" + [ Skip steps: i=end d=end f=28 p=35 sa=60 sp=35 da=25 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@24 pass in on lo0 inet from any to (lo0:1) flags S/SA keep state label " (lo0) (lo0) " + [ Skip steps: i=end d=end f=28 p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@25 pass in on lo0 inet from any to ! 127.0.0.0/8 flags S/SA keep state label "! 127.0.0.0/8" + [ Skip steps: i=end d=end f=28 p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@26 pass in on lo0 inet from any to ! 127.0.0.0/16 flags S/SA keep state label "! 127.0.0.0/16! 127.0.0.0/16" + [ Skip steps: i=end d=end f=28 p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@27 pass in on lo0 inet from any to ! 127.0.0.0/31 flags S/SA keep state label " ! 127.0.0.0/31 ! 127.0.0.0/31 " + [ Skip steps: i=end d=end p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@28 pass in on lo0 inet6 from any to ! (lo0:2) flags S/SA keep state label "! (lo0)" + [ Skip steps: i=end d=end f=34 p=35 sa=60 sp=35 da=31 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@29 pass in on lo0 inet6 from any to ! (lo0:2) flags S/SA keep state label "! (lo0)! (lo0)" + [ Skip steps: i=end d=end f=34 p=35 sa=60 sp=35 da=31 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@30 pass in on lo0 inet6 from any to ! (lo0:2) flags S/SA keep state label " ! (lo0) ! (lo0) " + [ Skip steps: i=end d=end f=34 p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@31 pass in on lo0 inet6 from any to ! ::/8 flags S/SA keep state label "! ::/8" + [ Skip steps: i=end d=end f=34 p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@32 pass in on lo0 inet6 from any to ! ::/64 flags S/SA keep state label "! ::/64! ::/64" + [ Skip steps: i=end d=end f=34 p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@33 pass in on lo0 inet6 from any to ! ::/127 flags S/SA keep state label " ! ::/127 ! ::/127 " + [ Skip steps: i=end d=end p=35 sa=60 sp=35 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@34 pass in on lo0 all flags S/SA keep state label "xx" + [ Skip steps: i=end d=end f=60 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@35 pass in on lo0 proto tcp from any port = 28 to any flags S/SA keep state label "28" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@36 pass in on lo0 proto tcp from any port 28 >< 29 to any flags S/SA keep state label "28><29" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@37 pass in on lo0 proto tcp from any port 28 <> 29 to any flags S/SA keep state label "28<>29" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@38 pass in on lo0 proto tcp from any port 28:29 to any flags S/SA keep state + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@39 pass in on lo0 proto tcp from any port != 28 to any flags S/SA keep state label "!=28" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@40 pass in on lo0 proto tcp from any port < 28 to any flags S/SA keep state label "<28" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@41 pass in on lo0 proto tcp from any port <= 28 to any flags S/SA keep state label "<=28" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@42 pass in on lo0 proto tcp from any port > 28 to any flags S/SA keep state label ">28" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@43 pass in on lo0 proto tcp from any port >= 28 to any flags S/SA keep state label ">=28" + [ Skip steps: i=end d=end f=60 p=46 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@44 pass in on lo0 proto tcp from any port = 28 to any flags S/SA keep state label "2828" + [ Skip steps: i=end d=end f=60 p=46 sa=60 sp=46 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@45 pass in on lo0 proto tcp from any port = 28 to any flags S/SA keep state label "$28$28$" + [ Skip steps: i=end d=end f=60 sa=60 da=60 dp=47 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@46 pass in on lo0 all flags S/SA keep state + [ Skip steps: i=end d=end f=60 sa=60 sp=60 da=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@47 pass in on lo0 proto udp from any to any port = 29 keep state label "29" + [ Skip steps: i=end d=end f=60 p=50 sa=60 sp=60 da=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@48 pass in on lo0 proto udp from any to any port != 29 keep state label "!=29!=29" + [ Skip steps: i=end d=end f=60 p=50 sa=60 sp=60 da=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@49 pass in on lo0 proto udp from any to any port > 29 keep state label "x>29x>29x" + [ Skip steps: i=end d=end f=60 sa=60 sp=60 da=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@50 pass in on lo0 all flags S/SA keep state label "ip" + [ Skip steps: i=end d=end f=60 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@51 pass in on lo0 proto esp all keep state label "esp" + [ Skip steps: i=end d=end f=60 p=54 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@52 pass in on lo0 proto esp all keep state label "espesp" + [ Skip steps: i=end d=end f=60 p=54 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@53 pass in on lo0 proto esp all keep state label "-esp-esp-" + [ Skip steps: i=end d=end f=60 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@54 pass in on lo0 proto 166 all keep state label "166" + [ Skip steps: i=end d=end f=60 p=57 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@55 pass in on lo0 proto 166 all keep state label "166166" + [ Skip steps: i=end d=end f=60 p=57 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@56 pass in on lo0 proto 166 all keep state label "_166_166_" + [ Skip steps: i=end d=end f=60 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@57 pass in on lo0 all flags S/SA keep state label "57" + [ Skip steps: i=end d=end f=60 p=60 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@58 pass in on lo0 all flags S/SA keep state label "5858" + [ Skip steps: i=end d=end f=60 p=60 sa=60 sp=60 da=60 dp=60 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@59 pass in on lo0 all flags S/SA keep state label "%59%59%" + [ Skip steps: i=end d=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@60 pass in on lo0 inet proto tcp from 127.0.0.1 port = 30 to 127.0.0.2 port = 44 flags S/SA keep state label "if lo0 proto tcp 127.0.0.1 30 127.0.0.2 44" + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf48.in b/src/regress/sbin/pfctl/pf48.in new file mode 100644 index 000000000..943970980 --- /dev/null +++ b/src/regress/sbin/pfctl/pf48.in @@ -0,0 +1,13 @@ +table < regress > { 1.2.3.4 !5.6.7.8 10/8 lo0 } +table const { ::1 fe80::/64 } +table { 1.2.3.4 !5.6.7.8 } { ::1 ::2 ::3 } file "/dev/null" const { 4.3.2.1 } +match out on lo0 from < regress.1> to nat-to lo0 +match out on !lo0 from ! to nat-to lo0 +match in on lo0 from to rdr-to lo0 +match in on !lo0 from !< regress.1 > to rdr-to lo0 +match in from { ! } to any +match out from any to { !, } +pass in from to any +pass out from any to +pass in from { } to any +pass out from any to { !, ! } diff --git a/src/regress/sbin/pfctl/pf48.loaded b/src/regress/sbin/pfctl/pf48.loaded new file mode 100644 index 000000000..a3ce438ba --- /dev/null +++ b/src/regress/sbin/pfctl/pf48.loaded @@ -0,0 +1,56 @@ +@0 match out on lo0 inet from to nat-to 127.0.0.1 + [ Skip steps: d=2 f=4 p=end sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match out on ! lo0 inet from ! to nat-to 127.0.0.1 + [ Skip steps: f=4 p=end sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match in on lo0 inet from to rdr-to 127.0.0.1 + [ Skip steps: d=6 f=4 p=end sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match in on ! lo0 inet from ! to rdr-to 127.0.0.1 + [ Skip steps: d=6 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match in from to any + [ Skip steps: i=end d=6 f=end p=end sp=end da=6 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match in from ! to any + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match out from any to ! + [ Skip steps: i=end d=8 f=end p=end sa=8 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match out from any to + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in from to any flags S/SA keep state + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass out from any to flags S/SA keep state + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass in from to any flags S/SA keep state + [ Skip steps: i=end d=12 f=end p=end sp=end da=12 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass in from to any flags S/SA keep state + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass out from any to ! flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass out from any to ! flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf48.ok b/src/regress/sbin/pfctl/pf48.ok new file mode 100644 index 000000000..aff5123c2 --- /dev/null +++ b/src/regress/sbin/pfctl/pf48.ok @@ -0,0 +1,17 @@ +table { 1.2.3.4 !5.6.7.8 10.0.0.0/8 127.0.0.1 ::1 fe80::1 } +table const { ::1 fe80::/64 } +table const { 1.2.3.4 !5.6.7.8 ::1 ::2 ::3 } file "/dev/null" { 4.3.2.1 } +match out on lo0 inet from to nat-to 127.0.0.1 +match out on ! lo0 inet from ! to nat-to 127.0.0.1 +match in on lo0 inet from to rdr-to 127.0.0.1 +match in on ! lo0 inet from ! to rdr-to 127.0.0.1 +match in from to any +match in from ! to any +match out from any to ! +match out from any to +pass in from to any flags S/SA keep state +pass out from any to flags S/SA keep state +pass in from to any flags S/SA keep state +pass in from to any flags S/SA keep state +pass out from any to ! flags S/SA keep state +pass out from any to ! flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf48.optimized b/src/regress/sbin/pfctl/pf48.optimized new file mode 100644 index 000000000..dbc84cefd --- /dev/null +++ b/src/regress/sbin/pfctl/pf48.optimized @@ -0,0 +1,56 @@ +@0 match out on lo0 inet from to nat-to 127.0.0.1 + [ Skip steps: d=2 f=4 p=end sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match out on ! lo0 inet from ! to nat-to 127.0.0.1 + [ Skip steps: f=4 p=end sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match in on lo0 inet from to rdr-to 127.0.0.1 + [ Skip steps: d=6 f=4 p=end sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match in on ! lo0 inet from ! to rdr-to 127.0.0.1 + [ Skip steps: d=6 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match in from to any + [ Skip steps: i=end d=6 f=end p=end sp=end da=6 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match in from ! to any + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match out from any to ! + [ Skip steps: i=end d=8 f=end p=end sa=8 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match out from any to + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in from to any flags S/SA keep state + [ Skip steps: i=end d=11 f=end p=end sp=end da=11 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass in from to any flags S/SA keep state + [ Skip steps: i=end d=11 f=end p=end sp=end da=11 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass in from to any flags S/SA keep state + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass out from any to flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass out from any to ! flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass out from any to ! flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf49.in b/src/regress/sbin/pfctl/pf49.in new file mode 100644 index 000000000..420ea2df0 --- /dev/null +++ b/src/regress/sbin/pfctl/pf49.in @@ -0,0 +1,5 @@ +#test :broadcast and :network modifiers +pass in on lo0 from lo0:network to any keep state + +#broadcast on lo0 doesn't make sense at all! +#block in on lo0 from any to lo0:broadcast diff --git a/src/regress/sbin/pfctl/pf49.loaded b/src/regress/sbin/pfctl/pf49.loaded new file mode 100644 index 000000000..82b15ae81 --- /dev/null +++ b/src/regress/sbin/pfctl/pf49.loaded @@ -0,0 +1,8 @@ +@0 pass in on lo0 inet from 127.0.0.0/8 to any flags S/SA keep state + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in on lo0 inet6 from ::1 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf49.ok b/src/regress/sbin/pfctl/pf49.ok new file mode 100644 index 000000000..19d0d39dc --- /dev/null +++ b/src/regress/sbin/pfctl/pf49.ok @@ -0,0 +1,2 @@ +pass in on lo0 inet from 127.0.0.0/8 to any flags S/SA keep state +pass in on lo0 inet6 from ::1 to any flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf49.optimized b/src/regress/sbin/pfctl/pf49.optimized new file mode 100644 index 000000000..82b15ae81 --- /dev/null +++ b/src/regress/sbin/pfctl/pf49.optimized @@ -0,0 +1,8 @@ +@0 pass in on lo0 inet from 127.0.0.0/8 to any flags S/SA keep state + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in on lo0 inet6 from ::1 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf5.in b/src/regress/sbin/pfctl/pf5.in new file mode 100644 index 000000000..6ad7040c2 --- /dev/null +++ b/src/regress/sbin/pfctl/pf5.in @@ -0,0 +1,6 @@ +foo = "ssh, ftp" +bar = "other thing" +inside="10.0.0.0/8" + +block in proto udp from $inside port { echo, $foo, ident } \ + to 12.34.56.78 port { 6667, 0x10 } diff --git a/src/regress/sbin/pfctl/pf5.loaded b/src/regress/sbin/pfctl/pf5.loaded new file mode 100644 index 000000000..c2b05cd45 --- /dev/null +++ b/src/regress/sbin/pfctl/pf5.loaded @@ -0,0 +1,32 @@ +@0 block drop in inet proto udp from 10.0.0.0/8 port = echo to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=end sp=2 da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in inet proto udp from 10.0.0.0/8 port = echo to 12.34.56.78 port = 16 + [ Skip steps: i=end d=end f=end p=end sa=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in inet proto udp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=end sp=4 da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in inet proto udp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 16 + [ Skip steps: i=end d=end f=end p=end sa=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block drop in inet proto udp from 10.0.0.0/8 port = 21 to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=end sp=6 da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block drop in inet proto udp from 10.0.0.0/8 port = 21 to 12.34.56.78 port = 16 + [ Skip steps: i=end d=end f=end p=end sa=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 block drop in inet proto udp from 10.0.0.0/8 port = 113 to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block drop in inet proto udp from 10.0.0.0/8 port = 113 to 12.34.56.78 port = 16 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf5.ok b/src/regress/sbin/pfctl/pf5.ok new file mode 100644 index 000000000..b3f7c2c99 --- /dev/null +++ b/src/regress/sbin/pfctl/pf5.ok @@ -0,0 +1,11 @@ +foo = "ssh, ftp" +bar = "other thing" +inside = "10.0.0.0/8" +block drop in inet proto udp from 10.0.0.0/8 port = echo to 12.34.56.78 port = 6667 +block drop in inet proto udp from 10.0.0.0/8 port = echo to 12.34.56.78 port = 16 +block drop in inet proto udp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 6667 +block drop in inet proto udp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 16 +block drop in inet proto udp from 10.0.0.0/8 port = 21 to 12.34.56.78 port = 6667 +block drop in inet proto udp from 10.0.0.0/8 port = 21 to 12.34.56.78 port = 16 +block drop in inet proto udp from 10.0.0.0/8 port = 113 to 12.34.56.78 port = 6667 +block drop in inet proto udp from 10.0.0.0/8 port = 113 to 12.34.56.78 port = 16 diff --git a/src/regress/sbin/pfctl/pf5.optimized b/src/regress/sbin/pfctl/pf5.optimized new file mode 100644 index 000000000..74da9bb0f --- /dev/null +++ b/src/regress/sbin/pfctl/pf5.optimized @@ -0,0 +1,32 @@ +@0 block drop in inet proto udp from 10.0.0.0/8 port = echo to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=end da=end dp=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in inet proto udp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=end da=end dp=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in inet proto udp from 10.0.0.0/8 port = 21 to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=end da=end dp=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop in inet proto udp from 10.0.0.0/8 port = 113 to 12.34.56.78 port = 6667 + [ Skip steps: i=end d=end f=end p=end sa=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block drop in inet proto udp from 10.0.0.0/8 port = echo to 12.34.56.78 port = 16 + [ Skip steps: i=end d=end f=end p=end sa=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block drop in inet proto udp from 10.0.0.0/8 port = ssh to 12.34.56.78 port = 16 + [ Skip steps: i=end d=end f=end p=end sa=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 block drop in inet proto udp from 10.0.0.0/8 port = 21 to 12.34.56.78 port = 16 + [ Skip steps: i=end d=end f=end p=end sa=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block drop in inet proto udp from 10.0.0.0/8 port = 113 to 12.34.56.78 port = 16 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf50.in b/src/regress/sbin/pfctl/pf50.in new file mode 100644 index 000000000..e1ecb5274 --- /dev/null +++ b/src/regress/sbin/pfctl/pf50.in @@ -0,0 +1,4 @@ +# double macro set +extif="wi0" +extif="lo0" +block in on $extif diff --git a/src/regress/sbin/pfctl/pf50.ok b/src/regress/sbin/pfctl/pf50.ok new file mode 100644 index 000000000..e891b2386 --- /dev/null +++ b/src/regress/sbin/pfctl/pf50.ok @@ -0,0 +1,3 @@ +extif = "wi0" +extif = "lo0" +block drop in on lo0 all diff --git a/src/regress/sbin/pfctl/pf51.in b/src/regress/sbin/pfctl/pf51.in new file mode 100644 index 000000000..542d40891 --- /dev/null +++ b/src/regress/sbin/pfctl/pf51.in @@ -0,0 +1,9 @@ +# test require-order + +pass in on lo0 all +set require-order no +match out on lo0 from any to any nat-to 127.0.0.1 +altq on lo0 tbrsize 1824 cbq bandwidth 10Mb queue { toad, frog } +queue toad bandwidth 1Mb +queue frog bandwidth 90% cbq(default) + diff --git a/src/regress/sbin/pfctl/pf51.ok b/src/regress/sbin/pfctl/pf51.ok new file mode 100644 index 000000000..2573c2c88 --- /dev/null +++ b/src/regress/sbin/pfctl/pf51.ok @@ -0,0 +1,6 @@ +set require-order no +altq on lo0 cbq bandwidth 10Mb tbrsize 1824 queue { toad frog } +queue toad bandwidth 1Mb +queue frog bandwidth 90% cbq( default ) +pass in on lo0 all flags S/SA keep state +match out on lo0 inet all nat-to 127.0.0.1 diff --git a/src/regress/sbin/pfctl/pf52.in b/src/regress/sbin/pfctl/pf52.in new file mode 100644 index 000000000..262d02984 --- /dev/null +++ b/src/regress/sbin/pfctl/pf52.in @@ -0,0 +1,7 @@ +# test setting all optimizations to avoid future keyword clashes + +set optimization normal +set optimization satellite +set optimization high-latency +set optimization conservative +set optimization aggressive diff --git a/src/regress/sbin/pfctl/pf52.ok b/src/regress/sbin/pfctl/pf52.ok new file mode 100644 index 000000000..f83263b2a --- /dev/null +++ b/src/regress/sbin/pfctl/pf52.ok @@ -0,0 +1,5 @@ +set optimization normal +set optimization satellite +set optimization high-latency +set optimization conservative +set optimization aggressive diff --git a/src/regress/sbin/pfctl/pf53.in b/src/regress/sbin/pfctl/pf53.in new file mode 100644 index 000000000..263f99048 --- /dev/null +++ b/src/regress/sbin/pfctl/pf53.in @@ -0,0 +1,4 @@ +pass in proto tcp from { 1.2.3.4, 1.2.3.5 } to any label \ +"$nr:$if:$proto:$srcaddr:$srcport:$dstaddr:$dstport" +pass in on lo0 proto tcp from { 1.2.3.4, 1.2.3.5 } to any label \ +"$nr:$if:$proto:$srcaddr:$srcport:$dstaddr:$dstport" diff --git a/src/regress/sbin/pfctl/pf53.ok b/src/regress/sbin/pfctl/pf53.ok new file mode 100644 index 000000000..91866b724 --- /dev/null +++ b/src/regress/sbin/pfctl/pf53.ok @@ -0,0 +1,4 @@ +pass in inet proto tcp from 1.2.3.4 to any flags S/SA keep state label "0:any:tcp:1.2.3.4::any:" +pass in inet proto tcp from 1.2.3.5 to any flags S/SA keep state label "1:any:tcp:1.2.3.5::any:" +pass in on lo0 inet proto tcp from 1.2.3.4 to any flags S/SA keep state label "2:lo0:tcp:1.2.3.4::any:" +pass in on lo0 inet proto tcp from 1.2.3.5 to any flags S/SA keep state label "3:lo0:tcp:1.2.3.5::any:" diff --git a/src/regress/sbin/pfctl/pf54.in b/src/regress/sbin/pfctl/pf54.in new file mode 100644 index 000000000..5f6b2b3cc --- /dev/null +++ b/src/regress/sbin/pfctl/pf54.in @@ -0,0 +1,3 @@ +#scrub random-id + +match scrub(random-id) diff --git a/src/regress/sbin/pfctl/pf54.loaded b/src/regress/sbin/pfctl/pf54.loaded new file mode 100644 index 000000000..2794e743e --- /dev/null +++ b/src/regress/sbin/pfctl/pf54.loaded @@ -0,0 +1,4 @@ +@0 match all scrub (random-id) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf54.ok b/src/regress/sbin/pfctl/pf54.ok new file mode 100644 index 000000000..fb516ea06 --- /dev/null +++ b/src/regress/sbin/pfctl/pf54.ok @@ -0,0 +1 @@ +match all scrub (random-id) diff --git a/src/regress/sbin/pfctl/pf54.optimized b/src/regress/sbin/pfctl/pf54.optimized new file mode 100644 index 000000000..2794e743e --- /dev/null +++ b/src/regress/sbin/pfctl/pf54.optimized @@ -0,0 +1,4 @@ +@0 match all scrub (random-id) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf55.in b/src/regress/sbin/pfctl/pf55.in new file mode 100644 index 000000000..008c229f5 --- /dev/null +++ b/src/regress/sbin/pfctl/pf55.in @@ -0,0 +1,19 @@ +set timeout { interval 43, frag 23 } +set timeout { tcp.first 423, tcp.opening 123, tcp.established 43758 } +set timeout { tcp.closing 744, tcp.finwait 25, tcp.closed 38 } +set timeout { udp.first 356, udp.single 73, udp.multiple 34 } +set timeout { icmp.first 464, icmp.error 34 } +set timeout { other.first 455, other.single 54, other.multiple 324 } +set timeout { src.track 3600 } +set limit { states 4522, frags 43556 } +set loginterface none +set loginterface lo0 +set hostid 1 +set optimization normal +set block-policy drop +set require-order yes + +set limit states 43254 +set limit frags 34557 +set timeout interval 344 +set timeout frag 213 diff --git a/src/regress/sbin/pfctl/pf55.ok b/src/regress/sbin/pfctl/pf55.ok new file mode 100644 index 000000000..7cb023b1a --- /dev/null +++ b/src/regress/sbin/pfctl/pf55.ok @@ -0,0 +1,29 @@ +set timeout interval 43 +set timeout frag 23 +set timeout tcp.first 423 +set timeout tcp.opening 123 +set timeout tcp.established 43758 +set timeout tcp.closing 744 +set timeout tcp.finwait 25 +set timeout tcp.closed 38 +set timeout udp.first 356 +set timeout udp.single 73 +set timeout udp.multiple 34 +set timeout icmp.first 464 +set timeout icmp.error 34 +set timeout other.first 455 +set timeout other.single 54 +set timeout other.multiple 324 +set timeout src.track 3600 +set limit states 4522 +set limit frags 43556 +set loginterface none +set loginterface lo0 +set hostid 0x00000001 +set optimization normal +set block-policy drop +set require-order yes +set limit states 43254 +set limit frags 34557 +set timeout interval 344 +set timeout frag 213 diff --git a/src/regress/sbin/pfctl/pf56.in b/src/regress/sbin/pfctl/pf56.in new file mode 100644 index 000000000..691908925 --- /dev/null +++ b/src/regress/sbin/pfctl/pf56.in @@ -0,0 +1,2 @@ +pass in proto tcp from any to any port www keep state (tcp.established 60) +pass in proto tcp from any to any port www keep state (max 10, no-sync, tcp.first 2) diff --git a/src/regress/sbin/pfctl/pf56.loaded b/src/regress/sbin/pfctl/pf56.loaded new file mode 100644 index 000000000..c51fb09bb --- /dev/null +++ b/src/regress/sbin/pfctl/pf56.loaded @@ -0,0 +1,8 @@ +@0 pass in proto tcp from any to any port = www flags S/SA keep state (tcp.established 60) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in proto tcp from any to any port = www flags S/SA keep state (max 10, no-sync, tcp.first 2, adaptive.start 6, adaptive.end 12) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf56.ok b/src/regress/sbin/pfctl/pf56.ok new file mode 100644 index 000000000..f7ce36fec --- /dev/null +++ b/src/regress/sbin/pfctl/pf56.ok @@ -0,0 +1,2 @@ +pass in proto tcp from any to any port = www flags S/SA keep state (tcp.established 60) +pass in proto tcp from any to any port = www flags S/SA keep state (max 10, no-sync, tcp.first 2, adaptive.start 6, adaptive.end 12) diff --git a/src/regress/sbin/pfctl/pf56.optimized b/src/regress/sbin/pfctl/pf56.optimized new file mode 100644 index 000000000..c51fb09bb --- /dev/null +++ b/src/regress/sbin/pfctl/pf56.optimized @@ -0,0 +1,8 @@ +@0 pass in proto tcp from any to any port = www flags S/SA keep state (tcp.established 60) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in proto tcp from any to any port = www flags S/SA keep state (max 10, no-sync, tcp.first 2, adaptive.start 6, adaptive.end 12) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf57.in b/src/regress/sbin/pfctl/pf57.in new file mode 100644 index 000000000..0eca99d16 --- /dev/null +++ b/src/regress/sbin/pfctl/pf57.in @@ -0,0 +1,4 @@ +a="10.0.0.1" +b="x" +b="y" +pass in from $a diff --git a/src/regress/sbin/pfctl/pf57.ok b/src/regress/sbin/pfctl/pf57.ok new file mode 100644 index 000000000..23299e285 --- /dev/null +++ b/src/regress/sbin/pfctl/pf57.ok @@ -0,0 +1,4 @@ +a = "10.0.0.1" +b = "x" +b = "y" +pass in inet from 10.0.0.1 to any flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf58.in b/src/regress/sbin/pfctl/pf58.in new file mode 100644 index 000000000..502c205ca --- /dev/null +++ b/src/regress/sbin/pfctl/pf58.in @@ -0,0 +1,8 @@ +# queue on two interfaces + +altq on tun1000000 bandwidth 100Kb cbq queue { std ssh } +altq on tun1000001 bandwidth 10Mb cbq queue { blah ssh } +queue std bandwidth 20% cbq(borrow, default) +queue ssh bandwidth 30% cbq(borrow) { ssh2 } +queue ssh2 bandwidth 80% +queue blah bandwidth 60% cbq(default) diff --git a/src/regress/sbin/pfctl/pf58.ok b/src/regress/sbin/pfctl/pf58.ok new file mode 100644 index 000000000..43f25f3de --- /dev/null +++ b/src/regress/sbin/pfctl/pf58.ok @@ -0,0 +1,6 @@ +altq on tun1000000 cbq bandwidth 100Kb tbrsize 1500 queue { std ssh } +altq on tun1000001 cbq bandwidth 10Mb tbrsize 6000 queue { blah ssh } +queue std bandwidth 20% cbq( borrow default ) +queue ssh bandwidth 30% cbq( borrow ) { ssh2 } +queue ssh2 bandwidth 80% +queue blah bandwidth 60% cbq( default ) diff --git a/src/regress/sbin/pfctl/pf59.in b/src/regress/sbin/pfctl/pf59.in new file mode 100644 index 000000000..e6d16317f --- /dev/null +++ b/src/regress/sbin/pfctl/pf59.in @@ -0,0 +1,4 @@ +#tests an edge case in LOOP_THROUGH behaviour, the one loop despite the +#list is empty +altq on { lo0 tun1000000 } priq bandwidth 10Mb tbrsize 1824 queue q_def +queue q_def priq(default) diff --git a/src/regress/sbin/pfctl/pf59.ok b/src/regress/sbin/pfctl/pf59.ok new file mode 100644 index 000000000..c7d9cd830 --- /dev/null +++ b/src/regress/sbin/pfctl/pf59.ok @@ -0,0 +1,3 @@ +altq on lo0 priq bandwidth 10Mb tbrsize 1824 queue { q_def } +altq on tun1000000 priq bandwidth 10Mb tbrsize 1824 queue { q_def } +queue q_def priq( default ) diff --git a/src/regress/sbin/pfctl/pf6.in b/src/regress/sbin/pfctl/pf6.in new file mode 100644 index 000000000..180d36d85 --- /dev/null +++ b/src/regress/sbin/pfctl/pf6.in @@ -0,0 +1,3 @@ +a=b +c=x +a_b_c=d diff --git a/src/regress/sbin/pfctl/pf6.ok b/src/regress/sbin/pfctl/pf6.ok new file mode 100644 index 000000000..85d1e30aa --- /dev/null +++ b/src/regress/sbin/pfctl/pf6.ok @@ -0,0 +1,3 @@ +a = "b" +c = "x" +a_b_c = "d" diff --git a/src/regress/sbin/pfctl/pf60.in b/src/regress/sbin/pfctl/pf60.in new file mode 100644 index 000000000..2824cfd30 --- /dev/null +++ b/src/regress/sbin/pfctl/pf60.in @@ -0,0 +1,11 @@ +# netmask handling w/ multicast + +pass from 224.4.5.4/32 +pass from 224.4.5.4/16 +pass from 224.4.5.4/26 +pass from 224.4.5.65/26 +pass from 224.4.5.134/26 +pass from 224.4.5.199/26 +pass from 224.4.5.4 + + diff --git a/src/regress/sbin/pfctl/pf60.loaded b/src/regress/sbin/pfctl/pf60.loaded new file mode 100644 index 000000000..643bc7700 --- /dev/null +++ b/src/regress/sbin/pfctl/pf60.loaded @@ -0,0 +1,28 @@ +@0 pass inet from 224.4.5.4 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass inet from 224.4.0.0/16 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass inet from 224.4.5.0/26 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass inet from 224.4.5.64/26 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass inet from 224.4.5.128/26 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass inet from 224.4.5.192/26 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass inet from 224.4.5.4 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf60.ok b/src/regress/sbin/pfctl/pf60.ok new file mode 100644 index 000000000..f0cd27039 --- /dev/null +++ b/src/regress/sbin/pfctl/pf60.ok @@ -0,0 +1,7 @@ +pass inet from 224.4.5.4 to any flags S/SA keep state +pass inet from 224.4.0.0/16 to any flags S/SA keep state +pass inet from 224.4.5.0/26 to any flags S/SA keep state +pass inet from 224.4.5.64/26 to any flags S/SA keep state +pass inet from 224.4.5.128/26 to any flags S/SA keep state +pass inet from 224.4.5.192/26 to any flags S/SA keep state +pass inet from 224.4.5.4 to any flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf60.optimized b/src/regress/sbin/pfctl/pf60.optimized new file mode 100644 index 000000000..a36fa2bca --- /dev/null +++ b/src/regress/sbin/pfctl/pf60.optimized @@ -0,0 +1,4 @@ +@0 pass inet from 224.4.0.0/16 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf61.in b/src/regress/sbin/pfctl/pf61.in new file mode 100644 index 000000000..7343a39ee --- /dev/null +++ b/src/regress/sbin/pfctl/pf61.in @@ -0,0 +1,4 @@ +# dynaddr with netmask + +pass inet to (lo0)/24 + diff --git a/src/regress/sbin/pfctl/pf61.loaded b/src/regress/sbin/pfctl/pf61.loaded new file mode 100644 index 000000000..800ad3931 --- /dev/null +++ b/src/regress/sbin/pfctl/pf61.loaded @@ -0,0 +1,4 @@ +@0 pass inet from any to (lo0:1)/24 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf61.ok b/src/regress/sbin/pfctl/pf61.ok new file mode 100644 index 000000000..f28451aa4 --- /dev/null +++ b/src/regress/sbin/pfctl/pf61.ok @@ -0,0 +1 @@ +pass inet from any to (lo0)/24 flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf61.optimized b/src/regress/sbin/pfctl/pf61.optimized new file mode 100644 index 000000000..800ad3931 --- /dev/null +++ b/src/regress/sbin/pfctl/pf61.optimized @@ -0,0 +1,4 @@ +@0 pass inet from any to (lo0:1)/24 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf62.in b/src/regress/sbin/pfctl/pf62.in new file mode 100644 index 000000000..64447b375 --- /dev/null +++ b/src/regress/sbin/pfctl/pf62.in @@ -0,0 +1,12 @@ +# more complicated case to provoke queue id assignment errors: +# -two same named queues must have same qid on all interfaces +# -two differently named queues must not share a qid, even on different ifs + +altq on lo0 tbrsize 1824 bandwidth 10Mb hfsc queue { eins zwei drei } +queue eins bandwidth 10% hfsc(default) +queue zwei bandwidth 60% { sub2 sub3 } +queue sub2 bandwidth 20% +queue sub3 bandwidth 20% +queue drei bandwidth 10% + + diff --git a/src/regress/sbin/pfctl/pf62.ok b/src/regress/sbin/pfctl/pf62.ok new file mode 100644 index 000000000..c9c675eaa --- /dev/null +++ b/src/regress/sbin/pfctl/pf62.ok @@ -0,0 +1,6 @@ +altq on lo0 hfsc bandwidth 10Mb tbrsize 1824 queue { eins zwei drei } +queue eins bandwidth 10% hfsc( default ) +queue zwei bandwidth 60% { sub2 sub3 } +queue sub2 bandwidth 20% +queue sub3 bandwidth 20% +queue drei bandwidth 10% diff --git a/src/regress/sbin/pfctl/pf63.in b/src/regress/sbin/pfctl/pf63.in new file mode 100644 index 000000000..e1aa57da6 --- /dev/null +++ b/src/regress/sbin/pfctl/pf63.in @@ -0,0 +1,9 @@ +# service curve parse/print functions feedback test + +altq on lo0 tbrsize 1824 bandwidth 10Mb hfsc queue { eins zwei drei } +queue eins bandwidth 10% hfsc(default linkshare(20% 20 5%) realtime 500Kb) +queue zwei bandwidth 40% hfsc(linkshare(35% 10 25%) upperlimit 5Mb) +queue drei bandwidth 50% hfsc(linkshare(45% 20 4Mb) \ + upperlimit(65% 10 45%)) + + diff --git a/src/regress/sbin/pfctl/pf63.ok b/src/regress/sbin/pfctl/pf63.ok new file mode 100644 index 000000000..44b4d93fa --- /dev/null +++ b/src/regress/sbin/pfctl/pf63.ok @@ -0,0 +1,4 @@ +altq on lo0 hfsc bandwidth 10Mb tbrsize 1824 queue { eins zwei drei } +queue eins bandwidth 10% hfsc( default realtime 500Kb linkshare(20% 20 5%) ) +queue zwei bandwidth 40% hfsc( linkshare(35% 10 25%) upperlimit 5Mb ) +queue drei bandwidth 50% hfsc( linkshare(45% 20 4Mb) upperlimit(65% 10 45%) ) diff --git a/src/regress/sbin/pfctl/pf64.in b/src/regress/sbin/pfctl/pf64.in new file mode 100644 index 000000000..35e709be8 --- /dev/null +++ b/src/regress/sbin/pfctl/pf64.in @@ -0,0 +1,11 @@ +# service curve parse/print functions feedback test +# try to provoke them + +altq on lo0 tbrsize 1824 bandwidth 10Mb hfsc queue { eins zwei drei } +altq on tun1000000 tbrsize 1824 bandwidth 100Mb hfsc queue { eins zwei drei } +queue eins bandwidth 10% hfsc(default linkshare(20% 20 5%) realtime 500Kb) +queue zwei bandwidth 40% hfsc(linkshare(35% 10 25%) upperlimit 5Mb) +queue drei bandwidth 50% hfsc(linkshare(45% 20 4Mb) \ + upperlimit(65% 10 45%)) + + diff --git a/src/regress/sbin/pfctl/pf64.ok b/src/regress/sbin/pfctl/pf64.ok new file mode 100644 index 000000000..4e0005fd3 --- /dev/null +++ b/src/regress/sbin/pfctl/pf64.ok @@ -0,0 +1,5 @@ +altq on lo0 hfsc bandwidth 10Mb tbrsize 1824 queue { eins zwei drei } +altq on tun1000000 hfsc bandwidth 100Mb tbrsize 1824 queue { eins zwei drei } +queue eins bandwidth 10% hfsc( default realtime 500Kb linkshare(20% 20 5%) ) +queue zwei bandwidth 40% hfsc( linkshare(35% 10 25%) upperlimit 5Mb ) +queue drei bandwidth 50% hfsc( linkshare(45% 20 4Mb) upperlimit(65% 10 45%) ) diff --git a/src/regress/sbin/pfctl/pf65.in b/src/regress/sbin/pfctl/pf65.in new file mode 100644 index 000000000..617ba5f51 --- /dev/null +++ b/src/regress/sbin/pfctl/pf65.in @@ -0,0 +1,2 @@ +antispoof for lo0 label "antispoof-lo0" +antispoof log quick for lo0 inet label "antispoof-lo0-2" diff --git a/src/regress/sbin/pfctl/pf65.loaded b/src/regress/sbin/pfctl/pf65.loaded new file mode 100644 index 000000000..a024ff7c6 --- /dev/null +++ b/src/regress/sbin/pfctl/pf65.loaded @@ -0,0 +1,12 @@ +@0 block drop in on ! lo0 inet from 127.0.0.0/8 to any label "antispoof-lo0" + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in on ! lo0 inet6 from ::1 to any label "antispoof-lo0" + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in log quick on ! lo0 inet from 127.0.0.0/8 to any label "antispoof-lo0-2" + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf65.ok b/src/regress/sbin/pfctl/pf65.ok new file mode 100644 index 000000000..69747452b --- /dev/null +++ b/src/regress/sbin/pfctl/pf65.ok @@ -0,0 +1,3 @@ +block drop in on ! lo0 inet from 127.0.0.0/8 to any label "antispoof-lo0" +block drop in on ! lo0 inet6 from ::1 to any label "antispoof-lo0" +block drop in log quick on ! lo0 inet from 127.0.0.0/8 to any label "antispoof-lo0-2" diff --git a/src/regress/sbin/pfctl/pf65.optimized b/src/regress/sbin/pfctl/pf65.optimized new file mode 100644 index 000000000..a024ff7c6 --- /dev/null +++ b/src/regress/sbin/pfctl/pf65.optimized @@ -0,0 +1,12 @@ +@0 block drop in on ! lo0 inet from 127.0.0.0/8 to any label "antispoof-lo0" + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in on ! lo0 inet6 from ::1 to any label "antispoof-lo0" + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop in log quick on ! lo0 inet from 127.0.0.0/8 to any label "antispoof-lo0-2" + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf66.in b/src/regress/sbin/pfctl/pf66.in new file mode 100644 index 000000000..5b9323aa2 --- /dev/null +++ b/src/regress/sbin/pfctl/pf66.in @@ -0,0 +1,10 @@ +# test specified nat translation ports + +match out on lo0 from 192.168.1.1 to any nat-to 10.0.0.1 port 500 +match out on lo0 proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 port 1000:5000 +match out on lo0 proto udp from 192.168.1.3 to any nat-to 10.0.0.3 port 5000:1000 +match out on lo0 proto udp from 192.168.1.4 to any nat-to 10.0.0.4 port 50000:50000 +match out on lo0 proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 port www:5000 +match out on lo0 proto udp from 192.168.1.3 to any nat-to 10.0.0.3 port 5000:www + + diff --git a/src/regress/sbin/pfctl/pf66.loaded b/src/regress/sbin/pfctl/pf66.loaded new file mode 100644 index 000000000..6bd8c3c31 --- /dev/null +++ b/src/regress/sbin/pfctl/pf66.loaded @@ -0,0 +1,24 @@ +@0 match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 port 500 + [ Skip steps: i=end d=end f=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 port 1000:5000 + [ Skip steps: i=end d=end f=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 port 5000:1000 + [ Skip steps: i=end d=end f=end p=4 sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match out on lo0 inet proto udp from 192.168.1.4 to any nat-to 10.0.0.4 port 50000 + [ Skip steps: i=end d=end f=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 port 80:5000 + [ Skip steps: i=end d=end f=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 port 5000:80 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf66.ok b/src/regress/sbin/pfctl/pf66.ok new file mode 100644 index 000000000..dc5a4600c --- /dev/null +++ b/src/regress/sbin/pfctl/pf66.ok @@ -0,0 +1,6 @@ +match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 port 500 +match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 port 1000:5000 +match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 port 5000:1000 +match out on lo0 inet proto udp from 192.168.1.4 to any nat-to 10.0.0.4 port 50000 +match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 port 80:5000 +match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 port 5000:80 diff --git a/src/regress/sbin/pfctl/pf66.optimized b/src/regress/sbin/pfctl/pf66.optimized new file mode 100644 index 000000000..6bd8c3c31 --- /dev/null +++ b/src/regress/sbin/pfctl/pf66.optimized @@ -0,0 +1,24 @@ +@0 match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 port 500 + [ Skip steps: i=end d=end f=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 port 1000:5000 + [ Skip steps: i=end d=end f=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 port 5000:1000 + [ Skip steps: i=end d=end f=end p=4 sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match out on lo0 inet proto udp from 192.168.1.4 to any nat-to 10.0.0.4 port 50000 + [ Skip steps: i=end d=end f=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 port 80:5000 + [ Skip steps: i=end d=end f=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 port 5000:80 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf67.in b/src/regress/sbin/pfctl/pf67.in new file mode 100644 index 000000000..4594420af --- /dev/null +++ b/src/regress/sbin/pfctl/pf67.in @@ -0,0 +1,3 @@ +pass in quick on tun1000000 keep state tag regress +pass out quick on lo0 keep state tagged regress + diff --git a/src/regress/sbin/pfctl/pf67.loaded b/src/regress/sbin/pfctl/pf67.loaded new file mode 100644 index 000000000..d8ef5b25e --- /dev/null +++ b/src/regress/sbin/pfctl/pf67.loaded @@ -0,0 +1,8 @@ +@0 pass in quick on tun1000000 all flags S/SA keep state tag regress + [ Skip steps: f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass out quick on lo0 all flags S/SA keep state tagged regress + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf67.ok b/src/regress/sbin/pfctl/pf67.ok new file mode 100644 index 000000000..4b09611f9 --- /dev/null +++ b/src/regress/sbin/pfctl/pf67.ok @@ -0,0 +1,2 @@ +pass in quick on tun1000000 all flags S/SA keep state tag regress +pass out quick on lo0 all flags S/SA keep state tagged regress diff --git a/src/regress/sbin/pfctl/pf67.optimized b/src/regress/sbin/pfctl/pf67.optimized new file mode 100644 index 000000000..d8ef5b25e --- /dev/null +++ b/src/regress/sbin/pfctl/pf67.optimized @@ -0,0 +1,8 @@ +@0 pass in quick on tun1000000 all flags S/SA keep state tag regress + [ Skip steps: f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass out quick on lo0 all flags S/SA keep state tagged regress + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf68.in b/src/regress/sbin/pfctl/pf68.in new file mode 100644 index 000000000..9a8d416dd --- /dev/null +++ b/src/regress/sbin/pfctl/pf68.in @@ -0,0 +1,43 @@ +match on lo0 inet proto tcp from 192.168.1.1 port 1024 to any port 80 +match proto tcp +match proto tcp all +match proto tcp from any to any +match in proto tcp +match in proto tcp all +match in proto tcp all scrub(reassemble tcp) +match in proto tcp from { ! } to any +match in inet proto tcp from { 10.0.0.1, 10.0.0.2 } to { 10.0.0.3, 10.0.0.4 } +match in log on lo0 proto tcp from any to any scrub(min-ttl 25) +match in log on lo0 inet6 proto tcp from { (lo1000000), (lo0) } to 2000::1 +match in log on {lo0 lo1000000} proto tcp from any to any +match in on lo0 proto tcp all +match in on lo0 proto tcp from any to any scrub(max-mss 224 min-ttl 15 no-df) +match in on lo0 proto tcp from any to any scrub(max-mss 224) +match in on lo0 proto tcp from any to any scrub(min-ttl 15 no-df max-mss 224) +match in on lo0 proto tcp from any to any scrub(no-df) +match in on lo0 proto tcp from any to any scrub(no-df max-mss 224 min-ttl 15) +match in on lo0 inet proto tcp from (lo0) to any +match on lo0 proto tcp from any to any scrub(max-mss 224) +match out proto tcp +match out proto tcp from any to { !, } +match out log on lo1000000 proto tcp from any to 10.0.0.1 scrub(no-df max-mss 224) +match proto tcp scrub(random-id) + +match proto tcp from any to any port 80 +match in proto tcp from { ! } to any port 80 +match in inet proto tcp from { 10.0.0.1, 10.0.0.2 } to { 10.0.0.3, 10.0.0.4 } port 80 +match in log on lo0 proto tcp from any to any port 80 scrub(min-ttl 25) +match in log on lo0 inet6 proto tcp from { (lo1000000), (lo0) } port 80 to 2000::1 +match in log on {lo0 lo1000000} proto tcp from any port 80 to any +match in on lo0 proto tcp from any port {80, 81} to any scrub(max-mss 224 min-ttl 15 no-df) +match in on lo0 proto tcp from any to any port 80 scrub (max-mss 224) +match in on lo0 proto tcp from any port 80 to any scrub (max-mss 224 min-ttl 15 no-df) +match in on lo0 proto tcp from any port 80 to any scrub(min-ttl 15 no-df max-mss 224) +match in on lo0 proto tcp from any to any port {80, 81, 82} scrub (min-ttl 15 no-df max-mss 224) +match in on lo0 proto tcp from any port 80 to any port 80 scrub(no-df) +match in on lo0 proto tcp from any port {80, 81} to any port {80, 81} scrub(no-df max-mss 224 min-ttl 15) +match in on lo0 proto tcp from any to any port 83 scrub(no-df max-mss 224 min-ttl 15) +match in on lo0 inet proto tcp from (lo0) port 80 to any +match on lo0 proto tcp from any to any port 80 scrub (max-mss 224) +match out proto tcp from any to { !, } port 80 +match out log on lo1000000 proto tcp from any to 10.0.0.1 port 80 scrub (no-df max-mss 224) diff --git a/src/regress/sbin/pfctl/pf68.loaded b/src/regress/sbin/pfctl/pf68.loaded new file mode 100644 index 000000000..addbae190 --- /dev/null +++ b/src/regress/sbin/pfctl/pf68.loaded @@ -0,0 +1,248 @@ +@0 match on lo0 inet proto tcp from 192.168.1.1 port = 1024 to any port = www + [ Skip steps: d=4 p=end da=9 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match proto tcp all + [ Skip steps: i=13 d=4 f=9 p=end sa=7 sp=39 da=9 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match proto tcp all + [ Skip steps: i=13 d=4 f=9 p=end sa=7 sp=39 da=9 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match proto tcp all + [ Skip steps: i=13 f=9 p=end sa=7 sp=39 da=9 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match in proto tcp all + [ Skip steps: i=13 d=25 f=9 p=end sa=7 sp=39 da=9 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match in proto tcp all + [ Skip steps: i=13 d=25 f=9 p=end sa=7 sp=39 da=9 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match in proto tcp all scrub (reassemble tcp) + [ Skip steps: i=13 d=25 f=9 p=end sp=39 da=9 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match in proto tcp from to any + [ Skip steps: i=13 d=25 f=9 p=end sp=39 da=9 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match in proto tcp from ! to any + [ Skip steps: i=13 d=25 p=end sp=39 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 match in inet proto tcp from 10.0.0.1 to 10.0.0.3 + [ Skip steps: i=13 d=25 f=13 p=end sa=11 sp=39 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 match in inet proto tcp from 10.0.0.1 to 10.0.0.4 + [ Skip steps: i=13 d=25 f=13 p=end sp=39 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 match in inet proto tcp from 10.0.0.2 to 10.0.0.3 + [ Skip steps: i=13 d=25 f=13 p=end sa=13 sp=39 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 match in inet proto tcp from 10.0.0.2 to 10.0.0.4 + [ Skip steps: d=25 p=end sp=39 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 match in log on lo0 proto tcp all scrub (min-ttl 25) + [ Skip steps: i=17 d=25 p=end sp=39 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 match in log on lo0 inet6 proto tcp from (lo1000000:*) to 2000::1 + [ Skip steps: i=17 d=25 f=16 p=end sp=39 da=16 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 match in log on lo0 inet6 proto tcp from (lo0:2) to 2000::1 + [ Skip steps: i=17 d=25 p=end sp=39 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 match in log on lo0 proto tcp all + [ Skip steps: d=25 f=24 p=end sa=24 sp=39 da=27 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 match in log on lo1000000 proto tcp all + [ Skip steps: d=25 f=24 p=end sa=24 sp=39 da=27 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 match in on lo0 proto tcp all + [ Skip steps: i=26 d=25 f=24 p=end sa=24 sp=39 da=27 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 match in on lo0 proto tcp all scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=26 d=25 f=24 p=end sa=24 sp=39 da=27 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 match in on lo0 proto tcp all scrub (max-mss 224) + [ Skip steps: i=26 d=25 f=24 p=end sa=24 sp=39 da=27 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 match in on lo0 proto tcp all scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=26 d=25 f=24 p=end sa=24 sp=39 da=27 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@22 match in on lo0 proto tcp all scrub (no-df) + [ Skip steps: i=26 d=25 f=24 p=end sa=24 sp=39 da=27 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@23 match in on lo0 proto tcp all scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=26 d=25 p=end sp=39 da=27 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@24 match in on lo0 inet proto tcp from (lo0:1) to any + [ Skip steps: i=26 p=end sp=39 da=27 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@25 match on lo0 proto tcp all scrub (max-mss 224) + [ Skip steps: f=29 p=end sa=32 sp=39 da=27 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@26 match out proto tcp all + [ Skip steps: i=29 d=30 f=29 p=end sa=32 sp=39 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@27 match out proto tcp from any to ! + [ Skip steps: i=29 d=30 f=29 p=end sa=32 sp=39 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@28 match out proto tcp from any to + [ Skip steps: d=30 p=end sa=32 sp=39 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@29 match out log on lo1000000 inet proto tcp from any to 10.0.0.1 scrub (no-df max-mss 224) + [ Skip steps: p=end sa=32 sp=39 dp=31 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@30 match proto tcp all scrub (random-id) + [ Skip steps: i=38 d=32 f=34 p=end sa=32 sp=39 da=34 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@31 match proto tcp from any to any port = www + [ Skip steps: i=38 f=34 p=end sp=39 da=34 dp=39 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@32 match in proto tcp from to any port = www + [ Skip steps: i=38 d=58 f=34 p=end sp=39 da=34 dp=39 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@33 match in proto tcp from ! to any port = www + [ Skip steps: i=38 d=58 p=end sp=39 dp=39 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@34 match in inet proto tcp from 10.0.0.1 to 10.0.0.3 port = www + [ Skip steps: i=38 d=58 f=38 p=end sa=36 sp=39 dp=39 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@35 match in inet proto tcp from 10.0.0.1 to 10.0.0.4 port = www + [ Skip steps: i=38 d=58 f=38 p=end sp=39 dp=39 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@36 match in inet proto tcp from 10.0.0.2 to 10.0.0.3 port = www + [ Skip steps: i=38 d=58 f=38 p=end sa=38 sp=39 dp=39 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@37 match in inet proto tcp from 10.0.0.2 to 10.0.0.4 port = www + [ Skip steps: d=58 p=end sp=39 dp=39 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@38 match in log on lo0 proto tcp from any to any port = www scrub (min-ttl 25) + [ Skip steps: i=42 d=58 p=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@39 match in log on lo0 inet6 proto tcp from (lo1000000:*) port = www to 2000::1 + [ Skip steps: i=42 d=58 f=41 p=end sp=44 da=41 dp=45 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@40 match in log on lo0 inet6 proto tcp from (lo0:2) port = www to 2000::1 + [ Skip steps: i=42 d=58 p=end sp=44 dp=45 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@41 match in log on lo0 proto tcp from any port = www to any + [ Skip steps: d=58 f=57 p=end sa=57 sp=44 da=59 dp=45 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@42 match in log on lo1000000 proto tcp from any port = www to any + [ Skip steps: d=58 f=57 p=end sa=57 sp=44 da=59 dp=45 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@43 match in on lo0 proto tcp from any port = www to any scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 da=59 dp=45 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@44 match in on lo0 proto tcp from any port = 81 to any scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@45 match in on lo0 proto tcp from any to any port = www scrub (max-mss 224) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@46 match in on lo0 proto tcp from any port = www to any scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 sp=48 da=59 dp=48 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@47 match in on lo0 proto tcp from any port = www to any scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@48 match in on lo0 proto tcp from any to any port = www scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 sp=51 da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@49 match in on lo0 proto tcp from any to any port = 81 scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 sp=51 da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@50 match in on lo0 proto tcp from any to any port = 82 scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@51 match in on lo0 proto tcp from any port = www to any port = www scrub (no-df) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 sp=54 da=59 dp=53 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@52 match in on lo0 proto tcp from any port = www to any port = www scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 sp=54 da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@53 match in on lo0 proto tcp from any port = www to any port = 81 scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@54 match in on lo0 proto tcp from any port = 81 to any port = www scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 sp=56 da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@55 match in on lo0 proto tcp from any port = 81 to any port = 81 scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=59 d=58 f=57 p=end sa=57 da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@56 match in on lo0 proto tcp from any to any port = 83 scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=59 d=58 p=end da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@57 match in on lo0 inet proto tcp from (lo0:1) port = www to any + [ Skip steps: i=59 p=end da=59 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@58 match on lo0 proto tcp from any to any port = www scrub (max-mss 224) + [ Skip steps: f=61 p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@59 match out proto tcp from any to ! port = www + [ Skip steps: i=61 d=end f=61 p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@60 match out proto tcp from any to port = www + [ Skip steps: d=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@61 match out log on lo1000000 inet proto tcp from any to 10.0.0.1 port = www scrub (no-df max-mss 224) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf68.ok b/src/regress/sbin/pfctl/pf68.ok new file mode 100644 index 000000000..273073f85 --- /dev/null +++ b/src/regress/sbin/pfctl/pf68.ok @@ -0,0 +1,62 @@ +match on lo0 inet proto tcp from 192.168.1.1 port = 1024 to any port = www +match proto tcp all +match proto tcp all +match proto tcp all +match in proto tcp all +match in proto tcp all +match in proto tcp all scrub (reassemble tcp) +match in proto tcp from to any +match in proto tcp from ! to any +match in inet proto tcp from 10.0.0.1 to 10.0.0.3 +match in inet proto tcp from 10.0.0.1 to 10.0.0.4 +match in inet proto tcp from 10.0.0.2 to 10.0.0.3 +match in inet proto tcp from 10.0.0.2 to 10.0.0.4 +match in log on lo0 proto tcp all scrub (min-ttl 25) +match in log on lo0 inet6 proto tcp from (lo1000000) to 2000::1 +match in log on lo0 inet6 proto tcp from (lo0) to 2000::1 +match in log on lo0 proto tcp all +match in log on lo1000000 proto tcp all +match in on lo0 proto tcp all +match in on lo0 proto tcp all scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp all scrub (max-mss 224) +match in on lo0 proto tcp all scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp all scrub (no-df) +match in on lo0 proto tcp all scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 inet proto tcp from (lo0) to any +match on lo0 proto tcp all scrub (max-mss 224) +match out proto tcp all +match out proto tcp from any to ! +match out proto tcp from any to +match out log on lo1000000 inet proto tcp from any to 10.0.0.1 scrub (no-df max-mss 224) +match proto tcp all scrub (random-id) +match proto tcp from any to any port = www +match in proto tcp from to any port = www +match in proto tcp from ! to any port = www +match in inet proto tcp from 10.0.0.1 to 10.0.0.3 port = www +match in inet proto tcp from 10.0.0.1 to 10.0.0.4 port = www +match in inet proto tcp from 10.0.0.2 to 10.0.0.3 port = www +match in inet proto tcp from 10.0.0.2 to 10.0.0.4 port = www +match in log on lo0 proto tcp from any to any port = www scrub (min-ttl 25) +match in log on lo0 inet6 proto tcp from (lo1000000) port = www to 2000::1 +match in log on lo0 inet6 proto tcp from (lo0) port = www to 2000::1 +match in log on lo0 proto tcp from any port = www to any +match in log on lo1000000 proto tcp from any port = www to any +match in on lo0 proto tcp from any port = www to any scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp from any port = 81 to any scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp from any to any port = www scrub (max-mss 224) +match in on lo0 proto tcp from any port = www to any scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp from any port = www to any scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp from any to any port = www scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp from any to any port = 81 scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp from any to any port = 82 scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp from any port = www to any port = www scrub (no-df) +match in on lo0 proto tcp from any port = www to any port = www scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp from any port = www to any port = 81 scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp from any port = 81 to any port = www scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp from any port = 81 to any port = 81 scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 proto tcp from any to any port = 83 scrub (no-df min-ttl 15 max-mss 224) +match in on lo0 inet proto tcp from (lo0) port = www to any +match on lo0 proto tcp from any to any port = www scrub (max-mss 224) +match out proto tcp from any to ! port = www +match out proto tcp from any to port = www +match out log on lo1000000 inet proto tcp from any to 10.0.0.1 port = www scrub (no-df max-mss 224) diff --git a/src/regress/sbin/pfctl/pf68.optimized b/src/regress/sbin/pfctl/pf68.optimized new file mode 100644 index 000000000..b64381904 --- /dev/null +++ b/src/regress/sbin/pfctl/pf68.optimized @@ -0,0 +1,148 @@ +@0 match proto tcp all + [ Skip steps: i=8 f=2 p=end sa=2 sp=22 da=2 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in proto tcp all scrub (reassemble tcp) + [ Skip steps: i=8 d=14 p=end sp=22 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match in inet proto tcp from 10.0.0.1 to 10.0.0.3 + [ Skip steps: i=8 d=14 f=6 p=end sa=4 sp=22 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 match in inet proto tcp from 10.0.0.1 to 10.0.0.4 + [ Skip steps: i=8 d=14 f=6 p=end sp=22 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 match in inet proto tcp from 10.0.0.2 to 10.0.0.3 + [ Skip steps: i=8 d=14 f=6 p=end sa=6 sp=22 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 match in inet proto tcp from 10.0.0.2 to 10.0.0.4 + [ Skip steps: i=8 d=14 p=end sp=22 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 match in proto tcp from to any + [ Skip steps: i=8 d=14 f=17 p=end sp=22 da=15 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 match in proto tcp from ! to any + [ Skip steps: d=14 f=17 p=end sp=22 da=15 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 match in log on lo0 proto tcp all scrub (min-ttl 25) + [ Skip steps: d=14 f=17 p=end sa=20 sp=22 da=15 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 match in log on lo1000000 proto tcp all + [ Skip steps: d=14 f=17 p=end sa=20 sp=22 da=15 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 match in on lo0 proto tcp all + [ Skip steps: i=14 d=14 f=17 p=end sa=20 sp=22 da=15 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 match in on lo0 proto tcp all scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=14 d=14 f=17 p=end sa=20 sp=22 da=15 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 match in on lo0 proto tcp all scrub (max-mss 224) + [ Skip steps: i=14 d=14 f=17 p=end sa=20 sp=22 da=15 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 match in on lo0 proto tcp all scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: f=17 p=end sa=20 sp=22 da=15 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 match out proto tcp all + [ Skip steps: i=16 d=16 f=17 p=end sa=20 sp=22 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 match out proto tcp from any to ! + [ Skip steps: f=17 p=end sa=20 sp=22 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 match on lo0 proto tcp all scrub (max-mss 224) + [ Skip steps: p=end sa=20 sp=22 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 match out log on lo1000000 inet proto tcp from any to 10.0.0.1 scrub (no-df max-mss 224) + [ Skip steps: p=end sa=20 sp=22 dp=19 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 match proto tcp all scrub (random-id) + [ Skip steps: i=21 d=20 f=35 p=end sa=20 sp=22 da=32 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 match proto tcp from any to any port = www + [ Skip steps: i=21 f=35 p=end sp=22 da=32 dp=22 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 match in proto tcp from ! to any port = www + [ Skip steps: d=32 f=35 p=end sp=22 da=32 dp=22 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 match in log on lo0 proto tcp from any to any port = www scrub (min-ttl 25) + [ Skip steps: i=23 d=32 f=35 p=end sa=35 da=32 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@22 match in log on lo0 proto tcp from any port = www to any + [ Skip steps: d=32 f=35 p=end sa=35 sp=25 da=32 dp=26 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@23 match in log on lo1000000 proto tcp from any port = www to any + [ Skip steps: d=32 f=35 p=end sa=35 sp=25 da=32 dp=26 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@24 match in on lo0 proto tcp from any port = www to any scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=32 d=32 f=35 p=end sa=35 da=32 dp=26 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@25 match in on lo0 proto tcp from any port = 81 to any scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=32 d=32 f=35 p=end sa=35 da=32 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@26 match in on lo0 proto tcp from any to any port = www scrub (max-mss 224) + [ Skip steps: i=32 d=32 f=35 p=end sa=35 da=32 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@27 match in on lo0 proto tcp from any port = www to any scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=32 d=32 f=35 p=end sa=35 da=32 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@28 match in on lo0 proto tcp from any to any port = www scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=32 d=32 f=35 p=end sa=35 sp=35 da=32 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@29 match in on lo0 proto tcp from any to any port = 81 scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=32 d=32 f=35 p=end sa=35 sp=35 da=32 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@30 match in on lo0 proto tcp from any to any port = 82 scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: i=32 d=32 f=35 p=end sa=35 sp=35 da=32 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@31 match in on lo0 proto tcp from any to any port = 83 scrub (no-df min-ttl 15 max-mss 224) + [ Skip steps: f=35 p=end sa=35 sp=35 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@32 match out proto tcp from any to ! port = www + [ Skip steps: i=34 d=34 f=35 p=end sa=35 sp=35 dp=35 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@33 match out proto tcp from any to port = www + [ Skip steps: f=35 p=end sa=35 sp=35 dp=35 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@34 match on lo0 proto tcp from any to any port = www scrub (max-mss 224) + [ Skip steps: i=36 p=end da=36 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@35 match in on lo0 inet proto tcp from (lo0:1) port = www to any + [ Skip steps: f=end p=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@36 match out log on lo1000000 inet proto tcp from any to 10.0.0.1 port = www scrub (no-df max-mss 224) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf69.in b/src/regress/sbin/pfctl/pf69.in new file mode 100644 index 000000000..059bc3046 --- /dev/null +++ b/src/regress/sbin/pfctl/pf69.in @@ -0,0 +1,3 @@ +match out on lo0 inet all tag regress nat-to lo0 +pass out quick on lo0 keep state tagged regress + diff --git a/src/regress/sbin/pfctl/pf69.loaded b/src/regress/sbin/pfctl/pf69.loaded new file mode 100644 index 000000000..5917920d1 --- /dev/null +++ b/src/regress/sbin/pfctl/pf69.loaded @@ -0,0 +1,8 @@ +@0 match out on lo0 inet all tag regress nat-to 127.0.0.1 + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass out quick on lo0 all flags S/SA keep state tagged regress + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf69.ok b/src/regress/sbin/pfctl/pf69.ok new file mode 100644 index 000000000..2bf34c04b --- /dev/null +++ b/src/regress/sbin/pfctl/pf69.ok @@ -0,0 +1,2 @@ +match out on lo0 inet all tag regress nat-to 127.0.0.1 +pass out quick on lo0 all flags S/SA keep state tagged regress diff --git a/src/regress/sbin/pfctl/pf69.optimized b/src/regress/sbin/pfctl/pf69.optimized new file mode 100644 index 000000000..5917920d1 --- /dev/null +++ b/src/regress/sbin/pfctl/pf69.optimized @@ -0,0 +1,8 @@ +@0 match out on lo0 inet all tag regress nat-to 127.0.0.1 + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass out quick on lo0 all flags S/SA keep state tagged regress + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf7.in b/src/regress/sbin/pfctl/pf7.in new file mode 100644 index 000000000..02514df9c --- /dev/null +++ b/src/regress/sbin/pfctl/pf7.in @@ -0,0 +1,34 @@ +# test modulate state + +block out log on tun1000000 all +block in log on tun1000000 all + +block return-rst out log on tun1000000 proto tcp all +block return-rst in log on tun1000000 proto tcp all +block return-icmp out log on tun1000000 proto udp all +block return-icmp in log on tun1000000 proto udp all + +block out log quick on tun1000000 from ! 157.161.48.183 to any + +block in quick on tun1000000 from any to 255.255.255.255 + +block in log quick on tun1000000 from 10.0.0.0/8 to any +block in log quick on tun1000000 from 172.16.0.0/12 to any +block in log quick on tun1000000 from 192.168.0.0/16 to any +block in log quick on tun1000000 from 255.255.255.255/32 to any + +pass out on tun1000000 inet proto icmp all icmp-type 8 code 0 keep state +pass in on tun1000000 inet proto icmp all icmp-type 8 code 0 keep state + +pass out on tun1000000 proto udp all keep state + +pass in on tun1000000 proto udp from any to any port = domain keep state + +pass out on tun1000000 proto tcp all modulate state +pass in on tun1000000 proto { tcp udp icmp } all modulate state +pass in on tun1000000 proto { udp tcp icmp } all flags S/SA synproxy state + +pass in on tun1000000 proto tcp from any to any port = ssh modulate state +pass in on tun1000000 proto tcp from any to any port = smtp modulate state +pass in on tun1000000 proto tcp from any to any port = domain modulate state +pass in on tun1000000 proto tcp from any to any port = auth modulate state diff --git a/src/regress/sbin/pfctl/pf7.loaded b/src/regress/sbin/pfctl/pf7.loaded new file mode 100644 index 000000000..58e2422f4 --- /dev/null +++ b/src/regress/sbin/pfctl/pf7.loaded @@ -0,0 +1,108 @@ +@0 block drop out log on tun1000000 all + [ Skip steps: i=end f=6 p=2 sa=6 sp=end da=7 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in log on tun1000000 all + [ Skip steps: i=end f=6 sa=6 sp=end da=7 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block return-rst out log on tun1000000 proto tcp all + [ Skip steps: i=end f=6 p=4 sa=6 sp=end da=7 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block return-rst in log on tun1000000 proto tcp all + [ Skip steps: i=end f=6 sa=6 sp=end da=7 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block return-icmp(port-unr, port-unr) out log on tun1000000 proto udp all + [ Skip steps: i=end f=6 p=6 sa=6 sp=end da=7 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block return-icmp(port-unr, port-unr) in log on tun1000000 proto udp all + [ Skip steps: i=end sp=end da=7 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 block drop out log quick on tun1000000 inet from ! 157.161.48.183 to any + [ Skip steps: i=end f=14 p=12 sp=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block drop in quick on tun1000000 inet from any to 255.255.255.255 + [ Skip steps: i=end d=12 f=14 p=12 sp=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block drop in log quick on tun1000000 inet from 10.0.0.0/8 to any + [ Skip steps: i=end d=12 f=14 p=12 sp=end da=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 block drop in log quick on tun1000000 inet from 172.16.0.0/12 to any + [ Skip steps: i=end d=12 f=14 p=12 sp=end da=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block drop in log quick on tun1000000 inet from 192.168.0.0/16 to any + [ Skip steps: i=end d=12 f=14 p=12 sp=end da=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 block drop in log quick on tun1000000 inet from 255.255.255.255 to any + [ Skip steps: i=end f=14 sp=end da=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass out on tun1000000 inet proto icmp all icmp-type echoreq code 0 keep state + [ Skip steps: i=end f=14 p=14 sa=end sp=end da=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass in on tun1000000 inet proto icmp all icmp-type echoreq code 0 keep state + [ Skip steps: i=end sa=end sp=end da=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 pass out on tun1000000 proto udp all keep state + [ Skip steps: i=end f=end p=16 sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass in on tun1000000 proto udp from any to any port = domain keep state + [ Skip steps: i=end f=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass out on tun1000000 proto tcp all flags S/SA modulate state + [ Skip steps: i=end f=end p=18 sa=end sp=end da=end dp=23 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass in on tun1000000 proto tcp all flags S/SA modulate state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=23 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 pass in on tun1000000 proto udp all keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=23 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 pass in on tun1000000 proto icmp all keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=23 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 pass in on tun1000000 proto udp all keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=23 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 pass in on tun1000000 proto tcp all flags S/SA synproxy state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=23 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@22 pass in on tun1000000 proto icmp all keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@23 pass in on tun1000000 proto tcp from any to any port = ssh flags S/SA modulate state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@24 pass in on tun1000000 proto tcp from any to any port = smtp flags S/SA modulate state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@25 pass in on tun1000000 proto tcp from any to any port = domain flags S/SA modulate state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@26 pass in on tun1000000 proto tcp from any to any port = auth flags S/SA modulate state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf7.ok b/src/regress/sbin/pfctl/pf7.ok new file mode 100644 index 000000000..357f3180e --- /dev/null +++ b/src/regress/sbin/pfctl/pf7.ok @@ -0,0 +1,27 @@ +block drop out log on tun1000000 all +block drop in log on tun1000000 all +block return-rst out log on tun1000000 proto tcp all +block return-rst in log on tun1000000 proto tcp all +block return-icmp(port-unr, port-unr) out log on tun1000000 proto udp all +block return-icmp(port-unr, port-unr) in log on tun1000000 proto udp all +block drop out log quick on tun1000000 inet from ! 157.161.48.183 to any +block drop in quick on tun1000000 inet from any to 255.255.255.255 +block drop in log quick on tun1000000 inet from 10.0.0.0/8 to any +block drop in log quick on tun1000000 inet from 172.16.0.0/12 to any +block drop in log quick on tun1000000 inet from 192.168.0.0/16 to any +block drop in log quick on tun1000000 inet from 255.255.255.255 to any +pass out on tun1000000 inet proto icmp all icmp-type echoreq code 0 keep state +pass in on tun1000000 inet proto icmp all icmp-type echoreq code 0 keep state +pass out on tun1000000 proto udp all keep state +pass in on tun1000000 proto udp from any to any port = domain keep state +pass out on tun1000000 proto tcp all flags S/SA modulate state +pass in on tun1000000 proto tcp all flags S/SA modulate state +pass in on tun1000000 proto udp all keep state +pass in on tun1000000 proto icmp all keep state +pass in on tun1000000 proto udp all keep state +pass in on tun1000000 proto tcp all flags S/SA synproxy state +pass in on tun1000000 proto icmp all keep state +pass in on tun1000000 proto tcp from any to any port = ssh flags S/SA modulate state +pass in on tun1000000 proto tcp from any to any port = smtp flags S/SA modulate state +pass in on tun1000000 proto tcp from any to any port = domain flags S/SA modulate state +pass in on tun1000000 proto tcp from any to any port = auth flags S/SA modulate state diff --git a/src/regress/sbin/pfctl/pf7.optimized b/src/regress/sbin/pfctl/pf7.optimized new file mode 100644 index 000000000..791708243 --- /dev/null +++ b/src/regress/sbin/pfctl/pf7.optimized @@ -0,0 +1,104 @@ +@0 block drop out log on tun1000000 all + [ Skip steps: i=end f=6 p=2 sa=6 sp=end da=7 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in log on tun1000000 all + [ Skip steps: i=end f=6 sa=6 sp=end da=7 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block return-rst out log on tun1000000 proto tcp all + [ Skip steps: i=end f=6 p=4 sa=6 sp=end da=7 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block return-rst in log on tun1000000 proto tcp all + [ Skip steps: i=end f=6 sa=6 sp=end da=7 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block return-icmp(port-unr, port-unr) out log on tun1000000 proto udp all + [ Skip steps: i=end f=6 p=6 sa=6 sp=end da=7 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 block return-icmp(port-unr, port-unr) in log on tun1000000 proto udp all + [ Skip steps: i=end sp=end da=7 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 block drop out log quick on tun1000000 inet from ! 157.161.48.183 to any + [ Skip steps: i=end f=13 p=12 sp=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 block drop in quick on tun1000000 inet from any to 255.255.255.255 + [ Skip steps: i=end d=12 f=13 p=12 sp=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block drop in log quick on tun1000000 inet from 10.0.0.0/8 to any + [ Skip steps: i=end d=12 f=13 p=12 sp=end da=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 block drop in log quick on tun1000000 inet from 172.16.0.0/12 to any + [ Skip steps: i=end d=12 f=13 p=12 sp=end da=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block drop in log quick on tun1000000 inet from 192.168.0.0/16 to any + [ Skip steps: i=end d=12 f=13 p=12 sp=end da=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 block drop in log quick on tun1000000 inet from 255.255.255.255 to any + [ Skip steps: i=end f=13 sp=end da=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass out on tun1000000 inet proto icmp all icmp-type echoreq code 0 keep state + [ Skip steps: i=end d=14 sa=end sp=end da=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass out on tun1000000 proto udp all keep state + [ Skip steps: i=end sa=end sp=end da=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 pass in on tun1000000 inet proto icmp all icmp-type echoreq code 0 keep state + [ Skip steps: i=end d=16 sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass in on tun1000000 proto udp from any to any port = domain keep state + [ Skip steps: i=end f=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass out on tun1000000 proto tcp all flags S/SA modulate state + [ Skip steps: i=end f=end p=18 sa=end sp=end da=end dp=22 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass in on tun1000000 proto tcp all flags S/SA modulate state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=22 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 pass in on tun1000000 proto udp all keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=22 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 pass in on tun1000000 proto icmp all keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=22 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 pass in on tun1000000 proto tcp all flags S/SA synproxy state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end dp=22 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 pass in on tun1000000 proto icmp all keep state + [ Skip steps: i=end d=end f=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@22 pass in on tun1000000 proto tcp from any to any port = ssh flags S/SA modulate state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@23 pass in on tun1000000 proto tcp from any to any port = smtp flags S/SA modulate state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@24 pass in on tun1000000 proto tcp from any to any port = domain flags S/SA modulate state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@25 pass in on tun1000000 proto tcp from any to any port = auth flags S/SA modulate state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf70.in b/src/regress/sbin/pfctl/pf70.in new file mode 100644 index 000000000..6b4c310b5 --- /dev/null +++ b/src/regress/sbin/pfctl/pf70.in @@ -0,0 +1,3 @@ +match out on lo0 from 10.0.0.0/8 to any nat-to lo0 +block out on lo0 tagged regress + diff --git a/src/regress/sbin/pfctl/pf70.loaded b/src/regress/sbin/pfctl/pf70.loaded new file mode 100644 index 000000000..d7def5f07 --- /dev/null +++ b/src/regress/sbin/pfctl/pf70.loaded @@ -0,0 +1,8 @@ +@0 match out on lo0 inet from 10.0.0.0/8 to any nat-to 127.0.0.1 + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop out on lo0 all tagged regress + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf70.ok b/src/regress/sbin/pfctl/pf70.ok new file mode 100644 index 000000000..cf79485b4 --- /dev/null +++ b/src/regress/sbin/pfctl/pf70.ok @@ -0,0 +1,2 @@ +match out on lo0 inet from 10.0.0.0/8 to any nat-to 127.0.0.1 +block drop out on lo0 all tagged regress diff --git a/src/regress/sbin/pfctl/pf70.optimized b/src/regress/sbin/pfctl/pf70.optimized new file mode 100644 index 000000000..d7def5f07 --- /dev/null +++ b/src/regress/sbin/pfctl/pf70.optimized @@ -0,0 +1,8 @@ +@0 match out on lo0 inet from 10.0.0.0/8 to any nat-to 127.0.0.1 + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop out on lo0 all tagged regress + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf71.in b/src/regress/sbin/pfctl/pf71.in new file mode 100644 index 000000000..2f09764ec --- /dev/null +++ b/src/regress/sbin/pfctl/pf71.in @@ -0,0 +1,3 @@ +match in on lo0 proto tcp from 10.0.0.0/8 to port 80 rdr-to lo0 +block out on lo0 tagged regress + diff --git a/src/regress/sbin/pfctl/pf71.loaded b/src/regress/sbin/pfctl/pf71.loaded new file mode 100644 index 000000000..ff6a9788a --- /dev/null +++ b/src/regress/sbin/pfctl/pf71.loaded @@ -0,0 +1,8 @@ +@0 match in on lo0 inet proto tcp from 10.0.0.0/8 to any port = www rdr-to 127.0.0.1 + [ Skip steps: i=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop out on lo0 all tagged regress + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf71.ok b/src/regress/sbin/pfctl/pf71.ok new file mode 100644 index 000000000..f53304f74 --- /dev/null +++ b/src/regress/sbin/pfctl/pf71.ok @@ -0,0 +1,2 @@ +match in on lo0 inet proto tcp from 10.0.0.0/8 to any port = www rdr-to 127.0.0.1 +block drop out on lo0 all tagged regress diff --git a/src/regress/sbin/pfctl/pf71.optimized b/src/regress/sbin/pfctl/pf71.optimized new file mode 100644 index 000000000..ff6a9788a --- /dev/null +++ b/src/regress/sbin/pfctl/pf71.optimized @@ -0,0 +1,8 @@ +@0 match in on lo0 inet proto tcp from 10.0.0.0/8 to any port = www rdr-to 127.0.0.1 + [ Skip steps: i=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop out on lo0 all tagged regress + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf72.in b/src/regress/sbin/pfctl/pf72.in new file mode 100644 index 000000000..2011a11d5 --- /dev/null +++ b/src/regress/sbin/pfctl/pf72.in @@ -0,0 +1,4 @@ +# test binat tagging +match on lo0 from 192.168.1.1 to any tag regress binat-to 10.0.0.1 +block out on lo0 tagged regress + diff --git a/src/regress/sbin/pfctl/pf72.loaded b/src/regress/sbin/pfctl/pf72.loaded new file mode 100644 index 000000000..f8fac6f30 --- /dev/null +++ b/src/regress/sbin/pfctl/pf72.loaded @@ -0,0 +1,12 @@ +@0 match out on lo0 inet from 192.168.1.1 to any tag regress nat-to 10.0.0.1 static-port + [ Skip steps: i=end f=2 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 inet from any to 10.0.0.1 tag regress rdr-to 192.168.1.1 + [ Skip steps: i=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop out on lo0 all tagged regress + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf72.ok b/src/regress/sbin/pfctl/pf72.ok new file mode 100644 index 000000000..02e676dad --- /dev/null +++ b/src/regress/sbin/pfctl/pf72.ok @@ -0,0 +1,3 @@ +match out on lo0 inet from 192.168.1.1 to any tag regress nat-to 10.0.0.1 static-port +match in on lo0 inet from any to 10.0.0.1 tag regress rdr-to 192.168.1.1 +block drop out on lo0 all tagged regress diff --git a/src/regress/sbin/pfctl/pf72.optimized b/src/regress/sbin/pfctl/pf72.optimized new file mode 100644 index 000000000..f8fac6f30 --- /dev/null +++ b/src/regress/sbin/pfctl/pf72.optimized @@ -0,0 +1,12 @@ +@0 match out on lo0 inet from 192.168.1.1 to any tag regress nat-to 10.0.0.1 static-port + [ Skip steps: i=end f=2 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 inet from any to 10.0.0.1 tag regress rdr-to 192.168.1.1 + [ Skip steps: i=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 block drop out on lo0 all tagged regress + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf73.in b/src/regress/sbin/pfctl/pf73.in new file mode 100644 index 000000000..a50577fd6 --- /dev/null +++ b/src/regress/sbin/pfctl/pf73.in @@ -0,0 +1 @@ +pass proto tcp scrub(reassemble tcp) diff --git a/src/regress/sbin/pfctl/pf73.loaded b/src/regress/sbin/pfctl/pf73.loaded new file mode 100644 index 000000000..ffc4d0bf2 --- /dev/null +++ b/src/regress/sbin/pfctl/pf73.loaded @@ -0,0 +1,4 @@ +@0 pass proto tcp all flags S/SA keep state scrub (reassemble tcp) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf73.ok b/src/regress/sbin/pfctl/pf73.ok new file mode 100644 index 000000000..8d299ff3b --- /dev/null +++ b/src/regress/sbin/pfctl/pf73.ok @@ -0,0 +1 @@ +pass proto tcp all flags S/SA keep state scrub (reassemble tcp) diff --git a/src/regress/sbin/pfctl/pf73.optimized b/src/regress/sbin/pfctl/pf73.optimized new file mode 100644 index 000000000..ffc4d0bf2 --- /dev/null +++ b/src/regress/sbin/pfctl/pf73.optimized @@ -0,0 +1,4 @@ +@0 pass proto tcp all flags S/SA keep state scrub (reassemble tcp) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf74.in b/src/regress/sbin/pfctl/pf74.in new file mode 100644 index 000000000..521bdd00c --- /dev/null +++ b/src/regress/sbin/pfctl/pf74.in @@ -0,0 +1 @@ +pass in proto tcp synproxy state diff --git a/src/regress/sbin/pfctl/pf74.loaded b/src/regress/sbin/pfctl/pf74.loaded new file mode 100644 index 000000000..9620cb7be --- /dev/null +++ b/src/regress/sbin/pfctl/pf74.loaded @@ -0,0 +1,4 @@ +@0 pass in proto tcp all flags S/SA synproxy state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf74.ok b/src/regress/sbin/pfctl/pf74.ok new file mode 100644 index 000000000..1f5d99dfe --- /dev/null +++ b/src/regress/sbin/pfctl/pf74.ok @@ -0,0 +1 @@ +pass in proto tcp all flags S/SA synproxy state diff --git a/src/regress/sbin/pfctl/pf74.optimized b/src/regress/sbin/pfctl/pf74.optimized new file mode 100644 index 000000000..9620cb7be --- /dev/null +++ b/src/regress/sbin/pfctl/pf74.optimized @@ -0,0 +1,4 @@ +@0 pass in proto tcp all flags S/SA synproxy state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf75.in b/src/regress/sbin/pfctl/pf75.in new file mode 100644 index 000000000..ee12db7b1 --- /dev/null +++ b/src/regress/sbin/pfctl/pf75.in @@ -0,0 +1,3 @@ +block in on lo0 proto tcp from 192.168.0.0/24 to port 22 tag ssh +block in quick on lo0 ! tagged ssh + \ No newline at end of file diff --git a/src/regress/sbin/pfctl/pf75.loaded b/src/regress/sbin/pfctl/pf75.loaded new file mode 100644 index 000000000..22bd950ef --- /dev/null +++ b/src/regress/sbin/pfctl/pf75.loaded @@ -0,0 +1,8 @@ +@0 block drop in on lo0 inet proto tcp from 192.168.0.0/24 to any port = ssh tag ssh + [ Skip steps: i=end d=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in quick on lo0 all ! tagged ssh + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf75.ok b/src/regress/sbin/pfctl/pf75.ok new file mode 100644 index 000000000..460715b5d --- /dev/null +++ b/src/regress/sbin/pfctl/pf75.ok @@ -0,0 +1,2 @@ +block drop in on lo0 inet proto tcp from 192.168.0.0/24 to any port = ssh tag ssh +block drop in quick on lo0 all ! tagged ssh diff --git a/src/regress/sbin/pfctl/pf75.optimized b/src/regress/sbin/pfctl/pf75.optimized new file mode 100644 index 000000000..22bd950ef --- /dev/null +++ b/src/regress/sbin/pfctl/pf75.optimized @@ -0,0 +1,8 @@ +@0 block drop in on lo0 inet proto tcp from 192.168.0.0/24 to any port = ssh tag ssh + [ Skip steps: i=end d=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in quick on lo0 all ! tagged ssh + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf76.in b/src/regress/sbin/pfctl/pf76.in new file mode 100644 index 000000000..c487a5481 --- /dev/null +++ b/src/regress/sbin/pfctl/pf76.in @@ -0,0 +1,2 @@ +# check_netmask _after_ remove_dead_hosts +match on lo0 inet from 1.2.3.4 to 5.6.7.8 binat-to lo0 diff --git a/src/regress/sbin/pfctl/pf76.loaded b/src/regress/sbin/pfctl/pf76.loaded new file mode 100644 index 000000000..344809da5 --- /dev/null +++ b/src/regress/sbin/pfctl/pf76.loaded @@ -0,0 +1,8 @@ +@0 match out on lo0 inet from 1.2.3.4 to 5.6.7.8 nat-to 127.0.0.1 static-port + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 inet from 5.6.7.8 to 127.0.0.1 rdr-to 1.2.3.4 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf76.ok b/src/regress/sbin/pfctl/pf76.ok new file mode 100644 index 000000000..6de2441cb --- /dev/null +++ b/src/regress/sbin/pfctl/pf76.ok @@ -0,0 +1,2 @@ +match out on lo0 inet from 1.2.3.4 to 5.6.7.8 nat-to 127.0.0.1 static-port +match in on lo0 inet from 5.6.7.8 to 127.0.0.1 rdr-to 1.2.3.4 diff --git a/src/regress/sbin/pfctl/pf76.optimized b/src/regress/sbin/pfctl/pf76.optimized new file mode 100644 index 000000000..344809da5 --- /dev/null +++ b/src/regress/sbin/pfctl/pf76.optimized @@ -0,0 +1,8 @@ +@0 match out on lo0 inet from 1.2.3.4 to 5.6.7.8 nat-to 127.0.0.1 static-port + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on lo0 inet from 5.6.7.8 to 127.0.0.1 rdr-to 1.2.3.4 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf77.in b/src/regress/sbin/pfctl/pf77.in new file mode 100644 index 000000000..b6e32e15a --- /dev/null +++ b/src/regress/sbin/pfctl/pf77.in @@ -0,0 +1,5 @@ +# dynaddr with netmask. I never want to see this again: +# $ echo "pass inet from (le0)/8" | pfctl -nvf - +# pass inet from (l)/8 to any + +pass inet from (lo0)/8 diff --git a/src/regress/sbin/pfctl/pf77.loaded b/src/regress/sbin/pfctl/pf77.loaded new file mode 100644 index 000000000..4a385db4e --- /dev/null +++ b/src/regress/sbin/pfctl/pf77.loaded @@ -0,0 +1,4 @@ +@0 pass inet from (lo0:1)/8 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf77.ok b/src/regress/sbin/pfctl/pf77.ok new file mode 100644 index 000000000..233d434b7 --- /dev/null +++ b/src/regress/sbin/pfctl/pf77.ok @@ -0,0 +1 @@ +pass inet from (lo0)/8 to any flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf77.optimized b/src/regress/sbin/pfctl/pf77.optimized new file mode 100644 index 000000000..4a385db4e --- /dev/null +++ b/src/regress/sbin/pfctl/pf77.optimized @@ -0,0 +1,4 @@ +@0 pass inet from (lo0:1)/8 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf78.in b/src/regress/sbin/pfctl/pf78.in new file mode 100644 index 000000000..0b2368c72 --- /dev/null +++ b/src/regress/sbin/pfctl/pf78.in @@ -0,0 +1,2 @@ +pass in from 10.0.0.1 to label "$srcaddr:$dstaddr" + diff --git a/src/regress/sbin/pfctl/pf78.loaded b/src/regress/sbin/pfctl/pf78.loaded new file mode 100644 index 000000000..633128054 --- /dev/null +++ b/src/regress/sbin/pfctl/pf78.loaded @@ -0,0 +1,4 @@ +@0 pass in inet from 10.0.0.1 to flags S/SA keep state label "10.0.0.1:" + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf78.ok b/src/regress/sbin/pfctl/pf78.ok new file mode 100644 index 000000000..fed726e4f --- /dev/null +++ b/src/regress/sbin/pfctl/pf78.ok @@ -0,0 +1 @@ +pass in inet from 10.0.0.1 to flags S/SA keep state label "10.0.0.1:" diff --git a/src/regress/sbin/pfctl/pf78.optimized b/src/regress/sbin/pfctl/pf78.optimized new file mode 100644 index 000000000..633128054 --- /dev/null +++ b/src/regress/sbin/pfctl/pf78.optimized @@ -0,0 +1,4 @@ +@0 pass in inet from 10.0.0.1 to flags S/SA keep state label "10.0.0.1:" + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf79.in b/src/regress/sbin/pfctl/pf79.in new file mode 100644 index 000000000..402266be8 --- /dev/null +++ b/src/regress/sbin/pfctl/pf79.in @@ -0,0 +1,2 @@ +pass in from 10.0.0.1 to no-route label "$srcaddr:$dstaddr" + diff --git a/src/regress/sbin/pfctl/pf79.loaded b/src/regress/sbin/pfctl/pf79.loaded new file mode 100644 index 000000000..85c2ff714 --- /dev/null +++ b/src/regress/sbin/pfctl/pf79.loaded @@ -0,0 +1,4 @@ +@0 pass in inet from 10.0.0.1 to no-route flags S/SA keep state label "10.0.0.1:no-route" + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf79.ok b/src/regress/sbin/pfctl/pf79.ok new file mode 100644 index 000000000..a21475d63 --- /dev/null +++ b/src/regress/sbin/pfctl/pf79.ok @@ -0,0 +1 @@ +pass in inet from 10.0.0.1 to no-route flags S/SA keep state label "10.0.0.1:no-route" diff --git a/src/regress/sbin/pfctl/pf79.optimized b/src/regress/sbin/pfctl/pf79.optimized new file mode 100644 index 000000000..85c2ff714 --- /dev/null +++ b/src/regress/sbin/pfctl/pf79.optimized @@ -0,0 +1,4 @@ +@0 pass in inet from 10.0.0.1 to no-route flags S/SA keep state label "10.0.0.1:no-route" + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf8.in b/src/regress/sbin/pfctl/pf8.in new file mode 100644 index 000000000..e092bd955 --- /dev/null +++ b/src/regress/sbin/pfctl/pf8.in @@ -0,0 +1,2 @@ +extern = "{ ! 10.0.0.0/8, 10.1.2.3 }" +block out log on tun1000001 from $extern to any diff --git a/src/regress/sbin/pfctl/pf8.loaded b/src/regress/sbin/pfctl/pf8.loaded new file mode 100644 index 000000000..ecadb4f06 --- /dev/null +++ b/src/regress/sbin/pfctl/pf8.loaded @@ -0,0 +1,8 @@ +@0 block drop out log on tun1000001 inet from ! 10.0.0.0/8 to any + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop out log on tun1000001 inet from 10.1.2.3 to any + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf8.ok b/src/regress/sbin/pfctl/pf8.ok new file mode 100644 index 000000000..c8786e384 --- /dev/null +++ b/src/regress/sbin/pfctl/pf8.ok @@ -0,0 +1,3 @@ +extern = "{ ! 10.0.0.0/8, 10.1.2.3 }" +block drop out log on tun1000001 inet from ! 10.0.0.0/8 to any +block drop out log on tun1000001 inet from 10.1.2.3 to any diff --git a/src/regress/sbin/pfctl/pf8.optimized b/src/regress/sbin/pfctl/pf8.optimized new file mode 100644 index 000000000..ecadb4f06 --- /dev/null +++ b/src/regress/sbin/pfctl/pf8.optimized @@ -0,0 +1,8 @@ +@0 block drop out log on tun1000001 inet from ! 10.0.0.0/8 to any + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop out log on tun1000001 inet from 10.1.2.3 to any + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf80.in b/src/regress/sbin/pfctl/pf80.in new file mode 100644 index 000000000..445c33366 --- /dev/null +++ b/src/regress/sbin/pfctl/pf80.in @@ -0,0 +1,15 @@ +pass out on lo0 from 10/8 to 172.16/16 nat-to 172.16.0.1 +pass in on lo0 proto tcp from any to 1.2.3.4 port 80 rdr-to 127.0.0.1 port 8080 +pass on lo0 from 10/8 to 11/8 binat-to 12/8 + +pass out log on lo0 from 10/8 to 172.16/16 nat-to 172.16.0.1 +pass in log on lo0 proto tcp from any to 1.2.3.4 port 80 rdr-to 127.0.0.1 port 8080 +pass log on lo0 from 10/8 to 11/8 binat-to 12/8 + +pass out log (all) on lo0 from 10/8 to 172.16/16 nat-to 172.16.0.1 +pass in log (all) on lo0 proto tcp from any to 1.2.3.4 port 80 rdr-to 127.0.0.1 port 8080 +pass log (all) on lo0 from 10/8 to 11/8 binat-to 12/8 + +match out log on lo0 from 10/8 to 172.16/16 nat-to 172.16.0.1 +match in log on lo0 proto tcp from any to 1.2.3.4 port 80 rdr-to 127.0.0.1 port 8080 +match log on lo0 from 10/8 to 11/8 binat-to 12/8 diff --git a/src/regress/sbin/pfctl/pf80.loaded b/src/regress/sbin/pfctl/pf80.loaded new file mode 100644 index 000000000..3c3e7f6cf --- /dev/null +++ b/src/regress/sbin/pfctl/pf80.loaded @@ -0,0 +1,64 @@ +@0 pass out on lo0 inet from 10.0.0.0/8 to 172.16.0.0/16 flags S/SA keep state nat-to 172.16.0.1 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in on lo0 inet proto tcp from any to 1.2.3.4 port = www flags S/SA keep state rdr-to 127.0.0.1 port 8080 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass out on lo0 inet from 10.0.0.0/8 to 11.0.0.0/8 flags S/SA keep state nat-to 12.0.0.0/8 static-port + [ Skip steps: i=end f=end p=5 sp=end dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in on lo0 inet from 11.0.0.0/8 to 12.0.0.0/8 flags S/SA keep state rdr-to 10.0.0.0/8 + [ Skip steps: i=end f=end p=5 sp=end dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass out log on lo0 inet from 10.0.0.0/8 to 172.16.0.0/16 flags S/SA keep state nat-to 172.16.0.1 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in log on lo0 inet proto tcp from any to 1.2.3.4 port = www flags S/SA keep state rdr-to 127.0.0.1 port 8080 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass out log on lo0 inet from 10.0.0.0/8 to 11.0.0.0/8 flags S/SA keep state nat-to 12.0.0.0/8 static-port + [ Skip steps: i=end f=end p=9 sp=end dp=9 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in log on lo0 inet from 11.0.0.0/8 to 12.0.0.0/8 flags S/SA keep state rdr-to 10.0.0.0/8 + [ Skip steps: i=end f=end p=9 sp=end dp=9 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass out log (all) on lo0 inet from 10.0.0.0/8 to 172.16.0.0/16 flags S/SA keep state nat-to 172.16.0.1 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass in log (all) on lo0 inet proto tcp from any to 1.2.3.4 port = www flags S/SA keep state rdr-to 127.0.0.1 port 8080 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass out log (all) on lo0 inet from 10.0.0.0/8 to 11.0.0.0/8 flags S/SA keep state nat-to 12.0.0.0/8 static-port + [ Skip steps: i=end f=end p=13 sp=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass in log (all) on lo0 inet from 11.0.0.0/8 to 12.0.0.0/8 flags S/SA keep state rdr-to 10.0.0.0/8 + [ Skip steps: i=end f=end p=13 sp=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 match out log on lo0 inet from 10.0.0.0/8 to 172.16.0.0/16 nat-to 172.16.0.1 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 match in log on lo0 inet proto tcp from any to 1.2.3.4 port = www rdr-to 127.0.0.1 port 8080 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 match out log on lo0 inet from 10.0.0.0/8 to 11.0.0.0/8 nat-to 12.0.0.0/8 static-port + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 match in log on lo0 inet from 11.0.0.0/8 to 12.0.0.0/8 rdr-to 10.0.0.0/8 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf80.ok b/src/regress/sbin/pfctl/pf80.ok new file mode 100644 index 000000000..40f2d0541 --- /dev/null +++ b/src/regress/sbin/pfctl/pf80.ok @@ -0,0 +1,16 @@ +pass out on lo0 inet from 10.0.0.0/8 to 172.16.0.0/16 flags S/SA keep state nat-to 172.16.0.1 +pass in on lo0 inet proto tcp from any to 1.2.3.4 port = www flags S/SA keep state rdr-to 127.0.0.1 port 8080 +pass out on lo0 inet from 10.0.0.0/8 to 11.0.0.0/8 flags S/SA keep state nat-to 12.0.0.0/8 static-port +pass in on lo0 inet from 11.0.0.0/8 to 12.0.0.0/8 flags S/SA keep state rdr-to 10.0.0.0/8 +pass out log on lo0 inet from 10.0.0.0/8 to 172.16.0.0/16 flags S/SA keep state nat-to 172.16.0.1 +pass in log on lo0 inet proto tcp from any to 1.2.3.4 port = www flags S/SA keep state rdr-to 127.0.0.1 port 8080 +pass out log on lo0 inet from 10.0.0.0/8 to 11.0.0.0/8 flags S/SA keep state nat-to 12.0.0.0/8 static-port +pass in log on lo0 inet from 11.0.0.0/8 to 12.0.0.0/8 flags S/SA keep state rdr-to 10.0.0.0/8 +pass out log (all) on lo0 inet from 10.0.0.0/8 to 172.16.0.0/16 flags S/SA keep state nat-to 172.16.0.1 +pass in log (all) on lo0 inet proto tcp from any to 1.2.3.4 port = www flags S/SA keep state rdr-to 127.0.0.1 port 8080 +pass out log (all) on lo0 inet from 10.0.0.0/8 to 11.0.0.0/8 flags S/SA keep state nat-to 12.0.0.0/8 static-port +pass in log (all) on lo0 inet from 11.0.0.0/8 to 12.0.0.0/8 flags S/SA keep state rdr-to 10.0.0.0/8 +match out log on lo0 inet from 10.0.0.0/8 to 172.16.0.0/16 nat-to 172.16.0.1 +match in log on lo0 inet proto tcp from any to 1.2.3.4 port = www rdr-to 127.0.0.1 port 8080 +match out log on lo0 inet from 10.0.0.0/8 to 11.0.0.0/8 nat-to 12.0.0.0/8 static-port +match in log on lo0 inet from 11.0.0.0/8 to 12.0.0.0/8 rdr-to 10.0.0.0/8 diff --git a/src/regress/sbin/pfctl/pf80.optimized b/src/regress/sbin/pfctl/pf80.optimized new file mode 100644 index 000000000..3c3e7f6cf --- /dev/null +++ b/src/regress/sbin/pfctl/pf80.optimized @@ -0,0 +1,64 @@ +@0 pass out on lo0 inet from 10.0.0.0/8 to 172.16.0.0/16 flags S/SA keep state nat-to 172.16.0.1 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in on lo0 inet proto tcp from any to 1.2.3.4 port = www flags S/SA keep state rdr-to 127.0.0.1 port 8080 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass out on lo0 inet from 10.0.0.0/8 to 11.0.0.0/8 flags S/SA keep state nat-to 12.0.0.0/8 static-port + [ Skip steps: i=end f=end p=5 sp=end dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in on lo0 inet from 11.0.0.0/8 to 12.0.0.0/8 flags S/SA keep state rdr-to 10.0.0.0/8 + [ Skip steps: i=end f=end p=5 sp=end dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass out log on lo0 inet from 10.0.0.0/8 to 172.16.0.0/16 flags S/SA keep state nat-to 172.16.0.1 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in log on lo0 inet proto tcp from any to 1.2.3.4 port = www flags S/SA keep state rdr-to 127.0.0.1 port 8080 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass out log on lo0 inet from 10.0.0.0/8 to 11.0.0.0/8 flags S/SA keep state nat-to 12.0.0.0/8 static-port + [ Skip steps: i=end f=end p=9 sp=end dp=9 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in log on lo0 inet from 11.0.0.0/8 to 12.0.0.0/8 flags S/SA keep state rdr-to 10.0.0.0/8 + [ Skip steps: i=end f=end p=9 sp=end dp=9 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass out log (all) on lo0 inet from 10.0.0.0/8 to 172.16.0.0/16 flags S/SA keep state nat-to 172.16.0.1 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass in log (all) on lo0 inet proto tcp from any to 1.2.3.4 port = www flags S/SA keep state rdr-to 127.0.0.1 port 8080 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass out log (all) on lo0 inet from 10.0.0.0/8 to 11.0.0.0/8 flags S/SA keep state nat-to 12.0.0.0/8 static-port + [ Skip steps: i=end f=end p=13 sp=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass in log (all) on lo0 inet from 11.0.0.0/8 to 12.0.0.0/8 flags S/SA keep state rdr-to 10.0.0.0/8 + [ Skip steps: i=end f=end p=13 sp=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 match out log on lo0 inet from 10.0.0.0/8 to 172.16.0.0/16 nat-to 172.16.0.1 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 match in log on lo0 inet proto tcp from any to 1.2.3.4 port = www rdr-to 127.0.0.1 port 8080 + [ Skip steps: i=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 match out log on lo0 inet from 10.0.0.0/8 to 11.0.0.0/8 nat-to 12.0.0.0/8 static-port + [ Skip steps: i=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 match in log on lo0 inet from 11.0.0.0/8 to 12.0.0.0/8 rdr-to 10.0.0.0/8 + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf81.in b/src/regress/sbin/pfctl/pf81.in new file mode 100644 index 000000000..ac25c49dc --- /dev/null +++ b/src/regress/sbin/pfctl/pf81.in @@ -0,0 +1,12 @@ +# skip step optimization involving dynaddr, tables, no-route +# optimisation should be done on theses rules + +ip_list="{ ::1 ::2 ::3 0.0.0.1 0.0.0.2 0.0.0.3 }" +table_list="{ }" +pass from (lo0) to $ip_list +pass from to $table_list +pass from to $ip_list +pass from to $table_list +pass from no-route to $table_list +pass from no-route to $ip_list +pass from no-route to $table_list diff --git a/src/regress/sbin/pfctl/pf81.loaded b/src/regress/sbin/pfctl/pf81.loaded new file mode 100644 index 000000000..27bc82757 --- /dev/null +++ b/src/regress/sbin/pfctl/pf81.loaded @@ -0,0 +1,120 @@ +@0 pass inet6 from (lo0:2) to ::1 flags S/SA keep state + [ Skip steps: i=end d=end f=3 p=end sa=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass inet6 from (lo0:2) to ::2 flags S/SA keep state + [ Skip steps: i=end d=end f=3 p=end sa=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass inet6 from (lo0:2) to ::3 flags S/SA keep state + [ Skip steps: i=end d=end p=end sa=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass inet from (lo0:1) to 0.0.0.1 flags S/SA keep state + [ Skip steps: i=end d=end f=6 p=end sa=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass inet from (lo0:1) to 0.0.0.2 flags S/SA keep state + [ Skip steps: i=end d=end f=6 p=end sa=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass inet from (lo0:1) to 0.0.0.3 flags S/SA keep state + [ Skip steps: i=end d=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass from to flags S/SA keep state + [ Skip steps: i=end d=end f=9 p=end sa=18 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass from to flags S/SA keep state + [ Skip steps: i=end d=end f=9 p=end sa=18 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass from to flags S/SA keep state + [ Skip steps: i=end d=end p=end sa=18 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass inet6 from to ::1 flags S/SA keep state + [ Skip steps: i=end d=end f=12 p=end sa=18 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass inet6 from to ::2 flags S/SA keep state + [ Skip steps: i=end d=end f=12 p=end sa=18 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass inet6 from to ::3 flags S/SA keep state + [ Skip steps: i=end d=end p=end sa=18 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass inet from to 0.0.0.1 flags S/SA keep state + [ Skip steps: i=end d=end f=15 p=end sa=18 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass inet from to 0.0.0.2 flags S/SA keep state + [ Skip steps: i=end d=end f=15 p=end sa=18 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 pass inet from to 0.0.0.3 flags S/SA keep state + [ Skip steps: i=end d=end p=end sa=18 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass from to flags S/SA keep state + [ Skip steps: i=end d=end f=21 p=end sa=18 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass from to flags S/SA keep state + [ Skip steps: i=end d=end f=21 p=end sa=18 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass from to flags S/SA keep state + [ Skip steps: i=end d=end f=21 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 pass from no-route to flags S/SA keep state + [ Skip steps: i=end d=end f=21 p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 pass from no-route to flags S/SA keep state + [ Skip steps: i=end d=end f=21 p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 pass from no-route to flags S/SA keep state + [ Skip steps: i=end d=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 pass inet6 from no-route to ::1 flags S/SA keep state + [ Skip steps: i=end d=end f=24 p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@22 pass inet6 from no-route to ::2 flags S/SA keep state + [ Skip steps: i=end d=end f=24 p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@23 pass inet6 from no-route to ::3 flags S/SA keep state + [ Skip steps: i=end d=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@24 pass inet from no-route to 0.0.0.1 flags S/SA keep state + [ Skip steps: i=end d=end f=27 p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@25 pass inet from no-route to 0.0.0.2 flags S/SA keep state + [ Skip steps: i=end d=end f=27 p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@26 pass inet from no-route to 0.0.0.3 flags S/SA keep state + [ Skip steps: i=end d=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@27 pass from no-route to flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@28 pass from no-route to flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@29 pass from no-route to flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf81.ok b/src/regress/sbin/pfctl/pf81.ok new file mode 100644 index 000000000..2b58a1874 --- /dev/null +++ b/src/regress/sbin/pfctl/pf81.ok @@ -0,0 +1,32 @@ +ip_list = "{ ::1 ::2 ::3 0.0.0.1 0.0.0.2 0.0.0.3 }" +table_list = "{ }" +pass inet6 from (lo0) to ::1 flags S/SA keep state +pass inet6 from (lo0) to ::2 flags S/SA keep state +pass inet6 from (lo0) to ::3 flags S/SA keep state +pass inet from (lo0) to 0.0.0.1 flags S/SA keep state +pass inet from (lo0) to 0.0.0.2 flags S/SA keep state +pass inet from (lo0) to 0.0.0.3 flags S/SA keep state +pass from to flags S/SA keep state +pass from to flags S/SA keep state +pass from to flags S/SA keep state +pass inet6 from to ::1 flags S/SA keep state +pass inet6 from to ::2 flags S/SA keep state +pass inet6 from to ::3 flags S/SA keep state +pass inet from to 0.0.0.1 flags S/SA keep state +pass inet from to 0.0.0.2 flags S/SA keep state +pass inet from to 0.0.0.3 flags S/SA keep state +pass from to flags S/SA keep state +pass from to flags S/SA keep state +pass from to flags S/SA keep state +pass from no-route to flags S/SA keep state +pass from no-route to flags S/SA keep state +pass from no-route to flags S/SA keep state +pass inet6 from no-route to ::1 flags S/SA keep state +pass inet6 from no-route to ::2 flags S/SA keep state +pass inet6 from no-route to ::3 flags S/SA keep state +pass inet from no-route to 0.0.0.1 flags S/SA keep state +pass inet from no-route to 0.0.0.2 flags S/SA keep state +pass inet from no-route to 0.0.0.3 flags S/SA keep state +pass from no-route to flags S/SA keep state +pass from no-route to flags S/SA keep state +pass from no-route to flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf81.optimized b/src/regress/sbin/pfctl/pf81.optimized new file mode 100644 index 000000000..8fa336403 --- /dev/null +++ b/src/regress/sbin/pfctl/pf81.optimized @@ -0,0 +1,96 @@ +@0 pass inet6 from (lo0:2) to ::1 flags S/SA keep state + [ Skip steps: i=end d=end f=9 p=end sa=3 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass inet6 from (lo0:2) to ::2 flags S/SA keep state + [ Skip steps: i=end d=end f=9 p=end sa=3 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass inet6 from (lo0:2) to ::3 flags S/SA keep state + [ Skip steps: i=end d=end f=9 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass inet6 from to ::1 flags S/SA keep state + [ Skip steps: i=end d=end f=9 p=end sa=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass inet6 from to ::2 flags S/SA keep state + [ Skip steps: i=end d=end f=9 p=end sa=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass inet6 from to ::3 flags S/SA keep state + [ Skip steps: i=end d=end f=9 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass inet6 from no-route to ::1 flags S/SA keep state + [ Skip steps: i=end d=end f=9 p=end sa=9 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass inet6 from no-route to ::2 flags S/SA keep state + [ Skip steps: i=end d=end f=9 p=end sa=9 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass inet6 from no-route to ::3 flags S/SA keep state + [ Skip steps: i=end d=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass inet from (lo0:1) to 0.0.0.1 flags S/SA keep state + [ Skip steps: i=end d=end f=18 p=end sa=12 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass inet from (lo0:1) to 0.0.0.2 flags S/SA keep state + [ Skip steps: i=end d=end f=18 p=end sa=12 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass inet from (lo0:1) to 0.0.0.3 flags S/SA keep state + [ Skip steps: i=end d=end f=18 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass inet from to 0.0.0.1 flags S/SA keep state + [ Skip steps: i=end d=end f=18 p=end sa=15 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass inet from to 0.0.0.2 flags S/SA keep state + [ Skip steps: i=end d=end f=18 p=end sa=15 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 pass inet from to 0.0.0.3 flags S/SA keep state + [ Skip steps: i=end d=end f=18 p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass inet from no-route to 0.0.0.1 flags S/SA keep state + [ Skip steps: i=end d=end f=18 p=end sa=21 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass inet from no-route to 0.0.0.2 flags S/SA keep state + [ Skip steps: i=end d=end f=18 p=end sa=21 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass inet from no-route to 0.0.0.3 flags S/SA keep state + [ Skip steps: i=end d=end p=end sa=21 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 pass from no-route to flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=21 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 pass from no-route to flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=21 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 pass from no-route to flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 pass from to flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@22 pass from to flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@23 pass from to flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf82.in b/src/regress/sbin/pfctl/pf82.in new file mode 100644 index 000000000..7f1751deb --- /dev/null +++ b/src/regress/sbin/pfctl/pf82.in @@ -0,0 +1,15 @@ +# skip step optimization involving dynaddr, tables, no-route + +pass inet from (lo0) +pass inet from !(lo0) +pass inet from (lo0) +pass inet6 from (lo0) +pass from +pass from ! +pass from +pass inet from +pass from +pass inet6 from +pass from +pass inet from no-route +pass from no-route diff --git a/src/regress/sbin/pfctl/pf82.loaded b/src/regress/sbin/pfctl/pf82.loaded new file mode 100644 index 000000000..7cc6c7fc8 --- /dev/null +++ b/src/regress/sbin/pfctl/pf82.loaded @@ -0,0 +1,52 @@ +@0 pass inet from (lo0:1) to any flags S/SA keep state + [ Skip steps: i=end d=end f=3 p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass inet from ! (lo0:1) to any flags S/SA keep state + [ Skip steps: i=end d=end f=3 p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass inet from (lo0:1) to any flags S/SA keep state + [ Skip steps: i=end d=end p=end sa=4 sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass inet6 from (lo0:2) to any flags S/SA keep state + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass from to any flags S/SA keep state + [ Skip steps: i=end d=end f=7 p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass from ! to any flags S/SA keep state + [ Skip steps: i=end d=end f=7 p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass from to any flags S/SA keep state + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass inet from to any flags S/SA keep state + [ Skip steps: i=end d=end p=end sa=9 sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass from to any flags S/SA keep state + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass inet6 from to any flags S/SA keep state + [ Skip steps: i=end d=end p=end sa=11 sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass from to any flags S/SA keep state + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass inet from no-route to any flags S/SA keep state + [ Skip steps: i=end d=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass from no-route to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf82.ok b/src/regress/sbin/pfctl/pf82.ok new file mode 100644 index 000000000..4a2071521 --- /dev/null +++ b/src/regress/sbin/pfctl/pf82.ok @@ -0,0 +1,13 @@ +pass inet from (lo0) to any flags S/SA keep state +pass inet from ! (lo0) to any flags S/SA keep state +pass inet from (lo0) to any flags S/SA keep state +pass inet6 from (lo0) to any flags S/SA keep state +pass from to any flags S/SA keep state +pass from ! to any flags S/SA keep state +pass from to any flags S/SA keep state +pass inet from to any flags S/SA keep state +pass from to any flags S/SA keep state +pass inet6 from to any flags S/SA keep state +pass from to any flags S/SA keep state +pass inet from no-route to any flags S/SA keep state +pass from no-route to any flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf82.optimized b/src/regress/sbin/pfctl/pf82.optimized new file mode 100644 index 000000000..3fa23efa8 --- /dev/null +++ b/src/regress/sbin/pfctl/pf82.optimized @@ -0,0 +1,28 @@ +@0 pass inet from (lo0:1) to any flags S/SA keep state + [ Skip steps: i=end d=end f=2 p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass inet from ! (lo0:1) to any flags S/SA keep state + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass inet6 from (lo0:2) to any flags S/SA keep state + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass from to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass from ! to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass from to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass from no-route to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf83.in b/src/regress/sbin/pfctl/pf83.in new file mode 100644 index 000000000..5b1e1de0c --- /dev/null +++ b/src/regress/sbin/pfctl/pf83.in @@ -0,0 +1,3 @@ +# test antispoof with ip-less interface + +antispoof for lo1000000 diff --git a/src/regress/sbin/pfctl/pf83.ok b/src/regress/sbin/pfctl/pf83.ok new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/sbin/pfctl/pf84.in b/src/regress/sbin/pfctl/pf84.in new file mode 100644 index 000000000..17140a786 --- /dev/null +++ b/src/regress/sbin/pfctl/pf84.in @@ -0,0 +1,17 @@ +match out on tun1000000 from 10.0.0.0/24 to any \ + nat-to { 10.0.1.1, 10.0.1.2 } round-robin sticky-address +match in on tun1000000 from any to 10.0.1.1 \ + rdr-to { 10.0.0.0/24 } sticky-address random +match in on tun1000000 from any to 10.0.1.2 \ + rdr-to { 10.0.0.1, 10.0.0.2 } sticky-address + +pass in proto tcp from any to any port 22 \ + keep state (source-track) +pass in proto tcp from any to any port 25 \ + keep state (source-track global) +pass in proto tcp from any to any port 80 \ + keep state (source-track rule, max-src-nodes 1000, max-src-states 3) +pass in proto tcp from any to any port 123 \ + keep state (source-track, max-src-nodes 1000) +pass in proto tcp from any to any port 321 \ + keep state (source-track, max-src-states 3) diff --git a/src/regress/sbin/pfctl/pf84.loaded b/src/regress/sbin/pfctl/pf84.loaded new file mode 100644 index 000000000..bb07c8bc6 --- /dev/null +++ b/src/regress/sbin/pfctl/pf84.loaded @@ -0,0 +1,32 @@ +@0 match out on tun1000000 inet from 10.0.0.0/24 to any nat-to <__automatic_0:2> round-robin sticky-address + [ Skip steps: i=3 f=3 p=3 sp=end dp=3 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on tun1000000 inet from any to 10.0.1.1 rdr-to 10.0.0.0/24 random sticky-address + [ Skip steps: i=3 d=end f=3 p=3 sa=end sp=end dp=3 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match in on tun1000000 inet from any to 10.0.1.2 rdr-to <__automatic_1:2> round-robin sticky-address + [ Skip steps: d=end sa=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in proto tcp from any to any port = ssh flags S/SA keep state (source-track global) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in proto tcp from any to any port = smtp flags S/SA keep state (source-track global) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in proto tcp from any to any port = www flags S/SA keep state (source-track rule, max-src-states 3, max-src-nodes 1000) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in proto tcp from any to any port = ntp flags S/SA keep state (source-track rule, max-src-nodes 1000) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in proto tcp from any to any port = 321 flags S/SA keep state (source-track global, max-src-states 3) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf84.ok b/src/regress/sbin/pfctl/pf84.ok new file mode 100644 index 000000000..d693fbcfc --- /dev/null +++ b/src/regress/sbin/pfctl/pf84.ok @@ -0,0 +1,10 @@ +table <__automatic_0> const { 10.0.1.1 10.0.1.2 } +table <__automatic_1> const { 10.0.0.1 10.0.0.2 } +match out on tun1000000 inet from 10.0.0.0/24 to any nat-to <__automatic_0> round-robin sticky-address +match in on tun1000000 inet from any to 10.0.1.1 rdr-to 10.0.0.0/24 random sticky-address +match in on tun1000000 inet from any to 10.0.1.2 rdr-to <__automatic_1> round-robin sticky-address +pass in proto tcp from any to any port = ssh flags S/SA keep state (source-track global) +pass in proto tcp from any to any port = smtp flags S/SA keep state (source-track global) +pass in proto tcp from any to any port = www flags S/SA keep state (source-track rule, max-src-states 3, max-src-nodes 1000) +pass in proto tcp from any to any port = ntp flags S/SA keep state (source-track rule, max-src-nodes 1000) +pass in proto tcp from any to any port = 321 flags S/SA keep state (source-track global, max-src-states 3) diff --git a/src/regress/sbin/pfctl/pf84.optimized b/src/regress/sbin/pfctl/pf84.optimized new file mode 100644 index 000000000..bb07c8bc6 --- /dev/null +++ b/src/regress/sbin/pfctl/pf84.optimized @@ -0,0 +1,32 @@ +@0 match out on tun1000000 inet from 10.0.0.0/24 to any nat-to <__automatic_0:2> round-robin sticky-address + [ Skip steps: i=3 f=3 p=3 sp=end dp=3 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 match in on tun1000000 inet from any to 10.0.1.1 rdr-to 10.0.0.0/24 random sticky-address + [ Skip steps: i=3 d=end f=3 p=3 sa=end sp=end dp=3 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 match in on tun1000000 inet from any to 10.0.1.2 rdr-to <__automatic_1:2> round-robin sticky-address + [ Skip steps: d=end sa=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in proto tcp from any to any port = ssh flags S/SA keep state (source-track global) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in proto tcp from any to any port = smtp flags S/SA keep state (source-track global) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in proto tcp from any to any port = www flags S/SA keep state (source-track rule, max-src-states 3, max-src-nodes 1000) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in proto tcp from any to any port = ntp flags S/SA keep state (source-track rule, max-src-nodes 1000) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in proto tcp from any to any port = 321 flags S/SA keep state (source-track global, max-src-states 3) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf85.in b/src/regress/sbin/pfctl/pf85.in new file mode 100644 index 000000000..43dd0e077 --- /dev/null +++ b/src/regress/sbin/pfctl/pf85.in @@ -0,0 +1,3 @@ +# test tag macro expansion +pass from { 127.0.0.1 127.0.0.2 127.0.0.3 } keep state tag "$srcaddr" +pass from { 127.0.0.1 127.0.0.2 127.0.0.3 } keep state tagged "$srcaddr" diff --git a/src/regress/sbin/pfctl/pf85.ok b/src/regress/sbin/pfctl/pf85.ok new file mode 100644 index 000000000..07e71ed5f --- /dev/null +++ b/src/regress/sbin/pfctl/pf85.ok @@ -0,0 +1,6 @@ +pass inet from 127.0.0.1 to any flags S/SA keep state tag 127.0.0.1 +pass inet from 127.0.0.2 to any flags S/SA keep state tag 127.0.0.2 +pass inet from 127.0.0.3 to any flags S/SA keep state tag 127.0.0.3 +pass inet from 127.0.0.1 to any flags S/SA keep state tagged 127.0.0.1 +pass inet from 127.0.0.2 to any flags S/SA keep state tagged 127.0.0.2 +pass inet from 127.0.0.3 to any flags S/SA keep state tagged 127.0.0.3 diff --git a/src/regress/sbin/pfctl/pf86.in b/src/regress/sbin/pfctl/pf86.in new file mode 100644 index 000000000..80dcbd40e --- /dev/null +++ b/src/regress/sbin/pfctl/pf86.in @@ -0,0 +1,4 @@ +# test comment continuation with \ +pass in all + +# The rule above should not be evaluated diff --git a/src/regress/sbin/pfctl/pf86.ok b/src/regress/sbin/pfctl/pf86.ok new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/sbin/pfctl/pf87.in b/src/regress/sbin/pfctl/pf87.in new file mode 100644 index 000000000..cd19262b8 --- /dev/null +++ b/src/regress/sbin/pfctl/pf87.in @@ -0,0 +1,24 @@ +# pfctl -o rule reordering + +pass in on lo1000000 proto tcp from any to 10.0.0.2 port 22 keep state +pass in on lo1000001 proto tcp from 10.0.0.1 port 22 to 10.0.0.2 keep state +pass in on lo1000001 proto udp from 10.0.0.5 to 10.0.0.4 port 53 keep state +pass in on lo1000000 proto udp from any to 10.0.0.2 port 53 keep state +pass in proto tcp to 10.0.0.1 port 80 keep state +pass out on lo1000001 proto udp from any to 10.0.0.2 port 53 keep state +pass in proto tcp to 10.0.0.3 port 80 keep state +pass out proto tcp to 10.0.0.1 port 81 keep state +pass in proto udp to 10.0.0.3 port 53 keep state +pass in on lo1000001 proto udp from 10.0.0.2 port 53 to 10.0.0.2 keep state +pass out proto udp to 10.0.0.1 port 53 keep state +pass out on lo1000000 proto udp from any to 10.0.0.2 port 53 keep state +pass out proto udp to 10.0.0.3 port 53 keep state +pass out on lo1000000 proto tcp from any to 10.0.0.2 port 22 keep state +pass in on lo1000001 proto tcp from any to 10.0.0.2 port 22 keep state +pass in on lo1000001 proto udp from any to 10.0.0.2 port 53 keep state +pass in on lo1000001 proto tcp from 10.0.0.1 to 10.0.0.4 keep state +pass out on lo1000001 proto tcp from any to 10.0.0.2 port 22 keep state +pass out proto tcp to 10.0.0.1 port 80 keep state +pass in proto udp to 10.0.0.1 port 53 keep state +pass in on lo1000001 proto tcp from 10.0.0.1 to 10.0.0.6 port 22 keep state +pass in on lo1000001 proto udp from 10.0.0.5 to 10.0.0.2 keep state diff --git a/src/regress/sbin/pfctl/pf87.loaded b/src/regress/sbin/pfctl/pf87.loaded new file mode 100644 index 000000000..a37ce2eef --- /dev/null +++ b/src/regress/sbin/pfctl/pf87.loaded @@ -0,0 +1,88 @@ +@0 pass in on lo1000000 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state + [ Skip steps: d=5 f=end p=2 da=2 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in on lo1000001 inet proto tcp from 10.0.0.1 port = ssh to 10.0.0.2 flags S/SA keep state + [ Skip steps: i=3 d=5 f=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in on lo1000001 inet proto udp from 10.0.0.5 to 10.0.0.4 port = domain keep state + [ Skip steps: d=5 f=end p=4 sp=9 dp=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in on lo1000000 inet proto udp from any to 10.0.0.2 port = domain keep state + [ Skip steps: d=5 f=end sa=9 sp=9 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in inet proto tcp from any to 10.0.0.1 port = www flags S/SA keep state + [ Skip steps: f=end sa=9 sp=9 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass out on lo1000001 inet proto udp from any to 10.0.0.2 port = domain keep state + [ Skip steps: f=end sa=9 sp=9 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in inet proto tcp from any to 10.0.0.3 port = www flags S/SA keep state + [ Skip steps: i=9 f=end p=8 sa=9 sp=9 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass out inet proto tcp from any to 10.0.0.1 port = 81 flags S/SA keep state + [ Skip steps: i=9 f=end sa=9 sp=9 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in inet proto udp from any to 10.0.0.3 port = domain keep state + [ Skip steps: d=10 f=end p=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass in on lo1000001 inet proto udp from 10.0.0.2 port = domain to 10.0.0.2 keep state + [ Skip steps: f=end p=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass out inet proto udp from any to 10.0.0.1 port = domain keep state + [ Skip steps: d=14 f=end p=13 sa=16 sp=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass out on lo1000000 inet proto udp from any to 10.0.0.2 port = domain keep state + [ Skip steps: d=14 f=end p=13 sa=16 sp=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass out inet proto udp from any to 10.0.0.3 port = domain keep state + [ Skip steps: d=14 f=end sa=16 sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass out on lo1000000 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state + [ Skip steps: f=end p=15 sa=16 sp=end da=16 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 pass in on lo1000001 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state + [ Skip steps: i=18 d=17 f=end sa=16 sp=end da=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass in on lo1000001 inet proto udp from any to 10.0.0.2 port = domain keep state + [ Skip steps: i=18 d=17 f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass in on lo1000001 inet proto tcp from 10.0.0.1 to 10.0.0.4 flags S/SA keep state + [ Skip steps: i=18 f=end p=19 sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass out on lo1000001 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state + [ Skip steps: d=19 f=end p=19 sa=20 sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 pass out inet proto tcp from any to 10.0.0.1 port = www flags S/SA keep state + [ Skip steps: i=20 f=end sa=20 sp=end da=20 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 pass in inet proto udp from any to 10.0.0.1 port = domain keep state + [ Skip steps: d=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 pass in on lo1000001 inet proto tcp from 10.0.0.1 to 10.0.0.6 port = ssh flags S/SA keep state + [ Skip steps: i=end d=end f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 pass in on lo1000001 inet proto udp from 10.0.0.5 to 10.0.0.2 keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf87.ok b/src/regress/sbin/pfctl/pf87.ok new file mode 100644 index 000000000..c598cc110 --- /dev/null +++ b/src/regress/sbin/pfctl/pf87.ok @@ -0,0 +1,22 @@ +pass in on lo1000000 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state +pass in on lo1000001 inet proto tcp from 10.0.0.1 port = ssh to 10.0.0.2 flags S/SA keep state +pass in on lo1000001 inet proto udp from 10.0.0.5 to 10.0.0.4 port = domain keep state +pass in on lo1000000 inet proto udp from any to 10.0.0.2 port = domain keep state +pass in inet proto tcp from any to 10.0.0.1 port = www flags S/SA keep state +pass out on lo1000001 inet proto udp from any to 10.0.0.2 port = domain keep state +pass in inet proto tcp from any to 10.0.0.3 port = www flags S/SA keep state +pass out inet proto tcp from any to 10.0.0.1 port = 81 flags S/SA keep state +pass in inet proto udp from any to 10.0.0.3 port = domain keep state +pass in on lo1000001 inet proto udp from 10.0.0.2 port = domain to 10.0.0.2 keep state +pass out inet proto udp from any to 10.0.0.1 port = domain keep state +pass out on lo1000000 inet proto udp from any to 10.0.0.2 port = domain keep state +pass out inet proto udp from any to 10.0.0.3 port = domain keep state +pass out on lo1000000 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state +pass in on lo1000001 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state +pass in on lo1000001 inet proto udp from any to 10.0.0.2 port = domain keep state +pass in on lo1000001 inet proto tcp from 10.0.0.1 to 10.0.0.4 flags S/SA keep state +pass out on lo1000001 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state +pass out inet proto tcp from any to 10.0.0.1 port = www flags S/SA keep state +pass in inet proto udp from any to 10.0.0.1 port = domain keep state +pass in on lo1000001 inet proto tcp from 10.0.0.1 to 10.0.0.6 port = ssh flags S/SA keep state +pass in on lo1000001 inet proto udp from 10.0.0.5 to 10.0.0.2 keep state diff --git a/src/regress/sbin/pfctl/pf87.optimized b/src/regress/sbin/pfctl/pf87.optimized new file mode 100644 index 000000000..d5121a46b --- /dev/null +++ b/src/regress/sbin/pfctl/pf87.optimized @@ -0,0 +1,88 @@ +@0 pass in on lo1000001 inet proto udp from 10.0.0.2 port = domain to 10.0.0.2 keep state + [ Skip steps: i=8 d=14 f=end p=3 da=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in on lo1000001 inet proto udp from any to 10.0.0.2 port = domain keep state + [ Skip steps: i=8 d=14 f=end p=3 sp=3 da=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass in on lo1000001 inet proto udp from 10.0.0.5 to 10.0.0.2 keep state + [ Skip steps: i=8 d=14 f=end da=5 dp=4 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass in on lo1000001 inet proto tcp from 10.0.0.1 port = ssh to 10.0.0.2 flags S/SA keep state + [ Skip steps: i=8 d=14 f=end p=7 da=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass in on lo1000001 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state + [ Skip steps: i=8 d=14 f=end p=7 sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in on lo1000001 inet proto tcp from 10.0.0.1 to 10.0.0.4 flags S/SA keep state + [ Skip steps: i=8 d=14 f=end p=7 sa=7 sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in on lo1000001 inet proto tcp from 10.0.0.1 to 10.0.0.6 port = ssh flags S/SA keep state + [ Skip steps: i=8 d=14 f=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in on lo1000001 inet proto udp from 10.0.0.5 to 10.0.0.4 port = domain keep state + [ Skip steps: d=14 f=end p=11 sp=end dp=11 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in on lo1000000 inet proto udp from any to 10.0.0.2 port = domain keep state + [ Skip steps: d=14 f=end p=11 sa=end sp=end dp=11 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass in inet proto udp from any to 10.0.0.3 port = domain keep state + [ Skip steps: i=13 d=14 f=end p=11 sa=end sp=end dp=11 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass in inet proto udp from any to 10.0.0.1 port = domain keep state + [ Skip steps: i=13 d=14 f=end sa=end sp=end da=12 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass in inet proto tcp from any to 10.0.0.1 port = www flags S/SA keep state + [ Skip steps: i=13 d=14 f=end p=14 sa=end sp=end dp=13 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 pass in inet proto tcp from any to 10.0.0.3 port = www flags S/SA keep state + [ Skip steps: d=14 f=end p=14 sa=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass in on lo1000000 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state + [ Skip steps: f=end sa=end sp=end da=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 pass out on lo1000001 inet proto udp from any to 10.0.0.2 port = domain keep state + [ Skip steps: d=end f=end p=18 sa=end sp=end da=16 dp=18 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass out on lo1000000 inet proto udp from any to 10.0.0.2 port = domain keep state + [ Skip steps: d=end f=end p=18 sa=end sp=end dp=18 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass out inet proto udp from any to 10.0.0.1 port = domain keep state + [ Skip steps: i=18 d=end f=end p=18 sa=end sp=end dp=18 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass out inet proto udp from any to 10.0.0.3 port = domain keep state + [ Skip steps: d=end f=end sa=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 pass out on lo1000000 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state + [ Skip steps: d=end f=end p=end sa=end sp=end da=20 dp=20 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 pass out on lo1000001 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state + [ Skip steps: d=end f=end p=end sa=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 pass out inet proto tcp from any to 10.0.0.1 port = 81 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 pass out inet proto tcp from any to 10.0.0.1 port = www flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf88.in b/src/regress/sbin/pfctl/pf88.in new file mode 100644 index 000000000..4700b6916 --- /dev/null +++ b/src/regress/sbin/pfctl/pf88.in @@ -0,0 +1,32 @@ +# pfctl -o duplicate rules + +pass in on lo1000000 from any to 10.0.0.1 +pass in on lo1000000 inet from any to 10.0.0.1 + +pass +pass out +pass out +pass out quick + +pass on lo1000001 to 10.0.0.1 +pass on lo1000000 from any to 10.0.0.1 + +pass to 10.0.0.2 modulate state +pass to 10.0.0.2 keep state +block from 10.0.0.3 to 10.0.0.2 +pass to 10.0.0.2 modulate state +block from 10.0.0.3 to 10.0.0.2 +pass to 10.0.0.2 synproxy state + + +pass out proto tcp from 10.0.0.4 to 10.0.0.5 keep state +pass out proto tcp from 10.0.0.4 to 10.0.0.5 port 80 keep state + +pass out +pass in + +pass in on lo1000001 from any to any +pass in on lo1000001 from any to any keep state +pass in on lo1000001 from any to any + +block diff --git a/src/regress/sbin/pfctl/pf88.loaded b/src/regress/sbin/pfctl/pf88.loaded new file mode 100644 index 000000000..7d44a2961 --- /dev/null +++ b/src/regress/sbin/pfctl/pf88.loaded @@ -0,0 +1,88 @@ +@0 pass in on lo1000000 inet from any to 10.0.0.1 flags S/SA keep state + [ Skip steps: i=2 d=2 f=2 p=14 sa=10 sp=end da=2 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass in on lo1000000 inet from any to 10.0.0.1 flags S/SA keep state + [ Skip steps: p=14 sa=10 sp=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass all flags S/SA keep state + [ Skip steps: i=6 f=6 p=14 sa=10 sp=end da=6 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass out all flags S/SA keep state + [ Skip steps: i=6 d=6 f=6 p=14 sa=10 sp=end da=6 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass out all flags S/SA keep state + [ Skip steps: i=6 d=6 f=6 p=14 sa=10 sp=end da=6 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass out quick all flags S/SA keep state + [ Skip steps: p=14 sa=10 sp=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass on lo1000001 inet from any to 10.0.0.1 flags S/SA keep state + [ Skip steps: d=14 f=16 p=14 sa=10 sp=end da=8 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass on lo1000000 inet from any to 10.0.0.1 flags S/SA keep state + [ Skip steps: d=14 f=16 p=14 sa=10 sp=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass inet from any to 10.0.0.2 flags S/SA modulate state + [ Skip steps: i=18 d=14 f=16 p=14 sa=10 sp=end da=14 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass inet from any to 10.0.0.2 flags S/SA keep state + [ Skip steps: i=18 d=14 f=16 p=14 sp=end da=14 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 block drop inet from 10.0.0.3 to 10.0.0.2 + [ Skip steps: i=18 d=14 f=16 p=14 sp=end da=14 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass inet from any to 10.0.0.2 flags S/SA modulate state + [ Skip steps: i=18 d=14 f=16 p=14 sp=end da=14 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 block drop inet from 10.0.0.3 to 10.0.0.2 + [ Skip steps: i=18 d=14 f=16 p=14 sp=end da=14 dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@13 pass inet from any to 10.0.0.2 flags S/SA synproxy state + [ Skip steps: i=18 f=16 sp=end dp=15 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@14 pass out inet proto tcp from 10.0.0.4 to 10.0.0.5 flags S/SA keep state + [ Skip steps: i=18 d=17 f=16 p=16 sa=16 sp=end da=16 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@15 pass out inet proto tcp from 10.0.0.4 to 10.0.0.5 port = www flags S/SA keep state + [ Skip steps: i=18 d=17 sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@16 pass out all flags S/SA keep state + [ Skip steps: i=18 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@17 pass in all flags S/SA keep state + [ Skip steps: d=21 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@18 pass in on lo1000001 all flags S/SA keep state + [ Skip steps: i=21 d=21 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@19 pass in on lo1000001 all flags S/SA keep state + [ Skip steps: i=21 d=21 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@20 pass in on lo1000001 all flags S/SA keep state + [ Skip steps: f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@21 block drop all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf88.ok b/src/regress/sbin/pfctl/pf88.ok new file mode 100644 index 000000000..dcebcb5ce --- /dev/null +++ b/src/regress/sbin/pfctl/pf88.ok @@ -0,0 +1,22 @@ +pass in on lo1000000 inet from any to 10.0.0.1 flags S/SA keep state +pass in on lo1000000 inet from any to 10.0.0.1 flags S/SA keep state +pass all flags S/SA keep state +pass out all flags S/SA keep state +pass out all flags S/SA keep state +pass out quick all flags S/SA keep state +pass on lo1000001 inet from any to 10.0.0.1 flags S/SA keep state +pass on lo1000000 inet from any to 10.0.0.1 flags S/SA keep state +pass inet from any to 10.0.0.2 flags S/SA modulate state +pass inet from any to 10.0.0.2 flags S/SA keep state +block drop inet from 10.0.0.3 to 10.0.0.2 +pass inet from any to 10.0.0.2 flags S/SA modulate state +block drop inet from 10.0.0.3 to 10.0.0.2 +pass inet from any to 10.0.0.2 flags S/SA synproxy state +pass out inet proto tcp from 10.0.0.4 to 10.0.0.5 flags S/SA keep state +pass out inet proto tcp from 10.0.0.4 to 10.0.0.5 port = www flags S/SA keep state +pass out all flags S/SA keep state +pass in all flags S/SA keep state +pass in on lo1000001 all flags S/SA keep state +pass in on lo1000001 all flags S/SA keep state +pass in on lo1000001 all flags S/SA keep state +block drop all diff --git a/src/regress/sbin/pfctl/pf88.optimized b/src/regress/sbin/pfctl/pf88.optimized new file mode 100644 index 000000000..ab9a967da --- /dev/null +++ b/src/regress/sbin/pfctl/pf88.optimized @@ -0,0 +1,52 @@ +@0 pass all flags S/SA keep state + [ Skip steps: i=2 f=2 p=end sa=6 sp=end da=2 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass out quick all flags S/SA keep state + [ Skip steps: p=end sa=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass on lo1000001 inet from any to 10.0.0.1 flags S/SA keep state + [ Skip steps: d=10 f=10 p=end sa=6 sp=end da=4 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass on lo1000000 inet from any to 10.0.0.1 flags S/SA keep state + [ Skip steps: d=10 f=10 p=end sa=6 sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass inet from any to 10.0.0.2 flags S/SA modulate state + [ Skip steps: i=end d=10 f=10 p=end sa=6 sp=end da=10 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass inet from any to 10.0.0.2 flags S/SA keep state + [ Skip steps: i=end d=10 f=10 p=end sp=end da=10 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 block drop inet from 10.0.0.3 to 10.0.0.2 + [ Skip steps: i=end d=10 f=10 p=end sp=end da=10 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass inet from any to 10.0.0.2 flags S/SA modulate state + [ Skip steps: i=end d=10 f=10 p=end sp=end da=10 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 block drop inet from 10.0.0.3 to 10.0.0.2 + [ Skip steps: i=end d=10 f=10 p=end sp=end da=10 dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass inet from any to 10.0.0.2 flags S/SA synproxy state + [ Skip steps: i=end p=end sa=end sp=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@10 pass out all flags S/SA keep state + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@11 pass in all flags S/SA keep state + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@12 block drop all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf89.in b/src/regress/sbin/pfctl/pf89.in new file mode 100644 index 000000000..1beda48b4 --- /dev/null +++ b/src/regress/sbin/pfctl/pf89.in @@ -0,0 +1,25 @@ +# TCP connection tracking + +table persist + +block all +block quick from + +pass out proto tcp flags S/SA keep state +pass out proto { icmp, udp } keep state + +pass in on lo1000001 proto tcp to 10.0.0.1 port 22 flags S/SA \ + keep state (max-src-conn 10, max-src-conn-rate 3/99) + +pass in on lo1000001 proto tcp to 10.0.0.2 port 22 flags S/SA keep state \ + (max-src-conn 10) + +pass in on lo1000001 proto tcp to 10.0.0.3 port 22 flags S/SA keep state \ + (max-src-conn-rate 3/99) + +pass in on lo1000000 proto tcp to 10.0.0.1 port 80 flags S/SA modulate state \ + (max-src-conn 100, max-src-conn-rate 10/5, overload flush) + +pass in on lo1000000 proto tcp to 10.0.0.1 port 8080 flags S/SA synproxy state \ + (max-src-conn 1000, max-src-conn-rate 1000/5, overload \ + flush global) diff --git a/src/regress/sbin/pfctl/pf89.loaded b/src/regress/sbin/pfctl/pf89.loaded new file mode 100644 index 000000000..72fa1d69d --- /dev/null +++ b/src/regress/sbin/pfctl/pf89.loaded @@ -0,0 +1,40 @@ +@0 block drop all + [ Skip steps: i=5 d=2 f=5 p=2 sp=end da=5 dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop quick from to any + [ Skip steps: i=5 f=5 sp=end da=5 dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass out proto tcp all flags S/SA keep state + [ Skip steps: i=5 d=5 f=5 sa=end sp=end da=5 dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass out proto icmp all keep state + [ Skip steps: i=5 d=5 f=5 sa=end sp=end da=5 dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass out proto udp all keep state + [ Skip steps: sa=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in on lo1000001 inet proto tcp from any to 10.0.0.1 port = ssh flags S/SA keep state (source-track rule, max-src-conn 10, max-src-conn-rate 3/99, src.track 99) + [ Skip steps: i=8 d=end f=end p=end sa=end sp=end dp=8 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in on lo1000001 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state (source-track rule, max-src-conn 10) + [ Skip steps: i=8 d=end f=end p=end sa=end sp=end dp=8 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in on lo1000001 inet proto tcp from any to 10.0.0.3 port = ssh flags S/SA keep state (source-track rule, max-src-conn-rate 3/99, src.track 99) + [ Skip steps: d=end f=end p=end sa=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in on lo1000000 inet proto tcp from any to 10.0.0.1 port = www flags S/SA modulate state (source-track rule, max-src-conn 100, max-src-conn-rate 10/5, overload flush, src.track 5) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass in on lo1000000 inet proto tcp from any to 10.0.0.1 port = 8080 flags S/SA synproxy state (source-track rule, max-src-conn 1000, max-src-conn-rate 1000/5, overload flush global, src.track 5) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf89.ok b/src/regress/sbin/pfctl/pf89.ok new file mode 100644 index 000000000..e66f5f89f --- /dev/null +++ b/src/regress/sbin/pfctl/pf89.ok @@ -0,0 +1,11 @@ +table persist +block drop all +block drop quick from to any +pass out proto tcp all flags S/SA keep state +pass out proto icmp all keep state +pass out proto udp all keep state +pass in on lo1000001 inet proto tcp from any to 10.0.0.1 port = ssh flags S/SA keep state (source-track rule, max-src-conn 10, max-src-conn-rate 3/99, src.track 99) +pass in on lo1000001 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state (source-track rule, max-src-conn 10) +pass in on lo1000001 inet proto tcp from any to 10.0.0.3 port = ssh flags S/SA keep state (source-track rule, max-src-conn-rate 3/99, src.track 99) +pass in on lo1000000 inet proto tcp from any to 10.0.0.1 port = www flags S/SA modulate state (source-track rule, max-src-conn 100, max-src-conn-rate 10/5, overload flush, src.track 5) +pass in on lo1000000 inet proto tcp from any to 10.0.0.1 port = 8080 flags S/SA synproxy state (source-track rule, max-src-conn 1000, max-src-conn-rate 1000/5, overload flush global, src.track 5) diff --git a/src/regress/sbin/pfctl/pf89.optimized b/src/regress/sbin/pfctl/pf89.optimized new file mode 100644 index 000000000..72fa1d69d --- /dev/null +++ b/src/regress/sbin/pfctl/pf89.optimized @@ -0,0 +1,40 @@ +@0 block drop all + [ Skip steps: i=5 d=2 f=5 p=2 sp=end da=5 dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop quick from to any + [ Skip steps: i=5 f=5 sp=end da=5 dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass out proto tcp all flags S/SA keep state + [ Skip steps: i=5 d=5 f=5 sa=end sp=end da=5 dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 pass out proto icmp all keep state + [ Skip steps: i=5 d=5 f=5 sa=end sp=end da=5 dp=5 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 pass out proto udp all keep state + [ Skip steps: sa=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@5 pass in on lo1000001 inet proto tcp from any to 10.0.0.1 port = ssh flags S/SA keep state (source-track rule, max-src-conn 10, max-src-conn-rate 3/99, src.track 99) + [ Skip steps: i=8 d=end f=end p=end sa=end sp=end dp=8 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@6 pass in on lo1000001 inet proto tcp from any to 10.0.0.2 port = ssh flags S/SA keep state (source-track rule, max-src-conn 10) + [ Skip steps: i=8 d=end f=end p=end sa=end sp=end dp=8 ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@7 pass in on lo1000001 inet proto tcp from any to 10.0.0.3 port = ssh flags S/SA keep state (source-track rule, max-src-conn-rate 3/99, src.track 99) + [ Skip steps: d=end f=end p=end sa=end sp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@8 pass in on lo1000000 inet proto tcp from any to 10.0.0.1 port = www flags S/SA modulate state (source-track rule, max-src-conn 100, max-src-conn-rate 10/5, overload flush, src.track 5) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@9 pass in on lo1000000 inet proto tcp from any to 10.0.0.1 port = 8080 flags S/SA synproxy state (source-track rule, max-src-conn 1000, max-src-conn-rate 1000/5, overload flush global, src.track 5) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf9.in b/src/regress/sbin/pfctl/pf9.in new file mode 100644 index 000000000..2e4e724db --- /dev/null +++ b/src/regress/sbin/pfctl/pf9.in @@ -0,0 +1,3 @@ +interfaces = "{ enc0, tun1000000 }" + +block in on $interfaces all diff --git a/src/regress/sbin/pfctl/pf9.loaded b/src/regress/sbin/pfctl/pf9.loaded new file mode 100644 index 000000000..8c6247c4e --- /dev/null +++ b/src/regress/sbin/pfctl/pf9.loaded @@ -0,0 +1,8 @@ +@0 block drop in on enc0 all + [ Skip steps: d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in on tun1000000 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf9.ok b/src/regress/sbin/pfctl/pf9.ok new file mode 100644 index 000000000..c7e9547a8 --- /dev/null +++ b/src/regress/sbin/pfctl/pf9.ok @@ -0,0 +1,3 @@ +interfaces = "{ enc0, tun1000000 }" +block drop in on enc0 all +block drop in on tun1000000 all diff --git a/src/regress/sbin/pfctl/pf9.optimized b/src/regress/sbin/pfctl/pf9.optimized new file mode 100644 index 000000000..8c6247c4e --- /dev/null +++ b/src/regress/sbin/pfctl/pf9.optimized @@ -0,0 +1,8 @@ +@0 block drop in on enc0 all + [ Skip steps: d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 block drop in on tun1000000 all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf90.in b/src/regress/sbin/pfctl/pf90.in new file mode 100644 index 000000000..593ddc6a3 --- /dev/null +++ b/src/regress/sbin/pfctl/pf90.in @@ -0,0 +1,5 @@ +pass log (user) +pass log (all) +pass log (to pflog7) +block log (all, user, to pflog1) +block log (to pflog1, user) diff --git a/src/regress/sbin/pfctl/pf90.loaded b/src/regress/sbin/pfctl/pf90.loaded new file mode 100644 index 000000000..74dd8bebc --- /dev/null +++ b/src/regress/sbin/pfctl/pf90.loaded @@ -0,0 +1,20 @@ +@0 pass log (user) all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass log (all) all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass log (to pflog7) all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop log (all, user, to pflog1) all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block drop log (user, to pflog1) all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf90.ok b/src/regress/sbin/pfctl/pf90.ok new file mode 100644 index 000000000..4255dc356 --- /dev/null +++ b/src/regress/sbin/pfctl/pf90.ok @@ -0,0 +1,5 @@ +pass log (user) all flags S/SA keep state +pass log (all) all flags S/SA keep state +pass log (to pflog7) all flags S/SA keep state +block drop log (all, user, to pflog1) all +block drop log (user, to pflog1) all diff --git a/src/regress/sbin/pfctl/pf90.optimized b/src/regress/sbin/pfctl/pf90.optimized new file mode 100644 index 000000000..74dd8bebc --- /dev/null +++ b/src/regress/sbin/pfctl/pf90.optimized @@ -0,0 +1,20 @@ +@0 pass log (user) all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass log (all) all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@2 pass log (to pflog7) all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 block drop log (all, user, to pflog1) all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@4 block drop log (user, to pflog1) all + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] diff --git a/src/regress/sbin/pfctl/pf91.in b/src/regress/sbin/pfctl/pf91.in new file mode 100644 index 000000000..b4fc63142 --- /dev/null +++ b/src/regress/sbin/pfctl/pf91.in @@ -0,0 +1,11 @@ +# basic anchor test +anchor on tun1000000 { + anchor foo out { + pass proto tcp to port 1234 + anchor proto tcp to port 2413 user root label "foo" { + block + pass from 127.0.0.1 + } + } + pass in proto tcp to port 1234 +} diff --git a/src/regress/sbin/pfctl/pf91.loaded b/src/regress/sbin/pfctl/pf91.loaded new file mode 100644 index 000000000..b1a0b910d --- /dev/null +++ b/src/regress/sbin/pfctl/pf91.loaded @@ -0,0 +1,31 @@ +@0 anchor on tun1000000 all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor "foo" out all { + [ Skip steps: i=end f=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 pass proto tcp from any to any port = 1234 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 anchor proto tcp from any to any port = 2413 user = 0 label "foo" { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 block drop all + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass inet from 127.0.0.1 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +} +} +@1 pass in proto tcp from any to any port = 1234 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +} diff --git a/src/regress/sbin/pfctl/pf91.ok b/src/regress/sbin/pfctl/pf91.ok new file mode 100644 index 000000000..9f69e272d --- /dev/null +++ b/src/regress/sbin/pfctl/pf91.ok @@ -0,0 +1,10 @@ +anchor on tun1000000 all { + anchor "foo" out all { + pass proto tcp from any to any port = 1234 flags S/SA keep state + anchor proto tcp from any to any port = 2413 user = 0 label "foo" { + block drop all + pass inet from 127.0.0.1 to any flags S/SA keep state + } + } + pass in proto tcp from any to any port = 1234 flags S/SA keep state +} diff --git a/src/regress/sbin/pfctl/pf91.optimized b/src/regress/sbin/pfctl/pf91.optimized new file mode 100644 index 000000000..b1a0b910d --- /dev/null +++ b/src/regress/sbin/pfctl/pf91.optimized @@ -0,0 +1,31 @@ +@0 anchor on tun1000000 all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor "foo" out all { + [ Skip steps: i=end f=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 pass proto tcp from any to any port = 1234 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 anchor proto tcp from any to any port = 2413 user = 0 label "foo" { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 block drop all + [ Skip steps: i=end d=end p=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@1 pass inet from 127.0.0.1 to any flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +} +} +@1 pass in proto tcp from any to any port = 1234 flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +} diff --git a/src/regress/sbin/pfctl/pf92.in b/src/regress/sbin/pfctl/pf92.in new file mode 100644 index 000000000..3af6ea6e3 --- /dev/null +++ b/src/regress/sbin/pfctl/pf92.in @@ -0,0 +1,30 @@ +anchor { # testing comments + anchor in { + # comment before rule + pass quick + } + # silly nesting + anchor out { + anchor in { + anchor out { + anchor in { + anchor out { + anchor in { + anchor out { + anchor in { + pass + } + } + } + } + } + } + } + } + pass in on tun1000000 + anchor foo on tun1000000 { + + pass + } +} # comment after closing brace + diff --git a/src/regress/sbin/pfctl/pf92.loaded b/src/regress/sbin/pfctl/pf92.loaded new file mode 100644 index 000000000..6a4e1a462 --- /dev/null +++ b/src/regress/sbin/pfctl/pf92.loaded @@ -0,0 +1,71 @@ +@0 anchor all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor in all { + [ Skip steps: i=2 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 pass quick all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +} +@1 anchor out all { + [ Skip steps: f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor in all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor out all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor in all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor out all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor in all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor out all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor in all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 pass all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +} +} +} +} +} +} +} +} +@2 pass in on tun1000000 all flags S/SA keep state + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 anchor "foo" on tun1000000 all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 pass all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +} +} diff --git a/src/regress/sbin/pfctl/pf92.ok b/src/regress/sbin/pfctl/pf92.ok new file mode 100644 index 000000000..43720c1af --- /dev/null +++ b/src/regress/sbin/pfctl/pf92.ok @@ -0,0 +1,26 @@ +anchor all { + anchor in all { + pass quick all flags S/SA keep state + } + anchor out all { + anchor in all { + anchor out all { + anchor in all { + anchor out all { + anchor in all { + anchor out all { + anchor in all { + pass all flags S/SA keep state + } + } + } + } + } + } + } + } + pass in on tun1000000 all flags S/SA keep state + anchor "foo" on tun1000000 all { + pass all flags S/SA keep state + } +} diff --git a/src/regress/sbin/pfctl/pf92.optimized b/src/regress/sbin/pfctl/pf92.optimized new file mode 100644 index 000000000..6a4e1a462 --- /dev/null +++ b/src/regress/sbin/pfctl/pf92.optimized @@ -0,0 +1,71 @@ +@0 anchor all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor in all { + [ Skip steps: i=2 f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 pass quick all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +} +@1 anchor out all { + [ Skip steps: f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor in all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor out all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor in all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor out all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor in all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor out all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 anchor in all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 pass all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +} +} +} +} +} +} +} +} +@2 pass in on tun1000000 all flags S/SA keep state + [ Skip steps: i=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@3 anchor "foo" on tun1000000 all { + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +@0 pass all flags S/SA keep state + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname= qid=0 pqname= pqid=0 ] + [ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ] +} +} diff --git a/src/regress/sbin/pfctl/pf93.in b/src/regress/sbin/pfctl/pf93.in new file mode 100644 index 000000000..c506fe877 --- /dev/null +++ b/src/regress/sbin/pfctl/pf93.in @@ -0,0 +1,2 @@ +# rtable selection +pass in rtable 7 diff --git a/src/regress/sbin/pfctl/pf93.ok b/src/regress/sbin/pfctl/pf93.ok new file mode 100644 index 000000000..6381b9aac --- /dev/null +++ b/src/regress/sbin/pfctl/pf93.ok @@ -0,0 +1 @@ +pass in all flags S/SA keep state rtable 7 diff --git a/src/regress/sbin/pfctl/pf94.in b/src/regress/sbin/pfctl/pf94.in new file mode 100644 index 000000000..b0e3d0fee --- /dev/null +++ b/src/regress/sbin/pfctl/pf94.in @@ -0,0 +1,4 @@ +pass from 10.1.2.3 - 10.1.2.4 to 10.2.3.4 - 10.3.4.5 +pass from 0.0.0.0 - 255.255.255.255 +pass from 2001:6f8:1098::2 - 2001:6f8:1098::5 to 2001:6f8:1098::3 - 2001:6f8:1098::4 +pass from ::0 - ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff diff --git a/src/regress/sbin/pfctl/pf94.ok b/src/regress/sbin/pfctl/pf94.ok new file mode 100644 index 000000000..5a792644d --- /dev/null +++ b/src/regress/sbin/pfctl/pf94.ok @@ -0,0 +1,4 @@ +pass inet from 10.1.2.3 - 10.1.2.4 to 10.2.3.4 - 10.3.4.5 flags S/SA keep state +pass inet from 0.0.0.0 - 255.255.255.255 to any flags S/SA keep state +pass inet6 from 2001:6f8:1098::2 - 2001:6f8:1098::5 to 2001:6f8:1098::3 - 2001:6f8:1098::4 flags S/SA keep state +pass inet6 from :: - ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff to any flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf95.in b/src/regress/sbin/pfctl/pf95.in new file mode 100644 index 000000000..ca93c7391 --- /dev/null +++ b/src/regress/sbin/pfctl/pf95.in @@ -0,0 +1,4 @@ +set require-order no + +include "pf95.include" + diff --git a/src/regress/sbin/pfctl/pf95.include b/src/regress/sbin/pfctl/pf95.include new file mode 100644 index 000000000..983d29a41 --- /dev/null +++ b/src/regress/sbin/pfctl/pf95.include @@ -0,0 +1 @@ +set require-order yes diff --git a/src/regress/sbin/pfctl/pf95.ok b/src/regress/sbin/pfctl/pf95.ok new file mode 100644 index 000000000..99168388b --- /dev/null +++ b/src/regress/sbin/pfctl/pf95.ok @@ -0,0 +1,2 @@ +set require-order no +set require-order yes diff --git a/src/regress/sbin/pfctl/pf96.in b/src/regress/sbin/pfctl/pf96.in new file mode 100644 index 000000000..4d1aed38e --- /dev/null +++ b/src/regress/sbin/pfctl/pf96.in @@ -0,0 +1,5 @@ +# varset allows concatenated strings as numbers +myports = 5555 6666 +# and also can be used within another macro +moreports = $myports 7777 +pass in proto tcp from any to any port { $moreports } diff --git a/src/regress/sbin/pfctl/pf96.ok b/src/regress/sbin/pfctl/pf96.ok new file mode 100644 index 000000000..e1d9efe31 --- /dev/null +++ b/src/regress/sbin/pfctl/pf96.ok @@ -0,0 +1,5 @@ +myports = "5555 6666" +moreports = "5555 6666 7777" +pass in proto tcp from any to any port = 5555 flags S/SA keep state +pass in proto tcp from any to any port = 6666 flags S/SA keep state +pass in proto tcp from any to any port = 7777 flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pf97.in b/src/regress/sbin/pfctl/pf97.in new file mode 100644 index 000000000..c9aad6e93 --- /dev/null +++ b/src/regress/sbin/pfctl/pf97.in @@ -0,0 +1,4 @@ +pass in on em0 inet proto tcp from any to any port 220:230 divert-to 127.0.0.1 port 22 +pass out on em0 inet proto tcp from any to any port 220:230 divert-reply +pass on em0 inet proto tcp from any to any port 80 divert-to 127.0.0.1 port 8080 +pass in on em0 inet proto 103 divert-to 127.0.0.1 port 103 # FIXME diff --git a/src/regress/sbin/pfctl/pf97.ok b/src/regress/sbin/pfctl/pf97.ok new file mode 100644 index 000000000..f81acb2d0 --- /dev/null +++ b/src/regress/sbin/pfctl/pf97.ok @@ -0,0 +1,4 @@ +pass in on em0 inet proto tcp from any to any port 220:230 flags S/SA keep state divert-to 127.0.0.1 port 22 +pass out on em0 inet proto tcp from any to any port 220:230 flags S/SA keep state divert-reply +pass on em0 inet proto tcp from any to any port = www flags S/SA keep state divert-to 127.0.0.1 port 8080 +pass in on em0 inet proto pim all keep state divert-to 127.0.0.1 port 103 diff --git a/src/regress/sbin/pfctl/pf98.in b/src/regress/sbin/pfctl/pf98.in new file mode 100644 index 000000000..bea0b7cb1 --- /dev/null +++ b/src/regress/sbin/pfctl/pf98.in @@ -0,0 +1,4 @@ +# Test rule order processing: should pass with require-order defaulting to no. +pass in on lo1000000 all +match out on lo0 all nat-to lo0 + diff --git a/src/regress/sbin/pfctl/pf98.ok b/src/regress/sbin/pfctl/pf98.ok new file mode 100644 index 000000000..f436ebb47 --- /dev/null +++ b/src/regress/sbin/pfctl/pf98.ok @@ -0,0 +1,2 @@ +pass in on lo1000000 all flags S/SA keep state +match out on lo0 inet all nat-to 127.0.0.1 diff --git a/src/regress/sbin/pfctl/pfail1.in b/src/regress/sbin/pfctl/pfail1.in new file mode 100644 index 000000000..e03ee3592 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail1.in @@ -0,0 +1,5 @@ +pass in all +pass in from any to any +pass in from any port <= 1024 to any +pass in from any to any port = 25 +pass in from 10.0.0.0/8 port > 1024 to ! 10.1.2.3 port != 22 diff --git a/src/regress/sbin/pfctl/pfail1.ok b/src/regress/sbin/pfctl/pfail1.ok new file mode 100644 index 000000000..fbeacf947 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail1.ok @@ -0,0 +1,9 @@ +stdin:3: port only applies to tcp/udp +stdin:3: skipping rule due to errors +stdin:3: rule expands to no valid combination +stdin:4: port only applies to tcp/udp +stdin:4: skipping rule due to errors +stdin:4: rule expands to no valid combination +stdin:5: port only applies to tcp/udp +stdin:5: skipping rule due to errors +stdin:5: rule expands to no valid combination diff --git a/src/regress/sbin/pfctl/pfail11.in b/src/regress/sbin/pfctl/pfail11.in new file mode 100644 index 000000000..2f001e390 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail11.in @@ -0,0 +1,6 @@ +set require-order yes +set optimization aggressive +set timeout tcp.closing 6, tcp.opening 6 +pass in all +set limit states 1000, frags 1000 +set loginterface lo0 diff --git a/src/regress/sbin/pfctl/pfail11.ok b/src/regress/sbin/pfctl/pfail11.ok new file mode 100644 index 000000000..366a70049 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail11.ok @@ -0,0 +1,6 @@ +stdin:3: syntax error +stdin:5: Rules must be in order: options, normalization, queueing, translation, filtering +stdin:6: Rules must be in order: options, normalization, queueing, translation, filtering +set require-order yes +set optimization aggressive +set timeout tcp.closing 6 diff --git a/src/regress/sbin/pfctl/pfail12.in b/src/regress/sbin/pfctl/pfail12.in new file mode 100644 index 000000000..e2e9378c3 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail12.in @@ -0,0 +1,2 @@ +# ports are invalid for proto icmp +match in on lo0 proto icmp from any to 11.1.1.1/32 port 12345 rdr-to 172.17.0.2 port 69 diff --git a/src/regress/sbin/pfctl/pfail12.ok b/src/regress/sbin/pfctl/pfail12.ok new file mode 100644 index 000000000..040b59b87 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail12.ok @@ -0,0 +1,3 @@ +stdin:2: port only applies to tcp/udp +stdin:2: skipping rule due to errors +stdin:2: rule expands to no valid combination diff --git a/src/regress/sbin/pfctl/pfail13.in b/src/regress/sbin/pfctl/pfail13.in new file mode 100644 index 000000000..3360f9f1a --- /dev/null +++ b/src/regress/sbin/pfctl/pfail13.in @@ -0,0 +1,2 @@ +pass in proto udp from any to any flags S +pass in proto { udp, icmp } from any to any flags S diff --git a/src/regress/sbin/pfctl/pfail13.ok b/src/regress/sbin/pfctl/pfail13.ok new file mode 100644 index 000000000..1c4256eec --- /dev/null +++ b/src/regress/sbin/pfctl/pfail13.ok @@ -0,0 +1,2 @@ +stdin:1: syntax error +stdin:2: syntax error diff --git a/src/regress/sbin/pfctl/pfail14.in b/src/regress/sbin/pfctl/pfail14.in new file mode 100644 index 000000000..ff1b69635 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail14.in @@ -0,0 +1 @@ +block in on lo0 from ! (lo0) to any diff --git a/src/regress/sbin/pfctl/pfail14.ok b/src/regress/sbin/pfctl/pfail14.ok new file mode 100644 index 000000000..6c2cd6446 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail14.ok @@ -0,0 +1 @@ +block drop in on lo0 from ! (lo0) to any diff --git a/src/regress/sbin/pfctl/pfail15.in b/src/regress/sbin/pfctl/pfail15.in new file mode 100644 index 000000000..608a82ee3 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail15.in @@ -0,0 +1,3 @@ +# test for line buffer overflow in yylex, bufsize=8192 + +block in from any to "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789#0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" diff --git a/src/regress/sbin/pfctl/pfail15.ok b/src/regress/sbin/pfctl/pfail15.ok new file mode 100644 index 000000000..74c787fbb --- /dev/null +++ b/src/regress/sbin/pfctl/pfail15.ok @@ -0,0 +1,2 @@ +stdin:3: string too long +stdin:3: syntax error diff --git a/src/regress/sbin/pfctl/pfail16.in b/src/regress/sbin/pfctl/pfail16.in new file mode 100644 index 000000000..40860f799 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail16.in @@ -0,0 +1,7 @@ +# invalid IP addresses +block from 10.0.0.0.1 +block from :80 +block from 2000:0:0:0:0:0:0:0:0:1 +block from 256.0.0.1 +block from 10.0.0.0:network + diff --git a/src/regress/sbin/pfctl/pfail16.ok b/src/regress/sbin/pfctl/pfail16.ok new file mode 100644 index 000000000..7c4bd5dfc --- /dev/null +++ b/src/regress/sbin/pfctl/pfail16.ok @@ -0,0 +1,10 @@ +no IP address found for 10.0.0.0.1 +stdin:2: could not parse host specification +no IP address found for :80 +stdin:3: could not parse host specification +no IP address found for 2000:0:0:0:0:0:0:0:0:1 +stdin:4: could not parse host specification +no IP address found for 256.0.0.1 +stdin:5: could not parse host specification +no IP address found for 10.0.0.0:network +stdin:6: could not parse host specification diff --git a/src/regress/sbin/pfctl/pfail17.in b/src/regress/sbin/pfctl/pfail17.in new file mode 100644 index 000000000..5b7ede188 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail17.in @@ -0,0 +1,5 @@ +#flags X is invalid; flags X/XY must be used + +pass proto tcp flags S +pass proto tcp flags S/ + diff --git a/src/regress/sbin/pfctl/pfail17.ok b/src/regress/sbin/pfctl/pfail17.ok new file mode 100644 index 000000000..26474e7c7 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail17.ok @@ -0,0 +1,2 @@ +stdin:3: syntax error +stdin:4: syntax error diff --git a/src/regress/sbin/pfctl/pfail18.in b/src/regress/sbin/pfctl/pfail18.in new file mode 100644 index 000000000..e48a7c4df --- /dev/null +++ b/src/regress/sbin/pfctl/pfail18.in @@ -0,0 +1,6 @@ +# queue without parent + +altq on lo0 cbq tbrsize 1824 bandwidth 10Mb queue { frenchs eat frogs } +queue frenchs bandwidth 30% cbq(default) +queue eat bandwidth 30% +queue toads bandwidth 30% diff --git a/src/regress/sbin/pfctl/pfail18.ok b/src/regress/sbin/pfctl/pfail18.ok new file mode 100644 index 000000000..4428abffb --- /dev/null +++ b/src/regress/sbin/pfctl/pfail18.ok @@ -0,0 +1,5 @@ +stdin:6: queue toads has no parent +stdin:6: errors in queue definition +altq on lo0 cbq bandwidth 10Mb tbrsize 1824 queue { frenchs eat frogs } +queue frenchs bandwidth 30% cbq( default ) +queue eat bandwidth 30% diff --git a/src/regress/sbin/pfctl/pfail19.in b/src/regress/sbin/pfctl/pfail19.in new file mode 100644 index 000000000..5529d4c95 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail19.in @@ -0,0 +1,8 @@ +# invalid table constructs +match in on lo0 from any to any rdr-to +match out on lo0 from any to any nat-to +match on lo0 from 1.1.1.1 to any binat-to +match on lo0 from to any binat-to 1.1.1.1 +pass in from any to any dup-to (lo0 ) +pass in from any to any route-to (lo0 ) +pass in from any to any reply-to (lo0 ) diff --git a/src/regress/sbin/pfctl/pfail19.ok b/src/regress/sbin/pfctl/pfail19.ok new file mode 100644 index 000000000..84b9e4945 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail19.ok @@ -0,0 +1,8 @@ +stdin:4: binat-to requires a specified source and redirect address +stdin:4: source and redir addresess must have a matching network mask in binat-rule +stdin:4: tables cannot be used as the redirect address of a binat-to rule +stdin:4: skipping rule due to errors +stdin:4: rule expands to no valid combination +stdin:5: invalid use of table as the source address of a binat-to rule +stdin:5: skipping rule due to errors +stdin:5: rule expands to no valid combination diff --git a/src/regress/sbin/pfctl/pfail2.in b/src/regress/sbin/pfctl/pfail2.in new file mode 100644 index 000000000..c8d9a547d --- /dev/null +++ b/src/regress/sbin/pfctl/pfail2.in @@ -0,0 +1,4 @@ +# test address family / icmp version mismatches + +pass in inet6 proto icmp all +pass inet proto icmp6 diff --git a/src/regress/sbin/pfctl/pfail2.ok b/src/regress/sbin/pfctl/pfail2.ok new file mode 100644 index 000000000..88b54b7ac --- /dev/null +++ b/src/regress/sbin/pfctl/pfail2.ok @@ -0,0 +1,6 @@ +stdin:3: proto icmp doesn't match address family inet6 +stdin:3: skipping rule due to errors +stdin:3: rule expands to no valid combination +stdin:4: proto icmp6 doesn't match address family inet +stdin:4: skipping rule due to errors +stdin:4: rule expands to no valid combination diff --git a/src/regress/sbin/pfctl/pfail20.in b/src/regress/sbin/pfctl/pfail20.in new file mode 100644 index 000000000..faefcdf42 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail20.in @@ -0,0 +1,6 @@ +# dynamic interface expansion has limitations; and NAT stuff must be af uniq + +match in on lo0 from any to any rdr-to (lo0) +match out on lo0 from (lo0) to any nat-to (lo0) +match in on lo0 inet6 from 10.0.0.1 rdr-to (lo0) + diff --git a/src/regress/sbin/pfctl/pfail20.ok b/src/regress/sbin/pfctl/pfail20.ok new file mode 100644 index 000000000..5296c66db --- /dev/null +++ b/src/regress/sbin/pfctl/pfail20.ok @@ -0,0 +1 @@ +stdin:5: rule expands to no valid combination diff --git a/src/regress/sbin/pfctl/pfail23.in b/src/regress/sbin/pfctl/pfail23.in new file mode 100644 index 000000000..13450fcef --- /dev/null +++ b/src/regress/sbin/pfctl/pfail23.in @@ -0,0 +1,11 @@ +#illegal port value +pass in quick proto tcp from any to any port 65536 + +#flags only apply to tcp +#(similar to pfail13.in which tests for flags S failure) +pass in proto udp from any to any flags S/SA +pass in proto { udp, icmp } from any to any flags S/SA + +#no routing address with matching address family found +pass out inet6 from any to any dup-to (tun1000000 1.1.1.1) + diff --git a/src/regress/sbin/pfctl/pfail23.ok b/src/regress/sbin/pfctl/pfail23.ok new file mode 100644 index 000000000..95c5521b1 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail23.ok @@ -0,0 +1,6 @@ +stdin:2: illegal port value 65536 +stdin:6: flags only apply to tcp +stdin:7: flags only apply to tcp +stdin:10: af mismatch in routing spec +stdin:10: skipping rule due to errors +stdin:10: rule expands to no valid combination diff --git a/src/regress/sbin/pfctl/pfail25.in b/src/regress/sbin/pfctl/pfail25.in new file mode 100644 index 000000000..99c3bf40a --- /dev/null +++ b/src/regress/sbin/pfctl/pfail25.in @@ -0,0 +1,6 @@ +match scrub(no-df no-df) +match scrub(min-ttl 4 min-ttl 5) +match in all scrub(min-ttl 256) +match out scrub(min-ttl 65536) +match in from localhost to localhost scrub(max-mss 512 max-mss 1280) +match from localhost scrub(random-id random-id) diff --git a/src/regress/sbin/pfctl/pfail25.ok b/src/regress/sbin/pfctl/pfail25.ok new file mode 100644 index 000000000..64071dfa8 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail25.ok @@ -0,0 +1,6 @@ +stdin:1: no-df cannot be respecified +stdin:2: min-ttl cannot be respecified +stdin:3: illegal min-ttl value 256 +stdin:4: illegal min-ttl value 65536 +stdin:5: max-mss cannot be respecified +stdin:6: random-id cannot be respecified diff --git a/src/regress/sbin/pfctl/pfail27.in b/src/regress/sbin/pfctl/pfail27.in new file mode 100644 index 000000000..6fbfb8a59 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail27.in @@ -0,0 +1,6 @@ +# various anchor limitations + +anchor foo from 10/8 port 1024 to any +anchor foo to 10/8 port { 80, 443 } +anchor foo to 10/8 port 6000:7000 +anchor foo keep state diff --git a/src/regress/sbin/pfctl/pfail27.ok b/src/regress/sbin/pfctl/pfail27.ok new file mode 100644 index 000000000..1dfd95a52 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail27.ok @@ -0,0 +1,12 @@ +stdin:3: port only applies to tcp/udp +stdin:3: skipping rule due to errors +stdin:3: rule expands to no valid combination +stdin:4: port only applies to tcp/udp +stdin:4: skipping rule due to errors +stdin:4: port only applies to tcp/udp +stdin:4: skipping rule due to errors +stdin:4: rule expands to no valid combination +stdin:5: port only applies to tcp/udp +stdin:5: skipping rule due to errors +stdin:5: rule expands to no valid combination +stdin:6: cannot specify state handling on anchors diff --git a/src/regress/sbin/pfctl/pfail29.in b/src/regress/sbin/pfctl/pfail29.in new file mode 100644 index 000000000..1f5e582d4 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail29.in @@ -0,0 +1,3 @@ +# altq spec without child queues, altq without scheduler spec + +altq on lo0 bandwidth 10Mb queue { nonexistent } diff --git a/src/regress/sbin/pfctl/pfail29.ok b/src/regress/sbin/pfctl/pfail29.ok new file mode 100644 index 000000000..96f10cd46 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail29.ok @@ -0,0 +1 @@ +stdin:3: no scheduler specified! diff --git a/src/regress/sbin/pfctl/pfail3.in b/src/regress/sbin/pfctl/pfail3.in new file mode 100644 index 000000000..d5f8c7d79 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail3.in @@ -0,0 +1 @@ +pass in inet proto ipv6-icmp all diff --git a/src/regress/sbin/pfctl/pfail3.ok b/src/regress/sbin/pfctl/pfail3.ok new file mode 100644 index 000000000..e38b02245 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail3.ok @@ -0,0 +1,3 @@ +stdin:1: proto icmp6 doesn't match address family inet +stdin:1: skipping rule due to errors +stdin:1: rule expands to no valid combination diff --git a/src/regress/sbin/pfctl/pfail30.in b/src/regress/sbin/pfctl/pfail30.in new file mode 100644 index 000000000..86fdfb4bf --- /dev/null +++ b/src/regress/sbin/pfctl/pfail30.in @@ -0,0 +1,18 @@ +# invalid binat stuff +match on lo0 from (lo0) to (lo1000000) binat-to (lo0) +match on lo0 from (lo0) to no-route binat-to (lo1000000) +match on lo0 from no-route to any binat-to 1.1.1.1 +match on lo0 from !1.1.1.1 to any binat-to 1.1.1.1 +match on lo0 from !(lo0) to any binat-to 1.1.1.1 +match on lo0 from 1.1.1.1 to any binat-to no-route +match on lo0 from 1.1.1.1 to any binat-to !3.3.3.3 +match on lo0 from 1.1.1.1 to any binat-to !(lo1000000) +#match on { lo0 lo1000000 } from 1.1.1.1 to any binat-to 2.2.2.2 +match on lo0 from { 1.1.1.1 2.2.2.2 } to any binat-to 3.3.3.3 +match on lo0 from 1.1.1.1 to { 2.2.2.2 3.3.3.3 } binat-to 4.4.4.4 +match on lo0 from 1.1.1.1 to any binat-to { 1.1.1.1 2.2.2.2 } +match on lo0 from ::1 to any binat-to 1.2.3.4 +match on lo0 from 1.1.1.1 to ::1 binat-to 1.2.3.4 +match on lo0 from 1.1.1.1 to any binat-to ::1 +match on lo0 inet from ::1 to any binat-to ::2 +match on lo0 inet6 from 1.2.3.4 to any binat-to 4.3.2.1 diff --git a/src/regress/sbin/pfctl/pfail30.ok b/src/regress/sbin/pfctl/pfail30.ok new file mode 100644 index 000000000..00bebb30e --- /dev/null +++ b/src/regress/sbin/pfctl/pfail30.ok @@ -0,0 +1,37 @@ +stdin:2: invalid use of interface (lo0) as the source address of a binat-to rule +stdin:2: dynamic interfaces must be used with :0 in a binat-to rule +stdin:2: skipping rule due to errors +stdin:2: rule expands to no valid combination +stdin:3: invalid use of interface (lo0) as the source address of a binat-to rule +stdin:3: dynamic interfaces must be used with :0 in a binat-to rule +stdin:3: skipping rule due to errors +stdin:3: rule expands to no valid combination +stdin:4: binat-to requires a specified source and redirect address +stdin:4: skipping rule due to errors +stdin:4: rule expands to no valid combination +stdin:6: invalid use of interface (lo0) as the source address of a binat-to rule +stdin:6: dynamic interfaces must be used with :0 in a binat-to rule +stdin:6: skipping rule due to errors +stdin:6: rule expands to no valid combination +stdin:7: syntax error +stdin:8: syntax error +stdin:9: syntax error +stdin:13: binat-to requires a specified source and redirect address +stdin:13: source and redir addresess must have a matching network mask in binat-rule +stdin:13: tables cannot be used as the redirect address of a binat-to rule +stdin:13: skipping rule due to errors +stdin:13: rule expands to no valid combination +stdin:14: af mismatch in translation spec +stdin:14: source and redir addresess must have a matching network mask in binat-rule +stdin:14: skipping rule due to errors +stdin:14: rule expands to no valid combination +stdin:15: rule expands to no valid combination +stdin:16: af mismatch in translation spec +stdin:16: source and redir addresess must have a matching network mask in binat-rule +stdin:16: skipping rule due to errors +stdin:16: rule expands to no valid combination +stdin:17: af mismatch in translation spec +stdin:17: rule expands to no valid combination +stdin:18: af mismatch in translation spec +stdin:18: rule expands to no valid combination +table <__automatic_0> const { 1.1.1.1 2.2.2.2 } diff --git a/src/regress/sbin/pfctl/pfail31.in b/src/regress/sbin/pfctl/pfail31.in new file mode 100644 index 000000000..2919134c7 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail31.in @@ -0,0 +1,12 @@ +#test an edge case: LOOP_THROUGH modifies the list + +lan_if = lo0 +ext_if = nothere0 + +altq on $ext_if bandwidth 512Kb tbrsize 33224 cbq queue { q_ext_std } +queue q_ext_std bandwidth 100% cbq(default) { q_ext_p2p } +queue q_ext_p2p bandwidth 25% cbq(red ecn) + +altq on $lan_if bandwidth 512Kb tbrsize 33224 cbq queue { q_lan_std } +queue q_lan_std bandwidth 100% cbq(default) { q_lan_p2p } +queue q_lan_p2p bandwidth 25% cbq(red ecn) diff --git a/src/regress/sbin/pfctl/pfail31.ok b/src/regress/sbin/pfctl/pfail31.ok new file mode 100644 index 000000000..a5736fdf1 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail31.ok @@ -0,0 +1,10 @@ +stdin:6: unknown interface nothere0 +stdin:7: queue q_ext_std has no parent +stdin:7: errors in queue definition +stdin:8: queue q_ext_p2p has no parent +stdin:8: errors in queue definition +lan_if = "lo0" +ext_if = "nothere0" +altq on lo0 cbq bandwidth 512Kb tbrsize 33224 queue { q_lan_std } +queue q_lan_std cbq( default ) { q_lan_p2p } +queue q_lan_p2p bandwidth 25% cbq( red ecn ) diff --git a/src/regress/sbin/pfctl/pfail32.in b/src/regress/sbin/pfctl/pfail32.in new file mode 100644 index 000000000..bed86c571 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail32.in @@ -0,0 +1,4 @@ +# queue doubly defined on one interface +altq on gif3 cbq bandwidth 100Kb queue { eins, zwei } +queue eins cbq (default) { zwei } +queue zwei diff --git a/src/regress/sbin/pfctl/pfail32.ok b/src/regress/sbin/pfctl/pfail32.ok new file mode 100644 index 000000000..87edf349c --- /dev/null +++ b/src/regress/sbin/pfctl/pfail32.ok @@ -0,0 +1 @@ +pfctl: SIOCGIFMTU: Device not configured diff --git a/src/regress/sbin/pfctl/pfail33.in b/src/regress/sbin/pfctl/pfail33.in new file mode 100644 index 000000000..3f332825d --- /dev/null +++ b/src/regress/sbin/pfctl/pfail33.in @@ -0,0 +1,3 @@ +#invalid cbq flags + +altq on gif2 cbq(borrow invalid) bandwidth 10Mb queue one diff --git a/src/regress/sbin/pfctl/pfail33.ok b/src/regress/sbin/pfctl/pfail33.ok new file mode 100644 index 000000000..fd910e98e --- /dev/null +++ b/src/regress/sbin/pfctl/pfail33.ok @@ -0,0 +1 @@ +stdin:3: unknown cbq flag "invalid" diff --git a/src/regress/sbin/pfctl/pfail34.in b/src/regress/sbin/pfctl/pfail34.in new file mode 100644 index 000000000..1b8e9b07c --- /dev/null +++ b/src/regress/sbin/pfctl/pfail34.in @@ -0,0 +1,3 @@ +#invalid cbq/priq flags + +altq on gif2 priq(red invalid) bandwidth 10Mb queue one diff --git a/src/regress/sbin/pfctl/pfail34.ok b/src/regress/sbin/pfctl/pfail34.ok new file mode 100644 index 000000000..2a9767dfc --- /dev/null +++ b/src/regress/sbin/pfctl/pfail34.ok @@ -0,0 +1 @@ +stdin:3: unknown priq flag "invalid" diff --git a/src/regress/sbin/pfctl/pfail35.in b/src/regress/sbin/pfctl/pfail35.in new file mode 100644 index 000000000..ec89dfe0b --- /dev/null +++ b/src/regress/sbin/pfctl/pfail35.in @@ -0,0 +1,6 @@ +# double linkshare spec + +altq on lo0 tbrsize 1824 bandwidth 10Mb hfsc queue { eins } +queue eins bandwidth 10% hfsc(default linkshare(20% 20 5%) linkshare 1Mb) + + diff --git a/src/regress/sbin/pfctl/pfail35.ok b/src/regress/sbin/pfctl/pfail35.ok new file mode 100644 index 000000000..087352c34 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail35.ok @@ -0,0 +1,2 @@ +stdin:4: linkshare already specified +altq on lo0 hfsc bandwidth 10Mb tbrsize 1824 queue { eins } diff --git a/src/regress/sbin/pfctl/pfail36.in b/src/regress/sbin/pfctl/pfail36.in new file mode 100644 index 000000000..8d9fe4a25 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail36.in @@ -0,0 +1,6 @@ +# double upperlimit + +altq on lo0 tbrsize 1824 bandwidth 10Mb hfsc queue { eins } +queue eins bandwidth 10% hfsc(default upperlimit(20% 20 5%) upperlimit 1Mb) + + diff --git a/src/regress/sbin/pfctl/pfail36.ok b/src/regress/sbin/pfctl/pfail36.ok new file mode 100644 index 000000000..3995521ab --- /dev/null +++ b/src/regress/sbin/pfctl/pfail36.ok @@ -0,0 +1,2 @@ +stdin:4: upperlimit already specified +altq on lo0 hfsc bandwidth 10Mb tbrsize 1824 queue { eins } diff --git a/src/regress/sbin/pfctl/pfail37.in b/src/regress/sbin/pfctl/pfail37.in new file mode 100644 index 000000000..f2e375ea2 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail37.in @@ -0,0 +1 @@ +block in tag thistagismuchtoooooooloooooooongthistagismuchtoooooooloooooooong diff --git a/src/regress/sbin/pfctl/pfail37.ok b/src/regress/sbin/pfctl/pfail37.ok new file mode 100644 index 000000000..d3e7c52a8 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail37.ok @@ -0,0 +1 @@ +stdin:1: tag too long, max 63 chars diff --git a/src/regress/sbin/pfctl/pfail38.in b/src/regress/sbin/pfctl/pfail38.in new file mode 100644 index 000000000..1b71e9789 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail38.in @@ -0,0 +1,2 @@ +match out on lo0 tag thistagisfaaaaaartooooolooooooooongthistagisfaaaaaartooooolooooooooong nat-to 127.0.0.1 +match in on lo0 tag thistagisfaaaaaartooooolooooooooongthistagisfaaaaaartooooolooooooooong rdr-to 127.0.0.1 diff --git a/src/regress/sbin/pfctl/pfail38.ok b/src/regress/sbin/pfctl/pfail38.ok new file mode 100644 index 000000000..ca7448f20 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail38.ok @@ -0,0 +1,2 @@ +stdin:1: tag too long, max 63 chars +stdin:2: tag too long, max 63 chars diff --git a/src/regress/sbin/pfctl/pfail39.in b/src/regress/sbin/pfctl/pfail39.in new file mode 100644 index 000000000..c2cef9731 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail39.in @@ -0,0 +1,3 @@ +match on lo0 from 192.168.1.1 to any \ +tag faaaaaaaaaaaartoooooooooloooooooooongfaaaaaaaaaaaartoooooooooloooooooooong binat-to 10.0.0.1 + diff --git a/src/regress/sbin/pfctl/pfail39.ok b/src/regress/sbin/pfctl/pfail39.ok new file mode 100644 index 000000000..0678d7b8c --- /dev/null +++ b/src/regress/sbin/pfctl/pfail39.ok @@ -0,0 +1 @@ +stdin:2: tag too long, max 63 chars diff --git a/src/regress/sbin/pfctl/pfail4.in b/src/regress/sbin/pfctl/pfail4.in new file mode 100644 index 000000000..05dcb593b --- /dev/null +++ b/src/regress/sbin/pfctl/pfail4.in @@ -0,0 +1,3 @@ +# looks a bit strange but is valid now +# block return-icmp6 in inet proto icmp all +block in return-icmp6 in inet proto icmp all \ No newline at end of file diff --git a/src/regress/sbin/pfctl/pfail4.ok b/src/regress/sbin/pfctl/pfail4.ok new file mode 100644 index 000000000..626816dca --- /dev/null +++ b/src/regress/sbin/pfctl/pfail4.ok @@ -0,0 +1 @@ +stdin:3: syntax error diff --git a/src/regress/sbin/pfctl/pfail40.in b/src/regress/sbin/pfctl/pfail40.in new file mode 100644 index 000000000..7b1008f92 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail40.in @@ -0,0 +1,4 @@ +# totally invalid netmasks +pass in from 10.0.0.0/161 +pass in from 2000::/161 + diff --git a/src/regress/sbin/pfctl/pfail40.ok b/src/regress/sbin/pfctl/pfail40.ok new file mode 100644 index 000000000..361fa25a1 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail40.ok @@ -0,0 +1,4 @@ +invalid netmask '/161' +stdin:2: could not parse host specification +invalid netmask '/161' +stdin:3: could not parse host specification diff --git a/src/regress/sbin/pfctl/pfail41.in b/src/regress/sbin/pfctl/pfail41.in new file mode 100644 index 000000000..11f85ab07 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail41.in @@ -0,0 +1,3 @@ +# we have to bail out on host() errors +match out on lo0 from any to 10/8 nat-to 10.0.0.0.1 + diff --git a/src/regress/sbin/pfctl/pfail41.ok b/src/regress/sbin/pfctl/pfail41.ok new file mode 100644 index 000000000..b5a39aaff --- /dev/null +++ b/src/regress/sbin/pfctl/pfail41.ok @@ -0,0 +1,2 @@ +no IP address found for 10.0.0.0.1 +stdin:2: could not parse host specification diff --git a/src/regress/sbin/pfctl/pfail42.in b/src/regress/sbin/pfctl/pfail42.in new file mode 100644 index 000000000..1f1d1f79c --- /dev/null +++ b/src/regress/sbin/pfctl/pfail42.in @@ -0,0 +1,3 @@ +# invalid netmask on v4 address + +pass in from 10.0.0.0/64 diff --git a/src/regress/sbin/pfctl/pfail42.ok b/src/regress/sbin/pfctl/pfail42.ok new file mode 100644 index 000000000..9d3c5c90d --- /dev/null +++ b/src/regress/sbin/pfctl/pfail42.ok @@ -0,0 +1,3 @@ +netmask 64 invalid for IPv4 address +stdin:3: skipping rule due to errors +stdin:3: rule expands to no valid combination diff --git a/src/regress/sbin/pfctl/pfail43.in b/src/regress/sbin/pfctl/pfail43.in new file mode 100644 index 000000000..8f5b73df2 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail43.in @@ -0,0 +1,7 @@ +# illegal table definitions +table file "/does/not/exists" +table const { } +table { (lo0) } +table persist file "/dev/null" { ::1 no-route } +table { 1.1.1.1.1 } +table { 1.1.1.1.1 1.1.1.1.2 } diff --git a/src/regress/sbin/pfctl/pfail43.ok b/src/regress/sbin/pfctl/pfail43.ok new file mode 100644 index 000000000..dc3b1b0ea --- /dev/null +++ b/src/regress/sbin/pfctl/pfail43.ok @@ -0,0 +1,8 @@ +stdin:2: cannot load "/does/not/exists": No such file or directory +stdin:3: tables cannot contain tables +stdin:4: dynamic addresses are not permitted inside tables +stdin:5: "no-route" is not permitted inside tables +no IP address found for 1.1.1.1.1 +stdin:6: could not parse host specification +no IP address found for 1.1.1.1.1 +stdin:7: could not parse host specification diff --git a/src/regress/sbin/pfctl/pfail44.in b/src/regress/sbin/pfctl/pfail44.in new file mode 100644 index 000000000..5a31098e0 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail44.in @@ -0,0 +1,8 @@ +# invalid CBQ priority + +ext_if = lo0 + +altq on $ext_if bandwidth 512Kb tbrsize 33224 cbq queue { q_ext_std } +queue q_ext_std priority 9 cbq(default) + +pass in all diff --git a/src/regress/sbin/pfctl/pfail44.ok b/src/regress/sbin/pfctl/pfail44.ok new file mode 100644 index 000000000..895152de3 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail44.ok @@ -0,0 +1,5 @@ +pfctl: priority out of range: max 7 +stdin:6: errors in queue definition +ext_if = "lo0" +altq on lo0 cbq bandwidth 512Kb tbrsize 33224 queue { q_ext_std } +queue root_lo0 priority 0 cbq( wrr root ) diff --git a/src/regress/sbin/pfctl/pfail45.in b/src/regress/sbin/pfctl/pfail45.in new file mode 100644 index 000000000..54857dc94 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail45.in @@ -0,0 +1,6 @@ +# invalid PRIQ priority + +ext_if = lo0 + +altq on $ext_if bandwidth 512Kb tbrsize 33224 priq queue { q_ext_std } +queue q_ext_std priority 16 priq(default) diff --git a/src/regress/sbin/pfctl/pfail45.ok b/src/regress/sbin/pfctl/pfail45.ok new file mode 100644 index 000000000..fadee8fde --- /dev/null +++ b/src/regress/sbin/pfctl/pfail45.ok @@ -0,0 +1,5 @@ +pfctl: priority out of range: max 15 +stdin:6: errors in queue definition +ext_if = "lo0" +altq on lo0 priq bandwidth 512Kb tbrsize 33224 queue { q_ext_std } +queue priority 0 diff --git a/src/regress/sbin/pfctl/pfail46.in b/src/regress/sbin/pfctl/pfail46.in new file mode 100644 index 000000000..13e31f6a1 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail46.in @@ -0,0 +1,5 @@ +# self as child +# how one can be stupid enough to specify this in the first place is beyond me + +altq on lo0 bandwidth 512Kb tbrsize 33224 cbq queue { i_am_braindead } +queue i_am_braindead cbq(default) { i_am_braindead } diff --git a/src/regress/sbin/pfctl/pfail46.ok b/src/regress/sbin/pfctl/pfail46.ok new file mode 100644 index 000000000..38f406910 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail46.ok @@ -0,0 +1,4 @@ +stdin:5: queue cannot have itself as child +stdin:5: errors in queue definition +altq on lo0 cbq bandwidth 512Kb tbrsize 33224 queue { i_am_braindead } +queue i_am_braindead cbq( default ) { i_am_braindead } diff --git a/src/regress/sbin/pfctl/pfail47.in b/src/regress/sbin/pfctl/pfail47.in new file mode 100644 index 000000000..2d1c69229 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail47.in @@ -0,0 +1,2 @@ +# set hostid to 0 +set hostid 0 diff --git a/src/regress/sbin/pfctl/pfail47.ok b/src/regress/sbin/pfctl/pfail47.ok new file mode 100644 index 000000000..47d0368d1 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail47.ok @@ -0,0 +1 @@ +stdin:2: hostid must be non-zero diff --git a/src/regress/sbin/pfctl/pfail48.in b/src/regress/sbin/pfctl/pfail48.in new file mode 100644 index 000000000..aee9f9b8b --- /dev/null +++ b/src/regress/sbin/pfctl/pfail48.in @@ -0,0 +1,2 @@ +pass in proto tcp from any to any port 123 \ + keep state (source-track global, max-src-nodes 1000) diff --git a/src/regress/sbin/pfctl/pfail48.ok b/src/regress/sbin/pfctl/pfail48.ok new file mode 100644 index 000000000..280eafe02 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail48.ok @@ -0,0 +1 @@ +stdin:2: 'max-src-nodes' is incompatible with 'source-track global' diff --git a/src/regress/sbin/pfctl/pfail49.in b/src/regress/sbin/pfctl/pfail49.in new file mode 100644 index 000000000..0dc18914a --- /dev/null +++ b/src/regress/sbin/pfctl/pfail49.in @@ -0,0 +1,10 @@ +# dynamic interfaces need not exist at load-time, but names must start +# with a letter. catches common macro typo cases of ($ext_ip) vs. ($ext_if) + +match out on lo0 from any to any nat-to (lo0) +match out on lo0 from any to any nat-to (lo0:0) +match out on lo0 from any to any nat-to (nonexistent0) +match out on lo0 from any to any nat-to (nonexistent0:0) +match out on lo0 from any to any nat-to (10.1.2.3) +match out on lo0 from any to any nat-to (10.1.2.3:0) + diff --git a/src/regress/sbin/pfctl/pfail49.ok b/src/regress/sbin/pfctl/pfail49.ok new file mode 100644 index 000000000..b8f291761 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail49.ok @@ -0,0 +1,2 @@ +stdin:8: invalid interface name '10.1.2.3' +stdin:9: invalid interface name '10.1.2.3:0' diff --git a/src/regress/sbin/pfctl/pfail5.in b/src/regress/sbin/pfctl/pfail5.in new file mode 100644 index 000000000..110d189c0 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail5.in @@ -0,0 +1 @@ +block return-icmp in inet proto ipv6-icmp all diff --git a/src/regress/sbin/pfctl/pfail5.ok b/src/regress/sbin/pfctl/pfail5.ok new file mode 100644 index 000000000..e38b02245 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail5.ok @@ -0,0 +1,3 @@ +stdin:1: proto icmp6 doesn't match address family inet +stdin:1: skipping rule due to errors +stdin:1: rule expands to no valid combination diff --git a/src/regress/sbin/pfctl/pfail50.in b/src/regress/sbin/pfctl/pfail50.in new file mode 100644 index 000000000..eb2488adc --- /dev/null +++ b/src/regress/sbin/pfctl/pfail50.in @@ -0,0 +1,22 @@ +# pfctl should catch flags that never match, ie, where any flags +# are tested that are always masked off. Test some more combinations +# while we're here. + +pass proto tcp from any to any flags F/F +pass proto tcp from any to any flags S/S +pass proto tcp from any to any flags R/R +pass proto tcp from any to any flags P/P +pass proto tcp from any to any flags A/A +pass proto tcp from any to any flags U/U +pass proto tcp from any to any flags E/E +pass proto tcp from any to any flags W/W +pass proto tcp from any to any flags FSRPAUEW/FSRPAUEW +pass proto tcp from any to any flags /FSRPAUEW +pass proto tcp from any to any flags S/SAFR +pass proto tcp from any to any flags /SA + +pass proto tcp from any to any flags S/ +pass proto tcp from any to any flags / +pass proto tcp from any to any flags S/AFR +pass proto tcp from any to any flags A/FSRPUEW +pass proto tcp from any to any flags FSRPAUEW/FSRPAUE diff --git a/src/regress/sbin/pfctl/pfail50.ok b/src/regress/sbin/pfctl/pfail50.ok new file mode 100644 index 000000000..931abbf26 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail50.ok @@ -0,0 +1,5 @@ +stdin:18: syntax error +stdin:19: syntax error +stdin:20: flags always false +stdin:21: flags always false +stdin:22: flags always false diff --git a/src/regress/sbin/pfctl/pfail52.in b/src/regress/sbin/pfctl/pfail52.in new file mode 100644 index 000000000..af4fc5da6 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail52.in @@ -0,0 +1,2 @@ +pass in log-all on lo0 all +block out log-all quick on lo0 all diff --git a/src/regress/sbin/pfctl/pfail52.ok b/src/regress/sbin/pfctl/pfail52.ok new file mode 100644 index 000000000..1c4256eec --- /dev/null +++ b/src/regress/sbin/pfctl/pfail52.ok @@ -0,0 +1,2 @@ +stdin:1: syntax error +stdin:2: syntax error diff --git a/src/regress/sbin/pfctl/pfail53.in b/src/regress/sbin/pfctl/pfail53.in new file mode 100644 index 000000000..076154692 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail53.in @@ -0,0 +1,20 @@ +set require-order no + +# queuenames cannot be numbers +altq on lo0 tbrsize 1824 bandwidth 10Mb priq queue 80 +queue 80 priority 2 priq(default) + +# tablenames cannot be numbers +table <444> { 1.2.3.4 } +pass in on lo1000000 proto tcp to 10.0.0.1 port 80 flags S/SA modulate state \ + (max-src-conn 100, max-src-conn-rate 10/5, overload <444> flush) + +# filename cannot be a number +# XXX not easy to test +#table file 666 + +# labels, tags, anchors cannot be numbers +pass in on lo0 from 1.2.3.4 keep state label 88 +pass in on lo0 from 1.2.3.4 keep state tag 57 +pass in on lo0 from 1.2.3.4 keep state tagged 57 +anchor 23 on lo0 diff --git a/src/regress/sbin/pfctl/pfail53.ok b/src/regress/sbin/pfctl/pfail53.ok new file mode 100644 index 000000000..4f106b21d --- /dev/null +++ b/src/regress/sbin/pfctl/pfail53.ok @@ -0,0 +1,6 @@ +stdin:4: syntax error +stdin:17: syntax error +stdin:18: syntax error +stdin:19: syntax error +set require-order no +table <444> { 1.2.3.4 } diff --git a/src/regress/sbin/pfctl/pfail6.in b/src/regress/sbin/pfctl/pfail6.in new file mode 100644 index 000000000..06f95d1c9 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail6.in @@ -0,0 +1 @@ +pass in inet proto icmp all icmp6-type 0 diff --git a/src/regress/sbin/pfctl/pfail6.ok b/src/regress/sbin/pfctl/pfail6.ok new file mode 100644 index 000000000..80ba75ee4 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail6.ok @@ -0,0 +1,3 @@ +stdin:1: icmp-type mismatch +stdin:1: skipping rule due to errors +stdin:1: rule expands to no valid combination diff --git a/src/regress/sbin/pfctl/pfail7.in b/src/regress/sbin/pfctl/pfail7.in new file mode 100644 index 000000000..ee6124985 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail7.in @@ -0,0 +1 @@ +pass in inet6 proto ipv6-icmp all icmp-type 0 diff --git a/src/regress/sbin/pfctl/pfail7.ok b/src/regress/sbin/pfctl/pfail7.ok new file mode 100644 index 000000000..80ba75ee4 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail7.ok @@ -0,0 +1,3 @@ +stdin:1: icmp-type mismatch +stdin:1: skipping rule due to errors +stdin:1: rule expands to no valid combination diff --git a/src/regress/sbin/pfctl/pfail8.in b/src/regress/sbin/pfctl/pfail8.in new file mode 100644 index 000000000..09a0bee2f --- /dev/null +++ b/src/regress/sbin/pfctl/pfail8.in @@ -0,0 +1,3 @@ +block in quick on tun1000000 from any to 192.168.1.0/24 dup-to (tun1000001 fec0::1) +block in quick on tun1000000 from any to fec0::1/128 dup-to (tun1000001 192.168.1.1) + diff --git a/src/regress/sbin/pfctl/pfail8.ok b/src/regress/sbin/pfctl/pfail8.ok new file mode 100644 index 000000000..b47d825a4 --- /dev/null +++ b/src/regress/sbin/pfctl/pfail8.ok @@ -0,0 +1,6 @@ +stdin:1: af mismatch in routing spec +stdin:1: skipping rule due to errors +stdin:1: rule expands to no valid combination +stdin:2: af mismatch in routing spec +stdin:2: skipping rule due to errors +stdin:2: rule expands to no valid combination diff --git a/src/regress/sbin/pfctl/pfaltq1.in b/src/regress/sbin/pfctl/pfaltq1.in new file mode 100644 index 000000000..80af37e31 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq1.in @@ -0,0 +1,5 @@ +#queue id assignment with priq + +altq on { lo0 tun1000000 } tbrsize 1824 priq bandwidth 10Mb queue { one two } +queue one priority 1 priq(default) +queue two priority 15 diff --git a/src/regress/sbin/pfctl/pfaltq1.ok b/src/regress/sbin/pfctl/pfaltq1.ok new file mode 100644 index 000000000..97d187b96 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq1.ok @@ -0,0 +1,8 @@ +queue one on lo0 priq( default ) + [ qid=1 ifname=lo0 ifbandwidth=10Mb ] +queue one on tun1000000 priq( default ) + [ qid=1 ifname=tun1000000 ifbandwidth=10Mb ] +queue two on lo0 priority 15 + [ qid=2 ifname=lo0 ifbandwidth=10Mb ] +queue two on tun1000000 priority 15 + [ qid=2 ifname=tun1000000 ifbandwidth=10Mb ] diff --git a/src/regress/sbin/pfctl/pfaltq10.in b/src/regress/sbin/pfctl/pfaltq10.in new file mode 100644 index 000000000..a5e432b29 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq10.in @@ -0,0 +1,9 @@ +#queue id assignment with hfsc: two same named queues on different interfaces +#must have the same qid + +altq on { lo0 tun1000000 } tbrsize 1824 hfsc bandwidth 10Mb queue { one two } +queue one bandwidth 10% hfsc(default) +queue two bandwidth 90% { three four} +queue three bandwidth 50% +queue four bandwidth 40% + diff --git a/src/regress/sbin/pfctl/pfaltq10.ok b/src/regress/sbin/pfctl/pfaltq10.ok new file mode 100644 index 000000000..06281e0cb --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq10.ok @@ -0,0 +1,20 @@ +queue root_lo0 on lo0 bandwidth 10Mb priority 0 {one, two} + [ qid=1 ifname=lo0 ifbandwidth=10Mb ] +queue one on lo0 bandwidth 1Mb hfsc( default ) + [ qid=3 ifname=lo0 ifbandwidth=10Mb ] +queue two on lo0 bandwidth 9Mb {three, four} + [ qid=4 ifname=lo0 ifbandwidth=10Mb ] +queue three on lo0 bandwidth 4.50Mb + [ qid=5 ifname=lo0 ifbandwidth=10Mb ] +queue four on lo0 bandwidth 3.60Mb + [ qid=6 ifname=lo0 ifbandwidth=10Mb ] +queue root_tun1000000 on tun1000000 bandwidth 10Mb priority 0 {one, two} + [ qid=2 ifname=tun1000000 ifbandwidth=10Mb ] +queue one on tun1000000 bandwidth 1Mb hfsc( default ) + [ qid=3 ifname=tun1000000 ifbandwidth=10Mb ] +queue two on tun1000000 bandwidth 9Mb {three, four} + [ qid=4 ifname=tun1000000 ifbandwidth=10Mb ] +queue three on tun1000000 bandwidth 4.50Mb + [ qid=5 ifname=tun1000000 ifbandwidth=10Mb ] +queue four on tun1000000 bandwidth 3.60Mb + [ qid=6 ifname=tun1000000 ifbandwidth=10Mb ] diff --git a/src/regress/sbin/pfctl/pfaltq11.in b/src/regress/sbin/pfctl/pfaltq11.in new file mode 100644 index 000000000..0e1551921 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq11.in @@ -0,0 +1,15 @@ +# more complicated case to provoke queue id assignment errors: +# -two same named queues must have same qid on all interfaces +# -two differently named queues must not share a qid, even on different ifs + +altq on lo0 tbrsize 1824 bandwidth 10Mb hfsc queue { eins zwei drei } +altq on tun1000000 tbrsize 1824 bandwidth 33600b hfsc queue { vier zwei fuenf } +queue eins bandwidth 10% hfsc(default) +queue zwei bandwidth 80% { sub2 sub3 } +queue sub2 bandwidth 50% +queue sub3 bandwidth 50% +queue drei bandwidth 10% subseven +queue vier bandwidth 10% hfsc(default) +queue fuenf bandwidth 5% subseven +queue subseven bandwidth 90% + diff --git a/src/regress/sbin/pfctl/pfaltq11.ok b/src/regress/sbin/pfctl/pfaltq11.ok new file mode 100644 index 000000000..a133ca7e6 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq11.ok @@ -0,0 +1,28 @@ +queue root_lo0 on lo0 bandwidth 10Mb priority 0 {eins, zwei, drei} + [ qid=1 ifname=lo0 ifbandwidth=10Mb ] +queue eins on lo0 bandwidth 1Mb hfsc( default ) + [ qid=3 ifname=lo0 ifbandwidth=10Mb ] +queue zwei on lo0 bandwidth 8Mb {sub2, sub3} + [ qid=4 ifname=lo0 ifbandwidth=10Mb ] +queue sub2 on lo0 bandwidth 4Mb + [ qid=5 ifname=lo0 ifbandwidth=10Mb ] +queue sub3 on lo0 bandwidth 4Mb + [ qid=6 ifname=lo0 ifbandwidth=10Mb ] +queue drei on lo0 bandwidth 1Mb {subseven} + [ qid=7 ifname=lo0 ifbandwidth=10Mb ] +queue subseven on lo0 bandwidth 900Kb + [ qid=10 ifname=lo0 ifbandwidth=10Mb ] +queue root_tun1000000 on tun1000000 bandwidth 33.60Kb priority 0 {zwei, vier, fuenf} + [ qid=2 ifname=tun1000000 ifbandwidth=33.60Kb ] +queue zwei on tun1000000 bandwidth 26.88Kb {sub2, sub3} + [ qid=4 ifname=tun1000000 ifbandwidth=33.60Kb ] +queue sub2 on tun1000000 bandwidth 13.40Kb + [ qid=5 ifname=tun1000000 ifbandwidth=33.60Kb ] +queue sub3 on tun1000000 bandwidth 13.40Kb + [ qid=6 ifname=tun1000000 ifbandwidth=33.60Kb ] +queue vier on tun1000000 bandwidth 3.36Kb hfsc( default ) + [ qid=8 ifname=tun1000000 ifbandwidth=33.60Kb ] +queue fuenf on tun1000000 bandwidth 1.68Kb {subseven} + [ qid=9 ifname=tun1000000 ifbandwidth=33.60Kb ] +queue subseven on tun1000000 bandwidth 1.44Kb + [ qid=10 ifname=tun1000000 ifbandwidth=33.60Kb ] diff --git a/src/regress/sbin/pfctl/pfaltq12.in b/src/regress/sbin/pfctl/pfaltq12.in new file mode 100644 index 000000000..900d80aac --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq12.in @@ -0,0 +1,9 @@ +# linkshare & upperlimit service curves + +altq on lo0 tbrsize 1824 bandwidth 10Mb hfsc queue { eins zwei drei } +queue eins bandwidth 10% hfsc(default linkshare(20% 20 5%)) +queue zwei bandwidth 40% hfsc(linkshare 35% upperlimit 5Mb) +queue drei bandwidth 50% hfsc(linkshare(45% 20 40%) \ + upperlimit(65% 10 45%)) + + diff --git a/src/regress/sbin/pfctl/pfaltq12.ok b/src/regress/sbin/pfctl/pfaltq12.ok new file mode 100644 index 000000000..1c738de06 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq12.ok @@ -0,0 +1,8 @@ +queue root_lo0 on lo0 bandwidth 10Mb priority 0 {eins, zwei, drei} + [ qid=1 ifname=lo0 ifbandwidth=10Mb ] +queue eins on lo0 bandwidth 1Mb hfsc( default linkshare(2Mb 20 500Kb) ) + [ qid=2 ifname=lo0 ifbandwidth=10Mb ] +queue zwei on lo0 bandwidth 4Mb hfsc( linkshare 3.50Mb upperlimit 5Mb ) + [ qid=3 ifname=lo0 ifbandwidth=10Mb ] +queue drei on lo0 bandwidth 5Mb hfsc( linkshare(4.50Mb 20 4Mb) upperlimit(6.50Mb 10 4.50Mb) ) + [ qid=4 ifname=lo0 ifbandwidth=10Mb ] diff --git a/src/regress/sbin/pfctl/pfaltq13.in b/src/regress/sbin/pfctl/pfaltq13.in new file mode 100644 index 000000000..8786294a1 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq13.in @@ -0,0 +1,9 @@ +# realtime service curve + +altq on lo0 tbrsize 1824 bandwidth 10Mb hfsc queue { eins zwei drei } +queue eins bandwidth 10% hfsc(default realtime(20% 20 5%)) +queue zwei bandwidth 40% hfsc(linkshare 35% realtime 0.5Mb) +queue drei bandwidth 50% hfsc(realtime(55% 20 40%) \ + upperlimit(65% 10 45%)) + + diff --git a/src/regress/sbin/pfctl/pfaltq13.ok b/src/regress/sbin/pfctl/pfaltq13.ok new file mode 100644 index 000000000..f09664da5 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq13.ok @@ -0,0 +1,8 @@ +queue root_lo0 on lo0 bandwidth 10Mb priority 0 {eins, zwei, drei} + [ qid=1 ifname=lo0 ifbandwidth=10Mb ] +queue eins on lo0 bandwidth 1Mb hfsc( default realtime(2Mb 20 500Kb) ) + [ qid=2 ifname=lo0 ifbandwidth=10Mb ] +queue zwei on lo0 bandwidth 4Mb hfsc( realtime 500Kb linkshare 3.50Mb ) + [ qid=3 ifname=lo0 ifbandwidth=10Mb ] +queue drei on lo0 bandwidth 5Mb hfsc( realtime(5.50Mb 20 4Mb) upperlimit(6.50Mb 10 4.50Mb) ) + [ qid=4 ifname=lo0 ifbandwidth=10Mb ] diff --git a/src/regress/sbin/pfctl/pfaltq14.in b/src/regress/sbin/pfctl/pfaltq14.in new file mode 100644 index 000000000..403c32c73 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq14.in @@ -0,0 +1,7 @@ +# try to provoke the print function for linkshare to omit printing the likshare +# service curve because m2 = bandwidth, the default + +altq on lo0 tbrsize 1824 bandwidth 10Mb hfsc queue eins +queue eins bandwidth 10% hfsc(default linkshare(15% 20 10%)) + + diff --git a/src/regress/sbin/pfctl/pfaltq14.ok b/src/regress/sbin/pfctl/pfaltq14.ok new file mode 100644 index 000000000..72d1200ce --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq14.ok @@ -0,0 +1,4 @@ +queue root_lo0 on lo0 bandwidth 10Mb priority 0 {eins} + [ qid=1 ifname=lo0 ifbandwidth=10Mb ] +queue eins on lo0 bandwidth 1Mb hfsc( default linkshare(1.50Mb 20 1Mb) ) + [ qid=2 ifname=lo0 ifbandwidth=10Mb ] diff --git a/src/regress/sbin/pfctl/pfaltq2.in b/src/regress/sbin/pfctl/pfaltq2.in new file mode 100644 index 000000000..7fa512eaa --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq2.in @@ -0,0 +1,9 @@ +#queue id assignment with cbq: two same named queues on different interfaces +#must have the same qid + +altq on { lo0 tun1000000 } tbrsize 1824 cbq bandwidth 10Mb queue { one two } +queue one bandwidth 10% cbq(default) +queue two bandwidth 90% { three four} +queue three bandwidth 50% +queue four bandwidth 40% + diff --git a/src/regress/sbin/pfctl/pfaltq2.ok b/src/regress/sbin/pfctl/pfaltq2.ok new file mode 100644 index 000000000..bd3407734 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq2.ok @@ -0,0 +1,20 @@ +queue root_lo0 on lo0 bandwidth 10Mb priority 0 cbq( wrr root ) {one, two} + [ qid=1 ifname=lo0 ifbandwidth=10Mb ] +queue one on lo0 bandwidth 1Mb cbq( default ) + [ qid=3 ifname=lo0 ifbandwidth=10Mb ] +queue two on lo0 bandwidth 9Mb {three, four} + [ qid=4 ifname=lo0 ifbandwidth=10Mb ] +queue three on lo0 bandwidth 4.50Mb + [ qid=5 ifname=lo0 ifbandwidth=10Mb ] +queue four on lo0 bandwidth 3.60Mb + [ qid=6 ifname=lo0 ifbandwidth=10Mb ] +queue root_tun1000000 on tun1000000 bandwidth 10Mb priority 0 cbq( wrr root ) {one, two} + [ qid=2 ifname=tun1000000 ifbandwidth=10Mb ] +queue one on tun1000000 bandwidth 1Mb cbq( default ) + [ qid=3 ifname=tun1000000 ifbandwidth=10Mb ] +queue two on tun1000000 bandwidth 9Mb {three, four} + [ qid=4 ifname=tun1000000 ifbandwidth=10Mb ] +queue three on tun1000000 bandwidth 4.50Mb + [ qid=5 ifname=tun1000000 ifbandwidth=10Mb ] +queue four on tun1000000 bandwidth 3.60Mb + [ qid=6 ifname=tun1000000 ifbandwidth=10Mb ] diff --git a/src/regress/sbin/pfctl/pfaltq3.in b/src/regress/sbin/pfctl/pfaltq3.in new file mode 100644 index 000000000..8558bdf88 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq3.in @@ -0,0 +1,15 @@ +# more complicated case to provoke queue id assignment errors: +# -two same named queues must have same qid on all interfaces +# -two differently named queues must not share a qid, even on different ifs + +altq on lo0 tbrsize 1824 bandwidth 10Mb cbq queue { eins zwei drei } +altq on tun1000000 tbrsize 1824 bandwidth 128000b cbq queue { vier zwei fuenf } +queue eins bandwidth 10% cbq(default) +queue zwei bandwidth 60% { sub2 sub3 } +queue sub2 bandwidth 50% +queue sub3 bandwidth 50% +queue drei bandwidth 30% subseven +queue vier bandwidth 25% cbq(default) +queue fuenf bandwidth 15% subseven +queue subseven bandwidth 90% + diff --git a/src/regress/sbin/pfctl/pfaltq3.ok b/src/regress/sbin/pfctl/pfaltq3.ok new file mode 100644 index 000000000..5733c0e7d --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq3.ok @@ -0,0 +1,28 @@ +queue root_lo0 on lo0 bandwidth 10Mb priority 0 cbq( wrr root ) {eins, zwei, drei} + [ qid=1 ifname=lo0 ifbandwidth=10Mb ] +queue eins on lo0 bandwidth 1Mb cbq( default ) + [ qid=3 ifname=lo0 ifbandwidth=10Mb ] +queue zwei on lo0 bandwidth 6Mb {sub2, sub3} + [ qid=4 ifname=lo0 ifbandwidth=10Mb ] +queue sub2 on lo0 bandwidth 3Mb + [ qid=5 ifname=lo0 ifbandwidth=10Mb ] +queue sub3 on lo0 bandwidth 3Mb + [ qid=6 ifname=lo0 ifbandwidth=10Mb ] +queue drei on lo0 bandwidth 3Mb {subseven} + [ qid=7 ifname=lo0 ifbandwidth=10Mb ] +queue subseven on lo0 bandwidth 2.70Mb + [ qid=10 ifname=lo0 ifbandwidth=10Mb ] +queue root_tun1000000 on tun1000000 bandwidth 128Kb priority 0 cbq( wrr root ) {zwei, vier, fuenf} + [ qid=2 ifname=tun1000000 ifbandwidth=128Kb ] +queue zwei on tun1000000 bandwidth 76.80Kb {sub2, sub3} + [ qid=4 ifname=tun1000000 ifbandwidth=128Kb ] +queue sub2 on tun1000000 bandwidth 38.40Kb + [ qid=5 ifname=tun1000000 ifbandwidth=128Kb ] +queue sub3 on tun1000000 bandwidth 38.40Kb + [ qid=6 ifname=tun1000000 ifbandwidth=128Kb ] +queue vier on tun1000000 bandwidth 32Kb cbq( default ) + [ qid=8 ifname=tun1000000 ifbandwidth=128Kb ] +queue fuenf on tun1000000 bandwidth 19.20Kb {subseven} + [ qid=9 ifname=tun1000000 ifbandwidth=128Kb ] +queue subseven on tun1000000 bandwidth 17.28Kb + [ qid=10 ifname=tun1000000 ifbandwidth=128Kb ] diff --git a/src/regress/sbin/pfctl/pfaltq4.in b/src/regress/sbin/pfctl/pfaltq4.in new file mode 100644 index 000000000..b9d3c47d4 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq4.in @@ -0,0 +1,7 @@ +# test two different named queues don't get the same qid on different interfaces + +altq on lo0 tbrsize 1824 bandwidth 10Mb cbq queue { bloody germans } +altq on tun1000000 tbrsize 1824 bandwidth 10Mb cbq queue { bloody toads } +queue bloody cbq(default) bandwidth 50% +queue germans bandwidth 50% +queue toads bandwidth 50% diff --git a/src/regress/sbin/pfctl/pfaltq4.ok b/src/regress/sbin/pfctl/pfaltq4.ok new file mode 100644 index 000000000..99ea8142c --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq4.ok @@ -0,0 +1,12 @@ +queue root_lo0 on lo0 bandwidth 10Mb priority 0 cbq( wrr root ) {bloody, germans} + [ qid=1 ifname=lo0 ifbandwidth=10Mb ] +queue bloody on lo0 bandwidth 5Mb cbq( default ) + [ qid=3 ifname=lo0 ifbandwidth=10Mb ] +queue germans on lo0 bandwidth 5Mb + [ qid=4 ifname=lo0 ifbandwidth=10Mb ] +queue root_tun1000000 on tun1000000 bandwidth 10Mb priority 0 cbq( wrr root ) {bloody, toads} + [ qid=2 ifname=tun1000000 ifbandwidth=10Mb ] +queue bloody on tun1000000 bandwidth 5Mb cbq( default ) + [ qid=3 ifname=tun1000000 ifbandwidth=10Mb ] +queue toads on tun1000000 bandwidth 5Mb + [ qid=5 ifname=tun1000000 ifbandwidth=10Mb ] diff --git a/src/regress/sbin/pfctl/pfaltq5.in b/src/regress/sbin/pfctl/pfaltq5.in new file mode 100644 index 000000000..553d5aef4 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq5.in @@ -0,0 +1,10 @@ +# verify the queue IDs on the rules are set correctly + +altq on lo0 tbrsize 1824 priq bandwidth 10Mb queue { praise wim hi } +queue praise priq(default) +queue wim priority 15 +queue hi priority 7 +pass in on lo0 proto tcp to port 22 keep state queue(hi wim) +pass in proto tcp to port 22 keep state queue(hi wim) +pass in proto tcp to port 22 keep state queue wim +pass in proto tcp to port 25 keep state queue praise diff --git a/src/regress/sbin/pfctl/pfaltq5.ok b/src/regress/sbin/pfctl/pfaltq5.ok new file mode 100644 index 000000000..b85dd5182 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq5.ok @@ -0,0 +1,18 @@ +queue praise on lo0 priq( default ) + [ qid=1 ifname=lo0 ifbandwidth=10Mb ] +queue wim on lo0 priority 15 + [ qid=2 ifname=lo0 ifbandwidth=10Mb ] +queue hi on lo0 priority 7 + [ qid=3 ifname=lo0 ifbandwidth=10Mb ] +@0 pass in on lo0 proto tcp from any to any port = ssh flags S/SA keep state queue(hi, wim) + [ Skip steps: d=end f=end p=end sa=end sp=end da=end dp=3 ] + [ queue: qname=hi qid=3 pqname=wim pqid=2 ] +@1 pass in proto tcp from any to any port = ssh flags S/SA keep state queue(hi, wim) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=3 ] + [ queue: qname=hi qid=3 pqname=wim pqid=2 ] +@2 pass in proto tcp from any to any port = ssh flags S/SA keep state queue wim + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname=wim qid=2 pqname= pqid=2 ] +@3 pass in proto tcp from any to any port = smtp flags S/SA keep state queue praise + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname=praise qid=1 pqname= pqid=1 ] diff --git a/src/regress/sbin/pfctl/pfaltq6.in b/src/regress/sbin/pfctl/pfaltq6.in new file mode 100644 index 000000000..db9b5c169 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq6.in @@ -0,0 +1,12 @@ +# verify the queue IDs on the rules are set correctly + +altq on lo0 tbrsize 1824 cbq bandwidth 10Mb queue { wim, the minibar is empty } +queue wim bandwidth 10% cbq(default) +queue the bandwidth 10% +queue minibar bandwidth 30% priority 7 +queue is bandwidth 10% +queue empty bandwidth 40% +pass in on lo0 proto tcp to port 22 keep state queue(the minibar) +pass in proto tcp to port 22 keep state queue(is empty) +pass in proto tcp to port 22 keep state queue the +pass in proto tcp to port 25 keep state queue wim diff --git a/src/regress/sbin/pfctl/pfaltq6.ok b/src/regress/sbin/pfctl/pfaltq6.ok new file mode 100644 index 000000000..e01782016 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq6.ok @@ -0,0 +1,24 @@ +queue root_lo0 on lo0 bandwidth 10Mb priority 0 cbq( wrr root ) {wim, the, minibar, is, empty} + [ qid=1 ifname=lo0 ifbandwidth=10Mb ] +queue wim on lo0 bandwidth 1Mb cbq( default ) + [ qid=2 ifname=lo0 ifbandwidth=10Mb ] +queue the on lo0 bandwidth 1Mb + [ qid=3 ifname=lo0 ifbandwidth=10Mb ] +queue minibar on lo0 bandwidth 3Mb priority 7 + [ qid=4 ifname=lo0 ifbandwidth=10Mb ] +queue is on lo0 bandwidth 1Mb + [ qid=5 ifname=lo0 ifbandwidth=10Mb ] +queue empty on lo0 bandwidth 4Mb + [ qid=6 ifname=lo0 ifbandwidth=10Mb ] +@0 pass in on lo0 proto tcp from any to any port = ssh flags S/SA keep state queue(the, minibar) + [ Skip steps: d=end f=end p=end sa=end sp=end da=end dp=3 ] + [ queue: qname=the qid=3 pqname=minibar pqid=4 ] +@1 pass in proto tcp from any to any port = ssh flags S/SA keep state queue(is, empty) + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=3 ] + [ queue: qname=is qid=5 pqname=empty pqid=6 ] +@2 pass in proto tcp from any to any port = ssh flags S/SA keep state queue the + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end ] + [ queue: qname=the qid=3 pqname= pqid=3 ] +@3 pass in proto tcp from any to any port = smtp flags S/SA keep state queue wim + [ Skip steps: i=end d=end f=end p=end sa=end sp=end da=end dp=end ] + [ queue: qname=wim qid=2 pqname= pqid=2 ] diff --git a/src/regress/sbin/pfctl/pfaltq7.in b/src/regress/sbin/pfctl/pfaltq7.in new file mode 100644 index 000000000..4cc69ac03 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq7.in @@ -0,0 +1,12 @@ +# more complicated case to provoke queue id assignment errors: +# -differently named queues have same priority, must get different qids +# goes back to the historical queue ID assignment algorithm with priq +# was: qid = priority + 1 + +altq on lo0 tbrsize 1824 bandwidth 10Mb priq queue eins +queue eins priority 2 priq(default) + +altq on tun1000000 tbrsize 1824 bandwidth 33600b priq queue zwei +queue zwei priority 2 priq(default) + + diff --git a/src/regress/sbin/pfctl/pfaltq7.ok b/src/regress/sbin/pfctl/pfaltq7.ok new file mode 100644 index 000000000..7bf2c741f --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq7.ok @@ -0,0 +1,4 @@ +queue eins on lo0 priority 2 priq( default ) + [ qid=1 ifname=lo0 ifbandwidth=10Mb ] +queue zwei on tun1000000 priority 2 priq( default ) + [ qid=2 ifname=tun1000000 ifbandwidth=33.60Kb ] diff --git a/src/regress/sbin/pfctl/pfaltq8.in b/src/regress/sbin/pfctl/pfaltq8.in new file mode 100644 index 000000000..93e707e89 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq8.in @@ -0,0 +1,7 @@ +# queuespec limited to interface(s) + +altq on { tun1000000 tun1000001 } priq bandwidth 10Mb queue { one two } +queue one priority 1 priq(default) +queue two on tun1000000 priority 15 +queue two on tun1000001 priority 0 + diff --git a/src/regress/sbin/pfctl/pfaltq8.ok b/src/regress/sbin/pfctl/pfaltq8.ok new file mode 100644 index 000000000..808bfb317 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq8.ok @@ -0,0 +1,8 @@ +queue one on tun1000000 priq( default ) + [ qid=1 ifname=tun1000000 ifbandwidth=10Mb ] +queue one on tun1000001 priq( default ) + [ qid=1 ifname=tun1000001 ifbandwidth=10Mb ] +queue two on tun1000000 priority 15 + [ qid=2 ifname=tun1000000 ifbandwidth=10Mb ] +queue two on tun1000001 priority 0 + [ qid=2 ifname=tun1000001 ifbandwidth=10Mb ] diff --git a/src/regress/sbin/pfctl/pfaltq9.in b/src/regress/sbin/pfctl/pfaltq9.in new file mode 100644 index 000000000..f9d15482c --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq9.in @@ -0,0 +1,8 @@ +# queuespec limited to interface(s): negation + +altq on { tun1000000 tun1000001 } priq bandwidth 10Mb queue { one two } +queue one priority 1 priq(default) +queue two on tun1000000 priority 15 +queue two on ! tun1000000 priority 0 + + diff --git a/src/regress/sbin/pfctl/pfaltq9.ok b/src/regress/sbin/pfctl/pfaltq9.ok new file mode 100644 index 000000000..808bfb317 --- /dev/null +++ b/src/regress/sbin/pfctl/pfaltq9.ok @@ -0,0 +1,8 @@ +queue one on tun1000000 priq( default ) + [ qid=1 ifname=tun1000000 ifbandwidth=10Mb ] +queue one on tun1000001 priq( default ) + [ qid=1 ifname=tun1000001 ifbandwidth=10Mb ] +queue two on tun1000000 priority 15 + [ qid=2 ifname=tun1000000 ifbandwidth=10Mb ] +queue two on tun1000001 priority 0 + [ qid=2 ifname=tun1000001 ifbandwidth=10Mb ] diff --git a/src/regress/sbin/pfctl/pfchksum1.in b/src/regress/sbin/pfctl/pfchksum1.in new file mode 100644 index 000000000..a6393ac60 --- /dev/null +++ b/src/regress/sbin/pfctl/pfchksum1.in @@ -0,0 +1,34 @@ +# test + +block out log on tun1000000 all +block in log on tun1000000 all + +block return-rst out log on tun1000000 proto tcp all +block return-rst in log on tun1000000 proto tcp all +block return-icmp out log on tun1000000 proto udp all +block return-icmp in log on tun1000000 proto udp all + +block out log quick on tun1000000 from ! 157.161.48.183 to any + +block in quick on tun1000000 from any to 255.255.255.255 + +block in log quick on tun1000000 from 10.0.0.0/8 to any +block in log quick on tun1000000 from 172.16.0.0/12 to any +block in quick log on tun1000000 from 192.168.0.0/16 to any +block in quick log on tun1000000 from 255.255.255.255/32 to any + +block in log quick from no-route to any + +pass out on tun1000000 inet proto icmp all icmp-type 8 code 0 keep state +pass in on tun1000000 inet proto icmp all icmp-type 8 code 0 keep state + +pass out on tun1000000 proto udp all keep state + +pass in on tun1000000 proto udp from any to any port = domain keep state + +pass out on tun1000000 proto tcp all flags any + +pass in on tun1000000 proto tcp from any to any port = ssh flags any +pass in on tun1000000 proto tcp from any to any port = smtp flags any +pass in on tun1000000 proto tcp from any to any port = domain flags any +pass in on tun1000000 proto tcp from any to any port = auth flags any diff --git a/src/regress/sbin/pfctl/pfchksum1.ok b/src/regress/sbin/pfctl/pfchksum1.ok new file mode 100644 index 000000000..17a71d550 --- /dev/null +++ b/src/regress/sbin/pfctl/pfchksum1.ok @@ -0,0 +1 @@ +Checksum: 0xc52f181a29e81c7d83300aac4e4003ce diff --git a/src/regress/sbin/pfctl/pfchksum2.in b/src/regress/sbin/pfctl/pfchksum2.in new file mode 100644 index 000000000..abcf30aa0 --- /dev/null +++ b/src/regress/sbin/pfctl/pfchksum2.in @@ -0,0 +1,34 @@ +# test + +block out log on tun1000000 all +block in log on tun1000000 all + +block return-rst out log on tun1000000 proto tcp all +block return-rst in log on tun1000000 proto tcp all +block return-icmp out log on tun1000000 proto udp all +block return-icmp in log on tun1000000 proto udp all + +block out log quick on tun1000000 from ! 157.161.48.183 to any + +block in quick on tun1000000 from any to 255.255.255.255 + +block in log quick on tun1000000 from 10.0.0.0/8 to any +block in log quick on tun1000000 from 172.16.0.0/16 to any +block in quick log on tun1000000 from 192.168.0.0/24 to any +block in quick log on tun1000000 from 255.255.255.255/32 to any + +block in log quick from no-route to any + +pass out on tun1000000 inet proto icmp all icmp-type 8 code 0 keep state +pass in on tun1000000 inet proto icmp all icmp-type 8 code 0 keep state + +pass out on tun1000000 proto udp all keep state + +pass in on tun1000000 proto udp from any to any port = domain keep state + +pass out on tun1000000 proto tcp all flags any + +pass in on tun1000000 proto tcp from any to any port = ssh flags any +pass in on tun1000000 proto tcp from any to any port = smtp flags any +pass in on tun1000000 proto tcp from any to any port = domain flags any +pass in on tun1000000 proto tcp from any to any port = auth flags any diff --git a/src/regress/sbin/pfctl/pfchksum2.ok b/src/regress/sbin/pfctl/pfchksum2.ok new file mode 100644 index 000000000..498ff823c --- /dev/null +++ b/src/regress/sbin/pfctl/pfchksum2.ok @@ -0,0 +1 @@ +Checksum: 0x15b59cf3b13fd42b8049553b80c0eb4e diff --git a/src/regress/sbin/pfctl/pfchksum3.in b/src/regress/sbin/pfctl/pfchksum3.in new file mode 100644 index 000000000..ec3e69975 --- /dev/null +++ b/src/regress/sbin/pfctl/pfchksum3.in @@ -0,0 +1,8 @@ +pass in all flags any no state +pass in from any to any flags any no state +pass in proto tcp from any port <= 1024 to any flags any no state label foo_bar +pass in proto tcp from any to any port = 25 flags any no state +pass in proto tcp from 10.0.0.0/8 port > 1024 to ! 10.1.2.3 port != 22 flags any no state +pass in proto igmp from 10.0.0.0/8 to 10.1.1.1 allow-opts no state +pass in proto tcp from { 1.2.3.4, 1.2.3.5 } to any flags any no state label \ +"$nr:$proto:$srcaddr:$srcport:$dstaddr:$dstport" diff --git a/src/regress/sbin/pfctl/pfchksum3.ok b/src/regress/sbin/pfctl/pfchksum3.ok new file mode 100644 index 000000000..0c3595ec9 --- /dev/null +++ b/src/regress/sbin/pfctl/pfchksum3.ok @@ -0,0 +1 @@ +Checksum: 0xd0ceaeecfbeb20f17a8eefbcb7260654 diff --git a/src/regress/sbin/pfctl/pfi1.in b/src/regress/sbin/pfctl/pfi1.in new file mode 100644 index 000000000..add61265f --- /dev/null +++ b/src/regress/sbin/pfctl/pfi1.in @@ -0,0 +1,10 @@ +lo +lo:network +lo:peer +lo:broadcast +lo/24 +lo:0 +lo:0:network +lo:0:peer +lo:0:broadcast +lo:0/24 diff --git a/src/regress/sbin/pfctl/pfi1.ok b/src/regress/sbin/pfctl/pfi1.ok new file mode 100644 index 000000000..22f238b3f --- /dev/null +++ b/src/regress/sbin/pfctl/pfi1.ok @@ -0,0 +1,20 @@ +lo: 127.0.0.1 ::1 fe80::1 +(lo): 127.0.0.1 ::1 fe80::1 +lo:network: 127.0.0.0/8 ::1 +(lo:network): 127.0.0.0/8 ::1 +lo:peer: +(lo:peer): +lo:broadcast: +(lo:broadcast): +lo/24: 127.0.0.0/24 ::/24 fe80::/24 +(lo)/24: 127.0.0.0/24 ::/24 fe80::/24 +lo:0: 127.0.0.1 ::1 +(lo:0): 127.0.0.1 ::1 +lo:0:network: 127.0.0.0/8 ::1 +(lo:0:network): 127.0.0.0/8 ::1 +lo:0:peer: +(lo:0:peer): +lo:0:broadcast: +(lo:0:broadcast): +lo:0/24: 127.0.0.0/24 ::/24 +(lo:0)/24: 127.0.0.0/24 ::/24 diff --git a/src/regress/sbin/pfctl/pfi2.in b/src/regress/sbin/pfctl/pfi2.in new file mode 100644 index 000000000..d0c016700 --- /dev/null +++ b/src/regress/sbin/pfctl/pfi2.in @@ -0,0 +1,12 @@ +-q +self +self:network +self:peer +self:broadcast +self/24 +self:0 +self:network:0 +self:peer:0 +self:broadcast:0 +self:0/24 + diff --git a/src/regress/sbin/pfctl/pfi2.ok b/src/regress/sbin/pfctl/pfi2.ok new file mode 100644 index 000000000..5f66db15f --- /dev/null +++ b/src/regress/sbin/pfctl/pfi2.ok @@ -0,0 +1,10 @@ +self and (self) match. +self:network and (self:network) match. +self:peer and (self:peer) match. +self:broadcast and (self:broadcast) match. +self/24 and (self)/24 match. +self:0 and (self:0) match. +self:network:0 and (self:network:0) match. +self:peer:0 and (self:peer:0) match. +self:broadcast:0 and (self:broadcast:0) match. +self:0/24 and (self:0)/24 match. diff --git a/src/regress/sbin/pfctl/pfi3.in b/src/regress/sbin/pfctl/pfi3.in new file mode 100644 index 000000000..2d7f7ef19 --- /dev/null +++ b/src/regress/sbin/pfctl/pfi3.in @@ -0,0 +1,11 @@ +tun100 +tun100:network +tun100:peer +tun100:broadcast +tun100/24 +tun100:0 +tun100:0:network +tun100:0:peer +tun100:0:broadcast +tun100:0/24 + diff --git a/src/regress/sbin/pfctl/pfi3.ok b/src/regress/sbin/pfctl/pfi3.ok new file mode 100644 index 000000000..41c2d3eb3 --- /dev/null +++ b/src/regress/sbin/pfctl/pfi3.ok @@ -0,0 +1,20 @@ +tun100: +(tun100): +tun100:network: +(tun100:network): +tun100:peer: +(tun100:peer): +tun100:broadcast: +(tun100:broadcast): +tun100/24: +(tun100)/24: +tun100:0: +(tun100:0): +tun100:0:network: +(tun100:0:network): +tun100:0:peer: +(tun100:0:peer): +tun100:0:broadcast: +(tun100:0:broadcast): +tun100:0/24: +(tun100:0)/24: diff --git a/src/regress/sbin/pfctl/pfopt1.in b/src/regress/sbin/pfctl/pfopt1.in new file mode 100644 index 000000000..8b75a8d1c --- /dev/null +++ b/src/regress/sbin/pfctl/pfopt1.in @@ -0,0 +1,2 @@ +extif="wi0" +block in on $extif all diff --git a/src/regress/sbin/pfctl/pfopt1.ok b/src/regress/sbin/pfctl/pfopt1.ok new file mode 100644 index 000000000..992df709e --- /dev/null +++ b/src/regress/sbin/pfctl/pfopt1.ok @@ -0,0 +1,2 @@ +extif = "wi0" +block drop in on lo0 all diff --git a/src/regress/sbin/pfctl/pfopt1.opts b/src/regress/sbin/pfctl/pfopt1.opts new file mode 100644 index 000000000..77202773d --- /dev/null +++ b/src/regress/sbin/pfctl/pfopt1.opts @@ -0,0 +1 @@ +-Dextif=lo0 diff --git a/src/regress/sbin/pfctl/pfopt2.in b/src/regress/sbin/pfctl/pfopt2.in new file mode 100644 index 000000000..c10ff6663 --- /dev/null +++ b/src/regress/sbin/pfctl/pfopt2.in @@ -0,0 +1,8 @@ +ext_if="lo0" + +set loginterface $ext_if +set timeout tcp.established 3600 +set limit states 100 +set optimization normal +set block-policy drop +set require-order yes diff --git a/src/regress/sbin/pfctl/pfopt2.ok b/src/regress/sbin/pfctl/pfopt2.ok new file mode 100644 index 000000000..9550e3c99 --- /dev/null +++ b/src/regress/sbin/pfctl/pfopt2.ok @@ -0,0 +1,7 @@ +ext_if = "lo0" +set loginterface lo0 +set timeout tcp.established 3600 +set limit states 100 +set optimization normal +set block-policy drop +set require-order yes diff --git a/src/regress/sbin/pfctl/pfopt2.opts b/src/regress/sbin/pfctl/pfopt2.opts new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/sbin/pfctl/pfopt3.in b/src/regress/sbin/pfctl/pfopt3.in new file mode 100644 index 000000000..b9552e401 --- /dev/null +++ b/src/regress/sbin/pfctl/pfopt3.in @@ -0,0 +1,7 @@ +ext_if="lo0" + +altq on $ext_if priq bandwidth 10Mb tbrsize 1824 \ + queue { pri-low pri-med pri-high } +queue pri-low priority 0 +queue pri-med priority 1 priq(default) +queue pri-high priority 2 diff --git a/src/regress/sbin/pfctl/pfopt3.ok b/src/regress/sbin/pfctl/pfopt3.ok new file mode 100644 index 000000000..6485717dc --- /dev/null +++ b/src/regress/sbin/pfctl/pfopt3.ok @@ -0,0 +1,5 @@ +ext_if = "lo0" +altq on lo0 priq bandwidth 10Mb tbrsize 1824 queue { pri-low pri-med pri-high } +queue pri-low priority 0 +queue pri-med priq( default ) +queue pri-high priority 2 diff --git a/src/regress/sbin/pfctl/pfopt3.opts b/src/regress/sbin/pfctl/pfopt3.opts new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/sbin/pfctl/pfopt6.in b/src/regress/sbin/pfctl/pfopt6.in new file mode 100644 index 000000000..22b002a7f --- /dev/null +++ b/src/regress/sbin/pfctl/pfopt6.in @@ -0,0 +1,28 @@ +anchor { # testing comments + anchor in { + pass quick + } + # silly nesting + anchor out { + anchor in { + anchor out { + anchor in { + anchor out { + anchor in { + anchor out { + anchor in { + pass + } + } + } + } + } + } + } + } + pass in on tun1000000 + anchor foo on tun1000000 { + pass + } +} # comment after closing brace + diff --git a/src/regress/sbin/pfctl/pfopt6.ok b/src/regress/sbin/pfctl/pfopt6.ok new file mode 100644 index 000000000..43720c1af --- /dev/null +++ b/src/regress/sbin/pfctl/pfopt6.ok @@ -0,0 +1,26 @@ +anchor all { + anchor in all { + pass quick all flags S/SA keep state + } + anchor out all { + anchor in all { + anchor out all { + anchor in all { + anchor out all { + anchor in all { + anchor out all { + anchor in all { + pass all flags S/SA keep state + } + } + } + } + } + } + } + } + pass in on tun1000000 all flags S/SA keep state + anchor "foo" on tun1000000 all { + pass all flags S/SA keep state + } +} diff --git a/src/regress/sbin/pfctl/pfopt6.opts b/src/regress/sbin/pfctl/pfopt6.opts new file mode 100644 index 000000000..1205cee6b --- /dev/null +++ b/src/regress/sbin/pfctl/pfopt6.opts @@ -0,0 +1 @@ +-a regress/regress diff --git a/src/regress/sbin/pfctl/pfr.addrs1 b/src/regress/sbin/pfctl/pfr.addrs1 new file mode 100644 index 000000000..f8659ea9f --- /dev/null +++ b/src/regress/sbin/pfctl/pfr.addrs1 @@ -0,0 +1,16 @@ +# address file regress tests + +# some unroutables +127.0.0.1 192.168/16 172.16/12 10/8 + +# some IPv6 addresses +::5 fe80::/16 2000::1 + +# interfaces +lo0 lo0/24 lo0:network + +# name resolution +localhost + +1.1.1.1 # comment may appear... +2.2.2.2 # after addresses too. diff --git a/src/regress/sbin/pfctl/pfr.addrs2 b/src/regress/sbin/pfctl/pfr.addrs2 new file mode 100644 index 000000000..ea529cdfa --- /dev/null +++ b/src/regress/sbin/pfctl/pfr.addrs2 @@ -0,0 +1,32 @@ +# a bunch of addresses (300) + +1.1.0.0 1.1.0.1 1.1.0.2 1.1.0.3 1.1.0.4 1.1.0.5 1.1.0.6 1.1.0.7 1.1.0.8 1.1.0.9 +1.1.1.0 1.1.1.1 1.1.1.2 1.1.1.3 1.1.1.4 1.1.1.5 1.1.1.6 1.1.1.7 1.1.1.8 1.1.1.9 +1.1.2.0 1.1.2.1 1.1.2.2 1.1.2.3 1.1.2.4 1.1.2.5 1.1.2.6 1.1.2.7 1.1.2.8 1.1.2.9 +1.1.3.0 1.1.3.1 1.1.3.2 1.1.3.3 1.1.3.4 1.1.3.5 1.1.3.6 1.1.3.7 1.1.3.8 1.1.3.9 +1.1.4.0 1.1.4.1 1.1.4.2 1.1.4.3 1.1.4.4 1.1.4.5 1.1.4.6 1.1.4.7 1.1.4.8 1.1.4.9 +1.1.5.0 1.1.5.1 1.1.5.2 1.1.5.3 1.1.5.4 1.1.5.5 1.1.5.6 1.1.5.7 1.1.5.8 1.1.5.9 +1.1.6.0 1.1.6.1 1.1.6.2 1.1.6.3 1.1.6.4 1.1.6.5 1.1.6.6 1.1.6.7 1.1.6.8 1.1.6.9 +1.1.7.0 1.1.7.1 1.1.7.2 1.1.7.3 1.1.7.4 1.1.7.5 1.1.7.6 1.1.7.7 1.1.7.8 1.1.7.9 +1.1.8.0 1.1.8.1 1.1.8.2 1.1.8.3 1.1.8.4 1.1.8.5 1.1.8.6 1.1.8.7 1.1.8.8 1.1.8.9 +1.1.9.0 1.1.9.1 1.1.9.2 1.1.9.3 1.1.9.4 1.1.9.5 1.1.9.6 1.1.9.7 1.1.9.8 1.1.9.9 +1.2.0.0 1.2.0.1 1.2.0.2 1.2.0.3 1.2.0.4 1.2.0.5 1.2.0.6 1.2.0.7 1.2.0.8 1.2.0.9 +1.2.1.0 1.2.1.1 1.2.1.2 1.2.1.3 1.2.1.4 1.2.1.5 1.2.1.6 1.2.1.7 1.2.1.8 1.2.1.9 +1.2.2.0 1.2.2.1 1.2.2.2 1.2.2.3 1.2.2.4 1.2.2.5 1.2.2.6 1.2.2.7 1.2.2.8 1.2.2.9 +1.2.3.0 1.2.3.1 1.2.3.2 1.2.3.3 1.2.3.4 1.2.3.5 1.2.3.6 1.2.3.7 1.2.3.8 1.2.3.9 +1.2.4.0 1.2.4.1 1.2.4.2 1.2.4.3 1.2.4.4 1.2.4.5 1.2.4.6 1.2.4.7 1.2.4.8 1.2.4.9 +1.2.5.0 1.2.5.1 1.2.5.2 1.2.5.3 1.2.5.4 1.2.5.5 1.2.5.6 1.2.5.7 1.2.5.8 1.2.5.9 +1.2.6.0 1.2.6.1 1.2.6.2 1.2.6.3 1.2.6.4 1.2.6.5 1.2.6.6 1.2.6.7 1.2.6.8 1.2.6.9 +1.2.7.0 1.2.7.1 1.2.7.2 1.2.7.3 1.2.7.4 1.2.7.5 1.2.7.6 1.2.7.7 1.2.7.8 1.2.7.9 +1.2.8.0 1.2.8.1 1.2.8.2 1.2.8.3 1.2.8.4 1.2.8.5 1.2.8.6 1.2.8.7 1.2.8.8 1.2.8.9 +1.2.9.0 1.2.9.1 1.2.9.2 1.2.9.3 1.2.9.4 1.2.9.5 1.2.9.6 1.2.9.7 1.2.9.8 1.2.9.9 +1.3.0.0 1.3.0.1 1.3.0.2 1.3.0.3 1.3.0.4 1.3.0.5 1.3.0.6 1.3.0.7 1.3.0.8 1.3.0.9 +1.3.1.0 1.3.1.1 1.3.1.2 1.3.1.3 1.3.1.4 1.3.1.5 1.3.1.6 1.3.1.7 1.3.1.8 1.3.1.9 +1.3.2.0 1.3.2.1 1.3.2.2 1.3.2.3 1.3.2.4 1.3.2.5 1.3.2.6 1.3.2.7 1.3.2.8 1.3.2.9 +1.3.3.0 1.3.3.1 1.3.3.2 1.3.3.3 1.3.3.4 1.3.3.5 1.3.3.6 1.3.3.7 1.3.3.8 1.3.3.9 +1.3.4.0 1.3.4.1 1.3.4.2 1.3.4.3 1.3.4.4 1.3.4.5 1.3.4.6 1.3.4.7 1.3.4.8 1.3.4.9 +1.3.5.0 1.3.5.1 1.3.5.2 1.3.5.3 1.3.5.4 1.3.5.5 1.3.5.6 1.3.5.7 1.3.5.8 1.3.5.9 +1.3.6.0 1.3.6.1 1.3.6.2 1.3.6.3 1.3.6.4 1.3.6.5 1.3.6.6 1.3.6.7 1.3.6.8 1.3.6.9 +1.3.7.0 1.3.7.1 1.3.7.2 1.3.7.3 1.3.7.4 1.3.7.5 1.3.7.6 1.3.7.7 1.3.7.8 1.3.7.9 +1.3.8.0 1.3.8.1 1.3.8.2 1.3.8.3 1.3.8.4 1.3.8.5 1.3.8.6 1.3.8.7 1.3.8.8 1.3.8.9 +1.3.9.0 1.3.9.1 1.3.9.2 1.3.9.3 1.3.9.4 1.3.9.5 1.3.9.6 1.3.9.7 1.3.9.8 1.3.9.9 diff --git a/src/regress/sbin/pfctl/pfr.exec b/src/regress/sbin/pfctl/pfr.exec new file mode 100644 index 000000000..30b4a8c60 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr.exec @@ -0,0 +1,89 @@ +#!/bin/ksh +D=`dirname $1` +A='regress' +pfctl -a $A -FT 2>/dev/null +pfctl -a $A -Fr 2>/dev/null +pfctl -a $A -Fn 2>/dev/null +KT_R=`vmstat -mv | awk '/pfrktable/{print $3}'` +KT_I=`vmstat -mv | awk '/pfrktable/{print $5}'` +KE_R=`vmstat -mv | awk '/pfrkentry /{print $3}'` +KE_I=`vmstat -mv | awk '/pfrkentry /{print $5}'` +echo "# create" +echo "table persist" | pfctl -a $A -Tl -f - 2>&1 || exit 1 +for LINE in `sed -e "s/ /_/g" $1`; do + RESULT=`echo $LINE | awk '{split($1,a,"_");print a[1]}'` + case $RESULT in + pass|fail) ;; + *) continue ;; + esac + CMD=`echo $LINE | awk '{split($1,a,"_");print a[2]}'` + ARGSX=`echo $LINE | awk '{split($1,a,"_");for(i=3;a[i];i++)print a[i]}'` + ARGS="" + for ARG in $ARGSX; do + if [ "X$ARGS" = "X" ]; then + ARGS="$ARG" + else + ARGS="$ARGS $ARG" + fi + done + if [ "$RESULT" = "pass" ]; then case $CMD in + add|delete|replace) + echo "# pass $CMD -n $ARGS" + pfctl -a $A -t regress -nT $CMD $ARGS 2>&1 | sort || exit 1 + echo "# pass $CMD -nf-" + echo "# test\n" $ARGSX | pfctl -a $A -t regress -nT $CMD -f- \ + 2>&1 | sort || exit 1 + echo "# pass $CMD -nqv $ARGS" + pfctl -a $A -t regress -nqvT $CMD $ARGS 2>&1 | sort || exit 1 + echo "# pass $CMD -nqvv $ARGS" + pfctl -a $A -t regress -nqvvT $CMD $ARGS 2>&1 | sort || exit 1 + ;; + esac fi + echo "# $RESULT $CMD $ARGS" + if [ "$RESULT" = "pass" ]; then + case $CMD in + list) + pfctl -a $A -sT 2>&1 + echo "# pass $CMD -v" + pfctl -a $A -gvsT 2>&1 + ;; + load) + echo $ARGS | sed "s,DIR,$D,g" | pfctl -a $A -Tl -f- \ + || exit 1 + ;; + rule) + echo $ARGS | pfctl -a $A -f- 2>&1 || exit 1 + ;; + *) + pfctl -a $A -t regress -T $CMD $ARGS 2>&1 | sort \ + || exit 1 + ;; + esac + else + case $CMD in + load) + echo ARGS | sed "s,DIR,$D,g" | pfctl -a $A -Tl -f- \ + && exit 1 + ;; + rule) + echo $ARGS | pfctl -a $A -f- 2>&1 && exit 1 + ;; + *) + pfctl -a $A -t regress -T $CMD $ARGS 2>&1 && exit 1 + ;; + esac + fi +done +echo "# kill" +pfctl -a $A -FT 2>&1 +pfctl -a $A -Fr 2>&1 +pfctl -a $A -Fn 2>&1 +let KT_R=`vmstat -mv | awk '/pfrktable/{print $3}'`-$KT_R +let KT_I=`vmstat -mv | awk '/pfrktable/{print $5}'`-$KT_I +let KT_RL=$KT_R-$KT_I +let KE_R=`vmstat -mv | awk '/pfrkentry /{print $3}'`-$KE_R +let KE_I=`vmstat -mv | awk '/pfrkentry /{print $5}'`-$KE_I +let KE_RL=$KE_R-$KE_I +echo "ktable: $KT_R allocated, $KT_RL released, $KT_I leaked." +echo "kentry: $KE_R allocated, $KE_RL released, $KE_I leaked." +[ "$KT_I" = "0" -a "$KE_I" = "0" ] || exit 1 diff --git a/src/regress/sbin/pfctl/pfr1.in b/src/regress/sbin/pfctl/pfr1.in new file mode 100644 index 000000000..30fc8d416 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr1.in @@ -0,0 +1,11 @@ +# basic manipulation of IPv4 addresses +pass add 1.1.1.1 1.1.1.2 1.1.1.3 +pass delete 1.1.1.1 1.1.1.2 1.1.1.4 +pass replace 1.1.1.1 1.1.1.2 1.1.1.3 +pass test 1.1.1.1 1.1.1.2 1.1.1.3 +fail test 1.1.1.1 1.1.1.2 1.1.1.4 +pass zero +pass show +pass flush +pass show +pass list diff --git a/src/regress/sbin/pfctl/pfr1.ok b/src/regress/sbin/pfctl/pfr1.ok new file mode 100644 index 000000000..22045bc17 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr1.ok @@ -0,0 +1,64 @@ +# create +# pass add -n 1.1.1.1 1.1.1.2 1.1.1.3 +3/3 addresses added (dummy). +# pass add -nf- +3/3 addresses added (dummy). +# pass add -nqv 1.1.1.1 1.1.1.2 1.1.1.3 +A 1.1.1.1 +A 1.1.1.2 +A 1.1.1.3 +# pass add -nqvv 1.1.1.1 1.1.1.2 1.1.1.3 +A 1.1.1.1 +A 1.1.1.2 +A 1.1.1.3 +# pass add 1.1.1.1 1.1.1.2 1.1.1.3 +3/3 addresses added. +# pass delete -n 1.1.1.1 1.1.1.2 1.1.1.4 +2/3 addresses deleted (dummy). +# pass delete -nf- +2/3 addresses deleted (dummy). +# pass delete -nqv 1.1.1.1 1.1.1.2 1.1.1.4 +D 1.1.1.1 +D 1.1.1.2 +# pass delete -nqvv 1.1.1.1 1.1.1.2 1.1.1.4 + 1.1.1.4 +D 1.1.1.1 +D 1.1.1.2 +# pass delete 1.1.1.1 1.1.1.2 1.1.1.4 +2/3 addresses deleted. +# pass replace -n 1.1.1.1 1.1.1.2 1.1.1.3 +2 addresses added (dummy). +# pass replace -nf- +2 addresses added (dummy). +# pass replace -nqv 1.1.1.1 1.1.1.2 1.1.1.3 +A 1.1.1.1 +A 1.1.1.2 +# pass replace -nqvv 1.1.1.1 1.1.1.2 1.1.1.3 + 1.1.1.3 +A 1.1.1.1 +A 1.1.1.2 +# pass replace 1.1.1.1 1.1.1.2 1.1.1.3 +2 addresses added. +# pass test 1.1.1.1 1.1.1.2 1.1.1.3 +3/3 addresses match. +# fail test 1.1.1.1 1.1.1.2 1.1.1.4 +2/3 addresses match. +# pass zero +1 table/stats cleared. +# pass show + 1.1.1.1 + 1.1.1.2 + 1.1.1.3 +# pass flush +3 addresses deleted. +# pass show +# pass list +regress +# pass list -v +-pa---- regress regress +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 13 allocated, 13 released, 0 leaked. +kentry: 25 allocated, 25 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfr10.in b/src/regress/sbin/pfctl/pfr10.in new file mode 100644 index 000000000..2eb22393c --- /dev/null +++ b/src/regress/sbin/pfctl/pfr10.in @@ -0,0 +1,16 @@ +# table loading from pf.conf +pass list +pass load table const +pass list +pass load table persist const +pass list +pass load table persist +pass list +pass load table +pass list +pass load table persist { 1.2.3.4 1.2.3.4 4.3.2.1 } +pass show +pass load table persist +pass show +pass load table persist {} +pass show diff --git a/src/regress/sbin/pfctl/pfr10.ok b/src/regress/sbin/pfctl/pfr10.ok new file mode 100644 index 000000000..a5b0793b8 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr10.ok @@ -0,0 +1,45 @@ +# create +# pass list +regress +# pass list -v +-pa---- regress regress +# pass load table const +# pass list +regress +# pass list -v +-pa---- regress regress +# pass load table persist const +# pass list +regress +regress.1 +# pass list -v +-pa---- regress regress +cpa---- regress.1 regress +# pass load table persist +# pass list +regress +regress.1 +# pass list -v +-pa---- regress regress +-pa---- regress.1 regress +# pass load table +# pass list +regress +# pass list -v +-pa---- regress regress +# pass load table persist { 1.2.3.4 1.2.3.4 4.3.2.1 } +# pass show + 1.2.3.4 + 4.3.2.1 +# pass load table persist +# pass show + 1.2.3.4 + 4.3.2.1 +# pass load table persist {} +# pass show +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 14 allocated, 14 released, 0 leaked. +kentry: 2 allocated, 2 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfr11.in b/src/regress/sbin/pfctl/pfr11.in new file mode 100644 index 000000000..007ecbf4e --- /dev/null +++ b/src/regress/sbin/pfctl/pfr11.in @@ -0,0 +1,10 @@ +# hidden tables created by rules +pass list +pass rule pass in from to any +pass list +pass rule pass in from to +pass list +pass rule pass in from to any +pass list +pass rule +pass list diff --git a/src/regress/sbin/pfctl/pfr11.ok b/src/regress/sbin/pfctl/pfr11.ok new file mode 100644 index 000000000..cc04f3cd0 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr11.ok @@ -0,0 +1,35 @@ +# create +# pass list +regress +# pass list -v +-pa---- regress regress +# pass rule pass in from to any +# pass list +regress +# pass list -v +-pa---- regress regress +----r-- regress.1 regress +# pass rule pass in from to +# pass list +regress +# pass list -v +-pa---- regress regress +----r-- regress.1 regress +----r-- regress.2 regress +# pass rule pass in from to any +# pass list +regress +# pass list -v +-pa---- regress regress +----r-- regress.1 regress +# pass rule +# pass list +regress +# pass list -v +-pa---- regress regress +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 7 allocated, 7 released, 0 leaked. +kentry: 0 allocated, 0 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfr12.in b/src/regress/sbin/pfctl/pfr12.in new file mode 100644 index 000000000..82be32139 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr12.in @@ -0,0 +1,17 @@ +# hidden tables created by rules +pass list +pass kill +pass show +pass rule pass in from to any +pass list +pass list +pass rule +pass list +pass kill +pass show +pass rule pass in from to any +pass list +pass load table persist +pass list +pass rule +pass list diff --git a/src/regress/sbin/pfctl/pfr12.ok b/src/regress/sbin/pfctl/pfr12.ok new file mode 100644 index 000000000..d33ebf3c1 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr12.ok @@ -0,0 +1,43 @@ +# create +# pass list +regress +# pass list -v +-pa--- regress regress +# pass kill +1 table deleted. +# pass show +pfctl: Table does not exist. +# pass rule pass in from to any +# pass list +# pass list -v +----r- regress regress +# pass list +# pass list -v +----r- regress regress +# pass rule +# pass list +# pass list -v +# pass kill +0 table deleted. +# pass show +pfctl: Table does not exist. +# pass rule pass in from to any +# pass list +# pass list -v +----r- regress regress +# pass load table persist +# pass list +regress +# pass list -v +-pa-r- regress regress +# pass rule +# pass list +regress +# pass list -v +-pa--- regress regress +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 8 allocated, 8 released, 0 leaked. +kentry: 0 allocated, 0 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfr13.in b/src/regress/sbin/pfctl/pfr13.in new file mode 100644 index 000000000..6edd6e245 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr13.in @@ -0,0 +1,11 @@ +# load tables from file +pass load table persist file "DIR/pfr.addrs1" +pass show +pass load table persist file "DIR/pfr.addrs1" file "DIR/pfr.addrs2" +pass show +pass load table persist { !127.0.0.1 } file "DIR/pfr.addrs1" +pass show +pass load table persist file "DIR/pfr.addrs1" { 3.3.3.3 } +pass show +pass load table persist { 11/8 } file "DIR/pfr.addrs1" { !12/8 } +pass show diff --git a/src/regress/sbin/pfctl/pfr13.ok b/src/regress/sbin/pfctl/pfr13.ok new file mode 100644 index 000000000..69536892b --- /dev/null +++ b/src/regress/sbin/pfctl/pfr13.ok @@ -0,0 +1,394 @@ +# create +# pass load table persist file "DIR/pfr.addrs1" +# pass show + 1.1.1.1 + 10.0.0.0/8 + 127.0.0.0/24 + 127.0.0.0/8 + 127.0.0.1 + 172.16.0.0/12 + 192.168.0.0/16 + 2.2.2.2 + 2000::1 + ::/24 + ::1 + ::5 + fe80::/16 + fe80::/24 + fe80::1 +# pass load table persist file "DIR/pfr.addrs1" file "DIR/pfr.addrs2" +# pass show + 1.1.0.0 + 1.1.0.1 + 1.1.0.2 + 1.1.0.3 + 1.1.0.4 + 1.1.0.5 + 1.1.0.6 + 1.1.0.7 + 1.1.0.8 + 1.1.0.9 + 1.1.1.0 + 1.1.1.1 + 1.1.1.2 + 1.1.1.3 + 1.1.1.4 + 1.1.1.5 + 1.1.1.6 + 1.1.1.7 + 1.1.1.8 + 1.1.1.9 + 1.1.2.0 + 1.1.2.1 + 1.1.2.2 + 1.1.2.3 + 1.1.2.4 + 1.1.2.5 + 1.1.2.6 + 1.1.2.7 + 1.1.2.8 + 1.1.2.9 + 1.1.3.0 + 1.1.3.1 + 1.1.3.2 + 1.1.3.3 + 1.1.3.4 + 1.1.3.5 + 1.1.3.6 + 1.1.3.7 + 1.1.3.8 + 1.1.3.9 + 1.1.4.0 + 1.1.4.1 + 1.1.4.2 + 1.1.4.3 + 1.1.4.4 + 1.1.4.5 + 1.1.4.6 + 1.1.4.7 + 1.1.4.8 + 1.1.4.9 + 1.1.5.0 + 1.1.5.1 + 1.1.5.2 + 1.1.5.3 + 1.1.5.4 + 1.1.5.5 + 1.1.5.6 + 1.1.5.7 + 1.1.5.8 + 1.1.5.9 + 1.1.6.0 + 1.1.6.1 + 1.1.6.2 + 1.1.6.3 + 1.1.6.4 + 1.1.6.5 + 1.1.6.6 + 1.1.6.7 + 1.1.6.8 + 1.1.6.9 + 1.1.7.0 + 1.1.7.1 + 1.1.7.2 + 1.1.7.3 + 1.1.7.4 + 1.1.7.5 + 1.1.7.6 + 1.1.7.7 + 1.1.7.8 + 1.1.7.9 + 1.1.8.0 + 1.1.8.1 + 1.1.8.2 + 1.1.8.3 + 1.1.8.4 + 1.1.8.5 + 1.1.8.6 + 1.1.8.7 + 1.1.8.8 + 1.1.8.9 + 1.1.9.0 + 1.1.9.1 + 1.1.9.2 + 1.1.9.3 + 1.1.9.4 + 1.1.9.5 + 1.1.9.6 + 1.1.9.7 + 1.1.9.8 + 1.1.9.9 + 1.2.0.0 + 1.2.0.1 + 1.2.0.2 + 1.2.0.3 + 1.2.0.4 + 1.2.0.5 + 1.2.0.6 + 1.2.0.7 + 1.2.0.8 + 1.2.0.9 + 1.2.1.0 + 1.2.1.1 + 1.2.1.2 + 1.2.1.3 + 1.2.1.4 + 1.2.1.5 + 1.2.1.6 + 1.2.1.7 + 1.2.1.8 + 1.2.1.9 + 1.2.2.0 + 1.2.2.1 + 1.2.2.2 + 1.2.2.3 + 1.2.2.4 + 1.2.2.5 + 1.2.2.6 + 1.2.2.7 + 1.2.2.8 + 1.2.2.9 + 1.2.3.0 + 1.2.3.1 + 1.2.3.2 + 1.2.3.3 + 1.2.3.4 + 1.2.3.5 + 1.2.3.6 + 1.2.3.7 + 1.2.3.8 + 1.2.3.9 + 1.2.4.0 + 1.2.4.1 + 1.2.4.2 + 1.2.4.3 + 1.2.4.4 + 1.2.4.5 + 1.2.4.6 + 1.2.4.7 + 1.2.4.8 + 1.2.4.9 + 1.2.5.0 + 1.2.5.1 + 1.2.5.2 + 1.2.5.3 + 1.2.5.4 + 1.2.5.5 + 1.2.5.6 + 1.2.5.7 + 1.2.5.8 + 1.2.5.9 + 1.2.6.0 + 1.2.6.1 + 1.2.6.2 + 1.2.6.3 + 1.2.6.4 + 1.2.6.5 + 1.2.6.6 + 1.2.6.7 + 1.2.6.8 + 1.2.6.9 + 1.2.7.0 + 1.2.7.1 + 1.2.7.2 + 1.2.7.3 + 1.2.7.4 + 1.2.7.5 + 1.2.7.6 + 1.2.7.7 + 1.2.7.8 + 1.2.7.9 + 1.2.8.0 + 1.2.8.1 + 1.2.8.2 + 1.2.8.3 + 1.2.8.4 + 1.2.8.5 + 1.2.8.6 + 1.2.8.7 + 1.2.8.8 + 1.2.8.9 + 1.2.9.0 + 1.2.9.1 + 1.2.9.2 + 1.2.9.3 + 1.2.9.4 + 1.2.9.5 + 1.2.9.6 + 1.2.9.7 + 1.2.9.8 + 1.2.9.9 + 1.3.0.0 + 1.3.0.1 + 1.3.0.2 + 1.3.0.3 + 1.3.0.4 + 1.3.0.5 + 1.3.0.6 + 1.3.0.7 + 1.3.0.8 + 1.3.0.9 + 1.3.1.0 + 1.3.1.1 + 1.3.1.2 + 1.3.1.3 + 1.3.1.4 + 1.3.1.5 + 1.3.1.6 + 1.3.1.7 + 1.3.1.8 + 1.3.1.9 + 1.3.2.0 + 1.3.2.1 + 1.3.2.2 + 1.3.2.3 + 1.3.2.4 + 1.3.2.5 + 1.3.2.6 + 1.3.2.7 + 1.3.2.8 + 1.3.2.9 + 1.3.3.0 + 1.3.3.1 + 1.3.3.2 + 1.3.3.3 + 1.3.3.4 + 1.3.3.5 + 1.3.3.6 + 1.3.3.7 + 1.3.3.8 + 1.3.3.9 + 1.3.4.0 + 1.3.4.1 + 1.3.4.2 + 1.3.4.3 + 1.3.4.4 + 1.3.4.5 + 1.3.4.6 + 1.3.4.7 + 1.3.4.8 + 1.3.4.9 + 1.3.5.0 + 1.3.5.1 + 1.3.5.2 + 1.3.5.3 + 1.3.5.4 + 1.3.5.5 + 1.3.5.6 + 1.3.5.7 + 1.3.5.8 + 1.3.5.9 + 1.3.6.0 + 1.3.6.1 + 1.3.6.2 + 1.3.6.3 + 1.3.6.4 + 1.3.6.5 + 1.3.6.6 + 1.3.6.7 + 1.3.6.8 + 1.3.6.9 + 1.3.7.0 + 1.3.7.1 + 1.3.7.2 + 1.3.7.3 + 1.3.7.4 + 1.3.7.5 + 1.3.7.6 + 1.3.7.7 + 1.3.7.8 + 1.3.7.9 + 1.3.8.0 + 1.3.8.1 + 1.3.8.2 + 1.3.8.3 + 1.3.8.4 + 1.3.8.5 + 1.3.8.6 + 1.3.8.7 + 1.3.8.8 + 1.3.8.9 + 1.3.9.0 + 1.3.9.1 + 1.3.9.2 + 1.3.9.3 + 1.3.9.4 + 1.3.9.5 + 1.3.9.6 + 1.3.9.7 + 1.3.9.8 + 1.3.9.9 + 10.0.0.0/8 + 127.0.0.0/24 + 127.0.0.0/8 + 127.0.0.1 + 172.16.0.0/12 + 192.168.0.0/16 + 2.2.2.2 + 2000::1 + ::/24 + ::1 + ::5 + fe80::/16 + fe80::/24 + fe80::1 +# pass load table persist { !127.0.0.1 } file "DIR/pfr.addrs1" +# pass show + 1.1.1.1 + 10.0.0.0/8 + 127.0.0.0/24 + 127.0.0.0/8 + 172.16.0.0/12 + 192.168.0.0/16 + 2.2.2.2 + 2000::1 + ::/24 + ::1 + ::5 + fe80::/16 + fe80::/24 + fe80::1 + !127.0.0.1 +# pass load table persist file "DIR/pfr.addrs1" { 3.3.3.3 } +# pass show + 1.1.1.1 + 10.0.0.0/8 + 127.0.0.0/24 + 127.0.0.0/8 + 127.0.0.1 + 172.16.0.0/12 + 192.168.0.0/16 + 2.2.2.2 + 2000::1 + 3.3.3.3 + ::/24 + ::1 + ::5 + fe80::/16 + fe80::/24 + fe80::1 +# pass load table persist { 11/8 } file "DIR/pfr.addrs1" { !12/8 } +# pass show + 1.1.1.1 + 10.0.0.0/8 + 11.0.0.0/8 + 127.0.0.0/24 + 127.0.0.0/8 + 127.0.0.1 + 172.16.0.0/12 + 192.168.0.0/16 + 2.2.2.2 + 2000::1 + ::/24 + ::1 + ::5 + fe80::/16 + fe80::/24 + fe80::1 + !12.0.0.0/8 +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 8 allocated, 8 released, 0 leaked. +kentry: 377 allocated, 377 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfr2.in b/src/regress/sbin/pfctl/pfr2.in new file mode 100644 index 000000000..c4e43c2e8 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr2.in @@ -0,0 +1,11 @@ +# basic manipulation of IPv6 addresses +pass add ::1 ::2 FE80::1 +pass delete ::1 ::2 FE80::2 +pass replace ::1 ::2 FE80::1 +pass test ::1 ::2 FE80::1 +fail test ::1 ::2 FE80::2 +pass zero +pass show +pass flush +pass show +pass list diff --git a/src/regress/sbin/pfctl/pfr2.ok b/src/regress/sbin/pfctl/pfr2.ok new file mode 100644 index 000000000..854e18c04 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr2.ok @@ -0,0 +1,64 @@ +# create +# pass add -n ::1 ::2 FE80::1 +3/3 addresses added (dummy). +# pass add -nf- +3/3 addresses added (dummy). +# pass add -nqv ::1 ::2 FE80::1 +A ::1 +A ::2 +A fe80::1 +# pass add -nqvv ::1 ::2 FE80::1 +A ::1 +A ::2 +A fe80::1 +# pass add ::1 ::2 FE80::1 +3/3 addresses added. +# pass delete -n ::1 ::2 FE80::2 +2/3 addresses deleted (dummy). +# pass delete -nf- +2/3 addresses deleted (dummy). +# pass delete -nqv ::1 ::2 FE80::2 +D ::1 +D ::2 +# pass delete -nqvv ::1 ::2 FE80::2 + fe80::2 +D ::1 +D ::2 +# pass delete ::1 ::2 FE80::2 +2/3 addresses deleted. +# pass replace -n ::1 ::2 FE80::1 +2 addresses added (dummy). +# pass replace -nf- +2 addresses added (dummy). +# pass replace -nqv ::1 ::2 FE80::1 +A ::1 +A ::2 +# pass replace -nqvv ::1 ::2 FE80::1 + fe80::1 +A ::1 +A ::2 +# pass replace ::1 ::2 FE80::1 +2 addresses added. +# pass test ::1 ::2 FE80::1 +3/3 addresses match. +# fail test ::1 ::2 FE80::2 +2/3 addresses match. +# pass zero +1 table/stats cleared. +# pass show + ::1 + ::2 + fe80::1 +# pass flush +3 addresses deleted. +# pass show +# pass list +regress +# pass list -v +-pa---- regress regress +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 13 allocated, 13 released, 0 leaked. +kentry: 25 allocated, 25 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfr3.in b/src/regress/sbin/pfctl/pfr3.in new file mode 100644 index 000000000..364b355fe --- /dev/null +++ b/src/regress/sbin/pfctl/pfr3.in @@ -0,0 +1,7 @@ +# basic manipulation of IPv4 networks +pass add 10/8 10.11/16 10.11.12/24 10.11.12.13 +pass delete 10.11.0.0/16 10.11.12.0/24 +pass replace 10.0/8 172.16.0/12 192.168.0/16 +pass test 10.1.1.1 172.17.1.1 192.168.1.1 +fail test 11.1.1.1 +fail test 10.1.1.1 11.1.1.1 diff --git a/src/regress/sbin/pfctl/pfr3.ok b/src/regress/sbin/pfctl/pfr3.ok new file mode 100644 index 000000000..d6ddb336a --- /dev/null +++ b/src/regress/sbin/pfctl/pfr3.ok @@ -0,0 +1,59 @@ +# create +# pass add -n 10/8 10.11/16 10.11.12/24 10.11.12.13 +4/4 addresses added (dummy). +# pass add -nf- +4/4 addresses added (dummy). +# pass add -nqv 10/8 10.11/16 10.11.12/24 10.11.12.13 +A 10.0.0.0/8 +A 10.11.0.0/16 +A 10.11.12.0/24 +A 10.11.12.13 +# pass add -nqvv 10/8 10.11/16 10.11.12/24 10.11.12.13 +A 10.0.0.0/8 +A 10.11.0.0/16 +A 10.11.12.0/24 +A 10.11.12.13 +# pass add 10/8 10.11/16 10.11.12/24 10.11.12.13 +4/4 addresses added. +# pass delete -n 10.11.0.0/16 10.11.12.0/24 +2/2 addresses deleted (dummy). +# pass delete -nf- +2/2 addresses deleted (dummy). +# pass delete -nqv 10.11.0.0/16 10.11.12.0/24 +D 10.11.0.0/16 +D 10.11.12.0/24 +# pass delete -nqvv 10.11.0.0/16 10.11.12.0/24 +D 10.11.0.0/16 +D 10.11.12.0/24 +# pass delete 10.11.0.0/16 10.11.12.0/24 +2/2 addresses deleted. +# pass replace -n 10.0/8 172.16.0/12 192.168.0/16 +1 addresses deleted (dummy). +2 addresses added (dummy). +# pass replace -nf- +1 addresses deleted (dummy). +2 addresses added (dummy). +# pass replace -nqv 10.0/8 172.16.0/12 192.168.0/16 +A 172.16.0.0/12 +A 192.168.0.0/16 +D 10.11.12.13 +# pass replace -nqvv 10.0/8 172.16.0/12 192.168.0/16 + 10.0.0.0/8 +A 172.16.0.0/12 +A 192.168.0.0/16 +D 10.11.12.13 +# pass replace 10.0/8 172.16.0/12 192.168.0/16 +1 addresses deleted. +2 addresses added. +# pass test 10.1.1.1 172.17.1.1 192.168.1.1 +3/3 addresses match. +# fail test 11.1.1.1 +0/1 addresses match. +# fail test 10.1.1.1 11.1.1.1 +1/2 addresses match. +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 13 allocated, 13 released, 0 leaked. +kentry: 30 allocated, 30 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfr4.in b/src/regress/sbin/pfctl/pfr4.in new file mode 100644 index 000000000..8d5ec7857 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr4.in @@ -0,0 +1,9 @@ +# parsing of all IPv4 network sizes +pass replace 0/0 0/1 0/2 0/3 0/4 0/5 0/6 0/7 +pass show +pass replace 0/8 0/9 0/10 0/11 0/12 0/13 0/14 0/15 +pass show +pass replace 0/16 0/17 0/18 0/19 0/20 0/21 0/22 0/23 +pass show +pass replace 0/24 0/25 0/26 0/27 0/28 0/29 0/30 0/31 +pass show diff --git a/src/regress/sbin/pfctl/pfr4.ok b/src/regress/sbin/pfctl/pfr4.ok new file mode 100644 index 000000000..40d7d7722 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr4.ok @@ -0,0 +1,196 @@ +# create +# pass replace -n 0/0 0/1 0/2 0/3 0/4 0/5 0/6 0/7 +8 addresses added (dummy). +# pass replace -nf- +8 addresses added (dummy). +# pass replace -nqv 0/0 0/1 0/2 0/3 0/4 0/5 0/6 0/7 +A 0.0.0.0/0 +A 0.0.0.0/1 +A 0.0.0.0/2 +A 0.0.0.0/3 +A 0.0.0.0/4 +A 0.0.0.0/5 +A 0.0.0.0/6 +A 0.0.0.0/7 +# pass replace -nqvv 0/0 0/1 0/2 0/3 0/4 0/5 0/6 0/7 +A 0.0.0.0/0 +A 0.0.0.0/1 +A 0.0.0.0/2 +A 0.0.0.0/3 +A 0.0.0.0/4 +A 0.0.0.0/5 +A 0.0.0.0/6 +A 0.0.0.0/7 +# pass replace 0/0 0/1 0/2 0/3 0/4 0/5 0/6 0/7 +8 addresses added. +# pass show + 0.0.0.0/0 + 0.0.0.0/1 + 0.0.0.0/2 + 0.0.0.0/3 + 0.0.0.0/4 + 0.0.0.0/5 + 0.0.0.0/6 + 0.0.0.0/7 +# pass replace -n 0/8 0/9 0/10 0/11 0/12 0/13 0/14 0/15 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv 0/8 0/9 0/10 0/11 0/12 0/13 0/14 0/15 +A 0.0.0.0/10 +A 0.0.0.0/11 +A 0.0.0.0/12 +A 0.0.0.0/13 +A 0.0.0.0/14 +A 0.0.0.0/15 +A 0.0.0.0/8 +A 0.0.0.0/9 +D 0.0.0.0/0 +D 0.0.0.0/1 +D 0.0.0.0/2 +D 0.0.0.0/3 +D 0.0.0.0/4 +D 0.0.0.0/5 +D 0.0.0.0/6 +D 0.0.0.0/7 +# pass replace -nqvv 0/8 0/9 0/10 0/11 0/12 0/13 0/14 0/15 +A 0.0.0.0/10 +A 0.0.0.0/11 +A 0.0.0.0/12 +A 0.0.0.0/13 +A 0.0.0.0/14 +A 0.0.0.0/15 +A 0.0.0.0/8 +A 0.0.0.0/9 +D 0.0.0.0/0 +D 0.0.0.0/1 +D 0.0.0.0/2 +D 0.0.0.0/3 +D 0.0.0.0/4 +D 0.0.0.0/5 +D 0.0.0.0/6 +D 0.0.0.0/7 +# pass replace 0/8 0/9 0/10 0/11 0/12 0/13 0/14 0/15 +8 addresses added. +8 addresses deleted. +# pass show + 0.0.0.0/10 + 0.0.0.0/11 + 0.0.0.0/12 + 0.0.0.0/13 + 0.0.0.0/14 + 0.0.0.0/15 + 0.0.0.0/8 + 0.0.0.0/9 +# pass replace -n 0/16 0/17 0/18 0/19 0/20 0/21 0/22 0/23 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv 0/16 0/17 0/18 0/19 0/20 0/21 0/22 0/23 +A 0.0.0.0/16 +A 0.0.0.0/17 +A 0.0.0.0/18 +A 0.0.0.0/19 +A 0.0.0.0/20 +A 0.0.0.0/21 +A 0.0.0.0/22 +A 0.0.0.0/23 +D 0.0.0.0/10 +D 0.0.0.0/11 +D 0.0.0.0/12 +D 0.0.0.0/13 +D 0.0.0.0/14 +D 0.0.0.0/15 +D 0.0.0.0/8 +D 0.0.0.0/9 +# pass replace -nqvv 0/16 0/17 0/18 0/19 0/20 0/21 0/22 0/23 +A 0.0.0.0/16 +A 0.0.0.0/17 +A 0.0.0.0/18 +A 0.0.0.0/19 +A 0.0.0.0/20 +A 0.0.0.0/21 +A 0.0.0.0/22 +A 0.0.0.0/23 +D 0.0.0.0/10 +D 0.0.0.0/11 +D 0.0.0.0/12 +D 0.0.0.0/13 +D 0.0.0.0/14 +D 0.0.0.0/15 +D 0.0.0.0/8 +D 0.0.0.0/9 +# pass replace 0/16 0/17 0/18 0/19 0/20 0/21 0/22 0/23 +8 addresses added. +8 addresses deleted. +# pass show + 0.0.0.0/16 + 0.0.0.0/17 + 0.0.0.0/18 + 0.0.0.0/19 + 0.0.0.0/20 + 0.0.0.0/21 + 0.0.0.0/22 + 0.0.0.0/23 +# pass replace -n 0/24 0/25 0/26 0/27 0/28 0/29 0/30 0/31 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv 0/24 0/25 0/26 0/27 0/28 0/29 0/30 0/31 +A 0.0.0.0/24 +A 0.0.0.0/25 +A 0.0.0.0/26 +A 0.0.0.0/27 +A 0.0.0.0/28 +A 0.0.0.0/29 +A 0.0.0.0/30 +A 0.0.0.0/31 +D 0.0.0.0/16 +D 0.0.0.0/17 +D 0.0.0.0/18 +D 0.0.0.0/19 +D 0.0.0.0/20 +D 0.0.0.0/21 +D 0.0.0.0/22 +D 0.0.0.0/23 +# pass replace -nqvv 0/24 0/25 0/26 0/27 0/28 0/29 0/30 0/31 +A 0.0.0.0/24 +A 0.0.0.0/25 +A 0.0.0.0/26 +A 0.0.0.0/27 +A 0.0.0.0/28 +A 0.0.0.0/29 +A 0.0.0.0/30 +A 0.0.0.0/31 +D 0.0.0.0/16 +D 0.0.0.0/17 +D 0.0.0.0/18 +D 0.0.0.0/19 +D 0.0.0.0/20 +D 0.0.0.0/21 +D 0.0.0.0/22 +D 0.0.0.0/23 +# pass replace 0/24 0/25 0/26 0/27 0/28 0/29 0/30 0/31 +8 addresses added. +8 addresses deleted. +# pass show + 0.0.0.0/24 + 0.0.0.0/25 + 0.0.0.0/26 + 0.0.0.0/27 + 0.0.0.0/28 + 0.0.0.0/29 + 0.0.0.0/30 + 0.0.0.0/31 +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 23 allocated, 23 released, 0 leaked. +kentry: 160 allocated, 160 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfr5.in b/src/regress/sbin/pfctl/pfr5.in new file mode 100644 index 000000000..c30995749 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr5.in @@ -0,0 +1,33 @@ +# parsing of all IPv6 network sizes +pass replace ::/0 ::/1 ::/2 ::/3 ::/4 ::/5 ::/6 ::/7 +pass show +pass replace ::/8 ::/9 ::/10 ::/11 ::/12 ::/13 ::/14 ::/15 +pass show +pass replace ::/16 ::/17 ::/18 ::/19 ::/20 ::/21 ::/22 ::/23 +pass show +pass replace ::/24 ::/25 ::/26 ::/27 ::/28 ::/29 ::/30 ::/31 +pass show +pass replace ::/32 ::/33 ::/34 ::/35 ::/36 ::/37 ::/38 ::/39 +pass show +pass replace ::/40 ::/41 ::/42 ::/43 ::/44 ::/45 ::/46 ::/47 +pass show +pass replace ::/48 ::/49 ::/50 ::/51 ::/52 ::/53 ::/54 ::/55 +pass show +pass replace ::/56 ::/57 ::/58 ::/59 ::/60 ::/61 ::/62 ::/63 +pass show +pass replace ::/64 ::/65 ::/66 ::/67 ::/68 ::/69 ::/70 ::/71 +pass show +pass replace ::/72 ::/73 ::/74 ::/75 ::/76 ::/77 ::/78 ::/79 +pass show +pass replace ::/80 ::/81 ::/82 ::/83 ::/84 ::/85 ::/86 ::/87 +pass show +pass replace ::/88 ::/89 ::/90 ::/91 ::/92 ::/93 ::/94 ::/95 +pass show +pass replace ::/96 ::/97 ::/98 ::/99 ::/100 ::/101 ::/102 ::/103 +pass show +pass replace ::/104 ::/105 ::/106 ::/107 ::/108 ::/109 ::/110 ::/111 +pass show +pass replace ::/112 ::/113 ::/114 ::/115 ::/116 ::/117 ::/118 ::/119 +pass show +pass replace ::/120 ::/121 ::/122 ::/123 ::/124 ::/125 ::/126 ::/127 +pass show diff --git a/src/regress/sbin/pfctl/pfr5.ok b/src/regress/sbin/pfctl/pfr5.ok new file mode 100644 index 000000000..f2ab0297d --- /dev/null +++ b/src/regress/sbin/pfctl/pfr5.ok @@ -0,0 +1,820 @@ +# create +# pass replace -n ::/0 ::/1 ::/2 ::/3 ::/4 ::/5 ::/6 ::/7 +8 addresses added (dummy). +# pass replace -nf- +8 addresses added (dummy). +# pass replace -nqv ::/0 ::/1 ::/2 ::/3 ::/4 ::/5 ::/6 ::/7 +A ::/0 +A ::/1 +A ::/2 +A ::/3 +A ::/4 +A ::/5 +A ::/6 +A ::/7 +# pass replace -nqvv ::/0 ::/1 ::/2 ::/3 ::/4 ::/5 ::/6 ::/7 +A ::/0 +A ::/1 +A ::/2 +A ::/3 +A ::/4 +A ::/5 +A ::/6 +A ::/7 +# pass replace ::/0 ::/1 ::/2 ::/3 ::/4 ::/5 ::/6 ::/7 +8 addresses added. +# pass show + ::/0 + ::/1 + ::/2 + ::/3 + ::/4 + ::/5 + ::/6 + ::/7 +# pass replace -n ::/8 ::/9 ::/10 ::/11 ::/12 ::/13 ::/14 ::/15 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/8 ::/9 ::/10 ::/11 ::/12 ::/13 ::/14 ::/15 +A ::/10 +A ::/11 +A ::/12 +A ::/13 +A ::/14 +A ::/15 +A ::/8 +A ::/9 +D ::/0 +D ::/1 +D ::/2 +D ::/3 +D ::/4 +D ::/5 +D ::/6 +D ::/7 +# pass replace -nqvv ::/8 ::/9 ::/10 ::/11 ::/12 ::/13 ::/14 ::/15 +A ::/10 +A ::/11 +A ::/12 +A ::/13 +A ::/14 +A ::/15 +A ::/8 +A ::/9 +D ::/0 +D ::/1 +D ::/2 +D ::/3 +D ::/4 +D ::/5 +D ::/6 +D ::/7 +# pass replace ::/8 ::/9 ::/10 ::/11 ::/12 ::/13 ::/14 ::/15 +8 addresses added. +8 addresses deleted. +# pass show + ::/10 + ::/11 + ::/12 + ::/13 + ::/14 + ::/15 + ::/8 + ::/9 +# pass replace -n ::/16 ::/17 ::/18 ::/19 ::/20 ::/21 ::/22 ::/23 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/16 ::/17 ::/18 ::/19 ::/20 ::/21 ::/22 ::/23 +A ::/16 +A ::/17 +A ::/18 +A ::/19 +A ::/20 +A ::/21 +A ::/22 +A ::/23 +D ::/10 +D ::/11 +D ::/12 +D ::/13 +D ::/14 +D ::/15 +D ::/8 +D ::/9 +# pass replace -nqvv ::/16 ::/17 ::/18 ::/19 ::/20 ::/21 ::/22 ::/23 +A ::/16 +A ::/17 +A ::/18 +A ::/19 +A ::/20 +A ::/21 +A ::/22 +A ::/23 +D ::/10 +D ::/11 +D ::/12 +D ::/13 +D ::/14 +D ::/15 +D ::/8 +D ::/9 +# pass replace ::/16 ::/17 ::/18 ::/19 ::/20 ::/21 ::/22 ::/23 +8 addresses added. +8 addresses deleted. +# pass show + ::/16 + ::/17 + ::/18 + ::/19 + ::/20 + ::/21 + ::/22 + ::/23 +# pass replace -n ::/24 ::/25 ::/26 ::/27 ::/28 ::/29 ::/30 ::/31 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/24 ::/25 ::/26 ::/27 ::/28 ::/29 ::/30 ::/31 +A ::/24 +A ::/25 +A ::/26 +A ::/27 +A ::/28 +A ::/29 +A ::/30 +A ::/31 +D ::/16 +D ::/17 +D ::/18 +D ::/19 +D ::/20 +D ::/21 +D ::/22 +D ::/23 +# pass replace -nqvv ::/24 ::/25 ::/26 ::/27 ::/28 ::/29 ::/30 ::/31 +A ::/24 +A ::/25 +A ::/26 +A ::/27 +A ::/28 +A ::/29 +A ::/30 +A ::/31 +D ::/16 +D ::/17 +D ::/18 +D ::/19 +D ::/20 +D ::/21 +D ::/22 +D ::/23 +# pass replace ::/24 ::/25 ::/26 ::/27 ::/28 ::/29 ::/30 ::/31 +8 addresses added. +8 addresses deleted. +# pass show + ::/24 + ::/25 + ::/26 + ::/27 + ::/28 + ::/29 + ::/30 + ::/31 +# pass replace -n ::/32 ::/33 ::/34 ::/35 ::/36 ::/37 ::/38 ::/39 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/32 ::/33 ::/34 ::/35 ::/36 ::/37 ::/38 ::/39 +A ::/32 +A ::/33 +A ::/34 +A ::/35 +A ::/36 +A ::/37 +A ::/38 +A ::/39 +D ::/24 +D ::/25 +D ::/26 +D ::/27 +D ::/28 +D ::/29 +D ::/30 +D ::/31 +# pass replace -nqvv ::/32 ::/33 ::/34 ::/35 ::/36 ::/37 ::/38 ::/39 +A ::/32 +A ::/33 +A ::/34 +A ::/35 +A ::/36 +A ::/37 +A ::/38 +A ::/39 +D ::/24 +D ::/25 +D ::/26 +D ::/27 +D ::/28 +D ::/29 +D ::/30 +D ::/31 +# pass replace ::/32 ::/33 ::/34 ::/35 ::/36 ::/37 ::/38 ::/39 +8 addresses added. +8 addresses deleted. +# pass show + ::/32 + ::/33 + ::/34 + ::/35 + ::/36 + ::/37 + ::/38 + ::/39 +# pass replace -n ::/40 ::/41 ::/42 ::/43 ::/44 ::/45 ::/46 ::/47 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/40 ::/41 ::/42 ::/43 ::/44 ::/45 ::/46 ::/47 +A ::/40 +A ::/41 +A ::/42 +A ::/43 +A ::/44 +A ::/45 +A ::/46 +A ::/47 +D ::/32 +D ::/33 +D ::/34 +D ::/35 +D ::/36 +D ::/37 +D ::/38 +D ::/39 +# pass replace -nqvv ::/40 ::/41 ::/42 ::/43 ::/44 ::/45 ::/46 ::/47 +A ::/40 +A ::/41 +A ::/42 +A ::/43 +A ::/44 +A ::/45 +A ::/46 +A ::/47 +D ::/32 +D ::/33 +D ::/34 +D ::/35 +D ::/36 +D ::/37 +D ::/38 +D ::/39 +# pass replace ::/40 ::/41 ::/42 ::/43 ::/44 ::/45 ::/46 ::/47 +8 addresses added. +8 addresses deleted. +# pass show + ::/40 + ::/41 + ::/42 + ::/43 + ::/44 + ::/45 + ::/46 + ::/47 +# pass replace -n ::/48 ::/49 ::/50 ::/51 ::/52 ::/53 ::/54 ::/55 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/48 ::/49 ::/50 ::/51 ::/52 ::/53 ::/54 ::/55 +A ::/48 +A ::/49 +A ::/50 +A ::/51 +A ::/52 +A ::/53 +A ::/54 +A ::/55 +D ::/40 +D ::/41 +D ::/42 +D ::/43 +D ::/44 +D ::/45 +D ::/46 +D ::/47 +# pass replace -nqvv ::/48 ::/49 ::/50 ::/51 ::/52 ::/53 ::/54 ::/55 +A ::/48 +A ::/49 +A ::/50 +A ::/51 +A ::/52 +A ::/53 +A ::/54 +A ::/55 +D ::/40 +D ::/41 +D ::/42 +D ::/43 +D ::/44 +D ::/45 +D ::/46 +D ::/47 +# pass replace ::/48 ::/49 ::/50 ::/51 ::/52 ::/53 ::/54 ::/55 +8 addresses added. +8 addresses deleted. +# pass show + ::/48 + ::/49 + ::/50 + ::/51 + ::/52 + ::/53 + ::/54 + ::/55 +# pass replace -n ::/56 ::/57 ::/58 ::/59 ::/60 ::/61 ::/62 ::/63 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/56 ::/57 ::/58 ::/59 ::/60 ::/61 ::/62 ::/63 +A ::/56 +A ::/57 +A ::/58 +A ::/59 +A ::/60 +A ::/61 +A ::/62 +A ::/63 +D ::/48 +D ::/49 +D ::/50 +D ::/51 +D ::/52 +D ::/53 +D ::/54 +D ::/55 +# pass replace -nqvv ::/56 ::/57 ::/58 ::/59 ::/60 ::/61 ::/62 ::/63 +A ::/56 +A ::/57 +A ::/58 +A ::/59 +A ::/60 +A ::/61 +A ::/62 +A ::/63 +D ::/48 +D ::/49 +D ::/50 +D ::/51 +D ::/52 +D ::/53 +D ::/54 +D ::/55 +# pass replace ::/56 ::/57 ::/58 ::/59 ::/60 ::/61 ::/62 ::/63 +8 addresses added. +8 addresses deleted. +# pass show + ::/56 + ::/57 + ::/58 + ::/59 + ::/60 + ::/61 + ::/62 + ::/63 +# pass replace -n ::/64 ::/65 ::/66 ::/67 ::/68 ::/69 ::/70 ::/71 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/64 ::/65 ::/66 ::/67 ::/68 ::/69 ::/70 ::/71 +A ::/64 +A ::/65 +A ::/66 +A ::/67 +A ::/68 +A ::/69 +A ::/70 +A ::/71 +D ::/56 +D ::/57 +D ::/58 +D ::/59 +D ::/60 +D ::/61 +D ::/62 +D ::/63 +# pass replace -nqvv ::/64 ::/65 ::/66 ::/67 ::/68 ::/69 ::/70 ::/71 +A ::/64 +A ::/65 +A ::/66 +A ::/67 +A ::/68 +A ::/69 +A ::/70 +A ::/71 +D ::/56 +D ::/57 +D ::/58 +D ::/59 +D ::/60 +D ::/61 +D ::/62 +D ::/63 +# pass replace ::/64 ::/65 ::/66 ::/67 ::/68 ::/69 ::/70 ::/71 +8 addresses added. +8 addresses deleted. +# pass show + ::/64 + ::/65 + ::/66 + ::/67 + ::/68 + ::/69 + ::/70 + ::/71 +# pass replace -n ::/72 ::/73 ::/74 ::/75 ::/76 ::/77 ::/78 ::/79 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/72 ::/73 ::/74 ::/75 ::/76 ::/77 ::/78 ::/79 +A ::/72 +A ::/73 +A ::/74 +A ::/75 +A ::/76 +A ::/77 +A ::/78 +A ::/79 +D ::/64 +D ::/65 +D ::/66 +D ::/67 +D ::/68 +D ::/69 +D ::/70 +D ::/71 +# pass replace -nqvv ::/72 ::/73 ::/74 ::/75 ::/76 ::/77 ::/78 ::/79 +A ::/72 +A ::/73 +A ::/74 +A ::/75 +A ::/76 +A ::/77 +A ::/78 +A ::/79 +D ::/64 +D ::/65 +D ::/66 +D ::/67 +D ::/68 +D ::/69 +D ::/70 +D ::/71 +# pass replace ::/72 ::/73 ::/74 ::/75 ::/76 ::/77 ::/78 ::/79 +8 addresses added. +8 addresses deleted. +# pass show + ::/72 + ::/73 + ::/74 + ::/75 + ::/76 + ::/77 + ::/78 + ::/79 +# pass replace -n ::/80 ::/81 ::/82 ::/83 ::/84 ::/85 ::/86 ::/87 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/80 ::/81 ::/82 ::/83 ::/84 ::/85 ::/86 ::/87 +A ::/80 +A ::/81 +A ::/82 +A ::/83 +A ::/84 +A ::/85 +A ::/86 +A ::/87 +D ::/72 +D ::/73 +D ::/74 +D ::/75 +D ::/76 +D ::/77 +D ::/78 +D ::/79 +# pass replace -nqvv ::/80 ::/81 ::/82 ::/83 ::/84 ::/85 ::/86 ::/87 +A ::/80 +A ::/81 +A ::/82 +A ::/83 +A ::/84 +A ::/85 +A ::/86 +A ::/87 +D ::/72 +D ::/73 +D ::/74 +D ::/75 +D ::/76 +D ::/77 +D ::/78 +D ::/79 +# pass replace ::/80 ::/81 ::/82 ::/83 ::/84 ::/85 ::/86 ::/87 +8 addresses added. +8 addresses deleted. +# pass show + ::/80 + ::/81 + ::/82 + ::/83 + ::/84 + ::/85 + ::/86 + ::/87 +# pass replace -n ::/88 ::/89 ::/90 ::/91 ::/92 ::/93 ::/94 ::/95 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/88 ::/89 ::/90 ::/91 ::/92 ::/93 ::/94 ::/95 +A ::/88 +A ::/89 +A ::/90 +A ::/91 +A ::/92 +A ::/93 +A ::/94 +A ::/95 +D ::/80 +D ::/81 +D ::/82 +D ::/83 +D ::/84 +D ::/85 +D ::/86 +D ::/87 +# pass replace -nqvv ::/88 ::/89 ::/90 ::/91 ::/92 ::/93 ::/94 ::/95 +A ::/88 +A ::/89 +A ::/90 +A ::/91 +A ::/92 +A ::/93 +A ::/94 +A ::/95 +D ::/80 +D ::/81 +D ::/82 +D ::/83 +D ::/84 +D ::/85 +D ::/86 +D ::/87 +# pass replace ::/88 ::/89 ::/90 ::/91 ::/92 ::/93 ::/94 ::/95 +8 addresses added. +8 addresses deleted. +# pass show + ::/88 + ::/89 + ::/90 + ::/91 + ::/92 + ::/93 + ::/94 + ::/95 +# pass replace -n ::/96 ::/97 ::/98 ::/99 ::/100 ::/101 ::/102 ::/103 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/96 ::/97 ::/98 ::/99 ::/100 ::/101 ::/102 ::/103 +A ::/100 +A ::/101 +A ::/102 +A ::/103 +A ::/96 +A ::/97 +A ::/98 +A ::/99 +D ::/88 +D ::/89 +D ::/90 +D ::/91 +D ::/92 +D ::/93 +D ::/94 +D ::/95 +# pass replace -nqvv ::/96 ::/97 ::/98 ::/99 ::/100 ::/101 ::/102 ::/103 +A ::/100 +A ::/101 +A ::/102 +A ::/103 +A ::/96 +A ::/97 +A ::/98 +A ::/99 +D ::/88 +D ::/89 +D ::/90 +D ::/91 +D ::/92 +D ::/93 +D ::/94 +D ::/95 +# pass replace ::/96 ::/97 ::/98 ::/99 ::/100 ::/101 ::/102 ::/103 +8 addresses added. +8 addresses deleted. +# pass show + ::/100 + ::/101 + ::/102 + ::/103 + ::/96 + ::/97 + ::/98 + ::/99 +# pass replace -n ::/104 ::/105 ::/106 ::/107 ::/108 ::/109 ::/110 ::/111 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/104 ::/105 ::/106 ::/107 ::/108 ::/109 ::/110 ::/111 +A ::/104 +A ::/105 +A ::/106 +A ::/107 +A ::/108 +A ::/109 +A ::/110 +A ::/111 +D ::/100 +D ::/101 +D ::/102 +D ::/103 +D ::/96 +D ::/97 +D ::/98 +D ::/99 +# pass replace -nqvv ::/104 ::/105 ::/106 ::/107 ::/108 ::/109 ::/110 ::/111 +A ::/104 +A ::/105 +A ::/106 +A ::/107 +A ::/108 +A ::/109 +A ::/110 +A ::/111 +D ::/100 +D ::/101 +D ::/102 +D ::/103 +D ::/96 +D ::/97 +D ::/98 +D ::/99 +# pass replace ::/104 ::/105 ::/106 ::/107 ::/108 ::/109 ::/110 ::/111 +8 addresses added. +8 addresses deleted. +# pass show + ::/104 + ::/105 + ::/106 + ::/107 + ::/108 + ::/109 + ::/110 + ::/111 +# pass replace -n ::/112 ::/113 ::/114 ::/115 ::/116 ::/117 ::/118 ::/119 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/112 ::/113 ::/114 ::/115 ::/116 ::/117 ::/118 ::/119 +A ::/112 +A ::/113 +A ::/114 +A ::/115 +A ::/116 +A ::/117 +A ::/118 +A ::/119 +D ::/104 +D ::/105 +D ::/106 +D ::/107 +D ::/108 +D ::/109 +D ::/110 +D ::/111 +# pass replace -nqvv ::/112 ::/113 ::/114 ::/115 ::/116 ::/117 ::/118 ::/119 +A ::/112 +A ::/113 +A ::/114 +A ::/115 +A ::/116 +A ::/117 +A ::/118 +A ::/119 +D ::/104 +D ::/105 +D ::/106 +D ::/107 +D ::/108 +D ::/109 +D ::/110 +D ::/111 +# pass replace ::/112 ::/113 ::/114 ::/115 ::/116 ::/117 ::/118 ::/119 +8 addresses added. +8 addresses deleted. +# pass show + ::/112 + ::/113 + ::/114 + ::/115 + ::/116 + ::/117 + ::/118 + ::/119 +# pass replace -n ::/120 ::/121 ::/122 ::/123 ::/124 ::/125 ::/126 ::/127 +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nf- +8 addresses added (dummy). +8 addresses deleted (dummy). +# pass replace -nqv ::/120 ::/121 ::/122 ::/123 ::/124 ::/125 ::/126 ::/127 +A ::/120 +A ::/121 +A ::/122 +A ::/123 +A ::/124 +A ::/125 +A ::/126 +A ::/127 +D ::/112 +D ::/113 +D ::/114 +D ::/115 +D ::/116 +D ::/117 +D ::/118 +D ::/119 +# pass replace -nqvv ::/120 ::/121 ::/122 ::/123 ::/124 ::/125 ::/126 ::/127 +A ::/120 +A ::/121 +A ::/122 +A ::/123 +A ::/124 +A ::/125 +A ::/126 +A ::/127 +D ::/112 +D ::/113 +D ::/114 +D ::/115 +D ::/116 +D ::/117 +D ::/118 +D ::/119 +# pass replace ::/120 ::/121 ::/122 ::/123 ::/124 ::/125 ::/126 ::/127 +8 addresses added. +8 addresses deleted. +# pass show + ::/120 + ::/121 + ::/122 + ::/123 + ::/124 + ::/125 + ::/126 + ::/127 +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 83 allocated, 83 released, 0 leaked. +kentry: 640 allocated, 640 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfr6.in b/src/regress/sbin/pfctl/pfr6.in new file mode 100644 index 000000000..c5e9dd316 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr6.in @@ -0,0 +1,13 @@ +# negated addresses and networks +pass add 1.1.1.1 !1.1.1.2 10.10/16 !10.11/16 ::1 !::2 +pass show +pass replace 1.1.1.1 !1.1.1.2 !!1.1.1.3 !!!1.1.1.4 +pass show +pass replace fe80::/16 !fe81::/16 !!fe82::/16 !!!fe83::/16 +pass show +pass replace 10/8 !10.10/16 10.10.10/24 !10.10.10.10 +pass add fe80::/16 !fe80:fe80::/32 fe80:fe80:fe80::/48 +pass show +pass test 10.1.1.1 10.10.10.1 +fail test 11.1.1.1 10.10.1.1 10.10.10.10 +fail test 10.1.1.1 11.1.1.1 diff --git a/src/regress/sbin/pfctl/pfr6.ok b/src/regress/sbin/pfctl/pfr6.ok new file mode 100644 index 000000000..14da64a8d --- /dev/null +++ b/src/regress/sbin/pfctl/pfr6.ok @@ -0,0 +1,151 @@ +# create +# pass add -n 1.1.1.1 !1.1.1.2 10.10/16 !10.11/16 ::1 !::2 +6/6 addresses added (dummy). +# pass add -nf- +6/6 addresses added (dummy). +# pass add -nqv 1.1.1.1 !1.1.1.2 10.10/16 !10.11/16 ::1 !::2 +A 1.1.1.1 +A 10.10.0.0/16 +A ::1 +A !1.1.1.2 +A !10.11.0.0/16 +A !::2 +# pass add -nqvv 1.1.1.1 !1.1.1.2 10.10/16 !10.11/16 ::1 !::2 +A 1.1.1.1 +A 10.10.0.0/16 +A ::1 +A !1.1.1.2 +A !10.11.0.0/16 +A !::2 +# pass add 1.1.1.1 !1.1.1.2 10.10/16 !10.11/16 ::1 !::2 +6/6 addresses added. +# pass show + 1.1.1.1 + 10.10.0.0/16 + ::1 + !1.1.1.2 + !10.11.0.0/16 + !::2 +# pass replace -n 1.1.1.1 !1.1.1.2 !!1.1.1.3 !!!1.1.1.4 +2 addresses added (dummy). +4 addresses deleted (dummy). +# pass replace -nf- +2 addresses added (dummy). +4 addresses deleted (dummy). +# pass replace -nqv 1.1.1.1 !1.1.1.2 !!1.1.1.3 !!!1.1.1.4 +A 1.1.1.3 +A !1.1.1.4 +D 10.10.0.0/16 +D ::1 +D !10.11.0.0/16 +D !::2 +# pass replace -nqvv 1.1.1.1 !1.1.1.2 !!1.1.1.3 !!!1.1.1.4 + 1.1.1.1 + !1.1.1.2 +A 1.1.1.3 +A !1.1.1.4 +D 10.10.0.0/16 +D ::1 +D !10.11.0.0/16 +D !::2 +# pass replace 1.1.1.1 !1.1.1.2 !!1.1.1.3 !!!1.1.1.4 +2 addresses added. +4 addresses deleted. +# pass show + 1.1.1.1 + 1.1.1.3 + !1.1.1.2 + !1.1.1.4 +# pass replace -n fe80::/16 !fe81::/16 !!fe82::/16 !!!fe83::/16 +4 addresses added (dummy). +4 addresses deleted (dummy). +# pass replace -nf- +4 addresses added (dummy). +4 addresses deleted (dummy). +# pass replace -nqv fe80::/16 !fe81::/16 !!fe82::/16 !!!fe83::/16 +A fe80::/16 +A fe82::/16 +A !fe81::/16 +A !fe83::/16 +D 1.1.1.1 +D 1.1.1.3 +D !1.1.1.2 +D !1.1.1.4 +# pass replace -nqvv fe80::/16 !fe81::/16 !!fe82::/16 !!!fe83::/16 +A fe80::/16 +A fe82::/16 +A !fe81::/16 +A !fe83::/16 +D 1.1.1.1 +D 1.1.1.3 +D !1.1.1.2 +D !1.1.1.4 +# pass replace fe80::/16 !fe81::/16 !!fe82::/16 !!!fe83::/16 +4 addresses added. +4 addresses deleted. +# pass show + fe80::/16 + fe82::/16 + !fe81::/16 + !fe83::/16 +# pass replace -n 10/8 !10.10/16 10.10.10/24 !10.10.10.10 +4 addresses added (dummy). +4 addresses deleted (dummy). +# pass replace -nf- +4 addresses added (dummy). +4 addresses deleted (dummy). +# pass replace -nqv 10/8 !10.10/16 10.10.10/24 !10.10.10.10 +A 10.0.0.0/8 +A 10.10.10.0/24 +A !10.10.0.0/16 +A !10.10.10.10 +D fe80::/16 +D fe82::/16 +D !fe81::/16 +D !fe83::/16 +# pass replace -nqvv 10/8 !10.10/16 10.10.10/24 !10.10.10.10 +A 10.0.0.0/8 +A 10.10.10.0/24 +A !10.10.0.0/16 +A !10.10.10.10 +D fe80::/16 +D fe82::/16 +D !fe81::/16 +D !fe83::/16 +# pass replace 10/8 !10.10/16 10.10.10/24 !10.10.10.10 +4 addresses added. +4 addresses deleted. +# pass add -n fe80::/16 !fe80:fe80::/32 fe80:fe80:fe80::/48 +3/3 addresses added (dummy). +# pass add -nf- +3/3 addresses added (dummy). +# pass add -nqv fe80::/16 !fe80:fe80::/32 fe80:fe80:fe80::/48 +A fe80::/16 +A fe80:fe80:fe80::/48 +A !fe80:fe80::/32 +# pass add -nqvv fe80::/16 !fe80:fe80::/32 fe80:fe80:fe80::/48 +A fe80::/16 +A fe80:fe80:fe80::/48 +A !fe80:fe80::/32 +# pass add fe80::/16 !fe80:fe80::/32 fe80:fe80:fe80::/48 +3/3 addresses added. +# pass show + 10.0.0.0/8 + 10.10.10.0/24 + fe80::/16 + fe80:fe80:fe80::/48 + !10.10.0.0/16 + !10.10.10.10 + !fe80:fe80::/32 +# pass test 10.1.1.1 10.10.10.1 +2/2 addresses match. +# fail test 11.1.1.1 10.10.1.1 10.10.10.10 +0/3 addresses match. +# fail test 10.1.1.1 11.1.1.1 +1/2 addresses match. +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 28 allocated, 28 released, 0 leaked. +kentry: 95 allocated, 95 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfr7.in b/src/regress/sbin/pfctl/pfr7.in new file mode 100644 index 000000000..47e9125e4 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr7.in @@ -0,0 +1,3 @@ +# invalid addresses +fail add 1.2.3.4.5 +fail add :80 diff --git a/src/regress/sbin/pfctl/pfr7.ok b/src/regress/sbin/pfctl/pfr7.ok new file mode 100644 index 000000000..07b66b320 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr7.ok @@ -0,0 +1,11 @@ +# create +# fail add 1.2.3.4.5 +no IP address found for 1.2.3.4.5 +# fail add :80 +no IP address found for :80 +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 3 allocated, 3 released, 0 leaked. +kentry: 0 allocated, 0 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfr8.in b/src/regress/sbin/pfctl/pfr8.in new file mode 100644 index 000000000..49ef4af47 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr8.in @@ -0,0 +1,3 @@ +# hostname translations +pass add localhost +fail add invalid$host diff --git a/src/regress/sbin/pfctl/pfr8.ok b/src/regress/sbin/pfctl/pfr8.ok new file mode 100644 index 000000000..5e574729f --- /dev/null +++ b/src/regress/sbin/pfctl/pfr8.ok @@ -0,0 +1,21 @@ +# create +# pass add -n localhost +2/2 addresses added (dummy). +# pass add -nf- +2/2 addresses added (dummy). +# pass add -nqv localhost +A 127.0.0.1 +A ::1 +# pass add -nqvv localhost +A 127.0.0.1 +A ::1 +# pass add localhost +2/2 addresses added. +# fail add invalid$host +no IP address found for invalid$host +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 8 allocated, 8 released, 0 leaked. +kentry: 10 allocated, 10 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfr9.in b/src/regress/sbin/pfctl/pfr9.in new file mode 100644 index 000000000..8b11c82e9 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr9.in @@ -0,0 +1,8 @@ +# duplicate handling +pass add 1.2.3.4 ::1 1.2.3.4 ::1 +pass add 1.2.3.4 ::1 1.2.3.4 ::1 +pass delete 1.2.3.4 ::1 1.2.3.4 ::1 +pass delete 1.2.3.4 ::1 1.2.3.4 ::1 +pass replace 1.2.3.4 ::1 1.2.3.4 ::1 +pass replace 1.2.3.4 ::1 1.2.3.4 ::1 +pass show diff --git a/src/regress/sbin/pfctl/pfr9.ok b/src/regress/sbin/pfctl/pfr9.ok new file mode 100644 index 000000000..f9e01b469 --- /dev/null +++ b/src/regress/sbin/pfctl/pfr9.ok @@ -0,0 +1,96 @@ +# create +# pass add -n 1.2.3.4 ::1 1.2.3.4 ::1 +2/4 addresses added (dummy). +# pass add -nf- +2/4 addresses added (dummy). +# pass add -nqv 1.2.3.4 ::1 1.2.3.4 ::1 +A 1.2.3.4 +A ::1 +X 1.2.3.4 +X ::1 +# pass add -nqvv 1.2.3.4 ::1 1.2.3.4 ::1 +A 1.2.3.4 +A ::1 +X 1.2.3.4 +X ::1 +# pass add 1.2.3.4 ::1 1.2.3.4 ::1 +2/4 addresses added. +# pass add -n 1.2.3.4 ::1 1.2.3.4 ::1 +0/4 addresses added (dummy). +# pass add -nf- +0/4 addresses added (dummy). +# pass add -nqv 1.2.3.4 ::1 1.2.3.4 ::1 +# pass add -nqvv 1.2.3.4 ::1 1.2.3.4 ::1 + 1.2.3.4 + 1.2.3.4 + ::1 + ::1 +# pass add 1.2.3.4 ::1 1.2.3.4 ::1 +0/4 addresses added. +# pass delete -n 1.2.3.4 ::1 1.2.3.4 ::1 +2/4 addresses deleted (dummy). +# pass delete -nf- +2/4 addresses deleted (dummy). +# pass delete -nqv 1.2.3.4 ::1 1.2.3.4 ::1 +D 1.2.3.4 +D ::1 +X 1.2.3.4 +X ::1 +# pass delete -nqvv 1.2.3.4 ::1 1.2.3.4 ::1 +D 1.2.3.4 +D ::1 +X 1.2.3.4 +X ::1 +# pass delete 1.2.3.4 ::1 1.2.3.4 ::1 +2/4 addresses deleted. +# pass delete -n 1.2.3.4 ::1 1.2.3.4 ::1 +0/4 addresses deleted (dummy). +# pass delete -nf- +0/4 addresses deleted (dummy). +# pass delete -nqv 1.2.3.4 ::1 1.2.3.4 ::1 +# pass delete -nqvv 1.2.3.4 ::1 1.2.3.4 ::1 + 1.2.3.4 + 1.2.3.4 + ::1 + ::1 +# pass delete 1.2.3.4 ::1 1.2.3.4 ::1 +0/4 addresses deleted. +# pass replace -n 1.2.3.4 ::1 1.2.3.4 ::1 +2 addresses added (dummy). +# pass replace -nf- +2 addresses added (dummy). +# pass replace -nqv 1.2.3.4 ::1 1.2.3.4 ::1 +A 1.2.3.4 +A ::1 +X 1.2.3.4 +X ::1 +# pass replace -nqvv 1.2.3.4 ::1 1.2.3.4 ::1 +A 1.2.3.4 +A ::1 +X 1.2.3.4 +X ::1 +# pass replace 1.2.3.4 ::1 1.2.3.4 ::1 +2 addresses added. +# pass replace -n 1.2.3.4 ::1 1.2.3.4 ::1 +no changes (dummy). +# pass replace -nf- +no changes (dummy). +# pass replace -nqv 1.2.3.4 ::1 1.2.3.4 ::1 +X 1.2.3.4 +X ::1 +# pass replace -nqvv 1.2.3.4 ::1 1.2.3.4 ::1 + 1.2.3.4 + ::1 +X 1.2.3.4 +X ::1 +# pass replace 1.2.3.4 ::1 1.2.3.4 ::1 +no changes. +# pass show + 1.2.3.4 + ::1 +# kill +1 tables deleted. +rules cleared +nat cleared +ktable: 23 allocated, 23 released, 0 leaked. +kentry: 20 allocated, 20 released, 0 leaked. diff --git a/src/regress/sbin/pfctl/pfsetup1.clean b/src/regress/sbin/pfctl/pfsetup1.clean new file mode 100644 index 000000000..da10135a5 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup1.clean @@ -0,0 +1,2 @@ +ifconfig lo1000010 inet 192.168.0.1 netmask 0xffffff00 delete -link1 +ifconfig lo1000010 destroy diff --git a/src/regress/sbin/pfctl/pfsetup1.in b/src/regress/sbin/pfctl/pfsetup1.in new file mode 100644 index 000000000..704225167 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup1.in @@ -0,0 +1 @@ +pass in from any to lo1000010 diff --git a/src/regress/sbin/pfctl/pfsetup1.ok b/src/regress/sbin/pfctl/pfsetup1.ok new file mode 100644 index 000000000..ba3f045f9 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup1.ok @@ -0,0 +1 @@ +pass in inet from any to 192.168.0.1/24 flags S/SA keep state diff --git a/src/regress/sbin/pfctl/pfsetup1.setup b/src/regress/sbin/pfctl/pfsetup1.setup new file mode 100644 index 000000000..34d0b200f --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup1.setup @@ -0,0 +1,2 @@ +ifconfig lo1000010 create +ifconfig lo1000010 inet 192.168.0.1 netmask 0xffffff00 link1 diff --git a/src/regress/sbin/pfctl/pfsetup2.clean b/src/regress/sbin/pfctl/pfsetup2.clean new file mode 100644 index 000000000..b6fd84de2 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup2.clean @@ -0,0 +1,2 @@ +ifconfig lo1000010 destroy + diff --git a/src/regress/sbin/pfctl/pfsetup2.in b/src/regress/sbin/pfctl/pfsetup2.in new file mode 100644 index 000000000..c5da6b8f7 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup2.in @@ -0,0 +1,4 @@ +#test tbrsize calculation + +altq on lo1000010 bandwidth 10Mb cbq queue { openbsd rocks } +queue openbsd cbq(default) diff --git a/src/regress/sbin/pfctl/pfsetup2.ok b/src/regress/sbin/pfctl/pfsetup2.ok new file mode 100644 index 000000000..8884febb4 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup2.ok @@ -0,0 +1,2 @@ +altq on lo1000010 cbq bandwidth 10Mb tbrsize 6000 queue { openbsd rocks } +queue openbsd cbq( default ) diff --git a/src/regress/sbin/pfctl/pfsetup2.setup b/src/regress/sbin/pfctl/pfsetup2.setup new file mode 100644 index 000000000..58969b725 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup2.setup @@ -0,0 +1,2 @@ +ifconfig lo1000010 create +ifconfig lo1000010 mtu 1500 diff --git a/src/regress/sbin/pfctl/pfsetup3.clean b/src/regress/sbin/pfctl/pfsetup3.clean new file mode 100644 index 000000000..fe86a9e89 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup3.clean @@ -0,0 +1 @@ +ifconfig lo1000010 destroy diff --git a/src/regress/sbin/pfctl/pfsetup3.in b/src/regress/sbin/pfctl/pfsetup3.in new file mode 100644 index 000000000..c5da6b8f7 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup3.in @@ -0,0 +1,4 @@ +#test tbrsize calculation + +altq on lo1000010 bandwidth 10Mb cbq queue { openbsd rocks } +queue openbsd cbq(default) diff --git a/src/regress/sbin/pfctl/pfsetup3.ok b/src/regress/sbin/pfctl/pfsetup3.ok new file mode 100644 index 000000000..984ba0d8f --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup3.ok @@ -0,0 +1,2 @@ +altq on lo1000010 cbq bandwidth 10Mb tbrsize 32000 queue { openbsd rocks } +queue openbsd cbq( default ) diff --git a/src/regress/sbin/pfctl/pfsetup3.setup b/src/regress/sbin/pfctl/pfsetup3.setup new file mode 100644 index 000000000..d84d1ddcf --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup3.setup @@ -0,0 +1,2 @@ +ifconfig lo1000010 create +ifconfig lo1000010 mtu 8000 diff --git a/src/regress/sbin/pfctl/pfsetup4.clean b/src/regress/sbin/pfctl/pfsetup4.clean new file mode 100644 index 000000000..db14d1de1 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup4.clean @@ -0,0 +1 @@ +ifconfig lo1000000 inet 192.168.0.1 netmask 0xffffff00 delete diff --git a/src/regress/sbin/pfctl/pfsetup4.in b/src/regress/sbin/pfctl/pfsetup4.in new file mode 100644 index 000000000..fcb706e83 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup4.in @@ -0,0 +1,2 @@ +antispoof log quick for { lo0 lo1000000 } inet \ + label "antispoof:$if:$srcaddr:$dstaddr" diff --git a/src/regress/sbin/pfctl/pfsetup4.ok b/src/regress/sbin/pfctl/pfsetup4.ok new file mode 100644 index 000000000..b2a0e0eb6 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup4.ok @@ -0,0 +1,2 @@ +block drop in log quick on ! lo0 inet from 127.0.0.0/8 to any label "antispoof:lo0:127.0.0.0/8:any" +block drop in log quick on ! lo1000000 inet from 192.168.0.0/24 to any label "antispoof:lo1000000:192.168.0.0/24:any" diff --git a/src/regress/sbin/pfctl/pfsetup4.setup b/src/regress/sbin/pfctl/pfsetup4.setup new file mode 100644 index 000000000..96a108177 --- /dev/null +++ b/src/regress/sbin/pfctl/pfsetup4.setup @@ -0,0 +1 @@ +ifconfig lo1000000 inet 192.168.0.1 netmask 0xffffff00 diff --git a/src/regress/sbin/pfctl/pfsimple1.in b/src/regress/sbin/pfctl/pfsimple1.in new file mode 100644 index 000000000..2d9877c8f --- /dev/null +++ b/src/regress/sbin/pfctl/pfsimple1.in @@ -0,0 +1 @@ +block in from any to self diff --git a/src/regress/sbin/pfctl/pfsimple2.in b/src/regress/sbin/pfctl/pfsimple2.in new file mode 100644 index 000000000..4eda73ddc --- /dev/null +++ b/src/regress/sbin/pfctl/pfsimple2.in @@ -0,0 +1,7 @@ +# load tables from file +table persist file "/dev/null" +table persist file "/dev/null" file "/dev/null" +table persist { !127.0.0.1 } file "/dev/null" +table persist file "/dev/null" { 3.3.3.3 } +table persist { 10.0.0.1 } file "/dev/null" { !10.0.0.12 } +table { 10.0.0.1 } const file "/dev/null" persist diff --git a/src/regress/sbin/route/CVS/Entries b/src/regress/sbin/route/CVS/Entries new file mode 100644 index 000000000..84057f863 --- /dev/null +++ b/src/regress/sbin/route/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.2/Wed Dec 29 04:39:17 2004// +D diff --git a/src/regress/sbin/route/CVS/Repository b/src/regress/sbin/route/CVS/Repository new file mode 100644 index 000000000..9adbb0d01 --- /dev/null +++ b/src/regress/sbin/route/CVS/Repository @@ -0,0 +1 @@ +src/regress/sbin/route diff --git a/src/regress/sbin/route/CVS/Root b/src/regress/sbin/route/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sbin/route/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sbin/route/Makefile b/src/regress/sbin/route/Makefile new file mode 100644 index 000000000..167b9b9b7 --- /dev/null +++ b/src/regress/sbin/route/Makefile @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile,v 1.2 2004/12/29 04:39:17 david Exp $ + +NET= 192.0.3.0 +MASK= 255.255.255.0 +GW= 192.0.2.1 + +netmask: +.for cmd in add delete +.for mod in -net -dst + @${SUDO} route -nt ${cmd} ${mod} ${NET}/24 ${GW} + @${SUDO} route -nt ${cmd} ${mod} ${NET} -netmask ${MASK} ${GW} +.endfor +.endfor + +REGRESS_TARGETS=netmask +REGRESS_ROOT_TARGETS=${REGRESS_TARGETS} +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/sbin/route/obj b/src/regress/sbin/route/obj new file mode 120000 index 000000000..698a754c6 --- /dev/null +++ b/src/regress/sbin/route/obj @@ -0,0 +1 @@ +/usr/obj/regress/sbin/route \ No newline at end of file diff --git a/src/regress/share/CVS/Entries b/src/regress/share/CVS/Entries new file mode 100644 index 000000000..5e0c202df --- /dev/null +++ b/src/regress/share/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.3/Sat Feb 23 01:25:11 2002// +D/man//// diff --git a/src/regress/share/CVS/Repository b/src/regress/share/CVS/Repository new file mode 100644 index 000000000..77d1d4f49 --- /dev/null +++ b/src/regress/share/CVS/Repository @@ -0,0 +1 @@ +src/regress/share diff --git a/src/regress/share/CVS/Root b/src/regress/share/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/share/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/share/Makefile b/src/regress/share/Makefile new file mode 100644 index 000000000..45ff50243 --- /dev/null +++ b/src/regress/share/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.3 2002/02/23 01:25:11 art Exp $ +# $NetBSD: Makefile,v 1.5 1995/04/20 22:37:12 cgd Exp $ + +SUBDIR+= man + +install: + +.include diff --git a/src/regress/share/man/CVS/Entries b/src/regress/share/man/CVS/Entries new file mode 100644 index 000000000..e94f4fd0f --- /dev/null +++ b/src/regress/share/man/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.9/Mon Sep 2 20:01:43 2002// +/cfman/1.5/Tue May 15 22:00:38 2007// +/no3man/1.2/Mon Jan 29 02:05:49 2001// +/scatman/1.2/Mon Jan 29 02:05:50 2001// +D diff --git a/src/regress/share/man/CVS/Repository b/src/regress/share/man/CVS/Repository new file mode 100644 index 000000000..3836f912a --- /dev/null +++ b/src/regress/share/man/CVS/Repository @@ -0,0 +1 @@ +src/regress/share/man diff --git a/src/regress/share/man/CVS/Root b/src/regress/share/man/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/share/man/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/share/man/Makefile b/src/regress/share/man/Makefile new file mode 100644 index 000000000..218b948f6 --- /dev/null +++ b/src/regress/share/man/Makefile @@ -0,0 +1,14 @@ +# $OpenBSD: Makefile,v 1.9 2002/09/02 20:01:43 avsm Exp $ + +REGRESS_TARGETS=do-cfman do-no3man do-scatman +REGRESS_SLOW_TARGETS=${REGRESS_TARGETS} + +do-cfman: + perl ${.CURDIR}/cfman /usr/share/man +do-no3man: + perl ${.CURDIR}/no3man /usr/share/man +do-scatman: + perl ${.CURDIR}/scatman /usr/share/man + +.include + diff --git a/src/regress/share/man/cfman b/src/regress/share/man/cfman new file mode 100644 index 000000000..eba6b2bf4 --- /dev/null +++ b/src/regress/share/man/cfman @@ -0,0 +1,871 @@ +#!/usr/bin/perl -w +# $OpenBSD: cfman,v 1.5 2007/05/15 22:00:38 jmc Exp $ + +# +# cfman - make sure manpages have accurate SEE ALSOs +# tchrist@perl.com + +use strict; + +my $VERSION = do { + my @r = (q$Revision: 1.5 $ =~ /\d+/g); + sprintf "%d."."%02d" x $#r, @r; +}; + +my $Debug = 0; + +my($Ignore_Manpath, $CF_File, $CF_Style, + $No_Guessing, $Verbose, $Rebuild_Indices); + +parse_opts(); + +my $Manpath = get_manpath(); +print "MANPATH is $Manpath\n" if $Debug; + +check_can_whence(); + +# (re)set to what we've computed so that when we launch man below, +# it'll use the specified or inferred manpath. + +unless ($Ignore_Manpath) { + print "Limiting external manpath\n" if $Debug; + $ENV{MANPATH} = $Manpath; +} + +for my $tree (split /:/, $Manpath) { + print "tree chdir('$tree')\n" if $Debug > 1; + chdir($tree) || die "cannot cd to main tree $tree: $!"; + + for my $mandir ( grep { -d } <{man,cat}*> ) { + print "subdir chdir('$tree/$mandir')\n" if $Debug > 1; + chdir("$tree/$mandir") || die "cannot cd to subdir $tree/$mandir: $!"; + my($ext, @pages); + ($ext = $mandir) =~ s/^(?:cat|man)//; + for (@pages = <*.*>) { + s/\.gz$//; + s/\.(?:0|${ext}\w*)$//; + } + my $option = adjust_ext($ext); + for my $page (@pages) { + print "man $option $page\n" if $Debug > 1; + open(MAN, "man $option $page 2>&1 | col -b |") + or die "cannot fork man lookup: $!"; + local $/ = ''; + while () { + next unless /^SEE ALSO/ || + $_ eq "S\bSE\bEE\bE A\bAL\bLS\bSO\bO\n"; + s/.\010//g; + s/-\n\s*//g; + my @refs = /\S+\(\S+\)/g; + print "$page.$ext SEE ALSOs @refs\n" if $Debug > 2; + for my $ref (@refs) { + my $place = whereis($ref); + if ($place =~ /\*\*\*/ || $Debug || $Verbose) { + print "$page.$ext: $ref -> $place\n"; + } + } + last; + } + 1 while ; # drain to suppress broken pipe + close(MAN) || warn "close on man $option $page failed"; + } + } + +} + +sub usage { + print STDERR "@_\n" if @_; + die "Usage: $0 [-hdrivg] [-f cf-file] [-s cf-style] [mandir ...]\n"; +} + +sub run_help { + my $pager; + unless ($pager = $ENV{PAGER}) { + require Config; + # lint happiness. blech. + $pager = $Config::Config{'pager'} || $Config::Config{'pager'}; + } + + $pager = "/bin/cat" unless has_cmd($pager); + + if (has_cmd("pod2man") && has_cmd("nroff") ) { + { exec("pod2man $0 | nroff -man | $pager") } # lint happiness + warn "exec of pod2man | nroff | $pager failed: $!"; + } + + if (has_cmd("pod2text")) { + { exec("pod2text $0 | $pager") } # lint happiness + warn "exec of pod2text | $pager failed: $!"; + } + + # sucks to be you! + + if (eval q{ require Pod::Text; 1; }) { + open (STDOUT, "| $pager") || die "no pager $pager: $!"; + # this forces a wait on child if needed + sub END { close(STDOUT) || die "cannot close STDOUT: $!" } + Pod::Text::pod2text($0); + exit 0; + } + + # it REALLY REALLY REALLY sucks to be you! + open 0 or die "$0: cannot open myself: $!"; + $/ = ''; + while (<0>) { + last if /__(END|DATA)__/; # must be careful here + } + print <0>; + exit; +} + + +sub has_cmd { + my $cmd = shift; + for (split(/:/, $ENV{PATH})) { + my $path = "$_/$cmd"; + return $path if -f $path && -x _; + } + return; +} + +sub parse_opts { +ARG: while (@ARGV && $ARGV[0] =~ s/^-(?=.)//) { +OPT: for (shift @ARGV) { # getopts is for wimps + m/^$/ && do { next ARG; }; + m/^-$/ && do { last ARG; }; + s/^d// && do { $Debug++; redo OPT; }; + s/^i// && do { $Ignore_Manpath++; redo OPT; }; + s/^g// && do { $No_Guessing++; redo OPT; }; + s/^v// && do { $Verbose++; redo OPT; }; + s/^r// && do { $Rebuild_Indices++; redo OPT; }; + s/^f(.*)// && do { $CF_File = $1 || shift @ARGV; next ARG; }; + s/^s(.*)// && do { $CF_Style = $1 || shift @ARGV; next ARG; }; + + m/^-h(elp)?$/ # stupid fsf broken crappy excuse for real manpages + && do { run_help(); exit; }; + + usage("unknown option: -$_"); + } + } + + if ($CF_Style && !$CF_File) { + for (glob("/etc/man*.c*f*")) { + $CF_File = $_; + last; + } + print "Guessed CF file of $CF_File\n" if $Debug; + } + +} + +{ # extra scope for function private "static" variable + my $linux_griped = 0; + sub get_osname { + my $name = $^O; + + if ($name eq 'linux' && ! $linux_griped++ + && (! $CF_Style || $CF_Style eq 'linux') ) + { + # there are many different linux operating systems, and + # it torques me off that they pretend there aren't. + # i have no idea whether this works anywhere but redhat. + warn "$0: Your osname claims linux; assuming redhat instead\n"; + } + + return $name; + } +} + + +# everything beneath here should be in a module + +{ # extra scope for function private "static" variable + my %Whereis; + sub whereis { + my $manref = shift; + my ($page, $ext) = $manref =~ /(\S+)\((\S+)\)/; + $ext = lc($ext); + return $Whereis{$page, $ext} if $Whereis{$page, $ext}; + if ($Rebuild_Indices) { + $Whereis{$page, $ext} = "*** No manual entry for $page "; + if ($Whereis{$page}) { + $Whereis{$page, $ext} .= "(really in $Whereis{$page})"; + } + return $Whereis{$page, $ext}; + } + + my $swext = adjust_ext($ext); + + print "man -w $swext '$page'\n" if $Debug > 1; + + ($Whereis{$page, $ext} = `man -w $swext '$page' 2>&1 `) =~ s/\n/ /g; + if ($?) { + $Whereis{$page, $ext} =~ s/^/*** /; + print "man -w -a '$page'\n" if $Debug > 1; + my $try_again = `man -w -a '$page' 2>&1 `; + if (! $?) { + $try_again =~ s/\n/ /g; +#/: (\S+)\(([^\s)]+)\).*cat\Q$ext\E.*\b\Q$page\E\.0/ + if ($try_again =~ /\bcat\Q$ext\E.*\b\Q$page\E\.0/) { + $Whereis{$page, $ext} = $try_again; + print "BSD REALLY: $page.$ext really in $try_again\n" + if $Debug > 1; + } else { + $Whereis{$page, $ext} =~ s/$/ (really $try_again)/; + } + } + } + return $Whereis{$page, $ext}; + } + + sub check_can_whence { + if (! $Rebuild_Indices) { + # stupid solaris sh bug. how stupid can these + # people be? + system "(man -w man) 2>&1 > /dev/null"; + return unless $?; + warn "$0: Your system is stupid: it cannot whence.\n"; + } + + $Rebuild_Indices++; + + print "$0: Hold on, this may take a while....\n"; + + if (get_osname() eq 'solaris') { + for my $dir (split /:/, $Manpath) { + local *WINDEX; + next unless open(WINDEX, "< $dir/windex"); + print "reading $dir/windex\n" if $Debug; + local $_; + while () { + next unless /^(\S+)\s+(\S+)\s+\((\S+)\)/; + my ($name, $page, $ext) = ($1, $2, $3); + $Whereis{$name} .= "$dir/man$ext/$page.$ext "; + $Whereis{$page,$ext} = "$dir/man$ext/$page.$ext"; + } + } + } + else { + for my $tree (split /:/, $Manpath) { + print "reading $tree directory entries\n" if $Debug; + for my $dir ( glob("$tree/man*") ) { + next unless -d $dir; + local *DH; + opendir(DH, $dir) || die "cannot opendir $dir: $!"; + my @pages = grep { /[^.].*\./ } readdir(DH); + closedir DH; + my($section) = $dir =~ /man([^\/]+)$/; + for my $page ( @pages ) { + my $name; + $page =~ s/\.gz$//; + my $ext; + unless (index($page, ".$section") >= 0) { + warn "wrong section for $dir/$page\n"; + } + ($name = $page) =~ s/\.([^.]*)$//; + $ext = $1; + die "no ext in $page" unless $ext; + die "no name" unless $name; + $Whereis{$name,$ext} = "$dir/$name.$ext"; + $Whereis{$name} .= "$dir/$page "; + } + } + } + } + } + +} + +# add a -s or a -S or no flag for calling up +# a page from a particular section +sub adjust_ext { + my $ext = shift; + my $osname = $^O; + + if ($osname eq 'solaris') { + # stupid solaris REQUIRES this -s crap; + # they don't understand -S either + $ext = "-s $ext"; + } + elsif ($osname eq 'freebsd') { + # stupid freebsd FORBIDS the -s + # they also require a -S if it's a two-char word, + # like "man 3x curs_util". it doesn't harm in any event, + # so do it anyway + $ext = "-S $ext"; + } + elsif ($osname eq 'linux') { + # stupid redhat FORBIDS the -s; + # they tolerate -S, however. but unlike bsd, they + # don't seem to require it for 3x sections. interesting. + $ext = "-S $ext"; + } + elsif ($osname eq 'openbsd') { + # openbsd neither requires nor forbids -s nor -S, + # which both mean the same thing. + # + # then again, they still need it for two-char words, + # so do it anyway. Seems dumb. Config issue? + $ext = "-S $ext"; + } + + return $ext; +} + +sub get_manpath { + my $pathstr; + + if (@ARGV) { + return join ":", @ARGV; + } + + if ($ENV{MANPATH} && ! $Ignore_Manpath) { + return $ENV{MANPATH}; + } + + my $osname = get_osname(); + + if ($CF_File) { + $pathstr = readcf($CF_File, $CF_Style || $osname); + return $pathstr if $pathstr; + } + + if ($osname eq 'freebsd') { + # freebsd has a manpath program + $pathstr = run_manpath() || readcf('/etc/manpath.config'); + } + elsif ($osname eq 'openbsd') { + # but openbsd does not + $pathstr = readcf('/etc/man.conf'); + } + elsif ($osname eq 'linux') { + # this sucks - osname should say which linux we have. idiots. + $pathstr = readcf('/etc/man.config'); + } + else { + if ($CF_File && $CF_Style) { + $pathstr = readcf($CF_File, $CF_Style); + } else { + $pathstr = run_manpath() || compute_manpath(); + } + } + + unless ($pathstr) { + for (qw( /usr/man /usr/share/man )) { + next unless -d; + $pathstr = $_; + warn "no manpath set, assuming $_.\n"; + last; + } + die "cannot find any manpages" unless $pathstr; + } + + return $pathstr; + +} + +# traverse binpath and guess +sub compute_manpath { + return if $No_Guessing; + my (@manpath, %seen); + for (split(/:/, $ENV{PATH})) { + next if /^\.?$/; # don't care about dot dirs + if (s![^/+]*$!man! && -d && !$seen{$_}++) { + my($dev,$ino) = stat(_); + push(@manpath,$_) unless $seen{$dev,$ino}++; + } + } + print "Guessing manpath of: @manpath\n" if $Debug; + return join(":", @manpath); +} + +# try an external manpath program +sub run_manpath { + # the silly subshell is to dodge a solaris bug + my $path = `(manpath) 2>/dev/null`; + return if $?; + chomp $path; + return $path; +} + +# try reading config files in various formats +sub readcf { + die "readcf(): expected 1 or 2 args" if @_ < 1 || @_ > 2; + + my($cfpath, $ostype) = @_; + + my $pathfunc; + + my @styles = qw/freebsd openbsd redhat/; + + if (@_ == 2) { + $pathfunc = { + 'freebsd' => \&cf_freebsd, + 'openbsd' => \&cf_openbsd, + 'redhat' => \&cf_redhat, + 'linux' => \&cf_redhat, + }->{$ostype} || die "unknown CF style: $ostype (want @styles)"; + } + else { + $pathfunc = { + '/etc/manpath.config' => \&cf_freebsd, + '/etc/man.conf' => \&cf_openbsd, + '/etc/man.config' => \&cf_redhat, + }->{$cfpath} || die "no CF reader for $cfpath"; + } + + local(*CF, $_); + + print "reading CF file $cfpath\n" if $Debug; + + open(CF, "< $cfpath") || die "cannot open $cfpath: $!"; + + my(@dir_list, %seen_dir); + + # we're run the guesser first to catch things in the path. + unless ($No_Guessing) { + for (@dir_list = split /:/, compute_manpath()) { + my($dev,$ino) = stat $_; + $seen_dir{$dev,$ino} = 1; + } + } + + while () { + s/^#.*//; + next unless /\S/; + for (my @newpaths = &$pathfunc) { + # XXX: near-dup code + if (-d && !$seen_dir{$_}++) { + my($dev,$ino) = stat(_); + push(@dir_list,$_) unless $seen_dir{$dev,$ino}++; + } + } + } + + close(CF) || die "cannot close config $cfpath: $!"; + + return join ":", @dir_list; +} + +sub cf_freebsd { + return $1 if /^\s*MANDATORY_MANPATH\s+(\S+)/; + return $1 if /^\s*MANPATH_MAP\s+\S+\s+(\S+)/; + return; + +} + +sub cf_openbsd { + return glob($1) if /^\s*_default\s+(.*\S)\s*$/; + return glob($1) if /^\s*[^_\s]\S+\s+(.*\S)\s*$/; + return; +} + +sub cf_redhat { + return $1 if /^\s*MANPATH\s+(\S+)/; + return $1 if /^\s*MANPATH_MAP\s+\S+\s+(\S+)/; + return; +} + +__END__ + +=head1 NAME + +cfman - make sure manpages have accurate SEE ALSOs + +=head1 SYNOPSIS + +B [B<-hdrivg>] +[B<-f> I] [-B I] [I ...] + +=head1 DESCRIPTION + +The B program attempts to search your system manpages for SEE +ALSO entries that are incorrect. To determine which manpages to look at, +the system's manpage directories are searched. However, to look at the +SEE ALSO list, the man(1) program is called. That's because some systems +have funny ideas about whether pages are installed already formatted +or not. + +For each SEE ALSO reference, we attempt to call B on a +particular page in the references section or subsection it +to figure out the real path. If this fails, we call B +irrespective of section. If it's found somewhere it's not expected, +we still report the problem, as we do if it's not found at all. + +On systems too primitive to support the useful B syntax, we +try to figure it out by hand by reading all the directories first. +On Solaris, we'll look at the I files in each directory. +You can force this behaviour by using the B<-r> option described below. + +=head1 OPTIONS + +Most options can be clustered. + +=over + +=item -d + +Run with debugging. This option is cumulative. Currently +debugging level one through three are provided. + +=item -f I + +Specify a man(1) config file to read in if need be. + +=item -g + +Disable guessing of manpage using current PATH variable. + +=item -h + +Give a help message. Actually, try valiantly to give this manpage, +even if it's not installed. It's very hard to misplace this one. :-) + +=item -i + +Ignore the current manpage. This has two effects. First, it means +that the program will not consult the MANPATH variable for default +paths. Secondly, it will not attempt to reset the MANPATH variable +before calling man(1) to do its work. See examples below. + +=item -r + +Rebuild indices of what is installed where manually. This is a simplistic +check only. We consult each I subdirectory beneath each element +in the list of supplied man directories, and within that, we look for +each page inside. This is necessary on systems that don't support +a B<-w> option to man(1), and will be inferred if needed. It may +be faster than running B that often. + +=item -s I + +Supply a parsing style for the config files. Only three are currently +supported: B, B, and B. + +=item -v + +Verbose mode. This just means that it will show where all the +SEE ALSO references apppear to resolve to, not merely report +the missing or misdirected ones. + +=back + +=head1 EXAMPLES + +Run the program using the current manpath if set, or the +system one otherwise: + + $ cfman + +Run the program against the listed mantrees only. References +to something outside those trees will fail: + + $ cfman /usr/man /usr/X11R6/man + +Run on one tree only, but do not restrict references to being +in those trees only: + + $ cfman -i /usr/local/perl/man + +=head1 ENVIRONMENT + +=over + +=item MANPATH + +The user's current MANPATH is used unless the B<-i> option +is supplied. + +=item PAGER + +This is used to feed the self-generating manpage into. + +=item PATH + +This is used if we need to guess a MANPATH. + +=back + +=head1 FILES + +The system-wide config file (such as I, I, +or I) is used if it's needed. + +Numerous B-related directories and files will be grovelled through, +both directly and indirectly. + +The B, B, and B programs may also be called +for the self-generating manpage in the help message, as may your +B program or preferred pager. + +=head1 SEE ALSO + +In no particular order: man(1), manpath(1), more(1), nroff(1), +pod2man(1), pod2text(1), whatis(1), man.conf(5), man(7), and noman(8). + +=head1 NOTES + +The B<-w> option to the man(1) program was first introduced in the work +presented at the 1990 Usenix LISA conference in Colorado Springs in the +paper entitled title I. This option, +along with several others invented there, have since been adopted by all +modern Unixes. Other work presented in that paper included an earlier +version of this program. Sadly, vendors have been negligently remiss +in their duties since that time. + +The paper is available upon request from the author. It uses the ms(7) +macro set. You have been warned. :-) + +=head1 DIAGNOSTICS + +Classes of diagnostics are as follows. + +=over + +=item N + +A normal message. This is the program's expected output. + +=item D1 + +A level-one debugging message. + +=item D2 + +A level-two debugging message. + +=item W + +A warning. + +=item WI + +An internal warning, with extra diagnostics appended +telling the file name and line number of the problem. + +=item F + +A fatal error. + +=item FI + +An internal fatal error, with extra diagnostics appended +telling the file name and line number of the problem. + +=back + +Any instances of C<%s> below are replaced with a string in the actual +error message. Any instances of C<%M> below are replaced with the +current errno string. + +=over + +=item %s: %s -> %s + +(N) Where a reference resolves to. The first field is the page being +consulted. The second field is what it contains. The third field +is where the reference solves to. If there is no resolution, then a +message beginning with three stars will be emitted. In some cases, +a parenthesized suggestion is made. + +=item cannot fork man lookup: %m + +(FI) Tried to run the man(1) program to parse output, but +couldn't. Usually means out of processes; or sometimes, +command not found. + +=item cannot cd to main tree %s: %m + +(FI) One of the elements in the MANPATH was inaccessible. + +=item cannot cd to subdir: %m + +(FI) One of the subdirectories in one of the MANPATH elements was +inaccessible. + +=item cannot close config %s: %m + +(FI) The config file wouldn't close properly. + +=item cannot close STDOUT: %m + +(FI) The pager used for the help manpage wouldn't close properly. + +=item cannot find any manpages + +(FI) Unable to figure out a manpage any other way, +we tried looking in I and I, +but those weren't there. + +=item cannot open myself: %m + +(FI) In the worst case, we open our own program file to +produce a help page. But that open failed. Strange. + +=item cannot opendir %s: %m + +(FI) One of the subdirectories in a man tree +was inaccessible. + +=item close on man %s failed + +(WI) We were unable to correctly close the pipe +from man(1) we were running to read its SEE ALSO entries. + +=item exec of pod2man | nroff | %s failed: %m + +(WI) We couldn't pod2manify ourselves. Usually this is just +a broken pipe because you exited early. + +=item exec of pod2text | %s failed: %m + +(WI) We couldn't pod2textify ourselves. Usually this is just +a broken pipe because you exited early. + +=item Guessed CF file of %s + +(D1) You specified a parsing style, but no file. +So we guessed one. We look in I for a match. + +=item Guessing manpath of: %s + +(D1) We ran down your binpath and suspected that these +were valid man directories for each piece. + +=item Hold on, this may take a while.... + +(N) We have to exhaustively read each directory looking for +manpages. This is not fast. But in the end, it might be +faster than calling B a zillion times. You can enable +this with the C<-r> flag. + +=item Limiting external manpath + +(D1) The MANPATH envariable is set before +calling man(1) again. + +=item man %s %s + +(D2) We're calling man(1) to parse the SEE ALSO references. + +=item man -w %s '%s' + +(D2) We're trying to look up the path where a manpath is located. + +=item man -w -a %s'%s' + +(D2) We're trying harder look up the path where a manpath is located +because the first try failed. + +=item MANPATH is %s + +(D1) This is the colon-separated list of mantree directories +we decided to process. + +=item no CF reader for %s + +(X) The path has no known syntax. + +=item no ext in %s + +(X) We couldn't figure out the subsection by looking for an +extension. + +=item no manpath set, assuming %s. + +(W) We're trying to use a hard-coded path, because +nothing else worked. + +=item no name + +(X) Couldn't figure out the name of the page, given the +filename. + +=item no pager %s: %m + +(FI) You don't seem to have a valid pager. + +=item readcf(): expected 1 or 2 args + +(X) Internal error. A function was called wrong. + +=item reading CF file %s + +(D1) We're parsing this file for man config entreies. + +=item reading %s directory entries + +We're reading all the manpages in this directory. +Probably because you used B<-r> or because you have +a primitive and annoying man(1) program. + +=item reading %s/windex + +=item subdir chdir('%s') + +(D2) This message is printed each time we change +to a subdirectory within a mantree. +N This is the program's expected output. The first + +=item tree chdir('%s') + +(D2) This message is printed each time we change +directory to a new mantree. + +=item unknown CF style: %s (want %s) + +(FI) You asked for a config-file parsing style that +we don't support. + +=item unknown option: -%s + +(FI) You specified an invalid option. This will trigger +a usage message. + +=item Usage: %s [-hdrivg] [-f cf-file] [-s cf-style] [mandir ...] + +(N) The usage message. + +=item wrong section for %s/%s + +(W) While searching your directories, we found a strange +page, such as I installed in the I directory, +where we were expecting I instead. + +=item Your osname claims linux; assuming redhat instead + +(W) It is unclear to this author whether all the different +Linux operating systems employ the same man(1) program. +It seems imprudent to assume that the version of the +operating system (read: the kernel) has anything to do with +the installed utility set. uname(1) is not helpful here. +You may suppress this message by explicitly using B<-s redhat>. + +=item Your system is stupid: it cannot whence. + +(W) Your system is too primitive to support B. +This makes us do things the hard way. + +=head1 BUGS + +Various, no doubt. + +=head1 RESTRICTIONS + +This program was tested only under a couple different of BSD operating +systems and a couple of different Linux operating systems. Remedial +support for Solaris is included, but has not been stress tested. +Bugs in their I files messages up this program. + +=head1 AUTHOR + +Tom Christiansen + +=head1 HISTORY + +Version 1: Sometimes in early 1989. + +Version 2: December 15th, 1989. + +Version 3: October 20th, 1999. Just made it in under the decade mark. + diff --git a/src/regress/share/man/no3man b/src/regress/share/man/no3man new file mode 100644 index 000000000..2e53f53f4 --- /dev/null +++ b/src/regress/share/man/no3man @@ -0,0 +1,42 @@ +#!/usr/bin/perl -w +# $OpenBSD: no3man,v 1.2 2001/01/29 02:05:49 niklas Exp $ + +# +# no3man - identify which library calls aren't mannable +# tchrist@perl.com + +use strict; + +#my $MAN3DIR = '/usr/man/man3'; +my $MAN3DIR = '/usr/share/man/cat3'; + +chdir($MAN3DIR) || die "can't chdir to $MAN3DIR: $!"; + +opendir(DIR, ".") || die "can't opendir $MAN3DIR: $!"; + +my %warned; + +$| = 1; + +while (my $manpage = readdir(DIR)) { + next if $manpage =~ /^\./; + #$manpage =~ s/\.3.*//; + $manpage =~ s/\.0.*//; + # print "$manpage\n"; + my $kid = open(MANPIPE, "man 3 $manpage 2>&1 | col -b |") + || die "can't run man 3 $manpage"; + while() { + if (my $recno = /^(SYNOPSIS|SYNTAX)/ ... /^[A-Z]/) { + last if $recno =~ /e/i; + while (/(\w+)\(/g) { + my $func = $1; + my $path = `man -w 3 $func 2>&1`; + print "$manpage(3): $path" if $?; + } + } + } + #die "$kid is me!" unless $kid; + #kill 'TERM', $kid; + close MANPIPE; +} + diff --git a/src/regress/share/man/obj b/src/regress/share/man/obj new file mode 120000 index 000000000..7d2aae1d6 --- /dev/null +++ b/src/regress/share/man/obj @@ -0,0 +1 @@ +/usr/obj/regress/share/man \ No newline at end of file diff --git a/src/regress/share/man/scatman b/src/regress/share/man/scatman new file mode 100644 index 000000000..0ef547212 --- /dev/null +++ b/src/regress/share/man/scatman @@ -0,0 +1,263 @@ +#!/usr/bin/perl -w +# $OpenBSD: scatman,v 1.2 2001/01/29 02:05:50 niklas Exp $ + +# +# scatman - find turds in mantrees +# tchrist@perl.com + +use strict; + +my ($Manpath, $Debug); + +parse_opts(); + +MANTREE: +for my $tree (split /:/, $Manpath) { + debug("chdir($tree)"); + chdir($tree) || die "cannot cd to main tree $tree: $!"; + + # XXX: doesn't handles openbsd recursive mandirs yet + +MANDIR: + #for my $mandir ( grep { -d } <{man,cat}*> ) { + my @mandirs = grep { -d } <{cat,man}*>; + while (@mandirs) { + my $mandir = shift @mandirs; + my $was_catted = $mandir =~ /^cat/; + debug("chdir($tree/$mandir)"); + chdir("$tree/$mandir") || die "cannot cd to subdir $tree/$mandir: $!"; + + my($dirext) = ($mandir =~ /^(?:cat|man)(.*)/); + my($ext, @pages); + + local *MANDIR; + unless (opendir(MANDIR, ".")) { + die "$0: can't opendir . while in $tree/$mandir: $!\n"; + } + +MANPAGE: + while (my $file = readdir(MANDIR)) { + next MANPAGE if $file =~ /^\.\.?$/; + my $path = "$tree/$mandir/$file"; + if (-l $file) { + my $target = readlink($file); + debug("readlink on $path -> $target"); + unless (-f $target && -r $target) { + print "$path: bad symlink ($target)\n"; + } + next MANPAGE; + } + if (-d $file) { + push @mandirs, "$mandir/$file"; + next; + } + unless (-f $file) { + print "$path: not a plain file\n"; + next MANPAGE; + } + + unless ($file =~ /\./) { + print "$path: doesn't smell like a manpage to me\n"; + next MANPAGE; + } + + unless ($file =~ /\.${dirext}\S*(\.(gz|Z))?$/ + # get a real man dang you! + || ($was_catted && $file =~ /\.0/) + ) + { + print "$path: strange extension for this directory\n"; + } + + my $openspec = ($file =~ /\.(gz|Z)$/) + ? "gzip -dc < $file |" + : "< $file"; + + local *FH; + debug("open $openspec"); + unless (open(FH, $openspec)) { + warn "can't open $openspec: $!\n"; + next; + } + + my($saw_TH, $saw_DOT, $over_struck); + local $_; +MANLINE: + while () { + $saw_DOT += /^['.]/; + $saw_TH += m{ + ^ [.'] # ' unlikely but possible + \s* # optional white space + (?: + TH # -man version + | Dt # -mandoc version + ) + \b + }x; + if (/^['.]\s*so\s+(\S+)/) { + my $link = $1; + my $sofile = $link =~ m#^/# + ? $link + : "$tree/$link"; # not $mandir! + debug("$path: so's to $sofile"); + unless (-f $sofile && -r $sofile) { + print "$path: bad solink: $link\n"; + } + close FH; + next MANPAGE; + } + if (!defined $over_struck) { + $over_struck++ if /(.)[\b]\1/; + } + close FH,last if $saw_DOT && $saw_TH; + } + close FH; + if ($saw_DOT) { + unless ($saw_TH) { + print "$path: missing title macro\n"; + } + } + else { + if ($over_struck) { + my $wish = "$tree/cat$dirext/$file"; + print "$path: this catpage should be in $wish" + unless $path eq $wish; + } else { + print "$path: doesn't look like nroff, maybe ", + `file $path 2>&1` =~ /: (.*)/, "\n"; + } + } + + } + } +} + +sub debug { + print "[ @_ ]\n" if $Debug; +} + +sub usage { + print STDERR "@_\n" if @_; + die "Usage: $0 [ -h ] [ -d ] [ [ -M ] [ manpath ] ]\n"; +} + +sub run_help { + my $pager; + unless ($pager = $ENV{PAGER}) { + require Config; + # lint happiness. blech. + $pager = $Config::Config{'pager'} || $Config::Config{'pager'}; + } + + $pager = "/bin/cat" unless has_cmd($pager); + + if (has_cmd("pod2man") && has_cmd("nroff") ) { + { exec("pod2man $0 | nroff -man | $pager") } # lint happiness + warn "exec of pod2man | nroff | $pager failed: $!"; + } + + if (has_cmd("pod2text")) { + { exec("pod2text $0 | $pager") } # lint happiness + warn "exec of pod2text | $pager failed: $!"; + } + + # sucks to be you! + + if (eval q{ require Pod::Text; 1; }) { + open (STDOUT, "| $pager") || die "no pager $pager: $!"; + # this forces a wait on child if needed + sub END { close(STDOUT) || die "cannot close STDOUT: $!" } + Pod::Text::pod2text($0); + exit 0; + } + + # it REALLY REALLY REALLY sucks to be you! + open 0 or die "$0: cannot open myself: $!"; + $/ = ''; + while (<0>) { + last if /__(END|DATA)__/; # must be careful here + } + print <0>; + exit; +} + + +sub has_cmd { + my $cmd = shift; + for (split(/:/, $ENV{PATH})) { + my $path = "$_/$cmd"; + return $path if -f $path && -x _; + } + return; +} + +sub parse_opts { +ARG: while (@ARGV && $ARGV[0] =~ s/^-(?=.)//) { +OPT: for (shift @ARGV) { # getopts is for wimps + m/^$/ && do { next ARG; }; + m/^-$/ && do { last ARG; }; + s/^d// && do { $Debug++; redo OPT; }; + s/^M(.*)// && do { $Manpath = $1 || shift @ARGV; next ARG; }; + + m/^(h|-help)?$/ # stupid fsf broken crappy excuse for real manpages + && do { run_help(); exit; }; + + usage("unknown option: -$_"); + } + } + + if (@ARGV) { + usage("Manpath set, but arguments remaining") if $Manpath; + usage("Too many arguments") if @ARGV > 1; + $Manpath = $ARGV[0]; + } + else { + $Manpath = '/usr/share/man'; + } + +} + +__END__ + +=head1 NAME + +scatman - find turds in mantrees + +=head1 SYNOPSIS + +B S<[ B<-h> ]> S<[ B<-d> ]> S<[ [ B<-M> ] [ I ] ]> + +=head1 DESCRIPTION + +The B program locates things in man directories that +shouldn't be there. It looks for stray files, catpage installed +where manpage belong, non-troff files, troff files without proper +title macros, wrong symbolic links, wrong C<.so> links, manpages +installed with odd extensions, and unreadable files. + +The B<-d> flag adds debugging. + +The B<-M> I flag is there for compatibility with +other manly programs. + +The B<-h> flag prints this manpage and exit. You cannot lose +this manpage. No more whingeing! + +=head1 SEE ALSO + +man(1), man(7), mandoc(7), cfman(8), noman(8) + +=head1 RESTRICTIONS + +This program has only been tested on the Redhat operating system. + +=head1 AUTHOR + +Tom Christiansen + +=head1 HISTORY + + +Version 1: 24 October 1999 + + diff --git a/src/regress/sys/CVS/Entries b/src/regress/sys/CVS/Entries new file mode 100644 index 000000000..5d0d1f969 --- /dev/null +++ b/src/regress/sys/CVS/Entries @@ -0,0 +1,13 @@ +/Makefile/1.18/Fri Aug 22 00:48:33 2008// +D/arch//// +D/copy//// +D/crypto//// +D/ddb//// +D/dev//// +D/ffs//// +D/fifofs//// +D/kern//// +D/net//// +D/ptrace//// +D/sys//// +D/uvm//// diff --git a/src/regress/sys/CVS/Repository b/src/regress/sys/CVS/Repository new file mode 100644 index 000000000..e2054ba6a --- /dev/null +++ b/src/regress/sys/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys diff --git a/src/regress/sys/CVS/Root b/src/regress/sys/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/Makefile b/src/regress/sys/Makefile new file mode 100644 index 000000000..5b6768fc3 --- /dev/null +++ b/src/regress/sys/Makefile @@ -0,0 +1,14 @@ +# $OpenBSD: Makefile,v 1.18 2008/08/22 00:48:33 bluhm Exp $ +# $NetBSD: Makefile,v 1.4 1995/04/20 22:41:08 cgd Exp $ + +SUBDIR+= copy crypto ddb fifofs kern net ptrace sys uvm dev +.if exists(arch/${MACHINE}) +SUBDIR+= arch/${MACHINE} +.endif +.if exists(arch/${MACHINE_ARCH}) && ${MACHINE} != ${MACHINE_ARCH} +SUBDIR+= arch/${MACHINE_ARCH} +.endif + +install: + +.include diff --git a/src/regress/sys/arch/CVS/Entries b/src/regress/sys/arch/CVS/Entries new file mode 100644 index 000000000..fae6fd299 --- /dev/null +++ b/src/regress/sys/arch/CVS/Entries @@ -0,0 +1,5 @@ +D/hppa//// +D/i386//// +D/m68k//// +D/m88k//// +D/sparc64//// diff --git a/src/regress/sys/arch/CVS/Repository b/src/regress/sys/arch/CVS/Repository new file mode 100644 index 000000000..f5262bd9f --- /dev/null +++ b/src/regress/sys/arch/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch diff --git a/src/regress/sys/arch/CVS/Root b/src/regress/sys/arch/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/hppa/CVS/Entries b/src/regress/sys/arch/hppa/CVS/Entries new file mode 100644 index 000000000..ab7279df1 --- /dev/null +++ b/src/regress/sys/arch/hppa/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu May 13 01:22:05 2004// +D/probe//// +D/sfuid//// diff --git a/src/regress/sys/arch/hppa/CVS/Repository b/src/regress/sys/arch/hppa/CVS/Repository new file mode 100644 index 000000000..d542d5fb8 --- /dev/null +++ b/src/regress/sys/arch/hppa/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/hppa diff --git a/src/regress/sys/arch/hppa/CVS/Root b/src/regress/sys/arch/hppa/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/hppa/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/hppa/Makefile b/src/regress/sys/arch/hppa/Makefile new file mode 100644 index 000000000..64c15d68f --- /dev/null +++ b/src/regress/sys/arch/hppa/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.2 2004/05/13 01:22:05 mickey Exp $ + +SUBDIR+= probe sfuid + +install: + +.include diff --git a/src/regress/sys/arch/hppa/probe/CVS/Entries b/src/regress/sys/arch/hppa/probe/CVS/Entries new file mode 100644 index 000000000..4e99c2221 --- /dev/null +++ b/src/regress/sys/arch/hppa/probe/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed May 12 22:54:13 2004// +/probe.c/1.1/Wed May 12 22:54:13 2004// +D diff --git a/src/regress/sys/arch/hppa/probe/CVS/Repository b/src/regress/sys/arch/hppa/probe/CVS/Repository new file mode 100644 index 000000000..9d0bfc6fd --- /dev/null +++ b/src/regress/sys/arch/hppa/probe/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/hppa/probe diff --git a/src/regress/sys/arch/hppa/probe/CVS/Root b/src/regress/sys/arch/hppa/probe/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/hppa/probe/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/hppa/probe/Makefile b/src/regress/sys/arch/hppa/probe/Makefile new file mode 100644 index 000000000..68befb2b6 --- /dev/null +++ b/src/regress/sys/arch/hppa/probe/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2004/05/12 22:54:13 mickey Exp $ + +PROG= probe + +.include + diff --git a/src/regress/sys/arch/hppa/probe/probe.c b/src/regress/sys/arch/hppa/probe/probe.c new file mode 100644 index 000000000..32c671498 --- /dev/null +++ b/src/regress/sys/arch/hppa/probe/probe.c @@ -0,0 +1,68 @@ +/* $OpenBSD: probe.c,v 1.1 2004/05/12 22:54:13 mickey Exp $ */ + +/* + * Written by Michael Shalayeff, 2004. Public Domain. + */ + +#include +#include +#include +#include +#include + +char moo[] = "moo"; /* writable */ +const char blah[] = "blah"; /* not */ +volatile char *label; + +#define prober(r,a) __asm __volatile( \ + "prober (%2),%1,%0" : "=r" (r) : "r" (3), "r" (a)); +#define proberi(r,a) __asm __volatile( \ + "proberi (%2),%1,%0" : "=r" (r) : "i" (3), "r" (a)); +#define probew(r,a) __asm __volatile( \ + "probew (%2),%1,%0" : "=r" (r) : "r" (3), "r" (a)); +#define probewi(r,a) __asm __volatile( \ + "probewi (%2),%1,%0" : "=r" (r) : "i" (3), "r" (a)); + +void +sigsegv(int sig, siginfo_t *sip, void *scp) +{ + char buf[1024]; + + snprintf(buf, sizeof buf, "%s not decoded\n", label); + write(STDOUT_FILENO, buf, strlen(buf)); + _exit(1); +} + +int +main(int argc, char *argv[]) +{ + struct sigaction sa; + int rv; + + sa.sa_sigaction = &sigsegv; + sa.sa_flags = SA_SIGINFO; + sigemptyset(&sa.sa_mask); + sigaction(SIGSEGV, &sa, NULL); + +#define test_probe(n,a,r) \ + label = #n; \ + n(rv, a); \ + if (rv != (r)) \ + errx(1, "%s(%p) returned %d", label, (a), rv); + + test_probe(prober, 1, 0); + test_probe(prober, &blah, 1); + + test_probe(proberi, 1, 0); + test_probe(proberi, &blah, 1); + + test_probe(probew, 1, 0); + test_probe(probew, &blah, 0); + test_probe(probew, &moo, 1); + + test_probe(probewi, 1, 0); + test_probe(probewi, &blah, 0); + test_probe(probewi, &moo, 1); + + exit(0); +} diff --git a/src/regress/sys/arch/hppa/sfuid/CVS/Entries b/src/regress/sys/arch/hppa/sfuid/CVS/Entries new file mode 100644 index 000000000..9e581bd47 --- /dev/null +++ b/src/regress/sys/arch/hppa/sfuid/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu May 13 01:22:05 2004// +/sfuid.c/1.1/Thu May 13 01:22:05 2004// +D diff --git a/src/regress/sys/arch/hppa/sfuid/CVS/Repository b/src/regress/sys/arch/hppa/sfuid/CVS/Repository new file mode 100644 index 000000000..5fc7792c7 --- /dev/null +++ b/src/regress/sys/arch/hppa/sfuid/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/hppa/sfuid diff --git a/src/regress/sys/arch/hppa/sfuid/CVS/Root b/src/regress/sys/arch/hppa/sfuid/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/hppa/sfuid/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/hppa/sfuid/Makefile b/src/regress/sys/arch/hppa/sfuid/Makefile new file mode 100644 index 000000000..df7cd7d99 --- /dev/null +++ b/src/regress/sys/arch/hppa/sfuid/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2004/05/13 01:22:05 mickey Exp $ + +PROG= sfuid + +.include + diff --git a/src/regress/sys/arch/hppa/sfuid/sfuid.c b/src/regress/sys/arch/hppa/sfuid/sfuid.c new file mode 100644 index 000000000..6c27e5b7a --- /dev/null +++ b/src/regress/sys/arch/hppa/sfuid/sfuid.c @@ -0,0 +1,55 @@ +/* $OpenBSD: sfuid.c,v 1.1 2004/05/13 01:22:05 mickey Exp $ */ + +/* + * Written by Michael Shalayeff, 2004. Public Domain. + */ + +#include +#include +#include +#include +#include + +#define sfuid(i,r) __asm __volatile( \ + "spop1,%1,0 %0" : "=r" (r) : "i" (i)) + +volatile int sfu; + +void +sigill(int sig, siginfo_t *sip, void *scp) +{ + char buf[1024]; + + snprintf(buf, sizeof buf, "sfuid(%d) not decoded\n", sfu); + write(STDOUT_FILENO, buf, strlen(buf)); + _exit(1); +} + +int +main(int argc, char *argv[]) +{ + struct sigaction sa; + int rv; + + sa.sa_sigaction = &sigill; + sa.sa_flags = SA_SIGINFO; + sigemptyset(&sa.sa_mask); + sigaction(SIGILL, &sa, NULL); + +#define test_sfuid(i,rv) \ + rv = -1, sfu = i; \ + sfuid(i, rv); \ + if (rv != 0) \ + errx(1, "sfuid(%d) returned %d", i, rv); + + sfuid(0, rv); + sfuid(1, rv); + sfuid(2, rv); + sfuid(3, rv); + sfuid(4, rv); + sfuid(5, rv); + sfuid(6, rv); + sfuid(7, rv); + + exit(0); +} diff --git a/src/regress/sys/arch/i386/CVS/Entries b/src/regress/sys/arch/i386/CVS/Entries new file mode 100644 index 000000000..db08d43fe --- /dev/null +++ b/src/regress/sys/arch/i386/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.3/Sat Feb 23 01:25:11 2002// +D/ldt//// diff --git a/src/regress/sys/arch/i386/CVS/Repository b/src/regress/sys/arch/i386/CVS/Repository new file mode 100644 index 000000000..a8ecf5cfe --- /dev/null +++ b/src/regress/sys/arch/i386/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/i386 diff --git a/src/regress/sys/arch/i386/CVS/Root b/src/regress/sys/arch/i386/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/i386/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/i386/Makefile b/src/regress/sys/arch/i386/Makefile new file mode 100644 index 000000000..e8f955124 --- /dev/null +++ b/src/regress/sys/arch/i386/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.3 2002/02/23 01:25:11 art Exp $ +# $NetBSD: Makefile,v 1.2 1995/04/20 22:41:43 cgd Exp $ + +SUBDIR+= ldt + +install: + +.include diff --git a/src/regress/sys/arch/i386/ldt/CVS/Entries b/src/regress/sys/arch/i386/ldt/CVS/Entries new file mode 100644 index 000000000..654468384 --- /dev/null +++ b/src/regress/sys/arch/i386/ldt/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.7/Wed Dec 29 04:39:17 2004// +/testldt.c/1.8/Tue Sep 2 23:52:17 2003// +D diff --git a/src/regress/sys/arch/i386/ldt/CVS/Repository b/src/regress/sys/arch/i386/ldt/CVS/Repository new file mode 100644 index 000000000..a4f572e4d --- /dev/null +++ b/src/regress/sys/arch/i386/ldt/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/i386/ldt diff --git a/src/regress/sys/arch/i386/ldt/CVS/Root b/src/regress/sys/arch/i386/ldt/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/i386/ldt/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/i386/ldt/Makefile b/src/regress/sys/arch/i386/ldt/Makefile new file mode 100644 index 000000000..a8dddd935 --- /dev/null +++ b/src/regress/sys/arch/i386/ldt/Makefile @@ -0,0 +1,34 @@ +# $OpenBSD: Makefile,v 1.7 2004/12/29 04:39:17 david Exp $ +# $NetBSD: Makefile,v 1.3 1995/04/20 22:42:19 cgd Exp $ +# +# C Optimizer (-O) breaks this program - don't use !! +CFLAGS=-g +PROG= testldt + +DPADD+= ${LIBARCH} +LDADD+= -li386 + +USERLDT_ENABLE!=sysctl -n machdep.userldt + +.ifmake !obj && !clean && !cleandir && !depend && !regress +.INTERRUPT: + -@${SUDO} sysctl -q machdep.userldt=${USERLDT_ENABLE} + +.END: + -@${SUDO} sysctl -q machdep.userldt=${USERLDT_ENABLE} +.endif + +.if ${MACHINE_ARCH} != "i386" +REGRESS_SKIP="yes" +.endif + +do-testldt: ${PROG} + @${SUDO} sysctl -q machdep.userldt=1 + ./${PROG} + +REGRESS_TARGETS=do-testldt +REGRESS_ROOT_TARGETS=${REGRESS_TARGETS} +.PHONY: ${REGRESS_TARGETS} + +.include + diff --git a/src/regress/sys/arch/i386/ldt/testldt.c b/src/regress/sys/arch/i386/ldt/testldt.c new file mode 100644 index 000000000..7d5865eda --- /dev/null +++ b/src/regress/sys/arch/i386/ldt/testldt.c @@ -0,0 +1,273 @@ +/* $OpenBSD: testldt.c,v 1.8 2003/09/02 23:52:17 david Exp $ */ +/* $NetBSD: testldt.c,v 1.4 1995/04/20 22:42:38 cgd Exp $ */ + +#include +#include +#include +#include +#include +#include +#include + +extern int i386_get_ldt(int, union descriptor *, int); +extern int i386_set_ldt(int, union descriptor *, int); + +int verbose = 0; +struct sigaction segv_act; + +static inline void +set_fs(unsigned long val) +{ + __asm__ __volatile__("mov %0,%%fs"::"r" ((unsigned short) val)); +} + +static inline unsigned char +get_fs_byte(const char * addr) +{ + unsigned register char _v; + + __asm__ ("movb %%fs:%1,%0":"=q" (_v):"m" (*addr)); + return _v; +} + +static inline unsigned short +get_cs(void) +{ + unsigned register short _v; + + __asm__ ("movw %%cs,%0"::"r" ((unsigned short) _v)); + return _v; +} + +static int +check_desc(unsigned int desc) +{ + desc = LSEL(desc, SEL_UPL); + set_fs(desc); + return(get_fs_byte((char *) 0)); +} + +static void +gated_call(void) +{ + printf("Called from call gate..."); + __asm__ __volatile__("popl %ebp"); + __asm__ __volatile__(".byte 0xcb"); +} + +static struct segment_descriptor * +make_sd(unsigned base, unsigned limit, int type, int dpl, int seg32, int inpgs) +{ + static struct segment_descriptor d; + + d.sd_lolimit = limit & 0x0000ffff; + d.sd_lobase = base & 0x00ffffff; + d.sd_type = type & 0x01f; + d.sd_dpl = dpl & 0x3; + d.sd_p = 1; + d.sd_hilimit = (limit & 0x00ff0000) >> 16; + d.sd_xx = 0; + d.sd_def32 = seg32?1:0; + d.sd_gran = inpgs?1:0; + d.sd_hibase = (base & 0xff000000) >> 24; + + return (&d); +} + +static struct gate_descriptor * +make_gd(unsigned offset, unsigned int sel, unsigned stkcpy, int type, int dpl) +{ + static struct gate_descriptor d; + + d.gd_looffset = offset & 0x0000ffff; + d.gd_selector = sel & 0xffff; + d.gd_stkcpy = stkcpy & 0x1ff; + d.gd_type = type & 0x1ff; + d.gd_dpl = dpl & 0x3; + d.gd_p = 1; + d.gd_hioffset = (offset & 0xffff0000) >> 16; + + return(&d); +} + +static void +print_ldt(union descriptor *dp) +{ + unsigned long base_addr, limit, offset, selector, stack_copy; + int type, dpl, i; + unsigned long *lp = (unsigned long *)dp; + + /* First 32 bits of descriptor */ + selector = base_addr = (*lp >> 16) & 0x0000FFFF; + offset = limit = *lp & 0x0000FFFF; + lp++; + + /* First 32 bits of descriptor */ + base_addr |= (*lp & 0xFF000000) | ((*lp << 16) & 0x00FF0000); + limit |= (*lp & 0x000F0000); + type = dp->sd.sd_type; + dpl = dp->sd.sd_dpl; + stack_copy = dp->gd.gd_stkcpy; + offset |= (*lp >> 16) & 0x0000FFFF; + + if (type == SDT_SYS386CGT || type == SDT_SYS286CGT) + printf("LDT: Gate Off %08.8x, Sel %05.5x, Stkcpy %d DPL %d, Type %d\n", + offset, selector, stack_copy, dpl, type); + else + printf("LDT: Seg Base %08.8x, Limit %05.5x, DPL %d, Type %d\n", + base_addr, limit, dpl, type); + printf(" "); + if (*lp & 0x100) + printf("Accessed, "); + if (*lp & 8000) + printf("Present, "); + if (type != SDT_SYS386CGT && type != SDT_SYS286CGT) { + if (*lp & 0x100000) + printf("User, "); + if (*lp & 0x200000) + printf("X, "); + if (*lp & 0x400000) + printf("32, "); + else + printf("16, "); + if (*lp & 0x800000) + printf("page limit, "); + else + printf("byte limit, "); + } + printf("\n"); + printf(" %08.8x %08.8x\n", *(lp), *(lp-1)); +} + +static void busfault(int signal, int code, struct sigcontext *sc) +{ + fprintf(stderr, "\nbus fault - investigate.\n"); + _exit(1); +} + +static void usage(int status) +{ + fprintf(stderr, "Usage: testldt [-v]\n"); + exit(status); +} + +#define MAX_USER_LDT 1024 +main(int argc, char *argv[]) +{ + union descriptor ldt[MAX_USER_LDT]; + int num, n, ch; + unsigned int cs = get_cs(); + char *data; + struct segment_descriptor *sd; + struct gate_descriptor *gd; + + segv_act.sa_handler = (sig_t) busfault; + if (sigaction(SIGBUS, &segv_act, NULL) < 0) { + perror("sigaction"); + exit(1); + } + + while ((ch = getopt(argc, argv, "v")) != -1) { + switch (ch) { + case 'v': + verbose++; + break; + default: + usage(1); + break; + } + } + + printf("Testing i386_get_ldt...\n"); + if ((num = i386_get_ldt(0, ldt, MAX_USER_LDT)) < 0) { + perror("get_ldt"); + exit(2); + } + if (num == 0) { + fprintf(stderr, "ERROR: i386_get_ldt() return 0 default LDT entries.\n"); + exit(1); + } + + if (verbose) { + printf("Got %d (default) LDTs\n", num); + for (n=0; n < num; n++) { + printf("Entry %d: ", n); + print_ldt(&ldt[n]); + } + } + + /* + * mmap a data area and assign an LDT to it + */ + printf("Testing i386_set_ldt...\n"); + data = (void *) mmap( (char *)0x005f0000, 0x0fff, + PROT_EXEC | PROT_READ | PROT_WRITE, + MAP_FIXED | MAP_PRIVATE | MAP_ANON, -1, 0); + if (data == MAP_FAILED) { + perror("mmap"); + exit(1); + } + if (verbose) printf("data address: %8.8x\n", data); + + *data = 0x97; + + /* Get the next free LDT and set it to the allocated data. */ + sd = make_sd((unsigned)data, 4096, SDT_MEMRW, SEL_UPL, 0, 0); + if ((num = i386_set_ldt(6, (union descriptor *)sd, 1)) < 0) { + perror("set_ldt"); + exit(1); + } + if (verbose) printf("setldt returned: %d\n", num); + if ((n = i386_get_ldt(num, ldt, 1)) < 0) { + perror("get_ldt"); + exit(1); + } + if (verbose) { + printf("Entry %d: ", num); + print_ldt(&ldt[0]); + } + + if (verbose) printf("Checking desc (should be 0x97): 0x%x\n", check_desc(num)); + if (check_desc(num) != 0x97) { + fprintf(stderr, "ERROR: descriptor check failed: (should be 0x97): 0x%x\n", check_desc(num)); + exit(1); + } + + /* + * Test a Call Gate + */ + printf("Testing Call Gate..."); + gd = make_gd((unsigned)gated_call, cs, 0, SDT_SYS386CGT, SEL_UPL); + if ((num = i386_set_ldt(5, (union descriptor *)gd, 1)) < 0) { + perror("set_ldt: call gate"); + exit(1); + } + if (verbose) printf("setldt returned: %d\n", num); + if (verbose) printf("Call gate sel = 0x%x\n", LSEL(num, SEL_UPL)); + if ((n = i386_get_ldt(num, ldt, 1)) < 0) { + perror("get_ldt"); + exit(1); + } + if (verbose) printf("Entry %d: ", num); + if (verbose) print_ldt(&ldt[0]); + +#if 0 + err = setldt(5, + gated_call, /* Offset */ + 0x0001, /* This selector is for the executable segment descriptor. It + is the standard linux text descriptor. */ + 0x00008c00); /* Descriptor flags (you can't set all, the OS protects some) */ + printf("setldt returned: %d\n", err); +#endif + + __asm__ __volatile__(".byte 0x9a"); /* This is a call to a call gate. */ + __asm__ __volatile__(".byte 0x00"); /* Value is ignored in a call gate but can be used. */ + __asm__ __volatile__(".byte 0x00"); /* by the called procedure. */ + __asm__ __volatile__(".byte 0x00"); + __asm__ __volatile__(".byte 0x00"); + __asm__ __volatile__(".byte 0x2f"); /* Selector 0x002f. This is index = 5 (the call gate), */ + __asm__ __volatile__(".byte 0x00"); /* and a requestor priveledge level of 3. */ + + printf("Gated call returned\n"); + exit (0); +} diff --git a/src/regress/sys/arch/m68k/060sp/CVS/Entries b/src/regress/sys/arch/m68k/060sp/CVS/Entries new file mode 100644 index 000000000..251bab2a0 --- /dev/null +++ b/src/regress/sys/arch/m68k/060sp/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.2/Mon Jan 29 02:05:52 2001// +/dotest.c/1.2/Mon Jan 29 02:05:53 2001// +/dotestsubs.S/1.1/Sun Jun 28 00:11:37 1998// +/goodoutput/1.1/Sun Jun 28 00:11:38 1998// +D diff --git a/src/regress/sys/arch/m68k/060sp/CVS/Repository b/src/regress/sys/arch/m68k/060sp/CVS/Repository new file mode 100644 index 000000000..195664689 --- /dev/null +++ b/src/regress/sys/arch/m68k/060sp/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/m68k/060sp diff --git a/src/regress/sys/arch/m68k/060sp/CVS/Root b/src/regress/sys/arch/m68k/060sp/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/m68k/060sp/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/m68k/060sp/Makefile b/src/regress/sys/arch/m68k/060sp/Makefile new file mode 100644 index 000000000..832c3e0b8 --- /dev/null +++ b/src/regress/sys/arch/m68k/060sp/Makefile @@ -0,0 +1,25 @@ +# $OpenBSD: Makefile,v 1.2 2001/01/29 02:05:52 niklas Exp $ +# $NetBSD: Makefile,v 1.3 1998/06/16 19:06:31 is Exp $ + +NOMAN=notyet +PROG=dotest +SRCS=dotest.c dotestsubs.S +AFLAGS+=-I. +CPPFLAGS+=-I. +SPDIR=${.CURDIR}/../../../../../sys/arch/m68k/060sp +CLEANFILES+=itest.S ftest.S + +.SUFFIXES: .S .sa + +.sa.S: ; sh ${SPDIR}/asm2gas ${.IMPSRC} >${.TARGET} + +.PATH: ${SPDIR} + +depend dotestsubs.o: itest.S ftest.S + +regress: ${PROG} + @/usr/sbin/sysctl hw.model | grep -v -q 68060 || \ + ./${PROG} | tee /dev/tty | cmp -s - ${.CURDIR}/goodoutput + + +.include diff --git a/src/regress/sys/arch/m68k/060sp/dotest.c b/src/regress/sys/arch/m68k/060sp/dotest.c new file mode 100644 index 000000000..cb7983d2f --- /dev/null +++ b/src/regress/sys/arch/m68k/060sp/dotest.c @@ -0,0 +1,43 @@ +/* $OpenBSD: dotest.c,v 1.2 2001/01/29 02:05:53 niklas Exp $ */ +/* $NetBSD: dotest.c,v 1.2 1998/01/09 08:03:54 perry Exp $ */ + +#include + +void print_str(const char *s); +void print_num(const int); +void itest(void); +void ftest1(void); +void ftest2(void); +void ftest3(void); + +void +print_str(s) + const char *s; +{ + printf("%s", s); + fflush(stdout); +} + +void +print_num(i) + int i; +{ + printf("%d", i); + fflush(stdout); +} + +int +main() +{ + itest(); + ftest1(); + ftest2(); +#if 0 + /* + * We would need a special kernel, that clears the exception condition + * and does RTE, to run this. + */ + ftest3(); +#endif + exit (0); +} diff --git a/src/regress/sys/arch/m68k/060sp/dotestsubs.S b/src/regress/sys/arch/m68k/060sp/dotestsubs.S new file mode 100644 index 000000000..32074c233 --- /dev/null +++ b/src/regress/sys/arch/m68k/060sp/dotestsubs.S @@ -0,0 +1,27 @@ + .globl _print_str,_print_num + +Lprint_str: jmp _print_str +Lprint_num: jmp _print_num + +_060FPSP_TEST: + .long Lprint_str - _060FPSP_TEST + .long Lprint_num - _060FPSP_TEST + .space 120 +#include "ftest.S" + +_060ISP_TEST: + .long Lprint_str - _060ISP_TEST + .long Lprint_num - _060ISP_TEST + .space 120 +#include "itest.S" + + .globl _itest,_ftest1,_ftest2,_ftest3 +_itest: + bra _060ISP_TEST+128+0 +_ftest1: + bra _060FPSP_TEST+128+0 +_ftest2: + bra _060FPSP_TEST+128+8 +_ftest3: + bra _060FPSP_TEST+128+16 + diff --git a/src/regress/sys/arch/m68k/060sp/goodoutput b/src/regress/sys/arch/m68k/060sp/goodoutput new file mode 100644 index 000000000..1a26b7656 --- /dev/null +++ b/src/regress/sys/arch/m68k/060sp/goodoutput @@ -0,0 +1,15 @@ +Testing 68060 ISP started: + 64-bit multiply...passed + 64-bit divide...passed + cmp2,chk2...passed + movep...passed + Effective addresses...passed + cas...passed + cas2...passed +Testing 68060 FPSP started: + Unimplemented ...passed + Unimplemented data type/format...passed + Non-maskable overflow...passed + Non-maskable underflow...passed +Testing 68060 FPSP unimplemented instruction started: + Unimplemented FP instructions...passed diff --git a/src/regress/sys/arch/m68k/CVS/Entries b/src/regress/sys/arch/m68k/CVS/Entries new file mode 100644 index 000000000..298700850 --- /dev/null +++ b/src/regress/sys/arch/m68k/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Mon Jan 29 02:05:52 2001// +D/060sp//// +D/emuspeed//// diff --git a/src/regress/sys/arch/m68k/CVS/Repository b/src/regress/sys/arch/m68k/CVS/Repository new file mode 100644 index 000000000..6281f0f60 --- /dev/null +++ b/src/regress/sys/arch/m68k/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/m68k diff --git a/src/regress/sys/arch/m68k/CVS/Root b/src/regress/sys/arch/m68k/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/m68k/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/m68k/Makefile b/src/regress/sys/arch/m68k/Makefile new file mode 100644 index 000000000..116b19651 --- /dev/null +++ b/src/regress/sys/arch/m68k/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.2 2001/01/29 02:05:52 niklas Exp $ +# $NetBSD: Makefile,v 1.2 1998/01/09 08:03:53 perry Exp $ +# +SUBDIR+=060sp emuspeed + +.include diff --git a/src/regress/sys/arch/m68k/emuspeed/CVS/Entries b/src/regress/sys/arch/m68k/emuspeed/CVS/Entries new file mode 100644 index 000000000..f5d4d731b --- /dev/null +++ b/src/regress/sys/arch/m68k/emuspeed/CVS/Entries @@ -0,0 +1,8 @@ +/Makefile/1.2/Mon Jan 29 02:05:53 2001// +/compare/1.1/Sun Jun 28 00:11:38 1998// +/div64.s/1.2/Mon Jan 29 02:05:53 2001// +/emuspeed.c/1.3/Sat Feb 16 21:27:32 2002// +/mul64.s/1.2/Mon Jan 29 02:05:54 2001// +/speed.h/1.3/Sat Feb 16 21:27:32 2002// +/test.s/1.1/Sun Jun 28 00:11:38 1998// +D diff --git a/src/regress/sys/arch/m68k/emuspeed/CVS/Repository b/src/regress/sys/arch/m68k/emuspeed/CVS/Repository new file mode 100644 index 000000000..02ae3ff4b --- /dev/null +++ b/src/regress/sys/arch/m68k/emuspeed/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/m68k/emuspeed diff --git a/src/regress/sys/arch/m68k/emuspeed/CVS/Root b/src/regress/sys/arch/m68k/emuspeed/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/m68k/emuspeed/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/m68k/emuspeed/Makefile b/src/regress/sys/arch/m68k/emuspeed/Makefile new file mode 100644 index 000000000..a3d63f12f --- /dev/null +++ b/src/regress/sys/arch/m68k/emuspeed/Makefile @@ -0,0 +1,15 @@ +# $OpenBSD: Makefile,v 1.2 2001/01/29 02:05:53 niklas Exp $ +# $NetBSD: Makefile,v 1.2 1998/01/09 08:03:55 perry Exp $ +# +PROG=emuspeed +NOMAN=none + +SRCS=emuspeed.c test.s mul64.s div64.s # movepto.c movepfrom.c + +/* don't install: */ +proginstall: + +.include + +regress: all + @./emuspeed diff --git a/src/regress/sys/arch/m68k/emuspeed/compare b/src/regress/sys/arch/m68k/emuspeed/compare new file mode 100644 index 000000000..5e24743fa --- /dev/null +++ b/src/regress/sys/arch/m68k/emuspeed/compare @@ -0,0 +1,15 @@ +Speed of instructions which are emulated on some cpus: + +Illegal [unimplemented] (test: unimplemented) +mulsl sp@(8),Da 18181800/s (test: should be native) + +mulsl Dn,Da:Db 185300/s emulated on 68060 +mulul Dn,Da:Db 184300/s " +mulsl sp@(8),Da:Db 99600/s " +mulul sp@(8),Da:Db 98900/s " + +divsl Da:Db,Dn 162400/s " +divul Da:Db,Dn 111500/s " +divsl Da:Db,sp@(8) 58900/s " +divul Da:Db,sp@(8) 59700/s " + diff --git a/src/regress/sys/arch/m68k/emuspeed/div64.s b/src/regress/sys/arch/m68k/emuspeed/div64.s new file mode 100644 index 000000000..9d6f019d4 --- /dev/null +++ b/src/regress/sys/arch/m68k/emuspeed/div64.s @@ -0,0 +1,52 @@ +/* $OpenBSD: div64.s,v 1.2 2001/01/29 02:05:53 niklas Exp $ */ + +/* + * stack: + * + 8: count + * + 4: retads + * + 0: d2 + */ + + .globl _div64ureg +_div64ureg: + movl d2,sp@- + movl sp@(8),d2 +L1: + divul d2,d1:d0 + subql #1,d2 + jne L1 + movl sp@+,d2 + rts + + .globl _div64sreg +_div64sreg: + movl d2,sp@- + movl sp@(8),d2 +L2: + divsl d2,d1:d0 + subql #1,d2 + jne L2 + movl sp@+,d2 + rts + + .globl _div64umem +_div64umem: + movl d2,sp@- + movl sp@(8),d2 +L3: + divul sp@(8),d1:d0 + subql #1,d2 + jne L3 + movl sp@+,d2 + rts + + .globl _div64smem +_div64smem: + movl d2,sp@- + movl sp@(8),d2 +L4: + divsl sp@(8),d1:d0 + subql #1,d2 + jne L4 + movl sp@+,d2 + rts diff --git a/src/regress/sys/arch/m68k/emuspeed/emuspeed.c b/src/regress/sys/arch/m68k/emuspeed/emuspeed.c new file mode 100644 index 000000000..7fd19d98f --- /dev/null +++ b/src/regress/sys/arch/m68k/emuspeed/emuspeed.c @@ -0,0 +1,83 @@ +/* $OpenBSD: emuspeed.c,v 1.3 2002/02/16 21:27:32 millert Exp $ */ +/* $NetBSD: emuspeed.c,v 1.3 1998/06/15 14:43:25 is Exp $ */ + +#include +#include +#include +#include +#include +#include + +#include "speed.h" + +#define PRECISION 500 + +const struct test { + char *name; + void (*func)(int); + char *comment; +} testlist[] = { + {"Illegal", illegal, "(test: unimplemented)"}, + {"mulsl Da,Db", mul32sreg, "(test: should be native)"}, + {"mulsl sp@(8),Da", mul32smem, "(test: should be native)\n"}, + + {"mulsl Dn,Da:Db", mul64sreg, "emulated on 68060"}, + {"mulul Dn,Da:Db", mul64ureg, "\t\""}, + {"mulsl sp@(8),Da:Db", mul64smem, "\t\""}, + {"mulul sp@(8),Da:Db", mul64umem, "\t\"\n"}, + + {"divsl Da:Db,Dn", div64sreg, "\t\""}, + {"divul Da:Db,Dn", div64ureg, "\t\""}, + {"divsl Da:Db,sp@(8)", div64smem, "\t\""}, + {"divul Da:Db,sp@(8)", div64umem, "\t\"\n"}, + + {NULL, NULL, NULL} +}; + +jmp_buf jbuf; +void illhand (int); + +int +main(argc, argv) + int argc; + char *argv[]; +{ + const struct test *t; + clock_t start, stop; + int count; + + + if (signal(SIGILL, &illhand)) + warn("%s: can't install illegal instruction handler.", + argv[0]); + + printf("Speed of instructions which are emulated on some cpus:\n\n"); + (void)sleep(1); + for (t=testlist; t->name; t++) { + printf("%-20s", t->name); + fflush(stdout); + + if (setjmp(jbuf)) { + printf("%15s %s\n", "[unimplemented]", t->comment); + continue; + } + + count = 1000; + do { + count *= 2; + start = clock(); + t->func(count); + stop = clock(); + } while ((stop - start) < PRECISION); + printf("%13d/s %s\n", + CLOCKS_PER_SEC*(count /(stop - start)), + t->comment); + } + exit (0); +} + +void +illhand(int i) +{ + longjmp(jbuf, 1); +} diff --git a/src/regress/sys/arch/m68k/emuspeed/mul64.s b/src/regress/sys/arch/m68k/emuspeed/mul64.s new file mode 100644 index 000000000..63574b89d --- /dev/null +++ b/src/regress/sys/arch/m68k/emuspeed/mul64.s @@ -0,0 +1,52 @@ +/* $OpenBSD: mul64.s,v 1.2 2001/01/29 02:05:54 niklas Exp $ */ + +/* + * stack: + * + 8: count + * + 4: retads + * + 0: d2 + */ + + .globl _mul64ureg +_mul64ureg: + movl d2,sp@- + movl sp@(8),d2 +L1: + mulul d2,d1:d0 + subql #1,d2 + jne L1 + movl sp@+,d2 + rts + + .globl _mul64sreg +_mul64sreg: + movl d2,sp@- + movl sp@(8),d2 +L2: + mulsl d2,d1:d0 + subql #1,d2 + jne L2 + movl sp@+,d2 + rts + + .globl _mul64umem +_mul64umem: + movl d2,sp@- + movl sp@(8),d2 +L3: + mulul sp@(8),d1:d0 + subql #1,d2 + jne L3 + movl sp@+,d2 + rts + + .globl _mul64smem +_mul64smem: + movl d2,sp@- + movl sp@(8),d2 +L4: + mulsl sp@(8),d1:d0 + subql #1,d2 + jne L4 + movl sp@+,d2 + rts diff --git a/src/regress/sys/arch/m68k/emuspeed/speed.h b/src/regress/sys/arch/m68k/emuspeed/speed.h new file mode 100644 index 000000000..f2f7bbccc --- /dev/null +++ b/src/regress/sys/arch/m68k/emuspeed/speed.h @@ -0,0 +1,18 @@ +/* $OpenBSD: speed.h,v 1.3 2002/02/16 21:27:32 millert Exp $ */ +/* $NetBSD: speed.h,v 1.2 1998/01/09 08:03:57 perry Exp $ */ + +#include + +void illegal(int); +void mul32smem(int); +void mul32sreg(int); + +void mul64sreg(int); +void mul64ureg(int); +void mul64smem(int); +void mul64umem(int); + +void div64umem(int); +void div64smem(int); +void div64ureg(int); +void div64sreg(int); diff --git a/src/regress/sys/arch/m68k/emuspeed/test.s b/src/regress/sys/arch/m68k/emuspeed/test.s new file mode 100644 index 000000000..7c91f4f58 --- /dev/null +++ b/src/regress/sys/arch/m68k/emuspeed/test.s @@ -0,0 +1,26 @@ + .globl _mul32smem +_mul32smem: + movl d2,sp@- + movl sp@(8),d2 +L1: + mulsl sp@(8),d1 + subql #1,d2 + jne L1 + movl sp@+,d2 + rts + + .globl _mul32sreg +_mul32sreg: + movl d2,sp@- + movl sp@(8),d2 +L2: + mulsl d0,d1 + subql #1,d2 + jne L2 + movl sp@+,d2 + rts + + .globl _illegal +_illegal: + illegal + rts diff --git a/src/regress/sys/arch/m88k/CVS/Entries b/src/regress/sys/arch/m88k/CVS/Entries new file mode 100644 index 000000000..d0763b94e --- /dev/null +++ b/src/regress/sys/arch/m88k/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.1/Mon Apr 26 12:42:55 2004// +D/usertrap//// diff --git a/src/regress/sys/arch/m88k/CVS/Repository b/src/regress/sys/arch/m88k/CVS/Repository new file mode 100644 index 000000000..66d1ec90f --- /dev/null +++ b/src/regress/sys/arch/m88k/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/m88k diff --git a/src/regress/sys/arch/m88k/CVS/Root b/src/regress/sys/arch/m88k/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/m88k/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/m88k/Makefile b/src/regress/sys/arch/m88k/Makefile new file mode 100644 index 000000000..6b4a5d277 --- /dev/null +++ b/src/regress/sys/arch/m88k/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.1 2004/04/26 12:42:55 miod Exp $ + +SUBDIR+= usertrap + +install: + +.include diff --git a/src/regress/sys/arch/m88k/usertrap/CVS/Entries b/src/regress/sys/arch/m88k/usertrap/CVS/Entries new file mode 100644 index 000000000..3d76757e5 --- /dev/null +++ b/src/regress/sys/arch/m88k/usertrap/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.1/Sat Apr 24 13:19:15 2004// +/answer/1.4/Mon May 8 14:03:31 2006// +/testsuite.sh/1.3/Sun Sep 25 20:29:59 2005// +/trap.c/1.1/Sat Apr 24 13:19:15 2004// +D diff --git a/src/regress/sys/arch/m88k/usertrap/CVS/Repository b/src/regress/sys/arch/m88k/usertrap/CVS/Repository new file mode 100644 index 000000000..78899aa8a --- /dev/null +++ b/src/regress/sys/arch/m88k/usertrap/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/m88k/usertrap diff --git a/src/regress/sys/arch/m88k/usertrap/CVS/Root b/src/regress/sys/arch/m88k/usertrap/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/m88k/usertrap/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/m88k/usertrap/Makefile b/src/regress/sys/arch/m88k/usertrap/Makefile new file mode 100644 index 000000000..0e7e49a42 --- /dev/null +++ b/src/regress/sys/arch/m88k/usertrap/Makefile @@ -0,0 +1,20 @@ +# $OpenBSD: Makefile,v 1.1 2004/04/24 13:19:15 miod Exp $ + +PROG= trap + +.if ${MACHINE_ARCH} != "m88k" +REGRESS_SKIP="yes" +.endif + +REGRESS_TARGETS= do-trap + +do-trap: ${PROG} + sh ${.CURDIR}/testsuite.sh >out 2>&1 + @if diff -u out ${.CURDIR}/answer; then \ + echo SUCCESS; \ + else \ + echo FAIL; \ + exit 1; \ + fi + +.include diff --git a/src/regress/sys/arch/m88k/usertrap/answer b/src/regress/sys/arch/m88k/usertrap/answer new file mode 100644 index 000000000..a5723c0c1 --- /dev/null +++ b/src/regress/sys/arch/m88k/usertrap/answer @@ -0,0 +1,512 @@ +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Illegal instruction +Bad system call +Bad system call +Illegal instruction +Illegal instruction +Illegal instruction +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call + +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Floating point exception +Trace/BPT trap +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Bad system call +Trace/BPT trap diff --git a/src/regress/sys/arch/m88k/usertrap/testsuite.sh b/src/regress/sys/arch/m88k/usertrap/testsuite.sh new file mode 100644 index 000000000..6fe3ac1e0 --- /dev/null +++ b/src/regress/sys/arch/m88k/usertrap/testsuite.sh @@ -0,0 +1,526 @@ +#! /bin/sh +# $OpenBSD: testsuite.sh,v 1.3 2005/09/25 20:29:59 miod Exp $ + +# Simple test program to check what happens when userland tries to trap. +# Written by Miodrag Vallat 2003 AD -- public domain + +PROG=./trap + +ulimit -c 0 + +${PROG} 0 +${PROG} 1 +${PROG} 2 +${PROG} 3 +${PROG} 4 +${PROG} 5 +${PROG} 6 +${PROG} 7 +${PROG} 8 +${PROG} 9 +${PROG} 10 +${PROG} 11 +${PROG} 12 +${PROG} 13 +${PROG} 14 +${PROG} 15 +${PROG} 16 +${PROG} 17 +${PROG} 18 +${PROG} 19 +${PROG} 20 +${PROG} 21 +${PROG} 22 +${PROG} 23 +${PROG} 24 +${PROG} 25 +${PROG} 26 +${PROG} 27 +${PROG} 28 +${PROG} 29 +${PROG} 30 +${PROG} 31 +${PROG} 32 +${PROG} 33 +${PROG} 34 +${PROG} 35 +${PROG} 36 +${PROG} 37 +${PROG} 38 +${PROG} 39 +${PROG} 40 +${PROG} 41 +${PROG} 42 +${PROG} 43 +${PROG} 44 +${PROG} 45 +${PROG} 46 +${PROG} 47 +${PROG} 48 +${PROG} 49 +${PROG} 50 +${PROG} 51 +${PROG} 52 +${PROG} 53 +${PROG} 54 +${PROG} 55 +${PROG} 56 +${PROG} 57 +${PROG} 58 +${PROG} 59 +${PROG} 60 +${PROG} 61 +${PROG} 62 +${PROG} 63 +${PROG} 64 +${PROG} 65 +${PROG} 66 +${PROG} 67 +${PROG} 68 +${PROG} 69 +${PROG} 70 +${PROG} 71 +${PROG} 72 +${PROG} 73 +${PROG} 74 +${PROG} 75 +${PROG} 76 +${PROG} 77 +${PROG} 78 +${PROG} 79 +${PROG} 80 +${PROG} 81 +${PROG} 82 +${PROG} 83 +${PROG} 84 +${PROG} 85 +${PROG} 86 +${PROG} 87 +${PROG} 88 +${PROG} 89 +${PROG} 90 +${PROG} 91 +${PROG} 92 +${PROG} 93 +${PROG} 94 +${PROG} 95 +${PROG} 96 +${PROG} 97 +${PROG} 98 +${PROG} 99 +${PROG} 100 +${PROG} 101 +${PROG} 102 +${PROG} 103 +${PROG} 104 +${PROG} 105 +${PROG} 106 +${PROG} 107 +${PROG} 108 +${PROG} 109 +${PROG} 110 +${PROG} 111 +${PROG} 112 +${PROG} 113 +${PROG} 114 +${PROG} 115 +${PROG} 116 +${PROG} 117 +${PROG} 118 +${PROG} 119 +${PROG} 120 +${PROG} 121 +${PROG} 122 +${PROG} 123 +${PROG} 124 +${PROG} 125 +${PROG} 126 +${PROG} 127 +${PROG} 128 +${PROG} 129 +${PROG} 130 +${PROG} 131 +${PROG} 132 +${PROG} 133 +${PROG} 134 +${PROG} 135 +${PROG} 136 +${PROG} 137 +${PROG} 138 +${PROG} 139 +${PROG} 140 +${PROG} 141 +${PROG} 142 +${PROG} 143 +${PROG} 144 +${PROG} 145 +${PROG} 146 +${PROG} 147 +${PROG} 148 +${PROG} 149 +${PROG} 150 +${PROG} 151 +${PROG} 152 +${PROG} 153 +${PROG} 154 +${PROG} 155 +${PROG} 156 +${PROG} 157 +${PROG} 158 +${PROG} 159 +${PROG} 160 +${PROG} 161 +${PROG} 162 +${PROG} 163 +${PROG} 164 +${PROG} 165 +${PROG} 166 +${PROG} 167 +${PROG} 168 +${PROG} 169 +${PROG} 170 +${PROG} 171 +${PROG} 172 +${PROG} 173 +${PROG} 174 +${PROG} 175 +${PROG} 176 +${PROG} 177 +${PROG} 178 +${PROG} 179 +${PROG} 180 +${PROG} 181 +${PROG} 182 +${PROG} 183 +${PROG} 184 +${PROG} 185 +${PROG} 186 +${PROG} 187 +${PROG} 188 +${PROG} 189 +${PROG} 190 +${PROG} 191 +${PROG} 192 +${PROG} 193 +${PROG} 194 +${PROG} 195 +${PROG} 196 +${PROG} 197 +${PROG} 198 +${PROG} 199 +${PROG} 200 +${PROG} 201 +${PROG} 202 +${PROG} 203 +${PROG} 204 +${PROG} 205 +${PROG} 206 +${PROG} 207 +${PROG} 208 +${PROG} 209 +${PROG} 210 +${PROG} 211 +${PROG} 212 +${PROG} 213 +${PROG} 214 +${PROG} 215 +${PROG} 216 +${PROG} 217 +${PROG} 218 +${PROG} 219 +${PROG} 220 +${PROG} 221 +${PROG} 222 +${PROG} 223 +${PROG} 224 +${PROG} 225 +${PROG} 226 +${PROG} 227 +${PROG} 228 +${PROG} 229 +${PROG} 230 +${PROG} 231 +${PROG} 232 +${PROG} 233 +${PROG} 234 +${PROG} 235 +${PROG} 236 +${PROG} 237 +${PROG} 238 +${PROG} 239 +${PROG} 240 +${PROG} 241 +${PROG} 242 +${PROG} 243 +${PROG} 244 +${PROG} 245 +${PROG} 246 +${PROG} 247 +${PROG} 248 +${PROG} 249 +${PROG} 250 +${PROG} 251 +${PROG} 252 +${PROG} 253 +${PROG} 254 +${PROG} 255 +${PROG} 256 +${PROG} 257 +${PROG} 258 +${PROG} 259 +${PROG} 260 +${PROG} 261 +${PROG} 262 +${PROG} 263 +${PROG} 264 +${PROG} 265 +${PROG} 266 +${PROG} 267 +${PROG} 268 +${PROG} 269 +${PROG} 270 +${PROG} 271 +${PROG} 272 +${PROG} 273 +${PROG} 274 +${PROG} 275 +${PROG} 276 +${PROG} 277 +${PROG} 278 +${PROG} 279 +${PROG} 280 +${PROG} 281 +${PROG} 282 +${PROG} 283 +${PROG} 284 +${PROG} 285 +${PROG} 286 +${PROG} 287 +${PROG} 288 +${PROG} 289 +${PROG} 290 +${PROG} 291 +${PROG} 292 +${PROG} 293 +${PROG} 294 +${PROG} 295 +${PROG} 296 +${PROG} 297 +${PROG} 298 +${PROG} 299 +${PROG} 300 +${PROG} 301 +${PROG} 302 +${PROG} 303 +${PROG} 304 +${PROG} 305 +${PROG} 306 +${PROG} 307 +${PROG} 308 +${PROG} 309 +${PROG} 310 +${PROG} 311 +${PROG} 312 +${PROG} 313 +${PROG} 314 +${PROG} 315 +${PROG} 316 +${PROG} 317 +${PROG} 318 +${PROG} 319 +${PROG} 320 +${PROG} 321 +${PROG} 322 +${PROG} 323 +${PROG} 324 +${PROG} 325 +${PROG} 326 +${PROG} 327 +${PROG} 328 +${PROG} 329 +${PROG} 330 +${PROG} 331 +${PROG} 332 +${PROG} 333 +${PROG} 334 +${PROG} 335 +${PROG} 336 +${PROG} 337 +${PROG} 338 +${PROG} 339 +${PROG} 340 +${PROG} 341 +${PROG} 342 +${PROG} 343 +${PROG} 344 +${PROG} 345 +${PROG} 346 +${PROG} 347 +${PROG} 348 +${PROG} 349 +${PROG} 350 +${PROG} 351 +${PROG} 352 +${PROG} 353 +${PROG} 354 +${PROG} 355 +${PROG} 356 +${PROG} 357 +${PROG} 358 +${PROG} 359 +${PROG} 360 +${PROG} 361 +${PROG} 362 +${PROG} 363 +${PROG} 364 +${PROG} 365 +${PROG} 366 +${PROG} 367 +${PROG} 368 +${PROG} 369 +${PROG} 370 +${PROG} 371 +${PROG} 372 +${PROG} 373 +${PROG} 374 +${PROG} 375 +${PROG} 376 +${PROG} 377 +${PROG} 378 +${PROG} 379 +${PROG} 380 +${PROG} 381 +${PROG} 382 +${PROG} 383 +${PROG} 384 +${PROG} 385 +${PROG} 386 +${PROG} 387 +${PROG} 388 +${PROG} 389 +${PROG} 390 +${PROG} 391 +${PROG} 392 +${PROG} 393 +${PROG} 394 +${PROG} 395 +${PROG} 396 +${PROG} 397 +${PROG} 398 +${PROG} 399 +${PROG} 400 +${PROG} 401 +${PROG} 402 +${PROG} 403 +${PROG} 404 +${PROG} 405 +${PROG} 406 +${PROG} 407 +${PROG} 408 +${PROG} 409 +${PROG} 410 +${PROG} 411 +${PROG} 412 +${PROG} 413 +${PROG} 414 +${PROG} 415 +${PROG} 416 +${PROG} 417 +${PROG} 418 +${PROG} 419 +${PROG} 420 +${PROG} 421 +${PROG} 422 +${PROG} 423 +${PROG} 424 +${PROG} 425 +${PROG} 426 +${PROG} 427 +${PROG} 428 +${PROG} 429 +${PROG} 430 +${PROG} 431 +${PROG} 432 +${PROG} 433 +${PROG} 434 +${PROG} 435 +${PROG} 436 +${PROG} 437 +${PROG} 438 +${PROG} 439 +${PROG} 440 +${PROG} 441 +${PROG} 442 +${PROG} 443 +${PROG} 444 +${PROG} 445 +${PROG} 446 +${PROG} 447 +${PROG} 448 +${PROG} 449 +${PROG} 450 +${PROG} 451 +# since there won't be any output... +echo +${PROG} 452 +${PROG} 453 +${PROG} 454 +${PROG} 455 +${PROG} 456 +${PROG} 457 +${PROG} 458 +${PROG} 459 +${PROG} 460 +${PROG} 461 +${PROG} 462 +${PROG} 463 +${PROG} 464 +${PROG} 465 +${PROG} 466 +${PROG} 467 +${PROG} 468 +${PROG} 469 +${PROG} 470 +${PROG} 471 +${PROG} 472 +${PROG} 473 +${PROG} 474 +${PROG} 475 +${PROG} 476 +${PROG} 477 +${PROG} 478 +${PROG} 479 +${PROG} 480 +${PROG} 481 +${PROG} 482 +${PROG} 483 +${PROG} 484 +${PROG} 485 +${PROG} 486 +${PROG} 487 +${PROG} 488 +${PROG} 489 +${PROG} 490 +${PROG} 491 +${PROG} 492 +${PROG} 493 +${PROG} 494 +${PROG} 495 +${PROG} 496 +${PROG} 497 +${PROG} 498 +${PROG} 499 +${PROG} 500 +${PROG} 501 +${PROG} 502 +${PROG} 503 +${PROG} 504 +${PROG} 505 +${PROG} 506 +${PROG} 507 +${PROG} 508 +${PROG} 509 +${PROG} 510 +${PROG} 511 + +exit 0 diff --git a/src/regress/sys/arch/m88k/usertrap/trap.c b/src/regress/sys/arch/m88k/usertrap/trap.c new file mode 100644 index 000000000..1f6de6263 --- /dev/null +++ b/src/regress/sys/arch/m88k/usertrap/trap.c @@ -0,0 +1,542 @@ +/* $OpenBSD: trap.c,v 1.1 2004/04/24 13:19:15 miod Exp $ */ + +/* + * Simple test program to check what happens when userland tries to trap. + * Written by Miodrag Vallat 2003 AD -- public domain + */ + +#include + +#define TRAP(num) \ + case num: \ + __asm__ __volatile__ ("tb0 0, r0, " __STRING(num) ); \ + break; + +int +main(int argc, char *argv[]) +{ + int trapnum = 503; /* software divide by zero */ + + if (argc > 1) + trapnum = atoi(argv[1]); + + switch (trapnum) { +TRAP(0x000) +TRAP(0x001) +TRAP(0x002) +TRAP(0x003) +TRAP(0x004) +TRAP(0x005) +TRAP(0x006) +TRAP(0x007) +TRAP(0x008) +TRAP(0x009) +TRAP(0x00a) +TRAP(0x00b) +TRAP(0x00c) +TRAP(0x00d) +TRAP(0x00e) +TRAP(0x00f) +TRAP(0x010) +TRAP(0x011) +TRAP(0x012) +TRAP(0x013) +TRAP(0x014) +TRAP(0x015) +TRAP(0x016) +TRAP(0x017) +TRAP(0x018) +TRAP(0x019) +TRAP(0x01a) +TRAP(0x01b) +TRAP(0x01c) +TRAP(0x01d) +TRAP(0x01e) +TRAP(0x01f) +TRAP(0x020) +TRAP(0x021) +TRAP(0x022) +TRAP(0x023) +TRAP(0x024) +TRAP(0x025) +TRAP(0x026) +TRAP(0x027) +TRAP(0x028) +TRAP(0x029) +TRAP(0x02a) +TRAP(0x02b) +TRAP(0x02c) +TRAP(0x02d) +TRAP(0x02e) +TRAP(0x02f) +TRAP(0x030) +TRAP(0x031) +TRAP(0x032) +TRAP(0x033) +TRAP(0x034) +TRAP(0x035) +TRAP(0x036) +TRAP(0x037) +TRAP(0x038) +TRAP(0x039) +TRAP(0x03a) +TRAP(0x03b) +TRAP(0x03c) +TRAP(0x03d) +TRAP(0x03e) +TRAP(0x03f) +TRAP(0x040) +TRAP(0x041) +TRAP(0x042) +TRAP(0x043) +TRAP(0x044) +TRAP(0x045) +TRAP(0x046) +TRAP(0x047) +TRAP(0x048) +TRAP(0x049) +TRAP(0x04a) +TRAP(0x04b) +TRAP(0x04c) +TRAP(0x04d) +TRAP(0x04e) +TRAP(0x04f) +TRAP(0x050) +TRAP(0x051) +TRAP(0x052) +TRAP(0x053) +TRAP(0x054) +TRAP(0x055) +TRAP(0x056) +TRAP(0x057) +TRAP(0x058) +TRAP(0x059) +TRAP(0x05a) +TRAP(0x05b) +TRAP(0x05c) +TRAP(0x05d) +TRAP(0x05e) +TRAP(0x05f) +TRAP(0x060) +TRAP(0x061) +TRAP(0x062) +TRAP(0x063) +TRAP(0x064) +TRAP(0x065) +TRAP(0x066) +TRAP(0x067) +TRAP(0x068) +TRAP(0x069) +TRAP(0x06a) +TRAP(0x06b) +TRAP(0x06c) +TRAP(0x06d) +TRAP(0x06e) +TRAP(0x06f) +TRAP(0x070) +TRAP(0x071) +TRAP(0x072) +TRAP(0x073) +TRAP(0x074) +TRAP(0x075) +TRAP(0x076) +TRAP(0x077) +TRAP(0x078) +TRAP(0x079) +TRAP(0x07a) +TRAP(0x07b) +TRAP(0x07c) +TRAP(0x07d) +TRAP(0x07e) +TRAP(0x07f) +TRAP(0x080) +TRAP(0x081) +TRAP(0x082) +TRAP(0x083) +TRAP(0x084) +TRAP(0x085) +TRAP(0x086) +TRAP(0x087) +TRAP(0x088) +TRAP(0x089) +TRAP(0x08a) +TRAP(0x08b) +TRAP(0x08c) +TRAP(0x08d) +TRAP(0x08e) +TRAP(0x08f) +TRAP(0x090) +TRAP(0x091) +TRAP(0x092) +TRAP(0x093) +TRAP(0x094) +TRAP(0x095) +TRAP(0x096) +TRAP(0x097) +TRAP(0x098) +TRAP(0x099) +TRAP(0x09a) +TRAP(0x09b) +TRAP(0x09c) +TRAP(0x09d) +TRAP(0x09e) +TRAP(0x09f) +TRAP(0x0a0) +TRAP(0x0a1) +TRAP(0x0a2) +TRAP(0x0a3) +TRAP(0x0a4) +TRAP(0x0a5) +TRAP(0x0a6) +TRAP(0x0a7) +TRAP(0x0a8) +TRAP(0x0a9) +TRAP(0x0aa) +TRAP(0x0ab) +TRAP(0x0ac) +TRAP(0x0ad) +TRAP(0x0ae) +TRAP(0x0af) +TRAP(0x0b0) +TRAP(0x0b1) +TRAP(0x0b2) +TRAP(0x0b3) +TRAP(0x0b4) +TRAP(0x0b5) +TRAP(0x0b6) +TRAP(0x0b7) +TRAP(0x0b8) +TRAP(0x0b9) +TRAP(0x0ba) +TRAP(0x0bb) +TRAP(0x0bc) +TRAP(0x0bd) +TRAP(0x0be) +TRAP(0x0bf) +TRAP(0x0c0) +TRAP(0x0c1) +TRAP(0x0c2) +TRAP(0x0c3) +TRAP(0x0c4) +TRAP(0x0c5) +TRAP(0x0c6) +TRAP(0x0c7) +TRAP(0x0c8) +TRAP(0x0c9) +TRAP(0x0ca) +TRAP(0x0cb) +TRAP(0x0cc) +TRAP(0x0cd) +TRAP(0x0ce) +TRAP(0x0cf) +TRAP(0x0d0) +TRAP(0x0d1) +TRAP(0x0d2) +TRAP(0x0d3) +TRAP(0x0d4) +TRAP(0x0d5) +TRAP(0x0d6) +TRAP(0x0d7) +TRAP(0x0d8) +TRAP(0x0d9) +TRAP(0x0da) +TRAP(0x0db) +TRAP(0x0dc) +TRAP(0x0dd) +TRAP(0x0de) +TRAP(0x0df) +TRAP(0x0e0) +TRAP(0x0e1) +TRAP(0x0e2) +TRAP(0x0e3) +TRAP(0x0e4) +TRAP(0x0e5) +TRAP(0x0e6) +TRAP(0x0e7) +TRAP(0x0e8) +TRAP(0x0e9) +TRAP(0x0ea) +TRAP(0x0eb) +TRAP(0x0ec) +TRAP(0x0ed) +TRAP(0x0ee) +TRAP(0x0ef) +TRAP(0x0f0) +TRAP(0x0f1) +TRAP(0x0f2) +TRAP(0x0f3) +TRAP(0x0f4) +TRAP(0x0f5) +TRAP(0x0f6) +TRAP(0x0f7) +TRAP(0x0f8) +TRAP(0x0f9) +TRAP(0x0fa) +TRAP(0x0fb) +TRAP(0x0fc) +TRAP(0x0fd) +TRAP(0x0fe) +TRAP(0x0ff) +TRAP(0x100) +TRAP(0x101) +TRAP(0x102) +TRAP(0x103) +TRAP(0x104) +TRAP(0x105) +TRAP(0x106) +TRAP(0x107) +TRAP(0x108) +TRAP(0x109) +TRAP(0x10a) +TRAP(0x10b) +TRAP(0x10c) +TRAP(0x10d) +TRAP(0x10e) +TRAP(0x10f) +TRAP(0x110) +TRAP(0x111) +TRAP(0x112) +TRAP(0x113) +TRAP(0x114) +TRAP(0x115) +TRAP(0x116) +TRAP(0x117) +TRAP(0x118) +TRAP(0x119) +TRAP(0x11a) +TRAP(0x11b) +TRAP(0x11c) +TRAP(0x11d) +TRAP(0x11e) +TRAP(0x11f) +TRAP(0x120) +TRAP(0x121) +TRAP(0x122) +TRAP(0x123) +TRAP(0x124) +TRAP(0x125) +TRAP(0x126) +TRAP(0x127) +TRAP(0x128) +TRAP(0x129) +TRAP(0x12a) +TRAP(0x12b) +TRAP(0x12c) +TRAP(0x12d) +TRAP(0x12e) +TRAP(0x12f) +TRAP(0x130) +TRAP(0x131) +TRAP(0x132) +TRAP(0x133) +TRAP(0x134) +TRAP(0x135) +TRAP(0x136) +TRAP(0x137) +TRAP(0x138) +TRAP(0x139) +TRAP(0x13a) +TRAP(0x13b) +TRAP(0x13c) +TRAP(0x13d) +TRAP(0x13e) +TRAP(0x13f) +TRAP(0x140) +TRAP(0x141) +TRAP(0x142) +TRAP(0x143) +TRAP(0x144) +TRAP(0x145) +TRAP(0x146) +TRAP(0x147) +TRAP(0x148) +TRAP(0x149) +TRAP(0x14a) +TRAP(0x14b) +TRAP(0x14c) +TRAP(0x14d) +TRAP(0x14e) +TRAP(0x14f) +TRAP(0x150) +TRAP(0x151) +TRAP(0x152) +TRAP(0x153) +TRAP(0x154) +TRAP(0x155) +TRAP(0x156) +TRAP(0x157) +TRAP(0x158) +TRAP(0x159) +TRAP(0x15a) +TRAP(0x15b) +TRAP(0x15c) +TRAP(0x15d) +TRAP(0x15e) +TRAP(0x15f) +TRAP(0x160) +TRAP(0x161) +TRAP(0x162) +TRAP(0x163) +TRAP(0x164) +TRAP(0x165) +TRAP(0x166) +TRAP(0x167) +TRAP(0x168) +TRAP(0x169) +TRAP(0x16a) +TRAP(0x16b) +TRAP(0x16c) +TRAP(0x16d) +TRAP(0x16e) +TRAP(0x16f) +TRAP(0x170) +TRAP(0x171) +TRAP(0x172) +TRAP(0x173) +TRAP(0x174) +TRAP(0x175) +TRAP(0x176) +TRAP(0x177) +TRAP(0x178) +TRAP(0x179) +TRAP(0x17a) +TRAP(0x17b) +TRAP(0x17c) +TRAP(0x17d) +TRAP(0x17e) +TRAP(0x17f) +TRAP(0x180) +TRAP(0x181) +TRAP(0x182) +TRAP(0x183) +TRAP(0x184) +TRAP(0x185) +TRAP(0x186) +TRAP(0x187) +TRAP(0x188) +TRAP(0x189) +TRAP(0x18a) +TRAP(0x18b) +TRAP(0x18c) +TRAP(0x18d) +TRAP(0x18e) +TRAP(0x18f) +TRAP(0x190) +TRAP(0x191) +TRAP(0x192) +TRAP(0x193) +TRAP(0x194) +TRAP(0x195) +TRAP(0x196) +TRAP(0x197) +TRAP(0x198) +TRAP(0x199) +TRAP(0x19a) +TRAP(0x19b) +TRAP(0x19c) +TRAP(0x19d) +TRAP(0x19e) +TRAP(0x19f) +TRAP(0x1a0) +TRAP(0x1a1) +TRAP(0x1a2) +TRAP(0x1a3) +TRAP(0x1a4) +TRAP(0x1a5) +TRAP(0x1a6) +TRAP(0x1a7) +TRAP(0x1a8) +TRAP(0x1a9) +TRAP(0x1aa) +TRAP(0x1ab) +TRAP(0x1ac) +TRAP(0x1ad) +TRAP(0x1ae) +TRAP(0x1af) +TRAP(0x1b0) +TRAP(0x1b1) +TRAP(0x1b2) +TRAP(0x1b3) +TRAP(0x1b4) +TRAP(0x1b5) +TRAP(0x1b6) +TRAP(0x1b7) +TRAP(0x1b8) +TRAP(0x1b9) +TRAP(0x1ba) +TRAP(0x1bb) +TRAP(0x1bc) +TRAP(0x1bd) +TRAP(0x1be) +TRAP(0x1bf) +TRAP(0x1c0) +TRAP(0x1c1) +TRAP(0x1c2) +TRAP(0x1c3) +TRAP(0x1c4) +TRAP(0x1c5) +TRAP(0x1c6) +TRAP(0x1c7) +TRAP(0x1c8) +TRAP(0x1c9) +TRAP(0x1ca) +TRAP(0x1cb) +TRAP(0x1cc) +TRAP(0x1cd) +TRAP(0x1ce) +TRAP(0x1cf) +TRAP(0x1d0) +TRAP(0x1d1) +TRAP(0x1d2) +TRAP(0x1d3) +TRAP(0x1d4) +TRAP(0x1d5) +TRAP(0x1d6) +TRAP(0x1d7) +TRAP(0x1d8) +TRAP(0x1d9) +TRAP(0x1da) +TRAP(0x1db) +TRAP(0x1dc) +TRAP(0x1dd) +TRAP(0x1de) +TRAP(0x1df) +TRAP(0x1e0) +TRAP(0x1e1) +TRAP(0x1e2) +TRAP(0x1e3) +TRAP(0x1e4) +TRAP(0x1e5) +TRAP(0x1e6) +TRAP(0x1e7) +TRAP(0x1e8) +TRAP(0x1e9) +TRAP(0x1ea) +TRAP(0x1eb) +TRAP(0x1ec) +TRAP(0x1ed) +TRAP(0x1ee) +TRAP(0x1ef) +TRAP(0x1f0) +TRAP(0x1f1) +TRAP(0x1f2) +TRAP(0x1f3) +TRAP(0x1f4) +TRAP(0x1f5) +TRAP(0x1f6) +TRAP(0x1f7) +TRAP(0x1f8) +TRAP(0x1f9) +TRAP(0x1fa) +TRAP(0x1fb) +TRAP(0x1fc) +TRAP(0x1fd) +TRAP(0x1fe) +TRAP(0x1ff) + default: + printf("invalid trap number %x\n", trapnum); + return 1; + } + + return 0; +} diff --git a/src/regress/sys/arch/sparc64/CVS/Entries b/src/regress/sys/arch/sparc64/CVS/Entries new file mode 100644 index 000000000..d5d0c186b --- /dev/null +++ b/src/regress/sys/arch/sparc64/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Sat Jul 12 04:08:33 2003// +D/emul-ldqstq//// +D/emul-popc//// diff --git a/src/regress/sys/arch/sparc64/CVS/Repository b/src/regress/sys/arch/sparc64/CVS/Repository new file mode 100644 index 000000000..f71a99b0c --- /dev/null +++ b/src/regress/sys/arch/sparc64/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/sparc64 diff --git a/src/regress/sys/arch/sparc64/CVS/Root b/src/regress/sys/arch/sparc64/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/sparc64/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/sparc64/Makefile b/src/regress/sys/arch/sparc64/Makefile new file mode 100644 index 000000000..dbc806192 --- /dev/null +++ b/src/regress/sys/arch/sparc64/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.2 2003/07/12 04:08:33 jason Exp $ + +.if ${MACHINE_ARCH} == "sparc64" +SUBDIR=emul-popc emul-ldqstq +.endif + +.include diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Entries b/src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Entries new file mode 100644 index 000000000..d22319f63 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.3/Sun Jul 13 06:33:23 2003// +D/asi//// +D/badfreg//// +D/goodfreg//// +D/simm13//// diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Repository b/src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Repository new file mode 100644 index 000000000..478393050 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/sparc64/emul-ldqstq diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Root b/src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/Makefile b/src/regress/sys/arch/sparc64/emul-ldqstq/Makefile new file mode 100644 index 000000000..d012da627 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.3 2003/07/13 06:33:23 jason Exp $ + +SUBDIR=asi badfreg goodfreg simm13 + +.include diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/asi/CVS/Entries b/src/regress/sys/arch/sparc64/emul-ldqstq/asi/CVS/Entries new file mode 100644 index 000000000..668a28cf6 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/asi/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Sat Jul 12 06:31:49 2003// +/asi.c/1.2/Sat Jul 12 07:09:25 2003// +/asi_asm.S/1.2/Sat Jul 12 07:09:25 2003// +D diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/asi/CVS/Repository b/src/regress/sys/arch/sparc64/emul-ldqstq/asi/CVS/Repository new file mode 100644 index 000000000..7de14e70e --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/asi/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/sparc64/emul-ldqstq/asi diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/asi/CVS/Root b/src/regress/sys/arch/sparc64/emul-ldqstq/asi/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/asi/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/asi/Makefile b/src/regress/sys/arch/sparc64/emul-ldqstq/asi/Makefile new file mode 100644 index 000000000..1148817c0 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/asi/Makefile @@ -0,0 +1,10 @@ +# $OpenBSD: Makefile,v 1.1 2003/07/12 06:31:49 jason Exp $ + +PROG=asi +NOMAN= +SRCS=fpregs.S asi.c asi_asm.S +CFLAGS+=-I${.CURDIR}/../goodfreg + +.PATH: ${.CURDIR}/../goodfreg + +.include diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/asi/asi.c b/src/regress/sys/arch/sparc64/emul-ldqstq/asi/asi.c new file mode 100644 index 000000000..a72b79be1 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/asi/asi.c @@ -0,0 +1,309 @@ +/* $OpenBSD: asi.c,v 1.2 2003/07/12 07:09:25 jason Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include "fpregs.h" + +struct fpquad { + u_int32_t x1; + u_int32_t x2; + u_int32_t x3; + u_int32_t x4; +}; + +int compare_regs(union fpregs *, union fpregs *); +void dump_reg(union fpregs *); +void dump_regs(union fpregs *, union fpregs *, union fpregs *); +int compare_quads(struct fpquad *, struct fpquad *); +void c_stqa_asi(int, union fpregs *, struct fpquad *); +void c_ldqa_asi(int, union fpregs *, struct fpquad *); +void asm_ldqa_asi(int, struct fpquad *); +void asm_stqa_asi(int, struct fpquad *); +void asm_ldqa_imm(int asi, struct fpquad *); +void asm_stqa_imm(int asi, struct fpquad *); +void asm_stqa_primary(struct fpquad *); +void asm_ldqa_primary(struct fpquad *); +void asm_stqa_secondary(struct fpquad *); +void asm_ldqa_secondary(struct fpquad *); +void asm_stqa_primary_nofault(struct fpquad *); +void asm_ldqa_primary_nofault(struct fpquad *); +void asm_stqa_secondary_nofault(struct fpquad *); +void asm_ldqa_secondary_nofault(struct fpquad *); +void asm_stqa_primary_little(struct fpquad *); +void asm_ldqa_primary_little(struct fpquad *); +void asm_stqa_secondary_little(struct fpquad *); +void asm_ldqa_secondary_little(struct fpquad *); +void asm_stqa_primary_nofault_little(struct fpquad *); +void asm_ldqa_primary_nofault_little(struct fpquad *); +void asm_stqa_secondary_nofault_little(struct fpquad *); +void asm_ldqa_secondary_nofault_little(struct fpquad *); +void check_asi(int, union fpregs *, union fpregs *, union fpregs *); +void check_asi_asi(int, union fpregs *, union fpregs *, union fpregs *); +void check_asi_imm(int, union fpregs *, union fpregs *, union fpregs *); +int main(int, char *[]); + +int +compare_regs(union fpregs *fr1, union fpregs *fr2) +{ + return (memcmp(fr1, fr2, sizeof(*fr2))); +} + +void +dump_reg(union fpregs *fr) +{ + int i; + + for (i = 0; i < 64; i++) { + if ((i & 3) == 0) + printf("f%-2d:", i); + printf(" %08x", fr->f_reg32[i]); + if ((i & 3) == 3) + printf("\n"); + } +} + +void +dump_regs(union fpregs *fr1, union fpregs *fr2, union fpregs *fr3) +{ + printf("BEFORE ASM\n"); + dump_reg(fr1); + printf("AFTER ASM\n"); + dump_reg(fr2); + printf("MANUAL\n"); + dump_reg(fr3); +} + +int +compare_quads(struct fpquad *q1, struct fpquad *q2) +{ + return (memcmp(q1, q2, sizeof(*q2))); +} + +void +c_stqa_asi(int asi, union fpregs *frp, struct fpquad *q) +{ + if (asi == ASI_PRIMARY || + asi == ASI_PRIMARY_NOFAULT || + asi == ASI_SECONDARY || + asi == ASI_SECONDARY_NOFAULT) { + q->x1 = frp->f_reg32[0]; + q->x2 = frp->f_reg32[0 + 1]; + q->x3 = frp->f_reg32[0 + 2]; + q->x4 = frp->f_reg32[0 + 3]; + return; + } + if (asi == ASI_PRIMARY_LITTLE || + asi == ASI_PRIMARY_NOFAULT_LITTLE || + asi == ASI_SECONDARY_LITTLE || + asi == ASI_SECONDARY_NOFAULT_LITTLE) { + q->x4 = htole32(frp->f_reg32[0]); + q->x3 = htole32(frp->f_reg32[0 + 1]); + q->x2 = htole32(frp->f_reg32[0 + 2]); + q->x1 = htole32(frp->f_reg32[0 + 3]); + return; + } + errx(1, "c_stqa_asi: bad asi %d", asi); +} + +void +c_ldqa_asi(int asi, union fpregs *frp, struct fpquad *q) +{ + if (asi == ASI_PRIMARY || + asi == ASI_PRIMARY_NOFAULT || + asi == ASI_SECONDARY || + asi == ASI_SECONDARY_NOFAULT) { + frp->f_reg32[0] = q->x1; + frp->f_reg32[0 + 1] = q->x2; + frp->f_reg32[0 + 2] = q->x3; + frp->f_reg32[0 + 3] = q->x4; + return; + } + if (asi == ASI_PRIMARY_LITTLE || + asi == ASI_PRIMARY_NOFAULT_LITTLE || + asi == ASI_SECONDARY_LITTLE || + asi == ASI_SECONDARY_NOFAULT_LITTLE) { + frp->f_reg32[0] = htole32(q->x4); + frp->f_reg32[0 + 1] = htole32(q->x3); + frp->f_reg32[0 + 2] = htole32(q->x2); + frp->f_reg32[0 + 3] = htole32(q->x1); + return; + } + errx(1, "c_ldqa_asi: bad asi %d", asi); +} + +void +asm_stqa_imm(int asi, struct fpquad *q) +{ + switch (asi) { + case ASI_PRIMARY: + asm_stqa_primary(q); + break; + case ASI_SECONDARY: + asm_stqa_secondary(q); + break; + case ASI_PRIMARY_NOFAULT: + asm_stqa_primary_nofault(q); + break; + case ASI_SECONDARY_NOFAULT: + asm_stqa_secondary_nofault(q); + break; + case ASI_PRIMARY_LITTLE: + asm_stqa_primary_little(q); + break; + case ASI_SECONDARY_LITTLE: + asm_stqa_secondary_little(q); + break; + case ASI_PRIMARY_NOFAULT_LITTLE: + asm_stqa_primary_nofault_little(q); + break; + case ASI_SECONDARY_NOFAULT_LITTLE: + asm_stqa_secondary_nofault_little(q); + break; + default: + errx(1, "asm_stqa_imm: bad asi %d", asi); + } +} + +void +asm_ldqa_imm(int asi, struct fpquad *q) +{ + switch (asi) { + case ASI_PRIMARY: + asm_ldqa_primary(q); + break; + case ASI_SECONDARY: + asm_ldqa_secondary(q); + break; + case ASI_PRIMARY_NOFAULT: + asm_ldqa_primary_nofault(q); + break; + case ASI_SECONDARY_NOFAULT: + asm_ldqa_secondary_nofault(q); + break; + case ASI_PRIMARY_LITTLE: + asm_ldqa_primary_little(q); + break; + case ASI_SECONDARY_LITTLE: + asm_ldqa_secondary_little(q); + break; + case ASI_PRIMARY_NOFAULT_LITTLE: + asm_ldqa_primary_nofault_little(q); + break; + case ASI_SECONDARY_NOFAULT_LITTLE: + asm_ldqa_secondary_nofault_little(q); + break; + default: + errx(1, "asm_ldqa_imm: bad asi %d", asi); + } +} + +void +check_asi(int asi, union fpregs *fr1, union fpregs *fr2, union fpregs *fr3) +{ + check_asi_asi(asi, fr1, fr2, fr3); + check_asi_imm(asi, fr1, fr2, fr3); +} + +void +check_asi_asi(int asi, union fpregs *fr1, union fpregs *fr2, union fpregs *fr3) +{ + struct fpquad q1; + + initfpregs(fr1); + initfpregs(fr2); + initfpregs(fr3); + + q1.x1 = 0x01234567; + q1.x2 = 0x89abcdef; + q1.x3 = 0x55aa55aa; + q1.x4 = 0xa5a5a5a5; + + loadfpregs(fr1); + asm_ldqa_asi(asi, &q1); + savefpregs(fr2); + + c_ldqa_asi(asi, fr3, &q1); + + if (compare_regs(fr2, fr3)) { + printf("ASI 0x%x failed\n", asi); + dump_regs(fr1, fr2, fr3); + exit(1); + } +} + +void +check_asi_imm(int asi, union fpregs *fr1, union fpregs *fr2, union fpregs *fr3) +{ + struct fpquad q1; + + initfpregs(fr1); + initfpregs(fr2); + initfpregs(fr3); + + q1.x1 = 0x01234567; + q1.x2 = 0x89abcdef; + q1.x3 = 0x55aa55aa; + q1.x4 = 0xa5a5a5a5; + + loadfpregs(fr1); + asm_ldqa_imm(asi, &q1); + savefpregs(fr2); + + c_ldqa_asi(asi, fr3, &q1); + + if (compare_regs(fr2, fr3)) { + printf("ASI 0x%x failed\n", asi); + dump_regs(fr1, fr2, fr3); + exit(1); + } +} + +int +main(int argc, char *argv[]) +{ + union fpregs fr1, fr2, fr3; + + check_asi(ASI_PRIMARY, &fr1, &fr2, &fr3); + check_asi(ASI_PRIMARY_NOFAULT, &fr1, &fr2, &fr3); + check_asi(ASI_PRIMARY_LITTLE, &fr1, &fr2, &fr3); + check_asi(ASI_PRIMARY_NOFAULT_LITTLE, &fr1, &fr2, &fr3); + check_asi(ASI_SECONDARY, &fr1, &fr2, &fr3); + check_asi(ASI_SECONDARY_NOFAULT, &fr1, &fr2, &fr3); + check_asi(ASI_SECONDARY_LITTLE, &fr1, &fr2, &fr3); + check_asi(ASI_SECONDARY_NOFAULT_LITTLE, &fr1, &fr2, &fr3); + return (0); +} diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/asi/asi_asm.S b/src/regress/sys/arch/sparc64/emul-ldqstq/asi/asi_asm.S new file mode 100644 index 000000000..7e50b1fb8 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/asi/asi_asm.S @@ -0,0 +1,111 @@ +/* $OpenBSD: asi_asm.S,v 1.2 2003/07/12 07:09:25 jason Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include + +/* void asm_ldq_asi(int asi, struct fpquad *r) %f0 = *r */ +ENTRY(asm_ldqa_asi) + rd %asi, %o2 + wr %o0, 0, %asi + ldqa [%o1] %asi, %f0 + retl + wr %o2, 0, %asi + +/* void asm_ldq_asi(int asi, struct fpquad *) *r = %f0 */ +ENTRY(asm_stqa_asi) + rd %asi, %o2 + wr %o0, 0, %asi + stqa %f0, [%o1] %asi + retl + wr %o2, 0, %asi + +ENTRY(asm_stqa_primary) + retl + stqa %f0, [%o0] ASI_PRIMARY + +ENTRY(asm_ldqa_primary) + retl + ldqa [%o0] ASI_PRIMARY, %f0 + +ENTRY(asm_stqa_secondary) + retl + stqa %f0, [%o0] ASI_SECONDARY + +ENTRY(asm_ldqa_secondary) + retl + ldqa [%o0] ASI_SECONDARY, %f0 + +ENTRY(asm_stqa_primary_nofault) + retl + stqa %f0, [%o0] ASI_PRIMARY_NOFAULT + +ENTRY(asm_ldqa_primary_nofault) + retl + ldqa [%o0] ASI_PRIMARY_NOFAULT, %f0 + +ENTRY(asm_stqa_secondary_nofault) + retl + stqa %f0, [%o0] ASI_SECONDARY_NOFAULT + +ENTRY(asm_ldqa_secondary_nofault) + retl + ldqa [%o0] ASI_SECONDARY_NOFAULT, %f0 + +ENTRY(asm_stqa_primary_little) + retl + stqa %f0, [%o0] ASI_PRIMARY_LITTLE + +ENTRY(asm_ldqa_primary_little) + retl + ldqa [%o0] ASI_PRIMARY_LITTLE, %f0 + +ENTRY(asm_stqa_secondary_little) + retl + stqa %f0, [%o0] ASI_SECONDARY_LITTLE + +ENTRY(asm_ldqa_secondary_little) + retl + ldqa [%o0] ASI_SECONDARY_LITTLE, %f0 + +ENTRY(asm_stqa_primary_nofault_little) + retl + stqa %f0, [%o0] ASI_PRIMARY_NOFAULT_LITTLE + +ENTRY(asm_ldqa_primary_nofault_little) + retl + ldqa [%o0] ASI_PRIMARY_NOFAULT_LITTLE, %f0 + +ENTRY(asm_stqa_secondary_nofault_little) + retl + stqa %f0, [%o0] ASI_SECONDARY_NOFAULT_LITTLE + +ENTRY(asm_ldqa_secondary_nofault_little) + retl + ldqa [%o0] ASI_SECONDARY_NOFAULT_LITTLE, %f0 + diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Entries b/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Entries new file mode 100644 index 000000000..a2d1aa829 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.2/Sat Jul 12 04:23:15 2003// +/main.c/1.1/Sat Jul 12 04:08:33 2003// +/test.S/1.1/Sat Jul 12 04:08:33 2003// +D diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Repository b/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Repository new file mode 100644 index 000000000..0b21616f4 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/sparc64/emul-ldqstq/badfreg diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Root b/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/Makefile b/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/Makefile new file mode 100644 index 000000000..3ab26c15f --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/Makefile @@ -0,0 +1,218 @@ +# $OpenBSD: Makefile,v 1.2 2003/07/12 04:23:15 jason Exp $ + +PROG=badfpreg +NOMAN= +SRCS=test.S main.c + +REGRESS_TARGETS= \ + t_ld_f2_imm t_st_f2_imm t_ld_f2_reg t_st_f2_reg \ + t_ld_f6_imm t_st_f6_imm t_ld_f6_reg t_st_f6_reg \ + t_ld_f10_imm t_st_f10_imm t_ld_f10_reg t_st_f10_reg \ + t_ld_f14_imm t_st_f14_imm t_ld_f14_reg t_st_f14_reg \ + t_ld_f18_imm t_st_f18_imm t_ld_f18_reg t_st_f18_reg \ + t_ld_f22_imm t_st_f22_imm t_ld_f22_reg t_st_f22_reg \ + t_ld_f26_imm t_st_f26_imm t_ld_f26_reg t_st_f26_reg \ + t_ld_f30_imm t_st_f30_imm t_ld_f30_reg t_st_f30_reg \ + t_ld_f34_imm t_st_f34_imm t_ld_f34_reg t_st_f34_reg \ + t_ld_f38_imm t_st_f38_imm t_ld_f38_reg t_st_f38_reg \ + t_ld_f42_imm t_st_f42_imm t_ld_f42_reg t_st_f42_reg \ + t_ld_f46_imm t_st_f46_imm t_ld_f46_reg t_st_f46_reg \ + t_ld_f50_imm t_st_f50_imm t_ld_f50_reg t_st_f50_reg \ + t_ld_f54_imm t_st_f54_imm t_ld_f54_reg t_st_f54_reg \ + t_ld_f58_imm t_st_f58_imm t_ld_f58_reg t_st_f58_reg \ + t_ld_f62_imm t_st_f62_imm t_ld_f62_reg t_st_f62_reg + +.include + +t_ld_f2_imm: ${PROG} + ${.OBJDIR}/${PROG} 2 ld imm + +t_st_f2_imm: ${PROG} + ${.OBJDIR}/${PROG} 2 st imm + +t_ld_f2_reg: ${PROG} + ${.OBJDIR}/${PROG} 2 ld reg + +t_st_f2_reg: ${PROG} + ${.OBJDIR}/${PROG} 2 st reg + +t_ld_f6_imm: ${PROG} + ${.OBJDIR}/${PROG} 6 ld imm + +t_st_f6_imm: ${PROG} + ${.OBJDIR}/${PROG} 6 st imm + +t_ld_f6_reg: ${PROG} + ${.OBJDIR}/${PROG} 6 ld reg + +t_st_f6_reg: ${PROG} + ${.OBJDIR}/${PROG} 6 st reg + +t_ld_f10_imm: ${PROG} + ${.OBJDIR}/${PROG} 10 ld imm + +t_st_f10_imm: ${PROG} + ${.OBJDIR}/${PROG} 10 st imm + +t_ld_f10_reg: ${PROG} + ${.OBJDIR}/${PROG} 10 ld reg + +t_st_f10_reg: ${PROG} + ${.OBJDIR}/${PROG} 10 st reg + +t_ld_f14_imm: ${PROG} + ${.OBJDIR}/${PROG} 14 ld imm + +t_st_f14_imm: ${PROG} + ${.OBJDIR}/${PROG} 14 st imm + +t_ld_f14_reg: ${PROG} + ${.OBJDIR}/${PROG} 14 ld reg + +t_st_f14_reg: ${PROG} + ${.OBJDIR}/${PROG} 14 st reg + +t_ld_f18_imm: ${PROG} + ${.OBJDIR}/${PROG} 18 ld imm + +t_st_f18_imm: ${PROG} + ${.OBJDIR}/${PROG} 18 st imm + +t_ld_f18_reg: ${PROG} + ${.OBJDIR}/${PROG} 18 ld reg + +t_st_f18_reg: ${PROG} + ${.OBJDIR}/${PROG} 18 st reg + +t_ld_f22_imm: ${PROG} + ${.OBJDIR}/${PROG} 22 ld imm + +t_st_f22_imm: ${PROG} + ${.OBJDIR}/${PROG} 22 st imm + +t_ld_f22_reg: ${PROG} + ${.OBJDIR}/${PROG} 22 ld reg + +t_st_f22_reg: ${PROG} + ${.OBJDIR}/${PROG} 22 st reg + +t_ld_f26_imm: ${PROG} + ${.OBJDIR}/${PROG} 26 ld imm + +t_st_f26_imm: ${PROG} + ${.OBJDIR}/${PROG} 26 st imm + +t_ld_f26_reg: ${PROG} + ${.OBJDIR}/${PROG} 26 ld reg + +t_st_f26_reg: ${PROG} + ${.OBJDIR}/${PROG} 26 st reg + +t_ld_f30_imm: ${PROG} + ${.OBJDIR}/${PROG} 30 ld imm + +t_st_f30_imm: ${PROG} + ${.OBJDIR}/${PROG} 30 st imm + +t_ld_f30_reg: ${PROG} + ${.OBJDIR}/${PROG} 30 ld reg + +t_st_f30_reg: ${PROG} + ${.OBJDIR}/${PROG} 30 st reg + +t_ld_f34_imm: ${PROG} + ${.OBJDIR}/${PROG} 34 ld imm + +t_st_f34_imm: ${PROG} + ${.OBJDIR}/${PROG} 34 st imm + +t_ld_f34_reg: ${PROG} + ${.OBJDIR}/${PROG} 34 ld reg + +t_st_f34_reg: ${PROG} + ${.OBJDIR}/${PROG} 34 st reg + +t_ld_f38_imm: ${PROG} + ${.OBJDIR}/${PROG} 38 ld imm + +t_st_f38_imm: ${PROG} + ${.OBJDIR}/${PROG} 38 st imm + +t_ld_f38_reg: ${PROG} + ${.OBJDIR}/${PROG} 38 ld reg + +t_st_f38_reg: ${PROG} + ${.OBJDIR}/${PROG} 38 st reg + +t_ld_f42_imm: ${PROG} + ${.OBJDIR}/${PROG} 42 ld imm + +t_st_f42_imm: ${PROG} + ${.OBJDIR}/${PROG} 42 st imm + +t_ld_f42_reg: ${PROG} + ${.OBJDIR}/${PROG} 42 ld reg + +t_st_f42_reg: ${PROG} + ${.OBJDIR}/${PROG} 42 st reg + +t_ld_f46_imm: ${PROG} + ${.OBJDIR}/${PROG} 46 ld imm + +t_st_f46_imm: ${PROG} + ${.OBJDIR}/${PROG} 46 st imm + +t_ld_f46_reg: ${PROG} + ${.OBJDIR}/${PROG} 46 ld reg + +t_st_f46_reg: ${PROG} + ${.OBJDIR}/${PROG} 46 st reg + +t_ld_f50_imm: ${PROG} + ${.OBJDIR}/${PROG} 50 ld imm + +t_st_f50_imm: ${PROG} + ${.OBJDIR}/${PROG} 50 st imm + +t_ld_f50_reg: ${PROG} + ${.OBJDIR}/${PROG} 50 ld reg + +t_st_f50_reg: ${PROG} + ${.OBJDIR}/${PROG} 50 st reg + +t_ld_f54_imm: ${PROG} + ${.OBJDIR}/${PROG} 54 ld imm + +t_st_f54_imm: ${PROG} + ${.OBJDIR}/${PROG} 54 st imm + +t_ld_f54_reg: ${PROG} + ${.OBJDIR}/${PROG} 54 ld reg + +t_st_f54_reg: ${PROG} + ${.OBJDIR}/${PROG} 54 st reg + +t_ld_f58_imm: ${PROG} + ${.OBJDIR}/${PROG} 58 ld imm + +t_st_f58_imm: ${PROG} + ${.OBJDIR}/${PROG} 58 st imm + +t_ld_f58_reg: ${PROG} + ${.OBJDIR}/${PROG} 58 ld reg + +t_st_f58_reg: ${PROG} + ${.OBJDIR}/${PROG} 58 st reg + +t_ld_f62_imm: ${PROG} + ${.OBJDIR}/${PROG} 62 ld imm + +t_st_f62_imm: ${PROG} + ${.OBJDIR}/${PROG} 62 st imm + +t_ld_f62_reg: ${PROG} + ${.OBJDIR}/${PROG} 62 ld reg + +t_st_f62_reg: ${PROG} + ${.OBJDIR}/${PROG} 62 st reg + diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/main.c b/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/main.c new file mode 100644 index 000000000..00fa9344b --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/main.c @@ -0,0 +1,221 @@ +/* $OpenBSD: main.c,v 1.1 2003/07/12 04:08:33 jason Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include +#include +#include +#include +#include + +struct fpquad { + u_int64_t x1; + u_int64_t x2; + u_int64_t x3; + u_int64_t x4; +}; + +void test_ldq_f2_g0(struct fpquad *); +void test_ldq_f2_simm13(struct fpquad *); +void test_stq_f2_g0(struct fpquad *); +void test_stq_f2_simm13(struct fpquad *); +void test_ldq_f6_g0(struct fpquad *); +void test_ldq_f6_simm13(struct fpquad *); +void test_stq_f6_g0(struct fpquad *); +void test_stq_f6_simm13(struct fpquad *); +void test_ldq_f10_g0(struct fpquad *); +void test_ldq_f10_simm13(struct fpquad *); +void test_stq_f10_g0(struct fpquad *); +void test_stq_f10_simm13(struct fpquad *); +void test_ldq_f14_g0(struct fpquad *); +void test_ldq_f14_simm13(struct fpquad *); +void test_stq_f14_g0(struct fpquad *); +void test_stq_f14_simm13(struct fpquad *); +void test_ldq_f18_g0(struct fpquad *); +void test_ldq_f18_simm13(struct fpquad *); +void test_stq_f18_g0(struct fpquad *); +void test_stq_f18_simm13(struct fpquad *); +void test_ldq_f22_g0(struct fpquad *); +void test_ldq_f22_simm13(struct fpquad *); +void test_stq_f22_g0(struct fpquad *); +void test_stq_f22_simm13(struct fpquad *); +void test_ldq_f26_g0(struct fpquad *); +void test_ldq_f26_simm13(struct fpquad *); +void test_stq_f26_g0(struct fpquad *); +void test_stq_f26_simm13(struct fpquad *); +void test_ldq_f30_g0(struct fpquad *); +void test_ldq_f30_simm13(struct fpquad *); +void test_stq_f30_g0(struct fpquad *); +void test_stq_f30_simm13(struct fpquad *); +void test_ldq_f34_g0(struct fpquad *); +void test_ldq_f34_simm13(struct fpquad *); +void test_stq_f34_g0(struct fpquad *); +void test_stq_f34_simm13(struct fpquad *); +void test_ldq_f38_g0(struct fpquad *); +void test_ldq_f38_simm13(struct fpquad *); +void test_stq_f38_g0(struct fpquad *); +void test_stq_f38_simm13(struct fpquad *); +void test_ldq_f42_g0(struct fpquad *); +void test_ldq_f42_simm13(struct fpquad *); +void test_stq_f42_g0(struct fpquad *); +void test_stq_f42_simm13(struct fpquad *); +void test_ldq_f46_g0(struct fpquad *); +void test_ldq_f46_simm13(struct fpquad *); +void test_stq_f46_g0(struct fpquad *); +void test_stq_f46_simm13(struct fpquad *); +void test_ldq_f50_g0(struct fpquad *); +void test_ldq_f50_simm13(struct fpquad *); +void test_stq_f50_g0(struct fpquad *); +void test_stq_f50_simm13(struct fpquad *); +void test_ldq_f54_g0(struct fpquad *); +void test_ldq_f54_simm13(struct fpquad *); +void test_stq_f54_g0(struct fpquad *); +void test_stq_f54_simm13(struct fpquad *); +void test_ldq_f58_g0(struct fpquad *); +void test_ldq_f58_simm13(struct fpquad *); +void test_stq_f58_g0(struct fpquad *); +void test_stq_f58_simm13(struct fpquad *); +void test_ldq_f62_g0(struct fpquad *); +void test_ldq_f62_simm13(struct fpquad *); +void test_stq_f62_g0(struct fpquad *); +void test_stq_f62_simm13(struct fpquad *); + +struct fptest { + char *reg; + char *ldst; + char *dir; + void (*func)(struct fpquad *); +} thetests[] = { + {"2", "st", "reg", test_stq_f2_g0}, + {"2", "ld", "reg", test_ldq_f2_g0}, + {"2", "st", "imm", test_stq_f2_simm13}, + {"2", "ld", "imm", test_ldq_f2_simm13}, + {"6", "st", "reg", test_stq_f6_g0}, + {"6", "ld", "reg", test_ldq_f6_g0}, + {"6", "st", "imm", test_stq_f6_simm13}, + {"6", "ld", "imm", test_ldq_f6_simm13}, + {"10", "st", "reg", test_stq_f10_g0}, + {"10", "ld", "reg", test_ldq_f10_g0}, + {"10", "st", "imm", test_stq_f10_simm13}, + {"10", "ld", "imm", test_ldq_f10_simm13}, + {"14", "st", "reg", test_stq_f14_g0}, + {"14", "ld", "reg", test_ldq_f14_g0}, + {"14", "st", "imm", test_stq_f14_simm13}, + {"14", "ld", "imm", test_ldq_f14_simm13}, + {"18", "st", "reg", test_stq_f18_g0}, + {"18", "ld", "reg", test_ldq_f18_g0}, + {"18", "st", "imm", test_stq_f18_simm13}, + {"18", "ld", "imm", test_ldq_f18_simm13}, + {"22", "st", "reg", test_stq_f22_g0}, + {"22", "ld", "reg", test_ldq_f22_g0}, + {"22", "st", "imm", test_stq_f22_simm13}, + {"22", "ld", "imm", test_ldq_f22_simm13}, + {"26", "st", "reg", test_stq_f26_g0}, + {"26", "ld", "reg", test_ldq_f26_g0}, + {"26", "st", "imm", test_stq_f26_simm13}, + {"26", "ld", "imm", test_ldq_f26_simm13}, + {"30", "st", "reg", test_stq_f30_g0}, + {"30", "ld", "reg", test_ldq_f30_g0}, + {"30", "st", "imm", test_stq_f30_simm13}, + {"30", "ld", "imm", test_ldq_f30_simm13}, + {"34", "st", "reg", test_stq_f34_g0}, + {"34", "ld", "reg", test_ldq_f34_g0}, + {"34", "st", "imm", test_stq_f34_simm13}, + {"34", "ld", "imm", test_ldq_f34_simm13}, + {"38", "st", "reg", test_stq_f38_g0}, + {"38", "ld", "reg", test_ldq_f38_g0}, + {"38", "st", "imm", test_stq_f38_simm13}, + {"38", "ld", "imm", test_ldq_f38_simm13}, + {"42", "st", "reg", test_stq_f42_g0}, + {"42", "ld", "reg", test_ldq_f42_g0}, + {"42", "st", "imm", test_stq_f42_simm13}, + {"42", "ld", "imm", test_ldq_f42_simm13}, + {"46", "st", "reg", test_stq_f46_g0}, + {"46", "ld", "reg", test_ldq_f46_g0}, + {"46", "st", "imm", test_stq_f46_simm13}, + {"46", "ld", "imm", test_ldq_f46_simm13}, + {"50", "st", "reg", test_stq_f50_g0}, + {"50", "ld", "reg", test_ldq_f50_g0}, + {"50", "st", "imm", test_stq_f50_simm13}, + {"50", "ld", "imm", test_ldq_f50_simm13}, + {"54", "st", "reg", test_stq_f54_g0}, + {"54", "ld", "reg", test_ldq_f54_g0}, + {"54", "st", "imm", test_stq_f54_simm13}, + {"54", "ld", "imm", test_ldq_f54_simm13}, + {"58", "st", "reg", test_stq_f58_g0}, + {"58", "ld", "reg", test_ldq_f58_g0}, + {"58", "st", "imm", test_stq_f58_simm13}, + {"58", "ld", "imm", test_ldq_f58_simm13}, + {"62", "st", "reg", test_stq_f62_g0}, + {"62", "ld", "reg", test_ldq_f62_g0}, + {"62", "st", "imm", test_stq_f62_simm13}, + {"62", "ld", "imm", test_ldq_f62_simm13}, +}; +#define NTESTS (sizeof(thetests)/sizeof(thetests[0])) + +void ill_catcher(int, siginfo_t *, void *); + +int +main(int argc, char *argv[]) +{ + struct fptest *fpt; + struct fpquad fpq; + struct sigaction sa; + int i; + + if (argc != 4) { + fprintf(stderr, "badreg regnum [ld|st] [reg|imm]\n"); + return (1); + } + + for (i = 0; i < NTESTS; i++) { + fpt = thetests + i; + if (strcmp(fpt->reg, argv[1]) == 0 && + strcmp(fpt->ldst, argv[2]) == 0 && + strcmp(fpt->dir, argv[3]) == 0) + break; + } + if (i == NTESTS) + errx(1, "unknown test: %s %s %s", argv[1], argv[2], argv[3]); + + sa.sa_sigaction = ill_catcher; + sigemptyset(&sa.sa_mask); + sa.sa_flags = SA_SIGINFO; + + if (sigaction(SIGILL, &sa, NULL) == -1) + err(1, "sigaction"); + + (*fpt->func)(&fpq); + err(1, "%s %s %s did not generate sigill", argv[1], argv[2], argv[3]); + return (0); +} + +void +ill_catcher(int sig, siginfo_t *si, void *v) +{ + _exit(0); +} diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/test.S b/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/test.S new file mode 100644 index 000000000..4735ebeb6 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/badfreg/test.S @@ -0,0 +1,351 @@ +/* $OpenBSD: test.S,v 1.1 2003/07/12 04:08:33 jason Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include + +ENTRY(test_ldq_f2_simm13) + .word 0xc5122000 ! ldq [%o0 + 0], %f2 + retl + nop + +ENTRY(test_ldq_f2_g0) + .word 0xc5120000 ! ldq [%o0 + %g0], %f2 + retl + nop + +ENTRY(test_stq_f2_simm13) + .word 0xc5322000 ! stq %f2, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f2_g0) + .word 0xc5320000 ! stq %f2, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f6_simm13) + .word 0xcd122000 ! ldq [%o0 + 0], %f6 + retl + nop + +ENTRY(test_ldq_f6_g0) + .word 0xcd120000 ! ldq [%o0 + %g0], %f6 + retl + nop + +ENTRY(test_stq_f6_simm13) + .word 0xcd322000 ! stq %f6, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f6_g0) + .word 0xcd320000 ! stq %f6, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f10_simm13) + .word 0xd5122000 ! ldq [%o0 + 0], %f10 + retl + nop + +ENTRY(test_ldq_f10_g0) + .word 0xd5120000 ! ldq [%o0 + %g0], %f10 + retl + nop + +ENTRY(test_stq_f10_simm13) + .word 0xd5322000 ! stq %f10, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f10_g0) + .word 0xd5320000 ! stq %f10, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f14_simm13) + .word 0xdd122000 ! ldq [%o0 + 0], %f14 + retl + nop + +ENTRY(test_ldq_f14_g0) + .word 0xdd120000 ! ldq [%o0 + %g0], %f14 + retl + nop + +ENTRY(test_stq_f14_simm13) + .word 0xdd322000 ! stq %f14, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f14_g0) + .word 0xdd320000 ! stq %f14, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f18_simm13) + .word 0xe5122000 ! ldq [%o0 + 0], %f18 + retl + nop + +ENTRY(test_ldq_f18_g0) + .word 0xe5120000 ! ldq [%o0 + %g0], %f18 + retl + nop + +ENTRY(test_stq_f18_simm13) + .word 0xe5322000 ! stq %f18, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f18_g0) + .word 0xe5320000 ! stq %f18, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f22_simm13) + .word 0xed122000 ! ldq [%o0 + 0], %f22 + retl + nop + +ENTRY(test_ldq_f22_g0) + .word 0xed120000 ! ldq [%o0 + %g0], %f22 + retl + nop + +ENTRY(test_stq_f22_simm13) + .word 0xed322000 ! stq %f22, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f22_g0) + .word 0xed320000 ! stq %f22, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f26_simm13) + .word 0xf5122000 ! ldq [%o0 + 0], %f26 + retl + nop + +ENTRY(test_ldq_f26_g0) + .word 0xf5120000 ! ldq [%o0 + %g0], %f26 + retl + nop + +ENTRY(test_stq_f26_simm13) + .word 0xf5322000 ! stq %f26, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f26_g0) + .word 0xf5320000 ! stq %f26, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f30_simm13) + .word 0xfd122000 ! ldq [%o0 + 0], %f30 + retl + nop + +ENTRY(test_ldq_f30_g0) + .word 0xfd120000 ! ldq [%o0 + %g0], %f30 + retl + nop + +ENTRY(test_stq_f30_simm13) + .word 0xfd322000 ! stq %f30, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f30_g0) + .word 0xfd320000 ! stq %f30, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f34_simm13) + .word 0xc7122000 ! ldq [%o0 + 0], %f34 + retl + nop + +ENTRY(test_ldq_f34_g0) + .word 0xc7120000 ! ldq [%o0 + %g0], %f34 + retl + nop + +ENTRY(test_stq_f34_simm13) + .word 0xc7322000 ! stq %f34, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f34_g0) + .word 0xc7320000 ! stq %f34, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f38_simm13) + .word 0xcf122000 ! ldq [%o0 + 0], %f38 + retl + nop + +ENTRY(test_ldq_f38_g0) + .word 0xcf120000 ! ldq [%o0 + %g0], %f38 + retl + nop + +ENTRY(test_stq_f38_simm13) + .word 0xcf322000 ! stq %f38, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f38_g0) + .word 0xcf320000 ! stq %f38, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f42_simm13) + .word 0xd7122000 ! ldq [%o0 + 0], %f42 + retl + nop + +ENTRY(test_ldq_f42_g0) + .word 0xd7120000 ! ldq [%o0 + %g0], %f42 + retl + nop + +ENTRY(test_stq_f42_simm13) + .word 0xd7322000 ! stq %f42, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f42_g0) + .word 0xd7320000 ! stq %f42, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f46_simm13) + .word 0xdf122000 ! ldq [%o0 + 0], %f46 + retl + nop + +ENTRY(test_ldq_f46_g0) + .word 0xdf120000 ! ldq [%o0 + %g0], %f46 + retl + nop + +ENTRY(test_stq_f46_simm13) + .word 0xdf322000 ! stq %f46, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f46_g0) + .word 0xdf320000 ! stq %f46, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f50_simm13) + .word 0xe7122000 ! ldq [%o0 + 0], %f50 + retl + nop + +ENTRY(test_ldq_f50_g0) + .word 0xe7120000 ! ldq [%o0 + %g0], %f50 + retl + nop + +ENTRY(test_stq_f50_simm13) + .word 0xe7322000 ! stq %f50, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f50_g0) + .word 0xe7320000 ! stq %f50, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f54_simm13) + .word 0xef122000 ! ldq [%o0 + 0], %f54 + retl + nop + +ENTRY(test_ldq_f54_g0) + .word 0xef120000 ! ldq [%o0 + %g0], %f54 + retl + nop + +ENTRY(test_stq_f54_simm13) + .word 0xef322000 ! stq %f54, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f54_g0) + .word 0xef320000 ! stq %f54, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f58_simm13) + .word 0xf7122000 ! ldq [%o0 + 0], %f58 + retl + nop + +ENTRY(test_ldq_f58_g0) + .word 0xf7120000 ! ldq [%o0 + %g0], %f58 + retl + nop + +ENTRY(test_stq_f58_simm13) + .word 0xf7322000 ! stq %f58, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f58_g0) + .word 0xf7320000 ! stq %f58, [%o0 + %g0] + retl + nop + +ENTRY(test_ldq_f62_simm13) + .word 0xff122000 ! ldq [%o0 + 0], %f62 + retl + nop + +ENTRY(test_ldq_f62_g0) + .word 0xff120000 ! ldq [%o0 + %g0], %f62 + retl + nop + +ENTRY(test_stq_f62_simm13) + .word 0xff322000 ! stq %f62, [%o0 + 0] + retl + nop + +ENTRY(test_stq_f62_g0) + .word 0xff320000 ! stq %f62, [%o0 + %g0] + retl + nop diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Entries b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Entries new file mode 100644 index 000000000..58a53bc20 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Entries @@ -0,0 +1,6 @@ +/Makefile/1.2/Sat Jul 12 04:23:16 2003// +/fpregs.S/1.1/Sat Jul 12 04:08:33 2003// +/fpregs.h/1.1/Sat Jul 12 04:08:33 2003// +/goodfreg.c/1.2/Sat Jul 12 04:23:16 2003// +/test_asm.S/1.1/Sat Jul 12 04:08:33 2003// +D diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Repository b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Repository new file mode 100644 index 000000000..89a988eb9 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Root b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/Makefile b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/Makefile new file mode 100644 index 000000000..84a1fe304 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.2 2003/07/12 04:23:16 jason Exp $ + +PROG=goodfreg +NOMAN= +SRCS=fpregs.S goodfreg.c test_asm.S + +.include diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/fpregs.S b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/fpregs.S new file mode 100644 index 000000000..edf64c164 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/fpregs.S @@ -0,0 +1,137 @@ +/* $OpenBSD: fpregs.S,v 1.1 2003/07/12 04:08:33 jason Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include + +ENTRY(loadfpregs) + ldd [%o0 + 0 * 8], %f0 + ldd [%o0 + 1 * 8], %f2 + ldd [%o0 + 2 * 8], %f4 + ldd [%o0 + 3 * 8], %f6 + ldd [%o0 + 4 * 8], %f8 + ldd [%o0 + 5 * 8], %f10 + ldd [%o0 + 6 * 8], %f12 + ldd [%o0 + 7 * 8], %f14 + ldd [%o0 + 8 * 8], %f16 + ldd [%o0 + 9 * 8], %f18 + ldd [%o0 + 10 * 8], %f20 + ldd [%o0 + 11 * 8], %f22 + ldd [%o0 + 12 * 8], %f24 + ldd [%o0 + 13 * 8], %f26 + ldd [%o0 + 14 * 8], %f28 + ldd [%o0 + 15 * 8], %f30 + ldd [%o0 + 16 * 8], %f32 + ldd [%o0 + 17 * 8], %f34 + ldd [%o0 + 18 * 8], %f36 + ldd [%o0 + 19 * 8], %f38 + ldd [%o0 + 20 * 8], %f40 + ldd [%o0 + 21 * 8], %f42 + ldd [%o0 + 22 * 8], %f44 + ldd [%o0 + 23 * 8], %f46 + ldd [%o0 + 24 * 8], %f48 + ldd [%o0 + 25 * 8], %f50 + ldd [%o0 + 26 * 8], %f52 + ldd [%o0 + 27 * 8], %f54 + ldd [%o0 + 28 * 8], %f56 + ldd [%o0 + 29 * 8], %f58 + ldd [%o0 + 30 * 8], %f60 + retl + ldd [%o0 + 31 * 8], %f62 + +ENTRY(savefpregs) + std %f0, [%o0 + 0 * 8] + std %f2, [%o0 + 1 * 8] + std %f4, [%o0 + 2 * 8] + std %f6, [%o0 + 3 * 8] + std %f8, [%o0 + 4 * 8] + std %f10, [%o0 + 5 * 8] + std %f12, [%o0 + 6 * 8] + std %f14, [%o0 + 7 * 8] + std %f16, [%o0 + 8 * 8] + std %f18, [%o0 + 9 * 8] + std %f20, [%o0 + 10 * 8] + std %f22, [%o0 + 11 * 8] + std %f24, [%o0 + 12 * 8] + std %f26, [%o0 + 13 * 8] + std %f28, [%o0 + 14 * 8] + std %f30, [%o0 + 15 * 8] + std %f32, [%o0 + 16 * 8] + std %f34, [%o0 + 17 * 8] + std %f36, [%o0 + 18 * 8] + std %f38, [%o0 + 19 * 8] + std %f40, [%o0 + 20 * 8] + std %f42, [%o0 + 21 * 8] + std %f44, [%o0 + 22 * 8] + std %f46, [%o0 + 23 * 8] + std %f48, [%o0 + 24 * 8] + std %f50, [%o0 + 25 * 8] + std %f52, [%o0 + 26 * 8] + std %f54, [%o0 + 27 * 8] + std %f56, [%o0 + 28 * 8] + std %f58, [%o0 + 29 * 8] + std %f60, [%o0 + 30 * 8] + retl + std %f62, [%o0 + 31 * 8] + +ENTRY(initfpregs) + not %g0, %o1 + stx %o1, [%o0 + 0 * 8] + stx %o1, [%o0 + 1 * 8] + stx %o1, [%o0 + 2 * 8] + stx %o1, [%o0 + 3 * 8] + stx %o1, [%o0 + 4 * 8] + stx %o1, [%o0 + 5 * 8] + stx %o1, [%o0 + 6 * 8] + stx %o1, [%o0 + 7 * 8] + stx %o1, [%o0 + 8 * 8] + stx %o1, [%o0 + 9 * 8] + stx %o1, [%o0 + 10 * 8] + stx %o1, [%o0 + 11 * 8] + stx %o1, [%o0 + 12 * 8] + stx %o1, [%o0 + 13 * 8] + stx %o1, [%o0 + 14 * 8] + stx %o1, [%o0 + 15 * 8] + stx %o1, [%o0 + 16 * 8] + stx %o1, [%o0 + 17 * 8] + stx %o1, [%o0 + 18 * 8] + stx %o1, [%o0 + 19 * 8] + stx %o1, [%o0 + 20 * 8] + stx %o1, [%o0 + 21 * 8] + stx %o1, [%o0 + 22 * 8] + stx %o1, [%o0 + 23 * 8] + stx %o1, [%o0 + 24 * 8] + stx %o1, [%o0 + 25 * 8] + stx %o1, [%o0 + 26 * 8] + stx %o1, [%o0 + 27 * 8] + stx %o1, [%o0 + 28 * 8] + stx %o1, [%o0 + 29 * 8] + stx %o1, [%o0 + 30 * 8] + retl + stx %o1, [%o0 + 31 * 8] diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/fpregs.h b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/fpregs.h new file mode 100644 index 000000000..4a46fa8fa --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/fpregs.h @@ -0,0 +1,35 @@ +/* $OpenBSD: fpregs.h,v 1.1 2003/07/12 04:08:33 jason Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +union fpregs { + u_int64_t f_reg64[32]; + u_int32_t f_reg32[64]; +}; + +void loadfpregs(union fpregs *); +void savefpregs(union fpregs *); +void initfpregs(union fpregs *); diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/goodfreg.c b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/goodfreg.c new file mode 100644 index 000000000..0689f29bb --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/goodfreg.c @@ -0,0 +1,344 @@ +/* $OpenBSD: goodfreg.c,v 1.2 2003/07/12 04:23:16 jason Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include +#include +#include +#include "fpregs.h" + +struct fpquad { + u_int32_t x1; + u_int32_t x2; + u_int32_t x3; + u_int32_t x4; +}; + +void asm_ldq_f0(struct fpquad *); +void asm_ldq_f4(struct fpquad *); +void asm_ldq_f8(struct fpquad *); +void asm_ldq_f12(struct fpquad *); +void asm_ldq_f16(struct fpquad *); +void asm_ldq_f20(struct fpquad *); +void asm_ldq_f24(struct fpquad *); +void asm_ldq_f28(struct fpquad *); +void asm_ldq_f32(struct fpquad *); +void asm_ldq_f36(struct fpquad *); +void asm_ldq_f40(struct fpquad *); +void asm_ldq_f44(struct fpquad *); +void asm_ldq_f48(struct fpquad *); +void asm_ldq_f52(struct fpquad *); +void asm_ldq_f56(struct fpquad *); +void asm_ldq_f60(struct fpquad *); + +void asm_stq_f0(struct fpquad *); +void asm_stq_f4(struct fpquad *); +void asm_stq_f8(struct fpquad *); +void asm_stq_f12(struct fpquad *); +void asm_stq_f16(struct fpquad *); +void asm_stq_f20(struct fpquad *); +void asm_stq_f24(struct fpquad *); +void asm_stq_f28(struct fpquad *); +void asm_stq_f32(struct fpquad *); +void asm_stq_f36(struct fpquad *); +void asm_stq_f40(struct fpquad *); +void asm_stq_f44(struct fpquad *); +void asm_stq_f48(struct fpquad *); +void asm_stq_f52(struct fpquad *); +void asm_stq_f56(struct fpquad *); +void asm_stq_f60(struct fpquad *); + +int compare_regs(union fpregs *, union fpregs *); +void dump_reg(union fpregs *); +void dump_regs(union fpregs *, union fpregs *, union fpregs *); +int compare_quads(struct fpquad *, struct fpquad *); +void check_saves(union fpregs *, union fpregs *, union fpregs *); +void c_stq(union fpregs *, int, struct fpquad *); +void c_ldq(union fpregs *, int, struct fpquad *); +void asm_ldq(int, struct fpquad *); +void asm_stq(int, struct fpquad *); +void check_reg(int, union fpregs *, union fpregs *, union fpregs *); +void check_regs(union fpregs *, union fpregs *, union fpregs *); +int main(void); + +int +compare_regs(union fpregs *fr1, union fpregs *fr2) +{ + return (memcmp(fr1, fr2, sizeof(*fr2))); +} + +void +dump_reg(union fpregs *fr) +{ + int i; + + for (i = 0; i < 64; i++) { + if ((i & 3) == 0) + printf("f%-2d:", i); + printf(" %08x", fr->f_reg32[i]); + if ((i & 3) == 3) + printf("\n"); + } +} + +void +dump_regs(union fpregs *fr1, union fpregs *fr2, union fpregs *fr3) +{ + printf("BEFORE ASM\n"); + dump_reg(fr1); + printf("AFTER ASM\n"); + dump_reg(fr2); + printf("MANUAL\n"); + dump_reg(fr3); +} + +int +compare_quads(struct fpquad *q1, struct fpquad *q2) +{ + return (memcmp(q1, q2, sizeof(*q2))); +} + +/* + * Verify that savefpregs, loadfpregs, and initfpregs actually seem to work. + */ +void +check_saves(union fpregs *fr1, union fpregs *fr2, union fpregs *fr3) +{ + memset(fr1, 0x55, sizeof(*fr1)); + memset(fr2, 0x55, sizeof(*fr2)); + memset(fr3, 0x55, sizeof(*fr3)); + loadfpregs(fr1); + if (compare_regs(fr1, fr2)) + errx(1, "check_saves: loadfpregs1 differs"); + + savefpregs(fr2); + if (compare_regs(fr1, fr2) || compare_regs(fr2, fr3)) + errx(1, "check_saves: savefpregs1 differs"); + + memset(fr1, 0xaa, sizeof(*fr1)); + memset(fr2, 0xaa, sizeof(*fr2)); + memset(fr3, 0xaa, sizeof(*fr3)); + loadfpregs(fr1); + if (compare_regs(fr1, fr2)) + errx(1, "check_saves: loadfpregs2 differs"); + + savefpregs(fr2); + if (compare_regs(fr1, fr2) || compare_regs(fr2, fr3)) + errx(1, "check_saves: savefpregs2 differs"); + + memset(fr1, 0xff, sizeof(*fr1)); + initfpregs(fr2); + if (compare_regs(fr1, fr2)) + errx(1, "check_saves: initfpregs differs"); +} + +void +c_stq(union fpregs *frp, int freg, struct fpquad *q) +{ + q->x1 = frp->f_reg32[freg]; + q->x2 = frp->f_reg32[freg + 1]; + q->x3 = frp->f_reg32[freg + 2]; + q->x4 = frp->f_reg32[freg + 3]; +} + +void +c_ldq(union fpregs *frp, int freg, struct fpquad *q) +{ + frp->f_reg32[freg] = q->x1; + frp->f_reg32[freg + 1] = q->x2; + frp->f_reg32[freg + 2] = q->x3; + frp->f_reg32[freg + 3] = q->x4; +} + +void +asm_ldq(int freg, struct fpquad *q) +{ + switch (freg) { + case 0: + asm_ldq_f0(q); + break; + case 4: + asm_ldq_f4(q); + break; + case 8: + asm_ldq_f8(q); + break; + case 12: + asm_ldq_f12(q); + break; + case 16: + asm_ldq_f16(q); + break; + case 20: + asm_ldq_f20(q); + break; + case 24: + asm_ldq_f24(q); + break; + case 28: + asm_ldq_f28(q); + break; + case 32: + asm_ldq_f32(q); + break; + case 36: + asm_ldq_f36(q); + break; + case 40: + asm_ldq_f40(q); + break; + case 44: + asm_ldq_f44(q); + break; + case 48: + asm_ldq_f48(q); + break; + case 52: + asm_ldq_f52(q); + break; + case 56: + asm_ldq_f56(q); + break; + case 60: + asm_ldq_f60(q); + break; + default: + errx(1, "asm_ldq: bad freg %d", freg); + } +} + +void +asm_stq(int freg, struct fpquad *q) +{ + switch (freg) { + case 0: + asm_stq_f0(q); + break; + case 4: + asm_stq_f4(q); + break; + case 8: + asm_stq_f8(q); + break; + case 12: + asm_stq_f12(q); + break; + case 16: + asm_stq_f16(q); + break; + case 20: + asm_stq_f20(q); + break; + case 24: + asm_stq_f24(q); + break; + case 28: + asm_stq_f28(q); + break; + case 32: + asm_stq_f32(q); + break; + case 36: + asm_stq_f36(q); + break; + case 40: + asm_stq_f40(q); + break; + case 44: + asm_stq_f44(q); + break; + case 48: + asm_stq_f48(q); + break; + case 52: + asm_stq_f52(q); + break; + case 56: + asm_stq_f56(q); + break; + case 60: + asm_stq_f60(q); + break; + default: + errx(1, "asm_stq: bad freg %d", freg); + } +} + +void +check_reg(int freg, union fpregs *fr1, union fpregs *fr2, union fpregs *fr3) + { + struct fpquad q1, q2, q3; + + initfpregs(fr1); + initfpregs(fr2); + initfpregs(fr3); + + loadfpregs(fr1); + q1.x1 = 0x01234567; + q1.x2 = 0x89abcdef; + q1.x3 = 0x55aa55aa; + q1.x4 = 0xa5a5a5a5; + asm_ldq(freg, &q1); + savefpregs(fr2); + + c_ldq(fr3, freg, &q1); + + if (compare_regs(fr2, fr3)) { + errx(1, "ldq: c/asm differ"); + dump_regs(fr1, fr2, fr3); + } + + q2.x1 = q2.x2 = q2.x3 = q2.x4 = 0; + q3.x1 = q3.x2 = q3.x3 = q3.x4 = 1; + asm_stq(freg, &q2); + c_stq(fr3, freg, &q3); + + if (compare_quads(&q1, &q3)) + errx(1, "c_stq %d differs...", freg); + + if (compare_quads(&q1, &q2)) + errx(1, "asm_stq %d differs...", freg); +} + +void +check_regs(union fpregs *fr1, union fpregs *fr2, union fpregs *fr3) +{ + int i; + + for (i = 0; i < 16; i++) + check_reg(i * 4, fr1, fr2, fr3); +} + +int +main() +{ + union fpregs fr1, fr2, fr3; + + check_saves(&fr1, &fr2, &fr3); + check_regs(&fr1, &fr2, &fr3); + return (0); +} diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/test_asm.S b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/test_asm.S new file mode 100644 index 000000000..73b518c55 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/goodfreg/test_asm.S @@ -0,0 +1,159 @@ +/* $OpenBSD: test_asm.S,v 1.1 2003/07/12 04:08:33 jason Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include + +ENTRY(asm_ldq_f0) + retl + ldq [%o0], %f0 + +ENTRY(asm_ldq_f4) + retl + ldq [%o0], %f4 + +ENTRY(asm_ldq_f8) + retl + ldq [%o0], %f8 + +ENTRY(asm_ldq_f12) + retl + ldq [%o0], %f12 + +ENTRY(asm_ldq_f16) + retl + ldq [%o0], %f16 + +ENTRY(asm_ldq_f20) + retl + ldq [%o0], %f20 + +ENTRY(asm_ldq_f24) + retl + ldq [%o0], %f24 + +ENTRY(asm_ldq_f28) + retl + ldq [%o0], %f28 + +ENTRY(asm_ldq_f32) + retl + ldq [%o0], %f32 + +ENTRY(asm_ldq_f36) + retl + ldq [%o0], %f36 + +ENTRY(asm_ldq_f40) + retl + ldq [%o0], %f40 + +ENTRY(asm_ldq_f44) + retl + ldq [%o0], %f44 + +ENTRY(asm_ldq_f48) + retl + ldq [%o0], %f48 + +ENTRY(asm_ldq_f52) + retl + ldq [%o0], %f52 + +ENTRY(asm_ldq_f56) + retl + ldq [%o0], %f56 + +ENTRY(asm_ldq_f60) + retl + ldq [%o0], %f60 + +ENTRY(asm_stq_f0) + retl + stq %f0, [%o0] + +ENTRY(asm_stq_f4) + retl + stq %f4, [%o0] + +ENTRY(asm_stq_f8) + retl + stq %f8, [%o0] + +ENTRY(asm_stq_f12) + retl + stq %f12, [%o0] + +ENTRY(asm_stq_f16) + retl + stq %f16, [%o0] + +ENTRY(asm_stq_f20) + retl + stq %f20, [%o0] + +ENTRY(asm_stq_f24) + retl + stq %f24, [%o0] + +ENTRY(asm_stq_f28) + retl + stq %f28, [%o0] + +ENTRY(asm_stq_f32) + retl + stq %f32, [%o0] + +ENTRY(asm_stq_f36) + retl + stq %f36, [%o0] + +ENTRY(asm_stq_f40) + retl + stq %f40, [%o0] + +ENTRY(asm_stq_f44) + retl + stq %f44, [%o0] + +ENTRY(asm_stq_f48) + retl + stq %f48, [%o0] + +ENTRY(asm_stq_f52) + retl + stq %f52, [%o0] + +ENTRY(asm_stq_f56) + retl + stq %f56, [%o0] + +ENTRY(asm_stq_f60) + retl + stq %f60, [%o0] diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/CVS/Entries b/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/CVS/Entries new file mode 100644 index 000000000..81ac634a2 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Sun Jul 13 06:33:24 2003// +/genasm.pl/1.2/Sun Jul 13 06:39:44 2003// +/genc.pl/1.4/Thu Aug 5 11:39:37 2004// +D diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/CVS/Repository b/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/CVS/Repository new file mode 100644 index 000000000..f97c33071 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/sparc64/emul-ldqstq/simm13 diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/CVS/Root b/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/Makefile b/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/Makefile new file mode 100644 index 000000000..4fa30399a --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/Makefile @@ -0,0 +1,17 @@ +# $OpenBSD: Makefile,v 1.1 2003/07/13 06:33:24 jason Exp $ + +PROG=simm13 +NOMAN= +SRCS=simm13_asm.S simm13.c fpregs.S +CFLAGS+=-I${.CURDIR}/../goodfreg -O0 -g +CLEANFILES+=simm13_asm.S simm13.c + +.PATH: ${.CURDIR}/../goodfreg + +simm13_asm.S: ${.CURDIR}/genasm.pl + perl ${.CURDIR}/genasm.pl > $@ + +simm13.c: ${.CURDIR}/genc.pl + perl ${.CURDIR}/genc.pl > $@ + +.include diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/genasm.pl b/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/genasm.pl new file mode 100644 index 000000000..1729ad0df --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/genasm.pl @@ -0,0 +1,48 @@ +#!/usr/bin/perl +# $OpenBSD: genasm.pl,v 1.2 2003/07/13 06:39:44 jason Exp $ +# +# Copyright (c) 2003 Jason L. Wright (jason@thought.net) +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +print "#include \n"; +print "#include \n\n"; + +for ($i = -4096; $i <= 4095; $i++) { + if ($i < 0) { + $name = -$i; + $name = "_$name"; + } else { + $name = $i; + } + print "ENTRY(simm13_ldq_$name)\n"; + print " sub %o0, $i, %o0\n"; + print " retl\n"; + print " ldq [%o0 + $i], %f0\n\n"; + + print "ENTRY(simm13_stq_$name)\n"; + print " sub %o0, $i, %o0\n"; + print " retl\n"; + print " stq %f0, [%o0 + $i]\n\n"; +} diff --git a/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/genc.pl b/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/genc.pl new file mode 100644 index 000000000..e8c771392 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-ldqstq/simm13/genc.pl @@ -0,0 +1,170 @@ +#!/usr/bin/perl +# $OpenBSD: genc.pl,v 1.4 2004/08/05 11:39:37 art Exp $ +# +# Copyright (c) 2003 Jason L. Wright (jason@thought.net) +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +print < +#include +#include "fpregs.h" + +struct fpquad { + u_int32_t x1; + u_int32_t x2; + u_int32_t x3; + u_int32_t x4; +}; + +int compare_regs(union fpregs *, union fpregs *); +void dump_reg(union fpregs *); +void dump_regs(union fpregs *, union fpregs *, union fpregs *); +void c_ldq(union fpregs *, int, struct fpquad *); +void test_asm_ldq(char *, void (*)(struct fpquad *)); + +int +compare_regs(union fpregs *fr1, union fpregs *fr2) +{ + return (memcmp(fr1, fr2, sizeof(*fr2))); +} + +void +dump_reg(union fpregs *fr) +{ + int i; + + for (i = 0; i < 64; i++) { + if ((i & 3) == 0) + printf("f%-2d:", i); + printf(" %08x", fr->f_reg32[i]); + if ((i & 3) == 3) + printf("\\n"); + } +} + +void +dump_regs(union fpregs *fr1, union fpregs *fr2, union fpregs *fr3) +{ + printf("BEFORE ASM\\n"); + dump_reg(fr1); + printf("AFTER ASM\\n"); + dump_reg(fr2); + printf("MANUAL\\n"); + dump_reg(fr3); +} + +void +c_ldq(union fpregs *frp, int freg, struct fpquad *q) +{ + frp->f_reg32[freg] = q->x1; + frp->f_reg32[freg + 1] = q->x2; + frp->f_reg32[freg + 2] = q->x3; + frp->f_reg32[freg + 3] = q->x4; +} + +MY__EOF +; +for ($i = -4096; $i <= 4095; $i++) { + if ($i < 0) { + $name = -$i; + $name = "_$name"; + } else { + $name = $i; + } + print "void simm13_ldq_$name(struct fpquad *);\n"; + print "void simm13_stq_$name(struct fpquad *);\n"; +} + +print < diff --git a/src/regress/sys/arch/sparc64/emul-popc/reg/CVS/Entries b/src/regress/sys/arch/sparc64/emul-popc/reg/CVS/Entries new file mode 100644 index 000000000..a97097b60 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-popc/reg/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Sat Jul 12 04:22:02 2003// +/reg.c/1.2/Sat Jul 12 04:22:02 2003// +D diff --git a/src/regress/sys/arch/sparc64/emul-popc/reg/CVS/Repository b/src/regress/sys/arch/sparc64/emul-popc/reg/CVS/Repository new file mode 100644 index 000000000..0e54ec34e --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-popc/reg/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/sparc64/emul-popc/reg diff --git a/src/regress/sys/arch/sparc64/emul-popc/reg/CVS/Root b/src/regress/sys/arch/sparc64/emul-popc/reg/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-popc/reg/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/sparc64/emul-popc/reg/Makefile b/src/regress/sys/arch/sparc64/emul-popc/reg/Makefile new file mode 100644 index 000000000..fcf831585 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-popc/reg/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2003/07/12 04:22:02 jason Exp $ + +PROG= reg + +.include diff --git a/src/regress/sys/arch/sparc64/emul-popc/reg/reg.c b/src/regress/sys/arch/sparc64/emul-popc/reg/reg.c new file mode 100644 index 000000000..f252f1cfd --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-popc/reg/reg.c @@ -0,0 +1,95 @@ +/* $OpenBSD: reg.c,v 1.2 2003/07/12 04:22:02 jason Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include + +int64_t asm_popc(int64_t); +int64_t c_popc(int64_t); +int test_it(int64_t); +int test_ones(void); +int main(void); + +int64_t +asm_popc(int64_t v) +{ + asm("popc %1, %0" : "=r" (v) : "r" (v)); + return (v); +} + +int64_t +c_popc(int64_t v) +{ + int64_t bit, r; + + for (bit = 1, r = 0; bit; bit <<= 1) + if (v & bit) + r++; + return (r); +} + +int +test_it(int64_t v) +{ + int64_t tc, ta; + + tc = c_popc(v); + ta = asm_popc(v); + if (tc == ta) + return (0); + printf("%qd: C(%qd) ASM(%qd)\n", v, tc, ta); + return (1); +} + +int +test_ones(void) +{ + int64_t v; + int i, r = 0; + + for (i = 0; i < 64; i++) { + v = 1LL << i; + if (c_popc(v) != 1) { + printf("ONES popc(%qd) != 1\n", v); + r = 1; + } + if (test_it(v)) + r = 1; + } + return (r); +} + +int +main() +{ + int r = 0; + + if (test_ones()) + r = 1; + + return (r); +} diff --git a/src/regress/sys/arch/sparc64/emul-popc/simm/CVS/Entries b/src/regress/sys/arch/sparc64/emul-popc/simm/CVS/Entries new file mode 100644 index 000000000..8fd0ef3c9 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-popc/simm/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.5/Tue Aug 19 05:25:14 2003// +/simm13.c/1.5/Tue Aug 19 19:24:07 2003// +D diff --git a/src/regress/sys/arch/sparc64/emul-popc/simm/CVS/Repository b/src/regress/sys/arch/sparc64/emul-popc/simm/CVS/Repository new file mode 100644 index 000000000..453502262 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-popc/simm/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/arch/sparc64/emul-popc/simm diff --git a/src/regress/sys/arch/sparc64/emul-popc/simm/CVS/Root b/src/regress/sys/arch/sparc64/emul-popc/simm/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-popc/simm/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/arch/sparc64/emul-popc/simm/Makefile b/src/regress/sys/arch/sparc64/emul-popc/simm/Makefile new file mode 100644 index 000000000..692d487de --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-popc/simm/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.5 2003/08/19 05:25:14 jason Exp $ + +PROG= simm13 +SRCS= simm13.c + +.include diff --git a/src/regress/sys/arch/sparc64/emul-popc/simm/simm13.c b/src/regress/sys/arch/sparc64/emul-popc/simm/simm13.c new file mode 100644 index 000000000..86d45a981 --- /dev/null +++ b/src/regress/sys/arch/sparc64/emul-popc/simm/simm13.c @@ -0,0 +1,113 @@ +/* $OpenBSD: simm13.c,v 1.5 2003/08/19 19:24:07 jason Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * check that "popc immediate, %rd" gets the correct value. It is + * emulated on most SPARC v9 implementations. + */ + +#include +#include +#include +#include +#include + +#define SIGN_EXT13(v) (((int64_t)(v) << 51) >> 51) + +void gen_simm(u_int32_t *, int); +int64_t a_popc_imm(void *, int); +int64_t c_popc(int64_t); +int main(void); + +void +gen_simm(u_int32_t *p, int imm) +{ + /* + * generate the following asm, and flush the pipeline + * retl + * popc imm, %o0 + */ + p[0] = I_JMPLri(I_G0, I_O7, 8); + __asm __volatile("iflush %0+0" : : "r" (p + 0)); + p[1] = _I_OP3_R_RI(I_O0, IOP3_POPC, I_G0, imm); + __asm __volatile("iflush %0+0" : : "r" (p + 1)); + __asm __volatile("nop;nop;nop;nop;nop"); +} + +int64_t +a_popc_imm(void *v, int i) +{ + int64_t (*func)(void) = v, r; + + if (mprotect(v, 2 * sizeof(union instr), PROT_READ|PROT_WRITE) == -1) + err(1, "mprotect"); + gen_simm(v, i); + + if (mprotect(v, 2 * sizeof(union instr), PROT_READ|PROT_EXEC) == -1) + err(1, "mprotect"); + r = (*func)(); + + if (mprotect(v, 2 * sizeof(union instr), PROT_NONE) == -1) + err(1, "mprotect"); + + return (r); +} + +int64_t +c_popc(int64_t v) +{ + int64_t bit, r; + + for (bit = 1, r = 0; bit; bit <<= 1) + if (v & bit) + r++; + return (r); +} + +int +main() +{ + void *v; + int i, a, c; + int r = 0; + + v = mmap(NULL, 2 * sizeof(union instr), PROT_NONE, MAP_ANON, -1, 0); + if (v == MAP_FAILED) + err(1, "mmap"); + + for (i = -4096; i <= 4095; i++) { + a = a_popc_imm(v, i); + c = c_popc(SIGN_EXT13(i)); + if (c != a) { + printf("BAD: %d: asm %d, c %d\n", i, a, c); + r = 1; + } + } + + return (r); +} diff --git a/src/regress/sys/copy/CVS/Entries b/src/regress/sys/copy/CVS/Entries new file mode 100644 index 000000000..805254993 --- /dev/null +++ b/src/regress/sys/copy/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Thu Apr 28 11:21:18 2005// +/copy.c/1.3/Sun Feb 15 13:33:22 2009// +D diff --git a/src/regress/sys/copy/CVS/Repository b/src/regress/sys/copy/CVS/Repository new file mode 100644 index 000000000..bcc9c151e --- /dev/null +++ b/src/regress/sys/copy/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/copy diff --git a/src/regress/sys/copy/CVS/Root b/src/regress/sys/copy/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/copy/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/copy/Makefile b/src/regress/sys/copy/Makefile new file mode 100644 index 000000000..c5fab354d --- /dev/null +++ b/src/regress/sys/copy/Makefile @@ -0,0 +1,15 @@ +# $OpenBSD: Makefile,v 1.3 2005/04/28 11:21:18 otto Exp $ + +PROG=copy +CFLAGS+= -Wall + +# Distinct address space: hppa hppa64 m68k m88k powerpc sparc64 +# Shared address space: alpha amd64 arm i386 mips solbourne sparc vax + +.if (${MACHINE_ARCH} == "hppa" || ${MACHINE_ARCH} == "hppa64" || \ + ${MACHINE_ARCH} == "m68k" || ${MACHINE_ARCH} == "m88k" || \ + ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64") +REGRESS_SKIP= +.endif + +.include diff --git a/src/regress/sys/copy/copy.c b/src/regress/sys/copy/copy.c new file mode 100644 index 000000000..edb35fd36 --- /dev/null +++ b/src/regress/sys/copy/copy.c @@ -0,0 +1,110 @@ +/* $OpenBSD: copy.c,v 1.3 2009/02/15 13:33:22 jsing Exp $ */ + +/* Written by Ted Unangst 2004 Public Domain */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +int failure; + +static void +fail(const char *str) +{ + fprintf(stderr, "%s\n", str); + failure++; +} + +int +main(int argc, char **argv) +{ + char buf[4096]; + char path[PATH_MAX + 1]; + void *goodbuf; + void *badbuf; + int mib[6]; + struct kinfo_proc2 kinfo; + size_t kinfosize = sizeof(kinfo); + int s, i; + struct ifreq ifrdesc; + + + s = socket(AF_INET, SOCK_DGRAM, 0); + if (s == -1) + err(1, "socket"); + + mib[0] = CTL_KERN; + mib[1] = KERN_PROC2; + mib[2] = KERN_PROC_PID; + mib[3] = getpid(); + mib[4] = sizeof(struct kinfo_proc2); + mib[5] = 1; + + if (sysctl(mib, 6, &kinfo, &kinfosize, 0, 0)) + err(1, "sysctl"); + + for (i = 0; i < PATH_MAX; i++) + path[i] = (i % NAME_MAX) ? 'a' : '/'; + path[PATH_MAX] = '\0'; + + goodbuf = buf; + badbuf = (void*)(long)kinfo.p_paddr; + + /* printf("goodbuf %p badbuf %p\n", goodbuf, badbuf); */ + + /* copyin */ + if (!syscall(202, 0, 6, &kinfo, &kinfosize, 0, 0)) + fail("copyin did not fail on 0 buf\n"); + if (!syscall(202, badbuf, 6, &kinfo, &kinfosize, 0, 0)) + fail("copyin did not fail on bad buf\n"); + + /* copyout */ + if (statfs("/", goodbuf)) + fail("copyout failed on a good buf\n"); + if (!statfs("/", 0) || errno != EFAULT) + fail("copyout didn't fail on 0 buf\n"); + if (!statfs("/", badbuf) || errno != EFAULT) + fail("copyout didn't fail on bad buf\n"); + + /* copyoutstr */ + memset(&ifrdesc, 0, sizeof(ifrdesc)); + strlcpy(ifrdesc.ifr_name, "lo0", sizeof(ifrdesc.ifr_name)); + ifrdesc.ifr_data = goodbuf; + if (ioctl(s, SIOCGIFDESCR, &ifrdesc)) + fail("SIOCIFDESCR ioctl failed\n"); + memset(&ifrdesc, 0, sizeof(ifrdesc)); + strlcpy(ifrdesc.ifr_name, "lo0", sizeof(ifrdesc.ifr_name)); + ifrdesc.ifr_data = 0; + if (!ioctl(s, SIOCGIFDESCR, &ifrdesc)) + fail("copyoutstr didn't fail on 0 buf\n"); + memset(&ifrdesc, 0, sizeof(ifrdesc)); + strlcpy(ifrdesc.ifr_name, "lo0", sizeof(ifrdesc.ifr_name)); + ifrdesc.ifr_data = badbuf; + if (!ioctl(s, SIOCGIFDESCR, &ifrdesc)) + fail("copyoutstr didn't fail on badbuf\n"); + + /* copyinstr */ + if (statfs("/", goodbuf)) + fail("copyinstr failed on a good buf\n"); + if (!statfs(0, goodbuf) || errno != EFAULT) + fail("copyinstr didn't fail on 0 buf\n"); + if (!statfs(badbuf, goodbuf) || errno != EFAULT) + fail("copyinstr didn't fail on bad buf\n"); + if (!statfs(path, goodbuf) || errno != ENAMETOOLONG) + fail("copyinstr didn't fail on long string\n"); + + if (failure) + errx(1, "%d failures", failure); + return 0; +} diff --git a/src/regress/sys/copy/obj b/src/regress/sys/copy/obj new file mode 120000 index 000000000..f9a5d19d9 --- /dev/null +++ b/src/regress/sys/copy/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/copy \ No newline at end of file diff --git a/src/regress/sys/crypto/CVS/Entries b/src/regress/sys/crypto/CVS/Entries new file mode 100644 index 000000000..526a1fc62 --- /dev/null +++ b/src/regress/sys/crypto/CVS/Entries @@ -0,0 +1,9 @@ +/Makefile/1.7/Tue Aug 12 15:49:07 2008// +D/aes//// +D/aesctr//// +D/aesxts//// +D/auth//// +D/cmac//// +D/enc//// +D/hmac//// +D/key_wrap//// diff --git a/src/regress/sys/crypto/CVS/Repository b/src/regress/sys/crypto/CVS/Repository new file mode 100644 index 000000000..94f7e3bda --- /dev/null +++ b/src/regress/sys/crypto/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/crypto diff --git a/src/regress/sys/crypto/CVS/Root b/src/regress/sys/crypto/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/crypto/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/crypto/Makefile b/src/regress/sys/crypto/Makefile new file mode 100644 index 000000000..5977c1b35 --- /dev/null +++ b/src/regress/sys/crypto/Makefile @@ -0,0 +1,13 @@ +# $OpenBSD: Makefile,v 1.7 2008/08/12 15:49:07 damien Exp $ + +SUBDIR=enc +SUBDIR+=aesctr +SUBDIR+=aesxts +SUBDIR+=aes +SUBDIR+=cmac +SUBDIR+=hmac +SUBDIR+=key_wrap + +install: + +.include diff --git a/src/regress/sys/crypto/aes/CVS/Entries b/src/regress/sys/crypto/aes/CVS/Entries new file mode 100644 index 000000000..e1e91879e --- /dev/null +++ b/src/regress/sys/crypto/aes/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Jun 12 19:42:48 2008// +/aestest.c/1.1/Thu Jun 12 19:42:48 2008// +D/vectors//// diff --git a/src/regress/sys/crypto/aes/CVS/Repository b/src/regress/sys/crypto/aes/CVS/Repository new file mode 100644 index 000000000..baf0de994 --- /dev/null +++ b/src/regress/sys/crypto/aes/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/crypto/aes diff --git a/src/regress/sys/crypto/aes/CVS/Root b/src/regress/sys/crypto/aes/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/crypto/aes/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/crypto/aes/Makefile b/src/regress/sys/crypto/aes/Makefile new file mode 100644 index 000000000..6829d7cd5 --- /dev/null +++ b/src/regress/sys/crypto/aes/Makefile @@ -0,0 +1,21 @@ +# $OpenBSD: Makefile,v 1.1 2008/06/12 19:42:48 djm Exp $ + +PROG= aestest + +CDIAGFLAGS= -Wall +#CDIAGFLAGS+= -Werror +CDIAGFLAGS+= -Wpointer-arith +CDIAGFLAGS+= -Wno-uninitialized +CDIAGFLAGS+= -Wstrict-prototypes +CDIAGFLAGS+= -Wmissing-prototypes +CDIAGFLAGS+= -Wunused +CDIAGFLAGS+= -Wsign-compare +CDIAGFLAGS+= -Wbounded +CDIAGFLAGS+= -Wshadow + +REGRESS_ROOT_TARGETS= run-regress-${PROG} + +run-regress-${PROG}: ${PROG} + ${SUDO} ./${PROG} ${.CURDIR}/vectors/*.txt + +.include diff --git a/src/regress/sys/crypto/aes/aestest.c b/src/regress/sys/crypto/aes/aestest.c new file mode 100644 index 000000000..2437c3827 --- /dev/null +++ b/src/regress/sys/crypto/aes/aestest.c @@ -0,0 +1,371 @@ +/* $OpenBSD: aestest.c,v 1.1 2008/06/12 19:42:48 djm Exp $ */ + +/* + * Copyright (c) 2002 Markus Friedl. All rights reserved. + * Copyright (c) 2008 Damien Miller. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Test crypto(4) AES with test vectors provided by Dr Brian Gladman: + * http://fp.gladman.plus.com/AES/ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int +syscrypt(const unsigned char *key, size_t klen, const unsigned char *in, + unsigned char *out, size_t len, int do_encrypt) +{ + struct session_op session; + struct crypt_op cryp; + int cryptodev_fd = -1, fd = -1; + u_char iv[32]; + + /* + * Kludge; the kernel doesn't support ECB encryption so we + * use a all-zero IV and encrypt a single block only, so the + * result should be the same. + */ + bzero(iv, sizeof(iv)); + + if ((cryptodev_fd = open("/dev/crypto", O_RDWR, 0)) < 0) { + warn("/dev/crypto"); + goto err; + } + if (ioctl(cryptodev_fd, CRIOGET, &fd) == -1) { + warn("CRIOGET failed"); + goto err; + } + memset(&session, 0, sizeof(session)); + session.cipher = CRYPTO_AES_CBC; + session.key = (caddr_t) key; + session.keylen = klen; + if (ioctl(fd, CIOCGSESSION, &session) == -1) { + warn("CIOCGSESSION"); + goto err; + } + memset(&cryp, 0, sizeof(cryp)); + cryp.ses = session.ses; + cryp.op = do_encrypt ? COP_ENCRYPT : COP_DECRYPT; + cryp.flags = 0; + cryp.len = len; + cryp.src = (caddr_t) in; + cryp.dst = (caddr_t) out; + cryp.iv = (caddr_t) iv; + cryp.mac = 0; + if (ioctl(fd, CIOCCRYPT, &cryp) == -1) { + warn("CIOCCRYPT"); + goto err; + } + if (ioctl(fd, CIOCFSESSION, &session.ses) == -1) { + warn("CIOCFSESSION"); + goto err; + } + close(fd); + close(cryptodev_fd); + return (0); + +err: + if (fd != -1) + close(fd); + if (cryptodev_fd != -1) + close(cryptodev_fd); + return (-1); +} + +static int +getallowsoft(void) +{ + int mib[2], old; + size_t olen; + + olen = sizeof(old); + + mib[0] = CTL_KERN; + mib[1] = KERN_CRYPTODEVALLOWSOFT; + if (sysctl(mib, 2, &old, &olen, NULL, 0) < 0) + err(1, "sysctl failed"); + + return old; +} + +static void +setallowsoft(int new) +{ + int mib[2], old; + size_t olen, nlen; + + olen = nlen = sizeof(new); + + mib[0] = CTL_KERN; + mib[1] = KERN_CRYPTODEVALLOWSOFT; + + if (sysctl(mib, 2, &old, &olen, &new, nlen) < 0) + err(1, "sysctl failed"); +} + +static int +match(unsigned char *a, unsigned char *b, size_t len) +{ + size_t i; + + if (memcmp(a, b, len) == 0) + return (1); + + warnx("decrypt/plaintext mismatch"); + + for (i = 0; i < len; i++) + printf("%2.2x", a[i]); + printf("\n"); + for (i = 0; i < len; i++) + printf("%2.2x", b[i]); + printf("\n"); + + return (0); +} + +/* + * Match expected substring at start of line. If sequence is match, return + * a pointer to the first character in the string past the sequence and and + * following whitespace. + * returns NULL is the start of the line does not match. + */ +static const char * +startswith(const char *line, const char *startswith) +{ + size_t len = strlen(startswith); + + if (strncmp(line, startswith, len) != 0) + return NULL; + line = line + len; + while (isspace(*line)) + line++; + return line; +} + +/* Read a hex string and convert to bytes */ +static void +parsehex(const char *hex, u_char **s, u_int *lenp) +{ + u_char *ret, v; + u_int i, len; + char c; + + len = i = 0; + ret = NULL; + v = 0; + while ((c = *(hex++)) != '\0') { + if (strchr(" \t\r\n", c) != NULL) + continue; + if (c >= '0' && c <= '9') + v |= c - '0'; + else if (c >= 'a' && c <= 'f') + v |= 10 + (c - 'a'); + else if (c >= 'A' && c <= 'F') + v |= 10 + c - 'A'; + else + errx(1, "%s: invalid character \"%c\" in hex string", + __func__, c); + switch (++i) { + case 1: + v <<= 4; + break; + case 2: + if ((ret = realloc(ret, ++len)) == NULL) + errx(1, "realloc(%u)", len); + ret[len - 1] = v; + v = 0; + i = 0; + } + } + if (i != 0) + errx(1, "%s: odd number of characters in hex string", __func__); + *lenp = len; + *s = ret; +} + +static int +do_tests(const char *filename, int test_num, u_char *key, u_int keylen, + u_char *plaintext, u_char *ciphertext, u_int textlen) +{ + char result[32]; + int fail = 0; + + /* Encrypt test */ + if (syscrypt(key, keylen, plaintext, result, textlen, 1) < 0) { + warnx("encrypt with /dev/crypto failed"); + fail++; + } else if (!match(result, ciphertext, textlen)) { + fail++; + } else + printf("OK encrypt test vector %s %u\n", filename, test_num); + + /* Decrypt test */ + if (syscrypt(key, keylen, ciphertext, result, textlen, 0) < 0) { + warnx("decrypt with /dev/crypto failed"); + fail++; + } else if (!match(result, plaintext, textlen)) { + fail++; + } else + printf("OK decrypt test vector %s %u\n", filename, test_num); + + return fail; +} + +static int +run_file(const char *filename) +{ + FILE *tv; + char buf[1024], *eol; + const char *cp, *errstr; + int lnum = 0, fail = 0; + u_char *key, *plaintext, *ciphertext; + u_int keylen, textlen, tmp; + int blocksize, keysize, test; + + if ((tv = fopen(filename, "r")) == NULL) + err(1, "fopen(\"%s\")", filename); + + keylen = textlen = tmp = 0; + key = ciphertext = plaintext = NULL; + blocksize = keysize = test = -1; + while ((fgets(buf, sizeof(buf), tv)) != NULL) { + lnum++; + eol = buf + strlen(buf) - 1; + if (*eol != '\n') + errx(1, "line %d: too long", lnum); + if (eol > buf && *(eol - 1) == '\r') + eol--; + *eol = '\0'; + if ((cp = startswith(buf, "BLOCKSIZE=")) != NULL) { + if (blocksize != -1) + errx(1, "line %d: blocksize already set", lnum); + blocksize = (int)strtonum(cp, 128, 128, &errstr); + if (errstr) + errx(1, "line %d: blocksize is %s: \"%s\"", + lnum, errstr, cp); + } else if ((cp = startswith(buf, "KEYSIZE=")) != NULL) { + if (keysize != -1) + errx(1, "line %d: keysize already set", lnum); + keysize = (int)strtonum(cp, 128, 256, &errstr); + if (errstr) + errx(1, "line %d: keysize is %s: \"%s\"", + lnum, errstr, cp); + if (keysize != 128 && keysize != 256) + errx(1, "line %d: XXX only 128 or 256 " + "bit keys for now (keysize = %d)", + lnum, keysize); + } else if ((cp = startswith(buf, "PT=")) != NULL) { + if (plaintext != NULL) + free(plaintext); + parsehex(cp, &plaintext, &tmp); + if (tmp * 8 != (u_int)blocksize) + errx(1, "line %d: plaintext len %u != " + "blocklen %d", lnum, tmp, blocksize); + if (textlen != 0) { + if (textlen != tmp) + errx(1, "line %d: plaintext len %u != " + "ciphertext len %d", lnum, tmp, + textlen); + } else + textlen = tmp; + } else if ((cp = startswith(buf, "CT=")) != NULL) { + if (ciphertext != NULL) + free(ciphertext); + parsehex(cp, &ciphertext, &tmp); + if (tmp * 8 != (u_int)blocksize) + errx(1, "line %d: ciphertext len %u != " + "blocklen %d", lnum, tmp, blocksize); + if (textlen != 0) { + if (textlen != tmp) + errx(1, "line %d: ciphertext len %u != " + "plaintext len %d", lnum, tmp, + textlen); + } else + textlen = tmp; + } else if ((cp = startswith(buf, "KEY=")) != NULL) { + if (key != NULL) + free(key); + parsehex(cp, &key, &keylen); + if (keylen * 8 != (u_int)keysize) + errx(1, "line %d: ciphertext len %u != " + "blocklen %d", lnum, tmp, textlen); + } else if ((cp = startswith(buf, "TEST=")) != NULL) { + if (plaintext == NULL || ciphertext == NULL || + key == NULL || blocksize == -1 || keysize == -1) { + if (test != -1) + errx(1, "line %d: new test before " + "parameters", lnum); + goto parsetest; + } + /* do the tests */ + fail += do_tests(filename, test, key, keylen, + plaintext, ciphertext, textlen); + parsetest: + test = (int)strtonum(cp, 0, 65536, &errstr); + if (errstr) + errx(1, "line %d: test is %s: \"%s\"", + lnum, errstr, cp); + } else { + /* don't care */ + continue; + } + } + fclose(tv); + + return fail; +} + +int +main(int argc, char **argv) +{ + int allowed = 0, fail = 0, i; + + if (argc < 2) + errx(1, "usage: aestest [test-vector-file]"); + + if (geteuid() == 0) { + allowed = getallowsoft(); + if (allowed == 0) + setallowsoft(1); + } + + for (i = 1; i < argc; i++) + fail += run_file(argv[1]); + + if (geteuid() == 0 && allowed == 0) + setallowsoft(0); + + return fail > 0 ? 1 : 0; +} diff --git a/src/regress/sys/crypto/aes/obj b/src/regress/sys/crypto/aes/obj new file mode 120000 index 000000000..2a9edb47f --- /dev/null +++ b/src/regress/sys/crypto/aes/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/crypto/aes \ No newline at end of file diff --git a/src/regress/sys/crypto/aes/vectors/CVS/Entries b/src/regress/sys/crypto/aes/vectors/CVS/Entries new file mode 100644 index 000000000..51eb6c305 --- /dev/null +++ b/src/regress/sys/crypto/aes/vectors/CVS/Entries @@ -0,0 +1,9 @@ +/ecbnk44.txt/1.1/Thu Jun 12 19:44:01 2008// +/ecbnk48.txt/1.1/Thu Jun 12 19:44:01 2008// +/ecbnt44.txt/1.1/Thu Jun 12 19:44:01 2008// +/ecbnt48.txt/1.1/Thu Jun 12 19:44:01 2008// +/ecbvk44.txt/1.1/Thu Jun 12 19:44:01 2008// +/ecbvk48.txt/1.1/Thu Jun 12 19:44:01 2008// +/ecbvt44.txt/1.1/Thu Jun 12 19:44:01 2008// +/ecbvt48.txt/1.1/Thu Jun 12 19:44:01 2008// +D diff --git a/src/regress/sys/crypto/aes/vectors/CVS/Repository b/src/regress/sys/crypto/aes/vectors/CVS/Repository new file mode 100644 index 000000000..8d197a72e --- /dev/null +++ b/src/regress/sys/crypto/aes/vectors/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/crypto/aes/vectors diff --git a/src/regress/sys/crypto/aes/vectors/CVS/Root b/src/regress/sys/crypto/aes/vectors/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/crypto/aes/vectors/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/crypto/aes/vectors/ecbnk44.txt b/src/regress/sys/crypto/aes/vectors/ecbnk44.txt new file mode 100644 index 000000000..704756608 --- /dev/null +++ b/src/regress/sys/crypto/aes/vectors/ecbnk44.txt @@ -0,0 +1,779 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Key Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbnk44.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 128 + +PT= 00000000000000000000000000000000 +TEST= 0 +KEY= 00000000000000000000000000000000 +CT= 66e94bd4ef8a2c3b884cfa59ca342b2e +TEST= 1 +KEY= 00000000000000000000000000000001 +CT= 0545aad56da2a97c3663d1432a3d1c84 +TEST= 2 +KEY= 00000000000000000000000000000003 +CT= 0d00c6457a47c6bb8cfe076f6e2b1e15 +TEST= 3 +KEY= 00000000000000000000000000000007 +CT= 429c3c22dc979510833529cb64de09e3 +TEST= 4 +KEY= 0000000000000000000000000000000f +CT= 0d68e0da8ec69a1854cc16be884ade2f +TEST= 5 +KEY= 0000000000000000000000000000001f +CT= 9a2daa4fac08769bbb1ca4f2353b1a3e +TEST= 6 +KEY= 0000000000000000000000000000003f +CT= 88325854766eba22ceaa99abd630f258 +TEST= 7 +KEY= 0000000000000000000000000000007f +CT= e0f2198deda952b01ea8ffea4171e66d +TEST= 8 +KEY= 000000000000000000000000000000ff +CT= d5c98c48255f78cc47e149e55cfc3ffd +TEST= 9 +KEY= 000000000000000000000000000001ff +CT= 09ccb66c1f0ce1854dc191c1373acb8c +TEST= 10 +KEY= 000000000000000000000000000003ff +CT= 14dfa44b544d2ca39a9a1c9a3d75fed8 +TEST= 11 +KEY= 000000000000000000000000000007ff +CT= e7df1b3adc7ebbdce19f15c82f173126 +TEST= 12 +KEY= 00000000000000000000000000000fff +CT= 8dc8a75eaf822ddf416988713e9b6e4d +TEST= 13 +KEY= 00000000000000000000000000001fff +CT= bc435a1dcdf8830d82cd5abe7bf71e46 +TEST= 14 +KEY= 00000000000000000000000000003fff +CT= 81835a69fe117b54fdb7916bcc091e71 +TEST= 15 +KEY= 00000000000000000000000000007fff +CT= e0af87cd4468c740ab180289f3738b6f +TEST= 16 +KEY= 0000000000000000000000000000ffff +CT= fc84885326b157843a4d200d86021b33 +TEST= 17 +KEY= 0000000000000000000000000001ffff +CT= be337b0bcabab18d3392a4d29f8d419d +TEST= 18 +KEY= 0000000000000000000000000003ffff +CT= 33a78574fedc6dcca40ee0f51ef11037 +TEST= 19 +KEY= 0000000000000000000000000007ffff +CT= db1821758c24162b81dc8ca0add209ab +TEST= 20 +KEY= 000000000000000000000000000fffff +CT= d3d6d60115e9043b119649ad2e7f7f84 +TEST= 21 +KEY= 000000000000000000000000001fffff +CT= 750d9e49b62cb695ae2f6680ed434451 +TEST= 22 +KEY= 000000000000000000000000003fffff +CT= 818e95e5c0e00179e04c08dbc357ddd8 +TEST= 23 +KEY= 000000000000000000000000007fffff +CT= 3803f7220b65bbc880ba1488241cb1ba +TEST= 24 +KEY= 00000000000000000000000000ffffff +CT= 2fcebd84763a9de4709973f5e0621ed6 +TEST= 25 +KEY= 00000000000000000000000001ffffff +CT= effa0eb04d6f22f209bb143bc736fac2 +TEST= 26 +KEY= 00000000000000000000000003ffffff +CT= 85bdbf034b7ee6ae3b4fae3792aa9d39 +TEST= 27 +KEY= 00000000000000000000000007ffffff +CT= 7b775b78421acd32973a4f437df7ed52 +TEST= 28 +KEY= 0000000000000000000000000fffffff +CT= 49377373c74f6ef924210fc45883fdc6 +TEST= 29 +KEY= 0000000000000000000000001fffffff +CT= 7d0a9cad70099b5133f09161e91d6c32 +TEST= 30 +KEY= 0000000000000000000000003fffffff +CT= 1a9106be9d21a2bdeaf6d78bc8b2cba5 +TEST= 31 +KEY= 0000000000000000000000007fffffff +CT= 21b574eb8ea8c3de03a75ad887b513eb +TEST= 32 +KEY= 000000000000000000000000ffffffff +CT= 51c039a643c8c227e8a1ed4a68eb9764 +TEST= 33 +KEY= 000000000000000000000001ffffffff +CT= 182e9a760136eed736c8aa8ec57fa714 +TEST= 34 +KEY= 000000000000000000000003ffffffff +CT= 1ed5c7412ccfa01e857787d5ac380884 +TEST= 35 +KEY= 000000000000000000000007ffffffff +CT= 22ba5de0abcef81dd10f91478713d525 +TEST= 36 +KEY= 00000000000000000000000fffffffff +CT= 85bc221981c0018f764f0008d07205fe +TEST= 37 +KEY= 00000000000000000000001fffffffff +CT= f137a8dbbf79f953d6e264937567c63d +TEST= 38 +KEY= 00000000000000000000003fffffffff +CT= 4aa85f7a1bebafea39994f8301b71604 +TEST= 39 +KEY= 00000000000000000000007fffffffff +CT= 4a42c5efe9d37cc1863c47329e01a848 +TEST= 40 +KEY= 0000000000000000000000ffffffffff +CT= 93b1dd3660968ecb7028c3907f75a286 +TEST= 41 +KEY= 0000000000000000000001ffffffffff +CT= 380d90a2b2bd02a88077709b541f3abc +TEST= 42 +KEY= 0000000000000000000003ffffffffff +CT= 244082dad08c1fcfc2c103e4c7076dc2 +TEST= 43 +KEY= 0000000000000000000007ffffffffff +CT= a409417dac7f965837ca5502e4eab343 +TEST= 44 +KEY= 000000000000000000000fffffffffff +CT= 0e3a5b0efffbc3ef35965d1f96372901 +TEST= 45 +KEY= 000000000000000000001fffffffffff +CT= fe6fb6d8c48c115c20a8158885c2b72b +TEST= 46 +KEY= 000000000000000000003fffffffffff +CT= 2d9d8b3ebf6817c337abc8c2ab535e25 +TEST= 47 +KEY= 000000000000000000007fffffffffff +CT= f1ede289f8af21cde3da4c91c10d810e +TEST= 48 +KEY= 00000000000000000000ffffffffffff +CT= 433680649d361d1fd7222bfdad181b85 +TEST= 49 +KEY= 00000000000000000001ffffffffffff +CT= aad4b99b596fb1eb563a503b1cffc818 +TEST= 50 +KEY= 00000000000000000003ffffffffffff +CT= c5aefd373d76a68ec6e8cff783822665 +TEST= 51 +KEY= 00000000000000000007ffffffffffff +CT= c0488fe94a2c4a29ad3dfa851e829d2e +TEST= 52 +KEY= 0000000000000000000fffffffffffff +CT= 0e8a24d5ef8e75a7c880fa6a834cf2c9 +TEST= 53 +KEY= 0000000000000000001fffffffffffff +CT= 2791b95644f63234749903c3e8657735 +TEST= 54 +KEY= 0000000000000000003fffffffffffff +CT= ef7221d5a82ee71fe8d8bfdd2a3c7c4f +TEST= 55 +KEY= 0000000000000000007fffffffffffff +CT= 0d2e8d964b6514c4bd3ac5d34db87522 +TEST= 56 +KEY= 000000000000000000ffffffffffffff +CT= d47c25a5ece3b4add6ca0d8a09e410ad +TEST= 57 +KEY= 000000000000000001ffffffffffffff +CT= c282027f20ed3d235475b85304bfcb80 +TEST= 58 +KEY= 000000000000000003ffffffffffffff +CT= b664b7bc37d4b8d04b3b70ded0c800fd +TEST= 59 +KEY= 000000000000000007ffffffffffffff +CT= 6e4fe62c2551f5cbd49f08a6de8f339e +TEST= 60 +KEY= 00000000000000000fffffffffffffff +CT= 002e821880c0628eb48ac598f258413c +TEST= 61 +KEY= 00000000000000001fffffffffffffff +CT= e00fe46582572be60b8e9c464675df11 +TEST= 62 +KEY= 00000000000000003fffffffffffffff +CT= ed6af7fdbf5c4298d898556982998411 +TEST= 63 +KEY= 00000000000000007fffffffffffffff +CT= 274b684f6dabfad23f01c7b984611dd2 +TEST= 64 +KEY= 0000000000000000ffffffffffffffff +CT= abac70797275a2dcf35b582fcd10dc18 +TEST= 65 +KEY= 0000000000000001ffffffffffffffff +CT= 706e2bfc072301e86538a2d0d525a52f +TEST= 66 +KEY= 0000000000000003ffffffffffffffff +CT= f76a0e2d34f589c53f5041b9cb170bcb +TEST= 67 +KEY= 0000000000000007ffffffffffffffff +CT= 15565da70a000eb5e74b4020405771ac +TEST= 68 +KEY= 000000000000000fffffffffffffffff +CT= 7aee27c41842b40b3e4ad6816d7eec87 +TEST= 69 +KEY= 000000000000001fffffffffffffffff +CT= a1340a8aa71385395877f04ec2c2ba71 +TEST= 70 +KEY= 000000000000003fffffffffffffffff +CT= 2e078a39d5468409298e29b3c818f780 +TEST= 71 +KEY= 000000000000007fffffffffffffffff +CT= 9fb0a3e2755523deac574629f1a5e57f +TEST= 72 +KEY= 00000000000000ffffffffffffffffff +CT= 0cae2d1e7c2eb298d284ac574de4c76c +TEST= 73 +KEY= 00000000000001ffffffffffffffffff +CT= 60e24a939a75ac7f93d506f1c66f6e72 +TEST= 74 +KEY= 00000000000003ffffffffffffffffff +CT= f7fd3c15500723d2fc8094fc7ab51c7b +TEST= 75 +KEY= 00000000000007ffffffffffffffffff +CT= 793219b3e13a29e06697ede1506fc83f +TEST= 76 +KEY= 0000000000000fffffffffffffffffff +CT= 6339e5eac05d5e33a32251f938b52951 +TEST= 77 +KEY= 0000000000001fffffffffffffffffff +CT= 6d175edd5529c35f0a1f418766769e66 +TEST= 78 +KEY= 0000000000003fffffffffffffffffff +CT= d0fab53306f97905f35b19384b326053 +TEST= 79 +KEY= 0000000000007fffffffffffffffffff +CT= c6b449923a561f851029e402c1fc49df +TEST= 80 +KEY= 000000000000ffffffffffffffffffff +CT= 4e73dcce8d61edc8f3c465ceacf333e3 +TEST= 81 +KEY= 000000000001ffffffffffffffffffff +CT= d1a141490a078d9259ba518ba3bbbfa9 +TEST= 82 +KEY= 000000000003ffffffffffffffffffff +CT= 4a6dac3718f39c88449fc0fdbba49cbc +TEST= 83 +KEY= 000000000007ffffffffffffffffffff +CT= 47df1ff232572297c46683a199cd6605 +TEST= 84 +KEY= 00000000000fffffffffffffffffffff +CT= 0a25afc437fee47a0cdb3cf8520b701e +TEST= 85 +KEY= 00000000001fffffffffffffffffffff +CT= b7c82cf69cc9bc03d36538b74728a742 +TEST= 86 +KEY= 00000000003fffffffffffffffffffff +CT= aa3d05f2c51fd6abbdcad6fb85175093 +TEST= 87 +KEY= 00000000007fffffffffffffffffffff +CT= 9c40db129e0cd180af762a3ca08cf6cb +TEST= 88 +KEY= 0000000000ffffffffffffffffffffff +CT= 55fe4362db10d26a4c3a1b5d37a139ca +TEST= 89 +KEY= 0000000001ffffffffffffffffffffff +CT= 9cde8814ee1b6639115a62067d023804 +TEST= 90 +KEY= 0000000003ffffffffffffffffffffff +CT= c8d421b6b0bf145eefbdc64034f37c37 +TEST= 91 +KEY= 0000000007ffffffffffffffffffffff +CT= bed798d5e64b21c985bab744d1406b57 +TEST= 92 +KEY= 000000000fffffffffffffffffffffff +CT= 862b819572c86a65026a3b513ba8de2e +TEST= 93 +KEY= 000000001fffffffffffffffffffffff +CT= 744e164e4a960c94f588d694eb2021d6 +TEST= 94 +KEY= 000000003fffffffffffffffffffffff +CT= 6f8f8fe5670d0c9929086664b2313b24 +TEST= 95 +KEY= 000000007fffffffffffffffffffffff +CT= bf9cfc9b0b15dfe1ed0f8e980f80b0d1 +TEST= 96 +KEY= 00000000ffffffffffffffffffffffff +CT= 123dca99ffbe6e12ec372190e66f6712 +TEST= 97 +KEY= 00000001ffffffffffffffffffffffff +CT= 13a1836cef7c653c58dcebbd13a976a7 +TEST= 98 +KEY= 00000003ffffffffffffffffffffffff +CT= 02e2958e680f7d5ef8f82c2408deb15b +TEST= 99 +KEY= 00000007ffffffffffffffffffffffff +CT= ef04bd62c0081225e99271850a6308a0 +TEST= 100 +KEY= 0000000fffffffffffffffffffffffff +CT= f28a7944ab6ac69782ba27f39b4a4381 +TEST= 101 +KEY= 0000001fffffffffffffffffffffffff +CT= 670d8c6ae12c74e19f9883b2b776a4aa +TEST= 102 +KEY= 0000003fffffffffffffffffffffffff +CT= 459f3fc2e1e503af2fa39b06592c8c22 +TEST= 103 +KEY= 0000007fffffffffffffffffffffffff +CT= f993a6cc25dbd950419352cc0009b583 +TEST= 104 +KEY= 000000ffffffffffffffffffffffffff +CT= 9caddd77d32c233af1d3147365662a99 +TEST= 105 +KEY= 000001ffffffffffffffffffffffffff +CT= 211a1a7e4e47e0d86b9fd96b531cc08f +TEST= 106 +KEY= 000003ffffffffffffffffffffffffff +CT= 82e28dbfda3ec2f04d1aa61dca2c83c9 +TEST= 107 +KEY= 000007ffffffffffffffffffffffffff +CT= ecb28ad52f46457198f2ad210d47d8cf +TEST= 108 +KEY= 00000fffffffffffffffffffffffffff +CT= 65a479ff2c04a745433dab12747f6fba +TEST= 109 +KEY= 00001fffffffffffffffffffffffffff +CT= 74e682913c9a0722d8a46a8f2deff793 +TEST= 110 +KEY= 00003fffffffffffffffffffffffffff +CT= 6bd7490b35e70ae742cfd3611549b272 +TEST= 111 +KEY= 00007fffffffffffffffffffffffffff +CT= de0e697b067e14cc3b4096e2e169bb10 +TEST= 112 +KEY= 0000ffffffffffffffffffffffffffff +CT= 46b9672025cd89d39cd2d185ce454b28 +TEST= 113 +KEY= 0001ffffffffffffffffffffffffffff +CT= 69a8d73c318abca454188b4302a2c0f2 +TEST= 114 +KEY= 0003ffffffffffffffffffffffffffff +CT= 2c31d234634cb3b71e11e6c2dc2af783 +TEST= 115 +KEY= 0007ffffffffffffffffffffffffffff +CT= 748893329ec47a06fc22e8608ffc6a6a +TEST= 116 +KEY= 000fffffffffffffffffffffffffffff +CT= 72a5216e693f4e75f55858dc87e6894b +TEST= 117 +KEY= 001fffffffffffffffffffffffffffff +CT= fd01a6bff2c00495b6e6a2658ad80276 +TEST= 118 +KEY= 003fffffffffffffffffffffffffffff +CT= f8332e3bee556b953cb2326a69f1959b +TEST= 119 +KEY= 007fffffffffffffffffffffffffffff +CT= 4335264b64726e36fb4aebce0e80f36d +TEST= 120 +KEY= 00ffffffffffffffffffffffffffffff +CT= e01f3360843bb429c79ef44f71649784 +TEST= 121 +KEY= 01ffffffffffffffffffffffffffffff +CT= af39755faf0b5e23cca27bb948d4d2aa +TEST= 122 +KEY= 03ffffffffffffffffffffffffffffff +CT= b983e0592bf2727bd855187ba2cd737a +TEST= 123 +KEY= 07ffffffffffffffffffffffffffffff +CT= 12a7a792f5c23de85eb6240c011f7317 +TEST= 124 +KEY= 0fffffffffffffffffffffffffffffff +CT= 144cfff87e64622607b4f69e1e203f3e +TEST= 125 +KEY= 1fffffffffffffffffffffffffffffff +CT= 0b3d901bcf69f99400fafa534f78ecef +TEST= 126 +KEY= 3fffffffffffffffffffffffffffffff +CT= 2490fcfe98dbc1a40df667e32c3ee670 +TEST= 127 +KEY= 7fffffffffffffffffffffffffffffff +CT= c0b9045be82d79ef711fb79e957de3b9 +TEST= 128 +KEY= ffffffffffffffffffffffffffffffff +CT= a1f6258c877d5fcd8964484538bfc92c +TEST= 129 +KEY= fffffffffffffffffffffffffffffffe +CT= 9ba4a9143f4e5d4048521c4f8877d88e +TEST= 130 +KEY= fffffffffffffffffffffffffffffffc +CT= 02bc96846b3fdc71643f384cd3cc3eaf +TEST= 131 +KEY= fffffffffffffffffffffffffffffff8 +CT= 5a4d404d8917e353e92a21072c3b2305 +TEST= 132 +KEY= fffffffffffffffffffffffffffffff0 +CT= 41c78c135ed9e98c096640647265da1e +TEST= 133 +KEY= ffffffffffffffffffffffffffffffe0 +CT= 25d6cfe6881f2bf497dd14cd4ddf445b +TEST= 134 +KEY= ffffffffffffffffffffffffffffffc0 +CT= 41a8a947766635dec37553d9a6c0cbb7 +TEST= 135 +KEY= ffffffffffffffffffffffffffffff80 +CT= 5160474d504b9b3eefb68d35f245f4b3 +TEST= 136 +KEY= ffffffffffffffffffffffffffffff00 +CT= 2dce3acb727cd13ccd76d425ea56e4f6 +TEST= 137 +KEY= fffffffffffffffffffffffffffffe00 +CT= ba4f970c0a25c41814bdae2e506be3b4 +TEST= 138 +KEY= fffffffffffffffffffffffffffffc00 +CT= 3a0c53fa37311fc10bd2a9981f513174 +TEST= 139 +KEY= fffffffffffffffffffffffffffff800 +CT= dfa5c097cdc1532ac071d57b1d28d1bd +TEST= 140 +KEY= fffffffffffffffffffffffffffff000 +CT= 1dbf57877b7b17385c85d0b54851e371 +TEST= 141 +KEY= ffffffffffffffffffffffffffffe000 +CT= 323994cfb9da285a5d9642e1759b224a +TEST= 142 +KEY= ffffffffffffffffffffffffffffc000 +CT= 70c46bb30692be657f7eaa93ebad9897 +TEST= 143 +KEY= ffffffffffffffffffffffffffff8000 +CT= 62d0662d6eaeddedebae7f7ea3a4f6b6 +TEST= 144 +KEY= ffffffffffffffffffffffffffff0000 +CT= b4750ff263a65e1f9e924ccfd98f3e37 +TEST= 145 +KEY= fffffffffffffffffffffffffffe0000 +CT= 674d2b61633d162be59dde04222f4740 +TEST= 146 +KEY= fffffffffffffffffffffffffffc0000 +CT= 44fb5c4d4f5cb79be5c174a3b1c97348 +TEST= 147 +KEY= fffffffffffffffffffffffffff80000 +CT= 16591c0f27d60e29b85a96c33861a7ef +TEST= 148 +KEY= fffffffffffffffffffffffffff00000 +CT= 793de39236570aba83ab9b737cb521c9 +TEST= 149 +KEY= ffffffffffffffffffffffffffe00000 +CT= c14574d9cd00cf2b5a7f77e53cd57885 +TEST= 150 +KEY= ffffffffffffffffffffffffffc00000 +CT= 9241daca4fdd034a82372db50e1a0f3f +TEST= 151 +KEY= ffffffffffffffffffffffffff800000 +CT= 36aeaa3a213e968d4b5b679d3a2c97fe +TEST= 152 +KEY= ffffffffffffffffffffffffff000000 +CT= 2cb1dc3a9c72972e425ae2ef3eb597cd +TEST= 153 +KEY= fffffffffffffffffffffffffe000000 +CT= 277167f3812afff1ffacb4a934379fc3 +TEST= 154 +KEY= fffffffffffffffffffffffffc000000 +CT= f17af0e895dda5eb98efc68066e84c54 +TEST= 155 +KEY= fffffffffffffffffffffffff8000000 +CT= 829c04ff4c07513c0b3ef05c03e337b5 +TEST= 156 +KEY= fffffffffffffffffffffffff0000000 +CT= 307c5b8fcd0533ab98bc51e27a6ce461 +TEST= 157 +KEY= ffffffffffffffffffffffffe0000000 +CT= 36bbaab22a6bd4925a99a2b408d2dbae +TEST= 158 +KEY= ffffffffffffffffffffffffc0000000 +CT= b63305c72bedfab97382c406d0c49bc6 +TEST= 159 +KEY= ffffffffffffffffffffffff80000000 +CT= 3e40c3901cd7effc22bffc35dee0b4d9 +TEST= 160 +KEY= ffffffffffffffffffffffff00000000 +CT= f0c5c6ffa5e0bd3a94c88f6b6f7c16b9 +TEST= 161 +KEY= fffffffffffffffffffffffe00000000 +CT= c440de014d3d610707279b13242a5c36 +TEST= 162 +KEY= fffffffffffffffffffffffc00000000 +CT= d06e3195b5376f109d5c4ec6c5d62ced +TEST= 163 +KEY= fffffffffffffffffffffff800000000 +CT= 36cf44c92d550bfb1ed28ef583ddf5d7 +TEST= 164 +KEY= fffffffffffffffffffffff000000000 +CT= 6838af1f4f69bae9d85dd188dcdf0688 +TEST= 165 +KEY= ffffffffffffffffffffffe000000000 +CT= ff13806cf19cc38721554d7c0fcdcd4b +TEST= 166 +KEY= ffffffffffffffffffffffc000000000 +CT= f0ea23af08534011c60009ab29ada2f1 +TEST= 167 +KEY= ffffffffffffffffffffff8000000000 +CT= 6da0490ba0ba0343b935681d2cce5ba1 +TEST= 168 +KEY= ffffffffffffffffffffff0000000000 +CT= ea3695e1351b9d6858bd958cf513ef6c +TEST= 169 +KEY= fffffffffffffffffffffe0000000000 +CT= 6a7980ce7b105cf530952d74daaf798c +TEST= 170 +KEY= fffffffffffffffffffffc0000000000 +CT= 192afffb2c880e82b05926d0fc6c448b +TEST= 171 +KEY= fffffffffffffffffffff80000000000 +CT= 38f67b9e98e4a97b6df030a9fcdd0104 +TEST= 172 +KEY= fffffffffffffffffffff00000000000 +CT= 8785b1a75b0f3bd958dcd0e29318c521 +TEST= 173 +KEY= ffffffffffffffffffffe00000000000 +CT= 9cfa1322ea33da2173a024f2ff0d896d +TEST= 174 +KEY= ffffffffffffffffffffc00000000000 +CT= dbdfb527060e0a71009c7bb0c68f1d44 +TEST= 175 +KEY= ffffffffffffffffffff800000000000 +CT= 545d50ebd919e4a6949d96ad47e46a80 +TEST= 176 +KEY= ffffffffffffffffffff000000000000 +CT= ec198a18e10e532403b7e20887c8dd80 +TEST= 177 +KEY= fffffffffffffffffffe000000000000 +CT= f2e976875755f9401d54f36e2a23a594 +TEST= 178 +KEY= fffffffffffffffffffc000000000000 +CT= 284ca2fa35807b8b0ae4d19e11d7dbd7 +TEST= 179 +KEY= fffffffffffffffffff8000000000000 +CT= ef1623cc44313cff440b1594a7e21cc6 +TEST= 180 +KEY= fffffffffffffffffff0000000000000 +CT= 96d9b017d302df410a937dcdb8bb6e43 +TEST= 181 +KEY= ffffffffffffffffffe0000000000000 +CT= 1b0d02893683b9f180458e4aa6b73982 +TEST= 182 +KEY= ffffffffffffffffffc0000000000000 +CT= d8764468bb103828cf7e1473ce895073 +TEST= 183 +KEY= ffffffffffffffffff80000000000000 +CT= acc5599dd8ac02239a0fef4a36dd1668 +TEST= 184 +KEY= ffffffffffffffffff00000000000000 +CT= 1ea448c2aac954f5d812e9d78494446a +TEST= 185 +KEY= fffffffffffffffffe00000000000000 +CT= 7866373f24a0b6ed56e0d96fcdafb877 +TEST= 186 +KEY= fffffffffffffffffc00000000000000 +CT= ab69cfadf51f8e604d9cc37182f6635a +TEST= 187 +KEY= fffffffffffffffff800000000000000 +CT= f60e91fc3269eecf3231c6e9945697c6 +TEST= 188 +KEY= fffffffffffffffff000000000000000 +CT= 3535d565ace3f31eb249ba2cc6765d7a +TEST= 189 +KEY= ffffffffffffffffe000000000000000 +CT= d9bff7ff454b0ec5a4a2a69566e2cb84 +TEST= 190 +KEY= ffffffffffffffffc000000000000000 +CT= 493d4a4f38ebb337d10aa84e9171a554 +TEST= 191 +KEY= ffffffffffffffff8000000000000000 +CT= 32cd652842926aea4aa6137bb2be2b5e +TEST= 192 +KEY= ffffffffffffffff0000000000000000 +CT= 84be19e053635f09f2665e7bae85b42d +TEST= 193 +KEY= fffffffffffffffe0000000000000000 +CT= 77a4d96d56dda398b9aabecfc75729fd +TEST= 194 +KEY= fffffffffffffffc0000000000000000 +CT= 995c9dc0b689f03c45867b5faa5c18d1 +TEST= 195 +KEY= fffffffffffffff80000000000000000 +CT= 653317b9362b6f9b9e1a580e68d494b5 +TEST= 196 +KEY= fffffffffffffff00000000000000000 +CT= 7a181e84bd5457d26a88fbae96018fb0 +TEST= 197 +KEY= ffffffffffffffe00000000000000000 +CT= fd8687f0757a210e9fdf181204c30863 +TEST= 198 +KEY= ffffffffffffffc00000000000000000 +CT= a35a63f5343ebe9ef8167bcb48ad122e +TEST= 199 +KEY= ffffffffffffff800000000000000000 +CT= 7470469be9723030fdcc73a8cd4fbb10 +TEST= 200 +KEY= ffffffffffffff000000000000000000 +CT= b5ab3013dd1e61df06cbaf34ca2aee78 +TEST= 201 +KEY= fffffffffffffe000000000000000000 +CT= 53786104b9744b98f052c46f1c850d0b +TEST= 202 +KEY= fffffffffffffc000000000000000000 +CT= 43fdaf53ebbc9880c228617d6a9b548b +TEST= 203 +KEY= fffffffffffff8000000000000000000 +CT= 8b527a6aebdaec9eaef8eda2cb7783e5 +TEST= 204 +KEY= fffffffffffff0000000000000000000 +CT= 7b90785125505fad59b13c186dd66ce3 +TEST= 205 +KEY= ffffffffffffe0000000000000000000 +CT= ff4e66c07bae3e79fb7d210847a3b0ba +TEST= 206 +KEY= ffffffffffffc0000000000000000000 +CT= cb2f430383f9084e03a653571e065de6 +TEST= 207 +KEY= ffffffffffff80000000000000000000 +CT= b6768473ce9843ea66a81405dd50b345 +TEST= 208 +KEY= ffffffffffff00000000000000000000 +CT= 75550e6cb5a88e49634c9ab69eda0430 +TEST= 209 +KEY= fffffffffffe00000000000000000000 +CT= 04497110efb9dceb13e2b13fb4465564 +TEST= 210 +KEY= fffffffffffc00000000000000000000 +CT= 4fb288cc2040049001d2c7585ad123fc +TEST= 211 +KEY= fffffffffff800000000000000000000 +CT= 8ebf73aad49c82007f77a5c1ccec6ab4 +TEST= 212 +KEY= fffffffffff000000000000000000000 +CT= e6c4807ae11f36f091c57d9fb68548d1 +TEST= 213 +KEY= ffffffffffe000000000000000000000 +CT= 8e4d8e699119e1fc87545a647fb1d34f +TEST= 214 +KEY= ffffffffffc000000000000000000000 +CT= 1df9b76112dc6531e07d2cfda04411f0 +TEST= 215 +KEY= ffffffffff8000000000000000000000 +CT= c72954a48d0774db0b4971c526260415 +TEST= 216 +KEY= ffffffffff0000000000000000000000 +CT= 7df4daf4ad29a3615a9b6ece5c99518a +TEST= 217 +KEY= fffffffffe0000000000000000000000 +CT= 303ff996947f0c7d1f43c8f3027b9b75 +TEST= 218 +KEY= fffffffffc0000000000000000000000 +CT= 82408571c3e2424540207f833b6dda69 +TEST= 219 +KEY= fffffffff80000000000000000000000 +CT= 0f18aff94274696d9b61848bd50ac5e5 +TEST= 220 +KEY= fffffffff00000000000000000000000 +CT= 44a98bf11e163f632c47ec6a49683a89 +TEST= 221 +KEY= ffffffffe00000000000000000000000 +CT= 23f710842b9bb9c32f26648c786807ca +TEST= 222 +KEY= ffffffffc00000000000000000000000 +CT= 5a8688f0b2a2c16224c161658ffd4044 +TEST= 223 +KEY= ffffffff800000000000000000000000 +CT= ed62e16363638360fdd6ad62112794f0 +TEST= 224 +KEY= ffffffff000000000000000000000000 +CT= 9c28524a16a1e1c1452971caa8d13476 +TEST= 225 +KEY= fffffffe000000000000000000000000 +CT= 1114bc2028009b923f0b01915ce5e7c4 +TEST= 226 +KEY= fffffffc000000000000000000000000 +CT= e17bc79f30eaab2fac2cbbe3458d687a +TEST= 227 +KEY= fffffff8000000000000000000000000 +CT= 6c7c64dc84a8bba758ed17eb025a57e3 +TEST= 228 +KEY= fffffff0000000000000000000000000 +CT= 99693e6a59d1366c74d823562d7e1431 +TEST= 229 +KEY= ffffffe0000000000000000000000000 +CT= 18c1b6e2157122056d0243d8a165cddb +TEST= 230 +KEY= ffffffc0000000000000000000000000 +CT= 5ce37e17eb4646ecfac29b9cc38d9340 +TEST= 231 +KEY= ffffff80000000000000000000000000 +CT= 6d114ccb27bf391012e8974c546d9bf2 +TEST= 232 +KEY= ffffff00000000000000000000000000 +CT= de11722d893e9f9121c381becc1da59a +TEST= 233 +KEY= fffffe00000000000000000000000000 +CT= 95b1703fc57ba09fe0c3580febdd7ed4 +TEST= 234 +KEY= fffffc00000000000000000000000000 +CT= 12acd89b13cd5f8726e34d44fd486108 +TEST= 235 +KEY= fffff800000000000000000000000000 +CT= a6cb761d61f8292d0df393a279ad0380 +TEST= 236 +KEY= fffff000000000000000000000000000 +CT= 26298e9c1db517c215fadfb7d2a8d691 +TEST= 237 +KEY= ffffe000000000000000000000000000 +CT= 90fb128d3a1af6e548521bb962bf1f05 +TEST= 238 +KEY= ffffc000000000000000000000000000 +CT= df556a33438db87bc41b1752c55e5e49 +TEST= 239 +KEY= ffff8000000000000000000000000000 +CT= c6a0b3e998d05068a5399778405200b4 +TEST= 240 +KEY= ffff0000000000000000000000000000 +CT= 97d0754fe68f11b9e375d070a608c884 +TEST= 241 +KEY= fffe0000000000000000000000000000 +CT= 113ecbe4a453269a0dd26069467fb5b5 +TEST= 242 +KEY= fffc0000000000000000000000000000 +CT= 2637050c9fc0d4817e2d69de878aee8d +TEST= 243 +KEY= fff80000000000000000000000000000 +CT= b5f1a33e50d40d103764c76bd4c6b6f8 +TEST= 244 +KEY= fff00000000000000000000000000000 +CT= a01bf44f2d16be928ca44aaf7b9b106b +TEST= 245 +KEY= ffe00000000000000000000000000000 +CT= 956d7798fac20f82a8823f984d06f7f5 +TEST= 246 +KEY= ffc00000000000000000000000000000 +CT= 9958f0ecea8b2172c0c1995f9182c0f3 +TEST= 247 +KEY= ff800000000000000000000000000000 +CT= 42ffb34c743de4d88ca38011c990890b +TEST= 248 +KEY= ff000000000000000000000000000000 +CT= b1d758256b28fd850ad4944208cf1155 +TEST= 249 +KEY= fe000000000000000000000000000000 +CT= c4295f83465c7755e8fa364bac6a7ea5 +TEST= 250 +KEY= fc000000000000000000000000000000 +CT= 9ed5a75136a940d0963da379db4af26a +TEST= 251 +KEY= f8000000000000000000000000000000 +CT= f17e79aed0db7e279e955b5f493875a7 +TEST= 252 +KEY= f0000000000000000000000000000000 +CT= 970014d634e2b7650777e8e84d03ccd8 +TEST= 253 +KEY= e0000000000000000000000000000000 +CT= 72a1da770f5d7ac4c9ef94d822affd97 +TEST= 254 +KEY= c0000000000000000000000000000000 +CT= 4bc3f883450c113c64ca42e1112a9e87 +TEST= 255 +KEY= 80000000000000000000000000000000 +CT= 0edd33d3c621e546455bd8ba1418bec8 diff --git a/src/regress/sys/crypto/aes/vectors/ecbnk48.txt b/src/regress/sys/crypto/aes/vectors/ecbnk48.txt new file mode 100644 index 000000000..0cf00745f --- /dev/null +++ b/src/regress/sys/crypto/aes/vectors/ecbnk48.txt @@ -0,0 +1,1547 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Key Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbnk48.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 256 + +PT= 00000000000000000000000000000000 +TEST= 0 +KEY= 0000000000000000000000000000000000000000000000000000000000000000 +CT= dc95c078a2408989ad48a21492842087 +TEST= 1 +KEY= 0000000000000000000000000000000000000000000000000000000000000001 +CT= 6b6cfe160a6263631b292f879eeff926 +TEST= 2 +KEY= 0000000000000000000000000000000000000000000000000000000000000003 +CT= bf701e7f51c292f1cc242a991578eb2a +TEST= 3 +KEY= 0000000000000000000000000000000000000000000000000000000000000007 +CT= ab749ad085ee539d8baf1621853d3fb2 +TEST= 4 +KEY= 000000000000000000000000000000000000000000000000000000000000000f +CT= 4bcef4dbc203f06aa5fb72ed1a70fb89 +TEST= 5 +KEY= 000000000000000000000000000000000000000000000000000000000000001f +CT= be406db48b9b2aa8559ed5b173fd658b +TEST= 6 +KEY= 000000000000000000000000000000000000000000000000000000000000003f +CT= e93766e59507d341537d0c62072d8a55 +TEST= 7 +KEY= 000000000000000000000000000000000000000000000000000000000000007f +CT= 58ed5fbb416960f5f06159b76a6d7738 +TEST= 8 +KEY= 00000000000000000000000000000000000000000000000000000000000000ff +CT= bc2546f4768081ceb295a72b31e6ab05 +TEST= 9 +KEY= 00000000000000000000000000000000000000000000000000000000000001ff +CT= 1e85b10b69d7e5994438da340674b012 +TEST= 10 +KEY= 00000000000000000000000000000000000000000000000000000000000003ff +CT= 027d266cf77aa9f5365aa549254323cf +TEST= 11 +KEY= 00000000000000000000000000000000000000000000000000000000000007ff +CT= fbde91184125dc0d0f229e09db5a8da2 +TEST= 12 +KEY= 0000000000000000000000000000000000000000000000000000000000000fff +CT= 53a77656d1bc4e33ac9a4ae98a912b35 +TEST= 13 +KEY= 0000000000000000000000000000000000000000000000000000000000001fff +CT= af5628c2a562fce45b3e3265b17d57c1 +TEST= 14 +KEY= 0000000000000000000000000000000000000000000000000000000000003fff +CT= b835c0732fbfd73f3c428877dceefbfd +TEST= 15 +KEY= 0000000000000000000000000000000000000000000000000000000000007fff +CT= 03f6669af1df61abcf54024353c3048d +TEST= 16 +KEY= 000000000000000000000000000000000000000000000000000000000000ffff +CT= fe3dec93582172729ca562db3a24da23 +TEST= 17 +KEY= 000000000000000000000000000000000000000000000000000000000001ffff +CT= ed696865926ecabb1e5013e1dc4862c9 +TEST= 18 +KEY= 000000000000000000000000000000000000000000000000000000000003ffff +CT= c9a918af1b5a4ce363fd5bdbbbe94dd6 +TEST= 19 +KEY= 000000000000000000000000000000000000000000000000000000000007ffff +CT= c213d9c2a23584883d25823549daa369 +TEST= 20 +KEY= 00000000000000000000000000000000000000000000000000000000000fffff +CT= cbd19b0ac8fd6e5de946d1866ff0014e +TEST= 21 +KEY= 00000000000000000000000000000000000000000000000000000000001fffff +CT= 913b89d6540f1f26eae1ce75d65a3373 +TEST= 22 +KEY= 00000000000000000000000000000000000000000000000000000000003fffff +CT= c71ad528b5ed428b29b05e90696065ef +TEST= 23 +KEY= 00000000000000000000000000000000000000000000000000000000007fffff +CT= 537013a5f3fd7e97612798bca85edce1 +TEST= 24 +KEY= 0000000000000000000000000000000000000000000000000000000000ffffff +CT= af63b3b30ad065a7c686c6c53687575d +TEST= 25 +KEY= 0000000000000000000000000000000000000000000000000000000001ffffff +CT= d0ab26758ce397c61b0160b682761a96 +TEST= 26 +KEY= 0000000000000000000000000000000000000000000000000000000003ffffff +CT= 942e760423b6ea3cfe6da21186ae47ac +TEST= 27 +KEY= 0000000000000000000000000000000000000000000000000000000007ffffff +CT= 45685f766771cdebcaad2fb3c792fe51 +TEST= 28 +KEY= 000000000000000000000000000000000000000000000000000000000fffffff +CT= cb0a8a91aa019fdf83c4ffbbdcf7447d +TEST= 29 +KEY= 000000000000000000000000000000000000000000000000000000001fffffff +CT= 19c871011b3afd00c834caf416ef4cf9 +TEST= 30 +KEY= 000000000000000000000000000000000000000000000000000000003fffffff +CT= 3761ba9ab369230a061af0080936bb35 +TEST= 31 +KEY= 000000000000000000000000000000000000000000000000000000007fffffff +CT= 63587d81d0dd0af99cb71b848d8055b4 +TEST= 32 +KEY= 00000000000000000000000000000000000000000000000000000000ffffffff +CT= 543f94b1e7458f38994515b2f82b56e5 +TEST= 33 +KEY= 00000000000000000000000000000000000000000000000000000001ffffffff +CT= 96fe07bbda459956adc2dff0e112c4b6 +TEST= 34 +KEY= 00000000000000000000000000000000000000000000000000000003ffffffff +CT= 855e83b75c30bf564d78b8ead29898a1 +TEST= 35 +KEY= 00000000000000000000000000000000000000000000000000000007ffffffff +CT= 971f085cfd3672e8d648894e833372f6 +TEST= 36 +KEY= 0000000000000000000000000000000000000000000000000000000fffffffff +CT= 45d75757285fa13740f9335135811c62 +TEST= 37 +KEY= 0000000000000000000000000000000000000000000000000000001fffffffff +CT= e7d8cfd6c8393169a8e1ef610ea8ff04 +TEST= 38 +KEY= 0000000000000000000000000000000000000000000000000000003fffffffff +CT= 6e079973ba11f4eca6ac2d1875a7a5d1 +TEST= 39 +KEY= 0000000000000000000000000000000000000000000000000000007fffffffff +CT= ed2252c561bbb86172664a7e6f4f588f +TEST= 40 +KEY= 000000000000000000000000000000000000000000000000000000ffffffffff +CT= 6a326677187d8636bd0cf410707150d2 +TEST= 41 +KEY= 000000000000000000000000000000000000000000000000000001ffffffffff +CT= 6d005cea1a4e54fb2becfe7f84da2690 +TEST= 42 +KEY= 000000000000000000000000000000000000000000000000000003ffffffffff +CT= dbf008f42a12b68d5d976b19c03dbf8f +TEST= 43 +KEY= 000000000000000000000000000000000000000000000000000007ffffffffff +CT= d2c675869612e5e8e997c2f40c124b4f +TEST= 44 +KEY= 00000000000000000000000000000000000000000000000000000fffffffffff +CT= 34b24616843e26e04ae07e30f1d37c14 +TEST= 45 +KEY= 00000000000000000000000000000000000000000000000000001fffffffffff +CT= 66261a57903dcd9e7b99ffee603d52ea +TEST= 46 +KEY= 00000000000000000000000000000000000000000000000000003fffffffffff +CT= 41044ecff55d2f1b74ac503a026b69f1 +TEST= 47 +KEY= 00000000000000000000000000000000000000000000000000007fffffffffff +CT= fdf60bb3857a923412e5549ceb47a06b +TEST= 48 +KEY= 0000000000000000000000000000000000000000000000000000ffffffffffff +CT= 4afd474c849e7435dbc189033056ffaf +TEST= 49 +KEY= 0000000000000000000000000000000000000000000000000001ffffffffffff +CT= 0a1b1c700a9de96f6382199b58c3f156 +TEST= 50 +KEY= 0000000000000000000000000000000000000000000000000003ffffffffffff +CT= 2cc0ac48f4b609e07ff191f7e201cd4d +TEST= 51 +KEY= 0000000000000000000000000000000000000000000000000007ffffffffffff +CT= b73f7c95679e7b2a4142b95962216d47 +TEST= 52 +KEY= 000000000000000000000000000000000000000000000000000fffffffffffff +CT= eb0b3ad0cfe4a029402a8ae1b59effab +TEST= 53 +KEY= 000000000000000000000000000000000000000000000000001fffffffffffff +CT= 3d504ad4b4029094043778ce3c2d3517 +TEST= 54 +KEY= 000000000000000000000000000000000000000000000000003fffffffffffff +CT= 23d88a19ac10ce9d878b8bafb2559c42 +TEST= 55 +KEY= 000000000000000000000000000000000000000000000000007fffffffffffff +CT= 75aa63f4ed7deb513b2c60a49f26ed5b +TEST= 56 +KEY= 00000000000000000000000000000000000000000000000000ffffffffffffff +CT= e2d7fd533d6e2f03cbd2e89eeff058bf +TEST= 57 +KEY= 00000000000000000000000000000000000000000000000001ffffffffffffff +CT= 27118699661cd6dbe6118cd339f08ace +TEST= 58 +KEY= 00000000000000000000000000000000000000000000000003ffffffffffffff +CT= ec355421e48d3fef18e00fe0ba13afeb +TEST= 59 +KEY= 00000000000000000000000000000000000000000000000007ffffffffffffff +CT= b4df72723b9a101f4dcf20afddbb6cd4 +TEST= 60 +KEY= 0000000000000000000000000000000000000000000000000fffffffffffffff +CT= 427b5f8e6b9372c65dee4b33256bc571 +TEST= 61 +KEY= 0000000000000000000000000000000000000000000000001fffffffffffffff +CT= 890accefa77cbf872f5296f1cc843d6d +TEST= 62 +KEY= 0000000000000000000000000000000000000000000000003fffffffffffffff +CT= 45f132aeedfcaeada0354232e8e0ecd6 +TEST= 63 +KEY= 0000000000000000000000000000000000000000000000007fffffffffffffff +CT= e00b07ddb7ac13b03ff48988211fe71f +TEST= 64 +KEY= 000000000000000000000000000000000000000000000000ffffffffffffffff +CT= 9d386993f184e5805fb0e987455809ed +TEST= 65 +KEY= 000000000000000000000000000000000000000000000001ffffffffffffffff +CT= 475b5ab6722d43f715436a8cb59cbf4f +TEST= 66 +KEY= 000000000000000000000000000000000000000000000003ffffffffffffffff +CT= a82590572fd07fbf1d23fc81b49e8756 +TEST= 67 +KEY= 000000000000000000000000000000000000000000000007ffffffffffffffff +CT= 3adce472e6c7a99fa7d3017ad75f5cdf +TEST= 68 +KEY= 00000000000000000000000000000000000000000000000fffffffffffffffff +CT= 524797e0cf9c9dea956962ef7136f546 +TEST= 69 +KEY= 00000000000000000000000000000000000000000000001fffffffffffffffff +CT= 075d0316aedd8df2ae66eb838e2ed485 +TEST= 70 +KEY= 00000000000000000000000000000000000000000000003fffffffffffffffff +CT= 187849162a0b56eeaae2425c2e494b78 +TEST= 71 +KEY= 00000000000000000000000000000000000000000000007fffffffffffffffff +CT= c278f398882137eaac01c3275a9a2722 +TEST= 72 +KEY= 0000000000000000000000000000000000000000000000ffffffffffffffffff +CT= f1e8b6e7114b02918877a995784fcb74 +TEST= 73 +KEY= 0000000000000000000000000000000000000000000001ffffffffffffffffff +CT= e7f582f29d8d332087bda8514372c900 +TEST= 74 +KEY= 0000000000000000000000000000000000000000000003ffffffffffffffffff +CT= 0a4585f81b68c921331c1f9110df528e +TEST= 75 +KEY= 0000000000000000000000000000000000000000000007ffffffffffffffffff +CT= 203c4d0dba823937bd66680f47cf5511 +TEST= 76 +KEY= 000000000000000000000000000000000000000000000fffffffffffffffffff +CT= d757358180429b7112e006a53eb5467f +TEST= 77 +KEY= 000000000000000000000000000000000000000000001fffffffffffffffffff +CT= 202b92ded713c6c754fab7ab9235ab3c +TEST= 78 +KEY= 000000000000000000000000000000000000000000003fffffffffffffffffff +CT= a226249ea4d82542a878009a495bd4ca +TEST= 79 +KEY= 000000000000000000000000000000000000000000007fffffffffffffffffff +CT= 0d62e8c60b22be37888eef8fafd374a4 +TEST= 80 +KEY= 00000000000000000000000000000000000000000000ffffffffffffffffffff +CT= 6e16ce6a174705eb4dea7391d180f6e9 +TEST= 81 +KEY= 00000000000000000000000000000000000000000001ffffffffffffffffffff +CT= 53a295a307cc07aeda9618fe12268bfa +TEST= 82 +KEY= 00000000000000000000000000000000000000000003ffffffffffffffffffff +CT= 6fb67e2d8a5b1ddb8f3b37458f03fdba +TEST= 83 +KEY= 00000000000000000000000000000000000000000007ffffffffffffffffffff +CT= 9eb298a14e534f5bd08380dd0949d312 +TEST= 84 +KEY= 0000000000000000000000000000000000000000000fffffffffffffffffffff +CT= 30a6d04751b2211b19099024ef052fbe +TEST= 85 +KEY= 0000000000000000000000000000000000000000001fffffffffffffffffffff +CT= 1c32545f6246937f70aec5fe8603c6c3 +TEST= 86 +KEY= 0000000000000000000000000000000000000000003fffffffffffffffffffff +CT= a6b1755b086923fdfb82a3906228ba16 +TEST= 87 +KEY= 0000000000000000000000000000000000000000007fffffffffffffffffffff +CT= 3efc4aceca70357daa5425e77370d01c +TEST= 88 +KEY= 000000000000000000000000000000000000000000ffffffffffffffffffffff +CT= e8d7761c2afd674da8f72505515df6d9 +TEST= 89 +KEY= 000000000000000000000000000000000000000001ffffffffffffffffffffff +CT= 6e9927c90c684eef8314933f3bdbd17d +TEST= 90 +KEY= 000000000000000000000000000000000000000003ffffffffffffffffffffff +CT= 020d04983f9bdc77750af373febcfda4 +TEST= 91 +KEY= 000000000000000000000000000000000000000007ffffffffffffffffffffff +CT= d7fdd1e21e7284aab3caae27f4c3ac2e +TEST= 92 +KEY= 00000000000000000000000000000000000000000fffffffffffffffffffffff +CT= 59279905253bbe0390b6ee5f4d913035 +TEST= 93 +KEY= 00000000000000000000000000000000000000001fffffffffffffffffffffff +CT= 5939a3a8a64eb06498880eb69c06108a +TEST= 94 +KEY= 00000000000000000000000000000000000000003fffffffffffffffffffffff +CT= fbcce6048c4cbe51db5b792dec5f7fa4 +TEST= 95 +KEY= 00000000000000000000000000000000000000007fffffffffffffffffffffff +CT= 6e61dd46de31a0b83f441a175e5a68c5 +TEST= 96 +KEY= 0000000000000000000000000000000000000000ffffffffffffffffffffffff +CT= 517488ed7136e987df9900dc032cf104 +TEST= 97 +KEY= 0000000000000000000000000000000000000001ffffffffffffffffffffffff +CT= 75c590ae01382faa02f3fc94ac094c25 +TEST= 98 +KEY= 0000000000000000000000000000000000000003ffffffffffffffffffffffff +CT= 7add6d12d7e627f64341fa7cc8f9d1bd +TEST= 99 +KEY= 0000000000000000000000000000000000000007ffffffffffffffffffffffff +CT= f5debd1f635e9bc7fea99c5b5cc4a23f +TEST= 100 +KEY= 000000000000000000000000000000000000000fffffffffffffffffffffffff +CT= cf63aefa7f89f106dd941e9e439e4882 +TEST= 101 +KEY= 000000000000000000000000000000000000001fffffffffffffffffffffffff +CT= 007d5db50703e395b7f0319bd47bced0 +TEST= 102 +KEY= 000000000000000000000000000000000000003fffffffffffffffffffffffff +CT= b30da57079a61f274ea7bad1a1f968f9 +TEST= 103 +KEY= 000000000000000000000000000000000000007fffffffffffffffffffffffff +CT= 2861cea007f459e060ec30a35bf77f3e +TEST= 104 +KEY= 00000000000000000000000000000000000000ffffffffffffffffffffffffff +CT= 76ea45daa3ac5419f94c083df1f6eed6 +TEST= 105 +KEY= 00000000000000000000000000000000000001ffffffffffffffffffffffffff +CT= f763116ab6713769978256008da81f21 +TEST= 106 +KEY= 00000000000000000000000000000000000003ffffffffffffffffffffffffff +CT= 0ab5cc550c106a3893269ea47faa55b5 +TEST= 107 +KEY= 00000000000000000000000000000000000007ffffffffffffffffffffffffff +CT= d6721c1e6eb846a73c74dd218e983e68 +TEST= 108 +KEY= 0000000000000000000000000000000000000fffffffffffffffffffffffffff +CT= 695cb975fce7307b7b66a834532886e0 +TEST= 109 +KEY= 0000000000000000000000000000000000001fffffffffffffffffffffffffff +CT= 2b208ab1ee6448d185e487ccd48e6e21 +TEST= 110 +KEY= 0000000000000000000000000000000000003fffffffffffffffffffffffffff +CT= fb83cf7f34b08873c8d69d261055e20b +TEST= 111 +KEY= 0000000000000000000000000000000000007fffffffffffffffffffffffffff +CT= b5028a49edef6b356c3a650e2cb9e8ec +TEST= 112 +KEY= 000000000000000000000000000000000000ffffffffffffffffffffffffffff +CT= 95334335ed4c4a760562ae7d2a495632 +TEST= 113 +KEY= 000000000000000000000000000000000001ffffffffffffffffffffffffffff +CT= 6a462fa7c99e2f712c68589060ba5ea8 +TEST= 114 +KEY= 000000000000000000000000000000000003ffffffffffffffffffffffffffff +CT= a6d665b7058a2afb5d8733f68cd5a3ad +TEST= 115 +KEY= 000000000000000000000000000000000007ffffffffffffffffffffffffffff +CT= e83ca68a268587bced34cb8c7921295e +TEST= 116 +KEY= 00000000000000000000000000000000000fffffffffffffffffffffffffffff +CT= b071d09822e2057cf9340dd7cab746e1 +TEST= 117 +KEY= 00000000000000000000000000000000001fffffffffffffffffffffffffffff +CT= 56b2e0652b99419a4ee106208d93dcfe +TEST= 118 +KEY= 00000000000000000000000000000000003fffffffffffffffffffffffffffff +CT= 007124f92a4d45b728573441e9f9056e +TEST= 119 +KEY= 00000000000000000000000000000000007fffffffffffffffffffffffffffff +CT= 16793534f4253cbc98b5566034922535 +TEST= 120 +KEY= 0000000000000000000000000000000000ffffffffffffffffffffffffffffff +CT= 52ef58a3745fb284b5dc0d3b1461e83f +TEST= 121 +KEY= 0000000000000000000000000000000001ffffffffffffffffffffffffffffff +CT= 5d0437caa6e87e7edaaef69b9f2a939c +TEST= 122 +KEY= 0000000000000000000000000000000003ffffffffffffffffffffffffffffff +CT= 6b0fcfd7c7a9f906612bd19d56a5eb92 +TEST= 123 +KEY= 0000000000000000000000000000000007ffffffffffffffffffffffffffffff +CT= 1b70f1055cd41e7b4baaf811d1dc2107 +TEST= 124 +KEY= 000000000000000000000000000000000fffffffffffffffffffffffffffffff +CT= 44af7f02410db127a4df787fc95dbeba +TEST= 125 +KEY= 000000000000000000000000000000001fffffffffffffffffffffffffffffff +CT= 4e257c57d75263d0f8e332a840eb5d91 +TEST= 126 +KEY= 000000000000000000000000000000003fffffffffffffffffffffffffffffff +CT= 5bf2a1b829ac2b77694ba7e9cd5fe696 +TEST= 127 +KEY= 000000000000000000000000000000007fffffffffffffffffffffffffffffff +CT= 16bde095575a3fce86d6a2048efdfda5 +TEST= 128 +KEY= 00000000000000000000000000000000ffffffffffffffffffffffffffffffff +CT= 3eba4327813f079e4e35ff0f96294c45 +TEST= 129 +KEY= 00000000000000000000000000000001ffffffffffffffffffffffffffffffff +CT= 8e44354ada179283f48a9a823ed12dde +TEST= 130 +KEY= 00000000000000000000000000000003ffffffffffffffffffffffffffffffff +CT= 947c7bf988d6c4337a287fd07e315eb6 +TEST= 131 +KEY= 00000000000000000000000000000007ffffffffffffffffffffffffffffffff +CT= 8f40a2be60fc9199c33107784cd8680a +TEST= 132 +KEY= 0000000000000000000000000000000fffffffffffffffffffffffffffffffff +CT= 24d8df70bc270b725a061ffbae9908aa +TEST= 133 +KEY= 0000000000000000000000000000001fffffffffffffffffffffffffffffffff +CT= 75bb95c01ee27cfa20942a3248bf2c15 +TEST= 134 +KEY= 0000000000000000000000000000003fffffffffffffffffffffffffffffffff +CT= 6dd74f7f74ebfcbe2ea9003eea9dc895 +TEST= 135 +KEY= 0000000000000000000000000000007fffffffffffffffffffffffffffffffff +CT= e7ba9be6d67eb735faab4e51c42c358a +TEST= 136 +KEY= 000000000000000000000000000000ffffffffffffffffffffffffffffffffff +CT= 31f9d4202468e6bf9ae926396c09d75d +TEST= 137 +KEY= 000000000000000000000000000001ffffffffffffffffffffffffffffffffff +CT= c8021f0215b26d90a9957381134db197 +TEST= 138 +KEY= 000000000000000000000000000003ffffffffffffffffffffffffffffffffff +CT= 57a95c3742317d577d00653f90a57214 +TEST= 139 +KEY= 000000000000000000000000000007ffffffffffffffffffffffffffffffffff +CT= 0d2d79b82fa7b36ee766c1ffd9b61610 +TEST= 140 +KEY= 00000000000000000000000000000fffffffffffffffffffffffffffffffffff +CT= e571bc3cc6b85ace8d9b4d1136d962d7 +TEST= 141 +KEY= 00000000000000000000000000001fffffffffffffffffffffffffffffffffff +CT= ffa28032523f41d01de868f5545188bf +TEST= 142 +KEY= 00000000000000000000000000003fffffffffffffffffffffffffffffffffff +CT= 2734d5d8c9ad438077f9308a8de9d544 +TEST= 143 +KEY= 00000000000000000000000000007fffffffffffffffffffffffffffffffffff +CT= 99d9f28f5127ea200c9de6d5c8d0fc1c +TEST= 144 +KEY= 0000000000000000000000000000ffffffffffffffffffffffffffffffffffff +CT= 0fdca399ded08ed42b085da22d93326d +TEST= 145 +KEY= 0000000000000000000000000001ffffffffffffffffffffffffffffffffffff +CT= 3f30ddd5a713d5d8ab216a8b4d7d52a4 +TEST= 146 +KEY= 0000000000000000000000000003ffffffffffffffffffffffffffffffffffff +CT= c3d85f4ea35417559b1407d39c149fc7 +TEST= 147 +KEY= 0000000000000000000000000007ffffffffffffffffffffffffffffffffffff +CT= e3d276628c8cf02c42ad2d758de155ce +TEST= 148 +KEY= 000000000000000000000000000fffffffffffffffffffffffffffffffffffff +CT= b84399d6053263e6472304e26f5e0ec7 +TEST= 149 +KEY= 000000000000000000000000001fffffffffffffffffffffffffffffffffffff +CT= 6e20742b02838468dd51e5a3a7f2b8ba +TEST= 150 +KEY= 000000000000000000000000003fffffffffffffffffffffffffffffffffffff +CT= 9a9dbab97ca1f7a2da7f965ee1dfb4e6 +TEST= 151 +KEY= 000000000000000000000000007fffffffffffffffffffffffffffffffffffff +CT= 41aacaa89e1399a108a80716fd0e0f55 +TEST= 152 +KEY= 00000000000000000000000000ffffffffffffffffffffffffffffffffffffff +CT= 582be6d22c815bc81fde4c0d234d626a +TEST= 153 +KEY= 00000000000000000000000001ffffffffffffffffffffffffffffffffffffff +CT= 4499f256fe699e5e994d887be48fe2ec +TEST= 154 +KEY= 00000000000000000000000003ffffffffffffffffffffffffffffffffffffff +CT= ee26c00ac7b5df7bfe5e3a07df721147 +TEST= 155 +KEY= 00000000000000000000000007ffffffffffffffffffffffffffffffffffffff +CT= 8b8f6e74e2f3f90647d0fd8bb9bebad4 +TEST= 156 +KEY= 0000000000000000000000000fffffffffffffffffffffffffffffffffffffff +CT= 863784b8bedd5e5136653c117640cf73 +TEST= 157 +KEY= 0000000000000000000000001fffffffffffffffffffffffffffffffffffffff +CT= 649734b5a45c46804993680b7430ee16 +TEST= 158 +KEY= 0000000000000000000000003fffffffffffffffffffffffffffffffffffffff +CT= 4300c7495e4f60051bf81b41efd60937 +TEST= 159 +KEY= 0000000000000000000000007fffffffffffffffffffffffffffffffffffffff +CT= 175c302f8c69865e4b29998654d7df56 +TEST= 160 +KEY= 000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +CT= 7fa83d9963562b275db0b9f8a2741abf +TEST= 161 +KEY= 000000000000000000000001ffffffffffffffffffffffffffffffffffffffff +CT= dff04cd44b1770cdc3dfd13076cdd20d +TEST= 162 +KEY= 000000000000000000000003ffffffffffffffffffffffffffffffffffffffff +CT= 576bd4bad89d83bd47543b49d43bfbac +TEST= 163 +KEY= 000000000000000000000007ffffffffffffffffffffffffffffffffffffffff +CT= d38e87363016d48279fa8a8f89514ec2 +TEST= 164 +KEY= 00000000000000000000000fffffffffffffffffffffffffffffffffffffffff +CT= 48a1b62e83e17d43f94367380efe6d3c +TEST= 165 +KEY= 00000000000000000000001fffffffffffffffffffffffffffffffffffffffff +CT= c1bb7aefd3613e4e54fbc55263089094 +TEST= 166 +KEY= 00000000000000000000003fffffffffffffffffffffffffffffffffffffffff +CT= b2f12fd11d9fc28942e293cafd564697 +TEST= 167 +KEY= 00000000000000000000007fffffffffffffffffffffffffffffffffffffffff +CT= 9f7d86077298836c7a051cdcdc01b0a3 +TEST= 168 +KEY= 0000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +CT= 837980614116768f301d4eaf74c8f61c +TEST= 169 +KEY= 0000000000000000000001ffffffffffffffffffffffffffffffffffffffffff +CT= bebe2da4f22916c758713300653954f2 +TEST= 170 +KEY= 0000000000000000000003ffffffffffffffffffffffffffffffffffffffffff +CT= a854fef10367e2717f0c1477c276ba51 +TEST= 171 +KEY= 0000000000000000000007ffffffffffffffffffffffffffffffffffffffffff +CT= 8062587d0399c57034691b224b7458f9 +TEST= 172 +KEY= 000000000000000000000fffffffffffffffffffffffffffffffffffffffffff +CT= 6eff435d904f9331194a9390aab9bbc6 +TEST= 173 +KEY= 000000000000000000001fffffffffffffffffffffffffffffffffffffffffff +CT= 51cca7c89eb5cf85513f4d4cc012367d +TEST= 174 +KEY= 000000000000000000003fffffffffffffffffffffffffffffffffffffffffff +CT= 7266ab510d9fba7ef7f5b091771ce3b6 +TEST= 175 +KEY= 000000000000000000007fffffffffffffffffffffffffffffffffffffffffff +CT= a7fea44379f62e4c084762cf57fcff2e +TEST= 176 +KEY= 00000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +CT= cfe5b834dc50762e7f664736fe01314c +TEST= 177 +KEY= 00000000000000000001ffffffffffffffffffffffffffffffffffffffffffff +CT= b161bcc5b60fdee9f42f01ad7cb577cc +TEST= 178 +KEY= 00000000000000000003ffffffffffffffffffffffffffffffffffffffffffff +CT= 619203acd2578302f9fd58878bb7e6e9 +TEST= 179 +KEY= 00000000000000000007ffffffffffffffffffffffffffffffffffffffffffff +CT= 3b8c4d30824b1c30b654982f3b11c690 +TEST= 180 +KEY= 0000000000000000000fffffffffffffffffffffffffffffffffffffffffffff +CT= ca5f8704dffde917707fbee0e6d47d91 +TEST= 181 +KEY= 0000000000000000001fffffffffffffffffffffffffffffffffffffffffffff +CT= e47af77c9156d7b189d60302bba2abc7 +TEST= 182 +KEY= 0000000000000000003fffffffffffffffffffffffffffffffffffffffffffff +CT= 672728b55b4987f66df36174c601ee79 +TEST= 183 +KEY= 0000000000000000007fffffffffffffffffffffffffffffffffffffffffffff +CT= ecf4ad0de7dc2b747cd6bd672661cf20 +TEST= 184 +KEY= 000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +CT= 90ec729bd49587be52d69a48d2101241 +TEST= 185 +KEY= 000000000000000001ffffffffffffffffffffffffffffffffffffffffffffff +CT= 3f47dd56e94bdcc88fc15f92680fae2b +TEST= 186 +KEY= 000000000000000003ffffffffffffffffffffffffffffffffffffffffffffff +CT= 8a2db427a64ffd3d4a1351c2926f6c88 +TEST= 187 +KEY= 000000000000000007ffffffffffffffffffffffffffffffffffffffffffffff +CT= fbb09231e2d67b2292c4aad76eba7f24 +TEST= 188 +KEY= 00000000000000000fffffffffffffffffffffffffffffffffffffffffffffff +CT= dbc986b4365cb5de13e66e8b61f2b7a7 +TEST= 189 +KEY= 00000000000000001fffffffffffffffffffffffffffffffffffffffffffffff +CT= d8bb9b81c245521987e35293c8dc1c5b +TEST= 190 +KEY= 00000000000000003fffffffffffffffffffffffffffffffffffffffffffffff +CT= 2f8abe972cbef8e44333f6fc7b546b47 +TEST= 191 +KEY= 00000000000000007fffffffffffffffffffffffffffffffffffffffffffffff +CT= c4f400720ac847b949efbb88465c4a03 +TEST= 192 +KEY= 0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +CT= 13af71f5b184afa7a6b2076fda139c3e +TEST= 193 +KEY= 0000000000000001ffffffffffffffffffffffffffffffffffffffffffffffff +CT= 343f57ab0bcaf1d0a6da2a4bb8548eb3 +TEST= 194 +KEY= 0000000000000003ffffffffffffffffffffffffffffffffffffffffffffffff +CT= 186664c6155d822512d9ee6235fe8ae6 +TEST= 195 +KEY= 0000000000000007ffffffffffffffffffffffffffffffffffffffffffffffff +CT= 84cb0d12ca2606e32d74352e70b46eb4 +TEST= 196 +KEY= 000000000000000fffffffffffffffffffffffffffffffffffffffffffffffff +CT= 1b4a2fce431cc884592074df060a8e3a +TEST= 197 +KEY= 000000000000001fffffffffffffffffffffffffffffffffffffffffffffffff +CT= 6a03c8a609c994bf05968eee7a92352f +TEST= 198 +KEY= 000000000000003fffffffffffffffffffffffffffffffffffffffffffffffff +CT= 886b0ebef192f7822f761e3638ee4cf8 +TEST= 199 +KEY= 000000000000007fffffffffffffffffffffffffffffffffffffffffffffffff +CT= 855afdfa6f111b1307e6aefd2ca99cf7 +TEST= 200 +KEY= 00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 30038bd599a496cfd937de42958fec6d +TEST= 201 +KEY= 00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffff +CT= bf2de78771bbc0612c5b124b05b0c91a +TEST= 202 +KEY= 00000000000003ffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 51d5ad97f39309054b7f3a3d3c4a5fcd +TEST= 203 +KEY= 00000000000007ffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 05c656dbd95072ca76c837eca96b7be7 +TEST= 204 +KEY= 0000000000000fffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 19c4955ce3fbb5d075309f4236c95d40 +TEST= 205 +KEY= 0000000000001fffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 3e82296fc30beae5bfc99dc34d098bd1 +TEST= 206 +KEY= 0000000000003fffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 946792d61dc8f87428316dd660acb0d7 +TEST= 207 +KEY= 0000000000007fffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 23877a45e455d3583850765e02e74f85 +TEST= 208 +KEY= 000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= a78b350037a786ea1dccb496695c4853 +TEST= 209 +KEY= 000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 07a773a8e323e590728d8d908a70bb9c +TEST= 210 +KEY= 000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= bc916f318e1616cef19b497f5fd57e70 +TEST= 211 +KEY= 000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 4955b47dc1bdb73bf4ff96d6b2ca9b60 +TEST= 212 +KEY= 00000000000fffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 301db4ae59999c76d1dafeec928bb274 +TEST= 213 +KEY= 00000000001fffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 1ae328b4d92d60cb4ac726ba7882dbae +TEST= 214 +KEY= 00000000003fffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= baafaebb3c980d05b72abee6756e80cd +TEST= 215 +KEY= 00000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 1dd5d46789807814a37f1d9bdcf1f1f0 +TEST= 216 +KEY= 0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 29258975ad47bb2fef85792c6edba0cf +TEST= 217 +KEY= 0000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 6ba3d4297e1c46611c91a4bd5f469c16 +TEST= 218 +KEY= 0000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= db3db8c9e6dfb466554180bfaafbd7d5 +TEST= 219 +KEY= 0000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= dbe0f4c8a53653227f9420f3c8a4217e +TEST= 220 +KEY= 000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 0a68a6d3efed7b6602bdba3affd12679 +TEST= 221 +KEY= 000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 83164657104e46ed285f929f880b4d94 +TEST= 222 +KEY= 000000003fffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 24766eda3ac0abe8ecd3f578c1dcdb54 +TEST= 223 +KEY= 000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= d871b41c3cd1b8977242dc4846bfacfc +TEST= 224 +KEY= 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 7b41c82f493c0fa5f5d55ea270f9863c +TEST= 225 +KEY= 00000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 79ac40e48b1f044e89c2f2e444447a78 +TEST= 226 +KEY= 00000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 71b289b6ccd0975244b291b0afad7883 +TEST= 227 +KEY= 00000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 0212b97d6105467fcc606575d17f1065 +TEST= 228 +KEY= 0000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 2eb35611fb7c76778b0f54cb0cc2934d +TEST= 229 +KEY= 0000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= a7dee1c4fe0755ba889cf3fd1c65205c +TEST= 230 +KEY= 0000003fffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 621116bdeeae44ae2eecb08fce1e108a +TEST= 231 +KEY= 0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 29a1db0e72a771eb8c6361a17d6e6dbf +TEST= 232 +KEY= 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 36fffa85f3963cf01f3297f4eefe14a1 +TEST= 233 +KEY= 000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= c45dc9405cf61864d9fb65e864130009 +TEST= 234 +KEY= 000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= ae9a1eb242eee920e539d8ce1fc96286 +TEST= 235 +KEY= 000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 99861099327a2b7170db096990c90453 +TEST= 236 +KEY= 00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= d33639cd1a110d75cc8394e0a09be96a +TEST= 237 +KEY= 00001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 775fda0219add7cf975e38ba170e7d7b +TEST= 238 +KEY= 00003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 70ce9897f99712185af3f0ba84a726ff +TEST= 239 +KEY= 00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= a3d47fb6583f8a2f889bb79509731ec7 +TEST= 240 +KEY= 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= c4bad4e26e43d7c4af234278dc537528 +TEST= 241 +KEY= 0001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 920d830bce23565df19eaae4bd57310a +TEST= 242 +KEY= 0003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 3a39c43e83b54f61abe4383c96db3cc6 +TEST= 243 +KEY= 0007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 1d020ad19fba8d96a65bba16fbb42e17 +TEST= 244 +KEY= 000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 141ac0c97479d9e2102a9aabc127ee63 +TEST= 245 +KEY= 001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 7d3af45ccefc698808fb285ac595d491 +TEST= 246 +KEY= 003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= f9721f2d5f0a842aa66015d4ed6ca4b8 +TEST= 247 +KEY= 007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 3375396341b19ef7d59035e77d04157c +TEST= 248 +KEY= 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= b82a29ff80dc7924f3bc74033b567241 +TEST= 249 +KEY= 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 89cd4f3a1ff80a6f5f21619b12d8ceb7 +TEST= 250 +KEY= 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 2ac0fd06ad5d60a45ef4b185eb2116d3 +TEST= 251 +KEY= 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= a84ecd3feb87562d3837c1bd82f4a9a9 +TEST= 252 +KEY= 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 6863d07b1b6cbf078a5a95ab10e4142f +TEST= 253 +KEY= 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 3b4c71bd036bc069e5dd13c38a3004a9 +TEST= 254 +KEY= 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= cc0a818a631d407ab7ec415276719e31 +TEST= 255 +KEY= 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 69053f64996ad8b4e82d996847de458b +TEST= 256 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 4bf85f1b5d54adbc307b0a048389adcb +TEST= 257 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe +CT= b07d4f3e2cd2ef2eb545980754dfea0f +TEST= 258 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc +CT= 27936bd27fb1468fc8b48bc483321725 +TEST= 259 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8 +CT= 1f8a8133aa8ccf70e2bd3285831ca6b7 +TEST= 260 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0 +CT= 03720371a04962eaea0a852e69972858 +TEST= 261 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 +CT= cf78618f74f6f3696e0a4779b90b5a77 +TEST= 262 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0 +CT= 7b03627611678a997717578807a800e2 +TEST= 263 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80 +CT= 2f005a8aed8a361c92e440c15520cbd1 +TEST= 264 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +CT= 60eb5af8416b257149372194e8b88749 +TEST= 265 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00 +CT= 5b40ff4ec9be536ba23035fa4f06064c +TEST= 266 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00 +CT= cca7c3086f5f9511b31233da7cab9160 +TEST= 267 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800 +CT= 8b378c86672aa54a3a266ba19d2580ca +TEST= 268 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000 +CT= 9338f08e0ebee96905d8f2e825208f43 +TEST= 269 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000 +CT= 50e6d3c9b6698a7cd276f96b1473f35a +TEST= 270 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000 +CT= d94b5e90db354c1e42f61fabe167b2c0 +TEST= 271 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000 +CT= a8a39a0f5663f4c0fe5f2d3cafff421a +TEST= 272 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +CT= 563531135e0c4d70a38f8bdb190ba04e +TEST= 273 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000 +CT= d2e0c7f15b4772467d2cfc873000b2ca +TEST= 274 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000 +CT= 52fc3e620492ea99641ea168da5b6d52 +TEST= 275 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000 +CT= 3a0a0e75a8da36735aee6684d965a778 +TEST= 276 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000 +CT= d3a204dbd9c2af158b6ca67a5156ce4a +TEST= 277 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000 +CT= 2fdea9e650532be5bc0e7325337fd363 +TEST= 278 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000 +CT= d1ac39bb1ef86b9c1344f214679aa376 +TEST= 279 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 +CT= da797713263d6f33a5478a65ef60d412 +TEST= 280 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +CT= 3194367a4898c502c13bb7478640a72d +TEST= 281 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000 +CT= ba9ebefdb4ccf30f296cecb3bc1943e8 +TEST= 282 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000000 +CT= e74a4c999b4c064e48bb1e413f51e5ea +TEST= 283 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000 +CT= ea7bd6bb63418731aeac790fe42d61e8 +TEST= 284 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000 +CT= 37f655536a704e5ace182d742a820cf4 +TEST= 285 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000 +CT= 3f58c950f0367160adec45f2441e7411 +TEST= 286 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000 +CT= 294b033df4da853f4be3e243f7e513f4 +TEST= 287 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000 +CT= 234b148b8cb1d8c32b287e896903d150 +TEST= 288 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +CT= 70bed8dbf615868a1f9d9b05d3e7a267 +TEST= 289 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000 +CT= 1e38e759075ba5cab6457da51844295a +TEST= 290 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000 +CT= 02dc99fa3d4f98ce80985e7233889313 +TEST= 291 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffff800000000 +CT= 7379f3370cf6e5ce12ae5969c8eea312 +TEST= 292 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000 +CT= 96877803de77744bb970d0a91f4debae +TEST= 293 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000 +CT= 2fbb83dfd0d7abcb05cd28cad2dfb523 +TEST= 294 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffc000000000 +CT= 9c94b8b0cb8bcc919072262b3fa05ad9 +TEST= 295 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000 +CT= 70377b6da669b072129e057cc28e9ca5 +TEST= 296 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +CT= 26b549c2ec756f82ecc48008e529956b +TEST= 297 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000 +CT= 1ee6ee326583a0586491c96418d1a35d +TEST= 298 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000 +CT= 97e8adf65638fd9cdf3bc22c17fe4dbd +TEST= 299 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000 +CT= 5bf0051893a18bb30e139a58fed0fa54 +TEST= 300 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000 +CT= 7a15aab82701efa5ae36ab1d6b76290f +TEST= 301 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000 +CT= 4327d08c523d8eba697a4336507d1f42 +TEST= 302 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000000 +CT= 4fc0d230f8891415b87b83f95f2e09d1 +TEST= 303 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffff800000000000 +CT= a085d7c1a500873a20099c4caa3c3f5b +TEST= 304 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +CT= 69cd0606e15af729d6bca143016d9842 +TEST= 305 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000 +CT= 1f56413c7add6f43d1d56e4f02190330 +TEST= 306 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffc000000000000 +CT= 2e2e647d5360e09230a5d738ca33471e +TEST= 307 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000 +CT= 6702990727aa0878637b45dcd3a3b074 +TEST= 308 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000 +CT= e9f80e9d845bcc0f62926af72eabca39 +TEST= 309 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000 +CT= c267ef0e2d01a993944dd397101413cb +TEST= 310 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000000 +CT= 6eda7ff6b8319180ff0d6e65629d01c3 +TEST= 311 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000 +CT= 8a772231c01dfdd7c98e4cfddcc0807a +TEST= 312 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +CT= 35e9eddbc375e792c19992c19165012b +TEST= 313 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000 +CT= 1dcd8bb173259eb33a5242b0de31a455 +TEST= 314 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffc00000000000000 +CT= 84ecacfcd400084d078612b1945f2ef5 +TEST= 315 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffff800000000000000 +CT= 193a3d24157a51f1ee0893f6777417e7 +TEST= 316 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000 +CT= 023e82b533f68c75c238cebdb2ee89a2 +TEST= 317 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000 +CT= d64424f23cb97215e9c2c6f28d29eab7 +TEST= 318 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffc000000000000000 +CT= 804f32ea71828c7d329077e712231666 +TEST= 319 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000 +CT= 37232a4ed21ccc27c19c9610078cabac +TEST= 320 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +CT= 77565c8d73cfd4130b4aa14d8911710f +TEST= 321 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000 +CT= 516183392f7a8763afec68a060264141 +TEST= 322 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffc0000000000000000 +CT= d1415447866230d28bb1ea18a4cdfd02 +TEST= 323 +KEY= fffffffffffffffffffffffffffffffffffffffffffffff80000000000000000 +CT= 6168b00ba7859e0970ecfd757efecf7c +TEST= 324 +KEY= fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000 +CT= edf61ae362e882ddc0167474a7a77f3a +TEST= 325 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000 +CT= 330d8ee7c5677e099ac74c9994ee4cfb +TEST= 326 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffc00000000000000000 +CT= 2cacf728b88abbad7011ed0e64a1680c +TEST= 327 +KEY= ffffffffffffffffffffffffffffffffffffffffffffff800000000000000000 +CT= db826251e4ce384b80218b0e1da1dd4c +TEST= 328 +KEY= ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +CT= 0ddfe51ced7e3f4ae927daa3fe452cee +TEST= 329 +KEY= fffffffffffffffffffffffffffffffffffffffffffffe000000000000000000 +CT= 98551da1a6503276ae1c77625f9ea615 +TEST= 330 +KEY= fffffffffffffffffffffffffffffffffffffffffffffc000000000000000000 +CT= 72bc65aa8e89562e3f274d45af1cd10b +TEST= 331 +KEY= fffffffffffffffffffffffffffffffffffffffffffff8000000000000000000 +CT= 4570a5a18cfc0dd582f1d88d5c9a1720 +TEST= 332 +KEY= fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000 +CT= 6629d2b8df97da728cdd8b1e7f945077 +TEST= 333 +KEY= ffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000 +CT= ca6e8893a114ae8e27d5ab03a5499610 +TEST= 334 +KEY= ffffffffffffffffffffffffffffffffffffffffffffc0000000000000000000 +CT= db91a38855c8c4643851fbfb358b0109 +TEST= 335 +KEY= ffffffffffffffffffffffffffffffffffffffffffff80000000000000000000 +CT= bcc65b526f88d05b89ce8a52021fdb06 +TEST= 336 +KEY= ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 +CT= ca359c70803a3b2a3d542e8781dea975 +TEST= 337 +KEY= fffffffffffffffffffffffffffffffffffffffffffe00000000000000000000 +CT= c33bc13e8de88ac25232aa7496398783 +TEST= 338 +KEY= fffffffffffffffffffffffffffffffffffffffffffc00000000000000000000 +CT= 10dffb05904bff7c4781df780ad26837 +TEST= 339 +KEY= fffffffffffffffffffffffffffffffffffffffffff800000000000000000000 +CT= ede447b362c484993dec9442a3b46aef +TEST= 340 +KEY= fffffffffffffffffffffffffffffffffffffffffff000000000000000000000 +CT= fdd9bbb4a7dc2e4a23536a5880a2db67 +TEST= 341 +KEY= ffffffffffffffffffffffffffffffffffffffffffe000000000000000000000 +CT= ca0bf42cb107f55ccff2fc09ee08ca15 +TEST= 342 +KEY= ffffffffffffffffffffffffffffffffffffffffffc000000000000000000000 +CT= cb5a408657837c53bf16f9d8465dce19 +TEST= 343 +KEY= ffffffffffffffffffffffffffffffffffffffffff8000000000000000000000 +CT= cfd1875523f3cd21c395651e6ee15e56 +TEST= 344 +KEY= ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +CT= be288319029363c2622feba4b05dfdfe +TEST= 345 +KEY= fffffffffffffffffffffffffffffffffffffffffe0000000000000000000000 +CT= cc1445ee94c0f08cdee5c344ecd1e233 +TEST= 346 +KEY= fffffffffffffffffffffffffffffffffffffffffc0000000000000000000000 +CT= 866b5b3977ba6efa5128efbda9ff03cd +TEST= 347 +KEY= fffffffffffffffffffffffffffffffffffffffff80000000000000000000000 +CT= 332eee1a0cbd19ca2d69b426894044f0 +TEST= 348 +KEY= fffffffffffffffffffffffffffffffffffffffff00000000000000000000000 +CT= 347846b2b2e36f1f0324c86f7f1b98e2 +TEST= 349 +KEY= ffffffffffffffffffffffffffffffffffffffffe00000000000000000000000 +CT= 11c5413904487a805d70a8edd9c35527 +TEST= 350 +KEY= ffffffffffffffffffffffffffffffffffffffffc00000000000000000000000 +CT= feec7ce6a6cbd07c043416737f1bbb33 +TEST= 351 +KEY= ffffffffffffffffffffffffffffffffffffffff800000000000000000000000 +CT= 4960757ec6ce68cf195e454cfd0f32ca +TEST= 352 +KEY= ffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +CT= 93201481665cbafc1fcc220bc545fb3d +TEST= 353 +KEY= fffffffffffffffffffffffffffffffffffffffe000000000000000000000000 +CT= c102e38e489aa74762f3efc5bb23205a +TEST= 354 +KEY= fffffffffffffffffffffffffffffffffffffffc000000000000000000000000 +CT= c93bbdc07a4611ae4bb266ea5034a387 +TEST= 355 +KEY= fffffffffffffffffffffffffffffffffffffff8000000000000000000000000 +CT= 8c791d5fdddf470da04f3e6dc4a5b5b5 +TEST= 356 +KEY= fffffffffffffffffffffffffffffffffffffff0000000000000000000000000 +CT= fcfefb534100796eebbd990206754e19 +TEST= 357 +KEY= ffffffffffffffffffffffffffffffffffffffe0000000000000000000000000 +CT= 6cae8129f843d86dc786a0fb1a184970 +TEST= 358 +KEY= ffffffffffffffffffffffffffffffffffffffc0000000000000000000000000 +CT= ba77413dea5925b7f5417ea47ff19f59 +TEST= 359 +KEY= ffffffffffffffffffffffffffffffffffffff80000000000000000000000000 +CT= 72c9e4646dbc3d6320fc6689d93e8833 +TEST= 360 +KEY= ffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +CT= 33905080f7acf1cdae0a91fc3e85aee4 +TEST= 361 +KEY= fffffffffffffffffffffffffffffffffffffe00000000000000000000000000 +CT= 59836a0e06a79691b36667d5380d8188 +TEST= 362 +KEY= fffffffffffffffffffffffffffffffffffffc00000000000000000000000000 +CT= 238aca23fd3409f38af63378ed2f5473 +TEST= 363 +KEY= fffffffffffffffffffffffffffffffffffff800000000000000000000000000 +CT= ca352df025c65c7b0bf306fbee0f36ba +TEST= 364 +KEY= fffffffffffffffffffffffffffffffffffff000000000000000000000000000 +CT= d9a4c7618b0ce48a3d5aee1a1c0114c4 +TEST= 365 +KEY= ffffffffffffffffffffffffffffffffffffe000000000000000000000000000 +CT= dcf4e129136c1a4b7a0f38935cc34b2b +TEST= 366 +KEY= ffffffffffffffffffffffffffffffffffffc000000000000000000000000000 +CT= b4da5df4becb5462e03a0ed00d295629 +TEST= 367 +KEY= ffffffffffffffffffffffffffffffffffff8000000000000000000000000000 +CT= 45d089c36d5c5a4efc689e3b0de10dd5 +TEST= 368 +KEY= ffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +CT= d240d648ce21a3020282c3f1b528a0b6 +TEST= 369 +KEY= fffffffffffffffffffffffffffffffffffe0000000000000000000000000000 +CT= 5d942b7f4622ce056c3ce3ce5f1dd9d6 +TEST= 370 +KEY= fffffffffffffffffffffffffffffffffffc0000000000000000000000000000 +CT= cac8e414c2f388227ae14986fc983524 +TEST= 371 +KEY= fffffffffffffffffffffffffffffffffff80000000000000000000000000000 +CT= a9eec03c8abec7ba68315c2c8c2316e0 +TEST= 372 +KEY= fffffffffffffffffffffffffffffffffff00000000000000000000000000000 +CT= 7c85e9c95de1a9ec5a5363a8a053472d +TEST= 373 +KEY= ffffffffffffffffffffffffffffffffffe00000000000000000000000000000 +CT= 3967a10cffe27d0178545fbf6a40544b +TEST= 374 +KEY= ffffffffffffffffffffffffffffffffffc00000000000000000000000000000 +CT= c64c24b6894b038b3c0d09b1df068b0b +TEST= 375 +KEY= ffffffffffffffffffffffffffffffffff800000000000000000000000000000 +CT= bf8115805471741bd5ad20a03944790f +TEST= 376 +KEY= ffffffffffffffffffffffffffffffffff000000000000000000000000000000 +CT= ef1b384ac4d93eda00c92add0995ea5f +TEST= 377 +KEY= fffffffffffffffffffffffffffffffffe000000000000000000000000000000 +CT= 6c5d03b13069c3658b3179be91b0800c +TEST= 378 +KEY= fffffffffffffffffffffffffffffffffc000000000000000000000000000000 +CT= 8680db7f3a87b8605543cfdbe6754076 +TEST= 379 +KEY= fffffffffffffffffffffffffffffffff8000000000000000000000000000000 +CT= 6e668856539ad8e405bd123fe6c88530 +TEST= 380 +KEY= fffffffffffffffffffffffffffffffff0000000000000000000000000000000 +CT= c3498f7eced2095314fc28115885b33f +TEST= 381 +KEY= ffffffffffffffffffffffffffffffffe0000000000000000000000000000000 +CT= 5d454b75021d76d4b84f873a8f877b92 +TEST= 382 +KEY= ffffffffffffffffffffffffffffffffc0000000000000000000000000000000 +CT= d836b44bb29e0c7d89fa4b2d4b677d2a +TEST= 383 +KEY= ffffffffffffffffffffffffffffffff80000000000000000000000000000000 +CT= e3714e94a5778955cc0346358e94783a +TEST= 384 +KEY= ffffffffffffffffffffffffffffffff00000000000000000000000000000000 +CT= 6825a347ac479d4f9d95c5cb8d3fd7e9 +TEST= 385 +KEY= fffffffffffffffffffffffffffffffe00000000000000000000000000000000 +CT= b5f71d4dd9a71fe5d8bc8ba7e6ea3048 +TEST= 386 +KEY= fffffffffffffffffffffffffffffffc00000000000000000000000000000000 +CT= d62068444578e3ab39ce7ec95dd045dc +TEST= 387 +KEY= fffffffffffffffffffffffffffffff800000000000000000000000000000000 +CT= 27eefa80ce6a4a9d598e3fec365434d2 +TEST= 388 +KEY= fffffffffffffffffffffffffffffff000000000000000000000000000000000 +CT= 86f93d9ec08453a071e2e2877877a9c8 +TEST= 389 +KEY= ffffffffffffffffffffffffffffffe000000000000000000000000000000000 +CT= 9661cb2424d7d4a380d547f9e7ec1cb9 +TEST= 390 +KEY= ffffffffffffffffffffffffffffffc000000000000000000000000000000000 +CT= 8193c6ff85225ced4255e92f6e078a14 +TEST= 391 +KEY= ffffffffffffffffffffffffffffff8000000000000000000000000000000000 +CT= a866bc65b6941d86e8420a7ffb0964db +TEST= 392 +KEY= ffffffffffffffffffffffffffffff0000000000000000000000000000000000 +CT= 190843d29b25a3897c692ce1dd81ee52 +TEST= 393 +KEY= fffffffffffffffffffffffffffffe0000000000000000000000000000000000 +CT= f1f1c5a40899e15772857ccb65c7a09a +TEST= 394 +KEY= fffffffffffffffffffffffffffffc0000000000000000000000000000000000 +CT= 3a90c62d88b5c42809abf782488ed130 +TEST= 395 +KEY= fffffffffffffffffffffffffffff80000000000000000000000000000000000 +CT= 9aaec4fabbf6fae2a71feff02e372b39 +TEST= 396 +KEY= fffffffffffffffffffffffffffff00000000000000000000000000000000000 +CT= 10617d28b5e0f4605492b182a5d7f9f6 +TEST= 397 +KEY= ffffffffffffffffffffffffffffe00000000000000000000000000000000000 +CT= 87f53bf620d3677268445212904389d5 +TEST= 398 +KEY= ffffffffffffffffffffffffffffc00000000000000000000000000000000000 +CT= ba26d47da3aeb028de4fb5b3a854a24b +TEST= 399 +KEY= ffffffffffffffffffffffffffff800000000000000000000000000000000000 +CT= 3b6f46f40e0ac5fc0a9c1105f800f48d +TEST= 400 +KEY= ffffffffffffffffffffffffffff000000000000000000000000000000000000 +CT= cd5ece55b8da3bf622c4100df5de46f9 +TEST= 401 +KEY= fffffffffffffffffffffffffffe000000000000000000000000000000000000 +CT= 6c839dd58eeae6b8a36af48ed63d2dc9 +TEST= 402 +KEY= fffffffffffffffffffffffffffc000000000000000000000000000000000000 +CT= ce61d63514aded03d43e6ebfc3a9001f +TEST= 403 +KEY= fffffffffffffffffffffffffff8000000000000000000000000000000000000 +CT= 84a83d7b94c699cbcb8a7d9b61f64093 +TEST= 404 +KEY= fffffffffffffffffffffffffff0000000000000000000000000000000000000 +CT= 972bdd2e7c525130fadc8f76fc6f4b3f +TEST= 405 +KEY= ffffffffffffffffffffffffffe0000000000000000000000000000000000000 +CT= e3abc4939457422bb957da3c56938c6d +TEST= 406 +KEY= ffffffffffffffffffffffffffc0000000000000000000000000000000000000 +CT= a42734a3929bf84cf0116c9856a3c18c +TEST= 407 +KEY= ffffffffffffffffffffffffff80000000000000000000000000000000000000 +CT= 3d20253adbce3be2373767c4d822c566 +TEST= 408 +KEY= ffffffffffffffffffffffffff00000000000000000000000000000000000000 +CT= 33f7502390b8a4a221cfecd0666624ba +TEST= 409 +KEY= fffffffffffffffffffffffffe00000000000000000000000000000000000000 +CT= b588a302bdbc09197df1edae68926ed9 +TEST= 410 +KEY= fffffffffffffffffffffffffc00000000000000000000000000000000000000 +CT= 8d4595cb4fa7026715f55bd68e2882f9 +TEST= 411 +KEY= fffffffffffffffffffffffff800000000000000000000000000000000000000 +CT= 40b264e921e9e4a82694589ef3798262 +TEST= 412 +KEY= fffffffffffffffffffffffff000000000000000000000000000000000000000 +CT= 112078e9e11fbb78e26ffb8899e96b9a +TEST= 413 +KEY= ffffffffffffffffffffffffe000000000000000000000000000000000000000 +CT= 7606fa36d86473e6fb3a1bb0e2c0adf5 +TEST= 414 +KEY= ffffffffffffffffffffffffc000000000000000000000000000000000000000 +CT= 6693dc911662ae473216ba22189a511a +TEST= 415 +KEY= ffffffffffffffffffffffff8000000000000000000000000000000000000000 +CT= 266581af0dcfbed1585e0a242c64b8df +TEST= 416 +KEY= ffffffffffffffffffffffff0000000000000000000000000000000000000000 +CT= 0aeede5b91f721700e9e62edbf60b781 +TEST= 417 +KEY= fffffffffffffffffffffffe0000000000000000000000000000000000000000 +CT= 15c6becf0f4cec7129cbd22d1a79b1b8 +TEST= 418 +KEY= fffffffffffffffffffffffc0000000000000000000000000000000000000000 +CT= 0ebd7c30ed2016e08ba806ddb008bcc8 +TEST= 419 +KEY= fffffffffffffffffffffff80000000000000000000000000000000000000000 +CT= 40071eeab3f935dbc25d00841460260f +TEST= 420 +KEY= fffffffffffffffffffffff00000000000000000000000000000000000000000 +CT= 04bc3da2179c3015498b0e03910db5b8 +TEST= 421 +KEY= ffffffffffffffffffffffe00000000000000000000000000000000000000000 +CT= a858411ffbe63fdb9c8aa1bfaed67b52 +TEST= 422 +KEY= ffffffffffffffffffffffc00000000000000000000000000000000000000000 +CT= 684c9efc237e4a442965f84bce20247a +TEST= 423 +KEY= ffffffffffffffffffffff800000000000000000000000000000000000000000 +CT= dcca366a9bf47b7b868b77e25c18a364 +TEST= 424 +KEY= ffffffffffffffffffffff000000000000000000000000000000000000000000 +CT= 0791823a3c666bb6162825e78606a7fe +TEST= 425 +KEY= fffffffffffffffffffffe000000000000000000000000000000000000000000 +CT= e68ad5055a367041fade09d9a70a794b +TEST= 426 +KEY= fffffffffffffffffffffc000000000000000000000000000000000000000000 +CT= e86f7e23e835e114977f60e1a592202e +TEST= 427 +KEY= fffffffffffffffffffff8000000000000000000000000000000000000000000 +CT= ab0c8410aeeead92feec1eb430d652cb +TEST= 428 +KEY= fffffffffffffffffffff0000000000000000000000000000000000000000000 +CT= 4e6e627c1acc51340053a8236d579576 +TEST= 429 +KEY= ffffffffffffffffffffe0000000000000000000000000000000000000000000 +CT= 2e16873e1678610d7e14c02d002ea845 +TEST= 430 +KEY= ffffffffffffffffffffc0000000000000000000000000000000000000000000 +CT= ad4916f5ee5772be764fc027b8a6e539 +TEST= 431 +KEY= ffffffffffffffffffff80000000000000000000000000000000000000000000 +CT= fdcfac0c02ca538343c68117e0a15938 +TEST= 432 +KEY= ffffffffffffffffffff00000000000000000000000000000000000000000000 +CT= f33fa36720231afe4c759ade6bd62eb6 +TEST= 433 +KEY= fffffffffffffffffffe00000000000000000000000000000000000000000000 +CT= f97d57b3333b6281b07d486db2d4e20c +TEST= 434 +KEY= fffffffffffffffffffc00000000000000000000000000000000000000000000 +CT= ab980296197e1a5022326c31da4bf6f3 +TEST= 435 +KEY= fffffffffffffffffff800000000000000000000000000000000000000000000 +CT= a4af534a7d0b643a01868785d86dfb95 +TEST= 436 +KEY= fffffffffffffffffff000000000000000000000000000000000000000000000 +CT= 462ccd7f5fd1108dbc152f3cacad328b +TEST= 437 +KEY= ffffffffffffffffffe000000000000000000000000000000000000000000000 +CT= 2e70f168fc74bf911df240bcd2cef236 +TEST= 438 +KEY= ffffffffffffffffffc000000000000000000000000000000000000000000000 +CT= 9f0fdec08b7fd79aa39535bea42db92a +TEST= 439 +KEY= ffffffffffffffffff8000000000000000000000000000000000000000000000 +CT= eb040b891d4b37f6851f7ec219cd3f6d +TEST= 440 +KEY= ffffffffffffffffff0000000000000000000000000000000000000000000000 +CT= 4b3b9f1e099c2a09dc091e90e4f18f0a +TEST= 441 +KEY= fffffffffffffffffe0000000000000000000000000000000000000000000000 +CT= 97120166307119ca2280e9315668e96f +TEST= 442 +KEY= fffffffffffffffffc0000000000000000000000000000000000000000000000 +CT= c20a19fd5758b0c4bc1a5df89cf73877 +TEST= 443 +KEY= fffffffffffffffff80000000000000000000000000000000000000000000000 +CT= 9ff071b165b5198a93dddeebc54d09b5 +TEST= 444 +KEY= fffffffffffffffff00000000000000000000000000000000000000000000000 +CT= f51a0f694442b8f05571797fec7ee8bf +TEST= 445 +KEY= ffffffffffffffffe00000000000000000000000000000000000000000000000 +CT= 597a6252255e46d6364dbeeda31e279c +TEST= 446 +KEY= ffffffffffffffffc00000000000000000000000000000000000000000000000 +CT= e0f0a91b2e45f8cc37b7805a3042588d +TEST= 447 +KEY= ffffffffffffffff800000000000000000000000000000000000000000000000 +CT= 8f8fd822680a85974e53a5a8eb9d38de +TEST= 448 +KEY= ffffffffffffffff000000000000000000000000000000000000000000000000 +CT= 94efe7a0e2e031e2536da01df799c927 +TEST= 449 +KEY= fffffffffffffffe000000000000000000000000000000000000000000000000 +CT= d276c13a5d220f4da9224e74896391ce +TEST= 450 +KEY= fffffffffffffffc000000000000000000000000000000000000000000000000 +CT= ffb4e87a32b37d6f2c8328d3b5377802 +TEST= 451 +KEY= fffffffffffffff8000000000000000000000000000000000000000000000000 +CT= f8b9fffb5c187f7ddc7ab10f4fb77576 +TEST= 452 +KEY= fffffffffffffff0000000000000000000000000000000000000000000000000 +CT= 11825f99b0e9bb3477c1c0713b015aac +TEST= 453 +KEY= ffffffffffffffe0000000000000000000000000000000000000000000000000 +CT= d8c4b200b383fc1f2b2ea677618a1d27 +TEST= 454 +KEY= ffffffffffffffc0000000000000000000000000000000000000000000000000 +CT= 3e0cdadf2e68353c0027672c97144dd3 +TEST= 455 +KEY= ffffffffffffff80000000000000000000000000000000000000000000000000 +CT= 092fa137ce18b5dfe7906f550bb13370 +TEST= 456 +KEY= ffffffffffffff00000000000000000000000000000000000000000000000000 +CT= 4c022ac62b3cb78d739cc67b3e20bb7e +TEST= 457 +KEY= fffffffffffffe00000000000000000000000000000000000000000000000000 +CT= 77dd7702646d55f08365e477d3590eda +TEST= 458 +KEY= fffffffffffffc00000000000000000000000000000000000000000000000000 +CT= 31690b5ed41c7eb42a1e83270a7ff0e6 +TEST= 459 +KEY= fffffffffffff800000000000000000000000000000000000000000000000000 +CT= 3f84566df23da48af692722fe980573a +TEST= 460 +KEY= fffffffffffff000000000000000000000000000000000000000000000000000 +CT= 8aa9b75e784593876c53a00eae5af52b +TEST= 461 +KEY= ffffffffffffe000000000000000000000000000000000000000000000000000 +CT= a78463fb064db5d52bb64bfef64f2dda +TEST= 462 +KEY= ffffffffffffc000000000000000000000000000000000000000000000000000 +CT= 5e031cb9d676c3022d7f26227e85c38f +TEST= 463 +KEY= ffffffffffff8000000000000000000000000000000000000000000000000000 +CT= ae682c5ecd71898e08942ac9aa89875c +TEST= 464 +KEY= ffffffffffff0000000000000000000000000000000000000000000000000000 +CT= 225f068c28476605735ad671bb8f39f3 +TEST= 465 +KEY= fffffffffffe0000000000000000000000000000000000000000000000000000 +CT= 2937a64f7d4f46fe6fea3b349ec78e38 +TEST= 466 +KEY= fffffffffffc0000000000000000000000000000000000000000000000000000 +CT= 82bda118a3ed7af314fa2ccc5c07b761 +TEST= 467 +KEY= fffffffffff80000000000000000000000000000000000000000000000000000 +CT= 3dd5c34634a79d3cfcc8339760e6f5f4 +TEST= 468 +KEY= fffffffffff00000000000000000000000000000000000000000000000000000 +CT= 3c9db3335306fe1ec612bdbfae6b6028 +TEST= 469 +KEY= ffffffffffe00000000000000000000000000000000000000000000000000000 +CT= b5bb0f5629fb6aae5e1839a3c3625d63 +TEST= 470 +KEY= ffffffffffc00000000000000000000000000000000000000000000000000000 +CT= df31144f87a2ef523facdcf21a427804 +TEST= 471 +KEY= ffffffffff800000000000000000000000000000000000000000000000000000 +CT= be66cfea2fecd6bf0ec7b4352c99bcaa +TEST= 472 +KEY= ffffffffff000000000000000000000000000000000000000000000000000000 +CT= e0dcc2d27fc9865633f85223cf0d611f +TEST= 473 +KEY= fffffffffe000000000000000000000000000000000000000000000000000000 +CT= 077e9470ae7abea5a9769d49182628c3 +TEST= 474 +KEY= fffffffffc000000000000000000000000000000000000000000000000000000 +CT= f836f251ad1d11d49dc344628b1884e1 +TEST= 475 +KEY= fffffffff8000000000000000000000000000000000000000000000000000000 +CT= f2b21b4e7640a9b3346de8b82fb41e49 +TEST= 476 +KEY= fffffffff0000000000000000000000000000000000000000000000000000000 +CT= 6f6238d8966048d4967154e0dad5a6c9 +TEST= 477 +KEY= ffffffffe0000000000000000000000000000000000000000000000000000000 +CT= f85ca05fe528f1ce9b790166e8d551e7 +TEST= 478 +KEY= ffffffffc0000000000000000000000000000000000000000000000000000000 +CT= 2025c74b8ad8f4cda17ee2049c4c902d +TEST= 479 +KEY= ffffffff80000000000000000000000000000000000000000000000000000000 +CT= 33ac9eccc4cc75e2711618f80b1548e8 +TEST= 480 +KEY= ffffffff00000000000000000000000000000000000000000000000000000000 +CT= ad9fc613a703251b54c64a0e76431711 +TEST= 481 +KEY= fffffffe00000000000000000000000000000000000000000000000000000000 +CT= 829fd7208fb92d44a074a677ee9861ac +TEST= 482 +KEY= fffffffc00000000000000000000000000000000000000000000000000000000 +CT= fc4af7c948df26e2ef3e01c1ee5b8f6f +TEST= 483 +KEY= fffffff800000000000000000000000000000000000000000000000000000000 +CT= 5fd1f13fa0f31e37fabde328f894eac2 +TEST= 484 +KEY= fffffff000000000000000000000000000000000000000000000000000000000 +CT= 07058e408f5b99b0e0f061a1761b5b3b +TEST= 485 +KEY= ffffffe000000000000000000000000000000000000000000000000000000000 +CT= bbd1097a62433f79449fa97d4ee80dbf +TEST= 486 +KEY= ffffffc000000000000000000000000000000000000000000000000000000000 +CT= a190527d0ef7c70f459cd3940df316ec +TEST= 487 +KEY= ffffff8000000000000000000000000000000000000000000000000000000000 +CT= bd49295006250ffca5100b6007a0eade +TEST= 488 +KEY= ffffff0000000000000000000000000000000000000000000000000000000000 +CT= 2c75e2d36eebd65411f14fd0eb1d2a06 +TEST= 489 +KEY= fffffe0000000000000000000000000000000000000000000000000000000000 +CT= 6bcca98bf6a835fa64955f72de4115fe +TEST= 490 +KEY= fffffc0000000000000000000000000000000000000000000000000000000000 +CT= 85f2ba84f8c307cf525e124c3e22e6cc +TEST= 491 +KEY= fffff80000000000000000000000000000000000000000000000000000000000 +CT= 976e6f851ab52c771998dbb2d71c75a9 +TEST= 492 +KEY= fffff00000000000000000000000000000000000000000000000000000000000 +CT= 6e1b482b53761cf631819b749a6f3724 +TEST= 493 +KEY= ffffe00000000000000000000000000000000000000000000000000000000000 +CT= 633cafea395bc03adae3a1e2068e4b4e +TEST= 494 +KEY= ffffc00000000000000000000000000000000000000000000000000000000000 +CT= 27ef2495dabf323885aab39c80f18d8b +TEST= 495 +KEY= ffff800000000000000000000000000000000000000000000000000000000000 +CT= 610b71dfc688e150d8152c5b35ebc14d +TEST= 496 +KEY= ffff000000000000000000000000000000000000000000000000000000000000 +CT= 937ad84880db50613423d6d527a2823d +TEST= 497 +KEY= fffe000000000000000000000000000000000000000000000000000000000000 +CT= 1a4c1c263bbccfafc11782894685e3a8 +TEST= 498 +KEY= fffc000000000000000000000000000000000000000000000000000000000000 +CT= 4dcede8da9e2578f39703d4433dc6459 +TEST= 499 +KEY= fff8000000000000000000000000000000000000000000000000000000000000 +CT= dc43b51ab609052372989a26e9cdd714 +TEST= 500 +KEY= fff0000000000000000000000000000000000000000000000000000000000000 +CT= cc111f6c37cf40a1159d00fb59fb0488 +TEST= 501 +KEY= ffe0000000000000000000000000000000000000000000000000000000000000 +CT= d1ccb9b1337002cbac42c520b5d67722 +TEST= 502 +KEY= ffc0000000000000000000000000000000000000000000000000000000000000 +CT= a3f599d63a82a968c33fe26590745970 +TEST= 503 +KEY= ff80000000000000000000000000000000000000000000000000000000000000 +CT= f23e5b600eb70dbccf6c0b1d9a68182c +TEST= 504 +KEY= ff00000000000000000000000000000000000000000000000000000000000000 +CT= ec52a212f80a09df6317021bc2a9819e +TEST= 505 +KEY= fe00000000000000000000000000000000000000000000000000000000000000 +CT= 60e32246bed2b0e859e55c1cc6b26502 +TEST= 506 +KEY= fc00000000000000000000000000000000000000000000000000000000000000 +CT= 8fbb413703735326310a269bd3aa94b2 +TEST= 507 +KEY= f800000000000000000000000000000000000000000000000000000000000000 +CT= 9cf4893ecafa0a0247a898e040691559 +TEST= 508 +KEY= f000000000000000000000000000000000000000000000000000000000000000 +CT= 1c777679d50037c79491a94da76a9a35 +TEST= 509 +KEY= e000000000000000000000000000000000000000000000000000000000000000 +CT= d8f3a72fc3cdf74dfaf6c3e6b97b2fa6 +TEST= 510 +KEY= c000000000000000000000000000000000000000000000000000000000000000 +CT= b29169cdcf2d83e838125a12ee6aa400 +TEST= 511 +KEY= 8000000000000000000000000000000000000000000000000000000000000000 +CT= e35a6dcb19b201a01ebcfa8aa22b5759 diff --git a/src/regress/sys/crypto/aes/vectors/ecbnt44.txt b/src/regress/sys/crypto/aes/vectors/ecbnt44.txt new file mode 100644 index 000000000..088780474 --- /dev/null +++ b/src/regress/sys/crypto/aes/vectors/ecbnt44.txt @@ -0,0 +1,779 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Text Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbnt44.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 128 + +KEY= 00000000000000000000000000000000 +TEST= 0 +PT= 00000000000000000000000000000000 +CT= 66e94bd4ef8a2c3b884cfa59ca342b2e +TEST= 1 +PT= 00000000000000000000000000000001 +CT= 58e2fccefa7e3061367f1d57a4e7455a +TEST= 2 +PT= 00000000000000000000000000000003 +CT= f795aaab494b5923f7fd89ff948bc1e0 +TEST= 3 +PT= 00000000000000000000000000000007 +CT= 95b84d1b96c690ff2f2de30bf2ec89e0 +TEST= 4 +PT= 0000000000000000000000000000000f +CT= a73f8d0437e0915fbce5d7a62d8dab0a +TEST= 5 +PT= 0000000000000000000000000000001f +CT= 7941dd0a63d994703e63d94a44680421 +TEST= 6 +PT= 0000000000000000000000000000003f +CT= 5bca68deb6b692377c85f6515d2a33e1 +TEST= 7 +PT= 0000000000000000000000000000007f +CT= 349bf2ed99e8726cb1734349e5c5499a +TEST= 8 +PT= 000000000000000000000000000000ff +CT= f70ddef93ba62588242a0e67d0d645e0 +TEST= 9 +PT= 000000000000000000000000000001ff +CT= cf7512278cd5454f819d89ea35bb3862 +TEST= 10 +PT= 000000000000000000000000000003ff +CT= 09836c44648b1f262e7b8bb6310e3c73 +TEST= 11 +PT= 000000000000000000000000000007ff +CT= 7c3f20d829a78c00203702ef0b002db5 +TEST= 12 +PT= 00000000000000000000000000000fff +CT= 5b1243b00f14e74eb7536ccc09acfa68 +TEST= 13 +PT= 00000000000000000000000000001fff +CT= b3b90648b4f40f576a75ba0466db8863 +TEST= 14 +PT= 00000000000000000000000000003fff +CT= e4ee13764d015d68bf37d51f4af9f36b +TEST= 15 +PT= 00000000000000000000000000007fff +CT= 9f3bdc3ff6446ce6aa8e3b6c231596a3 +TEST= 16 +PT= 0000000000000000000000000000ffff +CT= 90d4af3471b958d79c38285110dfb453 +TEST= 17 +PT= 0000000000000000000000000001ffff +CT= ca829c5f3dc854939ddf3f0a4f852aed +TEST= 18 +PT= 0000000000000000000000000003ffff +CT= 28ea70f964ef188472078e5fadbf243c +TEST= 19 +PT= 0000000000000000000000000007ffff +CT= d1277ea8d373b8f80bec4923227435c4 +TEST= 20 +PT= 000000000000000000000000000fffff +CT= 2bcafbb6ce709c19be131bb8386bdd3b +TEST= 21 +PT= 000000000000000000000000001fffff +CT= 39fa40456ae73fe146de3e3a42039405 +TEST= 22 +PT= 000000000000000000000000003fffff +CT= baec66484967417c3bbe18a60de0b093 +TEST= 23 +PT= 000000000000000000000000007fffff +CT= 6796a439bb4a1a0745ed78ec8dea15c7 +TEST= 24 +PT= 00000000000000000000000000ffffff +CT= 6936f9fd2274b4a36463e329719b0174 +TEST= 25 +PT= 00000000000000000000000001ffffff +CT= 86290a5586bca091a762c5ff509a6167 +TEST= 26 +PT= 00000000000000000000000003ffffff +CT= 78e6abea95914abb9c8e526aafc09bc6 +TEST= 27 +PT= 00000000000000000000000007ffffff +CT= 983346ddc59459db4e6e2e8d5b2ac4ca +TEST= 28 +PT= 0000000000000000000000000fffffff +CT= 5d8f73bd76f371deaa46e98e7764ea8f +TEST= 29 +PT= 0000000000000000000000001fffffff +CT= 78eb3f556196e8efb02b6b1ac9c59fb2 +TEST= 30 +PT= 0000000000000000000000003fffffff +CT= 0e5eeb2e621ec0f45683a8d255dda84e +TEST= 31 +PT= 0000000000000000000000007fffffff +CT= 6c5746dd45b5846c6096ca8e8ade7f25 +TEST= 32 +PT= 000000000000000000000000ffffffff +CT= 28c16380c491088ca019f8a76853b1e8 +TEST= 33 +PT= 000000000000000000000001ffffffff +CT= c8b1afa8bfd9415b3c4764fc2301a445 +TEST= 34 +PT= 000000000000000000000003ffffffff +CT= 8e265ca8740c2dc8f8e8339bb0319d1e +TEST= 35 +PT= 000000000000000000000007ffffffff +CT= 4090d032397a3d4564218ac27e6dc4b6 +TEST= 36 +PT= 00000000000000000000000fffffffff +CT= 6e7b1e7d9dc86adc0e111aa174d7d568 +TEST= 37 +PT= 00000000000000000000001fffffffff +CT= cc4632e9ad075584b0dc8816e8f48e9b +TEST= 38 +PT= 00000000000000000000003fffffffff +CT= 99afdf4178e53a5de4173159abd8c479 +TEST= 39 +PT= 00000000000000000000007fffffffff +CT= fe5f51452842fd38c566ef536f950111 +TEST= 40 +PT= 0000000000000000000000ffffffffff +CT= 4d4c5f40e67449514e30639299d6f473 +TEST= 41 +PT= 0000000000000000000001ffffffffff +CT= 9bf52296fbb86ce06b35f0c610b28e5c +TEST= 42 +PT= 0000000000000000000003ffffffffff +CT= 8dd5d84df9b637c123d26114071e8799 +TEST= 43 +PT= 0000000000000000000007ffffffffff +CT= 09fdbba8739d1a9c386d1b74bfb674d2 +TEST= 44 +PT= 000000000000000000000fffffffffff +CT= fc2e827596e4c6c4df3e13fdb77db10e +TEST= 45 +PT= 000000000000000000001fffffffffff +CT= 0bcf5bde0c7fd3b87fec152a3c7d9a86 +TEST= 46 +PT= 000000000000000000003fffffffffff +CT= 15ab7d13a564d6bdbd2b337318912a24 +TEST= 47 +PT= 000000000000000000007fffffffffff +CT= 6f1039adc3f6a546989b1444efb629ab +TEST= 48 +PT= 00000000000000000000ffffffffffff +CT= 105df4d1e4b74dca12b3f38c4c3c0d9c +TEST= 49 +PT= 00000000000000000001ffffffffffff +CT= c27ca1f66b72ca93735be563adf2ddda +TEST= 50 +PT= 00000000000000000003ffffffffffff +CT= bc1a8411b68970e6c99bf42e4a40e976 +TEST= 51 +PT= 00000000000000000007ffffffffffff +CT= 40165c46ef23bc1c167a9ebbb5b166e3 +TEST= 52 +PT= 0000000000000000000fffffffffffff +CT= dd9b27fa45374d1c626874d9ca04eb0d +TEST= 53 +PT= 0000000000000000001fffffffffffff +CT= f2373d9f620496925b34e01194336a2f +TEST= 54 +PT= 0000000000000000003fffffffffffff +CT= b1564039bad539f373e4c4a97709a5b4 +TEST= 55 +PT= 0000000000000000007fffffffffffff +CT= 98dea09dffa792af98ac8d258c710870 +TEST= 56 +PT= 000000000000000000ffffffffffffff +CT= 9e1cd0f752de544bcc8a838b27a4b955 +TEST= 57 +PT= 000000000000000001ffffffffffffff +CT= 06d18f8542f0497d53dee00176f93616 +TEST= 58 +PT= 000000000000000003ffffffffffffff +CT= 690460ac223f65654cc522350d881765 +TEST= 59 +PT= 000000000000000007ffffffffffffff +CT= d6680b1c9abc752aba384fe234c7d583 +TEST= 60 +PT= 00000000000000000fffffffffffffff +CT= e7be712ee4a90b03e43823035eb0ca93 +TEST= 61 +PT= 00000000000000001fffffffffffffff +CT= da82d3f4234d748c8172dc0d17a6e038 +TEST= 62 +PT= 00000000000000003fffffffffffffff +CT= 236c49b713b1521f5e938b422c030f29 +TEST= 63 +PT= 00000000000000007fffffffffffffff +CT= c86bee15e569c0e78171bfa438890264 +TEST= 64 +PT= 0000000000000000ffffffffffffffff +CT= 747cb9267e59fa9e4e615668db0909bc +TEST= 65 +PT= 0000000000000001ffffffffffffffff +CT= 7add10f24e7245863c677d27e9f0fdb8 +TEST= 66 +PT= 0000000000000003ffffffffffffffff +CT= 72976df6935ec1c943d5759a33ccba84 +TEST= 67 +PT= 0000000000000007ffffffffffffffff +CT= 5bb3e19d6fce1b695d061941df6e4325 +TEST= 68 +PT= 000000000000000fffffffffffffffff +CT= 1a0a2db60ce1b3187a65949bfe7985f2 +TEST= 69 +PT= 000000000000001fffffffffffffffff +CT= 1bf6d1af28331174fa90e13636bc02bf +TEST= 70 +PT= 000000000000003fffffffffffffffff +CT= 2140bd0eb8df02b22c05cc3689690530 +TEST= 71 +PT= 000000000000007fffffffffffffffff +CT= 9aa4c6ea0b7cc9492c7ee12234def1a4 +TEST= 72 +PT= 00000000000000ffffffffffffffffff +CT= bc991755a129add0f3feeb8d94edda3d +TEST= 73 +PT= 00000000000001ffffffffffffffffff +CT= e0b6795bdd52dcdc3f6934685bbe326a +TEST= 74 +PT= 00000000000003ffffffffffffffffff +CT= b0c4121e0e63e1d0969ca70b0bfbe8d2 +TEST= 75 +PT= 00000000000007ffffffffffffffffff +CT= 32ebdad9131b68d3293b55aed87ffa16 +TEST= 76 +PT= 0000000000000fffffffffffffffffff +CT= 921c10a6f26bb519fe085c8f04c1b668 +TEST= 77 +PT= 0000000000001fffffffffffffffffff +CT= 58fc8beaae1b73bffe3e4c1614cc1cb7 +TEST= 78 +PT= 0000000000003fffffffffffffffffff +CT= 41d3699fe17781c4e9ad324fee5113af +TEST= 79 +PT= 0000000000007fffffffffffffffffff +CT= 24ab534dbc77d9505d9be59f8655de74 +TEST= 80 +PT= 000000000000ffffffffffffffffffff +CT= 23a77a7a04e5c3fe927cfc881837b622 +TEST= 81 +PT= 000000000001ffffffffffffffffffff +CT= cf85ae385c7ff1344b624a744969cdf4 +TEST= 82 +PT= 000000000003ffffffffffffffffffff +CT= c7111db57bb89abb2ebb2c2d5153e14c +TEST= 83 +PT= 000000000007ffffffffffffffffffff +CT= e5df6e02245a0be02383e2bbeba3f5b9 +TEST= 84 +PT= 00000000000fffffffffffffffffffff +CT= 9721e2f1eae9228362dcb1d8d6d67045 +TEST= 85 +PT= 00000000001fffffffffffffffffffff +CT= cfa84b287aa52de3fc37129f39fa826f +TEST= 86 +PT= 00000000003fffffffffffffffffffff +CT= 664b7441307ba9e1d8c8ccf93de514d0 +TEST= 87 +PT= 00000000007fffffffffffffffffffff +CT= 62d0ee00d428cb5dc3d4a2144fe2af6d +TEST= 88 +PT= 0000000000ffffffffffffffffffffff +CT= 9d7bc30466c376acd0c8ed9da8cdf8ca +TEST= 89 +PT= 0000000001ffffffffffffffffffffff +CT= c8fe3583c99f400cd252768ff72c79ef +TEST= 90 +PT= 0000000003ffffffffffffffffffffff +CT= 1300d6570e1622a42d033f1d60cb3524 +TEST= 91 +PT= 0000000007ffffffffffffffffffffff +CT= c4b7500f92605bc25e95f3a55f8e1c01 +TEST= 92 +PT= 000000000fffffffffffffffffffffff +CT= 6438a0528dc92c6c091a3d6b5915d9d4 +TEST= 93 +PT= 000000001fffffffffffffffffffffff +CT= 4c3cc0914e2fce6004e275726025ea1d +TEST= 94 +PT= 000000003fffffffffffffffffffffff +CT= e4e5b011312f9b915a1111f3dd5a50cd +TEST= 95 +PT= 000000007fffffffffffffffffffffff +CT= 7bb21b447853a94d54b8129b14402a36 +TEST= 96 +PT= 00000000ffffffffffffffffffffffff +CT= 4282e562f1b2beded056e4c582a278fc +TEST= 97 +PT= 00000001ffffffffffffffffffffffff +CT= 242c38975bfbc4eae1123e62d2ecd198 +TEST= 98 +PT= 00000003ffffffffffffffffffffffff +CT= 12cb3e844dbe4b517c62b20dbf518c89 +TEST= 99 +PT= 00000007ffffffffffffffffffffffff +CT= 6c6b3bfec90a2011fe4af8f2635ca388 +TEST= 100 +PT= 0000000fffffffffffffffffffffffff +CT= c90003b8b8e86ba81c5ab01e417f8c56 +TEST= 101 +PT= 0000001fffffffffffffffffffffffff +CT= 3b55fde647001591c20b13bad65202a9 +TEST= 102 +PT= 0000003fffffffffffffffffffffffff +CT= ec0fa4bcac5b09244326f344cd14e45d +TEST= 103 +PT= 0000007fffffffffffffffffffffffff +CT= f0c5e5ab99d309f21e2364c74b9a8c10 +TEST= 104 +PT= 000000ffffffffffffffffffffffffff +CT= 4c5016e8afa51df539df6500929bdeb5 +TEST= 105 +PT= 000001ffffffffffffffffffffffffff +CT= aa55dab3242ab4dc6ec1c1973069e289 +TEST= 106 +PT= 000003ffffffffffffffffffffffffff +CT= ad79bdc7bbfe3e94fd7feefac711a75a +TEST= 107 +PT= 000007ffffffffffffffffffffffffff +CT= 49038d62ad5e80c12717e4de7f71161c +TEST= 108 +PT= 00000fffffffffffffffffffffffffff +CT= ea2a989853b9468d8358895b7ec6bd08 +TEST= 109 +PT= 00001fffffffffffffffffffffffffff +CT= 92a3a09eb028adcc96d5014cd4e0cb5b +TEST= 110 +PT= 00003fffffffffffffffffffffffffff +CT= 447089e19867c9f730a634e36624411b +TEST= 111 +PT= 00007fffffffffffffffffffffffffff +CT= 79e1bc6f8f889a3a860635fd8b89ae08 +TEST= 112 +PT= 0000ffffffffffffffffffffffffffff +CT= 5d1fb7b62620ca0bbc1b56079968c95d +TEST= 113 +PT= 0001ffffffffffffffffffffffffffff +CT= 17b5ff27f2a627f12c38853ba60540f6 +TEST= 114 +PT= 0003ffffffffffffffffffffffffffff +CT= aa02288e444d6ff292fb4ceee5326637 +TEST= 115 +PT= 0007ffffffffffffffffffffffffffff +CT= 503389a0dde58d848e457611a29d03ef +TEST= 116 +PT= 000fffffffffffffffffffffffffffff +CT= 9a3ebb35de64c8416685cc8fb72ac553 +TEST= 117 +PT= 001fffffffffffffffffffffffffffff +CT= 0789e387cbe0afb4502c452017100dce +TEST= 118 +PT= 003fffffffffffffffffffffffffffff +CT= a018173d885207307ca5c6928ff77c92 +TEST= 119 +PT= 007fffffffffffffffffffffffffffff +CT= 576c30ca713f5a949e164f98cdb3ca33 +TEST= 120 +PT= 00ffffffffffffffffffffffffffffff +CT= 7191dfc1bbef90c4f80301c6c0a796bb +TEST= 121 +PT= 01ffffffffffffffffffffffffffffff +CT= 270bbe54a220baeef70b0c6c28b4e423 +TEST= 122 +PT= 03ffffffffffffffffffffffffffffff +CT= 84c9e5d0218dc4b9cc76bba8293243ba +TEST= 123 +PT= 07ffffffffffffffffffffffffffffff +CT= 4de4d5970cf8865094f8da24cc0519f3 +TEST= 124 +PT= 0fffffffffffffffffffffffffffffff +CT= 8488634ace9c71d65d160193b0c4cd7a +TEST= 125 +PT= 1fffffffffffffffffffffffffffffff +CT= 8eb8bb7bd3a69711eec8732be003abf2 +TEST= 126 +PT= 3fffffffffffffffffffffffffffffff +CT= 4e9983b2f707735ef928a95a13510624 +TEST= 127 +PT= 7fffffffffffffffffffffffffffffff +CT= 28de7ba142b3d255cbf7040a1e3680a9 +TEST= 128 +PT= ffffffffffffffffffffffffffffffff +CT= 3f5b8cc9ea855a0afa7347d23e8d664e +TEST= 129 +PT= fffffffffffffffffffffffffffffffe +CT= 5c005e72c1418c44f569f2ea33ba54f3 +TEST= 130 +PT= fffffffffffffffffffffffffffffffc +CT= 39bde67d5c8ed8a8b1c37eb8fa9f5ac0 +TEST= 131 +PT= fffffffffffffffffffffffffffffff8 +CT= 8ade895913685c67c5269f8aae42983e +TEST= 132 +PT= fffffffffffffffffffffffffffffff0 +CT= f9b0fda0c4a898f5b9e6f661c4ce4d07 +TEST= 133 +PT= ffffffffffffffffffffffffffffffe0 +CT= 8568261797de176bf0b43becc6285afb +TEST= 134 +PT= ffffffffffffffffffffffffffffffc0 +CT= 0833ff6f61d98a57b288e8c3586b85a6 +TEST= 135 +PT= ffffffffffffffffffffffffffffff80 +CT= d1788f572d98b2b16ec5d5f3922b99bc +TEST= 136 +PT= ffffffffffffffffffffffffffffff00 +CT= 3bd141ee84a0e6414a26e7a4f281f8a2 +TEST= 137 +PT= fffffffffffffffffffffffffffffe00 +CT= 7f692b03945867d16179a8cefc83ea3f +TEST= 138 +PT= fffffffffffffffffffffffffffffc00 +CT= a4d6616bd04f87335b0e53351227a9ee +TEST= 139 +PT= fffffffffffffffffffffffffffff800 +CT= 34a2c5a91ae2aec99b7d1b5fa6780447 +TEST= 140 +PT= fffffffffffffffffffffffffffff000 +CT= 2e3579ca15af27f64b3c955a5bfc30ba +TEST= 141 +PT= ffffffffffffffffffffffffffffe000 +CT= 6f45732cf10881546f0fd23896d2bb60 +TEST= 142 +PT= ffffffffffffffffffffffffffffc000 +CT= b7972b3941c44b90afa7b264bfba7387 +TEST= 143 +PT= ffffffffffffffffffffffffffff8000 +CT= 4b706f7f92406352394037a6d4f4688d +TEST= 144 +PT= ffffffffffffffffffffffffffff0000 +CT= 545f2b83d9616dccf60fa9830e9cd287 +TEST= 145 +PT= fffffffffffffffffffffffffffe0000 +CT= a87a385736c0a6189bd6589bd8445a93 +TEST= 146 +PT= fffffffffffffffffffffffffffc0000 +CT= 4010a5e401fdf0a0354ddbcc0d012b17 +TEST= 147 +PT= fffffffffffffffffffffffffff80000 +CT= 088c4b53f5ec0ff814c19adae7f6246c +TEST= 148 +PT= fffffffffffffffffffffffffff00000 +CT= 9272e2d2cdd11050998c845077a30ea0 +TEST= 149 +PT= ffffffffffffffffffffffffffe00000 +CT= 3aa426831067d36b92be7c5f81c13c56 +TEST= 150 +PT= ffffffffffffffffffffffffffc00000 +CT= 7678f3a833f19fea95f3c6029e2bc610 +TEST= 151 +PT= ffffffffffffffffffffffffff800000 +CT= 63919ed4ce10196438b6ad09d99cd795 +TEST= 152 +PT= ffffffffffffffffffffffffff000000 +CT= ed3c0a94d59bece98835da7aa4f07ca2 +TEST= 153 +PT= fffffffffffffffffffffffffe000000 +CT= 3c849939a5d29399f344c4a0eca8a576 +TEST= 154 +PT= fffffffffffffffffffffffffc000000 +CT= 79bf5dce14bb7dd73a8e3611de7ce026 +TEST= 155 +PT= fffffffffffffffffffffffff8000000 +CT= 2ca8209d63274cd9a29bb74bcd77683a +TEST= 156 +PT= fffffffffffffffffffffffff0000000 +CT= e656f9ecf5fe27ec3e4a73d00c282fb3 +TEST= 157 +PT= ffffffffffffffffffffffffe0000000 +CT= 082eb8be35f442fb52668e16a591d1d6 +TEST= 158 +PT= ffffffffffffffffffffffffc0000000 +CT= 76da1fbe3a50728c50fd2e621b5ad885 +TEST= 159 +PT= ffffffffffffffffffffffff80000000 +CT= 1ffc626d30203dcdb0019fb80f726cf4 +TEST= 160 +PT= ffffffffffffffffffffffff00000000 +CT= 123c1f4af313ad8c2ce648b2e71fb6e1 +TEST= 161 +PT= fffffffffffffffffffffffe00000000 +CT= 9402e9aa6f69de6504da8d20c4fcaa2f +TEST= 162 +PT= fffffffffffffffffffffffc00000000 +CT= 377be0be33b4e3e310b4aabda173f84f +TEST= 163 +PT= fffffffffffffffffffffff800000000 +CT= 65c0526cbe40161b8019a2a3171abd23 +TEST= 164 +PT= fffffffffffffffffffffff000000000 +CT= 56aff089878bf3352f8df172a3ae47d8 +TEST= 165 +PT= ffffffffffffffffffffffe000000000 +CT= 7472f9a7988607ca79707795991035e6 +TEST= 166 +PT= ffffffffffffffffffffffc000000000 +CT= 90684a2ac55fe1ec2b8ebd5622520b73 +TEST= 167 +PT= ffffffffffffffffffffff8000000000 +CT= 90ecbe6177e674c98de412413f7ac915 +TEST= 168 +PT= ffffffffffffffffffffff0000000000 +CT= 4c6a1c83e568cd10f27c2d73ded19c28 +TEST= 169 +PT= fffffffffffffffffffffe0000000000 +CT= db7e1932679fdd99742aab04aa0d5a80 +TEST= 170 +PT= fffffffffffffffffffffc0000000000 +CT= 7c8d9ab6c2761723fe42f8bb506cbcf7 +TEST= 171 +PT= fffffffffffffffffffff80000000000 +CT= 14954f0b4697776f44494fe458d814ed +TEST= 172 +PT= fffffffffffffffffffff00000000000 +CT= a5e652614c9300f37816b1f9fd0c87f9 +TEST= 173 +PT= ffffffffffffffffffffe00000000000 +CT= 9ca547f7439edc3e255c0f4d49aa8990 +TEST= 174 +PT= ffffffffffffffffffffc00000000000 +CT= 2e65eb6b6ea383e109accce8326b0393 +TEST= 175 +PT= ffffffffffffffffffff800000000000 +CT= b87c921b91829ef3b13ca541ee1130a6 +TEST= 176 +PT= ffffffffffffffffffff000000000000 +CT= 4d37c850644563c69fd0acd9a049325b +TEST= 177 +PT= fffffffffffffffffffe000000000000 +CT= 563bf90d61beef39f48dd625fcef1361 +TEST= 178 +PT= fffffffffffffffffffc000000000000 +CT= e886f9281999c5bb3b3e8862e2f7c988 +TEST= 179 +PT= fffffffffffffffffff8000000000000 +CT= 3bffc16e4c49b268a20f8d96a60b4058 +TEST= 180 +PT= fffffffffffffffffff0000000000000 +CT= 251a7eac7e2fe809e4aa8d0d7012531a +TEST= 181 +PT= ffffffffffffffffffe0000000000000 +CT= 06f2519a2fafaa596bfef5cfa15c21b9 +TEST= 182 +PT= ffffffffffffffffffc0000000000000 +CT= eef456431dea8b4acf83bdae3717f75f +TEST= 183 +PT= ffffffffffffffffff80000000000000 +CT= 1bdec521316503d9d5ee65df3ea94ddf +TEST= 184 +PT= ffffffffffffffffff00000000000000 +CT= d93eae966fac46dca927d6b114fa3f9e +TEST= 185 +PT= fffffffffffffffffe00000000000000 +CT= ab3b89542233f1271bf8fd0c0f403545 +TEST= 186 +PT= fffffffffffffffffc00000000000000 +CT= 1c317a220a7d700da2b1e075b00266e1 +TEST= 187 +PT= fffffffffffffffff800000000000000 +CT= 66404033d6b72b609354d5496e7eb511 +TEST= 188 +PT= fffffffffffffffff000000000000000 +CT= 1480cb3955ba62d09eea668f7c708817 +TEST= 189 +PT= ffffffffffffffffe000000000000000 +CT= 21feecd45b2e675973ac33bf0c5424fc +TEST= 190 +PT= ffffffffffffffffc000000000000000 +CT= 10d3ed7a6fe15ab4d91acbc7d0767ab1 +TEST= 191 +PT= ffffffffffffffff8000000000000000 +CT= 41f992a856fb278b389a62f5d274d7e9 +TEST= 192 +PT= ffffffffffffffff0000000000000000 +CT= f807c3e7985fe0f5a50e2cdb25c5109e +TEST= 193 +PT= fffffffffffffffe0000000000000000 +CT= 3b5e0f566dc96c298f0c12637539b25c +TEST= 194 +PT= fffffffffffffffc0000000000000000 +CT= 7d33fc7d8abe3ca1936759f8f5deaf20 +TEST= 195 +PT= fffffffffffffff80000000000000000 +CT= b611295e739ca7d9b50f8e4c0e754a3f +TEST= 196 +PT= fffffffffffffff00000000000000000 +CT= 6898d4f42fa7ba6a10ac05e87b9f2080 +TEST= 197 +PT= ffffffffffffffe00000000000000000 +CT= d451b8d6e1e1a0ebb155fbbf6e7b7dc3 +TEST= 198 +PT= ffffffffffffffc00000000000000000 +CT= 3a4d354f02bb5a5e47d39666867f246a +TEST= 199 +PT= ffffffffffffff800000000000000000 +CT= 11005d52f25f16bdc9545a876a63490a +TEST= 200 +PT= ffffffffffffff000000000000000000 +CT= 1bfd4b91c701fd6b61b7f997829d663b +TEST= 201 +PT= fffffffffffffe000000000000000000 +CT= d2d99c6bcc1f06fda8e27e8ae3f1ccc7 +TEST= 202 +PT= fffffffffffffc000000000000000000 +CT= 79b61c37bf328ecca8d743265a3d425c +TEST= 203 +PT= fffffffffffff8000000000000000000 +CT= a18e3dbbca577860dab6b80da3139256 +TEST= 204 +PT= fffffffffffff0000000000000000000 +CT= c9cacb5cd11692c373b2411768149ee7 +TEST= 205 +PT= ffffffffffffe0000000000000000000 +CT= 22322327e01780b17397f24087f8cc6f +TEST= 206 +PT= ffffffffffffc0000000000000000000 +CT= ea2e6b5ef182b7dff3629abd6a12045f +TEST= 207 +PT= ffffffffffff80000000000000000000 +CT= 00c55bd75c7f9c881989d3ec1911c0d4 +TEST= 208 +PT= ffffffffffff00000000000000000000 +CT= 1c3112bcb0c1dcc749d799743691bf82 +TEST= 209 +PT= fffffffffffe00000000000000000000 +CT= c2f93a4ce5ab6d5d56f1b93cf19911c1 +TEST= 210 +PT= fffffffffffc00000000000000000000 +CT= 678034dc9e41b5a560ed239eeab1bc78 +TEST= 211 +PT= fffffffffff800000000000000000000 +CT= 85062c2c909f15d9269b6c18ce99c4f0 +TEST= 212 +PT= fffffffffff000000000000000000000 +CT= 191aa0f2c8570144f38657ea4085ebe5 +TEST= 213 +PT= ffffffffffe000000000000000000000 +CT= 35830c8e7aaefe2d30310ef381cbf691 +TEST= 214 +PT= ffffffffffc000000000000000000000 +CT= 827f000e75e2c8b9d479beed913fe678 +TEST= 215 +PT= ffffffffff8000000000000000000000 +CT= 4afe7f120ce7613f74fc12a01a828073 +TEST= 216 +PT= ffffffffff0000000000000000000000 +CT= 95e3a0ca9079e646331df8b4e70d2cd6 +TEST= 217 +PT= fffffffffe0000000000000000000000 +CT= f21e99cf4f0f77cea836e11a2fe75fb1 +TEST= 218 +PT= fffffffffc0000000000000000000000 +CT= 215a41ee442fa992a6e323986ded3f68 +TEST= 219 +PT= fffffffff80000000000000000000000 +CT= cb2bf8280f3f9742c7ed513fe802629c +TEST= 220 +PT= fffffffff00000000000000000000000 +CT= 092faacc9bf43508bf8fa8613ca75dea +TEST= 221 +PT= ffffffffe00000000000000000000000 +CT= 43b02ff929a1485af6f5c6d6558baa0f +TEST= 222 +PT= ffffffffc00000000000000000000000 +CT= 7cadbe402d1b208fe735edce00aee7ce +TEST= 223 +PT= ffffffff800000000000000000000000 +CT= 171a0e1b2dd424f0e089af2c4c10f32f +TEST= 224 +PT= ffffffff000000000000000000000000 +CT= c26277437420c5d634f715aea81a9132 +TEST= 225 +PT= fffffffe000000000000000000000000 +CT= b9fb4399fa4facc7309e14ec98360b0a +TEST= 226 +PT= fffffffc000000000000000000000000 +CT= a2124bea53ec2834279bed7f7eb0f938 +TEST= 227 +PT= fffffff8000000000000000000000000 +CT= 3aebbad7303649b4194a6945c6cc3694 +TEST= 228 +PT= fffffff0000000000000000000000000 +CT= 35f40182ab4662f3023baec1ee796b57 +TEST= 229 +PT= ffffffe0000000000000000000000000 +CT= f8023ee9c3fdc45a019b4e985c7e1a54 +TEST= 230 +PT= ffffffc0000000000000000000000000 +CT= e9c0fc1818e4aa46bd2e39d638f89e05 +TEST= 231 +PT= ffffff80000000000000000000000000 +CT= 3b594c60f5c8277a5113677f94208d82 +TEST= 232 +PT= ffffff00000000000000000000000000 +CT= 13001ff5d99806efd25da34f56be854b +TEST= 233 +PT= fffffe00000000000000000000000000 +CT= c0b5fd98190ef45fbb4301438d095950 +TEST= 234 +PT= fffffc00000000000000000000000000 +CT= 625d01f058e565f77ae86378bd2c49b3 +TEST= 235 +PT= fffff800000000000000000000000000 +CT= 2c20f439f6bb097b29b8bd6d99aad799 +TEST= 236 +PT= fffff000000000000000000000000000 +CT= 6941cb6b3e08c2b7afa581ebdd607b87 +TEST= 237 +PT= ffffe000000000000000000000000000 +CT= dd35cea2799940b40db3f819cb94c08b +TEST= 238 +PT= ffffc000000000000000000000000000 +CT= 8ee79dd4f401ff9b7ea945d86666c13b +TEST= 239 +PT= ffff8000000000000000000000000000 +CT= f3f72375264e167fca9de2c1527d9606 +TEST= 240 +PT= ffff0000000000000000000000000000 +CT= d7e5dbd3324595f8fdc7d7c571da6c2a +TEST= 241 +PT= fffe0000000000000000000000000000 +CT= 64b4d629810fda6bafdf08f3b0d8d2c5 +TEST= 242 +PT= fffc0000000000000000000000000000 +CT= 8eae3b10a0c8ca6d1d3b0fa61e56b0b2 +TEST= 243 +PT= fff80000000000000000000000000000 +CT= 8b87145a01ad1c6cede995ea3670454f +TEST= 244 +PT= fff00000000000000000000000000000 +CT= 965135f8a81f25c9d630b17502f68e53 +TEST= 245 +PT= ffe00000000000000000000000000000 +CT= b8499c251f8442ee13f0933b688fcd19 +TEST= 246 +PT= ffc00000000000000000000000000000 +CT= 77e2b508db7fd89234caf7939ee5621a +TEST= 247 +PT= ff800000000000000000000000000000 +CT= a81738252621dd180a34f3455b4baa2f +TEST= 248 +PT= ff000000000000000000000000000000 +CT= db4f1aa530967d6732ce4715eb0ee24b +TEST= 249 +PT= fe000000000000000000000000000000 +CT= b6da0bb11a23855d9c5cb1b4c6412e0a +TEST= 250 +PT= fc000000000000000000000000000000 +CT= 16ae4ce5042a67ee8e177b7c587ecc82 +TEST= 251 +PT= f8000000000000000000000000000000 +CT= 30ccdb044646d7e1f3ccea3dca08b8c0 +TEST= 252 +PT= f0000000000000000000000000000000 +CT= 96d9fd5cc4f07441727df0f33e401a36 +TEST= 253 +PT= e0000000000000000000000000000000 +CT= f031d4d74f5dcbf39daaf8ca3af6e527 +TEST= 254 +PT= c0000000000000000000000000000000 +CT= aae5939c8efdf2f04e60b9fe7117b2c2 +TEST= 255 +PT= 80000000000000000000000000000000 +CT= 3ad78e726c1ec02b7ebfe92b23d9ec34 diff --git a/src/regress/sys/crypto/aes/vectors/ecbnt48.txt b/src/regress/sys/crypto/aes/vectors/ecbnt48.txt new file mode 100644 index 000000000..df2008199 --- /dev/null +++ b/src/regress/sys/crypto/aes/vectors/ecbnt48.txt @@ -0,0 +1,779 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Text Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbnt48.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 256 + +KEY= 0000000000000000000000000000000000000000000000000000000000000000 +TEST= 0 +PT= 00000000000000000000000000000000 +CT= dc95c078a2408989ad48a21492842087 +TEST= 1 +PT= 00000000000000000000000000000001 +CT= 530f8afbc74536b9a963b4f1c4cb738b +TEST= 2 +PT= 00000000000000000000000000000003 +CT= 726003ca37a62a74d1a2f58e7506358e +TEST= 3 +PT= 00000000000000000000000000000007 +CT= bcaf49b0c0cea62de6bc1c66545e1dad +TEST= 4 +PT= 0000000000000000000000000000000f +CT= b0b710249c8626e1a96ad57828d7be2e +TEST= 5 +PT= 0000000000000000000000000000001f +CT= 887cb1eb76b46720104130dbf1966387 +TEST= 6 +PT= 0000000000000000000000000000003f +CT= 56a368c7a34325e4adce918732e8ea7e +TEST= 7 +PT= 0000000000000000000000000000007f +CT= cac87823c4ed0ded6ffe92afe6a56ffd +TEST= 8 +PT= 000000000000000000000000000000ff +CT= 4d4f06c6f17c2903abc750b28eda2e34 +TEST= 9 +PT= 000000000000000000000000000001ff +CT= c460e6aee417a37a6c60dc0aa85bc4d2 +TEST= 10 +PT= 000000000000000000000000000003ff +CT= 0ef31d5000240ab67f2511ad51ac6a6f +TEST= 11 +PT= 000000000000000000000000000007ff +CT= 304239c608efb82eafd161826baddb67 +TEST= 12 +PT= 00000000000000000000000000000fff +CT= 17be0fbc50c92820d563067c9f5204fd +TEST= 13 +PT= 00000000000000000000000000001fff +CT= b172d242b63b54af7f6aba477ecdc146 +TEST= 14 +PT= 00000000000000000000000000003fff +CT= c550e4f6ca4dfa10fb9e9ea66fb91673 +TEST= 15 +PT= 00000000000000000000000000007fff +CT= e9a4ee862f87f211b6e605115aee6e5a +TEST= 16 +PT= 0000000000000000000000000000ffff +CT= e8dd97836fe934a5f5cf6a662d5b479f +TEST= 17 +PT= 0000000000000000000000000001ffff +CT= 80ce6c203776f35a48928ae2358ee174 +TEST= 18 +PT= 0000000000000000000000000003ffff +CT= 15942b0d89e9ef9716e831443281a57c +TEST= 19 +PT= 0000000000000000000000000007ffff +CT= a5299cdc04a6b08a3aa30e48f410c0a5 +TEST= 20 +PT= 000000000000000000000000000fffff +CT= 075c1e8602554af03ea1ac5aaf174a85 +TEST= 21 +PT= 000000000000000000000000001fffff +CT= 451a51155cad491e8307cd770e20cbee +TEST= 22 +PT= 000000000000000000000000003fffff +CT= a04966b5f5cac26a27a054f0872a9d6e +TEST= 23 +PT= 000000000000000000000000007fffff +CT= 2bdb0cd6ca18e273345ce91e3b6359b3 +TEST= 24 +PT= 00000000000000000000000000ffffff +CT= 7640fb7a3eb6d99975239f6a5e4f3e90 +TEST= 25 +PT= 00000000000000000000000001ffffff +CT= 000d85d4cd6089dca634401d8ffc9dc5 +TEST= 26 +PT= 00000000000000000000000003ffffff +CT= 9814a2df042ed7cdeb8c540a3f93aae6 +TEST= 27 +PT= 00000000000000000000000007ffffff +CT= afbdd961a6ea47665b6a47d1e97d3139 +TEST= 28 +PT= 0000000000000000000000000fffffff +CT= b92b31ec069b5eded32883d152808107 +TEST= 29 +PT= 0000000000000000000000001fffffff +CT= 4c18ff599dd824de22fa28083504b7a4 +TEST= 30 +PT= 0000000000000000000000003fffffff +CT= d0ce009cd9581bc87aab04bffbe3eac5 +TEST= 31 +PT= 0000000000000000000000007fffffff +CT= fb01abd9082d54d31cfe9ae654c360bf +TEST= 32 +PT= 000000000000000000000000ffffffff +CT= ebc85b60c80ac906911208ac8191ca99 +TEST= 33 +PT= 000000000000000000000001ffffffff +CT= 7d4feb5ff6d3a0b59ffa3f64635b45f0 +TEST= 34 +PT= 000000000000000000000003ffffffff +CT= 5a7243d2ed4f20c06638d5b8fd86fca1 +TEST= 35 +PT= 000000000000000000000007ffffffff +CT= 00e138e93ba22c212fad9eb7803dc8a7 +TEST= 36 +PT= 00000000000000000000000fffffffff +CT= 5342826786693becb735c5dfd9dc3b78 +TEST= 37 +PT= 00000000000000000000001fffffffff +CT= 89d27af549ecc8b352887c35afbe05b9 +TEST= 38 +PT= 00000000000000000000003fffffffff +CT= ea1694641aaa6c665ae9ff277d7535d6 +TEST= 39 +PT= 00000000000000000000007fffffffff +CT= 8a20deb1ec0bc7d7116d78b66711ac8d +TEST= 40 +PT= 0000000000000000000000ffffffffff +CT= f264d95afd5e7660ca94472fc669044d +TEST= 41 +PT= 0000000000000000000001ffffffffff +CT= fb3d784a822ea5061c99a4e86dd5e0ee +TEST= 42 +PT= 0000000000000000000003ffffffffff +CT= 1cf03115a4d5025aeeccb29fdfaf8518 +TEST= 43 +PT= 0000000000000000000007ffffffffff +CT= ad031c70f3695ab0f17b54542295b6f1 +TEST= 44 +PT= 000000000000000000000fffffffffff +CT= fe47d8f239b3b45e6032d64772a89597 +TEST= 45 +PT= 000000000000000000001fffffffffff +CT= 30a52cf0b60d78417a6f9139ead693aa +TEST= 46 +PT= 000000000000000000003fffffffffff +CT= bcfa8c117289994c5e2bf36671a1c250 +TEST= 47 +PT= 000000000000000000007fffffffffff +CT= 6e2ef0875cbaf7daa88d7c168fb4e74c +TEST= 48 +PT= 00000000000000000000ffffffffffff +CT= 19a62ebdec659f25ba9deede08db4ba1 +TEST= 49 +PT= 00000000000000000001ffffffffffff +CT= 9cfe3fd2d4742a8dd4ce2cdb53558b8b +TEST= 50 +PT= 00000000000000000003ffffffffffff +CT= ff9e5e6b14cc67acf4b5d1b5f0ae7825 +TEST= 51 +PT= 00000000000000000007ffffffffffff +CT= 105303cd709d55961f68164ae9af602f +TEST= 52 +PT= 0000000000000000000fffffffffffff +CT= 32334bec8f2369ec5af88389849e10e2 +TEST= 53 +PT= 0000000000000000001fffffffffffff +CT= 6b135672f9313b5708f907ba6ca08aa2 +TEST= 54 +PT= 0000000000000000003fffffffffffff +CT= c938c8042ea25b79287063e83886a114 +TEST= 55 +PT= 0000000000000000007fffffffffffff +CT= a725af8f5a93e89cb76aabcd7800254f +TEST= 56 +PT= 000000000000000000ffffffffffffff +CT= 140aeec2b0dea84585888b9ccd93b899 +TEST= 57 +PT= 000000000000000001ffffffffffffff +CT= 0d070d0515d0140c32c37ab448d938e4 +TEST= 58 +PT= 000000000000000003ffffffffffffff +CT= 3c973d2fc670a8ce81386e1093fd5d01 +TEST= 59 +PT= 000000000000000007ffffffffffffff +CT= 2dc5acfc922bc0e9ae28f6ba5900075a +TEST= 60 +PT= 00000000000000000fffffffffffffff +CT= a884b5ce79fe57658be0b1a1725a620d +TEST= 61 +PT= 00000000000000001fffffffffffffff +CT= 4ae4eac3bc4c1d89bae0807f350a1db2 +TEST= 62 +PT= 00000000000000003fffffffffffffff +CT= 21e1531f06bb0be6b3824c5210cab657 +TEST= 63 +PT= 00000000000000007fffffffffffffff +CT= 1d00b46164c05228575ade02afd3f3aa +TEST= 64 +PT= 0000000000000000ffffffffffffffff +CT= 55ed76948d2886bfff50e3352bfe34fd +TEST= 65 +PT= 0000000000000001ffffffffffffffff +CT= 26330a5f3bc166e2d66c25523d80827b +TEST= 66 +PT= 0000000000000003ffffffffffffffff +CT= 7d1ff2b1cd8c311da0d31877d8479924 +TEST= 67 +PT= 0000000000000007ffffffffffffffff +CT= 6b44fd6bcbc1746699fa86393e663e20 +TEST= 68 +PT= 000000000000000fffffffffffffffff +CT= 7d6135c058802c7d7e1a64d84c1b0b58 +TEST= 69 +PT= 000000000000001fffffffffffffffff +CT= 2780da1d4af9937b7f7a167109c01ed5 +TEST= 70 +PT= 000000000000003fffffffffffffffff +CT= 8c6d606a473292ef9d7b3eaa2c2b48d0 +TEST= 71 +PT= 000000000000007fffffffffffffffff +CT= b21cd49bdd33f8dba102ea9f593679f5 +TEST= 72 +PT= 00000000000000ffffffffffffffffff +CT= e84b26bdf29cdcf2cc6d0cfba9a36b4a +TEST= 73 +PT= 00000000000001ffffffffffffffffff +CT= 5f1e926f32237a79c41c996708abb848 +TEST= 74 +PT= 00000000000003ffffffffffffffffff +CT= b3071afc6fb7cb44dc31791a303ab3a1 +TEST= 75 +PT= 00000000000007ffffffffffffffffff +CT= 1bfa099e97915b970ac427db41c4e682 +TEST= 76 +PT= 0000000000000fffffffffffffffffff +CT= 652ec0796f58f50323bcd4d688e891e6 +TEST= 77 +PT= 0000000000001fffffffffffffffffff +CT= 2cd6250a5b9090ee1a8a6e82ca249f4d +TEST= 78 +PT= 0000000000003fffffffffffffffffff +CT= fb748f3bab75ea7bc1a8e82d82a51e09 +TEST= 79 +PT= 0000000000007fffffffffffffffffff +CT= 9c61fb5dfef28e0e332477533e04fa5d +TEST= 80 +PT= 000000000000ffffffffffffffffffff +CT= 1554b13676e017251cbaa0b870293f5b +TEST= 81 +PT= 000000000001ffffffffffffffffffff +CT= 2bdf5516618bfa55688ef7cab73711bd +TEST= 82 +PT= 000000000003ffffffffffffffffffff +CT= ecf1b105a6d8e6da307ea0fb480001a5 +TEST= 83 +PT= 000000000007ffffffffffffffffffff +CT= a3f459f75e64b6e19f4299b269139f7d +TEST= 84 +PT= 00000000000fffffffffffffffffffff +CT= 9b7fcb51afb728ebc4b2cde2eaa3272e +TEST= 85 +PT= 00000000001fffffffffffffffffffff +CT= 6cc8b54fcc4cb5ab1f6bca58809a03f3 +TEST= 86 +PT= 00000000003fffffffffffffffffffff +CT= 08d33488079834d193a93e60340a9dc6 +TEST= 87 +PT= 00000000007fffffffffffffffffffff +CT= 3192a2e9f08b3b683234da0f5518a010 +TEST= 88 +PT= 0000000000ffffffffffffffffffffff +CT= 943ac035ba6411af0340a479c035ccde +TEST= 89 +PT= 0000000001ffffffffffffffffffffff +CT= 3a4ee0ccaee8fcaf778e23e572b64972 +TEST= 90 +PT= 0000000003ffffffffffffffffffffff +CT= 71dd8603c6a215f56ce78254a2dcc352 +TEST= 91 +PT= 0000000007ffffffffffffffffffffff +CT= e55d93d9e16f29b5c0bcc04caeba26b4 +TEST= 92 +PT= 000000000fffffffffffffffffffffff +CT= 978b39d54628ef68dd2e3481c056be87 +TEST= 93 +PT= 000000001fffffffffffffffffffffff +CT= 9781f263a24815e5f86d5426fca2a60d +TEST= 94 +PT= 000000003fffffffffffffffffffffff +CT= a2502f0fa52c9ee2b04dceba26818feb +TEST= 95 +PT= 000000007fffffffffffffffffffffff +CT= e01498623fc3691c93f0a254025f00dc +TEST= 96 +PT= 00000000ffffffffffffffffffffffff +CT= 04f6241fa8dfe97b8fa21020c8e0f012 +TEST= 97 +PT= 00000001ffffffffffffffffffffffff +CT= adad0ea8da80f52cba02a2f797e5f660 +TEST= 98 +PT= 00000003ffffffffffffffffffffffff +CT= da4e186b8466f3de44fcceb4275e919e +TEST= 99 +PT= 00000007ffffffffffffffffffffffff +CT= 81afed0aa90ab04150725191ae23329d +TEST= 100 +PT= 0000000fffffffffffffffffffffffff +CT= ed4edde587d7de7bfc9937e901f28ac3 +TEST= 101 +PT= 0000001fffffffffffffffffffffffff +CT= db971e6a8fef015916b1bd3d1384765b +TEST= 102 +PT= 0000003fffffffffffffffffffffffff +CT= 2908a709b1ed9d002ff1575fb656f145 +TEST= 103 +PT= 0000007fffffffffffffffffffffffff +CT= f2db14c1ebbcfd1cffcd2d45569d8d67 +TEST= 104 +PT= 000000ffffffffffffffffffffffffff +CT= 70c94bbbdecd58bf0f5f85d2cbca1ef5 +TEST= 105 +PT= 000001ffffffffffffffffffffffffff +CT= 6fcc581931c7de8f8433912403e59ef6 +TEST= 106 +PT= 000003ffffffffffffffffffffffffff +CT= 052bd927df7af09b394e6acd3faf17af +TEST= 107 +PT= 000007ffffffffffffffffffffffffff +CT= 71d78327dd4f1de4c41c0bed89d86ad9 +TEST= 108 +PT= 00000fffffffffffffffffffffffffff +CT= 990d25762402bcd18da9ac57a4734ec8 +TEST= 109 +PT= 00001fffffffffffffffffffffffffff +CT= e4fc8242eabf609feb6f3bab41f8b1dc +TEST= 110 +PT= 00003fffffffffffffffffffffffffff +CT= dfef5c6cbcfcd8a2628ae53ce4c6a79b +TEST= 111 +PT= 00007fffffffffffffffffffffffffff +CT= d0b45049e154ea336aa76e4a75b315e7 +TEST= 112 +PT= 0000ffffffffffffffffffffffffffff +CT= d414f7943d00ca79d85b74cc95f9ef14 +TEST= 113 +PT= 0001ffffffffffffffffffffffffffff +CT= a69b3d1b84f6ee453a27bca6c80f1b7f +TEST= 114 +PT= 0003ffffffffffffffffffffffffffff +CT= 58396af6098f11a4146c222c23489274 +TEST= 115 +PT= 0007ffffffffffffffffffffffffffff +CT= 0b125f559c24c477ba892ce77426f45a +TEST= 116 +PT= 000fffffffffffffffffffffffffffff +CT= c4bf82fc934d9c05da586038b25b3a30 +TEST= 117 +PT= 001fffffffffffffffffffffffffffff +CT= e6211d551f1508d285cfd248a5dbea3e +TEST= 118 +PT= 003fffffffffffffffffffffffffffff +CT= 25a4f6a5fdf329d70ca049f503b5eda2 +TEST= 119 +PT= 007fffffffffffffffffffffffffffff +CT= 63302af0213fde83e376a1c1e9990542 +TEST= 120 +PT= 00ffffffffffffffffffffffffffffff +CT= 9300e6173d1260a519b13ea2ae65a985 +TEST= 121 +PT= 01ffffffffffffffffffffffffffffff +CT= 8e9aac3b662e266dcdf5ae4426a90edd +TEST= 122 +PT= 03ffffffffffffffffffffffffffffff +CT= c691e61ab83e4b2a6cea1a1a6097ba2e +TEST= 123 +PT= 07ffffffffffffffffffffffffffffff +CT= cdf811cc43cf5df05db02cb939721884 +TEST= 124 +PT= 0fffffffffffffffffffffffffffffff +CT= bf2778915eee19c7cab7c0547f0a61dd +TEST= 125 +PT= 1fffffffffffffffffffffffffffffff +CT= 4da9149db4c9c2bb29ba1701816f1b2f +TEST= 126 +PT= 3fffffffffffffffffffffffffffffff +CT= d20c5e7d71e9caeccf40664f1eb45392 +TEST= 127 +PT= 7fffffffffffffffffffffffffffffff +CT= e358d3c6b857b344f148f8d6c622f3bf +TEST= 128 +PT= ffffffffffffffffffffffffffffffff +CT= acdace8078a32b1a182bfa4987ca1347 +TEST= 129 +PT= fffffffffffffffffffffffffffffffe +CT= 7bfe9d876c6d63c1d035da8fe21c409d +TEST= 130 +PT= fffffffffffffffffffffffffffffffc +CT= 0f59cb5a4b522e2ac56c1a64f558ad9a +TEST= 131 +PT= fffffffffffffffffffffffffffffff8 +CT= da63039d38cb4612b2dc36ba26684b93 +TEST= 132 +PT= fffffffffffffffffffffffffffffff0 +CT= 7240e524bc51d8c4d440b1be55d1062c +TEST= 133 +PT= ffffffffffffffffffffffffffffffe0 +CT= 2915be4a1ecfdcbe3e023811a12bb6c7 +TEST= 134 +PT= ffffffffffffffffffffffffffffffc0 +CT= 9b7b940f6c509f9e44a4ee140448ee46 +TEST= 135 +PT= ffffffffffffffffffffffffffffff80 +CT= 0493370e054b09871130fe49af730a5a +TEST= 136 +PT= ffffffffffffffffffffffffffffff00 +CT= 29ee526770f2a11dcfa989d1ce88830f +TEST= 137 +PT= fffffffffffffffffffffffffffffe00 +CT= ee0715b96f72e3f7a22a5064fc592f4c +TEST= 138 +PT= fffffffffffffffffffffffffffffc00 +CT= 27127daafc9accd2fb334ec3eba52323 +TEST= 139 +PT= fffffffffffffffffffffffffffff800 +CT= eb8168313e1cfdfdb5e986d5429cf172 +TEST= 140 +PT= fffffffffffffffffffffffffffff000 +CT= a423deabc173dcf7e2c4c53e77d37cd1 +TEST= 141 +PT= ffffffffffffffffffffffffffffe000 +CT= 286894e48e537f8763b56707d7d155c8 +TEST= 142 +PT= ffffffffffffffffffffffffffffc000 +CT= 683e2140585b18452dd4ffbb93c95df9 +TEST= 143 +PT= ffffffffffffffffffffffffffff8000 +CT= 63fafabb72c07bfbd3ddc9b1203104b8 +TEST= 144 +PT= ffffffffffffffffffffffffffff0000 +CT= 5f397bf03084820cc8810d52e5b666e9 +TEST= 145 +PT= fffffffffffffffffffffffffffe0000 +CT= 4b00c27e8b26da7eab9d3a88dec8b031 +TEST= 146 +PT= fffffffffffffffffffffffffffc0000 +CT= 0861a861c3db4e94194211b77ed761b9 +TEST= 147 +PT= fffffffffffffffffffffffffff80000 +CT= 705a4ef8ba2133729c20185c3d3a4763 +TEST= 148 +PT= fffffffffffffffffffffffffff00000 +CT= 8d683ee63e60d208e343ce48dbc44cac +TEST= 149 +PT= ffffffffffffffffffffffffffe00000 +CT= afa2ffc137577092e2b654fa199d2c43 +TEST= 150 +PT= ffffffffffffffffffffffffffc00000 +CT= 3cdf13e72dee4c581bafec70b85f9660 +TEST= 151 +PT= ffffffffffffffffffffffffff800000 +CT= 2fd0e41c5b8402277354a7391d2618e2 +TEST= 152 +PT= ffffffffffffffffffffffffff000000 +CT= 90ddbcb950843592dd47bbef00fdc876 +TEST= 153 +PT= fffffffffffffffffffffffffe000000 +CT= 62526b78be79cb384633c91f83b4151b +TEST= 154 +PT= fffffffffffffffffffffffffc000000 +CT= 1f11d5d0355e0b556ccdb6c7f5083b4d +TEST= 155 +PT= fffffffffffffffffffffffff8000000 +CT= 220df19f85d69b1b562fa69a3c5beca5 +TEST= 156 +PT= fffffffffffffffffffffffff0000000 +CT= da86f292c6f41ea34fb2068df75ecc29 +TEST= 157 +PT= ffffffffffffffffffffffffe0000000 +CT= 2be1fae5048a25582a679ca10905eb80 +TEST= 158 +PT= ffffffffffffffffffffffffc0000000 +CT= e2775e4b59c1bc2e31a2078c11b5a08c +TEST= 159 +PT= ffffffffffffffffffffffff80000000 +CT= 649f1cddc3792b4638635a392bc9bade +TEST= 160 +PT= ffffffffffffffffffffffff00000000 +CT= 21d9ba49f276b45f11af8fc71a088e3d +TEST= 161 +PT= fffffffffffffffffffffffe00000000 +CT= 1ac1f7102c59933e8b2ddc3f14e94baa +TEST= 162 +PT= fffffffffffffffffffffffc00000000 +CT= e5c3b8e30fd2d8e6239b17b44bd23bbd +TEST= 163 +PT= fffffffffffffffffffffff800000000 +CT= 6f8ba6521152d31f2bada1843e26b973 +TEST= 164 +PT= fffffffffffffffffffffff000000000 +CT= 83a63402a77f9ad5c1e931a931ecd706 +TEST= 165 +PT= ffffffffffffffffffffffe000000000 +CT= 2bf27229901eb40f2df9d8398d1505ae +TEST= 166 +PT= ffffffffffffffffffffffc000000000 +CT= 7b8e7098e357ef71237d46d8b075b0f5 +TEST= 167 +PT= ffffffffffffffffffffff8000000000 +CT= 55cfb3fb6d75cad0445bbc8dafa25b0f +TEST= 168 +PT= ffffffffffffffffffffff0000000000 +CT= 145b60d6d0193c23f4221848a892d61a +TEST= 169 +PT= fffffffffffffffffffffe0000000000 +CT= 905b6267f1d6ab5320835a133f096f2a +TEST= 170 +PT= fffffffffffffffffffffc0000000000 +CT= 8f476cbff75c1f725ce18e4bbcd19b32 +TEST= 171 +PT= fffffffffffffffffffff80000000000 +CT= 9ad983f3bf651cd0393f0a73cccdea50 +TEST= 172 +PT= fffffffffffffffffffff00000000000 +CT= 3b271f8ab2e6e4a20ba8090f43ba78f3 +TEST= 173 +PT= ffffffffffffffffffffe00000000000 +CT= 39b333e8694f21546ad1edd9d87ed95b +TEST= 174 +PT= ffffffffffffffffffffc00000000000 +CT= 08b244ce7cbc8ee97fbba808cb146fda +TEST= 175 +PT= ffffffffffffffffffff800000000000 +CT= 4cc42fc1407b008fe350907c092e80ac +TEST= 176 +PT= ffffffffffffffffffff000000000000 +CT= 12e71214ae8e04f0bb63d7425c6f14d5 +TEST= 177 +PT= fffffffffffffffffffe000000000000 +CT= 4620a49bd967491561669ab25dce45f4 +TEST= 178 +PT= fffffffffffffffffffc000000000000 +CT= b95ba05b332da61ef63a2b31fcad9879 +TEST= 179 +PT= fffffffffffffffffff8000000000000 +CT= 0007e20b8298ec354f0f5fe7470f36bd +TEST= 180 +PT= fffffffffffffffffff0000000000000 +CT= d1c5f6399bf382502e385eee1474a869 +TEST= 181 +PT= ffffffffffffffffffe0000000000000 +CT= a013014d4ce8054cf2591d06f6f2f176 +TEST= 182 +PT= ffffffffffffffffffc0000000000000 +CT= 964153a83bf6989a4ba80daa91c3e081 +TEST= 183 +PT= ffffffffffffffffff80000000000000 +CT= 7d9fa6a57530d0f036fec31c230b0cc6 +TEST= 184 +PT= ffffffffffffffffff00000000000000 +CT= 76b5614a042707c98e2132e2e805fe63 +TEST= 185 +PT= fffffffffffffffffe00000000000000 +CT= 959971ce4134190563518e700b9874d1 +TEST= 186 +PT= fffffffffffffffffc00000000000000 +CT= 811441ce1d309eee7185e8c752c07557 +TEST= 187 +PT= fffffffffffffffff800000000000000 +CT= bc3594e865bcd0261b13202731f33580 +TEST= 188 +PT= fffffffffffffffff000000000000000 +CT= a37a5869b218a9f3a0868d19aea0ad6a +TEST= 189 +PT= ffffffffffffffffe000000000000000 +CT= a1b19beee4e117139f74b3c53fdcb875 +TEST= 190 +PT= ffffffffffffffffc000000000000000 +CT= 19f08e3420ee69b477ca1420281c4782 +TEST= 191 +PT= ffffffffffffffff8000000000000000 +CT= 77f392089042e478ac16c0c86a0b5db5 +TEST= 192 +PT= ffffffffffffffff0000000000000000 +CT= 9b58dbfd77fe5aca9cfc190cd1b82d19 +TEST= 193 +PT= fffffffffffffffe0000000000000000 +CT= faf82d178af25a9886a47e7f789b98d7 +TEST= 194 +PT= fffffffffffffffc0000000000000000 +CT= d8e2bb1ae8ee3dcf5bf7d6c38da82a1a +TEST= 195 +PT= fffffffffffffff80000000000000000 +CT= 1d7c0c4040b355b9d107a99325e3b050 +TEST= 196 +PT= fffffffffffffff00000000000000000 +CT= b1144ddfa75755213390e7c596660490 +TEST= 197 +PT= ffffffffffffffe00000000000000000 +CT= 768f520efe0f23e61d3ec8ad9ce91774 +TEST= 198 +PT= ffffffffffffffc00000000000000000 +CT= 56ede9dda3f6f141bff1757fa689c3e1 +TEST= 199 +PT= ffffffffffffff800000000000000000 +CT= 0d9ac756eb297695eed4d382eb126d26 +TEST= 200 +PT= ffffffffffffff000000000000000000 +CT= c0838d1a2b16a7c7f0dfcc433c399c33 +TEST= 201 +PT= fffffffffffffe000000000000000000 +CT= cc3526262b92f02edce548f716b9f45c +TEST= 202 +PT= fffffffffffffc000000000000000000 +CT= c090313eb98674f35f3123385fb95d4d +TEST= 203 +PT= fffffffffffff8000000000000000000 +CT= dd27cac6401a022e8f38f9f93e774417 +TEST= 204 +PT= fffffffffffff0000000000000000000 +CT= 4632154179a555c17ea604d0889fab14 +TEST= 205 +PT= ffffffffffffe0000000000000000000 +CT= a1853fe47fe29289d153161d06387d21 +TEST= 206 +PT= ffffffffffffc0000000000000000000 +CT= cd2b1fec11fd906c5c7630099443610a +TEST= 207 +PT= ffffffffffff80000000000000000000 +CT= b1d4efe40242f83e93b6c8d7efb5eae9 +TEST= 208 +PT= ffffffffffff00000000000000000000 +CT= ead731af4d3a2fe3b34bed047942a49f +TEST= 209 +PT= fffffffffffe00000000000000000000 +CT= 1a518dddaf9efa0d002cc58d107edfc8 +TEST= 210 +PT= fffffffffffc00000000000000000000 +CT= e67ae6426bf9526c972cff072b52252c +TEST= 211 +PT= fffffffffff800000000000000000000 +CT= 20ebc86f1304d272e2e207e59db639f0 +TEST= 212 +PT= fffffffffff000000000000000000000 +CT= 3f5f9106d0e52f973d4890e6f37e8a00 +TEST= 213 +PT= ffffffffffe000000000000000000000 +CT= ac9bd8e2530469134b9d5b065d4f565b +TEST= 214 +PT= ffffffffffc000000000000000000000 +CT= 2463531ab54d66955e73edc4cb8eaa45 +TEST= 215 +PT= ffffffffff8000000000000000000000 +CT= 48c7d0e80834ebdc35b6735f76b46c8b +TEST= 216 +PT= ffffffffff0000000000000000000000 +CT= f96b0c4a8bc6c86130289f60b43b8fba +TEST= 217 +PT= fffffffffe0000000000000000000000 +CT= 11a45530f624ff6f76a1b3826626ff7b +TEST= 218 +PT= fffffffffc0000000000000000000000 +CT= 49d541b2e74cfe73e6a8e8225f7bd449 +TEST= 219 +PT= fffffffff80000000000000000000000 +CT= 54fafe26e4287f17d1935f87eb9ade01 +TEST= 220 +PT= fffffffff00000000000000000000000 +CT= 9a682acf40be01f5b2a4193c9a82404d +TEST= 221 +PT= ffffffffe00000000000000000000000 +CT= 753665c4af1eff33aa8b628bf8741cfd +TEST= 222 +PT= ffffffffc00000000000000000000000 +CT= 9b471596dc69ae1586cee6158b0b0181 +TEST= 223 +PT= ffffffff800000000000000000000000 +CT= 42a1136e5f8d8d21d3101998642d573b +TEST= 224 +PT= ffffffff000000000000000000000000 +CT= 6a4981f2915e3e68af6c22385dd06756 +TEST= 225 +PT= fffffffe000000000000000000000000 +CT= 8d6a8afe55a6e481badae0d146f436db +TEST= 226 +PT= fffffffc000000000000000000000000 +CT= fbd6640c80245c2b805373f130703127 +TEST= 227 +PT= fffffff8000000000000000000000000 +CT= cf37cdaaa0d2d536c71857634c792064 +TEST= 228 +PT= fffffff0000000000000000000000000 +CT= 96f96e9d607f6615fc192061ee648b07 +TEST= 229 +PT= ffffffe0000000000000000000000000 +CT= abf4154a3375a1d3e6b1d454438f95a6 +TEST= 230 +PT= ffffffc0000000000000000000000000 +CT= 1f8eedea0f62a1406d58cfc3ecea72cf +TEST= 231 +PT= ffffff80000000000000000000000000 +CT= 36aff0ef7bf3280772cf4cac80a0d2b2 +TEST= 232 +PT= ffffff00000000000000000000000000 +CT= ac86bc606b6640c309e782f232bf367f +TEST= 233 +PT= fffffe00000000000000000000000000 +CT= 6ef4cc4de49b11065d7af2909854794a +TEST= 234 +PT= fffffc00000000000000000000000000 +CT= b1f4066e6f4f187dfe5f2ad1b17819d0 +TEST= 235 +PT= fffff800000000000000000000000000 +CT= d5e38bf15f16d90e3e214041d774daa8 +TEST= 236 +PT= fffff000000000000000000000000000 +CT= 3ee500c5c8d63479717163e55c5c4522 +TEST= 237 +PT= ffffe000000000000000000000000000 +CT= 2239455e7afe3b0616100288cc5a723b +TEST= 238 +PT= ffffc000000000000000000000000000 +CT= 59e858eaaa97fec38111275b6cf5abc0 +TEST= 239 +PT= ffff8000000000000000000000000000 +CT= 1fe6cc3c05965dc08eb0590c95ac71d0 +TEST= 240 +PT= ffff0000000000000000000000000000 +CT= 300ade92f88f48fa2df730ec16ef44cd +TEST= 241 +PT= fffe0000000000000000000000000000 +CT= 1569859ea6b7206c30bf4fd0cbfac33c +TEST= 242 +PT= fffc0000000000000000000000000000 +CT= dc8f0e4915fd81ba70a331310882f6da +TEST= 243 +PT= fff80000000000000000000000000000 +CT= 047bba83f7aa841731504e012208fc9e +TEST= 244 +PT= fff00000000000000000000000000000 +CT= c218faa16056bd0774c3e8d79c35a5e4 +TEST= 245 +PT= ffe00000000000000000000000000000 +CT= 0dc58a8d886623705aec15cb1e70dc0e +TEST= 246 +PT= ffc00000000000000000000000000000 +CT= fe1cffb83f45dcfb38b29be438dbd3ab +TEST= 247 +PT= ff800000000000000000000000000000 +CT= 8bcd40f94ebb63b9f7909676e667f1e7 +TEST= 248 +PT= ff000000000000000000000000000000 +CT= 49af6b372135acef10132e548f217b17 +TEST= 249 +PT= fe000000000000000000000000000000 +CT= 8092a4dcf2da7e77e93bdd371dfed82e +TEST= 250 +PT= fc000000000000000000000000000000 +CT= e74cd1c92f0919c35a0324123d6177d3 +TEST= 251 +PT= f8000000000000000000000000000000 +CT= 7818d800dcf6f4be1e0e94f403d1e4c2 +TEST= 252 +PT= f0000000000000000000000000000000 +CT= 7f2c5ece07a98d8bee13c51177395ff7 +TEST= 253 +PT= e0000000000000000000000000000000 +CT= 9b80eefb7ebe2d2b16247aa0efc72f5d +TEST= 254 +PT= c0000000000000000000000000000000 +CT= 0a6bdc6d4c1e6280301fd8e97ddbe601 +TEST= 255 +PT= 80000000000000000000000000000000 +CT= ddc6bf790c15760d8d9aeb6f9a75fd4e diff --git a/src/regress/sys/crypto/aes/vectors/ecbvk44.txt b/src/regress/sys/crypto/aes/vectors/ecbvk44.txt new file mode 100644 index 000000000..04f308977 --- /dev/null +++ b/src/regress/sys/crypto/aes/vectors/ecbvk44.txt @@ -0,0 +1,398 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Key Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbvk44.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 128 + +PT= 00000000000000000000000000000000 +TEST= 0 +KEY= 00000000000000000000000000000000 +CT= 66e94bd4ef8a2c3b884cfa59ca342b2e +TEST= 1 +KEY= 80000000000000000000000000000000 +CT= 0edd33d3c621e546455bd8ba1418bec8 +TEST= 2 +KEY= 40000000000000000000000000000000 +CT= c0cc0c5da5bd63acd44a80774fad5222 +TEST= 3 +KEY= 20000000000000000000000000000000 +CT= 2f0b4b71bc77851b9ca56d42eb8ff080 +TEST= 4 +KEY= 10000000000000000000000000000000 +CT= 6b1e2fffe8a114009d8fe22f6db5f876 +TEST= 5 +KEY= 08000000000000000000000000000000 +CT= 9aa042c315f94cbb97b62202f83358f5 +TEST= 6 +KEY= 04000000000000000000000000000000 +CT= dbe01de67e346a800c4c4b4880311de4 +TEST= 7 +KEY= 02000000000000000000000000000000 +CT= c117d2238d53836acd92ddcdb85d6a21 +TEST= 8 +KEY= 01000000000000000000000000000000 +CT= dc0ed85df9611abb7249cdd168c5467e +TEST= 9 +KEY= 00800000000000000000000000000000 +CT= 807d678fff1f56fa92de3381904842f2 +TEST= 10 +KEY= 00400000000000000000000000000000 +CT= 0e53b3fcad8e4b130ef73aeb957fb402 +TEST= 11 +KEY= 00200000000000000000000000000000 +CT= 969ffd3b7c35439417e7bde923035d65 +TEST= 12 +KEY= 00100000000000000000000000000000 +CT= a99b512c19ca56070491166a1503bf15 +TEST= 13 +KEY= 00080000000000000000000000000000 +CT= 6e9985252126ee344d26ae369d2327e3 +TEST= 14 +KEY= 00040000000000000000000000000000 +CT= b85f4809f904c275491fcdcd1610387e +TEST= 15 +KEY= 00020000000000000000000000000000 +CT= ed365b8d7d20c1f5d53fb94dd211df7b +TEST= 16 +KEY= 00010000000000000000000000000000 +CT= b3a575e86a8db4a7135d604c43304896 +TEST= 17 +KEY= 00008000000000000000000000000000 +CT= 89704bcb8e69f846259eb0accbc7f8a2 +TEST= 18 +KEY= 00004000000000000000000000000000 +CT= c56ee7c92197861f10d7a92b90882055 +TEST= 19 +KEY= 00002000000000000000000000000000 +CT= 92f296f6846e0eaf9422a5a24a08b069 +TEST= 20 +KEY= 00001000000000000000000000000000 +CT= e67e32bb8f11deb8699318bee9e91a60 +TEST= 21 +KEY= 00000800000000000000000000000000 +CT= b08eef85eaf626dd91b65c4c3a97d92b +TEST= 22 +KEY= 00000400000000000000000000000000 +CT= 661083a6addce79bb4e0859ab5538013 +TEST= 23 +KEY= 00000200000000000000000000000000 +CT= 55dfe2941e0eb10afc0b333bd34de1fe +TEST= 24 +KEY= 00000100000000000000000000000000 +CT= 6bfe5945e715c9662609770f8846087a +TEST= 25 +KEY= 00000080000000000000000000000000 +CT= 79848e9c30c2f8cda8b325f7fed2b139 +TEST= 26 +KEY= 00000040000000000000000000000000 +CT= 7a713a53b99fef34ac04deef80965bd0 +TEST= 27 +KEY= 00000020000000000000000000000000 +CT= 18144a2b46620d32c3c32ce52d49257f +TEST= 28 +KEY= 00000010000000000000000000000000 +CT= 872e827c70887c80749f7b8bb1847c7e +TEST= 29 +KEY= 00000008000000000000000000000000 +CT= 6b86c6a4fe6a60c59b1a3102f8de49f3 +TEST= 30 +KEY= 00000004000000000000000000000000 +CT= 9848bb3dfdf6f532f094679a4c231a20 +TEST= 31 +KEY= 00000002000000000000000000000000 +CT= 925ad528e852e329b2091cd3f1c2bcee +TEST= 32 +KEY= 00000001000000000000000000000000 +CT= 80df436544b0dd596722e46792a40cd8 +TEST= 33 +KEY= 00000000800000000000000000000000 +CT= 525daf18f93e83e1e74bbbdde4263bba +TEST= 34 +KEY= 00000000400000000000000000000000 +CT= f65c9d2ee485d24701ffa3313b9d5be6 +TEST= 35 +KEY= 00000000200000000000000000000000 +CT= e4fc8d8bca06425bdf94afa40fcc14ba +TEST= 36 +KEY= 00000000100000000000000000000000 +CT= a53f0a5ca1e4e6440bb975ff320de6f8 +TEST= 37 +KEY= 00000000080000000000000000000000 +CT= d55313b9394080462e87e02899b553f0 +TEST= 38 +KEY= 00000000040000000000000000000000 +CT= 34a71d761f71bcd344384c7f97d27906 +TEST= 39 +KEY= 00000000020000000000000000000000 +CT= 233f3d819599612ebc89580245c996a8 +TEST= 40 +KEY= 00000000010000000000000000000000 +CT= b4f1374e5268dbcb676e447529e53f89 +TEST= 41 +KEY= 00000000008000000000000000000000 +CT= 0816bd27861d2ba891d1044e39951e96 +TEST= 42 +KEY= 00000000004000000000000000000000 +CT= f3be9ea3f10c73ca64fde5db13a951d1 +TEST= 43 +KEY= 00000000002000000000000000000000 +CT= 2448086a8106fbd03048ddf857d3f1c8 +TEST= 44 +KEY= 00000000001000000000000000000000 +CT= 670756e65bec8b68f03d77cdcdce7b91 +TEST= 45 +KEY= 00000000000800000000000000000000 +CT= ef968cf0d36fd6c6effd225f6fb44ca9 +TEST= 46 +KEY= 00000000000400000000000000000000 +CT= 2e8767157922e3826ddcec1b0cc1e105 +TEST= 47 +KEY= 00000000000200000000000000000000 +CT= 78ce7eec670e45a967bab17e26a1ad36 +TEST= 48 +KEY= 00000000000100000000000000000000 +CT= 3c5cee825655f098f6e81a2f417da3fb +TEST= 49 +KEY= 00000000000080000000000000000000 +CT= 67bfdb431dce1292200bc6f5207adb12 +TEST= 50 +KEY= 00000000000040000000000000000000 +CT= 7540fd38e447c0779228548747843a6f +TEST= 51 +KEY= 00000000000020000000000000000000 +CT= b85e513301f8a936ea9ec8a21a85b5e6 +TEST= 52 +KEY= 00000000000010000000000000000000 +CT= 04c67dbf16c11427d507a455de2c9bc5 +TEST= 53 +KEY= 00000000000008000000000000000000 +CT= 03f75eb8959e55079cffb4ff149a37b6 +TEST= 54 +KEY= 00000000000004000000000000000000 +CT= 74550287f666c63bb9bc7838433434b0 +TEST= 55 +KEY= 00000000000002000000000000000000 +CT= 7d537200195ebc3aefd1eaab1c385221 +TEST= 56 +KEY= 00000000000001000000000000000000 +CT= ce24e4d40c68a82b535cbd3c8e21652a +TEST= 57 +KEY= 00000000000000800000000000000000 +CT= ab20072405aa8fc40265c6f1f3dc8bc0 +TEST= 58 +KEY= 00000000000000400000000000000000 +CT= 6cfd2cf688f566b093f67b9b3839e80a +TEST= 59 +KEY= 00000000000000200000000000000000 +CT= bd95977e6b7239d407a012c5544bf584 +TEST= 60 +KEY= 00000000000000100000000000000000 +CT= df9c0130ac77e7c72c997f587b46dbe0 +TEST= 61 +KEY= 00000000000000080000000000000000 +CT= e7f1b82cadc53a648798945b34efeff2 +TEST= 62 +KEY= 00000000000000040000000000000000 +CT= 932c6dbf69255cf13edcdb72233acea3 +TEST= 63 +KEY= 00000000000000020000000000000000 +CT= 5c76002bc7206560efe550c80b8f12cc +TEST= 64 +KEY= 00000000000000010000000000000000 +CT= f6b7bdd1caeebab574683893c4475484 +TEST= 65 +KEY= 00000000000000008000000000000000 +CT= a920e37cc6dc6b31da8c0169569f5034 +TEST= 66 +KEY= 00000000000000004000000000000000 +CT= 919380ecd9c778bc513148b0c28d65fd +TEST= 67 +KEY= 00000000000000002000000000000000 +CT= ee67308dd3f2d9e6c2170755e5784be1 +TEST= 68 +KEY= 00000000000000001000000000000000 +CT= 3cc73e53b85609023a05e149b223ae09 +TEST= 69 +KEY= 00000000000000000800000000000000 +CT= 983e8af7cf05ebb28d71eb841c9406e6 +TEST= 70 +KEY= 00000000000000000400000000000000 +CT= 0f3099b2d31fa5299ee5bf43193287fc +TEST= 71 +KEY= 00000000000000000200000000000000 +CT= b763d84f38c27fe6931dceb6715d4db6 +TEST= 72 +KEY= 00000000000000000100000000000000 +CT= 5ae3c9b0e3cc29c0c61565cd01f8a248 +TEST= 73 +KEY= 00000000000000000080000000000000 +CT= f58083572cd90981958565d48d2dee25 +TEST= 74 +KEY= 00000000000000000040000000000000 +CT= 7e6255eef8f70c0ef10337aab1cccef8 +TEST= 75 +KEY= 00000000000000000020000000000000 +CT= aad4bac34db22821841ce2f631961902 +TEST= 76 +KEY= 00000000000000000010000000000000 +CT= d7431c0409bb1441ba9c6858dc7d4e81 +TEST= 77 +KEY= 00000000000000000008000000000000 +CT= ef9298c65e339f6e801a59c626456993 +TEST= 78 +KEY= 00000000000000000004000000000000 +CT= 53fe29f68ff541abc3f0ef3350b72f7e +TEST= 79 +KEY= 00000000000000000002000000000000 +CT= f6bba5c10db02529e2c2da3fb582cc14 +TEST= 80 +KEY= 00000000000000000001000000000000 +CT= e4239aa37fc531a386dad1126fc0e9cd +TEST= 81 +KEY= 00000000000000000000800000000000 +CT= 8f7758f857d15bbe7bfd0e416404c365 +TEST= 82 +KEY= 00000000000000000000400000000000 +CT= d273eb57c687bcd1b4ea7218a509e7b8 +TEST= 83 +KEY= 00000000000000000000200000000000 +CT= 65d64f8d76e8b3423fa25c4eb58a210a +TEST= 84 +KEY= 00000000000000000000100000000000 +CT= 623d802b4ec450d66a16625702fcdbe0 +TEST= 85 +KEY= 00000000000000000000080000000000 +CT= 7496460cb28e5791baeaf9b68fb00022 +TEST= 86 +KEY= 00000000000000000000040000000000 +CT= 34ea600f18bb0694b41681a49d510c1d +TEST= 87 +KEY= 00000000000000000000020000000000 +CT= 5f8ff0d47d5766d29b5d6e8f46423bd8 +TEST= 88 +KEY= 00000000000000000000010000000000 +CT= 225f9286c5928bf09f84d3f93f541959 +TEST= 89 +KEY= 00000000000000000000008000000000 +CT= b21e90d25df383416a5f072cebeb1ffb +TEST= 90 +KEY= 00000000000000000000004000000000 +CT= 4aefcda089318125453eb9e8eb5e492e +TEST= 91 +KEY= 00000000000000000000002000000000 +CT= 4d3e75c6cd40ec4869bc85158591adb8 +TEST= 92 +KEY= 00000000000000000000001000000000 +CT= 63a8b904405436a1b99d7751866771b7 +TEST= 93 +KEY= 00000000000000000000000800000000 +CT= 64f0daae47529199792eae172ba53293 +TEST= 94 +KEY= 00000000000000000000000400000000 +CT= c3eef84bea18225d515a8c852a9047ee +TEST= 95 +KEY= 00000000000000000000000200000000 +CT= a44ac422b47d47b81af73b3e9ac9596e +TEST= 96 +KEY= 00000000000000000000000100000000 +CT= d16e04a8fbc435094f8d53adf25f5084 +TEST= 97 +KEY= 00000000000000000000000080000000 +CT= ef13dc34bab03e124eead8b6bf44b532 +TEST= 98 +KEY= 00000000000000000000000040000000 +CT= d94799075c24dcc067af0d392049250d +TEST= 99 +KEY= 00000000000000000000000020000000 +CT= 14f431771eddce4764c21a2254b5e3c8 +TEST= 100 +KEY= 00000000000000000000000010000000 +CT= 7039329f36f2ed682b02991f28d64679 +TEST= 101 +KEY= 00000000000000000000000008000000 +CT= 124ee24ede5551639db8b8b941f6141d +TEST= 102 +KEY= 00000000000000000000000004000000 +CT= c2852879a34d5184e478ec918b993fee +TEST= 103 +KEY= 00000000000000000000000002000000 +CT= 86a806a3525b93e432053c9ab5abbedf +TEST= 104 +KEY= 00000000000000000000000001000000 +CT= c1609bf5a4f07e37c17a36366ec23ecc +TEST= 105 +KEY= 00000000000000000000000000800000 +CT= 7e81e7cb92159a51ffcea331b1e8ea53 +TEST= 106 +KEY= 00000000000000000000000000400000 +CT= 37a7be002856c5a59a6e03eafce7729a +TEST= 107 +KEY= 00000000000000000000000000200000 +CT= bdf98a5a4f91e890c9a1d1e5faab138f +TEST= 108 +KEY= 00000000000000000000000000100000 +CT= 4e96acb66e051f2bc739cc3d3e34a26b +TEST= 109 +KEY= 00000000000000000000000000080000 +CT= ee996cdd120eb86e21ecfa49e8e1fcf1 +TEST= 110 +KEY= 00000000000000000000000000040000 +CT= 61b9e6b579dbf6070c351a1440dd85ff +TEST= 111 +KEY= 00000000000000000000000000020000 +CT= ac369e484316440b40dfc83aa96e28e7 +TEST= 112 +KEY= 00000000000000000000000000010000 +CT= 0a2d16de985c76d45c579c1159413bbe +TEST= 113 +KEY= 00000000000000000000000000008000 +CT= da3fdc38da1d374fa4802cda1a1c6b0f +TEST= 114 +KEY= 00000000000000000000000000004000 +CT= b842523d4c41c2211afe43a5800adce3 +TEST= 115 +KEY= 00000000000000000000000000002000 +CT= 9e2cda90d8e992dba6c73d8229567192 +TEST= 116 +KEY= 00000000000000000000000000001000 +CT= d49583b781d9e20f5be101415957fc49 +TEST= 117 +KEY= 00000000000000000000000000000800 +CT= ef09da5c12b376e458b9b8670032498e +TEST= 118 +KEY= 00000000000000000000000000000400 +CT= a96be0463da774461a5e1d5a9dd1ac10 +TEST= 119 +KEY= 00000000000000000000000000000200 +CT= 32cee3341060790d2d4b1362ef397090 +TEST= 120 +KEY= 00000000000000000000000000000100 +CT= 21cea416a3d3359d2c4d58fb6a035f06 +TEST= 121 +KEY= 00000000000000000000000000000080 +CT= 172aeab3d507678ecaf455c12587adb7 +TEST= 122 +KEY= 00000000000000000000000000000040 +CT= b6f897941ef8ebff9fe80a567ef38478 +TEST= 123 +KEY= 00000000000000000000000000000020 +CT= a9723259d94a7dc662fb0c782ca3f1dd +TEST= 124 +KEY= 00000000000000000000000000000010 +CT= 2f91c984b9a4839f30001b9f430493b4 +TEST= 125 +KEY= 00000000000000000000000000000008 +CT= 0472406345a610b048cb99ee0ef3fa0f +TEST= 126 +KEY= 00000000000000000000000000000004 +CT= f5f39086646f8c05ed16efa4b617957c +TEST= 127 +KEY= 00000000000000000000000000000002 +CT= 26d50f485a30408d5af47a5736292450 +TEST= 128 +KEY= 00000000000000000000000000000001 +CT= 0545aad56da2a97c3663d1432a3d1c84 diff --git a/src/regress/sys/crypto/aes/vectors/ecbvk48.txt b/src/regress/sys/crypto/aes/vectors/ecbvk48.txt new file mode 100644 index 000000000..e11c0c991 --- /dev/null +++ b/src/regress/sys/crypto/aes/vectors/ecbvk48.txt @@ -0,0 +1,782 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Key Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbvk48.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 256 + +PT= 00000000000000000000000000000000 +TEST= 0 +KEY= 0000000000000000000000000000000000000000000000000000000000000000 +CT= dc95c078a2408989ad48a21492842087 +TEST= 1 +KEY= 8000000000000000000000000000000000000000000000000000000000000000 +CT= e35a6dcb19b201a01ebcfa8aa22b5759 +TEST= 2 +KEY= 4000000000000000000000000000000000000000000000000000000000000000 +CT= 5075c2405b76f22f553488cae47ce90b +TEST= 3 +KEY= 2000000000000000000000000000000000000000000000000000000000000000 +CT= 49df95d844a0145a7de01c91793302d3 +TEST= 4 +KEY= 1000000000000000000000000000000000000000000000000000000000000000 +CT= e7396d778e940b8418a86120e5f421fe +TEST= 5 +KEY= 0800000000000000000000000000000000000000000000000000000000000000 +CT= 05f535c36fcede4657be37f4087db1ef +TEST= 6 +KEY= 0400000000000000000000000000000000000000000000000000000000000000 +CT= d0c1dddd10da777c68ab36af51f2c204 +TEST= 7 +KEY= 0200000000000000000000000000000000000000000000000000000000000000 +CT= 1c55fb811b5c6464c4e5de1535a75514 +TEST= 8 +KEY= 0100000000000000000000000000000000000000000000000000000000000000 +CT= 52917f3ae957d5230d3a2af57c7b5a71 +TEST= 9 +KEY= 0080000000000000000000000000000000000000000000000000000000000000 +CT= c6e3d5501752dd5e9aef086d6b45d705 +TEST= 10 +KEY= 0040000000000000000000000000000000000000000000000000000000000000 +CT= a24a9c7af1d9b1e17e1c9a3e711b3fa7 +TEST= 11 +KEY= 0020000000000000000000000000000000000000000000000000000000000000 +CT= b881eca724a6d43dbc6b96f6f59a0d20 +TEST= 12 +KEY= 0010000000000000000000000000000000000000000000000000000000000000 +CT= ec524d9a24dfff2a9639879b83b8e137 +TEST= 13 +KEY= 0008000000000000000000000000000000000000000000000000000000000000 +CT= 34c4f345f5466215a037f443635d6f75 +TEST= 14 +KEY= 0004000000000000000000000000000000000000000000000000000000000000 +CT= 5ba5055bedb8895f672e29f2eb5a355d +TEST= 15 +KEY= 0002000000000000000000000000000000000000000000000000000000000000 +CT= b3f692aa3a435259ebbef9b51ad1e08d +TEST= 16 +KEY= 0001000000000000000000000000000000000000000000000000000000000000 +CT= 414feb4376f2c64a5d2fbb2ed531ba7d +TEST= 17 +KEY= 0000800000000000000000000000000000000000000000000000000000000000 +CT= a20d519e3bca3303f07e81719f61605e +TEST= 18 +KEY= 0000400000000000000000000000000000000000000000000000000000000000 +CT= a08d10e520af811f45bd60a2dc0dc4b1 +TEST= 19 +KEY= 0000200000000000000000000000000000000000000000000000000000000000 +CT= b06893a8c563c430e6f3858826efbbe4 +TEST= 20 +KEY= 0000100000000000000000000000000000000000000000000000000000000000 +CT= 0ffee26ae2d3929c6bd9c6bedff84409 +TEST= 21 +KEY= 0000080000000000000000000000000000000000000000000000000000000000 +CT= 4d0f5e906ed77801fc0ef53edc5f9e2b +TEST= 22 +KEY= 0000040000000000000000000000000000000000000000000000000000000000 +CT= 8b6ec00119ad8b026dce56ea7defe930 +TEST= 23 +KEY= 0000020000000000000000000000000000000000000000000000000000000000 +CT= 69026591d43363ee9d83b5007f0b484e +TEST= 24 +KEY= 0000010000000000000000000000000000000000000000000000000000000000 +CT= 27135d86950c6a2f86872706279a4761 +TEST= 25 +KEY= 0000008000000000000000000000000000000000000000000000000000000000 +CT= 35e6db8723f281da410c3ac8535ed77c +TEST= 26 +KEY= 0000004000000000000000000000000000000000000000000000000000000000 +CT= 57427cf214b8c28e4bbf487ccb8d0e09 +TEST= 27 +KEY= 0000002000000000000000000000000000000000000000000000000000000000 +CT= 6df01bf56e5131ac87f96e99cab86367 +TEST= 28 +KEY= 0000001000000000000000000000000000000000000000000000000000000000 +CT= 3856c5b55790b768bbf7d43031579bcf +TEST= 29 +KEY= 0000000800000000000000000000000000000000000000000000000000000000 +CT= 1e6ed8fb7c15bc4d2f63ba7037ed44d0 +TEST= 30 +KEY= 0000000400000000000000000000000000000000000000000000000000000000 +CT= e1b2ed6cd8d93d455534e401156d4bcf +TEST= 31 +KEY= 0000000200000000000000000000000000000000000000000000000000000000 +CT= efbcca5bdfdad10e875f02336212ce36 +TEST= 32 +KEY= 0000000100000000000000000000000000000000000000000000000000000000 +CT= 0b777f02fd18dce2646dcfe868dfafad +TEST= 33 +KEY= 0000000080000000000000000000000000000000000000000000000000000000 +CT= c8a104b5693d1b14f5bf1f10100bf508 +TEST= 34 +KEY= 0000000040000000000000000000000000000000000000000000000000000000 +CT= 4cce6615244afcb38408fece219962ea +TEST= 35 +KEY= 0000000020000000000000000000000000000000000000000000000000000000 +CT= f99e7845d3a255b394c9c050cba258b1 +TEST= 36 +KEY= 0000000010000000000000000000000000000000000000000000000000000000 +CT= b4afbb787f9bcfb7b55fdf447f611295 +TEST= 37 +KEY= 0000000008000000000000000000000000000000000000000000000000000000 +CT= ae1c426a697faf2808b7ef6addb5c020 +TEST= 38 +KEY= 0000000004000000000000000000000000000000000000000000000000000000 +CT= 7572f92811a85b9bdd38dead9945bcae +TEST= 39 +KEY= 0000000002000000000000000000000000000000000000000000000000000000 +CT= 71bc7aa46e43fb95a181527d9f6a360f +TEST= 40 +KEY= 0000000001000000000000000000000000000000000000000000000000000000 +CT= 5542ef2923066f1ec8f546dd0d8e7ca8 +TEST= 41 +KEY= 0000000000800000000000000000000000000000000000000000000000000000 +CT= 6b92317c7d623790b748fdd7efc42422 +TEST= 42 +KEY= 0000000000400000000000000000000000000000000000000000000000000000 +CT= 0fe7c097e899c71ef045360f8d6c25cf +TEST= 43 +KEY= 0000000000200000000000000000000000000000000000000000000000000000 +CT= 4ece7ee107d0264d04693151c25b9df6 +TEST= 44 +KEY= 0000000000100000000000000000000000000000000000000000000000000000 +CT= fd6ae687cbfca9e301045888d3bb9605 +TEST= 45 +KEY= 0000000000080000000000000000000000000000000000000000000000000000 +CT= 476b579c8556c7254424902cc1d6d36e +TEST= 46 +KEY= 0000000000040000000000000000000000000000000000000000000000000000 +CT= 4133cbcdfdd6b8860a1fc18665d6d71b +TEST= 47 +KEY= 0000000000020000000000000000000000000000000000000000000000000000 +CT= 3b36ec2664798c108b816812c65dfdc7 +TEST= 48 +KEY= 0000000000010000000000000000000000000000000000000000000000000000 +CT= 364e20a234fea385d48dc5a09c9e70cf +TEST= 49 +KEY= 0000000000008000000000000000000000000000000000000000000000000000 +CT= 4a4ba25969de3f5ee5642c71aad0efd1 +TEST= 50 +KEY= 0000000000004000000000000000000000000000000000000000000000000000 +CT= e42cbaae43297f67a76c1c501bb79e36 +TEST= 51 +KEY= 0000000000002000000000000000000000000000000000000000000000000000 +CT= 23cededa4c15b4c037e8c61492217937 +TEST= 52 +KEY= 0000000000001000000000000000000000000000000000000000000000000000 +CT= a1719147a1f4a1a1180bd16e8593dcde +TEST= 53 +KEY= 0000000000000800000000000000000000000000000000000000000000000000 +CT= ab82337e9fb0ec60d1f25a1d0014192c +TEST= 54 +KEY= 0000000000000400000000000000000000000000000000000000000000000000 +CT= 74bf2d8fc5a8388df1a3a4d7d33fc164 +TEST= 55 +KEY= 0000000000000200000000000000000000000000000000000000000000000000 +CT= d5b493317e6fbc6fffd664b3c491368a +TEST= 56 +KEY= 0000000000000100000000000000000000000000000000000000000000000000 +CT= ba767381586da56a2a8d503d5f7ada0b +TEST= 57 +KEY= 0000000000000080000000000000000000000000000000000000000000000000 +CT= e8e6bc57dfe9ccadb0decabf4e5cf91f +TEST= 58 +KEY= 0000000000000040000000000000000000000000000000000000000000000000 +CT= 3c8e5a5cdc9ceed90815d1f84bb2998c +TEST= 59 +KEY= 0000000000000020000000000000000000000000000000000000000000000000 +CT= 283843020ba38f056001b2fd585f7cc9 +TEST= 60 +KEY= 0000000000000010000000000000000000000000000000000000000000000000 +CT= d8adc7426f623ece8741a70621d28870 +TEST= 61 +KEY= 0000000000000008000000000000000000000000000000000000000000000000 +CT= d7c5c215592d06f00e6a80da69a28ea9 +TEST= 62 +KEY= 0000000000000004000000000000000000000000000000000000000000000000 +CT= 52cf6fa433c3c870cac70190358f7f16 +TEST= 63 +KEY= 0000000000000002000000000000000000000000000000000000000000000000 +CT= f63d442a584da71786adec9f3346df75 +TEST= 64 +KEY= 0000000000000001000000000000000000000000000000000000000000000000 +CT= 549078f4b0ca7079b45f9a5adafafd99 +TEST= 65 +KEY= 0000000000000000800000000000000000000000000000000000000000000000 +CT= f2a5986ee4e9984be2bafb79ea8152fa +TEST= 66 +KEY= 0000000000000000400000000000000000000000000000000000000000000000 +CT= 8a74535017b4db2776668a1fae64384c +TEST= 67 +KEY= 0000000000000000200000000000000000000000000000000000000000000000 +CT= e613342f57a97fd95dc088711a5d0ecd +TEST= 68 +KEY= 0000000000000000100000000000000000000000000000000000000000000000 +CT= 3ffaebf6b22cf1dc82ae17cd48175b01 +TEST= 69 +KEY= 0000000000000000080000000000000000000000000000000000000000000000 +CT= bafd52efa15c248ccbf9757735e6b1ce +TEST= 70 +KEY= 0000000000000000040000000000000000000000000000000000000000000000 +CT= 7af94bc018d9ddd4539d2dd1c6f4000f +TEST= 71 +KEY= 0000000000000000020000000000000000000000000000000000000000000000 +CT= fe177ad61ca0fdb281086fba8fe76803 +TEST= 72 +KEY= 0000000000000000010000000000000000000000000000000000000000000000 +CT= 74dbea15e2e9285bad163d7d534251b6 +TEST= 73 +KEY= 0000000000000000008000000000000000000000000000000000000000000000 +CT= 23dd21331b3a92f200fe56ff050ffe74 +TEST= 74 +KEY= 0000000000000000004000000000000000000000000000000000000000000000 +CT= a69c5aa34ab20a858cafa766eaced6d8 +TEST= 75 +KEY= 0000000000000000002000000000000000000000000000000000000000000000 +CT= 3f72bb4df2a4f941a4a09cb78f04b97a +TEST= 76 +KEY= 0000000000000000001000000000000000000000000000000000000000000000 +CT= 72cc43577e1fd5fd14622d24d97fcdcc +TEST= 77 +KEY= 0000000000000000000800000000000000000000000000000000000000000000 +CT= d83af8ebe93e0b6b99cafade224937d1 +TEST= 78 +KEY= 0000000000000000000400000000000000000000000000000000000000000000 +CT= 44042329128d56caa8d084c8bd769d1e +TEST= 79 +KEY= 0000000000000000000200000000000000000000000000000000000000000000 +CT= 14102d72290de4f2c430add1ed64ba1d +TEST= 80 +KEY= 0000000000000000000100000000000000000000000000000000000000000000 +CT= 449124097b1ecd0ae7065206df06f03c +TEST= 81 +KEY= 0000000000000000000080000000000000000000000000000000000000000000 +CT= d060a99f8cc153a42e11e5f97bd7584a +TEST= 82 +KEY= 0000000000000000000040000000000000000000000000000000000000000000 +CT= 65605b3ea9261488d53e48602adea299 +TEST= 83 +KEY= 0000000000000000000020000000000000000000000000000000000000000000 +CT= c5e5cad7a208de8ea6be049efe5c7346 +TEST= 84 +KEY= 0000000000000000000010000000000000000000000000000000000000000000 +CT= 4c280c46d2181646048dd5bc0c0831a5 +TEST= 85 +KEY= 0000000000000000000008000000000000000000000000000000000000000000 +CT= 5dd65cf37f2a0929559aabafda08e730 +TEST= 86 +KEY= 0000000000000000000004000000000000000000000000000000000000000000 +CT= 31f2335caaf264172f69a693225e6d22 +TEST= 87 +KEY= 0000000000000000000002000000000000000000000000000000000000000000 +CT= 3e28b35f99a72662590da96426dd377f +TEST= 88 +KEY= 0000000000000000000001000000000000000000000000000000000000000000 +CT= 570f40f5d7b20441486578ed344343be +TEST= 89 +KEY= 0000000000000000000000800000000000000000000000000000000000000000 +CT= c54308ad1c9e3b19f8b7417873045a8c +TEST= 90 +KEY= 0000000000000000000000400000000000000000000000000000000000000000 +CT= cbf335e39ce13ade2b696179e8fd0ce1 +TEST= 91 +KEY= 0000000000000000000000200000000000000000000000000000000000000000 +CT= 9c2fbf422355d8293083d51f4a3c18a9 +TEST= 92 +KEY= 0000000000000000000000100000000000000000000000000000000000000000 +CT= 5ed8b5a31ecefab16c9aa6986da67bce +TEST= 93 +KEY= 0000000000000000000000080000000000000000000000000000000000000000 +CT= 627815dcfc814abc75900041b1dd7b59 +TEST= 94 +KEY= 0000000000000000000000040000000000000000000000000000000000000000 +CT= 9ef3e82a50a59f166260494f7a7f2cc3 +TEST= 95 +KEY= 0000000000000000000000020000000000000000000000000000000000000000 +CT= 878cd0d8d920888b5935d6c351128737 +TEST= 96 +KEY= 0000000000000000000000010000000000000000000000000000000000000000 +CT= e44429474d6fc3084eb2a6b8b46af754 +TEST= 97 +KEY= 0000000000000000000000008000000000000000000000000000000000000000 +CT= ebaacf9641d54e1fb18d0a2be4f19be5 +TEST= 98 +KEY= 0000000000000000000000004000000000000000000000000000000000000000 +CT= 13b3bf497cee780e123c7e193dea3a01 +TEST= 99 +KEY= 0000000000000000000000002000000000000000000000000000000000000000 +CT= 6e8f381de00a41161f0df03b4155bfd4 +TEST= 100 +KEY= 0000000000000000000000001000000000000000000000000000000000000000 +CT= 35e4f29bba2bae01144910783c3fef49 +TEST= 101 +KEY= 0000000000000000000000000800000000000000000000000000000000000000 +CT= 55b17bd66788ceac366398a31f289ffb +TEST= 102 +KEY= 0000000000000000000000000400000000000000000000000000000000000000 +CT= 11341f56c0d6d1008d28741daa7679ce +TEST= 103 +KEY= 0000000000000000000000000200000000000000000000000000000000000000 +CT= 4df7253df421d83358bdbe924745d98c +TEST= 104 +KEY= 0000000000000000000000000100000000000000000000000000000000000000 +CT= bae2ee651116d93edc8e83b5f3347be1 +TEST= 105 +KEY= 0000000000000000000000000080000000000000000000000000000000000000 +CT= f9721abd06709157183af3965a659d9d +TEST= 106 +KEY= 0000000000000000000000000040000000000000000000000000000000000000 +CT= 19a1c252a613fe2860a4ae6d75ce6fa3 +TEST= 107 +KEY= 0000000000000000000000000020000000000000000000000000000000000000 +CT= b5ddb2f5d9752c949fbde3fff5556c6e +TEST= 108 +KEY= 0000000000000000000000000010000000000000000000000000000000000000 +CT= 81b044fcffc78eccfcd171aad0405c66 +TEST= 109 +KEY= 0000000000000000000000000008000000000000000000000000000000000000 +CT= c640566d3c06020eb2c42f1d62e56a9b +TEST= 110 +KEY= 0000000000000000000000000004000000000000000000000000000000000000 +CT= ea6c4bcf425291679fdffd26a424fbcc +TEST= 111 +KEY= 0000000000000000000000000002000000000000000000000000000000000000 +CT= 57f6901465d9440d9f15ee2cba5a4090 +TEST= 112 +KEY= 0000000000000000000000000001000000000000000000000000000000000000 +CT= fbcfa74cadc7406260f63d96c8aab6b1 +TEST= 113 +KEY= 0000000000000000000000000000800000000000000000000000000000000000 +CT= dff4f096cea211d4bbdaca033d0ec7d1 +TEST= 114 +KEY= 0000000000000000000000000000400000000000000000000000000000000000 +CT= 1ee5190d551f0f42f675227a381296a9 +TEST= 115 +KEY= 0000000000000000000000000000200000000000000000000000000000000000 +CT= f98e1905012e580f097623c10b93054f +TEST= 116 +KEY= 0000000000000000000000000000100000000000000000000000000000000000 +CT= e7d43743d21dd3c9f168c86856558b9a +TEST= 117 +KEY= 0000000000000000000000000000080000000000000000000000000000000000 +CT= 632a9dda730dab67593c5d08d8ac1059 +TEST= 118 +KEY= 0000000000000000000000000000040000000000000000000000000000000000 +CT= e084317000715b9057bc9de9f3ab6124 +TEST= 119 +KEY= 0000000000000000000000000000020000000000000000000000000000000000 +CT= 61f9ef33a0bb4e666c2ed99101919fab +TEST= 120 +KEY= 0000000000000000000000000000010000000000000000000000000000000000 +CT= 6dc1d68a11834657d46703c22578d59a +TEST= 121 +KEY= 0000000000000000000000000000008000000000000000000000000000000000 +CT= 53ac1548863d3d16f1d4dc7242e05f2c +TEST= 122 +KEY= 0000000000000000000000000000004000000000000000000000000000000000 +CT= e82cd587a408306ad78ceae0916b9f8c +TEST= 123 +KEY= 0000000000000000000000000000002000000000000000000000000000000000 +CT= 0fd2d40ea6ad17a3a767f0a8600d6295 +TEST= 124 +KEY= 0000000000000000000000000000001000000000000000000000000000000000 +CT= ad84cc8255adb39dfca23f92761ae7e9 +TEST= 125 +KEY= 0000000000000000000000000000000800000000000000000000000000000000 +CT= f4f20cf7d51bee7da024a2b11a7eca0b +TEST= 126 +KEY= 0000000000000000000000000000000400000000000000000000000000000000 +CT= 5057691b85d9ce93a193214db0a016b6 +TEST= 127 +KEY= 0000000000000000000000000000000200000000000000000000000000000000 +CT= 0f58c960876390bdef4bb6be95caa1ee +TEST= 128 +KEY= 0000000000000000000000000000000100000000000000000000000000000000 +CT= 9a3e66eebc21bc0bd9430b341ef465fa +TEST= 129 +KEY= 0000000000000000000000000000000080000000000000000000000000000000 +CT= 20415035f34b8bcbcb28abf07f78f0d4 +TEST= 130 +KEY= 0000000000000000000000000000000040000000000000000000000000000000 +CT= ac89fc7ba10479ebf10de65bcef89b3c +TEST= 131 +KEY= 0000000000000000000000000000000020000000000000000000000000000000 +CT= 068fa75a30be443171af3f6feb1a20d2 +TEST= 132 +KEY= 0000000000000000000000000000000010000000000000000000000000000000 +CT= 50e02f213246c525a8c27700ca34b502 +TEST= 133 +KEY= 0000000000000000000000000000000008000000000000000000000000000000 +CT= 227da47d5a0906db3ab042bb0a695fb6 +TEST= 134 +KEY= 0000000000000000000000000000000004000000000000000000000000000000 +CT= 8663ac30ed12514f1de46777f4514bfc +TEST= 135 +KEY= 0000000000000000000000000000000002000000000000000000000000000000 +CT= a987d4bc12e1de9f4b6df43567c34a8b +TEST= 136 +KEY= 0000000000000000000000000000000001000000000000000000000000000000 +CT= 6d5a0370f599aca605f63b04e5143d0c +TEST= 137 +KEY= 0000000000000000000000000000000000800000000000000000000000000000 +CT= 9809266e378b07b7afdb3baa97b7e442 +TEST= 138 +KEY= 0000000000000000000000000000000000400000000000000000000000000000 +CT= 8f753252b30cccace12d9a301f4d5090 +TEST= 139 +KEY= 0000000000000000000000000000000000200000000000000000000000000000 +CT= 032465f6c0ce34d41962f561692a1aff +TEST= 140 +KEY= 0000000000000000000000000000000000100000000000000000000000000000 +CT= c50e9ad5beb8f3b00821dd47ff8ac093 +TEST= 141 +KEY= 0000000000000000000000000000000000080000000000000000000000000000 +CT= 9c6fea3d46268d54a6829b2ad25bb276 +TEST= 142 +KEY= 0000000000000000000000000000000000040000000000000000000000000000 +CT= 0fd8575e87706f561343d7b3a41e044a +TEST= 143 +KEY= 0000000000000000000000000000000000020000000000000000000000000000 +CT= bee9beb3739540d88cbce77925f0a114 +TEST= 144 +KEY= 0000000000000000000000000000000000010000000000000000000000000000 +CT= d24eaee7fffbac3d6f26c2dce0dcde28 +TEST= 145 +KEY= 0000000000000000000000000000000000008000000000000000000000000000 +CT= 47771a90398ff0f7fa821c2f8f5e1398 +TEST= 146 +KEY= 0000000000000000000000000000000000004000000000000000000000000000 +CT= 4639741b6f84b135ad118c8249b64ed0 +TEST= 147 +KEY= 0000000000000000000000000000000000002000000000000000000000000000 +CT= 8ee5505ec85567697a3306f250a27720 +TEST= 148 +KEY= 0000000000000000000000000000000000001000000000000000000000000000 +CT= 7c8a19ac1aefbc5e0119d91a5f05d4c2 +TEST= 149 +KEY= 0000000000000000000000000000000000000800000000000000000000000000 +CT= 5141b9b672e54773b672e3a6c424887b +TEST= 150 +KEY= 0000000000000000000000000000000000000400000000000000000000000000 +CT= b5a2d3cd206653c6402f34fb0ae3613d +TEST= 151 +KEY= 0000000000000000000000000000000000000200000000000000000000000000 +CT= 0f5bd9408738231d114b0a82753279a3 +TEST= 152 +KEY= 0000000000000000000000000000000000000100000000000000000000000000 +CT= fef033ff4268ea487fc74c5e43a45338 +TEST= 153 +KEY= 0000000000000000000000000000000000000080000000000000000000000000 +CT= a3edc09dcd529b113910d904ad855581 +TEST= 154 +KEY= 0000000000000000000000000000000000000040000000000000000000000000 +CT= ab8fbb6f27a0ac7c55b59fdd36b72f1c +TEST= 155 +KEY= 0000000000000000000000000000000000000020000000000000000000000000 +CT= eea44d5ed4d769cc930cd83d8999ec46 +TEST= 156 +KEY= 0000000000000000000000000000000000000010000000000000000000000000 +CT= 6972276803ae9aa7c6f431ab10979c34 +TEST= 157 +KEY= 0000000000000000000000000000000000000008000000000000000000000000 +CT= 86deaa9f39244101818178474d7dbde9 +TEST= 158 +KEY= 0000000000000000000000000000000000000004000000000000000000000000 +CT= 88c6b466ea361d662d8d08cbf181f4fe +TEST= 159 +KEY= 0000000000000000000000000000000000000002000000000000000000000000 +CT= 91ab2c6b7c63ff59f7cbeebf91b20b95 +TEST= 160 +KEY= 0000000000000000000000000000000000000001000000000000000000000000 +CT= 2dfe6c146ad5b3d8c3c1718f13b48e01 +TEST= 161 +KEY= 0000000000000000000000000000000000000000800000000000000000000000 +CT= c7cff1623451711391a302eec3584aaa +TEST= 162 +KEY= 0000000000000000000000000000000000000000400000000000000000000000 +CT= 089fe845cc05011686c66019d18be050 +TEST= 163 +KEY= 0000000000000000000000000000000000000000200000000000000000000000 +CT= 08c8410b9b427211a67124b0dccead48 +TEST= 164 +KEY= 0000000000000000000000000000000000000000100000000000000000000000 +CT= 8d91592f5566085254784606334d7629 +TEST= 165 +KEY= 0000000000000000000000000000000000000000080000000000000000000000 +CT= 3298feaaf2e1201d6299ff8846639c97 +TEST= 166 +KEY= 0000000000000000000000000000000000000000040000000000000000000000 +CT= c497cb9f0bdfe0efc8c2f3f90760aa72 +TEST= 167 +KEY= 0000000000000000000000000000000000000000020000000000000000000000 +CT= 2788afd046e0309cbe4424690da2ab89 +TEST= 168 +KEY= 0000000000000000000000000000000000000000010000000000000000000000 +CT= e9891707f25ef29fee372890d4258982 +TEST= 169 +KEY= 0000000000000000000000000000000000000000008000000000000000000000 +CT= db041d94a23d45d4d4dced5a030caf61 +TEST= 170 +KEY= 0000000000000000000000000000000000000000004000000000000000000000 +CT= ffafdbf0ecb18df9ea02c27077448e6d +TEST= 171 +KEY= 0000000000000000000000000000000000000000002000000000000000000000 +CT= 2daaa42a7d0a1d3b0e4761d99cf2150a +TEST= 172 +KEY= 0000000000000000000000000000000000000000001000000000000000000000 +CT= 3b7a54cb7cf30abe263dd6ed5bfe8d63 +TEST= 173 +KEY= 0000000000000000000000000000000000000000000800000000000000000000 +CT= eefa090174c590c448a55d43648f534a +TEST= 174 +KEY= 0000000000000000000000000000000000000000000400000000000000000000 +CT= 9e15798731ed42f43ea2740a691da872 +TEST= 175 +KEY= 0000000000000000000000000000000000000000000200000000000000000000 +CT= 31fbd661540a5deaad1017cfd3909ec8 +TEST= 176 +KEY= 0000000000000000000000000000000000000000000100000000000000000000 +CT= cda9ae05f224140e28cb951721b44d6a +TEST= 177 +KEY= 0000000000000000000000000000000000000000000080000000000000000000 +CT= 0c5bc512c60a1eac3434efb1a8fbb182 +TEST= 178 +KEY= 0000000000000000000000000000000000000000000040000000000000000000 +CT= aa863610deeeeb62d045e87ea30b59b5 +TEST= 179 +KEY= 0000000000000000000000000000000000000000000020000000000000000000 +CT= 6ac2448de568d279c7eebe1df403920c +TEST= 180 +KEY= 0000000000000000000000000000000000000000000010000000000000000000 +CT= e2011e3d292b26888ae801215fd0cb40 +TEST= 181 +KEY= 0000000000000000000000000000000000000000000008000000000000000000 +CT= e06f3e15ee3a61672d1c99bade5b9dbe +TEST= 182 +KEY= 0000000000000000000000000000000000000000000004000000000000000000 +CT= bb7027f0548cf6712ceb4c7a4b28e178 +TEST= 183 +KEY= 0000000000000000000000000000000000000000000002000000000000000000 +CT= 061ec21fb70fadbdf87c3bd2ae23825b +TEST= 184 +KEY= 0000000000000000000000000000000000000000000001000000000000000000 +CT= 4c21f26fe94abbac381352375314c3eb +TEST= 185 +KEY= 0000000000000000000000000000000000000000000000800000000000000000 +CT= f7cee6dd99909c2b569eeda61ed8942e +TEST= 186 +KEY= 0000000000000000000000000000000000000000000000400000000000000000 +CT= ce98c4a876c65e4ccb261ebb1d9df7f5 +TEST= 187 +KEY= 0000000000000000000000000000000000000000000000200000000000000000 +CT= a5491881cf833c3604abc08044f402ac +TEST= 188 +KEY= 0000000000000000000000000000000000000000000000100000000000000000 +CT= a1ba16e64cccb3087d57a768507b0bfc +TEST= 189 +KEY= 0000000000000000000000000000000000000000000000080000000000000000 +CT= d55951e202d2949ebd3be43120c738bf +TEST= 190 +KEY= 0000000000000000000000000000000000000000000000040000000000000000 +CT= ebb8e43069e69f450efec65dcd52b7fd +TEST= 191 +KEY= 0000000000000000000000000000000000000000000000020000000000000000 +CT= 2b292135663b4aa5abfe9423d57e7ee9 +TEST= 192 +KEY= 0000000000000000000000000000000000000000000000010000000000000000 +CT= e91bf974b3be3ad966249d8655292a85 +TEST= 193 +KEY= 0000000000000000000000000000000000000000000000008000000000000000 +CT= 384365998eaa9562236cc58f6adf9610 +TEST= 194 +KEY= 0000000000000000000000000000000000000000000000004000000000000000 +CT= c2e997012aa3d4d8d359c9a947cbe69f +TEST= 195 +KEY= 0000000000000000000000000000000000000000000000002000000000000000 +CT= f49421204148ba213be87e2d5c22b0bf +TEST= 196 +KEY= 0000000000000000000000000000000000000000000000001000000000000000 +CT= 82ed0ed9953aa92e4df30929ca65c00f +TEST= 197 +KEY= 0000000000000000000000000000000000000000000000000800000000000000 +CT= 291eb1d11653c8479437c74a977f5106 +TEST= 198 +KEY= 0000000000000000000000000000000000000000000000000400000000000000 +CT= bcb997b1939b8983abd550d6025683e3 +TEST= 199 +KEY= 0000000000000000000000000000000000000000000000000200000000000000 +CT= 1fba2592c6f489775caada71f9b983e9 +TEST= 200 +KEY= 0000000000000000000000000000000000000000000000000100000000000000 +CT= 969f66f217af1a3db9e41c1b29039824 +TEST= 201 +KEY= 0000000000000000000000000000000000000000000000000080000000000000 +CT= a54bb7d6b17e423ac0a7744c19073cb8 +TEST= 202 +KEY= 0000000000000000000000000000000000000000000000000040000000000000 +CT= b0ac6e6578d1021f47dcf9748a32ead5 +TEST= 203 +KEY= 0000000000000000000000000000000000000000000000000020000000000000 +CT= b87b361c3b7b194c77a4358d4669153e +TEST= 204 +KEY= 0000000000000000000000000000000000000000000000000010000000000000 +CT= 46a133847f96eaa8282a799dc8899d58 +TEST= 205 +KEY= 0000000000000000000000000000000000000000000000000008000000000000 +CT= 2265ec3a9f2d5c9547a091cc8cfb18ea +TEST= 206 +KEY= 0000000000000000000000000000000000000000000000000004000000000000 +CT= 54cbf3a6fc4fe56d426117aa1ffd1dde +TEST= 207 +KEY= 0000000000000000000000000000000000000000000000000002000000000000 +CT= 5312877cceab6cfb0905394a370a8003 +TEST= 208 +KEY= 0000000000000000000000000000000000000000000000000001000000000000 +CT= 7190bd6ec613fe38b84ecfe28f702fe4 +TEST= 209 +KEY= 0000000000000000000000000000000000000000000000000000800000000000 +CT= d1fa5b9ca89a43b04c05f0ef29ef68cd +TEST= 210 +KEY= 0000000000000000000000000000000000000000000000000000400000000000 +CT= 808285751548ed934fd1056d2d9ae8ba +TEST= 211 +KEY= 0000000000000000000000000000000000000000000000000000200000000000 +CT= 2758def3e7b95a9ae89777be64d5a6cf +TEST= 212 +KEY= 0000000000000000000000000000000000000000000000000000100000000000 +CT= 07d81f87db3e0acc82b01e08fb22f3c1 +TEST= 213 +KEY= 0000000000000000000000000000000000000000000000000000080000000000 +CT= 8da250e5553d650711a75ee1cb4fd1c7 +TEST= 214 +KEY= 0000000000000000000000000000000000000000000000000000040000000000 +CT= a93d946bd0e87f32719df5f158cee669 +TEST= 215 +KEY= 0000000000000000000000000000000000000000000000000000020000000000 +CT= 03945236ec2a4d4eaf30b8abeb54330d +TEST= 216 +KEY= 0000000000000000000000000000000000000000000000000000010000000000 +CT= 11cc35301f24b79dde31aea2d1354f88 +TEST= 217 +KEY= 0000000000000000000000000000000000000000000000000000008000000000 +CT= e73715b3e8d9a290f44ae6ffbf247e5d +TEST= 218 +KEY= 0000000000000000000000000000000000000000000000000000004000000000 +CT= 7345e07732b71cb158bbf64cca5c5b96 +TEST= 219 +KEY= 0000000000000000000000000000000000000000000000000000002000000000 +CT= 6e128f296d24705a1924fd9b70c4ed04 +TEST= 220 +KEY= 0000000000000000000000000000000000000000000000000000001000000000 +CT= 95a789776f036783fbd330947083f54f +TEST= 221 +KEY= 0000000000000000000000000000000000000000000000000000000800000000 +CT= 360dec2533ea4aa2e3e54fd3de2906eb +TEST= 222 +KEY= 0000000000000000000000000000000000000000000000000000000400000000 +CT= e68efd7fecf4d601ea22727bd764965b +TEST= 223 +KEY= 0000000000000000000000000000000000000000000000000000000200000000 +CT= 9065c64a8bff44ac33edbb611cf83d7b +TEST= 224 +KEY= 0000000000000000000000000000000000000000000000000000000100000000 +CT= 8f33c8df2a7a51ce8090e8f123bc3723 +TEST= 225 +KEY= 0000000000000000000000000000000000000000000000000000000080000000 +CT= 807f391ffba8291ba625623210f99018 +TEST= 226 +KEY= 0000000000000000000000000000000000000000000000000000000040000000 +CT= 5e8b3f3a701522ce5caa761c929d6292 +TEST= 227 +KEY= 0000000000000000000000000000000000000000000000000000000020000000 +CT= 3ba404dc38735a78289e3809e8364835 +TEST= 228 +KEY= 0000000000000000000000000000000000000000000000000000000010000000 +CT= d23bedbad229f8305dc425b6b759dcc9 +TEST= 229 +KEY= 0000000000000000000000000000000000000000000000000000000008000000 +CT= 44880f21cf5913040ae376aee2a10ad8 +TEST= 230 +KEY= 0000000000000000000000000000000000000000000000000000000004000000 +CT= 9bc98e29d057c0e828c3b5cce69256c1 +TEST= 231 +KEY= 0000000000000000000000000000000000000000000000000000000002000000 +CT= b293cc7a975da141a68279368057cc41 +TEST= 232 +KEY= 0000000000000000000000000000000000000000000000000000000001000000 +CT= 8d60fb87acd91385b313be5f1d7bd30f +TEST= 233 +KEY= 0000000000000000000000000000000000000000000000000000000000800000 +CT= 2c8e56132d70291b303c48fdf75543cd +TEST= 234 +KEY= 0000000000000000000000000000000000000000000000000000000000400000 +CT= d1f80035b826791f6ce4e59b7db1bb0d +TEST= 235 +KEY= 0000000000000000000000000000000000000000000000000000000000200000 +CT= 42ce6224fc36469339a133dd08173bd4 +TEST= 236 +KEY= 0000000000000000000000000000000000000000000000000000000000100000 +CT= 61817155ea41bcba2af7f06ae7cbf585 +TEST= 237 +KEY= 0000000000000000000000000000000000000000000000000000000000080000 +CT= d1923a9866068d2ef5fb77d57c3315b6 +TEST= 238 +KEY= 0000000000000000000000000000000000000000000000000000000000040000 +CT= b37cbdb5d719f49691ca968ef2e84140 +TEST= 239 +KEY= 0000000000000000000000000000000000000000000000000000000000020000 +CT= ec974e653a055d7f8f22171030f68e1d +TEST= 240 +KEY= 0000000000000000000000000000000000000000000000000000000000010000 +CT= dde5d3b9aad9c32213bb3675a822499c +TEST= 241 +KEY= 0000000000000000000000000000000000000000000000000000000000008000 +CT= d3b6e9216ea1ae57eb1c628a3c38ab78 +TEST= 242 +KEY= 0000000000000000000000000000000000000000000000000000000000004000 +CT= 82c99ecc69472b7e96324b042ae8b87a +TEST= 243 +KEY= 0000000000000000000000000000000000000000000000000000000000002000 +CT= 97144dc5338c43600f84439c0aa0d147 +TEST= 244 +KEY= 0000000000000000000000000000000000000000000000000000000000001000 +CT= 400ac4a0bbada1db2121eb144c7e5209 +TEST= 245 +KEY= 0000000000000000000000000000000000000000000000000000000000000800 +CT= efd9d550eb419ed278f4885a490ab54c +TEST= 246 +KEY= 0000000000000000000000000000000000000000000000000000000000000400 +CT= 2ab7816e149b7c0404c88a8857793670 +TEST= 247 +KEY= 0000000000000000000000000000000000000000000000000000000000000200 +CT= 5b591dff9e8dee15bad24c025dbca481 +TEST= 248 +KEY= 0000000000000000000000000000000000000000000000000000000000000100 +CT= 0c06633e30721c3749f49ad8cbf2b754 +TEST= 249 +KEY= 0000000000000000000000000000000000000000000000000000000000000080 +CT= 96d6d31a41b5123b2035fd91a921d4ca +TEST= 250 +KEY= 0000000000000000000000000000000000000000000000000000000000000040 +CT= e7f6c34d86668bc2805ca7793c5e86ad +TEST= 251 +KEY= 0000000000000000000000000000000000000000000000000000000000000020 +CT= f46dff5ff500d6879c4d3e45cf0cf0f3 +TEST= 252 +KEY= 0000000000000000000000000000000000000000000000000000000000000010 +CT= 60d842d9c61da7495c116197b7cecbbe +TEST= 253 +KEY= 0000000000000000000000000000000000000000000000000000000000000008 +CT= d45b24edb673353ebdf248b8fa06b67a +TEST= 254 +KEY= 0000000000000000000000000000000000000000000000000000000000000004 +CT= 119eaebcc165d0bd02c0d35dc82ef992 +TEST= 255 +KEY= 0000000000000000000000000000000000000000000000000000000000000002 +CT= e673143680414ada301d0ed34626b9fe +TEST= 256 +KEY= 0000000000000000000000000000000000000000000000000000000000000001 +CT= 6b6cfe160a6263631b292f879eeff926 diff --git a/src/regress/sys/crypto/aes/vectors/ecbvt44.txt b/src/regress/sys/crypto/aes/vectors/ecbvt44.txt new file mode 100644 index 000000000..d9e866b6f --- /dev/null +++ b/src/regress/sys/crypto/aes/vectors/ecbvt44.txt @@ -0,0 +1,398 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Text Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbvt44.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 128 + +KEY= 00000000000000000000000000000000 +TEST= 0 +PT= 00000000000000000000000000000000 +CT= 66e94bd4ef8a2c3b884cfa59ca342b2e +TEST= 1 +PT= 80000000000000000000000000000000 +CT= 3ad78e726c1ec02b7ebfe92b23d9ec34 +TEST= 2 +PT= 40000000000000000000000000000000 +CT= 45bc707d29e8204d88dfba2f0b0cad9b +TEST= 3 +PT= 20000000000000000000000000000000 +CT= 161556838018f52805cdbd6202002e3f +TEST= 4 +PT= 10000000000000000000000000000000 +CT= f5569b3ab6a6d11efde1bf0a64c6854a +TEST= 5 +PT= 08000000000000000000000000000000 +CT= 64e82b50e501fbd7dd4116921159b83e +TEST= 6 +PT= 04000000000000000000000000000000 +CT= baac12fb613a7de11450375c74034041 +TEST= 7 +PT= 02000000000000000000000000000000 +CT= bcf176a7eaad8085ebacea362462a281 +TEST= 8 +PT= 01000000000000000000000000000000 +CT= 47711816e91d6ff059bbbf2bf58e0fd3 +TEST= 9 +PT= 00800000000000000000000000000000 +CT= b970dfbe40698af1638fe38bd3df3b2f +TEST= 10 +PT= 00400000000000000000000000000000 +CT= f95b59a44f391e14cf20b74bdc32fcff +TEST= 11 +PT= 00200000000000000000000000000000 +CT= 720f74ae04a2a435b9a7256e49378f5b +TEST= 12 +PT= 00100000000000000000000000000000 +CT= 2a0445f61d36bfa7e277070730cf76da +TEST= 13 +PT= 00080000000000000000000000000000 +CT= 8d0536b997aefec1d94011bab6699a03 +TEST= 14 +PT= 00040000000000000000000000000000 +CT= 674f002e19f6ed47eff319e51fad4498 +TEST= 15 +PT= 00020000000000000000000000000000 +CT= 292c02c5cb9163c80ac0f6cf1dd8e92d +TEST= 16 +PT= 00010000000000000000000000000000 +CT= fa321cf18ef5fe727dd82a5c1e945141 +TEST= 17 +PT= 00008000000000000000000000000000 +CT= a5a7afe1034c39cccebe3c584bc0be05 +TEST= 18 +PT= 00004000000000000000000000000000 +CT= 4ff5a52e697e77d081205dbdb21cea39 +TEST= 19 +PT= 00002000000000000000000000000000 +CT= 209e88dc94c9003000ce0769af7b7166 +TEST= 20 +PT= 00001000000000000000000000000000 +CT= 5dee41af864cb4b650e5f51551824d38 +TEST= 21 +PT= 00000800000000000000000000000000 +CT= a79a63fa7e4503ae6d6e09f5f9053030 +TEST= 22 +PT= 00000400000000000000000000000000 +CT= a48316749fae7fac7002031a6afd8ba7 +TEST= 23 +PT= 00000200000000000000000000000000 +CT= d6eee8a7357a0e1d64262ca9c337ac42 +TEST= 24 +PT= 00000100000000000000000000000000 +CT= b013ca8a62a858053e9fb667ed39829e +TEST= 25 +PT= 00000080000000000000000000000000 +CT= df6ea9e4538a45a52d5c1a43c88f4b55 +TEST= 26 +PT= 00000040000000000000000000000000 +CT= 7d03ba451371591d3fd5547d9165c73b +TEST= 27 +PT= 00000020000000000000000000000000 +CT= 0e0426281a6277e186499d365d5f49ff +TEST= 28 +PT= 00000010000000000000000000000000 +CT= dbc02169dd2059e6cc4c57c1fedf5ab4 +TEST= 29 +PT= 00000008000000000000000000000000 +CT= 826590e05d167da6f00dcc75e22788eb +TEST= 30 +PT= 00000004000000000000000000000000 +CT= 34a73f21a04421d9786335faab49423a +TEST= 31 +PT= 00000002000000000000000000000000 +CT= ed347d0e0128ee1a7392a1d36ab78aa9 +TEST= 32 +PT= 00000001000000000000000000000000 +CT= ee944b2fe6e9fc888042608da9615f75 +TEST= 33 +PT= 00000000800000000000000000000000 +CT= 9e7c85a909ef7218ba7947cfb4718f46 +TEST= 34 +PT= 00000000400000000000000000000000 +CT= 811ae07a0b2b1f816587fa73699ae77d +TEST= 35 +PT= 00000000200000000000000000000000 +CT= 68466fbf43c2fe13d4b18f7ec5ea745f +TEST= 36 +PT= 00000000100000000000000000000000 +CT= d20b015c7191b219780956e6101f9354 +TEST= 37 +PT= 00000000080000000000000000000000 +CT= 5939d5c1bbf54ee1b3e326d757bdde25 +TEST= 38 +PT= 00000000040000000000000000000000 +CT= b1fdafe9a0240e8ffea19ce94b5105d3 +TEST= 39 +PT= 00000000020000000000000000000000 +CT= d62962ece02cdd68c06bdfefb2f9495b +TEST= 40 +PT= 00000000010000000000000000000000 +CT= b3bb2de6f3c26587ba8bac4f7ad9499a +TEST= 41 +PT= 00000000008000000000000000000000 +CT= e0b1072d6d9ff703d6fbef77852b0a6b +TEST= 42 +PT= 00000000004000000000000000000000 +CT= d8dd51c907f478de0228e83e61fd1758 +TEST= 43 +PT= 00000000002000000000000000000000 +CT= a42dffe6e7c1671c06a25236fdd10017 +TEST= 44 +PT= 00000000001000000000000000000000 +CT= 25acf141550bfab9ef451b6c6a5b2163 +TEST= 45 +PT= 00000000000800000000000000000000 +CT= 4da7fca3949b16e821dbc84f19581018 +TEST= 46 +PT= 00000000000400000000000000000000 +CT= 7d49b6347cbcc8919c7fa96a37a7a215 +TEST= 47 +PT= 00000000000200000000000000000000 +CT= 900024b29a08c6721b95ba3b753ddb4d +TEST= 48 +PT= 00000000000100000000000000000000 +CT= 6d2182fb283b6934d90ba7848cab5e66 +TEST= 49 +PT= 00000000000080000000000000000000 +CT= f73ef01b448d23a4d90de8b2f9666e7a +TEST= 50 +PT= 00000000000040000000000000000000 +CT= 4ad9cda2418643e9a3d926af5e6b0412 +TEST= 51 +PT= 00000000000020000000000000000000 +CT= 7caec8e7e5953997d545b033201c8c5b +TEST= 52 +PT= 00000000000010000000000000000000 +CT= 3c43ca1f6b6864503e27b48d88230cf5 +TEST= 53 +PT= 00000000000008000000000000000000 +CT= 44f779b93108fe9feec880d79ba74488 +TEST= 54 +PT= 00000000000004000000000000000000 +CT= 9e50e8d9cfd3a682a78e527c9072a1cf +TEST= 55 +PT= 00000000000002000000000000000000 +CT= 68d000cbc838bbe3c505d6f814c01f28 +TEST= 56 +PT= 00000000000001000000000000000000 +CT= 2cb2a9fec1acd1d9b0fa05205e304f57 +TEST= 57 +PT= 00000000000000800000000000000000 +CT= 01eb2806606e46444520a5cc6180cd4b +TEST= 58 +PT= 00000000000000400000000000000000 +CT= daa9b25168cc702326f217f1a0c0b162 +TEST= 59 +PT= 00000000000000200000000000000000 +CT= 3e07e648975d9578d03555b1755807ed +TEST= 60 +PT= 00000000000000100000000000000000 +CT= 0b45f52e802c8b8de09579425b80b711 +TEST= 61 +PT= 00000000000000080000000000000000 +CT= 659595da0b68f6df0dd6ca77202986e1 +TEST= 62 +PT= 00000000000000040000000000000000 +CT= 05ff42873893536e58c8fa98a45c73c4 +TEST= 63 +PT= 00000000000000020000000000000000 +CT= b5b03421de8bbffc4eadec767339a9bd +TEST= 64 +PT= 00000000000000010000000000000000 +CT= 788bcd111ecf73d4e78d2e21bef55460 +TEST= 65 +PT= 00000000000000008000000000000000 +CT= 909cd9ec6790359f982dc6f2393d5315 +TEST= 66 +PT= 00000000000000004000000000000000 +CT= 332950f361535ff24efac8c76293f12c +TEST= 67 +PT= 00000000000000002000000000000000 +CT= a68ccd4e330ffda9d576da436db53d75 +TEST= 68 +PT= 00000000000000001000000000000000 +CT= 27c8a1ccfdb0b015d1ed5b3e77143791 +TEST= 69 +PT= 00000000000000000800000000000000 +CT= d76a4b95887a77df610dd3e1d3b20325 +TEST= 70 +PT= 00000000000000000400000000000000 +CT= c068ab0de71c66dae83c361ef4b2d989 +TEST= 71 +PT= 00000000000000000200000000000000 +CT= c2120bcd49eda9a288b3b4be79ac8158 +TEST= 72 +PT= 00000000000000000100000000000000 +CT= 0c546f62bf2773cd0f564fceca7ba688 +TEST= 73 +PT= 00000000000000000080000000000000 +CT= 18f3462bede4920213ccb66dab1640aa +TEST= 74 +PT= 00000000000000000040000000000000 +CT= fe42f245edd0e24b216aebd8b392d690 +TEST= 75 +PT= 00000000000000000020000000000000 +CT= 3d3eebc8d3d1558a194c2d00c337ff2b +TEST= 76 +PT= 00000000000000000010000000000000 +CT= 29aaedf043e785db42836f79be6cba28 +TEST= 77 +PT= 00000000000000000008000000000000 +CT= 215f90c6744e2944358e78619159a611 +TEST= 78 +PT= 00000000000000000004000000000000 +CT= 8606b1aa9e1d548e5442b06551e2c6dc +TEST= 79 +PT= 00000000000000000002000000000000 +CT= 987bb4b8740ec0ede7fea97df033b5b1 +TEST= 80 +PT= 00000000000000000001000000000000 +CT= c0a3500da5b0ae07d2f450930beedf1b +TEST= 81 +PT= 00000000000000000000800000000000 +CT= 525fdf8312fe8f32c781481a8daaae37 +TEST= 82 +PT= 00000000000000000000400000000000 +CT= bfd2c56ae5fb9c9de33a6944572a6487 +TEST= 83 +PT= 00000000000000000000200000000000 +CT= 7975a57a425cdf5aa1fa929101f650b0 +TEST= 84 +PT= 00000000000000000000100000000000 +CT= bf174bc49609a8709b2cd8366daa79fe +TEST= 85 +PT= 00000000000000000000080000000000 +CT= 06c50c43222f56c874b1704e9f44bf7d +TEST= 86 +PT= 00000000000000000000040000000000 +CT= 0cec48cd34043ea29ca3b8ed5278721e +TEST= 87 +PT= 00000000000000000000020000000000 +CT= 9548ea34a1560197b304d0acb8a1698d +TEST= 88 +PT= 00000000000000000000010000000000 +CT= 22f9e9b1bd73b6b5b7d3062c986272f3 +TEST= 89 +PT= 00000000000000000000008000000000 +CT= fee8e934bd0873295059002230e298d4 +TEST= 90 +PT= 00000000000000000000004000000000 +CT= 1b08e2e3eb820d139cb4abbdbe81d00d +TEST= 91 +PT= 00000000000000000000002000000000 +CT= 0021177681e4d90ceaf69dced0145125 +TEST= 92 +PT= 00000000000000000000001000000000 +CT= 4a8e314452ca8a8a3619fc54bc423643 +TEST= 93 +PT= 00000000000000000000000800000000 +CT= 65047474f7222c94c6965425ff1bfd0a +TEST= 94 +PT= 00000000000000000000000400000000 +CT= e123f551a9c4a8489622b16f961a9aa4 +TEST= 95 +PT= 00000000000000000000000200000000 +CT= ef05530948b80915028bb2b6fe429380 +TEST= 96 +PT= 00000000000000000000000100000000 +CT= 72535b7fe0f0f777cedcd55cd77e2ddf +TEST= 97 +PT= 00000000000000000000000080000000 +CT= 3423d8efc31fa2f4c365c77d8f3b5c63 +TEST= 98 +PT= 00000000000000000000000040000000 +CT= de0e51c264663f3c5dbc59580a98d8e4 +TEST= 99 +PT= 00000000000000000000000020000000 +CT= b2d9391166680947ab09264156719679 +TEST= 100 +PT= 00000000000000000000000010000000 +CT= 10db79f23b06d263835c424af749adb7 +TEST= 101 +PT= 00000000000000000000000008000000 +CT= ddf72d27e6b01ec107ea3e005b59563b +TEST= 102 +PT= 00000000000000000000000004000000 +CT= 8266b57485a5954a4236751de07f6694 +TEST= 103 +PT= 00000000000000000000000002000000 +CT= 669a501e1f1ade6e5523de01d6dbc987 +TEST= 104 +PT= 00000000000000000000000001000000 +CT= c20c48f2989725d461d1db589dc0896e +TEST= 105 +PT= 00000000000000000000000000800000 +CT= de35158e7810ed1191825d2aa98fa97d +TEST= 106 +PT= 00000000000000000000000000400000 +CT= 4fe294f2c0f34d0671b693a237ebddc8 +TEST= 107 +PT= 00000000000000000000000000200000 +CT= 087ae74b10ccbfdf6739feb9559c01a4 +TEST= 108 +PT= 00000000000000000000000000100000 +CT= 5dc278970b7def77a5536c77ab59c207 +TEST= 109 +PT= 00000000000000000000000000080000 +CT= 7607f078c77085184eaa9b060c1fbfff +TEST= 110 +PT= 00000000000000000000000000040000 +CT= 9db841531bcbe7998dad19993fb3cc00 +TEST= 111 +PT= 00000000000000000000000000020000 +CT= d6a089b654854a94560bae13298835b8 +TEST= 112 +PT= 00000000000000000000000000010000 +CT= e1e223c4cf90cc5d195b370d65114622 +TEST= 113 +PT= 00000000000000000000000000008000 +CT= 1cbed73c50d053bdad372ceee54836a1 +TEST= 114 +PT= 00000000000000000000000000004000 +CT= d309e69376d257adf2bfda152b26555f +TEST= 115 +PT= 00000000000000000000000000002000 +CT= 740f7649117f0dee6eaa7789a9994c36 +TEST= 116 +PT= 00000000000000000000000000001000 +CT= 76ae64417c297184d668c5fd908b3ce5 +TEST= 117 +PT= 00000000000000000000000000000800 +CT= 6095fea4aa8035591f1787a819c48787 +TEST= 118 +PT= 00000000000000000000000000000400 +CT= d1ff4e7acd1c79967febab0f7465d450 +TEST= 119 +PT= 00000000000000000000000000000200 +CT= 5f5ad3c42b9489557bb63bf49ecf5f8a +TEST= 120 +PT= 00000000000000000000000000000100 +CT= fb56cc09b680b1d07c5a52149e29f07c +TEST= 121 +PT= 00000000000000000000000000000080 +CT= ff49b8df4a97cbe03833e66197620dad +TEST= 122 +PT= 00000000000000000000000000000040 +CT= 5e070ade533d2e090ed0f5be13bc0983 +TEST= 123 +PT= 00000000000000000000000000000020 +CT= 3ab4fb1d2b7ba376590a2c241d1f508d +TEST= 124 +PT= 00000000000000000000000000000010 +CT= 58b2431bc0bede02550f40238969ec78 +TEST= 125 +PT= 00000000000000000000000000000008 +CT= 0253786e126504f0dab90c48a30321de +TEST= 126 +PT= 00000000000000000000000000000004 +CT= 200211214e7394da2089b6acd093abe0 +TEST= 127 +PT= 00000000000000000000000000000002 +CT= 0388dace60b6a392f328c2b971b2fe78 +TEST= 128 +PT= 00000000000000000000000000000001 +CT= 58e2fccefa7e3061367f1d57a4e7455a diff --git a/src/regress/sys/crypto/aes/vectors/ecbvt48.txt b/src/regress/sys/crypto/aes/vectors/ecbvt48.txt new file mode 100644 index 000000000..b3b358f23 --- /dev/null +++ b/src/regress/sys/crypto/aes/vectors/ecbvt48.txt @@ -0,0 +1,398 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Text Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbvt48.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 256 + +KEY= 0000000000000000000000000000000000000000000000000000000000000000 +TEST= 0 +PT= 00000000000000000000000000000000 +CT= dc95c078a2408989ad48a21492842087 +TEST= 1 +PT= 80000000000000000000000000000000 +CT= ddc6bf790c15760d8d9aeb6f9a75fd4e +TEST= 2 +PT= 40000000000000000000000000000000 +CT= c7098c217c334d0c9bdf37ea13b0822c +TEST= 3 +PT= 20000000000000000000000000000000 +CT= 60f0fb0d4c56a8d4eefec5264204042d +TEST= 4 +PT= 10000000000000000000000000000000 +CT= 73376fbbf654d0686e0e84001477106b +TEST= 5 +PT= 08000000000000000000000000000000 +CT= 2f443b52ba5f0c6ea0602c7c4fd259b6 +TEST= 6 +PT= 04000000000000000000000000000000 +CT= 75d11b0e3a68c4223d88dbf017977dd7 +TEST= 7 +PT= 02000000000000000000000000000000 +CT= 779b38d15bffb63d8d609d551a5cc98e +TEST= 8 +PT= 01000000000000000000000000000000 +CT= 5275f3d86b4fb8684593133ebfa53cd3 +TEST= 9 +PT= 00800000000000000000000000000000 +CT= 1cef2074b336cec62f12dea2f6ab1481 +TEST= 10 +PT= 00400000000000000000000000000000 +CT= 1aef5abbad9d7160874578dcd8bae172 +TEST= 11 +PT= 00200000000000000000000000000000 +CT= 46c525db17e72f26bf03216846b6f609 +TEST= 12 +PT= 00100000000000000000000000000000 +CT= e24411f941bbe08788781e3ec52cbaa4 +TEST= 13 +PT= 00080000000000000000000000000000 +CT= 83a3dedd1dd27018f6a6477e40527581 +TEST= 14 +PT= 00040000000000000000000000000000 +CT= b68f8a2cdbab0c923c67fc8f0f1087de +TEST= 15 +PT= 00020000000000000000000000000000 +CT= 649944a70c32bf87a7409e7ae128fde8 +TEST= 16 +PT= 00010000000000000000000000000000 +CT= 2846526d67387539c89314de9e0c2d02 +TEST= 17 +PT= 00008000000000000000000000000000 +CT= a9a0b8402e53c70dd1688054ba58ddfd +TEST= 18 +PT= 00004000000000000000000000000000 +CT= 4a72e6e1b79c83ac4be3eba5699eed48 +TEST= 19 +PT= 00002000000000000000000000000000 +CT= b0e36b867ba4ff2b77d0614b0e364e4c +TEST= 20 +PT= 00001000000000000000000000000000 +CT= 49b57de141f6418e3090f24ddd4014b6 +TEST= 21 +PT= 00000800000000000000000000000000 +CT= a6c0d5b9797258e1987ac5f6cd20146d +TEST= 22 +PT= 00000400000000000000000000000000 +CT= 426cf4bdcaa369175965d26e7c71eea2 +TEST= 23 +PT= 00000200000000000000000000000000 +CT= e27f484ce54bc99bc1a52bda3b518a26 +TEST= 24 +PT= 00000100000000000000000000000000 +CT= d16d186284c7e6ee64b8104e0ef20ba5 +TEST= 25 +PT= 00000080000000000000000000000000 +CT= 6431f8538ad54e1e044a9f71f8ef556b +TEST= 26 +PT= 00000040000000000000000000000000 +CT= ecd57ceb451d27eb96c55b2042257e8e +TEST= 27 +PT= 00000020000000000000000000000000 +CT= 4f0f188dc911b1954afbc734c9f68872 +TEST= 28 +PT= 00000010000000000000000000000000 +CT= b54def0337626b65614e81edfde620f3 +TEST= 29 +PT= 00000008000000000000000000000000 +CT= 6655d8074cae0b90b0d3a3fe72d4d9db +TEST= 30 +PT= 00000004000000000000000000000000 +CT= c6b74b6b9eb4fc0c9a237db1b616d09a +TEST= 31 +PT= 00000002000000000000000000000000 +CT= d7b5d076ea56ec2b20791d7ad51ccf8f +TEST= 32 +PT= 00000001000000000000000000000000 +CT= fe160c224bf003ce3bddc90cb52ed22c +TEST= 33 +PT= 00000000800000000000000000000000 +CT= 5e00da9ba94b5ec0d258d8a8002e0f6a +TEST= 34 +PT= 00000000400000000000000000000000 +CT= 09ac6dcff4dacff1651e2ba212a292a3 +TEST= 35 +PT= 00000000200000000000000000000000 +CT= b283617e318d99af83a05d9810ba89f7 +TEST= 36 +PT= 00000000100000000000000000000000 +CT= 0b5f70ccb40b0ef2538ae9b4a9770b35 +TEST= 37 +PT= 00000000080000000000000000000000 +CT= 43282bf180248fb517839b37f4ddaae4 +TEST= 38 +PT= 00000000040000000000000000000000 +CT= ddbd534c8b2e6d30a268f88c55ad765b +TEST= 39 +PT= 00000000020000000000000000000000 +CT= a41a164e50ec2d9f175e752b755e0b5c +TEST= 40 +PT= 00000000010000000000000000000000 +CT= 37bff99ff2f7aa97779e4adf6f13fb10 +TEST= 41 +PT= 00000000008000000000000000000000 +CT= 9ba4f7bd298152903a683c4cec669216 +TEST= 42 +PT= 00000000004000000000000000000000 +CT= 5fb750c7ce10de7b4504248914d0da06 +TEST= 43 +PT= 00000000002000000000000000000000 +CT= 3e748bfa108e086f51d56ec74a9e0fb9 +TEST= 44 +PT= 00000000001000000000000000000000 +CT= 31d4e56b99f5b73c1b8437df332afb98 +TEST= 45 +PT= 00000000000800000000000000000000 +CT= 9dc6717b84fc55d266e7b1d9b5c52a5f +TEST= 46 +PT= 00000000000400000000000000000000 +CT= 8ef8ba007f23c0a50fc120e07041bccd +TEST= 47 +PT= 00000000000200000000000000000000 +CT= c58f38e1839fc1918a12b8c9e88c66b6 +TEST= 48 +PT= 00000000000100000000000000000000 +CT= b695d72a3fcf508c4050e12e40061c2d +TEST= 49 +PT= 00000000000080000000000000000000 +CT= 5d2736ad478a50583bc8c11beff16d7a +TEST= 50 +PT= 00000000000040000000000000000000 +CT= df0eaca8f17847ad41f9578f14c7b56b +TEST= 51 +PT= 00000000000020000000000000000000 +CT= e5aa14ad48ad0a3c47cc35d5f8020e51 +TEST= 52 +PT= 00000000000010000000000000000000 +CT= 11be6c8f58ebd8cef1a53f591a68e8ce +TEST= 53 +PT= 00000000000008000000000000000000 +CT= ecfe7bafcbf42c1fee015488770b3053 +TEST= 54 +PT= 00000000000004000000000000000000 +CT= e552649f8d8ec4a1e1cd6df50b6e6777 +TEST= 55 +PT= 00000000000002000000000000000000 +CT= 521c0629de93b9119cdb1ddc5809ddea +TEST= 56 +PT= 00000000000001000000000000000000 +CT= cb38a62a0bab1784156ba038cba99bf6 +TEST= 57 +PT= 00000000000000800000000000000000 +CT= 76ccee8aaacd394de1eef3dda10cb54b +TEST= 58 +PT= 00000000000000400000000000000000 +CT= 6aff910fa1d5673140e2db59b8416049 +TEST= 59 +PT= 00000000000000200000000000000000 +CT= 064a12c0ef73fb386801bf4f35f3120d +TEST= 60 +PT= 00000000000000100000000000000000 +CT= 2240e374929d5b1bb8ff0ffdddf640ec +TEST= 61 +PT= 00000000000000080000000000000000 +CT= d4ba15c904c7692185de85c02052e180 +TEST= 62 +PT= 00000000000000040000000000000000 +CT= 1714a315ab0166728a44cd91d4ae9018 +TEST= 63 +PT= 00000000000000020000000000000000 +CT= 6c970bdd9f0e222722ea31a1d12dd0ad +TEST= 64 +PT= 00000000000000010000000000000000 +CT= f5956edf02bd36a401bbb6ce77c3d3fb +TEST= 65 +PT= 00000000000000008000000000000000 +CT= 0ca11f122ccd7c259dc597eed3df9bc4 +TEST= 66 +PT= 00000000000000004000000000000000 +CT= 50109ab4912ad2560b206f331b62eb6c +TEST= 67 +PT= 00000000000000002000000000000000 +CT= dbe7c91a4175614889a2d4befd64845e +TEST= 68 +PT= 00000000000000001000000000000000 +CT= 0d3322853a571a6b46b79c0228e0dd25 +TEST= 69 +PT= 00000000000000000800000000000000 +CT= 96e4ee0bb9a11c6fb8522f285baddeb6 +TEST= 70 +PT= 00000000000000000400000000000000 +CT= 96705c52d2cfce82e630c93477c79c49 +TEST= 71 +PT= 00000000000000000200000000000000 +CT= c50130aed6a126149d71f3888c83c232 +TEST= 72 +PT= 00000000000000000100000000000000 +CT= 4816efe3deb380566eba0c17bf582090 +TEST= 73 +PT= 00000000000000000080000000000000 +CT= 0390857b4c8c98e4cf7a2b6f3394c507 +TEST= 74 +PT= 00000000000000000040000000000000 +CT= 422e73a02025ebe8b8b5d6e0fa24fcb2 +TEST= 75 +PT= 00000000000000000020000000000000 +CT= 3271aa7f4bf1d7c38050a43076d4ff76 +TEST= 76 +PT= 00000000000000000010000000000000 +CT= d2074946f0d37b8975607bfc2e70234c +TEST= 77 +PT= 00000000000000000008000000000000 +CT= 1a509194c1270ab92e5a42d3a9f8d98b +TEST= 78 +PT= 00000000000000000004000000000000 +CT= 512438946360ccc4a5c6d73f6eed7130 +TEST= 79 +PT= 00000000000000000002000000000000 +CT= 98cfcdec46ebea1a286b3004f2746a0d +TEST= 80 +PT= 00000000000000000001000000000000 +CT= a1cf369949677a3af3d58e3eabf2741b +TEST= 81 +PT= 00000000000000000000800000000000 +CT= d84c2e1a0e4a52166fa8ff6889d1e5e2 +TEST= 82 +PT= 00000000000000000000400000000000 +CT= 4ad91cceef60119b5078fd162d2735de +TEST= 83 +PT= 00000000000000000000200000000000 +CT= 2860793d818e97aaff1d339d7702438d +TEST= 84 +PT= 00000000000000000000100000000000 +CT= 6f9068be73364ae250d89d78a6c9ce6f +TEST= 85 +PT= 00000000000000000000080000000000 +CT= 024fc3fef4883feb1a8dd005305fecce +TEST= 86 +PT= 00000000000000000000040000000000 +CT= 08a61fe0816d75ea15eb3c9fb9ccded6 +TEST= 87 +PT= 00000000000000000000020000000000 +CT= 449c86dfa13f260175ce39797686ffa4 +TEST= 88 +PT= 00000000000000000000010000000000 +CT= 4ffffc29a59858e1133f2bfb1a8a4817 +TEST= 89 +PT= 00000000000000000000008000000000 +CT= 19425d1f6480b25096561295697dc2b7 +TEST= 90 +PT= 00000000000000000000004000000000 +CT= 31974727ecdd2c77c3a428fc3a8cb3fc +TEST= 91 +PT= 00000000000000000000002000000000 +CT= a57cd704b3c95e744d08df443458f2f5 +TEST= 92 +PT= 00000000000000000000001000000000 +CT= 486d8c193db1ed73acb17990442fc40b +TEST= 93 +PT= 00000000000000000000000800000000 +CT= 5e4dbf4e83ab3bc055b9fcc7a6b3a763 +TEST= 94 +PT= 00000000000000000000000400000000 +CT= acf2e0a693fbbcba4d41b861e0d89e37 +TEST= 95 +PT= 00000000000000000000000200000000 +CT= 32a7cb2ae066a51d2b78fc4b4cfcb608 +TEST= 96 +PT= 00000000000000000000000100000000 +CT= 677d494dbb73caf55c1990158da12f14 +TEST= 97 +PT= 00000000000000000000000080000000 +CT= 082a0d2367512adf0d75a151bfbe0a17 +TEST= 98 +PT= 00000000000000000000000040000000 +CT= 5e5bb7337923c482ce8cba249e6a8c7d +TEST= 99 +PT= 00000000000000000000000020000000 +CT= d3001ba7c7026ee3e5003179530afcfc +TEST= 100 +PT= 00000000000000000000000010000000 +CT= 46ec44f8931e629fe8fd8961312edde1 +TEST= 101 +PT= 00000000000000000000000008000000 +CT= c5f8ecd79c7b30e81d17e32079969310 +TEST= 102 +PT= 00000000000000000000000004000000 +CT= 5b8ad6919e24caebcc55401aee0c9802 +TEST= 103 +PT= 00000000000000000000000002000000 +CT= c2302b7e701b5cc7f8b29e3516dbbfa6 +TEST= 104 +PT= 00000000000000000000000001000000 +CT= a1d04d6a76f9f7a94d49faa64a87f244 +TEST= 105 +PT= 00000000000000000000000000800000 +CT= 7fb6f92d35b5cb6c631600edb9e860ba +TEST= 106 +PT= 00000000000000000000000000400000 +CT= b2ef7078bcface07aeec3f9b48830eb3 +TEST= 107 +PT= 00000000000000000000000000200000 +CT= f475a7493d24c7036e53390374c378b3 +TEST= 108 +PT= 00000000000000000000000000100000 +CT= b36802ac987377a37bd8eadc97c57d60 +TEST= 109 +PT= 00000000000000000000000000080000 +CT= addcd3d19689c4ddc738ce5f69dc9505 +TEST= 110 +PT= 00000000000000000000000000040000 +CT= 0daf8ca22884915403c0f0bb1f4bd74f +TEST= 111 +PT= 00000000000000000000000000020000 +CT= 4af36bae2660503b3248e4685059fd05 +TEST= 112 +PT= 00000000000000000000000000010000 +CT= 7d5631814dd8e917d97a0d514c743971 +TEST= 113 +PT= 00000000000000000000000000008000 +CT= bc3352500fc0cbb9db5b5f6b491c1be8 +TEST= 114 +PT= 00000000000000000000000000004000 +CT= 6a4a30ba87e87af65c90aeb7afedc76b +TEST= 115 +PT= 00000000000000000000000000002000 +CT= 77e6125897668ac8e73e8c79a6ff8336 +TEST= 116 +PT= 00000000000000000000000000001000 +CT= 3fa9d39104ebb323c7aaaa248960dd1e +TEST= 117 +PT= 00000000000000000000000000000800 +CT= fad75ad76ab10adc49036b250e229d39 +TEST= 118 +PT= 00000000000000000000000000000400 +CT= 2facaa5fe35b228a16ac74088d702ec4 +TEST= 119 +PT= 00000000000000000000000000000200 +CT= 88b6cbcfdfef8ad91720a1bb69a1f33e +TEST= 120 +PT= 00000000000000000000000000000100 +CT= c7e9d250998632d444356242ef04058d +TEST= 121 +PT= 00000000000000000000000000000080 +CT= b14dad8d3d9153f46c0d3a1ad63c7a05 +TEST= 122 +PT= 00000000000000000000000000000040 +CT= 60aba678a506608d0845966d29b5f790 +TEST= 123 +PT= 00000000000000000000000000000020 +CT= 482dc43f2388ef25d24144e144bd834e +TEST= 124 +PT= 00000000000000000000000000000010 +CT= 1490a05a7cee43bde98b56e309dc0126 +TEST= 125 +PT= 00000000000000000000000000000008 +CT= abfa77cd6e85da245fb0bdc5e52cfc29 +TEST= 126 +PT= 00000000000000000000000000000004 +CT= dd4ab1284d4ae17b41e85924470c36f7 +TEST= 127 +PT= 00000000000000000000000000000002 +CT= cea7403d4d606b6e074ec5d3baf39d18 +TEST= 128 +PT= 00000000000000000000000000000001 +CT= 530f8afbc74536b9a963b4f1c4cb738b diff --git a/src/regress/sys/crypto/aesctr/CVS/Entries b/src/regress/sys/crypto/aesctr/CVS/Entries new file mode 100644 index 000000000..a3ee376c2 --- /dev/null +++ b/src/regress/sys/crypto/aesctr/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed May 25 05:47:53 2005// +/aesctr.c/1.1/Wed May 25 05:47:53 2005// +D diff --git a/src/regress/sys/crypto/aesctr/CVS/Repository b/src/regress/sys/crypto/aesctr/CVS/Repository new file mode 100644 index 000000000..b2f6b677d --- /dev/null +++ b/src/regress/sys/crypto/aesctr/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/crypto/aesctr diff --git a/src/regress/sys/crypto/aesctr/CVS/Root b/src/regress/sys/crypto/aesctr/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/crypto/aesctr/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/crypto/aesctr/Makefile b/src/regress/sys/crypto/aesctr/Makefile new file mode 100644 index 000000000..31ae500f1 --- /dev/null +++ b/src/regress/sys/crypto/aesctr/Makefile @@ -0,0 +1,10 @@ +# $OpenBSD: Makefile,v 1.1 2005/05/25 05:47:53 markus Exp $ + +PROG= aesctr + +REGRESS_ROOT_TARGETS= run-regress-${PROG} + +run-regress-${PROG}: ${PROG} + ${SUDO} ./${PROG} + +.include diff --git a/src/regress/sys/crypto/aesctr/aesctr.c b/src/regress/sys/crypto/aesctr/aesctr.c new file mode 100644 index 000000000..4cc1a6e39 --- /dev/null +++ b/src/regress/sys/crypto/aesctr/aesctr.c @@ -0,0 +1,300 @@ +/* $OpenBSD: aesctr.c,v 1.1 2005/05/25 05:47:53 markus Exp $ */ + +/* + * Copyright (c) 2005 Markus Friedl + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int debug = 0; + +enum { TST_KEY, TST_IV, TST_PLAIN, TST_CIPHER, TST_NUM }; + +/* Test vectors from RFC 3686 */ +struct { + char *data[TST_NUM]; +} tests[] = { + /* 128 bit key */ + { + "AE 68 52 F8 12 10 67 CC 4B F7 A5 76 55 77 F3 9E " + "00 00 00 30", + "00 00 00 00 00 00 00 00", + "53 69 6E 67 6C 65 20 62 6C 6F 63 6B 20 6D 73 67", + "E4 09 5D 4F B7 A7 B3 79 2D 61 75 A3 26 13 11 B8" + }, + { + "7E 24 06 78 17 FA E0 D7 43 D6 CE 1F 32 53 91 63 " + "00 6C B6 DB", + "C0 54 3B 59 DA 48 D9 0B", + "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F " + "10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F", + "51 04 A1 06 16 8A 72 D9 79 0D 41 EE 8E DA D3 88 " + "EB 2E 1E FC 46 DA 57 C8 FC E6 30 DF 91 41 BE 28" + }, + { + "76 91 BE 03 5E 50 20 A8 AC 6E 61 85 29 F9 A0 DC " + "00 E0 01 7B", + "27 77 7F 3F 4A 17 86 F0", + "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F " + "10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F" + /*"20 21 22 23"*/, + "C1 CF 48 A8 9F 2F FD D9 CF 46 52 E9 EF DB 72 D7 " + "45 40 A4 2B DE 6D 78 36 D5 9A 5C EA AE F3 10 53" + /*"25 B2 07 2F"*/ + }, + /* 192 bit key */ + { + "16 AF 5B 14 5F C9 F5 79 C1 75 F9 3E 3B FB 0E ED " + "86 3D 06 CC FD B7 85 15 " + "00 00 00 48", + "36 73 3C 14 7D 6D 93 CB", + "53 69 6E 67 6C 65 20 62 6C 6F 63 6B 20 6D 73 67", + "4B 55 38 4F E2 59 C9 C8 4E 79 35 A0 03 CB E9 28", + }, + { + "7C 5C B2 40 1B 3D C3 3C 19 E7 34 08 19 E0 F6 9C " + "67 8C 3D B8 E6 F6 A9 1A " + "00 96 B0 3B", + "02 0C 6E AD C2 CB 50 0D", + "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F " + "10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F", + "45 32 43 FC 60 9B 23 32 7E DF AA FA 71 31 CD 9F " + "84 90 70 1C 5A D4 A7 9C FC 1F E0 FF 42 F4 FB 00", + }, + { + "02 BF 39 1E E8 EC B1 59 B9 59 61 7B 09 65 27 9B " + "F5 9B 60 A7 86 D3 E0 FE " + "00 07 BD FD", + "5C BD 60 27 8D CC 09 12", + "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F " + "10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F" + /*"20 21 22 23"*/, + "96 89 3F C5 5E 5C 72 2F 54 0B 7D D1 DD F7 E7 58 " + "D2 88 BC 95 C6 91 65 88 45 36 C8 11 66 2F 21 88" + /*"AB EE 09 35"*/, + }, + /* 256 bit key */ + { + "77 6B EF F2 85 1D B0 6F 4C 8A 05 42 C8 69 6F 6C " + "6A 81 AF 1E EC 96 B4 D3 7F C1 D6 89 E6 C1 C1 04 " + "00 00 00 60", + "DB 56 72 C9 7A A8 F0 B2", + "53 69 6E 67 6C 65 20 62 6C 6F 63 6B 20 6D 73 67", + "14 5A D0 1D BF 82 4E C7 56 08 63 DC 71 E3 E0 C0" + }, + { + "F6 D6 6D 6B D5 2D 59 BB 07 96 36 58 79 EF F8 86 " + "C6 6D D5 1A 5B 6A 99 74 4B 50 59 0C 87 A2 38 84 " + "00 FA AC 24", + "C1 58 5E F1 5A 43 D8 75", + "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F " + "10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F", + "F0 5E 23 1B 38 94 61 2C 49 EE 00 0B 80 4E B2 A9 " + "B8 30 6B 50 8F 83 9D 6A 55 30 83 1D 93 44 AF 1C", + }, + { + "FF 7A 61 7C E6 91 48 E4 F1 72 6E 2F 43 58 1D E2 " + "AA 62 D9 F8 05 53 2E DF F1 EE D6 87 FB 54 15 3D " + "00 1C C5 B7", + "51 A5 1D 70 A1 C1 11 48", + "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F " + "10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F" + /*"20 21 22 23"*/, + "EB 6C 52 82 1D 0B BB F7 CE 75 94 46 2A CA 4F AA " + "B4 07 DF 86 65 69 FD 07 F4 8C C0 B5 83 D6 07 1F" + /*"1E C0 E6 B8"*/, + }, +}; + +static int +syscrypt(const unsigned char *key, size_t klen, const unsigned char *iv, + const unsigned char *in, unsigned char *out, size_t len, int encrypt) +{ + struct session_op session; + struct crypt_op cryp; + int cryptodev_fd = -1, fd = -1; + + if ((cryptodev_fd = open("/dev/crypto", O_RDWR, 0)) < 0) { + warn("/dev/crypto"); + goto err; + } + if (ioctl(cryptodev_fd, CRIOGET, &fd) == -1) { + warn("CRIOGET failed"); + goto err; + } + memset(&session, 0, sizeof(session)); + session.cipher = CRYPTO_AES_CTR; + session.key = (caddr_t) key; + session.keylen = klen; + if (ioctl(fd, CIOCGSESSION, &session) == -1) { + warn("CIOCGSESSION"); + goto err; + } + memset(&cryp, 0, sizeof(cryp)); + cryp.ses = session.ses; + cryp.op = encrypt ? COP_ENCRYPT : COP_DECRYPT; + cryp.flags = 0; + cryp.len = len; + cryp.src = (caddr_t) in; + cryp.dst = (caddr_t) out; + cryp.iv = (caddr_t) iv; + cryp.mac = 0; + if (ioctl(fd, CIOCCRYPT, &cryp) == -1) { + warn("CIOCCRYPT"); + goto err; + } + if (ioctl(fd, CIOCFSESSION, &session.ses) == -1) { + warn("CIOCFSESSION"); + goto err; + } + close(fd); + close(cryptodev_fd); + return (0); + +err: + if (fd != -1) + close(fd); + if (cryptodev_fd != -1) + close(cryptodev_fd); + return (-1); +} + +static int +getallowsoft(void) +{ + int mib[2], old; + size_t olen; + + olen = sizeof(old); + + mib[0] = CTL_KERN; + mib[1] = KERN_CRYPTODEVALLOWSOFT; + if (sysctl(mib, 2, &old, &olen, NULL, 0) < 0) + err(1, "sysctl failed"); + + return old; +} + +static void +setallowsoft(int new) +{ + int mib[2], old; + size_t olen, nlen; + + olen = nlen = sizeof(new); + + mib[0] = CTL_KERN; + mib[1] = KERN_CRYPTODEVALLOWSOFT; + + if (sysctl(mib, 2, &old, &olen, &new, nlen) < 0) + err(1, "sysctl failed"); +} + +static int +match(unsigned char *a, unsigned char *b, size_t len) +{ + int i; + + if (memcmp(a, b, len) == 0) + return (1); + + warnx("ciphertext mismatch"); + + for (i = 0; i < len; i++) + printf("%2.2x", a[i]); + printf("\n"); + for (i = 0; i < len; i++) + printf("%2.2x", b[i]); + printf("\n"); + + return (0); +} + +static int +run(int num) +{ + int i, fail = 1, len, j, length[TST_NUM]; + u_long val; + char *ep, *from; + u_char *p, *data[TST_NUM]; + + for (i = 0; i < TST_NUM; i++) + data[i] = NULL; + for (i = 0; i < TST_NUM; i++) { + from = tests[num].data[i]; + if (debug) + printf("%s\n", from); + len = strlen(from); + if ((p = malloc(len)) == 0) { + warn("malloc"); + goto done; + } + errno = 0; + for (j = 0; j < len; j++) { + val = strtoul(&from[j*3], &ep, 16); + p[j] = (u_char)val; + if (*ep == '\0' || errno) + break; + } + length[i] = j+1; + data[i] = p; + } + len = length[TST_PLAIN]; + if ((p = malloc(len)) == 0) { + warn("malloc"); + return (1); + } + if (syscrypt(data[TST_KEY], length[TST_KEY], + data[TST_IV], data[TST_PLAIN], p, + length[TST_PLAIN], 0) < 0) { + warnx("crypt with /dev/crypto failed"); + goto done; + } + fail = !match(data[TST_CIPHER], p, len); + printf("%s test vector %d\n", fail ? "FAILED" : "OK", num); +done: + for (i = 0; i < TST_NUM; i++) + free(data[i]); + return (fail); +} + +int +main(int argc, char **argv) +{ + int allowed = 0, fail = 0, i; + + if (geteuid() == 0) { + allowed = getallowsoft(); + if (allowed == 0) + setallowsoft(1); + } + for (i = 0; i < (sizeof(tests) / sizeof(tests[0])); i++) + fail += run(i); + if (geteuid() == 0 && allowed == 0) + setallowsoft(0); + exit((fail > 0) ? 1 : 0); +} diff --git a/src/regress/sys/crypto/aesctr/obj b/src/regress/sys/crypto/aesctr/obj new file mode 120000 index 000000000..0cf781637 --- /dev/null +++ b/src/regress/sys/crypto/aesctr/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/crypto/aesctr \ No newline at end of file diff --git a/src/regress/sys/crypto/aesxts/CVS/Entries b/src/regress/sys/crypto/aesxts/CVS/Entries new file mode 100644 index 000000000..0ad08ac4c --- /dev/null +++ b/src/regress/sys/crypto/aesxts/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Jun 9 16:15:05 2008// +/aes_xts.c/1.1/Mon Jun 9 16:15:05 2008// +D diff --git a/src/regress/sys/crypto/aesxts/CVS/Repository b/src/regress/sys/crypto/aesxts/CVS/Repository new file mode 100644 index 000000000..7eff84c55 --- /dev/null +++ b/src/regress/sys/crypto/aesxts/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/crypto/aesxts diff --git a/src/regress/sys/crypto/aesxts/CVS/Root b/src/regress/sys/crypto/aesxts/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/crypto/aesxts/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/crypto/aesxts/Makefile b/src/regress/sys/crypto/aesxts/Makefile new file mode 100644 index 000000000..f4d0745bb --- /dev/null +++ b/src/regress/sys/crypto/aesxts/Makefile @@ -0,0 +1,21 @@ +# $OpenBSD: Makefile,v 1.1 2008/06/09 16:15:05 djm Exp $ + +PROG= aes_xts + +CDIAGFLAGS= -Wall +CDIAGFLAGS+= -Werror +CDIAGFLAGS+= -Wpointer-arith +CDIAGFLAGS+= -Wno-uninitialized +CDIAGFLAGS+= -Wstrict-prototypes +CDIAGFLAGS+= -Wmissing-prototypes +CDIAGFLAGS+= -Wunused +CDIAGFLAGS+= -Wsign-compare +CDIAGFLAGS+= -Wbounded +CDIAGFLAGS+= -Wshadow + +REGRESS_ROOT_TARGETS= run-regress-${PROG} + +run-regress-${PROG}: ${PROG} + ${SUDO} ./${PROG} + +.include diff --git a/src/regress/sys/crypto/aesxts/aes_xts.c b/src/regress/sys/crypto/aesxts/aes_xts.c new file mode 100644 index 000000000..4173a009a --- /dev/null +++ b/src/regress/sys/crypto/aesxts/aes_xts.c @@ -0,0 +1,1853 @@ +/* $OpenBSD: aes_xts.c,v 1.1 2008/06/09 16:15:05 djm Exp $ */ + +/* + * Copyright (c) 2002 Markus Friedl. All rights reserved. + * Copyright (c) 2008 Damien Miller. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int +syscrypt(const unsigned char *key, size_t klen, u_int64_t unit_number, + const unsigned char *in, unsigned char *out, size_t len, int do_encrypt) +{ + struct session_op session; + struct crypt_op cryp; + int cryptodev_fd = -1, fd = -1; + + if ((cryptodev_fd = open("/dev/crypto", O_RDWR, 0)) < 0) { + warn("/dev/crypto"); + goto err; + } + if (ioctl(cryptodev_fd, CRIOGET, &fd) == -1) { + warn("CRIOGET failed"); + goto err; + } + memset(&session, 0, sizeof(session)); + session.cipher = CRYPTO_AES_XTS; + session.key = (caddr_t) key; + session.keylen = klen; + if (ioctl(fd, CIOCGSESSION, &session) == -1) { + warn("CIOCGSESSION"); + goto err; + } + memset(&cryp, 0, sizeof(cryp)); + cryp.ses = session.ses; + cryp.op = do_encrypt ? COP_ENCRYPT : COP_DECRYPT; + cryp.flags = 0; + cryp.len = len; + cryp.src = (caddr_t) in; + cryp.dst = (caddr_t) out; + cryp.iv = (caddr_t) &unit_number; + cryp.mac = 0; + if (ioctl(fd, CIOCCRYPT, &cryp) == -1) { + warn("CIOCCRYPT"); + goto err; + } + if (ioctl(fd, CIOCFSESSION, &session.ses) == -1) { + warn("CIOCFSESSION"); + goto err; + } + close(fd); + close(cryptodev_fd); + return (0); + +err: + if (fd != -1) + close(fd); + if (cryptodev_fd != -1) + close(cryptodev_fd); + return (-1); +} + +static int +getallowsoft(void) +{ + int mib[2], old; + size_t olen; + + olen = sizeof(old); + + mib[0] = CTL_KERN; + mib[1] = KERN_CRYPTODEVALLOWSOFT; + if (sysctl(mib, 2, &old, &olen, NULL, 0) < 0) + err(1, "sysctl failed"); + + return old; +} + +static void +setallowsoft(int new) +{ + int mib[2], old; + size_t olen, nlen; + + olen = nlen = sizeof(new); + + mib[0] = CTL_KERN; + mib[1] = KERN_CRYPTODEVALLOWSOFT; + + if (sysctl(mib, 2, &old, &olen, &new, nlen) < 0) + err(1, "sysctl failed"); +} + +static int +match(unsigned char *a, unsigned char *b, size_t len) +{ + size_t i; + + if (memcmp(a, b, len) == 0) + return (1); + + warnx("decrypt/plaintext mismatch"); + + for (i = 0; i < len; i++) + printf("%2.2x", a[i]); + printf("\n"); + for (i = 0; i < len; i++) + printf("%2.2x", b[i]); + printf("\n"); + + return (0); +} + +struct aes_xts_tv { + u_int64_t seqno; + u_int key_len; + u_int8_t key[64]; + u_int text_len; + u_int8_t plaintext[512]; + u_int8_t ciphertext[512]; +}; + +struct aes_xts_tv aes_xts_test_vectors[] = { + { + 0x00000000ULL, + 32, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + 32, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, { + 0x91, 0x7c, 0xf6, 0x9e, 0xbd, 0x68, 0xb2, 0xec, + 0x9b, 0x9f, 0xe9, 0xa3, 0xea, 0xdd, 0xa6, 0x92, + 0xcd, 0x43, 0xd2, 0xf5, 0x95, 0x98, 0xed, 0x85, + 0x8c, 0x02, 0xc2, 0x65, 0x2f, 0xbf, 0x92, 0x2e, + }, + }, + { + 0x3333333333ULL, + 32, + { + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + }, + 32, + { + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + }, { + 0xc4, 0x54, 0x18, 0x5e, 0x6a, 0x16, 0x93, 0x6e, + 0x39, 0x33, 0x40, 0x38, 0xac, 0xef, 0x83, 0x8b, + 0xfb, 0x18, 0x6f, 0xff, 0x74, 0x80, 0xad, 0xc4, + 0x28, 0x93, 0x82, 0xec, 0xd6, 0xd3, 0x94, 0xf0, + }, + }, + { + 0x3333333333ULL, + 32, + { + 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, + 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + }, + 32, + { + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + }, { + 0xaf, 0x85, 0x33, 0x6b, 0x59, 0x7a, 0xfc, 0x1a, + 0x90, 0x0b, 0x2e, 0xb2, 0x1e, 0xc9, 0x49, 0xd2, + 0x92, 0xdf, 0x4c, 0x04, 0x7e, 0x0b, 0x21, 0x53, + 0x21, 0x86, 0xa5, 0x97, 0x1a, 0x22, 0x7a, 0x89, + }, + }, + { + 0x00000000ULL, + 32, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + }, + 512, + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, { + 0x27, 0xa7, 0x47, 0x9b, 0xef, 0xa1, 0xd4, 0x76, + 0x48, 0x9f, 0x30, 0x8c, 0xd4, 0xcf, 0xa6, 0xe2, + 0xa9, 0x6e, 0x4b, 0xbe, 0x32, 0x08, 0xff, 0x25, + 0x28, 0x7d, 0xd3, 0x81, 0x96, 0x16, 0xe8, 0x9c, + 0xc7, 0x8c, 0xf7, 0xf5, 0xe5, 0x43, 0x44, 0x5f, + 0x83, 0x33, 0xd8, 0xfa, 0x7f, 0x56, 0x00, 0x00, + 0x05, 0x27, 0x9f, 0xa5, 0xd8, 0xb5, 0xe4, 0xad, + 0x40, 0xe7, 0x36, 0xdd, 0xb4, 0xd3, 0x54, 0x12, + 0x32, 0x80, 0x63, 0xfd, 0x2a, 0xab, 0x53, 0xe5, + 0xea, 0x1e, 0x0a, 0x9f, 0x33, 0x25, 0x00, 0xa5, + 0xdf, 0x94, 0x87, 0xd0, 0x7a, 0x5c, 0x92, 0xcc, + 0x51, 0x2c, 0x88, 0x66, 0xc7, 0xe8, 0x60, 0xce, + 0x93, 0xfd, 0xf1, 0x66, 0xa2, 0x49, 0x12, 0xb4, + 0x22, 0x97, 0x61, 0x46, 0xae, 0x20, 0xce, 0x84, + 0x6b, 0xb7, 0xdc, 0x9b, 0xa9, 0x4a, 0x76, 0x7a, + 0xae, 0xf2, 0x0c, 0x0d, 0x61, 0xad, 0x02, 0x65, + 0x5e, 0xa9, 0x2d, 0xc4, 0xc4, 0xe4, 0x1a, 0x89, + 0x52, 0xc6, 0x51, 0xd3, 0x31, 0x74, 0xbe, 0x51, + 0xa1, 0x0c, 0x42, 0x11, 0x10, 0xe6, 0xd8, 0x15, + 0x88, 0xed, 0xe8, 0x21, 0x03, 0xa2, 0x52, 0xd8, + 0xa7, 0x50, 0xe8, 0x76, 0x8d, 0xef, 0xff, 0xed, + 0x91, 0x22, 0x81, 0x0a, 0xae, 0xb9, 0x9f, 0x91, + 0x72, 0xaf, 0x82, 0xb6, 0x04, 0xdc, 0x4b, 0x8e, + 0x51, 0xbc, 0xb0, 0x82, 0x35, 0xa6, 0xf4, 0x34, + 0x13, 0x32, 0xe4, 0xca, 0x60, 0x48, 0x2a, 0x4b, + 0xa1, 0xa0, 0x3b, 0x3e, 0x65, 0x00, 0x8f, 0xc5, + 0xda, 0x76, 0xb7, 0x0b, 0xf1, 0x69, 0x0d, 0xb4, + 0xea, 0xe2, 0x9c, 0x5f, 0x1b, 0xad, 0xd0, 0x3c, + 0x5c, 0xcf, 0x2a, 0x55, 0xd7, 0x05, 0xdd, 0xcd, + 0x86, 0xd4, 0x49, 0x51, 0x1c, 0xeb, 0x7e, 0xc3, + 0x0b, 0xf1, 0x2b, 0x1f, 0xa3, 0x5b, 0x91, 0x3f, + 0x9f, 0x74, 0x7a, 0x8a, 0xfd, 0x1b, 0x13, 0x0e, + 0x94, 0xbf, 0xf9, 0x4e, 0xff, 0xd0, 0x1a, 0x91, + 0x73, 0x5c, 0xa1, 0x72, 0x6a, 0xcd, 0x0b, 0x19, + 0x7c, 0x4e, 0x5b, 0x03, 0x39, 0x36, 0x97, 0xe1, + 0x26, 0x82, 0x6f, 0xb6, 0xbb, 0xde, 0x8e, 0xcc, + 0x1e, 0x08, 0x29, 0x85, 0x16, 0xe2, 0xc9, 0xed, + 0x03, 0xff, 0x3c, 0x1b, 0x78, 0x60, 0xf6, 0xde, + 0x76, 0xd4, 0xce, 0xcd, 0x94, 0xc8, 0x11, 0x98, + 0x55, 0xef, 0x52, 0x97, 0xca, 0x67, 0xe9, 0xf3, + 0xe7, 0xff, 0x72, 0xb1, 0xe9, 0x97, 0x85, 0xca, + 0x0a, 0x7e, 0x77, 0x20, 0xc5, 0xb3, 0x6d, 0xc6, + 0xd7, 0x2c, 0xac, 0x95, 0x74, 0xc8, 0xcb, 0xbc, + 0x2f, 0x80, 0x1e, 0x23, 0xe5, 0x6f, 0xd3, 0x44, + 0xb0, 0x7f, 0x22, 0x15, 0x4b, 0xeb, 0xa0, 0xf0, + 0x8c, 0xe8, 0x89, 0x1e, 0x64, 0x3e, 0xd9, 0x95, + 0xc9, 0x4d, 0x9a, 0x69, 0xc9, 0xf1, 0xb5, 0xf4, + 0x99, 0x02, 0x7a, 0x78, 0x57, 0x2a, 0xee, 0xbd, + 0x74, 0xd2, 0x0c, 0xc3, 0x98, 0x81, 0xc2, 0x13, + 0xee, 0x77, 0x0b, 0x10, 0x10, 0xe4, 0xbe, 0xa7, + 0x18, 0x84, 0x69, 0x77, 0xae, 0x11, 0x9f, 0x7a, + 0x02, 0x3a, 0xb5, 0x8c, 0xca, 0x0a, 0xd7, 0x52, + 0xaf, 0xe6, 0x56, 0xbb, 0x3c, 0x17, 0x25, 0x6a, + 0x9f, 0x6e, 0x9b, 0xf1, 0x9f, 0xdd, 0x5a, 0x38, + 0xfc, 0x82, 0xbb, 0xe8, 0x72, 0xc5, 0x53, 0x9e, + 0xdb, 0x60, 0x9e, 0xf4, 0xf7, 0x9c, 0x20, 0x3e, + 0xbb, 0x14, 0x0f, 0x2e, 0x58, 0x3c, 0xb2, 0xad, + 0x15, 0xb4, 0xaa, 0x5b, 0x65, 0x50, 0x16, 0xa8, + 0x44, 0x92, 0x77, 0xdb, 0xd4, 0x77, 0xef, 0x2c, + 0x8d, 0x6c, 0x01, 0x7d, 0xb7, 0x38, 0xb1, 0x8d, + 0xeb, 0x4a, 0x42, 0x7d, 0x19, 0x23, 0xce, 0x3f, + 0xf2, 0x62, 0x73, 0x57, 0x79, 0xa4, 0x18, 0xf2, + 0x0a, 0x28, 0x2d, 0xf9, 0x20, 0x14, 0x7b, 0xea, + 0xbe, 0x42, 0x1e, 0xe5, 0x31, 0x9d, 0x05, 0x68, + }, + }, + { + 0x00000001ULL, + 32, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + }, + 512, + { + 0x27, 0xa7, 0x47, 0x9b, 0xef, 0xa1, 0xd4, 0x76, + 0x48, 0x9f, 0x30, 0x8c, 0xd4, 0xcf, 0xa6, 0xe2, + 0xa9, 0x6e, 0x4b, 0xbe, 0x32, 0x08, 0xff, 0x25, + 0x28, 0x7d, 0xd3, 0x81, 0x96, 0x16, 0xe8, 0x9c, + 0xc7, 0x8c, 0xf7, 0xf5, 0xe5, 0x43, 0x44, 0x5f, + 0x83, 0x33, 0xd8, 0xfa, 0x7f, 0x56, 0x00, 0x00, + 0x05, 0x27, 0x9f, 0xa5, 0xd8, 0xb5, 0xe4, 0xad, + 0x40, 0xe7, 0x36, 0xdd, 0xb4, 0xd3, 0x54, 0x12, + 0x32, 0x80, 0x63, 0xfd, 0x2a, 0xab, 0x53, 0xe5, + 0xea, 0x1e, 0x0a, 0x9f, 0x33, 0x25, 0x00, 0xa5, + 0xdf, 0x94, 0x87, 0xd0, 0x7a, 0x5c, 0x92, 0xcc, + 0x51, 0x2c, 0x88, 0x66, 0xc7, 0xe8, 0x60, 0xce, + 0x93, 0xfd, 0xf1, 0x66, 0xa2, 0x49, 0x12, 0xb4, + 0x22, 0x97, 0x61, 0x46, 0xae, 0x20, 0xce, 0x84, + 0x6b, 0xb7, 0xdc, 0x9b, 0xa9, 0x4a, 0x76, 0x7a, + 0xae, 0xf2, 0x0c, 0x0d, 0x61, 0xad, 0x02, 0x65, + 0x5e, 0xa9, 0x2d, 0xc4, 0xc4, 0xe4, 0x1a, 0x89, + 0x52, 0xc6, 0x51, 0xd3, 0x31, 0x74, 0xbe, 0x51, + 0xa1, 0x0c, 0x42, 0x11, 0x10, 0xe6, 0xd8, 0x15, + 0x88, 0xed, 0xe8, 0x21, 0x03, 0xa2, 0x52, 0xd8, + 0xa7, 0x50, 0xe8, 0x76, 0x8d, 0xef, 0xff, 0xed, + 0x91, 0x22, 0x81, 0x0a, 0xae, 0xb9, 0x9f, 0x91, + 0x72, 0xaf, 0x82, 0xb6, 0x04, 0xdc, 0x4b, 0x8e, + 0x51, 0xbc, 0xb0, 0x82, 0x35, 0xa6, 0xf4, 0x34, + 0x13, 0x32, 0xe4, 0xca, 0x60, 0x48, 0x2a, 0x4b, + 0xa1, 0xa0, 0x3b, 0x3e, 0x65, 0x00, 0x8f, 0xc5, + 0xda, 0x76, 0xb7, 0x0b, 0xf1, 0x69, 0x0d, 0xb4, + 0xea, 0xe2, 0x9c, 0x5f, 0x1b, 0xad, 0xd0, 0x3c, + 0x5c, 0xcf, 0x2a, 0x55, 0xd7, 0x05, 0xdd, 0xcd, + 0x86, 0xd4, 0x49, 0x51, 0x1c, 0xeb, 0x7e, 0xc3, + 0x0b, 0xf1, 0x2b, 0x1f, 0xa3, 0x5b, 0x91, 0x3f, + 0x9f, 0x74, 0x7a, 0x8a, 0xfd, 0x1b, 0x13, 0x0e, + 0x94, 0xbf, 0xf9, 0x4e, 0xff, 0xd0, 0x1a, 0x91, + 0x73, 0x5c, 0xa1, 0x72, 0x6a, 0xcd, 0x0b, 0x19, + 0x7c, 0x4e, 0x5b, 0x03, 0x39, 0x36, 0x97, 0xe1, + 0x26, 0x82, 0x6f, 0xb6, 0xbb, 0xde, 0x8e, 0xcc, + 0x1e, 0x08, 0x29, 0x85, 0x16, 0xe2, 0xc9, 0xed, + 0x03, 0xff, 0x3c, 0x1b, 0x78, 0x60, 0xf6, 0xde, + 0x76, 0xd4, 0xce, 0xcd, 0x94, 0xc8, 0x11, 0x98, + 0x55, 0xef, 0x52, 0x97, 0xca, 0x67, 0xe9, 0xf3, + 0xe7, 0xff, 0x72, 0xb1, 0xe9, 0x97, 0x85, 0xca, + 0x0a, 0x7e, 0x77, 0x20, 0xc5, 0xb3, 0x6d, 0xc6, + 0xd7, 0x2c, 0xac, 0x95, 0x74, 0xc8, 0xcb, 0xbc, + 0x2f, 0x80, 0x1e, 0x23, 0xe5, 0x6f, 0xd3, 0x44, + 0xb0, 0x7f, 0x22, 0x15, 0x4b, 0xeb, 0xa0, 0xf0, + 0x8c, 0xe8, 0x89, 0x1e, 0x64, 0x3e, 0xd9, 0x95, + 0xc9, 0x4d, 0x9a, 0x69, 0xc9, 0xf1, 0xb5, 0xf4, + 0x99, 0x02, 0x7a, 0x78, 0x57, 0x2a, 0xee, 0xbd, + 0x74, 0xd2, 0x0c, 0xc3, 0x98, 0x81, 0xc2, 0x13, + 0xee, 0x77, 0x0b, 0x10, 0x10, 0xe4, 0xbe, 0xa7, + 0x18, 0x84, 0x69, 0x77, 0xae, 0x11, 0x9f, 0x7a, + 0x02, 0x3a, 0xb5, 0x8c, 0xca, 0x0a, 0xd7, 0x52, + 0xaf, 0xe6, 0x56, 0xbb, 0x3c, 0x17, 0x25, 0x6a, + 0x9f, 0x6e, 0x9b, 0xf1, 0x9f, 0xdd, 0x5a, 0x38, + 0xfc, 0x82, 0xbb, 0xe8, 0x72, 0xc5, 0x53, 0x9e, + 0xdb, 0x60, 0x9e, 0xf4, 0xf7, 0x9c, 0x20, 0x3e, + 0xbb, 0x14, 0x0f, 0x2e, 0x58, 0x3c, 0xb2, 0xad, + 0x15, 0xb4, 0xaa, 0x5b, 0x65, 0x50, 0x16, 0xa8, + 0x44, 0x92, 0x77, 0xdb, 0xd4, 0x77, 0xef, 0x2c, + 0x8d, 0x6c, 0x01, 0x7d, 0xb7, 0x38, 0xb1, 0x8d, + 0xeb, 0x4a, 0x42, 0x7d, 0x19, 0x23, 0xce, 0x3f, + 0xf2, 0x62, 0x73, 0x57, 0x79, 0xa4, 0x18, 0xf2, + 0x0a, 0x28, 0x2d, 0xf9, 0x20, 0x14, 0x7b, 0xea, + 0xbe, 0x42, 0x1e, 0xe5, 0x31, 0x9d, 0x05, 0x68, + }, { + 0x26, 0x4d, 0x3c, 0xa8, 0x51, 0x21, 0x94, 0xfe, + 0xc3, 0x12, 0xc8, 0xc9, 0x89, 0x1f, 0x27, 0x9f, + 0xef, 0xdd, 0x60, 0x8d, 0x0c, 0x02, 0x7b, 0x60, + 0x48, 0x3a, 0x3f, 0xa8, 0x11, 0xd6, 0x5e, 0xe5, + 0x9d, 0x52, 0xd9, 0xe4, 0x0e, 0xc5, 0x67, 0x2d, + 0x81, 0x53, 0x2b, 0x38, 0xb6, 0xb0, 0x89, 0xce, + 0x95, 0x1f, 0x0f, 0x9c, 0x35, 0x59, 0x0b, 0x8b, + 0x97, 0x8d, 0x17, 0x52, 0x13, 0xf3, 0x29, 0xbb, + 0x1c, 0x2f, 0xd3, 0x0f, 0x2f, 0x7f, 0x30, 0x49, + 0x2a, 0x61, 0xa5, 0x32, 0xa7, 0x9f, 0x51, 0xd3, + 0x6f, 0x5e, 0x31, 0xa7, 0xc9, 0xa1, 0x2c, 0x28, + 0x60, 0x82, 0xff, 0x7d, 0x23, 0x94, 0xd1, 0x8f, + 0x78, 0x3e, 0x1a, 0x8e, 0x72, 0xc7, 0x22, 0xca, + 0xaa, 0xa5, 0x2d, 0x8f, 0x06, 0x56, 0x57, 0xd2, + 0x63, 0x1f, 0xd2, 0x5b, 0xfd, 0x8e, 0x5b, 0xaa, + 0xd6, 0xe5, 0x27, 0xd7, 0x63, 0x51, 0x75, 0x01, + 0xc6, 0x8c, 0x5e, 0xdc, 0x3c, 0xdd, 0x55, 0x43, + 0x5c, 0x53, 0x2d, 0x71, 0x25, 0xc8, 0x61, 0x4d, + 0xee, 0xd9, 0xad, 0xaa, 0x3a, 0xca, 0xde, 0x58, + 0x88, 0xb8, 0x7b, 0xef, 0x64, 0x1c, 0x4c, 0x99, + 0x4c, 0x80, 0x91, 0xb5, 0xbc, 0xd3, 0x87, 0xf3, + 0x96, 0x3f, 0xb5, 0xbc, 0x37, 0xaa, 0x92, 0x2f, + 0xbf, 0xe3, 0xdf, 0x4e, 0x5b, 0x91, 0x5e, 0x6e, + 0xb5, 0x14, 0x71, 0x7b, 0xdd, 0x2a, 0x74, 0x07, + 0x9a, 0x50, 0x73, 0xf5, 0xc4, 0xbf, 0xd4, 0x6a, + 0xdf, 0x7d, 0x28, 0x2e, 0x7a, 0x39, 0x3a, 0x52, + 0x57, 0x9d, 0x11, 0xa0, 0x28, 0xda, 0x4d, 0x9c, + 0xd9, 0xc7, 0x71, 0x24, 0xf9, 0x64, 0x8e, 0xe3, + 0x83, 0xb1, 0xac, 0x76, 0x39, 0x30, 0xe7, 0x16, + 0x2a, 0x8d, 0x37, 0xf3, 0x50, 0xb2, 0xf7, 0x4b, + 0x84, 0x72, 0xcf, 0x09, 0x90, 0x20, 0x63, 0xc6, + 0xb3, 0x2e, 0x8c, 0x2d, 0x92, 0x90, 0xce, 0xfb, + 0xd7, 0x34, 0x6d, 0x1c, 0x77, 0x9a, 0x0d, 0xf5, + 0x0e, 0xdc, 0xde, 0x45, 0x31, 0xda, 0x07, 0xb0, + 0x99, 0xc6, 0x38, 0xe8, 0x3a, 0x75, 0x59, 0x44, + 0xdf, 0x2a, 0xef, 0x1a, 0xa3, 0x17, 0x52, 0xfd, + 0x32, 0x3d, 0xcb, 0x71, 0x0f, 0xb4, 0xbf, 0xbb, + 0x9d, 0x22, 0xb9, 0x25, 0xbc, 0x35, 0x77, 0xe1, + 0xb8, 0x94, 0x9e, 0x72, 0x9a, 0x90, 0xbb, 0xaf, + 0xea, 0xcf, 0x7f, 0x78, 0x79, 0xe7, 0xb1, 0x14, + 0x7e, 0x28, 0xba, 0x0b, 0xae, 0x94, 0x0d, 0xb7, + 0x95, 0xa6, 0x1b, 0x15, 0xec, 0xf4, 0xdf, 0x8d, + 0xb0, 0x7b, 0x82, 0x4b, 0xb0, 0x62, 0x80, 0x2c, + 0xc9, 0x8a, 0x95, 0x45, 0xbb, 0x2a, 0xae, 0xed, + 0x77, 0xcb, 0x3f, 0xc6, 0xdb, 0x15, 0xdc, 0xd7, + 0xd8, 0x0d, 0x7d, 0x5b, 0xc4, 0x06, 0xc4, 0x97, + 0x0a, 0x34, 0x78, 0xad, 0xa8, 0x89, 0x9b, 0x32, + 0x91, 0x98, 0xeb, 0x61, 0xc1, 0x93, 0xfb, 0x62, + 0x75, 0xaa, 0x8c, 0xa3, 0x40, 0x34, 0x4a, 0x75, + 0xa8, 0x62, 0xae, 0xbe, 0x92, 0xee, 0xe1, 0xce, + 0x03, 0x2f, 0xd9, 0x50, 0xb4, 0x7d, 0x77, 0x04, + 0xa3, 0x87, 0x69, 0x23, 0xb4, 0xad, 0x62, 0x84, + 0x4b, 0xf4, 0xa0, 0x9c, 0x4d, 0xbe, 0x8b, 0x43, + 0x97, 0x18, 0x4b, 0x74, 0x71, 0x36, 0x0c, 0x95, + 0x64, 0x88, 0x0a, 0xed, 0xdd, 0xb9, 0xba, 0xa4, + 0xaf, 0x2e, 0x75, 0x39, 0x4b, 0x08, 0xcd, 0x32, + 0xff, 0x47, 0x9c, 0x57, 0xa0, 0x7d, 0x3e, 0xab, + 0x5d, 0x54, 0xde, 0x5f, 0x97, 0x38, 0xb8, 0xd2, + 0x7f, 0x27, 0xa9, 0xf0, 0xab, 0x11, 0x79, 0x9d, + 0x7b, 0x7f, 0xfe, 0xfb, 0x27, 0x04, 0xc9, 0x5c, + 0x6a, 0xd1, 0x2c, 0x39, 0xf1, 0xe8, 0x67, 0xa4, + 0xb7, 0xb1, 0xd7, 0x81, 0x8a, 0x4b, 0x75, 0x3d, + 0xfd, 0x2a, 0x89, 0xcc, 0xb4, 0x5e, 0x00, 0x1a, + 0x03, 0xa8, 0x67, 0xb1, 0x87, 0xf2, 0x25, 0xdd, + }, + }, + { + 0x00000002ULL, + 32, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + }, + 512, + { + 0x26, 0x4d, 0x3c, 0xa8, 0x51, 0x21, 0x94, 0xfe, + 0xc3, 0x12, 0xc8, 0xc9, 0x89, 0x1f, 0x27, 0x9f, + 0xef, 0xdd, 0x60, 0x8d, 0x0c, 0x02, 0x7b, 0x60, + 0x48, 0x3a, 0x3f, 0xa8, 0x11, 0xd6, 0x5e, 0xe5, + 0x9d, 0x52, 0xd9, 0xe4, 0x0e, 0xc5, 0x67, 0x2d, + 0x81, 0x53, 0x2b, 0x38, 0xb6, 0xb0, 0x89, 0xce, + 0x95, 0x1f, 0x0f, 0x9c, 0x35, 0x59, 0x0b, 0x8b, + 0x97, 0x8d, 0x17, 0x52, 0x13, 0xf3, 0x29, 0xbb, + 0x1c, 0x2f, 0xd3, 0x0f, 0x2f, 0x7f, 0x30, 0x49, + 0x2a, 0x61, 0xa5, 0x32, 0xa7, 0x9f, 0x51, 0xd3, + 0x6f, 0x5e, 0x31, 0xa7, 0xc9, 0xa1, 0x2c, 0x28, + 0x60, 0x82, 0xff, 0x7d, 0x23, 0x94, 0xd1, 0x8f, + 0x78, 0x3e, 0x1a, 0x8e, 0x72, 0xc7, 0x22, 0xca, + 0xaa, 0xa5, 0x2d, 0x8f, 0x06, 0x56, 0x57, 0xd2, + 0x63, 0x1f, 0xd2, 0x5b, 0xfd, 0x8e, 0x5b, 0xaa, + 0xd6, 0xe5, 0x27, 0xd7, 0x63, 0x51, 0x75, 0x01, + 0xc6, 0x8c, 0x5e, 0xdc, 0x3c, 0xdd, 0x55, 0x43, + 0x5c, 0x53, 0x2d, 0x71, 0x25, 0xc8, 0x61, 0x4d, + 0xee, 0xd9, 0xad, 0xaa, 0x3a, 0xca, 0xde, 0x58, + 0x88, 0xb8, 0x7b, 0xef, 0x64, 0x1c, 0x4c, 0x99, + 0x4c, 0x80, 0x91, 0xb5, 0xbc, 0xd3, 0x87, 0xf3, + 0x96, 0x3f, 0xb5, 0xbc, 0x37, 0xaa, 0x92, 0x2f, + 0xbf, 0xe3, 0xdf, 0x4e, 0x5b, 0x91, 0x5e, 0x6e, + 0xb5, 0x14, 0x71, 0x7b, 0xdd, 0x2a, 0x74, 0x07, + 0x9a, 0x50, 0x73, 0xf5, 0xc4, 0xbf, 0xd4, 0x6a, + 0xdf, 0x7d, 0x28, 0x2e, 0x7a, 0x39, 0x3a, 0x52, + 0x57, 0x9d, 0x11, 0xa0, 0x28, 0xda, 0x4d, 0x9c, + 0xd9, 0xc7, 0x71, 0x24, 0xf9, 0x64, 0x8e, 0xe3, + 0x83, 0xb1, 0xac, 0x76, 0x39, 0x30, 0xe7, 0x16, + 0x2a, 0x8d, 0x37, 0xf3, 0x50, 0xb2, 0xf7, 0x4b, + 0x84, 0x72, 0xcf, 0x09, 0x90, 0x20, 0x63, 0xc6, + 0xb3, 0x2e, 0x8c, 0x2d, 0x92, 0x90, 0xce, 0xfb, + 0xd7, 0x34, 0x6d, 0x1c, 0x77, 0x9a, 0x0d, 0xf5, + 0x0e, 0xdc, 0xde, 0x45, 0x31, 0xda, 0x07, 0xb0, + 0x99, 0xc6, 0x38, 0xe8, 0x3a, 0x75, 0x59, 0x44, + 0xdf, 0x2a, 0xef, 0x1a, 0xa3, 0x17, 0x52, 0xfd, + 0x32, 0x3d, 0xcb, 0x71, 0x0f, 0xb4, 0xbf, 0xbb, + 0x9d, 0x22, 0xb9, 0x25, 0xbc, 0x35, 0x77, 0xe1, + 0xb8, 0x94, 0x9e, 0x72, 0x9a, 0x90, 0xbb, 0xaf, + 0xea, 0xcf, 0x7f, 0x78, 0x79, 0xe7, 0xb1, 0x14, + 0x7e, 0x28, 0xba, 0x0b, 0xae, 0x94, 0x0d, 0xb7, + 0x95, 0xa6, 0x1b, 0x15, 0xec, 0xf4, 0xdf, 0x8d, + 0xb0, 0x7b, 0x82, 0x4b, 0xb0, 0x62, 0x80, 0x2c, + 0xc9, 0x8a, 0x95, 0x45, 0xbb, 0x2a, 0xae, 0xed, + 0x77, 0xcb, 0x3f, 0xc6, 0xdb, 0x15, 0xdc, 0xd7, + 0xd8, 0x0d, 0x7d, 0x5b, 0xc4, 0x06, 0xc4, 0x97, + 0x0a, 0x34, 0x78, 0xad, 0xa8, 0x89, 0x9b, 0x32, + 0x91, 0x98, 0xeb, 0x61, 0xc1, 0x93, 0xfb, 0x62, + 0x75, 0xaa, 0x8c, 0xa3, 0x40, 0x34, 0x4a, 0x75, + 0xa8, 0x62, 0xae, 0xbe, 0x92, 0xee, 0xe1, 0xce, + 0x03, 0x2f, 0xd9, 0x50, 0xb4, 0x7d, 0x77, 0x04, + 0xa3, 0x87, 0x69, 0x23, 0xb4, 0xad, 0x62, 0x84, + 0x4b, 0xf4, 0xa0, 0x9c, 0x4d, 0xbe, 0x8b, 0x43, + 0x97, 0x18, 0x4b, 0x74, 0x71, 0x36, 0x0c, 0x95, + 0x64, 0x88, 0x0a, 0xed, 0xdd, 0xb9, 0xba, 0xa4, + 0xaf, 0x2e, 0x75, 0x39, 0x4b, 0x08, 0xcd, 0x32, + 0xff, 0x47, 0x9c, 0x57, 0xa0, 0x7d, 0x3e, 0xab, + 0x5d, 0x54, 0xde, 0x5f, 0x97, 0x38, 0xb8, 0xd2, + 0x7f, 0x27, 0xa9, 0xf0, 0xab, 0x11, 0x79, 0x9d, + 0x7b, 0x7f, 0xfe, 0xfb, 0x27, 0x04, 0xc9, 0x5c, + 0x6a, 0xd1, 0x2c, 0x39, 0xf1, 0xe8, 0x67, 0xa4, + 0xb7, 0xb1, 0xd7, 0x81, 0x8a, 0x4b, 0x75, 0x3d, + 0xfd, 0x2a, 0x89, 0xcc, 0xb4, 0x5e, 0x00, 0x1a, + 0x03, 0xa8, 0x67, 0xb1, 0x87, 0xf2, 0x25, 0xdd, + }, { + 0xfa, 0x76, 0x2a, 0x36, 0x80, 0xb7, 0x60, 0x07, + 0x92, 0x8e, 0xd4, 0xa4, 0xf4, 0x9a, 0x94, 0x56, + 0x03, 0x1b, 0x70, 0x47, 0x82, 0xe6, 0x5e, 0x16, + 0xce, 0xcb, 0x54, 0xed, 0x7d, 0x01, 0x7b, 0x5e, + 0x18, 0xab, 0xd6, 0x7b, 0x33, 0x8e, 0x81, 0x07, + 0x8f, 0x21, 0xed, 0xb7, 0x86, 0x8d, 0x90, 0x1e, + 0xbe, 0x9c, 0x73, 0x1a, 0x7c, 0x18, 0xb5, 0xe6, + 0xde, 0xc1, 0xd6, 0xa7, 0x2e, 0x07, 0x8a, 0xc9, + 0xa4, 0x26, 0x2f, 0x86, 0x0b, 0xee, 0xfa, 0x14, + 0xf4, 0xe8, 0x21, 0x01, 0x82, 0x72, 0xe4, 0x11, + 0xa9, 0x51, 0x50, 0x2b, 0x6e, 0x79, 0x06, 0x6e, + 0x84, 0x25, 0x2c, 0x33, 0x46, 0xf3, 0xaa, 0x62, + 0x34, 0x43, 0x51, 0xa2, 0x91, 0xd4, 0xbe, 0xdc, + 0x7a, 0x07, 0x61, 0x8b, 0xde, 0xa2, 0xaf, 0x63, + 0x14, 0x5c, 0xc7, 0xa4, 0xb8, 0xd4, 0x07, 0x06, + 0x91, 0xae, 0x89, 0x0c, 0xd6, 0x57, 0x33, 0xe7, + 0x94, 0x6e, 0x90, 0x21, 0xa1, 0xdf, 0xfc, 0x4c, + 0x59, 0xf1, 0x59, 0x42, 0x5e, 0xe6, 0xd5, 0x0c, + 0xa9, 0xb1, 0x35, 0xfa, 0x61, 0x62, 0xce, 0xa1, + 0x8a, 0x93, 0x98, 0x38, 0xdc, 0x00, 0x0f, 0xb3, + 0x86, 0xfa, 0xd0, 0x86, 0xac, 0xce, 0x5a, 0xc0, + 0x7c, 0xb2, 0xec, 0xe7, 0xfd, 0x58, 0x0b, 0x00, + 0xcf, 0xa5, 0xe9, 0x85, 0x89, 0x63, 0x1d, 0xc2, + 0x5e, 0x8e, 0x2a, 0x3d, 0xaf, 0x2f, 0xfd, 0xec, + 0x26, 0x53, 0x16, 0x59, 0x91, 0x2c, 0x9d, 0x8f, + 0x7a, 0x15, 0xe5, 0x86, 0x5e, 0xa8, 0xfb, 0x58, + 0x16, 0xd6, 0x20, 0x70, 0x52, 0xbd, 0x71, 0x28, + 0xcd, 0x74, 0x3c, 0x12, 0xc8, 0x11, 0x87, 0x91, + 0xa4, 0x73, 0x68, 0x11, 0x93, 0x5e, 0xb9, 0x82, + 0xa5, 0x32, 0x34, 0x9e, 0x31, 0xdd, 0x40, 0x1e, + 0x0b, 0x66, 0x0a, 0x56, 0x8c, 0xb1, 0xa4, 0x71, + 0x1f, 0x55, 0x2f, 0x55, 0xde, 0xd5, 0x9f, 0x1f, + 0x15, 0xbf, 0x71, 0x96, 0xb3, 0xca, 0x12, 0xa9, + 0x1e, 0x48, 0x8e, 0xf5, 0x9d, 0x64, 0xf3, 0xa0, + 0x2b, 0xf4, 0x52, 0x39, 0x49, 0x9a, 0xc6, 0x17, + 0x6a, 0xe3, 0x21, 0xc4, 0xa2, 0x11, 0xec, 0x54, + 0x53, 0x65, 0x97, 0x1c, 0x5d, 0x3f, 0x4f, 0x09, + 0xd4, 0xeb, 0x13, 0x9b, 0xfd, 0xf2, 0x07, 0x3d, + 0x33, 0x18, 0x0b, 0x21, 0x00, 0x2b, 0x65, 0xcc, + 0x98, 0x65, 0xe7, 0x6c, 0xb2, 0x4c, 0xd9, 0x2c, + 0x87, 0x4c, 0x24, 0xc1, 0x83, 0x50, 0x39, 0x9a, + 0x93, 0x6a, 0xb3, 0x63, 0x70, 0x79, 0x29, 0x5d, + 0x76, 0xc4, 0x17, 0x77, 0x6b, 0x94, 0xef, 0xce, + 0x3a, 0x0e, 0xf7, 0x20, 0x6b, 0x15, 0x11, 0x05, + 0x19, 0x65, 0x5c, 0x95, 0x6c, 0xbd, 0x8b, 0x24, + 0x89, 0x40, 0x5e, 0xe2, 0xb0, 0x9a, 0x6b, 0x6e, + 0xeb, 0xe0, 0xc5, 0x37, 0x90, 0xa1, 0x2a, 0x89, + 0x98, 0x37, 0x8b, 0x33, 0xa5, 0xb7, 0x11, 0x59, + 0x62, 0x5f, 0x4b, 0xa4, 0x9d, 0x2a, 0x2f, 0xdb, + 0xa5, 0x9f, 0xbf, 0x08, 0x97, 0xbc, 0x7a, 0xab, + 0xd8, 0xd7, 0x07, 0xdc, 0x14, 0x0a, 0x80, 0xf0, + 0xf3, 0x09, 0xf8, 0x35, 0xd3, 0xda, 0x54, 0xab, + 0x58, 0x4e, 0x50, 0x1d, 0xfa, 0x0e, 0xe9, 0x77, + 0xfe, 0xc5, 0x43, 0xf7, 0x41, 0x86, 0xa8, 0x02, + 0xb9, 0xa3, 0x7a, 0xdb, 0x3e, 0x82, 0x91, 0xec, + 0xa0, 0x4d, 0x66, 0x52, 0x0d, 0x22, 0x9e, 0x60, + 0x40, 0x1e, 0x72, 0x82, 0xbe, 0xf4, 0x86, 0xae, + 0x05, 0x9a, 0xa7, 0x06, 0x96, 0xe0, 0xe3, 0x05, + 0xd7, 0x77, 0x14, 0x0a, 0x7a, 0x88, 0x3e, 0xcd, + 0xcb, 0x69, 0xb9, 0xff, 0x93, 0x8e, 0x8a, 0x42, + 0x31, 0x86, 0x4c, 0x69, 0xca, 0x2c, 0x20, 0x43, + 0xbe, 0xd0, 0x07, 0xff, 0x3e, 0x60, 0x5e, 0x01, + 0x4b, 0xcf, 0x51, 0x81, 0x38, 0xdc, 0x3a, 0x25, + 0xc5, 0xe2, 0x36, 0x17, 0x1a, 0x2d, 0x01, 0xd6, + }, + }, + { + 0x000000fdULL, + 32, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + }, + 512, + { + 0x8e, 0x41, 0xb7, 0x8c, 0x39, 0x0b, 0x5a, 0xf9, + 0xd7, 0x58, 0xbb, 0x21, 0x4a, 0x67, 0xe9, 0xf6, + 0xbf, 0x77, 0x27, 0xb0, 0x9a, 0xc6, 0x12, 0x40, + 0x84, 0xc3, 0x76, 0x11, 0x39, 0x8f, 0xa4, 0x5d, + 0xaa, 0xd9, 0x48, 0x68, 0x60, 0x0e, 0xd3, 0x91, + 0xfb, 0x1a, 0xcd, 0x48, 0x57, 0xa9, 0x5b, 0x46, + 0x6e, 0x62, 0xef, 0x9f, 0x4b, 0x37, 0x72, 0x44, + 0xd1, 0xc1, 0x52, 0xe7, 0xb3, 0x0d, 0x73, 0x1a, + 0xad, 0x30, 0xc7, 0x16, 0xd2, 0x14, 0xb7, 0x07, + 0xae, 0xd9, 0x9e, 0xb5, 0xb5, 0xe5, 0x80, 0xb3, + 0xe8, 0x87, 0xcf, 0x74, 0x97, 0x46, 0x56, 0x51, + 0xd4, 0xb6, 0x0e, 0x60, 0x42, 0x05, 0x1d, 0xa3, + 0x69, 0x3c, 0x3b, 0x78, 0xc1, 0x44, 0x89, 0x54, + 0x3b, 0xe8, 0xb6, 0xad, 0x0b, 0xa6, 0x29, 0x56, + 0x5b, 0xba, 0x20, 0x23, 0x13, 0xba, 0x7b, 0x0d, + 0x0c, 0x94, 0xa3, 0x25, 0x2b, 0x67, 0x6f, 0x46, + 0xcc, 0x02, 0xce, 0x0f, 0x8a, 0x7d, 0x34, 0xc0, + 0xed, 0x22, 0x91, 0x29, 0x67, 0x3c, 0x1f, 0x61, + 0xae, 0xd5, 0x79, 0xd0, 0x8a, 0x92, 0x03, 0xa2, + 0x5a, 0xac, 0x3a, 0x77, 0xe9, 0xdb, 0x60, 0x26, + 0x79, 0x96, 0xdb, 0x38, 0xdf, 0x63, 0x73, 0x56, + 0xd9, 0xdc, 0xd1, 0x63, 0x2e, 0x36, 0x99, 0x39, + 0xf2, 0xa2, 0x9d, 0x89, 0x34, 0x5c, 0x66, 0xe0, + 0x50, 0x66, 0xf1, 0xa3, 0x67, 0x7a, 0xef, 0x18, + 0xde, 0xa4, 0x11, 0x3f, 0xae, 0xb6, 0x29, 0xe4, + 0x67, 0x21, 0xa6, 0x6d, 0x0a, 0x7e, 0x78, 0x5d, + 0x3e, 0x29, 0xaf, 0x25, 0x94, 0xeb, 0x67, 0xdf, + 0xa9, 0x82, 0xaf, 0xfe, 0x0a, 0xac, 0x05, 0x8f, + 0x6e, 0x15, 0x86, 0x42, 0x69, 0xb1, 0x35, 0x41, + 0x82, 0x61, 0xfc, 0x3a, 0xfb, 0x08, 0x94, 0x72, + 0xcf, 0x68, 0xc4, 0x5d, 0xd7, 0xf2, 0x31, 0xc6, + 0x24, 0x9b, 0xa0, 0x25, 0x5e, 0x1e, 0x03, 0x38, + 0x33, 0xfc, 0x4d, 0x00, 0xa3, 0xfe, 0x02, 0x13, + 0x2d, 0x7b, 0xc3, 0x87, 0x36, 0x14, 0xb8, 0xae, + 0xe3, 0x42, 0x73, 0x58, 0x1e, 0xa0, 0x32, 0x5c, + 0x81, 0xf0, 0x27, 0x0a, 0xff, 0xa1, 0x36, 0x41, + 0xd0, 0x52, 0xd3, 0x6f, 0x07, 0x57, 0xd4, 0x84, + 0x01, 0x43, 0x54, 0xd0, 0x2d, 0x68, 0x83, 0xca, + 0x15, 0xc2, 0x4d, 0x8c, 0x39, 0x56, 0xb1, 0xbd, + 0x02, 0x7b, 0xcf, 0x41, 0xf1, 0x51, 0xfd, 0x80, + 0x23, 0xc5, 0x34, 0x0e, 0x56, 0x06, 0xf3, 0x7e, + 0x90, 0xfd, 0xb8, 0x7c, 0x86, 0xfb, 0x4f, 0xa6, + 0x34, 0xb3, 0x71, 0x8a, 0x30, 0xba, 0xce, 0x06, + 0xa6, 0x6e, 0xaf, 0x8f, 0x63, 0xc4, 0xaa, 0x3b, + 0x63, 0x78, 0x26, 0xa8, 0x7f, 0xe8, 0xcf, 0xa4, + 0x42, 0x82, 0xe9, 0x2c, 0xb1, 0x61, 0x5a, 0xf3, + 0xa2, 0x8e, 0x53, 0xbc, 0x74, 0xc7, 0xcb, 0xa1, + 0xa0, 0x97, 0x7b, 0xe9, 0x06, 0x5d, 0x0c, 0x1a, + 0x5d, 0xec, 0x6c, 0x54, 0xae, 0x38, 0xd3, 0x7f, + 0x37, 0xaa, 0x35, 0x28, 0x3e, 0x04, 0x8e, 0x55, + 0x30, 0xa8, 0x5c, 0x4e, 0x7a, 0x29, 0xd7, 0xb9, + 0x2e, 0xc0, 0xc3, 0x16, 0x9c, 0xdf, 0x2a, 0x80, + 0x5c, 0x76, 0x04, 0xbc, 0xe6, 0x00, 0x49, 0xb9, + 0xfb, 0x7b, 0x8e, 0xaa, 0xc1, 0x0f, 0x51, 0xae, + 0x23, 0x79, 0x4c, 0xeb, 0xa6, 0x8b, 0xb5, 0x81, + 0x12, 0xe2, 0x93, 0xb9, 0xb6, 0x92, 0xca, 0x72, + 0x1b, 0x37, 0xc6, 0x62, 0xf8, 0x57, 0x4e, 0xd4, + 0xdb, 0xa6, 0xf8, 0x8e, 0x17, 0x08, 0x81, 0xc8, + 0x2c, 0xdd, 0xc1, 0x03, 0x4a, 0x0c, 0xa7, 0xe2, + 0x84, 0xbf, 0x09, 0x62, 0xb6, 0xb2, 0x62, 0x92, + 0xd8, 0x36, 0xfa, 0x9f, 0x73, 0xc1, 0xac, 0x77, + 0x0e, 0xef, 0x0f, 0x2d, 0x3a, 0x1e, 0xaf, 0x61, + 0xd3, 0xe0, 0x35, 0x55, 0xfd, 0x42, 0x4e, 0xed, + 0xd6, 0x7e, 0x18, 0xa1, 0x80, 0x94, 0xf8, 0x88, + }, { + 0xd5, 0x5f, 0x68, 0x4f, 0x81, 0xf4, 0x42, 0x6e, + 0x9f, 0xde, 0x92, 0xa5, 0xff, 0x02, 0xdf, 0x2a, + 0xc8, 0x96, 0xaf, 0x63, 0x96, 0x28, 0x88, 0xa9, + 0x79, 0x10, 0xc1, 0x37, 0x9e, 0x20, 0xb0, 0xa3, + 0xb1, 0xdb, 0x61, 0x3f, 0xb7, 0xfe, 0x2e, 0x07, + 0x00, 0x43, 0x29, 0xea, 0x5c, 0x22, 0xbf, 0xd3, + 0x3e, 0x3d, 0xbe, 0x4c, 0xf5, 0x8c, 0xc6, 0x08, + 0xc2, 0xc2, 0x6c, 0x19, 0xa2, 0xe2, 0xfe, 0x22, + 0xf9, 0x87, 0x32, 0xc2, 0xb5, 0xcb, 0x84, 0x4c, + 0xc6, 0xc0, 0x70, 0x2d, 0x91, 0xe1, 0xd5, 0x0f, + 0xc4, 0x38, 0x2a, 0x7e, 0xba, 0x56, 0x35, 0xcd, + 0x60, 0x24, 0x32, 0xa2, 0x30, 0x6a, 0xc4, 0xce, + 0x82, 0xf8, 0xd7, 0x0c, 0x8d, 0x9b, 0xc1, 0x5f, + 0x91, 0x8f, 0xe7, 0x1e, 0x74, 0xc6, 0x22, 0xd5, + 0xcf, 0x71, 0x17, 0x8b, 0xf6, 0xe0, 0xb9, 0xcc, + 0x9f, 0x2b, 0x41, 0xdd, 0x8d, 0xbe, 0x44, 0x1c, + 0x41, 0xcd, 0x0c, 0x73, 0xa6, 0xdc, 0x47, 0xa3, + 0x48, 0xf6, 0x70, 0x2f, 0x9d, 0x0e, 0x9b, 0x1b, + 0x14, 0x31, 0xe9, 0x48, 0xe2, 0x99, 0xb9, 0xec, + 0x22, 0x72, 0xab, 0x2c, 0x5f, 0x0c, 0x7b, 0xe8, + 0x6a, 0xff, 0xa5, 0xde, 0xc8, 0x7a, 0x0b, 0xee, + 0x81, 0xd3, 0xd5, 0x00, 0x07, 0xed, 0xaa, 0x2b, + 0xcf, 0xcc, 0xb3, 0x56, 0x05, 0x15, 0x5f, 0xf3, + 0x6e, 0xd8, 0xed, 0xd4, 0xa4, 0x0d, 0xcd, 0x4b, + 0x24, 0x3a, 0xcd, 0x11, 0xb2, 0xb9, 0x87, 0xbd, + 0xbf, 0xaf, 0x91, 0xa7, 0xca, 0xc2, 0x7e, 0x9c, + 0x5a, 0xea, 0x52, 0x5e, 0xe5, 0x3d, 0xe7, 0xb2, + 0xd3, 0x33, 0x2c, 0x86, 0x44, 0x40, 0x2b, 0x82, + 0x3e, 0x94, 0xa7, 0xdb, 0x26, 0x27, 0x6d, 0x2d, + 0x23, 0xaa, 0x07, 0x18, 0x0f, 0x76, 0xb4, 0xfd, + 0x29, 0xb9, 0xc0, 0x82, 0x30, 0x99, 0xc9, 0xd6, + 0x2c, 0x51, 0x98, 0x80, 0xae, 0xe7, 0xe9, 0x69, + 0x76, 0x17, 0xc1, 0x49, 0x7d, 0x47, 0xbf, 0x3e, + 0x57, 0x19, 0x50, 0x31, 0x14, 0x21, 0xb6, 0xb7, + 0x34, 0xd3, 0x8b, 0x0d, 0xb9, 0x1e, 0xb8, 0x53, + 0x31, 0xb9, 0x1e, 0xa9, 0xf6, 0x15, 0x30, 0xf5, + 0x45, 0x12, 0xa5, 0xa5, 0x2a, 0x4b, 0xad, 0x58, + 0x9e, 0xb6, 0x97, 0x81, 0xd5, 0x37, 0xf2, 0x32, + 0x97, 0xbb, 0x45, 0x9b, 0xda, 0xd2, 0x94, 0x8a, + 0x29, 0xe1, 0x55, 0x0b, 0xf4, 0x78, 0x7e, 0x0b, + 0xe9, 0x5b, 0xb1, 0x73, 0xcf, 0x5f, 0xab, 0x17, + 0xda, 0xb7, 0xa1, 0x3a, 0x05, 0x2a, 0x63, 0x45, + 0x3d, 0x97, 0xcc, 0xec, 0x1a, 0x32, 0x19, 0x54, + 0x88, 0x6b, 0x7a, 0x12, 0x99, 0xfa, 0xae, 0xec, + 0xae, 0x35, 0xc6, 0xea, 0xac, 0xa7, 0x53, 0xb0, + 0x41, 0xb5, 0xe5, 0xf0, 0x93, 0xbf, 0x83, 0x39, + 0x7f, 0xd2, 0x1d, 0xd6, 0xb3, 0x01, 0x20, 0x66, + 0xfc, 0xc0, 0x58, 0xcc, 0x32, 0xc3, 0xb0, 0x9d, + 0x75, 0x62, 0xde, 0xe2, 0x95, 0x09, 0xb5, 0x83, + 0x93, 0x92, 0xc9, 0xff, 0x05, 0xf5, 0x1f, 0x31, + 0x66, 0xaa, 0xac, 0x4a, 0xc5, 0xf2, 0x38, 0x03, + 0x8a, 0x30, 0x45, 0xe6, 0xf7, 0x2e, 0x48, 0xef, + 0x0f, 0xe8, 0xbc, 0x67, 0x5e, 0x82, 0xc3, 0x18, + 0xa2, 0x68, 0xe4, 0x39, 0x70, 0x27, 0x1b, 0xf1, + 0x19, 0xb8, 0x1b, 0xf6, 0xa9, 0x82, 0x74, 0x65, + 0x54, 0xf8, 0x4e, 0x72, 0xb9, 0xf0, 0x02, 0x80, + 0xa3, 0x20, 0xa0, 0x81, 0x42, 0x92, 0x3c, 0x23, + 0xc8, 0x83, 0x42, 0x3f, 0xf9, 0x49, 0x82, 0x7f, + 0x29, 0xbb, 0xac, 0xdc, 0x1c, 0xcd, 0xb0, 0x49, + 0x38, 0xce, 0x60, 0x98, 0xc9, 0x5b, 0xa6, 0xb3, + 0x25, 0x28, 0xf4, 0xef, 0x78, 0xee, 0xd7, 0x78, + 0xb2, 0xe1, 0x22, 0xdd, 0xfd, 0x1c, 0xbd, 0xd1, + 0x1d, 0x1c, 0x0a, 0x67, 0x83, 0xe0, 0x11, 0xfc, + 0x53, 0x6d, 0x63, 0xd0, 0x53, 0x26, 0x06, 0x37, + }, + }, + { + 0x000000feULL, + 32, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + }, + 512, + { + 0xd5, 0x5f, 0x68, 0x4f, 0x81, 0xf4, 0x42, 0x6e, + 0x9f, 0xde, 0x92, 0xa5, 0xff, 0x02, 0xdf, 0x2a, + 0xc8, 0x96, 0xaf, 0x63, 0x96, 0x28, 0x88, 0xa9, + 0x79, 0x10, 0xc1, 0x37, 0x9e, 0x20, 0xb0, 0xa3, + 0xb1, 0xdb, 0x61, 0x3f, 0xb7, 0xfe, 0x2e, 0x07, + 0x00, 0x43, 0x29, 0xea, 0x5c, 0x22, 0xbf, 0xd3, + 0x3e, 0x3d, 0xbe, 0x4c, 0xf5, 0x8c, 0xc6, 0x08, + 0xc2, 0xc2, 0x6c, 0x19, 0xa2, 0xe2, 0xfe, 0x22, + 0xf9, 0x87, 0x32, 0xc2, 0xb5, 0xcb, 0x84, 0x4c, + 0xc6, 0xc0, 0x70, 0x2d, 0x91, 0xe1, 0xd5, 0x0f, + 0xc4, 0x38, 0x2a, 0x7e, 0xba, 0x56, 0x35, 0xcd, + 0x60, 0x24, 0x32, 0xa2, 0x30, 0x6a, 0xc4, 0xce, + 0x82, 0xf8, 0xd7, 0x0c, 0x8d, 0x9b, 0xc1, 0x5f, + 0x91, 0x8f, 0xe7, 0x1e, 0x74, 0xc6, 0x22, 0xd5, + 0xcf, 0x71, 0x17, 0x8b, 0xf6, 0xe0, 0xb9, 0xcc, + 0x9f, 0x2b, 0x41, 0xdd, 0x8d, 0xbe, 0x44, 0x1c, + 0x41, 0xcd, 0x0c, 0x73, 0xa6, 0xdc, 0x47, 0xa3, + 0x48, 0xf6, 0x70, 0x2f, 0x9d, 0x0e, 0x9b, 0x1b, + 0x14, 0x31, 0xe9, 0x48, 0xe2, 0x99, 0xb9, 0xec, + 0x22, 0x72, 0xab, 0x2c, 0x5f, 0x0c, 0x7b, 0xe8, + 0x6a, 0xff, 0xa5, 0xde, 0xc8, 0x7a, 0x0b, 0xee, + 0x81, 0xd3, 0xd5, 0x00, 0x07, 0xed, 0xaa, 0x2b, + 0xcf, 0xcc, 0xb3, 0x56, 0x05, 0x15, 0x5f, 0xf3, + 0x6e, 0xd8, 0xed, 0xd4, 0xa4, 0x0d, 0xcd, 0x4b, + 0x24, 0x3a, 0xcd, 0x11, 0xb2, 0xb9, 0x87, 0xbd, + 0xbf, 0xaf, 0x91, 0xa7, 0xca, 0xc2, 0x7e, 0x9c, + 0x5a, 0xea, 0x52, 0x5e, 0xe5, 0x3d, 0xe7, 0xb2, + 0xd3, 0x33, 0x2c, 0x86, 0x44, 0x40, 0x2b, 0x82, + 0x3e, 0x94, 0xa7, 0xdb, 0x26, 0x27, 0x6d, 0x2d, + 0x23, 0xaa, 0x07, 0x18, 0x0f, 0x76, 0xb4, 0xfd, + 0x29, 0xb9, 0xc0, 0x82, 0x30, 0x99, 0xc9, 0xd6, + 0x2c, 0x51, 0x98, 0x80, 0xae, 0xe7, 0xe9, 0x69, + 0x76, 0x17, 0xc1, 0x49, 0x7d, 0x47, 0xbf, 0x3e, + 0x57, 0x19, 0x50, 0x31, 0x14, 0x21, 0xb6, 0xb7, + 0x34, 0xd3, 0x8b, 0x0d, 0xb9, 0x1e, 0xb8, 0x53, + 0x31, 0xb9, 0x1e, 0xa9, 0xf6, 0x15, 0x30, 0xf5, + 0x45, 0x12, 0xa5, 0xa5, 0x2a, 0x4b, 0xad, 0x58, + 0x9e, 0xb6, 0x97, 0x81, 0xd5, 0x37, 0xf2, 0x32, + 0x97, 0xbb, 0x45, 0x9b, 0xda, 0xd2, 0x94, 0x8a, + 0x29, 0xe1, 0x55, 0x0b, 0xf4, 0x78, 0x7e, 0x0b, + 0xe9, 0x5b, 0xb1, 0x73, 0xcf, 0x5f, 0xab, 0x17, + 0xda, 0xb7, 0xa1, 0x3a, 0x05, 0x2a, 0x63, 0x45, + 0x3d, 0x97, 0xcc, 0xec, 0x1a, 0x32, 0x19, 0x54, + 0x88, 0x6b, 0x7a, 0x12, 0x99, 0xfa, 0xae, 0xec, + 0xae, 0x35, 0xc6, 0xea, 0xac, 0xa7, 0x53, 0xb0, + 0x41, 0xb5, 0xe5, 0xf0, 0x93, 0xbf, 0x83, 0x39, + 0x7f, 0xd2, 0x1d, 0xd6, 0xb3, 0x01, 0x20, 0x66, + 0xfc, 0xc0, 0x58, 0xcc, 0x32, 0xc3, 0xb0, 0x9d, + 0x75, 0x62, 0xde, 0xe2, 0x95, 0x09, 0xb5, 0x83, + 0x93, 0x92, 0xc9, 0xff, 0x05, 0xf5, 0x1f, 0x31, + 0x66, 0xaa, 0xac, 0x4a, 0xc5, 0xf2, 0x38, 0x03, + 0x8a, 0x30, 0x45, 0xe6, 0xf7, 0x2e, 0x48, 0xef, + 0x0f, 0xe8, 0xbc, 0x67, 0x5e, 0x82, 0xc3, 0x18, + 0xa2, 0x68, 0xe4, 0x39, 0x70, 0x27, 0x1b, 0xf1, + 0x19, 0xb8, 0x1b, 0xf6, 0xa9, 0x82, 0x74, 0x65, + 0x54, 0xf8, 0x4e, 0x72, 0xb9, 0xf0, 0x02, 0x80, + 0xa3, 0x20, 0xa0, 0x81, 0x42, 0x92, 0x3c, 0x23, + 0xc8, 0x83, 0x42, 0x3f, 0xf9, 0x49, 0x82, 0x7f, + 0x29, 0xbb, 0xac, 0xdc, 0x1c, 0xcd, 0xb0, 0x49, + 0x38, 0xce, 0x60, 0x98, 0xc9, 0x5b, 0xa6, 0xb3, + 0x25, 0x28, 0xf4, 0xef, 0x78, 0xee, 0xd7, 0x78, + 0xb2, 0xe1, 0x22, 0xdd, 0xfd, 0x1c, 0xbd, 0xd1, + 0x1d, 0x1c, 0x0a, 0x67, 0x83, 0xe0, 0x11, 0xfc, + 0x53, 0x6d, 0x63, 0xd0, 0x53, 0x26, 0x06, 0x37, + }, { + 0x72, 0xef, 0xc1, 0xeb, 0xfe, 0x1e, 0xe2, 0x59, + 0x75, 0xa6, 0xeb, 0x3a, 0xa8, 0x58, 0x9d, 0xda, + 0x2b, 0x26, 0x1f, 0x1c, 0x85, 0xbd, 0xab, 0x44, + 0x2a, 0x9e, 0x5b, 0x2d, 0xd1, 0xd7, 0xc3, 0x95, + 0x7a, 0x16, 0xfc, 0x08, 0xe5, 0x26, 0xd4, 0xb1, + 0x22, 0x3f, 0x1b, 0x12, 0x32, 0xa1, 0x1a, 0xf2, + 0x74, 0xc3, 0xd7, 0x0d, 0xac, 0x57, 0xf8, 0x3e, + 0x09, 0x83, 0xc4, 0x98, 0xf1, 0xa6, 0xf1, 0xae, + 0xcb, 0x02, 0x1c, 0x3e, 0x70, 0x08, 0x5a, 0x1e, + 0x52, 0x7f, 0x1c, 0xe4, 0x1e, 0xe5, 0x91, 0x1a, + 0x82, 0x02, 0x01, 0x61, 0x52, 0x9c, 0xd8, 0x27, + 0x73, 0x76, 0x2d, 0xaf, 0x54, 0x59, 0xde, 0x94, + 0xa0, 0xa8, 0x2a, 0xda, 0xe7, 0xe1, 0x70, 0x3c, + 0x80, 0x85, 0x43, 0xc2, 0x9e, 0xd6, 0xfb, 0x32, + 0xd9, 0xe0, 0x04, 0x32, 0x7c, 0x13, 0x55, 0x18, + 0x0c, 0x99, 0x5a, 0x07, 0x74, 0x14, 0x93, 0xa0, + 0x9c, 0x21, 0xba, 0x01, 0xa3, 0x87, 0x88, 0x2d, + 0xa4, 0xf6, 0x25, 0x34, 0xb8, 0x7b, 0xb1, 0x5d, + 0x60, 0xd1, 0x97, 0x20, 0x1c, 0x0f, 0xd3, 0xbf, + 0x30, 0xc1, 0x50, 0x0a, 0x3e, 0xcf, 0xec, 0xdd, + 0x66, 0xd8, 0x72, 0x1f, 0x90, 0xbc, 0xc4, 0xc1, + 0x7e, 0xe9, 0x25, 0xc6, 0x1b, 0x0a, 0x03, 0x72, + 0x7a, 0x9c, 0x0d, 0x5f, 0x5c, 0xa4, 0x62, 0xfb, + 0xfa, 0x0a, 0xf1, 0xc2, 0x51, 0x3a, 0x9d, 0x9d, + 0x4b, 0x53, 0x45, 0xbd, 0x27, 0xa5, 0xf6, 0xe6, + 0x53, 0xf7, 0x51, 0x69, 0x3e, 0x6b, 0x6a, 0x2b, + 0x8e, 0xad, 0x57, 0xd5, 0x11, 0xe0, 0x0e, 0x58, + 0xc4, 0x5b, 0x7b, 0x8d, 0x00, 0x5a, 0xf7, 0x92, + 0x88, 0xf5, 0xc7, 0xc2, 0x2f, 0xd4, 0xf1, 0xbf, + 0x7a, 0x89, 0x8b, 0x03, 0xa5, 0x63, 0x4c, 0x6a, + 0x1a, 0xe3, 0xf9, 0xfa, 0xe5, 0xde, 0x4f, 0x29, + 0x6a, 0x28, 0x96, 0xb2, 0x3e, 0x7e, 0xd4, 0x3e, + 0xd1, 0x4f, 0xa5, 0xa2, 0x80, 0x3f, 0x4d, 0x28, + 0xf0, 0xd3, 0xff, 0xcf, 0x24, 0x75, 0x76, 0x77, + 0xae, 0xbd, 0xb4, 0x7b, 0xb3, 0x88, 0x37, 0x87, + 0x08, 0x94, 0x8a, 0x8d, 0x41, 0x26, 0xed, 0x18, + 0x39, 0xe0, 0xda, 0x29, 0xa5, 0x37, 0xa8, 0xc1, + 0x98, 0xb3, 0xc6, 0x6a, 0xb0, 0x07, 0x12, 0xdd, + 0x26, 0x16, 0x74, 0xbf, 0x45, 0xa7, 0x3d, 0x67, + 0xf7, 0x69, 0x14, 0xf8, 0x30, 0xca, 0x01, 0x4b, + 0x65, 0x59, 0x6f, 0x27, 0xe4, 0xcf, 0x62, 0xde, + 0x66, 0x12, 0x5a, 0x55, 0x66, 0xdf, 0x99, 0x75, + 0x15, 0x56, 0x28, 0xb4, 0x00, 0xfb, 0xfb, 0x3a, + 0x29, 0x04, 0x0e, 0xd5, 0x0f, 0xaf, 0xfd, 0xbb, + 0x18, 0xae, 0xce, 0x7c, 0x5c, 0x44, 0x69, 0x32, + 0x60, 0xaa, 0xb3, 0x86, 0xc0, 0xa3, 0x7b, 0x11, + 0xb1, 0x14, 0xf1, 0xc4, 0x15, 0xae, 0xbb, 0x65, + 0x3b, 0xe4, 0x68, 0x17, 0x94, 0x28, 0xd4, 0x3a, + 0x4d, 0x8b, 0xc3, 0xec, 0x38, 0x81, 0x3e, 0xca, + 0x30, 0xa1, 0x3c, 0xf1, 0xbb, 0x18, 0xd5, 0x24, + 0xf1, 0x99, 0x2d, 0x44, 0xd8, 0xb1, 0xa4, 0x2e, + 0xa3, 0x0b, 0x22, 0xe6, 0xc9, 0x5b, 0x19, 0x9d, + 0x8d, 0x18, 0x2f, 0x88, 0x40, 0xb0, 0x9d, 0x05, + 0x95, 0x85, 0xc3, 0x1a, 0xd6, 0x91, 0xfa, 0x06, + 0x19, 0xff, 0x03, 0x8a, 0xca, 0x2c, 0x39, 0xa9, + 0x43, 0x42, 0x11, 0x57, 0x36, 0x17, 0x17, 0xc4, + 0x9d, 0x32, 0x20, 0x28, 0xa7, 0x46, 0x48, 0x11, + 0x3b, 0xd8, 0xc9, 0xd7, 0xec, 0x77, 0xcf, 0x3c, + 0x89, 0xc1, 0xec, 0x87, 0x18, 0xce, 0xff, 0x85, + 0x16, 0xd9, 0x6b, 0x34, 0xc3, 0xc6, 0x14, 0xf1, + 0x06, 0x99, 0xc9, 0xab, 0xc4, 0xed, 0x04, 0x11, + 0x50, 0x62, 0x23, 0xbe, 0xa1, 0x6a, 0xf3, 0x5c, + 0x88, 0x3a, 0xcc, 0xdb, 0xe1, 0x10, 0x4e, 0xef, + 0x0c, 0xfd, 0xb5, 0x4e, 0x12, 0xfb, 0x23, 0x0a, + }, + }, + { + 0x000000ffULL, + 32, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + }, + 512, + { + 0x72, 0xef, 0xc1, 0xeb, 0xfe, 0x1e, 0xe2, 0x59, + 0x75, 0xa6, 0xeb, 0x3a, 0xa8, 0x58, 0x9d, 0xda, + 0x2b, 0x26, 0x1f, 0x1c, 0x85, 0xbd, 0xab, 0x44, + 0x2a, 0x9e, 0x5b, 0x2d, 0xd1, 0xd7, 0xc3, 0x95, + 0x7a, 0x16, 0xfc, 0x08, 0xe5, 0x26, 0xd4, 0xb1, + 0x22, 0x3f, 0x1b, 0x12, 0x32, 0xa1, 0x1a, 0xf2, + 0x74, 0xc3, 0xd7, 0x0d, 0xac, 0x57, 0xf8, 0x3e, + 0x09, 0x83, 0xc4, 0x98, 0xf1, 0xa6, 0xf1, 0xae, + 0xcb, 0x02, 0x1c, 0x3e, 0x70, 0x08, 0x5a, 0x1e, + 0x52, 0x7f, 0x1c, 0xe4, 0x1e, 0xe5, 0x91, 0x1a, + 0x82, 0x02, 0x01, 0x61, 0x52, 0x9c, 0xd8, 0x27, + 0x73, 0x76, 0x2d, 0xaf, 0x54, 0x59, 0xde, 0x94, + 0xa0, 0xa8, 0x2a, 0xda, 0xe7, 0xe1, 0x70, 0x3c, + 0x80, 0x85, 0x43, 0xc2, 0x9e, 0xd6, 0xfb, 0x32, + 0xd9, 0xe0, 0x04, 0x32, 0x7c, 0x13, 0x55, 0x18, + 0x0c, 0x99, 0x5a, 0x07, 0x74, 0x14, 0x93, 0xa0, + 0x9c, 0x21, 0xba, 0x01, 0xa3, 0x87, 0x88, 0x2d, + 0xa4, 0xf6, 0x25, 0x34, 0xb8, 0x7b, 0xb1, 0x5d, + 0x60, 0xd1, 0x97, 0x20, 0x1c, 0x0f, 0xd3, 0xbf, + 0x30, 0xc1, 0x50, 0x0a, 0x3e, 0xcf, 0xec, 0xdd, + 0x66, 0xd8, 0x72, 0x1f, 0x90, 0xbc, 0xc4, 0xc1, + 0x7e, 0xe9, 0x25, 0xc6, 0x1b, 0x0a, 0x03, 0x72, + 0x7a, 0x9c, 0x0d, 0x5f, 0x5c, 0xa4, 0x62, 0xfb, + 0xfa, 0x0a, 0xf1, 0xc2, 0x51, 0x3a, 0x9d, 0x9d, + 0x4b, 0x53, 0x45, 0xbd, 0x27, 0xa5, 0xf6, 0xe6, + 0x53, 0xf7, 0x51, 0x69, 0x3e, 0x6b, 0x6a, 0x2b, + 0x8e, 0xad, 0x57, 0xd5, 0x11, 0xe0, 0x0e, 0x58, + 0xc4, 0x5b, 0x7b, 0x8d, 0x00, 0x5a, 0xf7, 0x92, + 0x88, 0xf5, 0xc7, 0xc2, 0x2f, 0xd4, 0xf1, 0xbf, + 0x7a, 0x89, 0x8b, 0x03, 0xa5, 0x63, 0x4c, 0x6a, + 0x1a, 0xe3, 0xf9, 0xfa, 0xe5, 0xde, 0x4f, 0x29, + 0x6a, 0x28, 0x96, 0xb2, 0x3e, 0x7e, 0xd4, 0x3e, + 0xd1, 0x4f, 0xa5, 0xa2, 0x80, 0x3f, 0x4d, 0x28, + 0xf0, 0xd3, 0xff, 0xcf, 0x24, 0x75, 0x76, 0x77, + 0xae, 0xbd, 0xb4, 0x7b, 0xb3, 0x88, 0x37, 0x87, + 0x08, 0x94, 0x8a, 0x8d, 0x41, 0x26, 0xed, 0x18, + 0x39, 0xe0, 0xda, 0x29, 0xa5, 0x37, 0xa8, 0xc1, + 0x98, 0xb3, 0xc6, 0x6a, 0xb0, 0x07, 0x12, 0xdd, + 0x26, 0x16, 0x74, 0xbf, 0x45, 0xa7, 0x3d, 0x67, + 0xf7, 0x69, 0x14, 0xf8, 0x30, 0xca, 0x01, 0x4b, + 0x65, 0x59, 0x6f, 0x27, 0xe4, 0xcf, 0x62, 0xde, + 0x66, 0x12, 0x5a, 0x55, 0x66, 0xdf, 0x99, 0x75, + 0x15, 0x56, 0x28, 0xb4, 0x00, 0xfb, 0xfb, 0x3a, + 0x29, 0x04, 0x0e, 0xd5, 0x0f, 0xaf, 0xfd, 0xbb, + 0x18, 0xae, 0xce, 0x7c, 0x5c, 0x44, 0x69, 0x32, + 0x60, 0xaa, 0xb3, 0x86, 0xc0, 0xa3, 0x7b, 0x11, + 0xb1, 0x14, 0xf1, 0xc4, 0x15, 0xae, 0xbb, 0x65, + 0x3b, 0xe4, 0x68, 0x17, 0x94, 0x28, 0xd4, 0x3a, + 0x4d, 0x8b, 0xc3, 0xec, 0x38, 0x81, 0x3e, 0xca, + 0x30, 0xa1, 0x3c, 0xf1, 0xbb, 0x18, 0xd5, 0x24, + 0xf1, 0x99, 0x2d, 0x44, 0xd8, 0xb1, 0xa4, 0x2e, + 0xa3, 0x0b, 0x22, 0xe6, 0xc9, 0x5b, 0x19, 0x9d, + 0x8d, 0x18, 0x2f, 0x88, 0x40, 0xb0, 0x9d, 0x05, + 0x95, 0x85, 0xc3, 0x1a, 0xd6, 0x91, 0xfa, 0x06, + 0x19, 0xff, 0x03, 0x8a, 0xca, 0x2c, 0x39, 0xa9, + 0x43, 0x42, 0x11, 0x57, 0x36, 0x17, 0x17, 0xc4, + 0x9d, 0x32, 0x20, 0x28, 0xa7, 0x46, 0x48, 0x11, + 0x3b, 0xd8, 0xc9, 0xd7, 0xec, 0x77, 0xcf, 0x3c, + 0x89, 0xc1, 0xec, 0x87, 0x18, 0xce, 0xff, 0x85, + 0x16, 0xd9, 0x6b, 0x34, 0xc3, 0xc6, 0x14, 0xf1, + 0x06, 0x99, 0xc9, 0xab, 0xc4, 0xed, 0x04, 0x11, + 0x50, 0x62, 0x23, 0xbe, 0xa1, 0x6a, 0xf3, 0x5c, + 0x88, 0x3a, 0xcc, 0xdb, 0xe1, 0x10, 0x4e, 0xef, + 0x0c, 0xfd, 0xb5, 0x4e, 0x12, 0xfb, 0x23, 0x0a, + }, { + 0x32, 0x60, 0xae, 0x8d, 0xad, 0x1f, 0x4a, 0x32, + 0xc5, 0xca, 0xfe, 0x3a, 0xb0, 0xeb, 0x95, 0x54, + 0x9d, 0x46, 0x1a, 0x67, 0xce, 0xb9, 0xe5, 0xaa, + 0x2d, 0x3a, 0xfb, 0x62, 0xde, 0xce, 0x05, 0x53, + 0x19, 0x3b, 0xa5, 0x0c, 0x75, 0xbe, 0x25, 0x1e, + 0x08, 0xd1, 0xd0, 0x8f, 0x10, 0x88, 0x57, 0x6c, + 0x7e, 0xfd, 0xfa, 0xaf, 0x3f, 0x45, 0x95, 0x59, + 0x57, 0x1e, 0x12, 0x51, 0x17, 0x53, 0xb0, 0x7a, + 0xf0, 0x73, 0xf3, 0x5d, 0xa0, 0x6a, 0xf0, 0xce, + 0x0b, 0xbf, 0x6b, 0x8f, 0x5c, 0xcc, 0x5c, 0xea, + 0x50, 0x0e, 0xc1, 0xb2, 0x11, 0xbd, 0x51, 0xf6, + 0x3b, 0x60, 0x6b, 0xf6, 0x52, 0x87, 0x96, 0xca, + 0x12, 0x17, 0x3b, 0xa3, 0x9b, 0x89, 0x35, 0xee, + 0x44, 0xcc, 0xce, 0x64, 0x6f, 0x90, 0xa4, 0x5b, + 0xf9, 0xcc, 0xc5, 0x67, 0xf0, 0xac, 0xe1, 0x3d, + 0xc2, 0xd5, 0x3e, 0xbe, 0xed, 0xc8, 0x1f, 0x58, + 0xb2, 0xe4, 0x11, 0x79, 0xdd, 0xdf, 0x0d, 0x5a, + 0x5c, 0x42, 0xf5, 0xd8, 0x50, 0x6c, 0x1a, 0x5d, + 0x2f, 0x8f, 0x59, 0xf3, 0xea, 0x87, 0x3c, 0xbc, + 0xd0, 0xee, 0xc1, 0x9a, 0xcb, 0xf3, 0x25, 0x42, + 0x3b, 0xd3, 0xdc, 0xb8, 0xc2, 0xb1, 0xbf, 0x1d, + 0x1e, 0xae, 0xd0, 0xeb, 0xa7, 0xf0, 0x69, 0x8e, + 0x43, 0x14, 0xfb, 0xeb, 0x2f, 0x15, 0x66, 0xd1, + 0xb9, 0x25, 0x30, 0x08, 0xcb, 0xcc, 0xf4, 0x5a, + 0x2b, 0x0d, 0x9c, 0x5c, 0x9c, 0x21, 0x47, 0x4f, + 0x40, 0x76, 0xe0, 0x2b, 0xe2, 0x60, 0x50, 0xb9, + 0x9d, 0xee, 0x4f, 0xd6, 0x8a, 0x4c, 0xf8, 0x90, + 0xe4, 0x96, 0xe4, 0xfc, 0xae, 0x7b, 0x70, 0xf9, + 0x4e, 0xa5, 0xa9, 0x06, 0x2d, 0xa0, 0xda, 0xeb, + 0xa1, 0x99, 0x3d, 0x2c, 0xcd, 0x1d, 0xd3, 0xc2, + 0x44, 0xb8, 0x42, 0x88, 0x01, 0x49, 0x5a, 0x58, + 0xb2, 0x16, 0x54, 0x7e, 0x7e, 0x84, 0x7c, 0x46, + 0xd1, 0xd7, 0x56, 0x37, 0x7b, 0x62, 0x42, 0xd2, + 0xe5, 0xfb, 0x83, 0xbf, 0x75, 0x2b, 0x54, 0xe0, + 0xdf, 0x71, 0xe8, 0x89, 0xf3, 0xa2, 0xbb, 0x0f, + 0x4c, 0x10, 0x80, 0x5b, 0xf3, 0xc5, 0x90, 0x37, + 0x6e, 0x3c, 0x24, 0xe2, 0x2f, 0xf5, 0x7f, 0x7f, + 0xa9, 0x65, 0x57, 0x73, 0x75, 0x32, 0x5c, 0xea, + 0x5d, 0x92, 0x0d, 0xb9, 0x4b, 0x9c, 0x33, 0x6b, + 0x45, 0x5f, 0x6e, 0x89, 0x4c, 0x01, 0x86, 0x6f, + 0xe9, 0xfb, 0xb8, 0xc8, 0xd3, 0xf7, 0x0a, 0x29, + 0x57, 0x28, 0x5f, 0x6d, 0xfb, 0x5d, 0xcd, 0x8c, + 0xbf, 0x54, 0x78, 0x2f, 0x8f, 0xe7, 0x76, 0x6d, + 0x47, 0x23, 0x81, 0x99, 0x13, 0xac, 0x77, 0x34, + 0x21, 0xe3, 0xa3, 0x10, 0x95, 0x86, 0x6b, 0xad, + 0x22, 0xc8, 0x6a, 0x60, 0x36, 0xb2, 0x51, 0x8b, + 0x20, 0x59, 0xb4, 0x22, 0x9d, 0x18, 0xc8, 0xc2, + 0xcc, 0xbd, 0xf9, 0x06, 0xc6, 0xcc, 0x6e, 0x82, + 0x46, 0x4e, 0xe5, 0x7b, 0xdd, 0xb0, 0xbe, 0xbc, + 0xb1, 0xdc, 0x64, 0x53, 0x25, 0xbf, 0xb3, 0xe6, + 0x65, 0xef, 0x72, 0x51, 0x08, 0x2c, 0x88, 0xeb, + 0xb1, 0xcf, 0x20, 0x3b, 0xd7, 0x79, 0xfd, 0xd3, + 0x86, 0x75, 0x71, 0x3c, 0x8d, 0xaa, 0xdd, 0x17, + 0xe1, 0xca, 0xbe, 0xe4, 0x32, 0xb0, 0x97, 0x87, + 0xb6, 0xdd, 0xf3, 0x30, 0x4e, 0x38, 0xb7, 0x31, + 0xb4, 0x5d, 0xf5, 0xdf, 0x51, 0xb7, 0x8f, 0xcf, + 0xb3, 0xd3, 0x24, 0x66, 0x02, 0x8d, 0x0b, 0xa3, + 0x65, 0x55, 0xe7, 0xe1, 0x1a, 0xb0, 0xee, 0x06, + 0x66, 0x06, 0x1d, 0x16, 0x45, 0xd9, 0x62, 0x44, + 0x4b, 0xc4, 0x7a, 0x38, 0x18, 0x89, 0x30, 0xa8, + 0x4b, 0x4d, 0x56, 0x13, 0x95, 0xc7, 0x3c, 0x08, + 0x70, 0x21, 0x92, 0x7c, 0xa6, 0x38, 0xb7, 0xaf, + 0xc8, 0xa8, 0x67, 0x9c, 0xcb, 0x84, 0xc2, 0x65, + 0x55, 0x44, 0x0e, 0xc7, 0xf1, 0x04, 0x45, 0xcd, + }, + }, + { + 0x000000ffULL, + 64, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69, + 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37, + 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92, + }, + 512, + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, { + 0x1c, 0x3b, 0x3a, 0x10, 0x2f, 0x77, 0x03, 0x86, + 0xe4, 0x83, 0x6c, 0x99, 0xe3, 0x70, 0xcf, 0x9b, + 0xea, 0x00, 0x80, 0x3f, 0x5e, 0x48, 0x23, 0x57, + 0xa4, 0xae, 0x12, 0xd4, 0x14, 0xa3, 0xe6, 0x3b, + 0x5d, 0x31, 0xe2, 0x76, 0xf8, 0xfe, 0x4a, 0x8d, + 0x66, 0xb3, 0x17, 0xf9, 0xac, 0x68, 0x3f, 0x44, + 0x68, 0x0a, 0x86, 0xac, 0x35, 0xad, 0xfc, 0x33, + 0x45, 0xbe, 0xfe, 0xcb, 0x4b, 0xb1, 0x88, 0xfd, + 0x57, 0x76, 0x92, 0x6c, 0x49, 0xa3, 0x09, 0x5e, + 0xb1, 0x08, 0xfd, 0x10, 0x98, 0xba, 0xec, 0x70, + 0xaa, 0xa6, 0x69, 0x99, 0xa7, 0x2a, 0x82, 0xf2, + 0x7d, 0x84, 0x8b, 0x21, 0xd4, 0xa7, 0x41, 0xb0, + 0xc5, 0xcd, 0x4d, 0x5f, 0xff, 0x9d, 0xac, 0x89, + 0xae, 0xba, 0x12, 0x29, 0x61, 0xd0, 0x3a, 0x75, + 0x71, 0x23, 0xe9, 0x87, 0x0f, 0x8a, 0xcf, 0x10, + 0x00, 0x02, 0x08, 0x87, 0x89, 0x14, 0x29, 0xca, + 0x2a, 0x3e, 0x7a, 0x7d, 0x7d, 0xf7, 0xb1, 0x03, + 0x55, 0x16, 0x5c, 0x8b, 0x9a, 0x6d, 0x0a, 0x7d, + 0xe8, 0xb0, 0x62, 0xc4, 0x50, 0x0d, 0xc4, 0xcd, + 0x12, 0x0c, 0x0f, 0x74, 0x18, 0xda, 0xe3, 0xd0, + 0xb5, 0x78, 0x1c, 0x34, 0x80, 0x3f, 0xa7, 0x54, + 0x21, 0xc7, 0x90, 0xdf, 0xe1, 0xde, 0x18, 0x34, + 0xf2, 0x80, 0xd7, 0x66, 0x7b, 0x32, 0x7f, 0x6c, + 0x8c, 0xd7, 0x55, 0x7e, 0x12, 0xac, 0x3a, 0x0f, + 0x93, 0xec, 0x05, 0xc5, 0x2e, 0x04, 0x93, 0xef, + 0x31, 0xa1, 0x2d, 0x3d, 0x92, 0x60, 0xf7, 0x9a, + 0x28, 0x9d, 0x6a, 0x37, 0x9b, 0xc7, 0x0c, 0x50, + 0x84, 0x14, 0x73, 0xd1, 0xa8, 0xcc, 0x81, 0xec, + 0x58, 0x3e, 0x96, 0x45, 0xe0, 0x7b, 0x8d, 0x96, + 0x70, 0x65, 0x5b, 0xa5, 0xbb, 0xcf, 0xec, 0xc6, + 0xdc, 0x39, 0x66, 0x38, 0x0a, 0xd8, 0xfe, 0xcb, + 0x17, 0xb6, 0xba, 0x02, 0x46, 0x9a, 0x02, 0x0a, + 0x84, 0xe1, 0x8e, 0x8f, 0x84, 0x25, 0x20, 0x70, + 0xc1, 0x3e, 0x9f, 0x1f, 0x28, 0x9b, 0xe5, 0x4f, + 0xbc, 0x48, 0x14, 0x57, 0x77, 0x8f, 0x61, 0x60, + 0x15, 0xe1, 0x32, 0x7a, 0x02, 0xb1, 0x40, 0xf1, + 0x50, 0x5e, 0xb3, 0x09, 0x32, 0x6d, 0x68, 0x37, + 0x8f, 0x83, 0x74, 0x59, 0x5c, 0x84, 0x9d, 0x84, + 0xf4, 0xc3, 0x33, 0xec, 0x44, 0x23, 0x88, 0x51, + 0x43, 0xcb, 0x47, 0xbd, 0x71, 0xc5, 0xed, 0xae, + 0x9b, 0xe6, 0x9a, 0x2f, 0xfe, 0xce, 0xb1, 0xbe, + 0xc9, 0xde, 0x24, 0x4f, 0xbe, 0x15, 0x99, 0x2b, + 0x11, 0xb7, 0x7c, 0x04, 0x0f, 0x12, 0xbd, 0x8f, + 0x6a, 0x97, 0x5a, 0x44, 0xa0, 0xf9, 0x0c, 0x29, + 0xa9, 0xab, 0xc3, 0xd4, 0xd8, 0x93, 0x92, 0x72, + 0x84, 0xc5, 0x87, 0x54, 0xcc, 0xe2, 0x94, 0x52, + 0x9f, 0x86, 0x14, 0xdc, 0xd2, 0xab, 0xa9, 0x91, + 0x92, 0x5f, 0xed, 0xc4, 0xae, 0x74, 0xff, 0xac, + 0x6e, 0x33, 0x3b, 0x93, 0xeb, 0x4a, 0xff, 0x04, + 0x79, 0xda, 0x9a, 0x41, 0x0e, 0x44, 0x50, 0xe0, + 0xdd, 0x7a, 0xe4, 0xc6, 0xe2, 0x91, 0x09, 0x00, + 0x57, 0x5d, 0xa4, 0x01, 0xfc, 0x07, 0x05, 0x9f, + 0x64, 0x5e, 0x8b, 0x7e, 0x9b, 0xfd, 0xef, 0x33, + 0x94, 0x30, 0x54, 0xff, 0x84, 0x01, 0x14, 0x93, + 0xc2, 0x7b, 0x34, 0x29, 0xea, 0xed, 0xb4, 0xed, + 0x53, 0x76, 0x44, 0x1a, 0x77, 0xed, 0x43, 0x85, + 0x1a, 0xd7, 0x7f, 0x16, 0xf5, 0x41, 0xdf, 0xd2, + 0x69, 0xd5, 0x0d, 0x6a, 0x5f, 0x14, 0xfb, 0x0a, + 0xab, 0x1c, 0xbb, 0x4c, 0x15, 0x50, 0xbe, 0x97, + 0xf7, 0xab, 0x40, 0x66, 0x19, 0x3c, 0x4c, 0xaa, + 0x77, 0x3d, 0xad, 0x38, 0x01, 0x4b, 0xd2, 0x09, + 0x2f, 0xa7, 0x55, 0xc8, 0x24, 0xbb, 0x5e, 0x54, + 0xc4, 0xf3, 0x6f, 0xfd, 0xa9, 0xfc, 0xea, 0x70, + 0xb9, 0xc6, 0xe6, 0x93, 0xe1, 0x48, 0xc1, 0x51, + }, + }, + { + 0x0000ffffULL, + 64, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69, + 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37, + 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92, + }, + 512, + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, { + 0x77, 0xa3, 0x12, 0x51, 0x61, 0x8a, 0x15, 0xe6, + 0xb9, 0x2d, 0x1d, 0x66, 0xdf, 0xfe, 0x7b, 0x50, + 0xb5, 0x0b, 0xad, 0x55, 0x23, 0x05, 0xba, 0x02, + 0x17, 0xa6, 0x10, 0x68, 0x8e, 0xff, 0x7e, 0x11, + 0xe1, 0xd0, 0x22, 0x54, 0x38, 0xe0, 0x93, 0x24, + 0x2d, 0x6d, 0xb2, 0x74, 0xfd, 0xe8, 0x01, 0xd4, + 0xca, 0xe0, 0x6f, 0x20, 0x92, 0xc7, 0x28, 0xb2, + 0x47, 0x85, 0x59, 0xdf, 0x58, 0xe8, 0x37, 0xc2, + 0x46, 0x9e, 0xe4, 0xa4, 0xfa, 0x79, 0x4e, 0x4b, + 0xbc, 0x7f, 0x39, 0xbc, 0x02, 0x6e, 0x3c, 0xb7, + 0x2c, 0x33, 0xb0, 0x88, 0x8f, 0x25, 0xb4, 0xac, + 0xf5, 0x6a, 0x2a, 0x98, 0x04, 0xf1, 0xce, 0x6d, + 0x3d, 0x6e, 0x1d, 0xc6, 0xca, 0x18, 0x1d, 0x4b, + 0x54, 0x61, 0x79, 0xd5, 0x55, 0x44, 0xaa, 0x77, + 0x60, 0xc4, 0x0d, 0x06, 0x74, 0x15, 0x39, 0xc7, + 0xe3, 0xcd, 0x9d, 0x2f, 0x66, 0x50, 0xb2, 0x01, + 0x3f, 0xd0, 0xee, 0xb8, 0xc2, 0xb8, 0xe3, 0xd8, + 0xd2, 0x40, 0xcc, 0xae, 0x2d, 0x4c, 0x98, 0x32, + 0x0a, 0x74, 0x42, 0xe1, 0xc8, 0xd7, 0x5a, 0x42, + 0xd6, 0xe6, 0xcf, 0xa4, 0xc2, 0xec, 0xa1, 0x79, + 0x8d, 0x15, 0x8c, 0x7a, 0xec, 0xdf, 0x82, 0x49, + 0x0f, 0x24, 0xbb, 0x9b, 0x38, 0xe1, 0x08, 0xbc, + 0xda, 0x12, 0xc3, 0xfa, 0xf9, 0xa2, 0x11, 0x41, + 0xc3, 0x61, 0x3b, 0x58, 0x36, 0x7f, 0x92, 0x2a, + 0xaa, 0x26, 0xcd, 0x22, 0xf2, 0x3d, 0x70, 0x8d, + 0xae, 0x69, 0x9a, 0xd7, 0xcb, 0x40, 0xa8, 0xad, + 0x0b, 0x6e, 0x27, 0x84, 0x97, 0x3d, 0xcb, 0x60, + 0x56, 0x84, 0xc0, 0x8b, 0x8d, 0x69, 0x98, 0xc6, + 0x9a, 0xac, 0x04, 0x99, 0x21, 0x87, 0x1e, 0xbb, + 0x65, 0x30, 0x1a, 0x46, 0x19, 0xca, 0x80, 0xec, + 0xb4, 0x85, 0xa3, 0x1d, 0x74, 0x42, 0x23, 0xce, + 0x8d, 0xdc, 0x23, 0x94, 0x82, 0x8d, 0x6a, 0x80, + 0x47, 0x0c, 0x09, 0x2f, 0x5b, 0xa4, 0x13, 0xc3, + 0x37, 0x8f, 0xa6, 0x05, 0x42, 0x55, 0xc6, 0xf9, + 0xdf, 0x44, 0x95, 0x86, 0x2b, 0xbb, 0x32, 0x87, + 0x68, 0x1f, 0x93, 0x1b, 0x68, 0x7c, 0x88, 0x8a, + 0xbf, 0x84, 0x4d, 0xfc, 0x8f, 0xc2, 0x83, 0x31, + 0xe5, 0x79, 0x92, 0x8c, 0xd1, 0x2b, 0xd2, 0x39, + 0x0a, 0xe1, 0x23, 0xcf, 0x03, 0x81, 0x8d, 0x14, + 0xde, 0xdd, 0xe5, 0xc0, 0xc2, 0x4c, 0x8a, 0xb0, + 0x18, 0xbf, 0xca, 0x75, 0xca, 0x09, 0x6f, 0x2d, + 0x53, 0x1f, 0x3d, 0x16, 0x19, 0xe7, 0x85, 0xf1, + 0xad, 0xa4, 0x37, 0xca, 0xb9, 0x2e, 0x98, 0x05, + 0x58, 0xb3, 0xdc, 0xe1, 0x47, 0x4a, 0xfb, 0x75, + 0xbf, 0xed, 0xbf, 0x8f, 0xf5, 0x4c, 0xb2, 0x61, + 0x8e, 0x02, 0x44, 0xc9, 0xac, 0x0d, 0x3c, 0x66, + 0xfb, 0x51, 0x59, 0x8c, 0xd2, 0xdb, 0x11, 0xf9, + 0xbe, 0x39, 0x79, 0x1a, 0xbe, 0x44, 0x7c, 0x63, + 0x09, 0x4f, 0x7c, 0x45, 0x3b, 0x7f, 0xf8, 0x7c, + 0xb5, 0xbb, 0x36, 0xb7, 0xc7, 0x9e, 0xfb, 0x08, + 0x72, 0xd1, 0x70, 0x58, 0xb8, 0x3b, 0x15, 0xab, + 0x08, 0x66, 0xad, 0x8a, 0x58, 0x65, 0x6c, 0x5a, + 0x7e, 0x20, 0xdb, 0xdf, 0x30, 0x8b, 0x24, 0x61, + 0xd9, 0x7c, 0x0e, 0xc0, 0x02, 0x4a, 0x27, 0x15, + 0x05, 0x52, 0x49, 0xcf, 0x3b, 0x47, 0x8d, 0xdd, + 0x47, 0x40, 0xde, 0x65, 0x4f, 0x75, 0xca, 0x68, + 0x6e, 0x0d, 0x73, 0x45, 0xc6, 0x9e, 0xd5, 0x0c, + 0xdc, 0x2a, 0x8b, 0x33, 0x2b, 0x1f, 0x88, 0x24, + 0x10, 0x8a, 0xc9, 0x37, 0xeb, 0x05, 0x05, 0x85, + 0x60, 0x8e, 0xe7, 0x34, 0x09, 0x7f, 0xc0, 0x90, + 0x54, 0xfb, 0xff, 0x89, 0xee, 0xae, 0xea, 0x79, + 0x1f, 0x4a, 0x7a, 0xb1, 0xf9, 0x86, 0x82, 0x94, + 0xa4, 0xf9, 0xe2, 0x7b, 0x42, 0xaf, 0x81, 0x00, + 0xcb, 0x9d, 0x59, 0xce, 0xf9, 0x64, 0x58, 0x03, + }, + }, + { + 0x00ffffffULL, + 64, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69, + 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37, + 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92, + }, + 512, + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, { + 0xe3, 0x87, 0xaa, 0xa5, 0x8b, 0xa4, 0x83, 0xaf, + 0xa7, 0xe8, 0xeb, 0x46, 0x97, 0x78, 0x31, 0x7e, + 0xcf, 0x4c, 0xf5, 0x73, 0xaa, 0x9d, 0x4e, 0xac, + 0x23, 0xf2, 0xcd, 0xf9, 0x14, 0xe4, 0xe2, 0x00, + 0xa8, 0xb4, 0x90, 0xe4, 0x2e, 0xe6, 0x46, 0x80, + 0x2d, 0xc6, 0xee, 0x2b, 0x47, 0x1b, 0x27, 0x81, + 0x95, 0xd6, 0x09, 0x18, 0xec, 0xec, 0xb4, 0x4b, + 0xf7, 0x99, 0x66, 0xf8, 0x3f, 0xab, 0xa0, 0x49, + 0x92, 0x98, 0xeb, 0xc6, 0x99, 0xc0, 0xc8, 0x63, + 0x47, 0x15, 0xa3, 0x20, 0xbb, 0x4f, 0x07, 0x5d, + 0x62, 0x2e, 0x74, 0xc8, 0xc9, 0x32, 0x00, 0x4f, + 0x25, 0xb4, 0x1e, 0x36, 0x10, 0x25, 0xb5, 0xa8, + 0x78, 0x15, 0x39, 0x1f, 0x61, 0x08, 0xfc, 0x4a, + 0xfa, 0x6a, 0x05, 0xd9, 0x30, 0x3c, 0x6b, 0xa6, + 0x8a, 0x12, 0x8a, 0x55, 0x70, 0x5d, 0x41, 0x59, + 0x85, 0x83, 0x2f, 0xde, 0xaa, 0xe6, 0xc8, 0xe1, + 0x91, 0x10, 0xe8, 0x4d, 0x1b, 0x1f, 0x19, 0x9a, + 0x26, 0x92, 0x11, 0x9e, 0xdc, 0x96, 0x13, 0x26, + 0x58, 0xf0, 0x9d, 0xa7, 0xc6, 0x23, 0xef, 0xce, + 0xc7, 0x12, 0x53, 0x7a, 0x3d, 0x94, 0xc0, 0xbf, + 0x5d, 0x7e, 0x35, 0x2e, 0xc9, 0x4a, 0xe5, 0x79, + 0x7f, 0xdb, 0x37, 0x7d, 0xc1, 0x55, 0x11, 0x50, + 0x72, 0x1a, 0xdf, 0x15, 0xbd, 0x26, 0xa8, 0xef, + 0xc2, 0xfc, 0xaa, 0xd5, 0x68, 0x81, 0xfa, 0x9e, + 0x62, 0x46, 0x2c, 0x28, 0xf3, 0x0a, 0xe1, 0xce, + 0xac, 0xa9, 0x3c, 0x34, 0x5c, 0xf2, 0x43, 0xb7, + 0x3f, 0x54, 0x2e, 0x20, 0x74, 0xa7, 0x05, 0xbd, + 0x26, 0x43, 0xbb, 0x9f, 0x7c, 0xc7, 0x9b, 0xb6, + 0xe7, 0x09, 0x1e, 0xa6, 0xe2, 0x32, 0xdf, 0x0f, + 0x9a, 0xd0, 0xd6, 0xcf, 0x50, 0x23, 0x27, 0x87, + 0x6d, 0x82, 0x20, 0x7a, 0xbf, 0x21, 0x15, 0xcd, + 0xac, 0xf6, 0xd5, 0xa4, 0x8f, 0x6c, 0x18, 0x79, + 0xa6, 0x5b, 0x11, 0x5f, 0x0f, 0x8b, 0x3c, 0xb3, + 0xc5, 0x9d, 0x15, 0xdd, 0x8c, 0x76, 0x9b, 0xc0, + 0x14, 0x79, 0x5a, 0x18, 0x37, 0xf3, 0x90, 0x1b, + 0x58, 0x45, 0xeb, 0x49, 0x1a, 0xdf, 0xef, 0xe0, + 0x97, 0xb1, 0xfa, 0x30, 0xa1, 0x2f, 0xc1, 0xf6, + 0x5b, 0xa2, 0x29, 0x05, 0x03, 0x15, 0x39, 0x97, + 0x1a, 0x10, 0xf2, 0xf3, 0x6c, 0x32, 0x1b, 0xb5, + 0x13, 0x31, 0xcd, 0xef, 0xb3, 0x9e, 0x39, 0x64, + 0xc7, 0xef, 0x07, 0x99, 0x94, 0xf5, 0xb6, 0x9b, + 0x2e, 0xdd, 0x83, 0xa7, 0x1e, 0xf5, 0x49, 0x97, + 0x1e, 0xe9, 0x3f, 0x44, 0xea, 0xc3, 0x93, 0x8f, + 0xcd, 0xd6, 0x1d, 0x01, 0xfa, 0x71, 0x79, 0x9d, + 0xa3, 0xa8, 0x09, 0x1c, 0x4c, 0x48, 0xaa, 0x9e, + 0xd2, 0x63, 0xff, 0x07, 0x49, 0xdf, 0x95, 0xd4, + 0x4f, 0xef, 0x6a, 0x0b, 0xb5, 0x78, 0xec, 0x69, + 0x45, 0x6a, 0xa5, 0x40, 0x8a, 0xe3, 0x2c, 0x7a, + 0xf0, 0x8a, 0xd7, 0xba, 0x89, 0x21, 0x28, 0x7e, + 0x3b, 0xbe, 0xe3, 0x1b, 0x76, 0x7b, 0xe0, 0x6a, + 0x0e, 0x70, 0x5c, 0x86, 0x4a, 0x76, 0x91, 0x37, + 0xdf, 0x28, 0x29, 0x22, 0x83, 0xea, 0x81, 0xa2, + 0x48, 0x02, 0x41, 0xb4, 0x4d, 0x99, 0x21, 0xcd, + 0xbe, 0xc1, 0xbc, 0x28, 0xdc, 0x1f, 0xda, 0x11, + 0x4b, 0xd8, 0xe5, 0x21, 0x7a, 0xc9, 0xd8, 0xeb, + 0xaf, 0xa7, 0x20, 0xe9, 0xda, 0x4f, 0x9a, 0xce, + 0x23, 0x1c, 0xc9, 0x49, 0xe5, 0xb9, 0x6f, 0xe7, + 0x6f, 0xfc, 0x21, 0x06, 0x3f, 0xdd, 0xc8, 0x3a, + 0x6b, 0x86, 0x79, 0xc0, 0x0d, 0x35, 0xe0, 0x95, + 0x76, 0xa8, 0x75, 0x30, 0x5b, 0xed, 0x5f, 0x36, + 0xed, 0x24, 0x2c, 0x89, 0x00, 0xdd, 0x1f, 0xa9, + 0x65, 0xbc, 0x95, 0x0d, 0xfc, 0xe0, 0x9b, 0x13, + 0x22, 0x63, 0xa1, 0xee, 0xf5, 0x2d, 0xd6, 0x88, + 0x8c, 0x30, 0x9f, 0x5a, 0x7d, 0x71, 0x28, 0x26, + }, + }, + { + 0xffffffffULL, + 64, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69, + 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37, + 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92, + }, + 512, + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, { + 0xbf, 0x53, 0xd2, 0xda, 0xde, 0x78, 0xe8, 0x22, + 0xa4, 0xd9, 0x49, 0xa9, 0xbc, 0x67, 0x66, 0xb0, + 0x1b, 0x06, 0xa8, 0xef, 0x70, 0xd2, 0x67, 0x48, + 0xc6, 0xa7, 0xfc, 0x36, 0xd8, 0x0a, 0xe4, 0xc5, + 0x52, 0x0f, 0x7c, 0x4a, 0xb0, 0xac, 0x85, 0x44, + 0x42, 0x4f, 0xa4, 0x05, 0x16, 0x2f, 0xef, 0x5a, + 0x6b, 0x7f, 0x22, 0x94, 0x98, 0x06, 0x36, 0x18, + 0xd3, 0x9f, 0x00, 0x03, 0xcb, 0x5f, 0xb8, 0xd1, + 0xc8, 0x6b, 0x64, 0x34, 0x97, 0xda, 0x1f, 0xf9, + 0x45, 0xc8, 0xd3, 0xbe, 0xde, 0xca, 0x4f, 0x47, + 0x97, 0x02, 0xa7, 0xa7, 0x35, 0xf0, 0x43, 0xdd, + 0xb1, 0xd6, 0xaa, 0xad, 0xe3, 0xc4, 0xa0, 0xac, + 0x7c, 0xa7, 0xf3, 0xfa, 0x52, 0x79, 0xbe, 0xf5, + 0x6f, 0x82, 0xcd, 0x7a, 0x2f, 0x38, 0x67, 0x2e, + 0x82, 0x48, 0x14, 0xe1, 0x07, 0x00, 0x30, 0x0a, + 0x05, 0x5e, 0x16, 0x30, 0xb8, 0xf1, 0xcb, 0x0e, + 0x91, 0x9f, 0x5e, 0x94, 0x20, 0x10, 0xa4, 0x16, + 0xe2, 0xbf, 0x48, 0xcb, 0x46, 0x99, 0x3d, 0x3c, + 0xb6, 0xa5, 0x1c, 0x19, 0xba, 0xcf, 0x86, 0x47, + 0x85, 0xa0, 0x0b, 0xc2, 0xec, 0xff, 0x15, 0xd3, + 0x50, 0x87, 0x5b, 0x24, 0x6e, 0xd5, 0x3e, 0x68, + 0xbe, 0x6f, 0x55, 0xbd, 0x7e, 0x05, 0xcf, 0xc2, + 0xb2, 0xed, 0x64, 0x32, 0x19, 0x8a, 0x64, 0x44, + 0xb6, 0xd8, 0xc2, 0x47, 0xfa, 0xb9, 0x41, 0xf5, + 0x69, 0x76, 0x8b, 0x5c, 0x42, 0x93, 0x66, 0xf1, + 0xd3, 0xf0, 0x0f, 0x03, 0x45, 0xb9, 0x61, 0x23, + 0xd5, 0x62, 0x04, 0xc0, 0x1c, 0x63, 0xb2, 0x2c, + 0xe7, 0x8b, 0xaf, 0x11, 0x6e, 0x52, 0x5e, 0xd9, + 0x0f, 0xde, 0xa3, 0x9f, 0xa4, 0x69, 0x49, 0x4d, + 0x38, 0x66, 0xc3, 0x1e, 0x05, 0xf2, 0x95, 0xff, + 0x21, 0xfe, 0xa8, 0xd4, 0xe6, 0xe1, 0x3d, 0x67, + 0xe4, 0x7c, 0xe7, 0x22, 0xe9, 0x69, 0x8a, 0x1c, + 0x10, 0x48, 0xd6, 0x8e, 0xbc, 0xde, 0x76, 0xb8, + 0x6f, 0xcf, 0x97, 0x6e, 0xab, 0x8a, 0xa9, 0x79, + 0x02, 0x68, 0xb7, 0x06, 0x8e, 0x01, 0x7a, 0x8b, + 0x9b, 0x74, 0x94, 0x09, 0x51, 0x4f, 0x10, 0x53, + 0x02, 0x7f, 0xd1, 0x6c, 0x37, 0x86, 0xea, 0x1b, + 0xac, 0x5f, 0x15, 0xcb, 0x79, 0x71, 0x1e, 0xe2, + 0xab, 0xe8, 0x2f, 0x5c, 0xf8, 0xb1, 0x3a, 0xe7, + 0x30, 0x30, 0xef, 0x5b, 0x9e, 0x44, 0x57, 0xe7, + 0x5d, 0x13, 0x04, 0xf9, 0x88, 0xd6, 0x2d, 0xd6, + 0xfc, 0x4b, 0x94, 0xed, 0x38, 0xba, 0x83, 0x1d, + 0xa4, 0xb7, 0x63, 0x49, 0x71, 0xb6, 0xcd, 0x8e, + 0xc3, 0x25, 0xd9, 0xc6, 0x1c, 0x00, 0xf1, 0xdf, + 0x73, 0x62, 0x7e, 0xd3, 0x74, 0x5a, 0x5e, 0x84, + 0x89, 0xf3, 0xa9, 0x5c, 0x69, 0x63, 0x9c, 0x32, + 0xcd, 0x6e, 0x1d, 0x53, 0x7a, 0x85, 0xf7, 0x5c, + 0xc8, 0x44, 0x72, 0x6e, 0x8a, 0x72, 0xfc, 0x00, + 0x77, 0xad, 0x22, 0x00, 0x0f, 0x1d, 0x50, 0x78, + 0xf6, 0xb8, 0x66, 0x31, 0x8c, 0x66, 0x8f, 0x1a, + 0xd0, 0x3d, 0x5a, 0x5f, 0xce, 0xd5, 0x21, 0x9f, + 0x2e, 0xab, 0xbd, 0x0a, 0xa5, 0xc0, 0xf4, 0x60, + 0xd1, 0x83, 0xf0, 0x44, 0x04, 0xa0, 0xd6, 0xf4, + 0x69, 0x55, 0x8e, 0x81, 0xfa, 0xb2, 0x4a, 0x16, + 0x79, 0x05, 0xab, 0x4c, 0x78, 0x78, 0x50, 0x2a, + 0xd3, 0xe3, 0x8f, 0xdb, 0xe6, 0x2a, 0x41, 0x55, + 0x6c, 0xec, 0x37, 0x32, 0x57, 0x59, 0x53, 0x3c, + 0xe8, 0xf2, 0x5f, 0x36, 0x7c, 0x87, 0xbb, 0x55, + 0x78, 0xd6, 0x67, 0xae, 0x93, 0xf9, 0xe2, 0xfd, + 0x99, 0xbc, 0xbc, 0x5f, 0x2f, 0xbb, 0xa8, 0x8c, + 0xf6, 0x51, 0x61, 0x39, 0x42, 0x0f, 0xcf, 0xf3, + 0xb7, 0x36, 0x1d, 0x86, 0x32, 0x2c, 0x4b, 0xd8, + 0x4c, 0x82, 0xf3, 0x35, 0xab, 0xb1, 0x52, 0xc4, + 0xa9, 0x34, 0x11, 0x37, 0x3a, 0xaa, 0x82, 0x20, + }, + }, + { + 0xffffffffffULL, + 64, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69, + 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37, + 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92, + }, + 512, + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, { + 0x64, 0x49, 0x7e, 0x5a, 0x83, 0x1e, 0x4a, 0x93, + 0x2c, 0x09, 0xbe, 0x3e, 0x53, 0x93, 0x37, 0x6d, + 0xaa, 0x59, 0x95, 0x48, 0xb8, 0x16, 0x03, 0x1d, + 0x22, 0x4b, 0xbf, 0x50, 0xa8, 0x18, 0xed, 0x23, + 0x50, 0xea, 0xe7, 0xe9, 0x60, 0x87, 0xc8, 0xa0, + 0xdb, 0x51, 0xad, 0x29, 0x0b, 0xd0, 0x0c, 0x1a, + 0xc1, 0x62, 0x08, 0x57, 0x63, 0x5b, 0xf2, 0x46, + 0xc1, 0x76, 0xab, 0x46, 0x3b, 0xe3, 0x0b, 0x80, + 0x8d, 0xa5, 0x48, 0x08, 0x1a, 0xc8, 0x47, 0xb1, + 0x58, 0xe1, 0x26, 0x4b, 0xe2, 0x5b, 0xb0, 0x91, + 0x0b, 0xbc, 0x92, 0x64, 0x71, 0x08, 0x08, 0x94, + 0x15, 0xd4, 0x5f, 0xab, 0x1b, 0x3d, 0x26, 0x04, + 0xe8, 0xa8, 0xef, 0xf1, 0xae, 0x40, 0x20, 0xcf, + 0xa3, 0x99, 0x36, 0xb6, 0x68, 0x27, 0xb2, 0x3f, + 0x37, 0x1b, 0x92, 0x20, 0x0b, 0xe9, 0x02, 0x51, + 0xe6, 0xd7, 0x3c, 0x5f, 0x86, 0xde, 0x5f, 0xd4, + 0xa9, 0x50, 0x78, 0x19, 0x33, 0xd7, 0x9a, 0x28, + 0x27, 0x2b, 0x78, 0x2a, 0x2e, 0xc3, 0x13, 0xef, + 0xdf, 0xcc, 0x06, 0x28, 0xf4, 0x3d, 0x74, 0x4c, + 0x2d, 0xc2, 0xff, 0x3d, 0xcb, 0x66, 0x99, 0x9b, + 0x50, 0xc7, 0xca, 0x89, 0x5b, 0x0c, 0x64, 0x79, + 0x1e, 0xea, 0xa5, 0xf2, 0x94, 0x99, 0xfb, 0x1c, + 0x02, 0x6f, 0x84, 0xce, 0x5b, 0x5c, 0x72, 0xba, + 0x10, 0x83, 0xcd, 0xdb, 0x5c, 0xe4, 0x54, 0x34, + 0x63, 0x16, 0x65, 0xc3, 0x33, 0xb6, 0x0b, 0x11, + 0x59, 0x3f, 0xb2, 0x53, 0xc5, 0x17, 0x9a, 0x2c, + 0x8d, 0xb8, 0x13, 0x78, 0x2a, 0x00, 0x48, 0x56, + 0xa1, 0x65, 0x30, 0x11, 0xe9, 0x3f, 0xb6, 0xd8, + 0x76, 0xc1, 0x83, 0x66, 0xdd, 0x86, 0x83, 0xf5, + 0x34, 0x12, 0xc0, 0xc1, 0x80, 0xf9, 0xc8, 0x48, + 0x59, 0x2d, 0x59, 0x3f, 0x86, 0x09, 0xca, 0x73, + 0x63, 0x17, 0xd3, 0x56, 0xe1, 0x3e, 0x2b, 0xff, + 0x3a, 0x9f, 0x59, 0xcd, 0x9a, 0xeb, 0x19, 0xcd, + 0x48, 0x25, 0x93, 0xd8, 0xc4, 0x61, 0x28, 0xbb, + 0x32, 0x42, 0x3b, 0x37, 0xa9, 0xad, 0xfb, 0x48, + 0x2b, 0x99, 0x45, 0x3f, 0xbe, 0x25, 0xa4, 0x1b, + 0xf6, 0xfe, 0xb4, 0xaa, 0x0b, 0xef, 0x5e, 0xd2, + 0x4b, 0xf7, 0x3c, 0x76, 0x29, 0x78, 0x02, 0x54, + 0x82, 0xc1, 0x31, 0x15, 0xe4, 0x01, 0x5a, 0xac, + 0x99, 0x2e, 0x56, 0x13, 0xa3, 0xb5, 0xc2, 0xf6, + 0x85, 0xb8, 0x47, 0x95, 0xcb, 0x6e, 0x9b, 0x26, + 0x56, 0xd8, 0xc8, 0x81, 0x57, 0xe5, 0x2c, 0x42, + 0xf9, 0x78, 0xd8, 0x63, 0x4c, 0x43, 0xd0, 0x6f, + 0xea, 0x92, 0x8f, 0x28, 0x22, 0xe4, 0x65, 0xaa, + 0x65, 0x76, 0xe9, 0xbf, 0x41, 0x93, 0x84, 0x50, + 0x6c, 0xc3, 0xce, 0x3c, 0x54, 0xac, 0x1a, 0x6f, + 0x67, 0xdc, 0x66, 0xf3, 0xb3, 0x01, 0x91, 0xe6, + 0x98, 0x38, 0x0b, 0xc9, 0x99, 0xb0, 0x5a, 0xbc, + 0xe1, 0x9d, 0xc0, 0xc6, 0xdc, 0xc2, 0xdd, 0x00, + 0x1e, 0xc5, 0x35, 0xba, 0x18, 0xde, 0xb2, 0xdf, + 0x1a, 0x10, 0x10, 0x23, 0x10, 0x83, 0x18, 0xc7, + 0x5d, 0xc9, 0x86, 0x11, 0xa0, 0x9d, 0xc4, 0x8a, + 0x0a, 0xcd, 0xec, 0x67, 0x6f, 0xab, 0xdf, 0x22, + 0x2f, 0x07, 0xe0, 0x26, 0xf0, 0x59, 0xb6, 0x72, + 0xb5, 0x6e, 0x5c, 0xbc, 0x8e, 0x1d, 0x21, 0xbb, + 0xd8, 0x67, 0xdd, 0x92, 0x72, 0x12, 0x05, 0x46, + 0x81, 0xd7, 0x0e, 0xa7, 0x37, 0x13, 0x4c, 0xdf, + 0xce, 0x93, 0xb6, 0xf8, 0x2a, 0xe2, 0x24, 0x23, + 0x27, 0x4e, 0x58, 0xa0, 0x82, 0x1c, 0xc5, 0x50, + 0x2e, 0x2d, 0x0a, 0xb4, 0x58, 0x5e, 0x94, 0xde, + 0x69, 0x75, 0xbe, 0x5e, 0x0b, 0x4e, 0xfc, 0xe5, + 0x1c, 0xd3, 0xe7, 0x0c, 0x25, 0xa1, 0xfb, 0xbb, + 0xd6, 0x09, 0xd2, 0x73, 0xad, 0x5b, 0x0d, 0x59, + 0x63, 0x1c, 0x53, 0x1f, 0x6a, 0x0a, 0x57, 0xb9, + }, + }, +}; +#define N_VECTORS (sizeof(aes_xts_test_vectors) / sizeof(*aes_xts_test_vectors)) + +int +main(int argc, char **argv) +{ + int allowed = 0, fail = 0; + size_t i; + struct aes_xts_tv *tv; + u_int8_t result[512]; + + if (geteuid() == 0) { + allowed = getallowsoft(); + if (allowed == 0) + setallowsoft(1); + } + + for (i = 0; i < N_VECTORS; i++) { + tv = &aes_xts_test_vectors[i]; + + /* Encrypt test */ + if (syscrypt(tv->key, tv->key_len, tv->seqno, tv->plaintext, + result, tv->text_len, 1) < 0) { + warnx("encrypt with /dev/crypto failed"); + fail++; + break; + } + if (!match(result, tv->ciphertext, tv->text_len)) { + fail++; + break; + } else + printf("OK encrypt test vector %zu\n", i); + + /* Decrypt test */ + if (syscrypt(tv->key, tv->key_len, tv->seqno, tv->ciphertext, + result, tv->text_len, 0) < 0) { + warnx("decrypt with /dev/crypto failed"); + fail++; + break; + } + if (!match(result, tv->plaintext, tv->text_len)) { + fail++; + break; + } else + printf("OK decrypt test vector %zu\n", i); + } + + if (geteuid() == 0 && allowed == 0) + setallowsoft(0); + exit((fail > 0) ? 1 : 0); +} + diff --git a/src/regress/sys/crypto/aesxts/obj b/src/regress/sys/crypto/aesxts/obj new file mode 120000 index 000000000..26b0159f4 --- /dev/null +++ b/src/regress/sys/crypto/aesxts/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/crypto/aesxts \ No newline at end of file diff --git a/src/regress/sys/crypto/auth/CVS/Entries b/src/regress/sys/crypto/auth/CVS/Entries new file mode 100644 index 000000000..937fc52ae --- /dev/null +++ b/src/regress/sys/crypto/auth/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Mar 25 14:06:17 2002// +/md5.c/1.6/Thu Jul 22 15:11:35 2004// +D diff --git a/src/regress/sys/crypto/auth/CVS/Repository b/src/regress/sys/crypto/auth/CVS/Repository new file mode 100644 index 000000000..4beb3ad36 --- /dev/null +++ b/src/regress/sys/crypto/auth/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/crypto/auth diff --git a/src/regress/sys/crypto/auth/CVS/Root b/src/regress/sys/crypto/auth/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/crypto/auth/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/crypto/auth/Makefile b/src/regress/sys/crypto/auth/Makefile new file mode 100644 index 000000000..7cd22beb9 --- /dev/null +++ b/src/regress/sys/crypto/auth/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/03/25 14:06:17 markus Exp $ + +PROG= md5 + +.include diff --git a/src/regress/sys/crypto/auth/md5.c b/src/regress/sys/crypto/auth/md5.c new file mode 100644 index 000000000..2a959fd1e --- /dev/null +++ b/src/regress/sys/crypto/auth/md5.c @@ -0,0 +1,174 @@ +/* $OpenBSD: md5.c,v 1.6 2004/07/22 15:11:35 miod Exp $ */ + +/* + * Copyright (c) 2002 Markus Friedl. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MD5LEN 16 + +static char * +sysmd5(const char *s, size_t len) +{ + static char md[MD5LEN*2 + 1]; + unsigned char digest[MD5LEN]; + struct session_op session; + struct crypt_op cryp; + int cryptodev_fd = -1, fd = -1, i; + + if ((cryptodev_fd = open("/dev/crypto", O_RDWR, 0)) < 0) { + warn("/dev/crypto"); + goto err; + } + if (ioctl(cryptodev_fd, CRIOGET, &fd) == -1) { + warn("CRIOGET failed"); + goto err; + } + memset(&session, 0, sizeof(session)); + session.cipher = 0; + session.mac = CRYPTO_MD5; + session.mackeylen = 0; + if (ioctl(fd, CIOCGSESSION, &session) == -1) { + warn("CIOCGSESSION"); + goto err; + } + memset(&cryp, 0, sizeof(cryp)); + cryp.ses = session.ses; + cryp.op = COP_ENCRYPT; /*???*/ + cryp.flags = 0; + cryp.src = (caddr_t) s; + cryp.len = len; + cryp.dst = 0; + cryp.mac = (caddr_t) digest; + cryp.iv = 0; + if (ioctl(fd, CIOCCRYPT, &cryp) == -1) { + warn("CIOCCRYPT"); + goto err; + } + if (ioctl(fd, CIOCFSESSION, &session.ses) == -1) { + warn("CIOCFSESSION"); + goto err; + } + close(fd); + close(cryptodev_fd); + + md[0] = '\0'; + for (i = 0; i < MD5LEN; i++) + snprintf(md + 2*i, sizeof(md) - 2*i, "%2.2x", digest[i]); + return (md); +err: + if (fd != -1) + close(fd); + if (cryptodev_fd != -1) + close(cryptodev_fd); + return (NULL); +} + +static int +getallowsoft(void) +{ + int mib[2], old; + size_t olen; + + olen = sizeof(old); + + mib[0] = CTL_KERN; + mib[1] = KERN_CRYPTODEVALLOWSOFT; + if (sysctl(mib, 2, &old, &olen, NULL, 0) < 0) + err(1, "sysctl failed"); + + return old; +} + +static void +setallowsoft(int new) +{ + int mib[2], old; + size_t olen, nlen; + + olen = nlen = sizeof(new); + + mib[0] = CTL_KERN; + mib[1] = KERN_CRYPTODEVALLOWSOFT; + + if (sysctl(mib, 2, &old, &olen, &new, nlen) < 0) + err(1, "sysctl failed"); +} + +/* test vectors from RFC 1321 */ +static struct { + char *dat; + char *md; +} test[] = { + { "", "d41d8cd98f00b204e9800998ecf8427e" }, + { "a", "0cc175b9c0f1b6a831c399e269772661" }, + { "abc", "900150983cd24fb0d6963f7d28e17f72" }, + { "message digest", "f96b697d7cb7938d525a2f31aaf161d0" }, + { "abcdefghijklmnopqrstuvwxyz", "c3fcd3d76192e4007dfb496cca67e13b" }, + { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", + "d174ab98d277d9f5a5611c2c9f419d9f" }, + { "123456789012345678901234567890123456789012345678901234567890" + "12345678901234567890", "57edf4a22be3c955ac49da2e2107b67a" }, + { NULL, NULL }, +}; + +int +main(int argc, char **argv) +{ + int allowed = 0, i, count, fail; + char *md; + + if (geteuid() == 0) { + allowed = getallowsoft(); + if (allowed == 0) + setallowsoft(1); + } + for (count = 0, fail = 0, i = 0; test[i].dat; i++) { + if ((md = sysmd5(test[i].dat, strlen(test[i].dat))) == NULL) { + warn("md5 with /dev/crypto failed"); + continue; + } + if (strcmp(md, test[i].md) == 0) { + printf("md5 ok for '%s'\n", test[i].dat); + count++; + } else { + warnx("md5 failed for '%s': got '%s' expected '%s'", + test[i].dat, md, test[i].md); + fail++; + } + } + if (geteuid() == 0 && allowed == 0) + setallowsoft(0); + exit((fail > 0 || count == 0) ? 1 : 0); +} diff --git a/src/regress/sys/crypto/cmac/CVS/Entries b/src/regress/sys/crypto/cmac/CVS/Entries new file mode 100644 index 000000000..803ecc58e --- /dev/null +++ b/src/regress/sys/crypto/cmac/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.2/Tue Sep 2 12:55:44 2008// +/cmac_test.c/1.2/Tue Sep 2 12:55:44 2008// +/cmac_test.txt/1.1/Tue Aug 12 15:49:07 2008// +D diff --git a/src/regress/sys/crypto/cmac/CVS/Repository b/src/regress/sys/crypto/cmac/CVS/Repository new file mode 100644 index 000000000..03de8fe65 --- /dev/null +++ b/src/regress/sys/crypto/cmac/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/crypto/cmac diff --git a/src/regress/sys/crypto/cmac/CVS/Root b/src/regress/sys/crypto/cmac/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/crypto/cmac/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/crypto/cmac/Makefile b/src/regress/sys/crypto/cmac/Makefile new file mode 100644 index 000000000..541697d30 --- /dev/null +++ b/src/regress/sys/crypto/cmac/Makefile @@ -0,0 +1,27 @@ +# $OpenBSD: Makefile,v 1.2 2008/09/02 12:55:44 djm Exp $ + +DIR=${.CURDIR}/../../../../sys + +PROG= cmac_test +SRCS+= rijndael.c cmac.c cmac_test.c +CDIAGFLAGS= -Wall +CDIAGFLAGS+= -Werror +CDIAGFLAGS+= -Wpointer-arith +CDIAGFLAGS+= -Wno-uninitialized +CDIAGFLAGS+= -Wstrict-prototypes +CDIAGFLAGS+= -Wmissing-prototypes +CDIAGFLAGS+= -Wunused +CDIAGFLAGS+= -Wsign-compare +CDIAGFLAGS+= -Wbounded +#CDIAGFLAGS+= -Wshadow + +REGRESS_TARGETS= run-regress-${PROG} + +CFLAGS+= -I${DIR} + +.PATH: ${DIR}/crypto/ + +run-regress-${PROG}: ${PROG} + ./${PROG} | diff - ${.CURDIR}/${PROG}.txt + +.include diff --git a/src/regress/sys/crypto/cmac/cmac_test.c b/src/regress/sys/crypto/cmac/cmac_test.c new file mode 100644 index 000000000..b2ffb2a8a --- /dev/null +++ b/src/regress/sys/crypto/cmac/cmac_test.c @@ -0,0 +1,128 @@ +/*- + * Copyright (c) 2008 Damien Bergamini + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include +#include + +static void +print_hex(char *str, unsigned char *buf, int len) +{ + int i; + + for ( i=0; i\n"); + + AES_CMAC_SetKey(&ctx, key); + AES_CMAC_Init(&ctx); + AES_CMAC_Update(&ctx, M, 0); + AES_CMAC_Final(T, &ctx); + printf("AES_CMAC "); print128(T); printf("\n"); + + printf("\nExample 2: len = 16\n"); + printf("M "); print_hex(" ",M,16); + + AES_CMAC_SetKey(&ctx, key); + AES_CMAC_Init(&ctx); + AES_CMAC_Update(&ctx, M, 16); + AES_CMAC_Final(T, &ctx); + printf("AES_CMAC "); print128(T); printf("\n"); + printf("\nExample 3: len = 40\n"); + printf("M "); print_hex(" ",M,40); + + AES_CMAC_SetKey(&ctx, key); + AES_CMAC_Init(&ctx); + AES_CMAC_Update(&ctx, M, 40); + AES_CMAC_Final(T, &ctx); + printf("AES_CMAC "); print128(T); printf("\n"); + + printf("\nExample 4: len = 64\n"); + printf("M "); print_hex(" ",M,64); + AES_CMAC_SetKey(&ctx, key); + AES_CMAC_Init(&ctx); + AES_CMAC_Update(&ctx, M, 64); + AES_CMAC_Final(T, &ctx); + printf("AES_CMAC "); print128(T); printf("\n"); + + printf("\nExample 4bis: len = 64\n"); + printf("M "); print_hex(" ",M,64); + AES_CMAC_SetKey(&ctx, key); + AES_CMAC_Init(&ctx); + AES_CMAC_Update(&ctx, M, 40); + AES_CMAC_Update(&ctx, M + 40, 24); + AES_CMAC_Final(T, &ctx); + printf("AES_CMAC "); print128(T); printf("\n"); + + printf("\nExample 4ter: len = 64\n"); + printf("M "); print_hex(" ",M,64); + AES_CMAC_SetKey(&ctx, key); + AES_CMAC_Init(&ctx); + AES_CMAC_Update(&ctx, M, 16); + AES_CMAC_Update(&ctx, M + 16, 16); + AES_CMAC_Update(&ctx, M + 32, 10); + AES_CMAC_Update(&ctx, M + 42, 0); + AES_CMAC_Update(&ctx, M + 42, 14); + AES_CMAC_Update(&ctx, M + 56, 8); + AES_CMAC_Final(T, &ctx); + printf("AES_CMAC "); print128(T); printf("\n"); + + printf("--------------------------------------------------\n"); + + return 0; +} diff --git a/src/regress/sys/crypto/cmac/cmac_test.txt b/src/regress/sys/crypto/cmac/cmac_test.txt new file mode 100644 index 000000000..6f4140f54 --- /dev/null +++ b/src/regress/sys/crypto/cmac/cmac_test.txt @@ -0,0 +1,38 @@ +-------------------------------------------------- +K 2b7e1516 28aed2a6 abf71588 09cf4f3c + +Example 1: len = 0 +M +AES_CMAC bb1d6929 e9593728 7fa37d12 9b756746 + +Example 2: len = 16 +M 6bc1bee2 2e409f96 e93d7e11 7393172a +AES_CMAC 070a16b4 6b4d4144 f79bdd9d d04a287c + +Example 3: len = 40 +M 6bc1bee2 2e409f96 e93d7e11 7393172a + ae2d8a57 1e03ac9c 9eb76fac 45af8e51 + 30c81c46 a35ce411 +AES_CMAC dfa66747 de9ae630 30ca3261 1497c827 + +Example 4: len = 64 +M 6bc1bee2 2e409f96 e93d7e11 7393172a + ae2d8a57 1e03ac9c 9eb76fac 45af8e51 + 30c81c46 a35ce411 e5fbc119 1a0a52ef + f69f2445 df4f9b17 ad2b417b e66c3710 +AES_CMAC 51f0bebf 7e3b9d92 fc497417 79363cfe + +Example 4bis: len = 64 +M 6bc1bee2 2e409f96 e93d7e11 7393172a + ae2d8a57 1e03ac9c 9eb76fac 45af8e51 + 30c81c46 a35ce411 e5fbc119 1a0a52ef + f69f2445 df4f9b17 ad2b417b e66c3710 +AES_CMAC 51f0bebf 7e3b9d92 fc497417 79363cfe + +Example 4ter: len = 64 +M 6bc1bee2 2e409f96 e93d7e11 7393172a + ae2d8a57 1e03ac9c 9eb76fac 45af8e51 + 30c81c46 a35ce411 e5fbc119 1a0a52ef + f69f2445 df4f9b17 ad2b417b e66c3710 +AES_CMAC 51f0bebf 7e3b9d92 fc497417 79363cfe +-------------------------------------------------- diff --git a/src/regress/sys/crypto/cmac/obj b/src/regress/sys/crypto/cmac/obj new file mode 120000 index 000000000..a2da93482 --- /dev/null +++ b/src/regress/sys/crypto/cmac/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/crypto/cmac \ No newline at end of file diff --git a/src/regress/sys/crypto/enc/CVS/Entries b/src/regress/sys/crypto/enc/CVS/Entries new file mode 100644 index 000000000..4eea8907a --- /dev/null +++ b/src/regress/sys/crypto/enc/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.4/Wed Dec 29 04:28:39 2004// +/des3.c/1.7/Thu Jul 22 15:11:37 2004// +D diff --git a/src/regress/sys/crypto/enc/CVS/Repository b/src/regress/sys/crypto/enc/CVS/Repository new file mode 100644 index 000000000..c04b7d14e --- /dev/null +++ b/src/regress/sys/crypto/enc/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/crypto/enc diff --git a/src/regress/sys/crypto/enc/CVS/Root b/src/regress/sys/crypto/enc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/crypto/enc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/crypto/enc/Makefile b/src/regress/sys/crypto/enc/Makefile new file mode 100644 index 000000000..fd1b18dc8 --- /dev/null +++ b/src/regress/sys/crypto/enc/Makefile @@ -0,0 +1,12 @@ +# $OpenBSD: Makefile,v 1.4 2004/12/29 04:28:39 david Exp $ + +PROG= des3 +LDADD=-ldes +DPADD=${LIBDES} + +REGRESS_ROOT_TARGETS= run-regress-${PROG} + +run-regress-${PROG}: ${PROG} + ${SUDO} ./${PROG} + +.include diff --git a/src/regress/sys/crypto/enc/des3.c b/src/regress/sys/crypto/enc/des3.c new file mode 100644 index 000000000..07c55792a --- /dev/null +++ b/src/regress/sys/crypto/enc/des3.c @@ -0,0 +1,213 @@ +/* $OpenBSD: des3.c,v 1.7 2004/07/22 15:11:37 miod Exp $ */ + +/* + * Copyright (c) 2002 Markus Friedl. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int +syscrypt(const unsigned char *key, size_t klen, const unsigned char *iv, + const unsigned char *in, unsigned char *out, size_t len, int encrypt) +{ + struct session_op session; + struct crypt_op cryp; + int cryptodev_fd = -1, fd = -1; + + if ((cryptodev_fd = open("/dev/crypto", O_RDWR, 0)) < 0) { + warn("/dev/crypto"); + goto err; + } + if (ioctl(cryptodev_fd, CRIOGET, &fd) == -1) { + warn("CRIOGET failed"); + goto err; + } + memset(&session, 0, sizeof(session)); + session.cipher = CRYPTO_3DES_CBC; + session.key = (caddr_t) key; + session.keylen = klen; + if (ioctl(fd, CIOCGSESSION, &session) == -1) { + warn("CIOCGSESSION"); + goto err; + } + memset(&cryp, 0, sizeof(cryp)); + cryp.ses = session.ses; + cryp.op = encrypt ? COP_ENCRYPT : COP_DECRYPT; + cryp.flags = 0; + cryp.len = len; + cryp.src = (caddr_t) in; + cryp.dst = (caddr_t) out; + cryp.iv = (caddr_t) iv; + cryp.mac = 0; + if (ioctl(fd, CIOCCRYPT, &cryp) == -1) { + warn("CIOCCRYPT"); + goto err; + } + if (ioctl(fd, CIOCFSESSION, &session.ses) == -1) { + warn("CIOCFSESSION"); + goto err; + } + close(fd); + close(cryptodev_fd); + return (0); + +err: + if (fd != -1) + close(fd); + if (cryptodev_fd != -1) + close(cryptodev_fd); + return (-1); +} + +static int +getallowsoft(void) +{ + int mib[2], old; + size_t olen; + + olen = sizeof(old); + + mib[0] = CTL_KERN; + mib[1] = KERN_CRYPTODEVALLOWSOFT; + if (sysctl(mib, 2, &old, &olen, NULL, 0) < 0) + err(1, "sysctl failed"); + + return old; +} + +static void +setallowsoft(int new) +{ + int mib[2], old; + size_t olen, nlen; + + olen = nlen = sizeof(new); + + mib[0] = CTL_KERN; + mib[1] = KERN_CRYPTODEVALLOWSOFT; + + if (sysctl(mib, 2, &old, &olen, &new, nlen) < 0) + err(1, "sysctl failed"); +} + +static int +match(unsigned char *a, unsigned char *b, size_t len) +{ + int i; + + if (memcmp(a, b, len) == 0) + return (1); + + warnx("decrypt/plaintext mismatch"); + + for (i = 0; i < len; i++) + printf("%2.2x", a[i]); + printf("\n"); + for (i = 0; i < len; i++) + printf("%2.2x", b[i]); + printf("\n"); + + return (0); +} + +#define SZ 16 + +int +main(int argc, char **argv) +{ + des_key_schedule ks1, ks2, ks3; + unsigned char iv0[8], iv[8], key[24] = "012345670123456701234567"; + unsigned char b1[SZ], b2[SZ]; + int allowed = 0, i, fail = 0; + u_int32_t rand = 0; + + if (geteuid() == 0) { + allowed = getallowsoft(); + if (allowed == 0) + setallowsoft(1); + } + + /* setup data and iv */ + for (i = 0; i < sizeof(b1); i++ ) { + if (i % 4 == 0) + rand = arc4random(); + b1[i] = rand; + rand >>= 8; + } + for (i = 0; i < sizeof(iv0); i++ ) { + if (i % 4 == 0) + rand = arc4random(); + iv0[i] = rand; + rand >>= 8; + } + memset(b2, 0, sizeof(b2)); + + /* keysetup for software */ + des_set_key((void *) key, ks1); + des_set_key((void *) (key+8), ks2); + des_set_key((void *) (key+16), ks3); + + /* encrypt with software, decrypt with /dev/crypto */ + memcpy(iv, iv0, sizeof(iv0)); + des_ede3_cbc_encrypt((void *)b1, (void*)b2, sizeof(b1), ks1, ks2, ks3, + (void*)iv, DES_ENCRYPT); + memcpy(iv, iv0, sizeof(iv0)); + if (syscrypt(key, sizeof(key), iv, b2, b2, sizeof(b1), 0) < 0) { + warnx("decrypt with /dev/crypto failed"); + fail++; + } + if (!match(b1, b2, sizeof(b1))) + fail++; + else + printf("ok, encrypt with software, decrypt with /dev/crypto\n"); + + /* encrypt with /dev/crypto, decrypt with software */ + memset(b2, 0, sizeof(b2)); + memcpy(iv, iv0, sizeof(iv0)); + if (syscrypt(key, sizeof(key), iv, b1, b2, sizeof(b1), 1) < 0) { + warnx("encrypt with /dev/crypto failed"); + fail++; + } + memcpy(iv, iv0, sizeof(iv0)); + des_ede3_cbc_encrypt((void *)b2, (void*)b2, sizeof(b1), ks1, ks2, ks3, + (void*)iv, DES_DECRYPT); + if (!match(b1, b2, sizeof(b1))) + fail++; + else + printf("ok, encrypt with /dev/crypto, decrypt with software\n"); + + if (geteuid() == 0 && allowed == 0) + setallowsoft(0); + exit((fail > 0) ? 1 : 0); +} diff --git a/src/regress/sys/crypto/enc/obj b/src/regress/sys/crypto/enc/obj new file mode 120000 index 000000000..698a8e338 --- /dev/null +++ b/src/regress/sys/crypto/enc/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/crypto/enc \ No newline at end of file diff --git a/src/regress/sys/crypto/hmac/CVS/Entries b/src/regress/sys/crypto/hmac/CVS/Entries new file mode 100644 index 000000000..b2d3d181e --- /dev/null +++ b/src/regress/sys/crypto/hmac/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.2/Tue Sep 2 12:55:44 2008// +/hmac_test.c/1.2/Tue Sep 2 12:55:44 2008// +/hmac_test.txt/1.1/Tue Aug 12 15:49:08 2008// +D diff --git a/src/regress/sys/crypto/hmac/CVS/Repository b/src/regress/sys/crypto/hmac/CVS/Repository new file mode 100644 index 000000000..381f70227 --- /dev/null +++ b/src/regress/sys/crypto/hmac/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/crypto/hmac diff --git a/src/regress/sys/crypto/hmac/CVS/Root b/src/regress/sys/crypto/hmac/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/crypto/hmac/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/crypto/hmac/Makefile b/src/regress/sys/crypto/hmac/Makefile new file mode 100644 index 000000000..5515c659c --- /dev/null +++ b/src/regress/sys/crypto/hmac/Makefile @@ -0,0 +1,27 @@ +# $OpenBSD: Makefile,v 1.2 2008/09/02 12:55:44 djm Exp $ + +DIR=${.CURDIR}/../../../../sys + +PROG= hmac_test +SRCS+= md5.c sha1.c sha2.c hmac.c hmac_test.c +CDIAGFLAGS= -Wall +CDIAGFLAGS+= -Werror +CDIAGFLAGS+= -Wpointer-arith +CDIAGFLAGS+= -Wno-uninitialized +CDIAGFLAGS+= -Wstrict-prototypes +CDIAGFLAGS+= -Wmissing-prototypes +CDIAGFLAGS+= -Wunused +CDIAGFLAGS+= -Wsign-compare +CDIAGFLAGS+= -Wbounded +#CDIAGFLAGS+= -Wshadow + +REGRESS_TARGETS= run-regress-${PROG} + +CFLAGS+= -I${DIR} + +.PATH: ${DIR}/crypto/ + +run-regress-${PROG}: ${PROG} + ./${PROG} | diff - ${.CURDIR}/${PROG}.txt + +.include diff --git a/src/regress/sys/crypto/hmac/hmac_test.c b/src/regress/sys/crypto/hmac/hmac_test.c new file mode 100644 index 000000000..7a0d34c28 --- /dev/null +++ b/src/regress/sys/crypto/hmac/hmac_test.c @@ -0,0 +1,92 @@ +/*- + * Copyright (c) 2008 Damien Bergamini + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include + +static void +print_hex(unsigned char *buf, int len) +{ + int i; + + printf("digest = 0x"); + for (i = 0; i < len; i++) + printf("%02x", buf[i]); + printf("\n"); +} + +int +main(void) +{ + HMAC_MD5_CTX md5; + HMAC_SHA1_CTX sha1; + HMAC_SHA256_CTX sha256; + u_int8_t data[50], output[32]; + + HMAC_MD5_Init(&md5, "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b", 16); + HMAC_MD5_Update(&md5, "Hi There", 8); + HMAC_MD5_Final(output, &md5); + print_hex(output, MD5_DIGEST_LENGTH); + + HMAC_MD5_Init(&md5, "Jefe", 4); + HMAC_MD5_Update(&md5, "what do ya want for nothing?", 28); + HMAC_MD5_Final(output, &md5); + print_hex(output, MD5_DIGEST_LENGTH); + + HMAC_MD5_Init(&md5, "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA", 16); + memset(data, 0xDD, sizeof data); + HMAC_MD5_Update(&md5, data, sizeof data); + HMAC_MD5_Final(output, &md5); + print_hex(output, MD5_DIGEST_LENGTH); + + HMAC_SHA1_Init(&sha1, "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b", 16); + HMAC_SHA1_Update(&sha1, "Hi There", 8); + HMAC_SHA1_Final(output, &sha1); + print_hex(output, SHA1_DIGEST_LENGTH); + + HMAC_SHA1_Init(&sha1, "Jefe", 4); + HMAC_SHA1_Update(&sha1, "what do ya want for nothing?", 28); + HMAC_SHA1_Final(output, &sha1); + print_hex(output, SHA1_DIGEST_LENGTH); + + HMAC_SHA1_Init(&sha1, "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA", 16); + memset(data, 0xDD, sizeof data); + HMAC_SHA1_Update(&sha1, data, sizeof data); + HMAC_SHA1_Final(output, &sha1); + print_hex(output, SHA1_DIGEST_LENGTH); + + HMAC_SHA256_Init(&sha256, "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b", 16); + HMAC_SHA256_Update(&sha256, "Hi There", 8); + HMAC_SHA256_Final(output, &sha256); + print_hex(output, SHA256_DIGEST_LENGTH); + + HMAC_SHA256_Init(&sha256, "Jefe", 4); + HMAC_SHA256_Update(&sha256, "what do ya want for nothing?", 28); + HMAC_SHA256_Final(output, &sha256); + print_hex(output, SHA256_DIGEST_LENGTH); + + HMAC_SHA256_Init(&sha256, "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA", 16); + memset(data, 0xDD, sizeof data); + HMAC_SHA256_Update(&sha256, data, sizeof data); + HMAC_SHA256_Final(output, &sha256); + print_hex(output, SHA256_DIGEST_LENGTH); + + return 0; +} diff --git a/src/regress/sys/crypto/hmac/hmac_test.txt b/src/regress/sys/crypto/hmac/hmac_test.txt new file mode 100644 index 000000000..d8375b615 --- /dev/null +++ b/src/regress/sys/crypto/hmac/hmac_test.txt @@ -0,0 +1,9 @@ +digest = 0x9294727a3638bb1c13f48ef8158bfc9d +digest = 0x750c783e6ab0b503eaa86e310a5db738 +digest = 0x56be34521d144c88dbb8c733f0e8b3f6 +digest = 0x675b0b3a1b4ddf4e124872da6c2f632bfed957e9 +digest = 0xeffcdf6ae5eb2fa2d27416d5f184df9c259a7c79 +digest = 0xd730594d167e35d5956fd8003d0db3d3f46dc7bb +digest = 0x492ce020fe2534a5789dc3848806c78f4f6711397f08e7e7a12ca5a4483c8aa6 +digest = 0x5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843 +digest = 0x7dda3cc169743a6484649f94f0eda0f9f2ff496a9733fb796ed5adb40a44c3c1 diff --git a/src/regress/sys/crypto/hmac/obj b/src/regress/sys/crypto/hmac/obj new file mode 120000 index 000000000..7ad973d72 --- /dev/null +++ b/src/regress/sys/crypto/hmac/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/crypto/hmac \ No newline at end of file diff --git a/src/regress/sys/crypto/key_wrap/CVS/Entries b/src/regress/sys/crypto/key_wrap/CVS/Entries new file mode 100644 index 000000000..0546392f1 --- /dev/null +++ b/src/regress/sys/crypto/key_wrap/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.2/Tue Sep 2 12:55:44 2008// +/key_wrap_test.c/1.2/Tue Sep 2 12:55:44 2008// +/key_wrap_test.txt/1.1/Tue Aug 12 15:49:08 2008// +D diff --git a/src/regress/sys/crypto/key_wrap/CVS/Repository b/src/regress/sys/crypto/key_wrap/CVS/Repository new file mode 100644 index 000000000..05d884a58 --- /dev/null +++ b/src/regress/sys/crypto/key_wrap/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/crypto/key_wrap diff --git a/src/regress/sys/crypto/key_wrap/CVS/Root b/src/regress/sys/crypto/key_wrap/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/crypto/key_wrap/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/crypto/key_wrap/Makefile b/src/regress/sys/crypto/key_wrap/Makefile new file mode 100644 index 000000000..e63d0ff01 --- /dev/null +++ b/src/regress/sys/crypto/key_wrap/Makefile @@ -0,0 +1,27 @@ +# $OpenBSD: Makefile,v 1.2 2008/09/02 12:55:44 djm Exp $ + +DIR=${.CURDIR}/../../../../sys + +PROG= key_wrap_test +SRCS+= rijndael.c key_wrap.c key_wrap_test.c +CDIAGFLAGS= -Wall +CDIAGFLAGS+= -Werror +CDIAGFLAGS+= -Wpointer-arith +CDIAGFLAGS+= -Wno-uninitialized +CDIAGFLAGS+= -Wstrict-prototypes +CDIAGFLAGS+= -Wmissing-prototypes +CDIAGFLAGS+= -Wunused +CDIAGFLAGS+= -Wsign-compare +CDIAGFLAGS+= -Wbounded +#CDIAGFLAGS+= -Wshadow + +REGRESS_TARGETS= run-regress-${PROG} + +CFLAGS+= -I${DIR} + +.PATH: ${DIR}/crypto/ + +run-regress-${PROG}: ${PROG} + ./${PROG} | diff - ${.CURDIR}/${PROG}.txt + +.include diff --git a/src/regress/sys/crypto/key_wrap/key_wrap_test.c b/src/regress/sys/crypto/key_wrap/key_wrap_test.c new file mode 100644 index 000000000..52e34e0ba --- /dev/null +++ b/src/regress/sys/crypto/key_wrap/key_wrap_test.c @@ -0,0 +1,83 @@ +/*- + * Copyright (c) 2008 Damien Bergamini + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include +#include + +void +ovbcopy(const void *src, void *dst, size_t len); + +static void +print_hex(const char *str, unsigned char *buf, int len) +{ + int i; + + printf("%s", str); + for (i = 0; i < len; i++) { + if ((i % 8) == 0) + printf(" "); + printf("%02X", buf[i]); + } + printf("\n"); +} + +void +ovbcopy(const void *src, void *dst, size_t len) +{ + /* userspace does not have ovbcopy: fake it */ + memmove(dst, src, len); +} + +static void +do_test(u_int kek_len, u_int data_len) +{ + aes_key_wrap_ctx ctx; + u_int8_t kek[32], data[32]; + u_int8_t output[64]; + u_int i; + + for (i = 0; i < kek_len; i++) + kek[i] = i; + printf("Input:\n"); + print_hex("KEK:\n ", kek, kek_len); + for (i = 0; i < 16; i++) + data[i] = i * 16 + i; + for (; i < data_len; i++) + data[i] = i - 16; + print_hex("Key Data:\n ", data, data_len); + aes_key_wrap_set_key(&ctx, kek, kek_len); + aes_key_wrap(&ctx, data, data_len / 8, output); + print_hex("Ciphertext:\n ", output, data_len + 8); + aes_key_unwrap(&ctx, output, output, data_len / 8); + printf("Output:\n"); + print_hex("Key Data:\n ", output, data_len); + printf("====\n"); +} + +int +main(void) +{ + do_test(16, 16); + do_test(24, 16); + do_test(32, 16); + do_test(24, 24); + do_test(32, 24); + do_test(32, 32); + + return 0; +} diff --git a/src/regress/sys/crypto/key_wrap/key_wrap_test.txt b/src/regress/sys/crypto/key_wrap/key_wrap_test.txt new file mode 100644 index 000000000..94c7a4673 --- /dev/null +++ b/src/regress/sys/crypto/key_wrap/key_wrap_test.txt @@ -0,0 +1,66 @@ +Input: +KEK: + 0001020304050607 08090A0B0C0D0E0F +Key Data: + 0011223344556677 8899AABBCCDDEEFF +Ciphertext: + 1FA68B0A8112B447 AEF34BD8FB5A7B82 9D3E862371D2CFE5 +Output: +Key Data: + 0011223344556677 8899AABBCCDDEEFF +==== +Input: +KEK: + 0001020304050607 08090A0B0C0D0E0F 1011121314151617 +Key Data: + 0011223344556677 8899AABBCCDDEEFF +Ciphertext: + 96778B25AE6CA435 F92B5B97C050AED2 468AB8A17AD84E5D +Output: +Key Data: + 0011223344556677 8899AABBCCDDEEFF +==== +Input: +KEK: + 0001020304050607 08090A0B0C0D0E0F 1011121314151617 18191A1B1C1D1E1F +Key Data: + 0011223344556677 8899AABBCCDDEEFF +Ciphertext: + 64E8C3F9CE0F5BA2 63E9777905818A2A 93C8191E7D6E8AE7 +Output: +Key Data: + 0011223344556677 8899AABBCCDDEEFF +==== +Input: +KEK: + 0001020304050607 08090A0B0C0D0E0F 1011121314151617 +Key Data: + 0011223344556677 8899AABBCCDDEEFF 0001020304050607 +Ciphertext: + 031D33264E15D332 68F24EC260743EDC E1C6C7DDEE725A93 6BA814915C6762D2 +Output: +Key Data: + 0011223344556677 8899AABBCCDDEEFF 0001020304050607 +==== +Input: +KEK: + 0001020304050607 08090A0B0C0D0E0F 1011121314151617 18191A1B1C1D1E1F +Key Data: + 0011223344556677 8899AABBCCDDEEFF 0001020304050607 +Ciphertext: + A8F9BC1612C68B3F F6E6F4FBE30E71E4 769C8B80A32CB895 8CD5D17D6B254DA1 +Output: +Key Data: + 0011223344556677 8899AABBCCDDEEFF 0001020304050607 +==== +Input: +KEK: + 0001020304050607 08090A0B0C0D0E0F 1011121314151617 18191A1B1C1D1E1F +Key Data: + 0011223344556677 8899AABBCCDDEEFF 0001020304050607 08090A0B0C0D0E0F +Ciphertext: + 28C9F404C4B810F4 CBCCB35CFB87F826 3F5786E2D80ED326 CBC7F0E71A99F43B FB988B9B7A02DD21 +Output: +Key Data: + 0011223344556677 8899AABBCCDDEEFF 0001020304050607 08090A0B0C0D0E0F +==== diff --git a/src/regress/sys/crypto/key_wrap/obj b/src/regress/sys/crypto/key_wrap/obj new file mode 120000 index 000000000..716b820f8 --- /dev/null +++ b/src/regress/sys/crypto/key_wrap/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/crypto/key_wrap \ No newline at end of file diff --git a/src/regress/sys/ddb/CVS/Entries b/src/regress/sys/ddb/CVS/Entries new file mode 100644 index 000000000..eb84c98ce --- /dev/null +++ b/src/regress/sys/ddb/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.3/Sun Jun 27 18:30:03 2010// +D diff --git a/src/regress/sys/ddb/CVS/Repository b/src/regress/sys/ddb/CVS/Repository new file mode 100644 index 000000000..00fb5ba04 --- /dev/null +++ b/src/regress/sys/ddb/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ddb diff --git a/src/regress/sys/ddb/CVS/Root b/src/regress/sys/ddb/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ddb/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ddb/Makefile b/src/regress/sys/ddb/Makefile new file mode 100644 index 000000000..5a891bf30 --- /dev/null +++ b/src/regress/sys/ddb/Makefile @@ -0,0 +1,25 @@ +# $OpenBSD: Makefile,v 1.3 2010/06/20 14:22:39 phessler Exp $ + +.if (${MACHINE} == "i386") +REGRESS_TARGETS+= size +.endif + +SRC= ${.CURDIR}/../../.. + +size: clean + mkdir build + /usr/sbin/config -s ${SRC}/sys -b build \ + ${SRC}/sys/arch/${MACHINE}/conf/GENERIC + cd build; \ + make db_hangman.o; \ + if [ `size db_hangman.o | \ + awk 'BEGIN {getline} {print $$1+$$2}'` -gt 1024 ]; \ + then \ + echo 'hangman is too big!!!'; \ + false; \ + fi + +clean: + rm -rf build + +.include diff --git a/src/regress/sys/ddb/obj b/src/regress/sys/ddb/obj new file mode 120000 index 000000000..19705f134 --- /dev/null +++ b/src/regress/sys/ddb/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/ddb \ No newline at end of file diff --git a/src/regress/sys/dev/CVS/Entries b/src/regress/sys/dev/CVS/Entries new file mode 100644 index 000000000..fc4d5f77c --- /dev/null +++ b/src/regress/sys/dev/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.3/Wed Dec 7 01:43:39 2005// +D/audio//// +D/audio_info//// +D/audio_rw//// +D/fdesc//// diff --git a/src/regress/sys/dev/CVS/Repository b/src/regress/sys/dev/CVS/Repository new file mode 100644 index 000000000..904408068 --- /dev/null +++ b/src/regress/sys/dev/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/dev diff --git a/src/regress/sys/dev/CVS/Root b/src/regress/sys/dev/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/dev/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/dev/Makefile b/src/regress/sys/dev/Makefile new file mode 100644 index 000000000..d84da9c70 --- /dev/null +++ b/src/regress/sys/dev/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.3 2005/12/07 01:43:39 pedro Exp $ + +SUBDIR+= audio +SUBDIR+= fdesc + +.include diff --git a/src/regress/sys/dev/audio/CVS/Entries b/src/regress/sys/dev/audio/CVS/Entries new file mode 100644 index 000000000..7aace59a0 --- /dev/null +++ b/src/regress/sys/dev/audio/CVS/Entries @@ -0,0 +1,8 @@ +/Makefile/1.3/Fri Jul 9 19:48:02 2004// +/adpcm.c/1.2/Wed Mar 19 03:35:57 2003// +/adpcm.h/1.1.1.1/Sat Feb 1 17:58:18 2003// +/autest.1/1.10/Thu May 31 19:19:42 2007// +/autest.c/1.12/Wed Apr 25 15:27:54 2007// +/law.c/1.1.1.1/Sat Feb 1 17:58:18 2003// +/law.h/1.2/Mon Jun 2 19:15:38 2003// +D diff --git a/src/regress/sys/dev/audio/CVS/Repository b/src/regress/sys/dev/audio/CVS/Repository new file mode 100644 index 000000000..953f7e611 --- /dev/null +++ b/src/regress/sys/dev/audio/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/dev/audio diff --git a/src/regress/sys/dev/audio/CVS/Root b/src/regress/sys/dev/audio/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/dev/audio/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/dev/audio/Makefile b/src/regress/sys/dev/audio/Makefile new file mode 100644 index 000000000..b045b2c94 --- /dev/null +++ b/src/regress/sys/dev/audio/Makefile @@ -0,0 +1,13 @@ +# $OpenBSD: Makefile,v 1.3 2004/07/09 19:48:02 david Exp $ + +PROG=autest +SRCS=autest.c adpcm.c law.c +CFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes +MAN1=autest.1 +LDADD=-lm + +.ifndef DO_AUTEST +REGRESS_SKIP= +.endif + +.include diff --git a/src/regress/sys/dev/audio/adpcm.c b/src/regress/sys/dev/audio/adpcm.c new file mode 100644 index 000000000..00cfa8947 --- /dev/null +++ b/src/regress/sys/dev/audio/adpcm.c @@ -0,0 +1,259 @@ +/* $OpenBSD: adpcm.c,v 1.2 2003/03/19 03:35:57 david Exp $ */ + +/*********************************************************** +Copyright 1992 by Stichting Mathematisch Centrum, Amsterdam, The +Netherlands. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +******************************************************************/ + +/* +** Intel/DVI ADPCM coder/decoder. +** +** The algorithm for this coder was taken from the IMA Compatibility Project +** proceedings, Vol 2, Number 2; May 1992. +** +** Version 1.2, 18-Dec-92. +** +** Change log: +** - Fixed a stupid bug, where the delta was computed as +** stepsize*code/4 in stead of stepsize*(code+0.5)/4. +** - There was an off-by-one error causing it to pick +** an incorrect delta once in a blue moon. +** - The NODIVMUL define has been removed. Computations are now always done +** using shifts, adds and subtracts. It turned out that, because the standard +** is defined using shift/add/subtract, you needed bits of fixup code +** (because the div/mul simulation using shift/add/sub made some rounding +** errors that real div/mul don't make) and all together the resultant code +** ran slower than just using the shifts all the time. +** - Changed some of the variable names to be more meaningful. +*/ + +#include + +#include "adpcm.h" +#include /*DBG*/ + +#ifndef __STDC__ +#define signed +#endif + +/* Intel ADPCM step variation table */ +static int indexTable[16] = { + -1, -1, -1, -1, 2, 4, 6, 8, + -1, -1, -1, -1, 2, 4, 6, 8, +}; + +static int stepsizeTable[89] = { + 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, + 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, + 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, + 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, + 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, + 876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, + 2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358, + 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899, + 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 +}; + +void +adpcm_coder(indata, outdata, len, state) + int16_t indata[]; + char outdata[]; + int len; + struct adpcm_state *state; +{ + int16_t *inp; /* Input buffer pointer */ + signed char *outp; /* output buffer pointer */ + int val; /* Current input sample value */ + int sign; /* Current adpcm sign bit */ + int delta; /* Current adpcm output value */ + int diff; /* Difference between val and valprev */ + int step; /* Stepsize */ + int valpred; /* Predicted output value */ + int vpdiff; /* Current change to valpred */ + int index; /* Current step change index */ + int outputbuffer; /* place to keep previous 4-bit value */ + int bufferstep; /* toggle between outputbuffer/output */ + + outputbuffer = 0; /* XXX gcc */ + + outp = (signed char *)outdata; + inp = indata; + + valpred = state->valprev; + index = state->index; + step = stepsizeTable[index]; + + bufferstep = 1; + + for ( ; len > 0 ; len-- ) { + val = *inp++; + + /* Step 1 - compute difference with previous value */ + diff = val - valpred; + sign = (diff < 0) ? 8 : 0; + if ( sign ) diff = (-diff); + + /* Step 2 - Divide and clamp */ + /* Note: + ** This code *approximately* computes: + ** delta = diff*4/step; + ** vpdiff = (delta+0.5)*step/4; + ** but in shift step bits are dropped. The net result of this is + ** that even if you have fast mul/div hardware you cannot put it to + ** good use since the fixup would be too expensive. + */ + delta = 0; + vpdiff = (step >> 3); + + if ( diff >= step ) { + delta = 4; + diff -= step; + vpdiff += step; + } + step >>= 1; + if ( diff >= step ) { + delta |= 2; + diff -= step; + vpdiff += step; + } + step >>= 1; + if ( diff >= step ) { + delta |= 1; + vpdiff += step; + } + + /* Step 3 - Update previous value */ + if ( sign ) + valpred -= vpdiff; + else + valpred += vpdiff; + + /* Step 4 - Clamp previous value to 16 bits */ + if ( valpred > 32767 ) + valpred = 32767; + else if ( valpred < -32768 ) + valpred = -32768; + + /* Step 5 - Assemble value, update index and step values */ + delta |= sign; + + index += indexTable[delta]; + if ( index < 0 ) index = 0; + if ( index > 88 ) index = 88; + step = stepsizeTable[index]; + + /* Step 6 - Output value */ + if ( bufferstep ) { + outputbuffer = (delta << 4) & 0xf0; + } else { + *outp++ = (delta & 0x0f) | outputbuffer; + } + bufferstep = !bufferstep; + } + + /* Output last step, if needed */ + if ( !bufferstep ) + *outp++ = outputbuffer; + + state->valprev = valpred; + state->index = index; +} + +void +adpcm_decoder(indata, outdata, len, state) + char indata[]; + int16_t outdata[]; + int len; + struct adpcm_state *state; +{ + signed char *inp; /* Input buffer pointer */ + int16_t *outp; /* output buffer pointer */ + int sign; /* Current adpcm sign bit */ + int delta; /* Current adpcm output value */ + int step; /* Stepsize */ + int valpred; /* Predicted value */ + int vpdiff; /* Current change to valpred */ + int index; /* Current step change index */ + int inputbuffer; /* place to keep next 4-bit value */ + int bufferstep; /* toggle between inputbuffer/input */ + + inputbuffer = 0; /* XXX gcc */ + outp = outdata; + inp = (signed char *)indata; + + valpred = state->valprev; + index = state->index; + step = stepsizeTable[index]; + + bufferstep = 0; + + for ( ; len > 0 ; len-- ) { + + /* Step 1 - get the delta value */ + if ( bufferstep ) { + delta = inputbuffer & 0xf; + } else { + inputbuffer = *inp++; + delta = (inputbuffer >> 4) & 0xf; + } + bufferstep = !bufferstep; + + /* Step 2 - Find new index value (for later) */ + index += indexTable[delta]; + if ( index < 0 ) index = 0; + if ( index > 88 ) index = 88; + + /* Step 3 - Separate sign and magnitude */ + sign = delta & 8; + delta = delta & 7; + + /* Step 4 - Compute difference and new predicted value */ + /* + ** Computes 'vpdiff = (delta+0.5)*step/4', but see comment + ** in adpcm_coder. + */ + vpdiff = step >> 3; + if ( delta & 4 ) vpdiff += step; + if ( delta & 2 ) vpdiff += step>>1; + if ( delta & 1 ) vpdiff += step>>2; + + if ( sign ) + valpred -= vpdiff; + else + valpred += vpdiff; + + /* Step 5 - clamp output value */ + if ( valpred > 32767 ) + valpred = 32767; + else if ( valpred < -32768 ) + valpred = -32768; + + /* Step 6 - Update step value */ + step = stepsizeTable[index]; + + /* Step 7 - Output value */ + *outp++ = valpred; + } + + state->valprev = valpred; + state->index = index; +} diff --git a/src/regress/sys/dev/audio/adpcm.h b/src/regress/sys/dev/audio/adpcm.h new file mode 100644 index 000000000..ee8ab459a --- /dev/null +++ b/src/regress/sys/dev/audio/adpcm.h @@ -0,0 +1,21 @@ +/* $OpenBSD: adpcm.h,v 1.1.1.1 2003/02/01 17:58:18 jason Exp $ */ + +/* +** adpcm.h - include file for adpcm coder. +** +** Version 1.0, 7-Jul-92. +*/ + +struct adpcm_state { + int16_t valprev; /* Previous output value */ + char index; /* Index into stepsize table */ +}; + +#ifdef __STDC__ +#define ARGS(x) x +#else +#define ARGS(x) () +#endif + +void adpcm_coder ARGS((int16_t [], char [], int, struct adpcm_state *)); +void adpcm_decoder ARGS((char [], int16_t [], int, struct adpcm_state *)); diff --git a/src/regress/sys/dev/audio/autest.1 b/src/regress/sys/dev/audio/autest.1 new file mode 100644 index 000000000..1c5c30faa --- /dev/null +++ b/src/regress/sys/dev/audio/autest.1 @@ -0,0 +1,143 @@ +.\" $OpenBSD: autest.1,v 1.10 2007/05/31 19:19:42 jmc Exp $ +.\" +.\" Copyright (c) 2002 Jason L. Wright (jason@thought.net) +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +.\" DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd $Mdocdate: May 31 2007 $ +.Dt AUTEST 1 +.Os +.Sh NAME +.Nm autest +.Nd test audio encoding output +.Sh SYNOPSIS +.Nm autest +.Op Fl f Ar device +.Op Fl r Ar rate +.Op Fl t Ar tone +.Sh DESCRIPTION +The +.Nm +utility opens an +.Xr audio 4 +device and iterates through all of the encodings supported by the device, +playing a tone in the proper format. +The tone should sound identical in each of the formats. +.Pp +The options are as follows: +.Bl -tag -width Ds +.It Fl f Ar device +Specify the audio +.Ar device +to open. +If no device is specified, +.Pa /dev/sound +is used. +.It Fl r Ar rate +Specify the audio +.Ar rate +to test. +It will request the audio subsystem to play that Hz; +however the audio device may return a different speed. +This can be useful to test different speeds, e.g. 8000, 44100, 48000. +.It Fl t Ar tone +Specify the tone to be played (default 440Hz). +.El +.Pp +.Nm +can produce tones in any of the following formats and will skip other +formats if supported by the device: +.Pp +.Bl -tag -width "ulinear_leXX" -offset indent -compact +.It Cm mu-law +8-bit mu-law companded +.It Cm A-law +8-bit A-law companded +.\" .It Cm adpcm +.\" 4 bit adaptive differential pulse code modulation +.It Cm ulinear +8-bit unsigned linear +.It Cm ulinear_le +16-bit unsigned linear little endian +.It Cm ulinear_be +16-bit unsigned linear big endian +.It Cm slinear +8-bit signed linear (twos complement) +.It Cm slinear_le +16-bit signed linear little endian (twos complement) +.It Cm slinear_be +16-bit signed linear big endian (twos complement) +.El +.Sh OUTPUT +Interpreting the output of +.Nm +is a little tricky. +The output below is from an +.Xr auich 4 : +.Bd -literal +ulinear:8...mono(s 44100 c 45167 e 2.4%)...stereo(s 44100 c 45162 e 2.4%) +mulaw:8*...mono(s 44100 c 45166 e 2.4%)...stereo(s 44100 c 45157 e 2.3%) +alaw:8*...mono[Invalid argument]...stereo[Invalid argument] +slinear:8*...mono(s 44100 c 45171 e 2.4%)...stereo(s 44100 c 45170 e 2.4%) +slinear_le:16...mono(s 44100 c 45171 e 2.4%)...stereo(s 44100 c 45170 e 2.4%) +ulinear_le:16*...mono(s 44100 c 45167 e 2.4%)...stereo(s 44100 c 45168 e 2.4%) +slinear_be:16*...mono(s 44100 c 45169 e 2.4%)...stereo(s 44100 c 45167 e 2.4%) +ulinear_be:16*...mono(s 44100 c 45167 e 2.4%)...stereo(s 44100 c 45160 e 2.3%) +.Ed +.Pp +.Nm +loops through each mode claimed to be supported by the chip (emulated or not). +For each emulated mode, an asterisk is appended to the mode name. +If the tone sounds different from all the other tones for the device, +it is likely that either the emulation is wrong, or the mode is not +set on the device correctly. +.Pp +Also, for the mono and stereo versions of each mode, +.Nm +prints the claimed sample rate, +.So s Bo rate Bc Sc , +computed sample rate, +.So c Bo rate Bc Sc , +and the percent error between them, +.So e Bo percent Bc Sc . +If the percent error is high (greater than 10 percent or so), +either the sample rate is not being correctly returned by +the device, or it is not being set correctly on the device. +.Pp +Interestingly, when +.Nm +requests +.Sq alaw +encoding, the device driver returns +.So Invalid argument Sc . +This indicates that the device includes +.Sq alaw +in its mode enumeration, but does not support it for playback. +This is very likely a bug in the driver. +.Sh SEE ALSO +.Xr audio 4 +.Sh BUGS +There is partial support for adaptive differential pulse code modulation +(ADPCM) +but it is not enabled by default +since it does not appear to be correct. diff --git a/src/regress/sys/dev/audio/autest.c b/src/regress/sys/dev/audio/autest.c new file mode 100644 index 000000000..fd2a31f98 --- /dev/null +++ b/src/regress/sys/dev/audio/autest.c @@ -0,0 +1,812 @@ +/* $OpenBSD: autest.c,v 1.12 2007/04/25 15:27:54 jason Exp $ */ + +/* + * Copyright (c) 2002 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* XXX ADPCM is currently pretty broken... diagnosis and fix welcome */ +#undef USE_ADPCM + +#include "adpcm.h" +#include "law.h" + +struct ausrate { + struct timeval tv_begin; + struct timeval tv_end; + u_int r_rate; /* requested rate */ + u_int s_rate; /* rate from audio layer */ + u_int c_rate; /* computed rate */ + int bps; /* bytes per sample */ + int bytes; /* number of bytes played */ + float err; +}; + +int main(int, char **); +void check_encoding(int, audio_encoding_t *, int); +void check_encoding_mono(int, audio_encoding_t *, int); +void check_encoding_stereo(int, audio_encoding_t *, int); +void enc_ulaw_8(int, audio_encoding_t *, int, int); +void enc_alaw_8(int, audio_encoding_t *, int, int); +void enc_ulinear_8(int, audio_encoding_t *, int, int); +void enc_ulinear_16(int, audio_encoding_t *, int, int, int); +void enc_slinear_8(int, audio_encoding_t *, int, int); +void enc_slinear_16(int, audio_encoding_t *, int, int, int); +void enc_adpcm_8(int, audio_encoding_t *, int, int); +void audio_wait(int); +void check_srate(struct ausrate *); +void mark_time(struct timeval *); +int get_int(const char *, int *); +int get_double(const char *, double *); + +#define PLAYFREQ 440.0 +#define PLAYSECS 2 +double playfreq = PLAYFREQ; + +#define DEFAULT_DEV "/dev/sound" + +int +get_double(const char *buf, double *d) +{ + char *ep; + long dd; + + errno = 0; + dd = strtod(buf, &ep); + if (buf[0] == '\0' || *ep != '\0') + return (-1); + if (errno == ERANGE && (dd == -HUGE_VAL || dd == HUGE_VAL)) + return (-1); + *d = dd; + return (0); +} + +int +get_int(const char *buf, int *i) +{ + char *ep; + long lv; + + errno = 0; + lv = strtol(buf, &ep, 10); + if (buf[0] == '\0' || *ep != '\0') + return (-1); + if (errno == ERANGE && (lv == LONG_MAX || lv == LONG_MIN)) + return (-1); + if (lv < INT_MIN || lv > INT_MAX) + return (-1); + *i = lv; + return (0); +} + +int +main(int argc, char **argv) +{ + audio_info_t ainfo; + char *fname = NULL; + int fd, i, c; + int rate = 8000; + + while ((c = getopt(argc, argv, "f:r:t:")) != -1) { + switch (c) { + case 'f': + fname = optarg; + break; + case 'r': + if (get_int(optarg, &rate) || rate <= 0) { + fprintf(stderr, "%s bad rate %s\n", + argv[0], optarg); + return (1); + } + break; + case 't': + if (get_double(optarg, &playfreq) || playfreq <= 0.0) { + fprintf(stderr, "%s bad freq %s\n", + argv[0], optarg); + return (1); + } + break; + case '?': + default: + fprintf(stderr, "%s [-f device]\n", argv[0]); + return (1); + } + } + + if (fname == NULL) + fname = DEFAULT_DEV; + + fd = open(fname, O_RDWR, 0); + if (fd == -1) + err(1, "open"); + + + if (ioctl(fd, AUDIO_GETINFO, &ainfo) == -1) + err(1, "%s: audio_getinfo", fname); + + for (i = 0; ; i++) { + audio_encoding_t enc; + + enc.index = i; + if (ioctl(fd, AUDIO_GETENC, &enc) == -1) + break; + check_encoding(fd, &enc, rate); + } + close(fd); + + return (0); +} + +void +check_srate(struct ausrate *rt) +{ + struct timeval t; + float tm, b, r, err; + + timersub(&rt->tv_end, &rt->tv_begin, &t); + tm = (float)t.tv_sec + ((float)t.tv_usec / 1000000.0); + b = (float)rt->bytes / (float)rt->bps; + r = b / tm; + + err = fabs((float)rt->s_rate - r); + err /= r * 0.01; + rt->err = err; + rt->c_rate = rintf(r); + printf("(s %u c %u e %3.1f%%)", + rt->s_rate, rt->c_rate, rt->err); +} + +void +check_encoding(int fd, audio_encoding_t *enc, int rate) +{ + printf("%s:%d%s", + enc->name, + enc->precision, + (enc->flags & AUDIO_ENCODINGFLAG_EMULATED) ? "*" : ""); + fflush(stdout); + check_encoding_mono(fd, enc, rate); + check_encoding_stereo(fd, enc, rate); + printf("\n"); +} + +void +mark_time(struct timeval *tv) +{ + if (gettimeofday(tv, NULL) == -1) + err(1, "gettimeofday"); +} + +void +check_encoding_mono(int fd, audio_encoding_t *enc, int rate) +{ + int skipped = 0; + + printf("...mono"); + fflush(stdout); + + if (enc->precision == 8) { + switch (enc->encoding) { + case AUDIO_ENCODING_ULAW: + enc_ulaw_8(fd, enc, 1, rate); + break; + case AUDIO_ENCODING_ALAW: + enc_alaw_8(fd, enc, 1, rate); + break; + case AUDIO_ENCODING_ULINEAR: + case AUDIO_ENCODING_ULINEAR_LE: + case AUDIO_ENCODING_ULINEAR_BE: + enc_ulinear_8(fd, enc, 1, rate); + break; + case AUDIO_ENCODING_SLINEAR: + case AUDIO_ENCODING_SLINEAR_LE: + case AUDIO_ENCODING_SLINEAR_BE: + enc_slinear_8(fd, enc, 1, rate); + break; + case AUDIO_ENCODING_ADPCM: + enc_adpcm_8(fd, enc, 1, rate); + break; + default: + skipped = 1; + } + } + + if (enc->precision == 16) { + switch (enc->encoding) { + case AUDIO_ENCODING_ULINEAR_LE: + enc_ulinear_16(fd, enc, 1, LITTLE_ENDIAN, rate); + break; + case AUDIO_ENCODING_ULINEAR_BE: + enc_ulinear_16(fd, enc, 1, BIG_ENDIAN, rate); + break; + case AUDIO_ENCODING_SLINEAR_LE: + enc_slinear_16(fd, enc, 1, LITTLE_ENDIAN, rate); + break; + case AUDIO_ENCODING_SLINEAR_BE: + enc_slinear_16(fd, enc, 1, BIG_ENDIAN, rate); + break; + default: + skipped = 1; + } + } + + if (skipped) + printf("[skip]"); +} + +void +check_encoding_stereo(int fd, audio_encoding_t *enc, int rate) +{ + int skipped = 0; + + printf("...stereo"); + fflush(stdout); + + if (enc->precision == 8) { + switch (enc->encoding) { + case AUDIO_ENCODING_ULAW: + enc_ulaw_8(fd, enc, 2, rate); + break; + case AUDIO_ENCODING_ALAW: + enc_alaw_8(fd, enc, 2, rate); + break; + case AUDIO_ENCODING_ULINEAR: + case AUDIO_ENCODING_ULINEAR_LE: + case AUDIO_ENCODING_ULINEAR_BE: + enc_ulinear_8(fd, enc, 2, rate); + break; + case AUDIO_ENCODING_SLINEAR: + case AUDIO_ENCODING_SLINEAR_LE: + case AUDIO_ENCODING_SLINEAR_BE: + enc_slinear_8(fd, enc, 2, rate); + break; + case AUDIO_ENCODING_ADPCM: + enc_adpcm_8(fd, enc, 2, rate); + break; + default: + skipped = 1; + } + } + + if (enc->precision == 16) { + switch (enc->encoding) { + case AUDIO_ENCODING_ULINEAR_LE: + enc_ulinear_16(fd, enc, 2, LITTLE_ENDIAN, rate); + break; + case AUDIO_ENCODING_ULINEAR_BE: + enc_ulinear_16(fd, enc, 2, BIG_ENDIAN, rate); + break; + case AUDIO_ENCODING_SLINEAR_LE: + enc_slinear_16(fd, enc, 2, LITTLE_ENDIAN, rate); + break; + case AUDIO_ENCODING_SLINEAR_BE: + enc_slinear_16(fd, enc, 2, BIG_ENDIAN, rate); + break; + default: + skipped = 1; + } + } + + if (skipped) + printf("[skip]"); +} + +void +enc_ulinear_8(int fd, audio_encoding_t *enc, int chans, int rate) +{ + audio_info_t inf; + struct ausrate rt; + u_int8_t *samples = NULL, *p; + int i, j; + + AUDIO_INITINFO(&inf); + inf.play.precision = enc->precision; + inf.play.encoding = enc->encoding; + inf.play.channels = chans; + inf.play.sample_rate = rate;; + + if (ioctl(fd, AUDIO_SETINFO, &inf) == -1) { + printf("[%s]", strerror(errno)); + goto out; + } + + if (ioctl(fd, AUDIO_GETINFO, &inf) == -1) { + printf("[getinfo: %s]", strerror(errno)); + goto out; + } + rt.r_rate = inf.play.sample_rate; + rt.s_rate = inf.play.sample_rate; + rt.bps = 1 * chans; + rt.bytes = inf.play.sample_rate * chans * PLAYSECS; + + samples = (u_int8_t *)malloc(inf.play.sample_rate * chans); + if (samples == NULL) { + warn("malloc"); + goto out; + } + + for (i = 0, p = samples; i < inf.play.sample_rate; i++) { + float d; + u_int8_t v; + + d = 127.0 * sinf(((float)i / (float)inf.play.sample_rate) * + (2 * M_PI * playfreq)); + d = rintf(d + 127.0); + v = d; + + for (j = 0; j < chans; j++) { + *p = v; + p++; + } + } + + mark_time(&rt.tv_begin); + for (i = 0; i < PLAYSECS; i++) + write(fd, samples, inf.play.sample_rate * chans); + audio_wait(fd); + mark_time(&rt.tv_end); + check_srate(&rt); + +out: + if (samples != NULL) + free(samples); +} + +void +enc_slinear_8(int fd, audio_encoding_t *enc, int chans, int rate) +{ + audio_info_t inf; + struct ausrate rt; + int8_t *samples = NULL, *p; + int i, j; + + AUDIO_INITINFO(&inf); + inf.play.precision = enc->precision; + inf.play.encoding = enc->encoding; + inf.play.channels = chans; + inf.play.sample_rate = rate;; + + if (ioctl(fd, AUDIO_SETINFO, &inf) == -1) { + printf("[%s]", strerror(errno)); + goto out; + } + + if (ioctl(fd, AUDIO_GETINFO, &inf) == -1) { + printf("[getinfo: %s]", strerror(errno)); + goto out; + } + rt.r_rate = inf.play.sample_rate; + rt.s_rate = inf.play.sample_rate; + rt.bps = 1 * chans; + rt.bytes = inf.play.sample_rate * chans * PLAYSECS; + + samples = (int8_t *)malloc(inf.play.sample_rate * chans); + if (samples == NULL) { + warn("malloc"); + goto out; + } + + for (i = 0, p = samples; i < inf.play.sample_rate; i++) { + float d; + int8_t v; + + d = 127.0 * sinf(((float)i / (float)inf.play.sample_rate) * + (2 * M_PI * playfreq)); + d = rintf(d); + v = d; + + for (j = 0; j < chans; j++) { + *p = v; + p++; + } + } + + mark_time(&rt.tv_begin); + for (i = 0; i < PLAYSECS; i++) + write(fd, samples, inf.play.sample_rate * chans); + audio_wait(fd); + mark_time(&rt.tv_end); + check_srate(&rt); + +out: + if (samples != NULL) + free(samples); +} + +void +enc_slinear_16(int fd, audio_encoding_t *enc, int chans, int order, int rate) +{ + audio_info_t inf; + struct ausrate rt; + u_int8_t *samples = NULL, *p; + int i, j; + + AUDIO_INITINFO(&inf); + inf.play.precision = enc->precision; + inf.play.encoding = enc->encoding; + inf.play.channels = chans; + inf.play.sample_rate = rate;; + + if (ioctl(fd, AUDIO_SETINFO, &inf) == -1) { + printf("[%s]", strerror(errno)); + goto out; + } + + if (ioctl(fd, AUDIO_GETINFO, &inf) == -1) { + printf("[getinfo: %s]", strerror(errno)); + goto out; + } + rt.r_rate = inf.play.sample_rate; + rt.s_rate = inf.play.sample_rate; + rt.bps = 2 * chans; + rt.bytes = 2 * inf.play.sample_rate * chans * PLAYSECS; + + samples = (int8_t *)malloc(inf.play.sample_rate * chans * 2); + if (samples == NULL) { + warn("malloc"); + goto out; + } + + for (i = 0, p = samples; i < inf.play.sample_rate; i++) { + float d; + int16_t v; + + d = 32767.0 * sinf(((float)i / (float)inf.play.sample_rate) * + (2 * M_PI * playfreq)); + d = rintf(d); + v = d; + + for (j = 0; j < chans; j++) { + if (order == LITTLE_ENDIAN) { + *p = (v & 0x00ff) >> 0; + p++; + *p = (v & 0xff00) >> 8; + p++; + } else { + *p = (v & 0xff00) >> 8; + p++; + *p = (v & 0x00ff) >> 0; + p++; + } + } + } + + mark_time(&rt.tv_begin); + for (i = 0; i < PLAYSECS; i++) + write(fd, samples, inf.play.sample_rate * chans * 2); + audio_wait(fd); + mark_time(&rt.tv_end); + check_srate(&rt); + +out: + if (samples != NULL) + free(samples); +} + +void +enc_ulinear_16(int fd, audio_encoding_t *enc, int chans, int order, int rate) +{ + audio_info_t inf; + struct ausrate rt; + u_int8_t *samples = NULL, *p; + int i, j; + + AUDIO_INITINFO(&inf); + inf.play.precision = enc->precision; + inf.play.encoding = enc->encoding; + inf.play.channels = chans; + inf.play.sample_rate = rate;; + + if (ioctl(fd, AUDIO_SETINFO, &inf) == -1) { + printf("[%s]", strerror(errno)); + goto out; + } + + if (ioctl(fd, AUDIO_GETINFO, &inf) == -1) { + printf("[getinfo: %s]", strerror(errno)); + goto out; + } + + samples = (u_int8_t *)malloc(inf.play.sample_rate * chans * 2); + if (samples == NULL) { + warn("malloc"); + goto out; + } + rt.r_rate = inf.play.sample_rate; + rt.s_rate = inf.play.sample_rate; + rt.bps = 2 * chans; + rt.bytes = 2 * inf.play.sample_rate * chans * PLAYSECS; + + for (i = 0, p = samples; i < inf.play.sample_rate; i++) { + float d; + u_int16_t v; + + d = 32767.0 * sinf(((float)i / (float)inf.play.sample_rate) * + (2 * M_PI * playfreq)); + d = rintf(d + 32767.0); + v = d; + + for (j = 0; j < chans; j++) { + if (order == LITTLE_ENDIAN) { + *p = (v >> 0) & 0xff; + p++; + *p = (v >> 8) & 0xff; + p++; + } else { + *p = (v >> 8) & 0xff; + p++; + *p = (v >> 0) & 0xff; + p++; + } + } + } + + mark_time(&rt.tv_begin); + for (i = 0; i < PLAYSECS; i++) + write(fd, samples, inf.play.sample_rate * chans * 2); + audio_wait(fd); + mark_time(&rt.tv_end); + check_srate(&rt); + +out: + if (samples != NULL) + free(samples); +} + +void +enc_adpcm_8(int fd, audio_encoding_t *enc, int chans, int rate) +{ + audio_info_t inf; + struct adpcm_state adsts; + int16_t *samples = NULL; + int i, j; + char *outbuf = NULL, *sbuf = NULL, *p; + + AUDIO_INITINFO(&inf); + inf.play.precision = enc->precision; + inf.play.encoding = enc->encoding; + inf.play.channels = chans; + inf.play.sample_rate = rate;; + + if (ioctl(fd, AUDIO_SETINFO, &inf) == -1) { + printf("[%s]", strerror(errno)); + goto out; + } + + if (ioctl(fd, AUDIO_GETINFO, &inf) == -1) { + printf("[getinfo: %s]", strerror(errno)); + goto out; + } + + bzero(&adsts, sizeof(adsts)); + + samples = (int16_t *)malloc(inf.play.sample_rate * sizeof(*samples)); + if (samples == NULL) { + warn("malloc"); + goto out; + } + + sbuf = (char *)malloc(inf.play.sample_rate / 2); + if (sbuf == NULL) { + warn("malloc"); + goto out; + } + + for (i = 0; i < inf.play.sample_rate; i++) { + float d; + + d = 32767.0 * sinf(((float)i / (float)inf.play.sample_rate) * + (2 * M_PI * playfreq)); + samples[i] = rintf(d); + } + + outbuf = (char *)malloc((inf.play.sample_rate / 2) * chans); + if (outbuf == NULL) { + warn("malloc"); + goto out; + } + + for (i = 0; i < PLAYSECS; i++) { + adpcm_coder(samples, sbuf, inf.play.sample_rate, &adsts); + + for (i = 0, p = outbuf; i < inf.play.sample_rate / 2; i++) { + for (j = 0; j < chans; j++, p++) { + *p = sbuf[i]; + } + } + + write(fd, outbuf, (inf.play.sample_rate / 2) * chans); + } + audio_wait(fd); + +out: + if (samples != NULL) + free(samples); + if (outbuf != NULL) + free(outbuf); + if (sbuf != NULL) + free(sbuf); +} + +void +enc_ulaw_8(int fd, audio_encoding_t *enc, int chans, int rate) +{ + audio_info_t inf; + int16_t *samples = NULL; + int i, j; + u_int8_t *outbuf = NULL, *p; + struct ausrate rt; + + AUDIO_INITINFO(&inf); + inf.play.precision = enc->precision; + inf.play.encoding = enc->encoding; + inf.play.channels = chans; + inf.play.sample_rate = rate;; + + if (ioctl(fd, AUDIO_SETINFO, &inf) == -1) { + printf("[%s]", strerror(errno)); + goto out; + } + + if (ioctl(fd, AUDIO_GETINFO, &inf) == -1) { + printf("[getinfo: %s]", strerror(errno)); + goto out; + } + rt.r_rate = inf.play.sample_rate; + rt.s_rate = inf.play.sample_rate; + rt.bps = 1 * chans; + rt.bytes = inf.play.sample_rate * chans * PLAYSECS; + + samples = (int16_t *)calloc(inf.play.sample_rate, sizeof(*samples)); + if (samples == NULL) { + warn("malloc"); + goto out; + } + + outbuf = (u_int8_t *)malloc(inf.play.sample_rate * chans); + if (outbuf == NULL) { + warn("malloc"); + goto out; + } + + for (i = 0; i < inf.play.sample_rate; i++) { + float x; + + x = 32765.0 * sinf(((float)i / (float)inf.play.sample_rate) * + (2 * M_PI * playfreq)); + samples[i] = x; + } + + for (i = 0, p = outbuf; i < inf.play.sample_rate; i++) { + for (j = 0; j < chans; j++) { + *p = linear2ulaw(samples[i]); + p++; + } + } + + mark_time(&rt.tv_begin); + for (i = 0; i < PLAYSECS; i++) { + write(fd, outbuf, inf.play.sample_rate * chans); + } + audio_wait(fd); + mark_time(&rt.tv_end); + check_srate(&rt); + +out: + if (samples != NULL) + free(samples); + if (outbuf != NULL) + free(outbuf); +} + +void +enc_alaw_8(int fd, audio_encoding_t *enc, int chans, int rate) +{ + audio_info_t inf; + struct ausrate rt; + int16_t *samples = NULL; + int i, j; + u_int8_t *outbuf = NULL, *p; + + AUDIO_INITINFO(&inf); + inf.play.precision = enc->precision; + inf.play.encoding = enc->encoding; + inf.play.channels = chans; + inf.play.sample_rate = rate;; + + if (ioctl(fd, AUDIO_SETINFO, &inf) == -1) { + printf("[%s]", strerror(errno)); + goto out; + } + + if (ioctl(fd, AUDIO_GETINFO, &inf) == -1) { + printf("[getinfo: %s]", strerror(errno)); + goto out; + } + rt.r_rate = inf.play.sample_rate; + rt.s_rate = inf.play.sample_rate; + rt.bps = 1* chans; + rt.bytes = inf.play.sample_rate * chans * PLAYSECS; + + samples = (int16_t *)calloc(inf.play.sample_rate, sizeof(*samples)); + if (samples == NULL) { + warn("malloc"); + goto out; + } + + outbuf = (u_int8_t *)malloc(inf.play.sample_rate * chans); + if (outbuf == NULL) { + warn("malloc"); + goto out; + } + + for (i = 0; i < inf.play.sample_rate; i++) { + float x; + + x = 32767.0 * sinf(((float)i / (float)inf.play.sample_rate) * + (2 * M_PI * playfreq)); + samples[i] = x; + } + + for (i = 0, p = outbuf; i < inf.play.sample_rate; i++) { + for (j = 0; j < chans; j++) { + *p = linear2alaw(samples[i]); + p++; + } + } + + mark_time(&rt.tv_begin); + for (i = 0; i < PLAYSECS; i++) { + write(fd, outbuf, inf.play.sample_rate * chans); + } + audio_wait(fd); + mark_time(&rt.tv_end); + check_srate(&rt); + + +out: + if (samples != NULL) + free(samples); + if (outbuf != NULL) + free(outbuf); +} + +void +audio_wait(int fd) +{ + if (ioctl(fd, AUDIO_DRAIN, NULL) == -1) + warn("drain"); +} diff --git a/src/regress/sys/dev/audio/law.c b/src/regress/sys/dev/audio/law.c new file mode 100644 index 000000000..0b79c651e --- /dev/null +++ b/src/regress/sys/dev/audio/law.c @@ -0,0 +1,286 @@ +/* $OpenBSD: law.c,v 1.1.1.1 2003/02/01 17:58:18 jason Exp $ */ + +/* + * This source code is a product of Sun Microsystems, Inc. and is provided + * for unrestricted use. Users may copy or modify this source code without + * charge. + * + * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING + * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR + * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * + * Sun source code is provided with no support and without any obligation on + * the part of Sun Microsystems, Inc. to assist in its use, correction, + * modification or enhancement. + * + * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE + * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE + * OR ANY PART THEREOF. + * + * In no event will Sun Microsystems, Inc. be liable for any lost revenue + * or profits or other special, indirect and consequential damages, even if + * Sun has been advised of the possibility of such damages. + * + * Sun Microsystems, Inc. + * 2550 Garcia Avenue + * Mountain View, California 94043 + */ + +#include +#include "law.h" + +/* + * g711.c + * + * u-law, A-law and linear PCM conversions. + */ +#define SIGN_BIT (0x80) /* Sign bit for a A-law byte. */ +#define QUANT_MASK (0xf) /* Quantization field mask. */ +#define NSEGS (8) /* Number of A-law segments. */ +#define SEG_SHIFT (4) /* Left shift for segment number. */ +#define SEG_MASK (0x70) /* Segment field mask. */ + +static short seg_aend[8] = {0x1F, 0x3F, 0x7F, 0xFF, + 0x1FF, 0x3FF, 0x7FF, 0xFFF}; +static short seg_uend[8] = {0x3F, 0x7F, 0xFF, 0x1FF, + 0x3FF, 0x7FF, 0xFFF, 0x1FFF}; + +/* copy from CCITT G.711 specifications */ +u_int8_t _u2a[128] = { /* u- to A-law conversions */ + 1, 1, 2, 2, 3, 3, 4, 4, + 5, 5, 6, 6, 7, 7, 8, 8, + 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, + 25, 27, 29, 31, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, + 46, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, + 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, + 80, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128}; + +u_int8_t _a2u[128] = { /* A- to u-law conversions */ + 1, 3, 5, 7, 9, 11, 13, 15, + 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, + 32, 32, 33, 33, 34, 34, 35, 35, + 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 48, 49, 49, + 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 64, + 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, + 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127}; + +static int +search(int val, short *table, int size) +{ + int i; + + for (i = 0; i < size; i++) + if (val <= *table++) + return (i); + return (size); +} + +/* + * linear2alaw() - Convert a 16-bit linear PCM value to 8-bit A-law + * + * linear2alaw() accepts an 16-bit integer and encodes it as A-law data. + * + * Linear Input Code Compressed Code + * ------------------------ --------------- + * 0000000wxyza 000wxyz + * 0000001wxyza 001wxyz + * 000001wxyzab 010wxyz + * 00001wxyzabc 011wxyz + * 0001wxyzabcd 100wxyz + * 001wxyzabcde 101wxyz + * 01wxyzabcdef 110wxyz + * 1wxyzabcdefg 111wxyz + * + * For further information see John C. Bellamy's Digital Telephony, 1982, + * John Wiley & Sons, pps 98-111 and 472-476. + */ +u_int8_t +linear2alaw(int pcm_val) /* 2's complement (16-bit range) */ +{ + int mask; + int seg; + u_int8_t aval; + + pcm_val = pcm_val >> 3; + + if (pcm_val >= 0) { + mask = 0xD5; /* sign (7th) bit = 1 */ + } else { + mask = 0x55; /* sign bit = 0 */ + pcm_val = -pcm_val - 1; + } + + /* Convert the scaled magnitude to segment number. */ + seg = search(pcm_val, seg_aend, 8); + + /* Combine the sign, segment, and quantization bits. */ + + if (seg >= 8) /* out of range, return maximum value. */ + return (0x7F ^ mask); + else { + aval = seg << SEG_SHIFT; + if (seg < 2) + aval |= (pcm_val >> 4) & QUANT_MASK; + else + aval |= (pcm_val >> seg) & QUANT_MASK; + return (aval ^ mask); + } +} + +/* + * alaw2linear() - Convert an A-law value to 16-bit linear PCM + * + */ +int +alaw2linear(u_int8_t a_val) +{ + int t; + int seg; + + a_val ^= 0x55; + + t = (a_val & QUANT_MASK) << 4; + seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT; + switch (seg) { + case 0: + t += 8; + break; + case 1: + t += 0x108; + break; + default: + t += 0x108; + t <<= seg - 1; + } + return ((a_val & SIGN_BIT) ? t : -t); +} + +#define BIAS (0x84) /* Bias for linear code. */ +#define CLIP 8159 + +/* + * linear2ulaw() - Convert a linear PCM value to u-law + * + * In order to simplify the encoding process, the original linear magnitude + * is biased by adding 33 which shifts the encoding range from (0 - 8158) to + * (33 - 8191). The result can be seen in the following encoding table: + * + * Biased Linear Input Code Compressed Code + * ------------------------ --------------- + * 00000001wxyza 000wxyz + * 0000001wxyzab 001wxyz + * 000001wxyzabc 010wxyz + * 00001wxyzabcd 011wxyz + * 0001wxyzabcde 100wxyz + * 001wxyzabcdef 101wxyz + * 01wxyzabcdefg 110wxyz + * 1wxyzabcdefgh 111wxyz + * + * Each biased linear code has a leading 1 which identifies the segment + * number. The value of the segment number is equal to 7 minus the number + * of leading 0's. The quantization interval is directly available as the + * four bits wxyz. * The trailing bits (a - h) are ignored. + * + * Ordinarily the complement of the resulting code word is used for + * transmission, and so the code word is complemented before it is returned. + * + * For further information see John C. Bellamy's Digital Telephony, 1982, + * John Wiley & Sons, pps 98-111 and 472-476. + */ +u_int8_t +linear2ulaw(int pcm_val) /* 2's complement (16-bit range) */ +{ + int mask; + int seg; + u_int8_t uval; + + /* Get the sign and the magnitude of the value. */ + pcm_val = pcm_val >> 2; + if (pcm_val < 0) { + pcm_val = -pcm_val; + mask = 0x7F; + } else { + mask = 0xFF; + } + if (pcm_val > CLIP) + pcm_val = CLIP; + pcm_val += (BIAS >> 2); + + /* Convert the scaled magnitude to segment number. */ + seg = search(pcm_val, seg_uend, 8); + + /* + * Combine the sign, segment, quantization bits; + * and complement the code word. + */ + if (seg >= 8) /* out of range, return maximum value. */ + return (0x7F ^ mask); + else { + uval = (seg << 4) | ((pcm_val >> (seg + 1)) & 0xF); + return (uval ^ mask); + } + +} + +/* + * ulaw2linear() - Convert a u-law value to 16-bit linear PCM + * + * First, a biased linear code is derived from the code word. An unbiased + * output can then be obtained by subtracting 33 from the biased code. + * + * Note that this function expects to be passed the complement of the + * original code word. This is in keeping with ISDN conventions. + */ +int +ulaw2linear(u_int8_t u_val) +{ + int t; + + /* Complement to obtain normal u-law value. */ + u_val = ~u_val; + + /* + * Extract and bias the quantization bits. Then + * shift up by the segment number and subtract out the bias. + */ + t = ((u_val & QUANT_MASK) << 3) + BIAS; + t <<= ((unsigned)u_val & SEG_MASK) >> SEG_SHIFT; + + return ((u_val & SIGN_BIT) ? (BIAS - t) : (t - BIAS)); +} + +/* A-law to u-law conversion */ +u_int8_t +alaw2ulaw(u_int8_t aval) +{ + aval &= 0xff; + return ((aval & 0x80) ? (0xFF ^ _a2u[aval ^ 0xD5]) : + (0x7F ^ _a2u[aval ^ 0x55])); +} + +/* u-law to A-law conversion */ +u_int8_t +ulaw2alaw(u_int8_t uval) +{ + uval &= 0xff; + return ((uval & 0x80) ? (0xD5 ^ (_u2a[0xFF ^ uval] - 1)) : + (0x55 ^ (_u2a[0x7F ^ uval] - 1))); +} diff --git a/src/regress/sys/dev/audio/law.h b/src/regress/sys/dev/audio/law.h new file mode 100644 index 000000000..727c05f46 --- /dev/null +++ b/src/regress/sys/dev/audio/law.h @@ -0,0 +1,33 @@ +/* $OpenBSD: law.h,v 1.2 2003/06/02 19:15:38 jason Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +u_int8_t linear2alaw(int); +u_int8_t linear2ulaw(int); +int alaw2linear(u_int8_t); +int ulaw2linear(u_int8_t); +u_int8_t alaw2ulaw(u_int8_t); +u_int8_t ulaw2alaw(u_int8_t); diff --git a/src/regress/sys/dev/audio/obj b/src/regress/sys/dev/audio/obj new file mode 120000 index 000000000..fc910e4bb --- /dev/null +++ b/src/regress/sys/dev/audio/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/dev/audio \ No newline at end of file diff --git a/src/regress/sys/dev/audio_info/CVS/Entries b/src/regress/sys/dev/audio_info/CVS/Entries new file mode 100644 index 000000000..57950061d --- /dev/null +++ b/src/regress/sys/dev/audio_info/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1.1.1/Fri Jul 6 00:42:12 2007// +/audiotest_gsinfo.1/1.3/Fri Jul 6 01:01:43 2007// +/audiotest_gsinfo.c/1.2/Fri Jul 6 01:00:02 2007// +D diff --git a/src/regress/sys/dev/audio_info/CVS/Repository b/src/regress/sys/dev/audio_info/CVS/Repository new file mode 100644 index 000000000..f73224e62 --- /dev/null +++ b/src/regress/sys/dev/audio_info/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/dev/audio_info diff --git a/src/regress/sys/dev/audio_info/CVS/Root b/src/regress/sys/dev/audio_info/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/dev/audio_info/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/dev/audio_info/Makefile b/src/regress/sys/dev/audio_info/Makefile new file mode 100644 index 000000000..ae5fab7ff --- /dev/null +++ b/src/regress/sys/dev/audio_info/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2007/07/06 00:42:12 jakemsr Exp $ + +PROG= audiotest_gsinfo +CFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes +MAN1= audiotest_gsinfo.1 + +.ifndef DO_AUTEST +REGRESS_SKIP= +.endif + +.include diff --git a/src/regress/sys/dev/audio_info/audiotest_gsinfo.1 b/src/regress/sys/dev/audio_info/audiotest_gsinfo.1 new file mode 100644 index 000000000..529554afa --- /dev/null +++ b/src/regress/sys/dev/audio_info/audiotest_gsinfo.1 @@ -0,0 +1,119 @@ +.\" $OpenBSD: audiotest_gsinfo.1,v 1.3 2007/07/06 01:01:43 jakemsr Exp $ +.\" +.\" Copyright (c) 2007 Jacob Meuser +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.\" +.Dd $Mdocdate: July 6 2007 $ +.Dt AUDIOTEST_GSINFO 1 +.Os +.Sh NAME +.Nm audiotest_gsinfo +.Nd test AUDIO_GETINFO and AUDIO_SETINFO +.Sh SYNOPSIS +.Nm audiotest_gsinfo +.Bk -words +.Op Fl f Ar device +.Ek +.Sh DESCRIPTION +The +.Nm +command performs an +.Ar AUDIO_GETINFO +.Xr ioctl 2 +to get the current +.Xr audio 4 +settings, then uses these settings in an +.Ar AUDIO_SETINFO +.Xr ioctl 2 . +The options are as follows: +.Bl -tag -width Ds +.It Fl f Ar device +The +.Xr audio 4 +device to use. +It defaults to +.Pa /dev/audio . +.El +.Pp +.Nm +first checks that an +.Dv AUDIO_GETINFO +ioctl will succeed. +If it is not successful, it will exit with status 1. +.Pp +If it is successful, +.Nm +will perform an +.Dv AUDIO_SETINFO +ioctl, using the values in its +.Vt audio_info_t +argument that were received in the previous +.Dv AUDIO_GETINFO +ioctl. +If the +.Dv AUDIO_SETINFO +ioctl is successful, +.Nm +will exit with status 0. +.Pp +If the +.Dv AUDIO_SETINFO +ioctl is not successful, +.Nm +will perform an +.Dv AUDIO_SETINFO +ioctl using the default +.Vt audio_info_t +values as given by +.Dv AUDIO_INITINFO . +If this +.Dv AUDIO_SETINFO +is not successful, +.Nm +will exit with status 1. +.Pp +Otherwise, +.Nm +will run a series of +.Dv AUDIO_SETINFO +ioctls where a single field in the +.Vt audio_info_t +structure is set to values from the +.Dv AUDIO_GETINFO +ioctl, the other values being default. +As this series of ioctls is performed, +.Nm +will print the +.Vt audio_info_t +field that is using values from the +.Dv AUDIO_GETINFO +ioctl, as well as the value it is using. +If the ioctl fails, +.Nm +will print +.Dq <- ERROR +immediately following the value. +After all fields of the +.Vt audio_info_t +structure have been used, +.Nm +will exit with status 1. +.Sh SEE ALSO +.Xr ioctl 2 , +.Xr audio 4 +.Sh AUTHORS +.Nm +and this manual page were written by +.An Jacob Meuser Aq jakemsr@sdf.lonestar.org . diff --git a/src/regress/sys/dev/audio_info/audiotest_gsinfo.c b/src/regress/sys/dev/audio_info/audiotest_gsinfo.c new file mode 100644 index 000000000..1acb41087 --- /dev/null +++ b/src/regress/sys/dev/audio_info/audiotest_gsinfo.c @@ -0,0 +1,215 @@ +/* $OpenBSD: audiotest_gsinfo.c,v 1.2 2007/07/06 01:00:02 jakemsr Exp $ */ + +/* + * Copyright (c) 2007 Jacob Meuser + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +extern char *optarg; +extern int optind; + +int audio_info_set(int); +int test_pr_members(int, int); +int test_main_members(int); +void audio_set_init(void); +void audio_set_test(int); + +audio_info_t audio_if_init; +audio_info_t audio_if_get; +audio_info_t audio_if_set; + + + +int +audio_info_set(int audio_fd) +{ + return ioctl(audio_fd, AUDIO_SETINFO, &audio_if_set); +} + + +void +audio_set_init(void) +{ + AUDIO_INITINFO(&audio_if_init); + audio_if_set = audio_if_init; +} + + +void +audio_set_test(int audio_fd) +{ + if (audio_info_set(audio_fd) < 0) + printf(" <- ERROR\n"); + else + printf("\n"); +} + + +int +test_pr_members(int audio_fd, int mode) +{ +struct audio_prinfo *s, *g; + + if (mode) { + g = &audio_if_get.play; + s = &audio_if_set.play; + } else { + g = &audio_if_get.record; + s = &audio_if_set.record; + } + + printf("%s.sample_rate = %u", (mode ? "play" : "record"), g->sample_rate); + audio_set_init(); + s->sample_rate = g->sample_rate; + audio_set_test(audio_fd); + + printf("%s.encoding = %u", (mode ? "play" : "record"), g->encoding); + audio_set_init(); + s->encoding = g->encoding; + audio_set_test(audio_fd); + + printf("%s.precision = %u", (mode ? "play" : "record"), g->precision); + audio_set_init(); + s->precision = g->precision; + audio_set_test(audio_fd); + + printf("%s.channels = %u", (mode ? "play" : "record"), g->channels); + audio_set_init(); + s->channels = g->channels; + audio_set_test(audio_fd); + + printf("%s.port = %u", (mode ? "play" : "record"), g->port); + audio_set_init(); + s->port = g->port; + audio_set_test(audio_fd); + + printf("%s.gain = %u", (mode ? "play" : "record"), g->gain); + audio_set_init(); + s->gain = g->gain; + audio_set_test(audio_fd); + + printf("%s.balance = %u", (mode ? "play" : "record"), g->balance); + audio_set_init(); + s->balance = g->balance; + audio_set_test(audio_fd); + + printf("%s.pause = %u", (mode ? "play" : "record"), g->pause); + audio_set_init(); + s->pause = g->pause; + audio_set_test(audio_fd); + + return 0; +} + +int +test_main_members(int audio_fd) +{ + printf("mode = %d", audio_if_get.mode); + audio_set_init(); + audio_if_set.mode = audio_if_get.mode; + audio_set_test(audio_fd); + + printf("monitor_gain = %d", audio_if_get.monitor_gain); + audio_set_init(); + audio_if_set.monitor_gain = audio_if_get.monitor_gain; + audio_set_test(audio_fd); + + printf("blocksize = %d", audio_if_get.blocksize); + audio_set_init(); + audio_if_set.blocksize = audio_if_get.blocksize; + audio_set_test(audio_fd); + + printf("hiwat = %d", audio_if_get.hiwat); + audio_set_init(); + audio_if_set.hiwat = audio_if_get.hiwat; + audio_set_test(audio_fd); + + printf("lowat = %d", audio_if_get.lowat); + audio_set_init(); + audio_if_set.lowat = audio_if_get.lowat; + audio_set_test(audio_fd); + + return 0; +} + +int +main(int argc, char *argv[]) +{ +char *audio_device; +int audio_fd; +int ch; +int exval; + + audio_device = "/dev/audio"; + + while ((ch = getopt(argc, argv, "f:")) != -1) { + switch (ch) { + case 'f': + audio_device = optarg; + break; + default: + break; + } + } + argc -= optind; + argv += optind; + + audio_fd = -1; + if ((audio_fd = open(audio_device, O_WRONLY)) < 0) + err(1, "could not open %s", audio_device); + + AUDIO_INITINFO(&audio_if_init); + AUDIO_INITINFO(&audio_if_get); + AUDIO_INITINFO(&audio_if_set); + + audio_if_set = audio_if_init; + + if (audio_info_set(audio_fd) < 0) + err(1, "results will be invalid"); + + if (ioctl(audio_fd, AUDIO_GETINFO, &audio_if_get) < 0) + err(1, "AUDIO_GETINFO audio_if_get"); + + exval = 1; + + audio_if_set = audio_if_get; + if (audio_info_set(audio_fd) < 0) + warn("AUDIO_SETINFO audio_if_get"); + else { + exval = 0; + goto done; + } + + test_pr_members(audio_fd, 1); /* play */ + test_pr_members(audio_fd, 0); /* record */ + test_main_members(audio_fd); + +done: + + if (audio_fd != -1) + close(audio_fd); + + exit(exval); +} diff --git a/src/regress/sys/dev/audio_rw/CVS/Entries b/src/regress/sys/dev/audio_rw/CVS/Entries new file mode 100644 index 000000000..497dd8937 --- /dev/null +++ b/src/regress/sys/dev/audio_rw/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.3/Wed Oct 3 21:49:13 2007// +/audiotest_rw.1/1.5/Wed Oct 3 21:49:13 2007// +/audiotest_rw.c/1.10/Wed Nov 18 04:59:15 2009// +D diff --git a/src/regress/sys/dev/audio_rw/CVS/Repository b/src/regress/sys/dev/audio_rw/CVS/Repository new file mode 100644 index 000000000..0f95e32f3 --- /dev/null +++ b/src/regress/sys/dev/audio_rw/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/dev/audio_rw diff --git a/src/regress/sys/dev/audio_rw/CVS/Root b/src/regress/sys/dev/audio_rw/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/dev/audio_rw/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/dev/audio_rw/Makefile b/src/regress/sys/dev/audio_rw/Makefile new file mode 100644 index 000000000..441fbe9df --- /dev/null +++ b/src/regress/sys/dev/audio_rw/Makefile @@ -0,0 +1,122 @@ +# $OpenBSD: Makefile,v 1.3 2007/10/03 21:49:13 jakemsr Exp $ + +PROG= audiotest_rw +CFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes +MAN1= audiotest_rw.1 + +.ifndef DO_AUTEST +REGRESS_SKIP = +.else +REGRESS_TARGETS = +REGRESS_TARGETS += run-regress-record +REGRESS_TARGETS += run-regress-record-duplex +REGRESS_TARGETS += run-regress-record-poll +REGRESS_TARGETS += run-regress-record-select +REGRESS_TARGETS += run-regress-record-bufinfo +REGRESS_TARGETS += run-regress-record-poll-duplex +REGRESS_TARGETS += run-regress-record-select-duplex +REGRESS_TARGETS += run-regress-record-bufinfo-duplex +REGRESS_TARGETS += run-regress-play +REGRESS_TARGETS += run-regress-play-duplex +REGRESS_TARGETS += run-regress-play-poll +REGRESS_TARGETS += run-regress-play-select +REGRESS_TARGETS += run-regress-play-bufinfo +REGRESS_TARGETS += run-regress-play-poll-duplex +REGRESS_TARGETS += run-regress-play-select-duplex +REGRESS_TARGETS += run-regress-play-bufinfo-duplex +REGRESS_TARGETS += run-regress-duplex +REGRESS_TARGETS += run-regress-duplex-poll +REGRESS_TARGETS += run-regress-duplex-select +REGRESS_TARGETS += run-regress-duplex-bufinfo +.endif + + +# audio data file for playing tests + +master.pcm: ${PROG} + @echo "creating master input file" + ./audiotest_rw -o master.pcm ${OPTS} + + +# recording tests + +run-regress-record: ${PROG} + ./audiotest_rw -o test.pcm ${OPTS} + @test -s test.pcm || (echo "no output" && false) + +run-regress-record-duplex: ${PROG} + ./audiotest_rw -o test.pcm -d ${OPTS} + @test -s test.pcm || (echo "no output" && false) + +run-regress-record-poll: ${PROG} + ./audiotest_rw -o test.pcm -p ${OPTS} + @test -s test.pcm || (echo "no output" && false) + +run-regress-record-select: ${PROG} + ./audiotest_rw -o test.pcm -s ${OPTS} + @test -s test.pcm || (echo "no output" && false) + +run-regress-record-bufinfo: ${PROG} + ./audiotest_rw -o test.pcm -n ${OPTS} + @test -s test.pcm || (echo "no output" && false) + +run-regress-record-poll-duplex: ${PROG} + ./audiotest_rw -o test.pcm -p -d ${OPTS} + @test -s test.pcm || (echo "no output" && false) + +run-regress-record-select-duplex: ${PROG} + ./audiotest_rw -o test.pcm -s -d ${OPTS} + @test -s test.pcm || (echo "no output" && false) + +run-regress-record-bufinfo-duplex: ${PROG} + ./audiotest_rw -o test.pcm -n -d ${OPTS} + @test -s test.pcm || (echo "no output" && false) + + +# playing tests + +run-regress-play: ${PROG} master.pcm + ./audiotest_rw -i master.pcm ${OPTS} + +run-regress-play-duplex: ${PROG} master.pcm + ./audiotest_rw -i master.pcm -d ${OPTS} + +run-regress-play-poll: ${PROG} master.pcm + ./audiotest_rw -i master.pcm -p ${OPTS} + +run-regress-play-select: ${PROG} master.pcm + ./audiotest_rw -i master.pcm -s ${OPTS} + +run-regress-play-bufinfo: ${PROG} master.pcm + ./audiotest_rw -i master.pcm -n ${OPTS} + +run-regress-play-poll-duplex: ${PROG} master.pcm + ./audiotest_rw -i master.pcm -p -d ${OPTS} + +run-regress-play-select-duplex: ${PROG} master.pcm + ./audiotest_rw -i master.pcm -s -d ${OPTS} + +run-regress-play-bufinfo-duplex: ${PROG} master.pcm + ./audiotest_rw -i master.pcm -n -d ${OPTS} + + +# full-duplex tests + +run-regress-duplex: ${PROG} master.pcm + ./audiotest_rw -i master.pcm -o test.pcm ${OPTS} + @test -s test.pcm || (echo "no output" && false) + +run-regress-duplex-poll: ${PROG} master.pcm + ./audiotest_rw -i master.pcm -o test.pcm -p ${OPTS} + @test -s test.pcm || (echo "no output" && false) + +run-regress-duplex-select: ${PROG} master.pcm + ./audiotest_rw -i master.pcm -o test.pcm -s ${OPTS} + @test -s test.pcm || (echo "no output" && false) + +run-regress-duplex-bufinfo: ${PROG} master.pcm + ./audiotest_rw -i master.pcm -o test.pcm -n ${OPTS} + @test -s test.pcm || (echo "no output" && false) + + +.include diff --git a/src/regress/sys/dev/audio_rw/audiotest_rw.1 b/src/regress/sys/dev/audio_rw/audiotest_rw.1 new file mode 100644 index 000000000..dbfa3be03 --- /dev/null +++ b/src/regress/sys/dev/audio_rw/audiotest_rw.1 @@ -0,0 +1,256 @@ +.\" $OpenBSD: audiotest_rw.1,v 1.5 2007/10/03 21:49:13 jakemsr Exp $ +.\" +.\" Copyright (c) 2007 Jacob Meuser +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.\" +.Dd $Mdocdate: October 3 2007 $ +.Dt AUDIOTEST_RW 1 +.Os +.Sh NAME +.Nm audiotest_rw +.Nd test read and write calls using audio +.Sh SYNOPSIS +.Nm audiotest_rw +.Bk -words +.Op Fl dnpsv +.Op Fl b Ar buffersize +.Op Fl c Ar channels +.Op Fl e Ar encoding +.Op Fl f Ar device +.Op Fl i Ar input +.Op Fl l Ar loops +.Op Fl o Ar output +.Op Fl r Ar samplerate +.Ek +.Sh DESCRIPTION +The +.Nm +command reads data from and writes data to +.Xr audio 4 +device +.Ar device . +The default +.Ar device +is +.Pa /dev/audio . +If the +.Fl i +option is used +.Ar device +will be opened write-only and +.Nm +will +.Xr fread 3 +data from +.Ar input +and +.Xr write 2 +it to +.Ar device . +If the +.Fl o +option is used +.Ar device +will be opened read-only and +.Nm +will +.Xr read 2 +data from +.Ar device +and +.Xr fwrite 3 +it to +.Ar output . +If both +.Fl i +and +.Fl o +are specified and +.Ar device +supports full-duplex operation, +.Ar device +will be opened read-write and +.Nm +will both +.Xr fread 3 +data from +.Ar input +and +.Xr write 2 +it to +.Ar device +and +.Xr read 2 +data from +.Ar device +and +.Xr fwrite 3 +it to +.Ar output . +If neither +.Fl i +nor +.Fl o +are used +.Nm +will exit with an error. +.Pp +The options are as follows: +.Bl -tag -width Ds +.It Fl b Ar buffersize +Buffer size for +.Xr read 2 +and +.Xr write 2 +operations, in bytes. +Valid arguments are 32 to 65536 inclusive. +It defaults to 8192. +.It Fl c Ar channels +Number of audio channels. +Valid arguments are 1 (mono) and 2 (stereo). +It defaults to 2. +.It Fl d +Opens +.Ar device +read-write and sets full-duplex mode, regardless of +.Fl i +and +.Fl o +options. +If +.Ar device +does not support full-duplex operation, +.Nm +will exit with an error. +.It Fl e Ar encoding +The audio encoding to use. +.Ar encoding +is the index of the encoding to use in the list of encodings supported by +.Ar device , +starting at 0. +It defaults to 0. +The list of upported encodings can be viewed with +.Xr audioctl 1 : +.Bd -literal -offset indent +$ audioctl encodings +.Ed +.It Fl f Ar device +The +.Xr audio 4 +device to use. +It defaults to +.Pa /dev/audio . +.It Fl i Ar input +The file from which raw (headerless) audio data will be read. +.It Fl l Ar loops +The number of times to read and/or write. +It defaults to 64. +.It Fl n +Use information about the play and record buffers as reported by the +.Dv AUDIO_GETPRINFO +and +.Dv AUDIO_GETRRINFO +ioctls to wait until data may be read without blocking on each +.Xr read 2 +and to wait until data may be written without blocking on each +.Xr write 2 . +.It Fl o Ar output +The file to which raw (headerless) audio data will be written. +.It Fl p +Use +.Xr poll 2 +to wait until data may be read without blocking on each +.Xr read 2 +and to wait until data may be written without blocking on each +.Xr write 2 . +Using this option also causes +.Ar device +to be opened for non-blocking I/O. +.It Fl r Ar samplerate +The audio data sample rate in samples per second. +It defaults to 48000. +.It Fl s +Use +.Xr select 2 +to wait until data may be read without blocking on each +.Xr read 2 +and to wait until data may be written without blocking on each +.Xr write 2 . +Using this option also causes +.Ar device +to be opened for non-blocking I/O. +.It Fl v +Verbose mode. +.El +.Pp +.Nm +was written as a strict interpretation of +.Xr audio 4 . +Problems encountered while using +.Nm +are likely due to errors in +.Xr audio 4 +documentation, the kernel's audio layer implementation, or audio +device drivers. +.Sh EXAMPLES +The following command will open /dev/audio read-only, set /dev/audio +to record mode with default parameters (channels:2 +encoding:0 sample rate 48000), and read data from /dev/audio and +write it to the file test.pcm: +.Bd -literal -offset indent +$ audiotest_rw -o test.pcm +.Ed +.Pp +The following command will open /dev/audio write-only, set /dev/audio +to play mode with default parameters (channels:2 +encoding:0 sample rate 48000), and read data from the file test.pcm +and write it to /dev/audio: +.Bd -literal -offset indent +$ audiotest_rw -i test.pcm +.Ed +.Pp +The following command will open /dev/audio read-write, set /dev/audio +to full-duplex mode with default parameters (channels:2 +encoding:0 sample rate 48000), read data from the file test.pcm +and write it to /dev/audio, and read data from /dev/audio and +write it to the file test2.pcm: +.Bd -literal -offset indent +$ audiotest_rw -i test.pcm -o test2.pcm +.Ed +.Pp +The following command will open /dev/audio read-only with non-blocking +I/O, set /dev/audio to record mode with default parameters (channels:2 +encoding:0 sample rate 48000), and read data from /dev/audio and +write it to the file test.pcm, using poll() to determine when data +is ready to be read: +.Bd -literal -offset indent +$ audiotest_rw -o test.pcm -p +.Ed +.Pp +The following command will open /dev/audio read-write with non-blocking +I/o, set /dev/audio to full-duplex mode with default parameters (channels:2 +encoding:0 sample rate 48000), read data from the file test.pcm +and write it to /dev/audio, and read data from /dev/audio and +write it to the file test2.pcm, using select() to determine when data +is ready for reading and/or writing on /dev/audio: +.Bd -literal -offset indent +$ audiotest_rw -i test.pcm -o test2.pcm -s +.Ed +.Sh SEE ALSO +.Xr audio 4 +.Sh AUTHORS +.Nm +and this manual page were written by +.An Jacob Meuser Aq jakemsr@sdf.lonestar.org . diff --git a/src/regress/sys/dev/audio_rw/audiotest_rw.c b/src/regress/sys/dev/audio_rw/audiotest_rw.c new file mode 100644 index 000000000..b2398fc35 --- /dev/null +++ b/src/regress/sys/dev/audio_rw/audiotest_rw.c @@ -0,0 +1,666 @@ +/* $OpenBSD: audiotest_rw.c,v 1.10 2009/11/12 05:20:11 jakemsr Exp $ */ + +/* + * Copyright (c) 2007 Jacob Meuser + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +extern char *__progname; + +void useage(void); +int audio_set_duplex(int, char *, int); +int audio_set_info(int, u_int, u_int, u_int, u_int, size_t *); +int audio_trigger_record(int); +int audio_wait_frame(int, size_t, u_int, int, int, int); +int audio_do_frame(int, size_t , char *, char *, u_int, int, int, int); +int audio_do_test(int, size_t, char *, char *, u_int, int, int, int, int, int); + +void +useage(void) +{ + fprintf(stderr, + "usage: %s [-dpsv] [-b buffersize] [-c channels] [-e encoding]\n" + " [-f device] [-i input] [-l loops] [-o output] [-r samplerate]\n", + __progname); + return; +} + + +int +audio_set_duplex(int audio_fd, char *audio_device, int use_duplex) +{ +int i, has_duplex; + + if (ioctl(audio_fd, AUDIO_GETPROPS, &i) < 0) { + warn("AUDIO_GETPROPS"); + return 1; + } + + has_duplex = i & AUDIO_PROP_FULLDUPLEX ? 1 : 0; + + if (use_duplex && !has_duplex) { + warn("%s doesn't support full-duplex", audio_device); + return 1; + } + + if (ioctl(audio_fd, AUDIO_SETFD, &use_duplex) < 0) { + warn("AUDIO_SETFD"); + return 1; + } + + if (ioctl(audio_fd, AUDIO_GETFD, &i) < 0) { + warn("AUDIO_GETFD"); + return 1; + } + + if (i != use_duplex) + return 1; + + return 0; +} + + +int +audio_set_info(int audio_fd, u_int mode, u_int encoding, u_int sample_rate, + u_int channels, size_t *buffer_size) +{ +audio_info_t audio_if; +audio_encoding_t audio_enc; +u_int precision; + + audio_enc.index = encoding; + if (ioctl(audio_fd, AUDIO_GETENC, &audio_enc) < 0) { + warn("AUDIO_GETENC"); + return 1; + } + + precision = audio_enc.precision; + encoding = audio_enc.encoding; + + if (encoding == AUDIO_ENCODING_ULINEAR) + encoding = (BYTE_ORDER == LITTLE_ENDIAN) ? + AUDIO_ENCODING_ULINEAR_LE : AUDIO_ENCODING_ULINEAR_BE; + + if (encoding == AUDIO_ENCODING_SLINEAR) + encoding = (BYTE_ORDER == LITTLE_ENDIAN) ? + AUDIO_ENCODING_SLINEAR_LE : AUDIO_ENCODING_SLINEAR_BE; + + AUDIO_INITINFO(&audio_if); + + audio_if.mode = mode; + + if (mode & AUMODE_RECORD) { + audio_if.record.precision = precision; + audio_if.record.channels = channels; + audio_if.record.sample_rate = sample_rate; + audio_if.record.encoding = encoding; + audio_if.record.block_size = *buffer_size; + } + if (mode & AUMODE_PLAY) { + audio_if.play.precision = precision; + audio_if.play.channels = channels; + audio_if.play.sample_rate = sample_rate; + audio_if.play.encoding = encoding; + audio_if.play.block_size = *buffer_size; + } + + if (ioctl(audio_fd, AUDIO_SETINFO, &audio_if) < 0) { + warn("AUDIO_SETINFO"); + return 1; + } + + if (ioctl(audio_fd, AUDIO_GETINFO, &audio_if) < 0) { + warn("AUDIO_GETINFO"); + return 1; + } + + if (mode & AUMODE_RECORD) { + if (audio_if.record.precision != precision) { + warnx("unable to set record precision: tried %u, got %u", + precision, audio_if.record.precision); + return 1; + } + if (audio_if.record.channels != channels){ + warnx("unable to set record channels: tried %u, got %u", + channels, audio_if.record.channels); + return 1; + } + if (audio_if.record.sample_rate != sample_rate) { + warnx("unable to set record sample_rate: tried %u, got %u", + sample_rate, audio_if.record.sample_rate); + return 1; + } + if (audio_if.record.encoding != encoding) { + warnx("unable to set record encoding: tried %u, got %u", + encoding, audio_if.record.encoding); + return 1; + } + *buffer_size = audio_if.record.block_size; + } + + if (mode & AUMODE_PLAY) { + if (audio_if.play.precision != precision) { + warnx("unable to set play precision: tried %u, got %u", + precision, audio_if.play.precision); + return 1; + } + if (audio_if.play.channels != channels) { + warnx("unable to set play channels: tried %u, got %u", + channels, audio_if.play.channels); + return 1; + } + if (audio_if.play.sample_rate != sample_rate) { + warnx("unable to set play sample_rate: tried %u, got %u", + sample_rate, audio_if.play.sample_rate); + return 1; + } + if (audio_if.play.encoding != encoding) { + warnx("unable to set play encoding: tried %u, got %u", + encoding, audio_if.play.encoding); + return 1; + } + *buffer_size = audio_if.play.block_size; + } + + return 0; +} + +int +audio_trigger_record(int audio_fd) +{ +audio_info_t audio_if; + + AUDIO_INITINFO(&audio_if); + audio_if.record.pause = 0; + if (ioctl(audio_fd, AUDIO_SETINFO, &audio_if) < 0) { + warn("AUDIO_SETINFO: audio_if.record.pause = %d", + audio_if.record.pause); + return 1; + } + + return 0; +} + +/* return 0 on error, 1 if read, 2 if write, 3 if both read and write */ +int +audio_wait_frame(int audio_fd, size_t buffer_size, u_int mode, int use_select, + int use_poll, int use_bufinfo) +{ +struct audio_bufinfo ab; +struct pollfd pfd[1]; +fd_set *sfdsr; +fd_set *sfdsw; +struct timeval tv; +int nfds, max; +int ret; + + ret = 0; + + if (use_select) { + tv.tv_sec = 1; + tv.tv_usec = 0; + max = audio_fd; + sfdsr = NULL; + sfdsw = NULL; + if (mode & AUMODE_RECORD) { + if ((sfdsr = calloc(max + 1, sizeof(fd_set))) == NULL) { + warn("fd_set sfdsr"); + return 0; + } + FD_ZERO(sfdsr); + FD_SET(audio_fd, sfdsr); + } + if (mode & AUMODE_PLAY) { + if ((sfdsw = calloc(max + 1, sizeof(fd_set))) == NULL) { + warn("fd_set sfdsw"); + return 0; + } + FD_ZERO(sfdsw); + FD_SET(audio_fd, sfdsw); + } + nfds = select(max + 1, sfdsr, sfdsw, NULL, &tv); + if (nfds == -1) { + warn("select() error"); + return 0; + } + if (nfds == 0) { + warnx("select() timed out"); + return 0; + } + if (mode & AUMODE_RECORD) + if (FD_ISSET(audio_fd, sfdsr)) + ret |= 1; + if (mode & AUMODE_PLAY) + if (FD_ISSET(audio_fd, sfdsw)) + ret |= 2; + if (sfdsr != NULL) + free(sfdsr); + if (sfdsw != NULL) + free(sfdsw); + } else if (use_poll) { + bzero(&pfd[0], sizeof(struct pollfd)); + pfd[0].fd = audio_fd; + if (mode & AUMODE_RECORD) + pfd[0].events |= POLLIN; + if (mode & AUMODE_PLAY) + pfd[0].events |= POLLOUT; + nfds = poll(pfd, 1, 1000); + if (nfds == -1 || (pfd[0].revents & (POLLERR|POLLHUP|POLLNVAL))) { + warn("poll() error"); + return 0; + } + if (nfds == 0) { + warnx("poll() timed out"); + return 0; + } + if (mode & AUMODE_RECORD) + if (pfd[0].revents & POLLIN) + ret |= 1; + if (mode & AUMODE_PLAY) + if (pfd[0].revents & POLLOUT) + ret |= 2; + } else if (use_bufinfo) { +retry: + if (mode & AUMODE_RECORD) { + if (ioctl(audio_fd, AUDIO_GETRRINFO, &ab) < 0) { + warn("AUDIO_GETRRINFO"); + return 0; + } + if (ab.seek >= buffer_size) + ret |= 1; + } + if (mode & AUMODE_PLAY) { + if (ioctl(audio_fd, AUDIO_GETPRINFO, &ab) < 0) { + warn("AUDIO_GETPRINFO"); + return 0; + } + if (ab.hiwat * ab.blksize - ab.seek >= buffer_size) + ret |= 2; + } + if (ret == 0) { + /* 1/100th of a second */ + usleep(100000); + goto retry; + } + } else { + if (mode & AUMODE_RECORD) + ret |= 1; + if (mode & AUMODE_PLAY) + ret |= 2; + } + + return ret; +} + + +/* return 0 on error, 1 if read, 2 if write, 3 if both read and write */ +int +audio_do_frame(int audio_fd, size_t buffer_size, char *rbuffer, char *wbuffer, + u_int mode, int use_poll, int use_select, int use_bufinfo) +{ +size_t offset; +size_t left; +ssize_t retval; +int ret; + + ret = audio_wait_frame(audio_fd, buffer_size, mode, use_select, + use_poll, use_bufinfo); + if (ret == 0) + return 0; + + if (ret & 1) { + for (left = buffer_size, offset = 0; left > 0;) { + retval = read(audio_fd, rbuffer + offset, left); + if (retval == 0) + warnx("read audio device 0 bytes"); + if (retval < 0) { + warn("read audio device"); + return 0; + } + if (retval > left) { + warnx("read returns more than requested: " + "%ld > %ld", retval, left); + return 0; + } + offset += retval; + left -= retval; + } + } + + if (ret & 2) { + for (left = buffer_size, offset = 0; left > 0;) { + retval = write(audio_fd, wbuffer + offset, left); + if (retval == 0) + warnx("write audio device 0 bytes"); + if (retval < 0) { + warn("write audio device"); + return 0; + } + if (retval > left) { + warnx("write returns more than requested: " + "%ld > %ld", retval, left); + return 0; + } + offset += retval; + left -= retval; + } + } + + return ret; +} + + +int +audio_do_test(int audio_fd, size_t buffer_size, char *input_file, + char *output_file, u_int mode, int use_poll, int use_select, + int use_bufinfo, int loops, int verbose) +{ +FILE *fout; +FILE *fin; +char *rbuffer; +char *wbuffer; +int buffs_read, buffs_written; +int i, ret; + + fin = NULL; + fout = NULL; + rbuffer = NULL; + wbuffer = NULL; + + if ((rbuffer = malloc(buffer_size)) == NULL) + err(1, "malloc %lu bytes", (unsigned long)buffer_size); + + if ((wbuffer = malloc(buffer_size)) == NULL) + err(1, "malloc %lu bytes", (unsigned long)buffer_size); + + if (output_file != NULL) { + if ((fout = fopen(output_file, "w")) == NULL) + err(1, "fopen %s", output_file); + } + if (input_file != NULL) { + if ((fin = fopen(input_file, "r")) == NULL) + err(1, "fopen %s", input_file); + } + + buffs_read = 0; + buffs_written = 0; + if (input_file != NULL) { + if (fread(wbuffer, buffer_size, 1, fin) < 1) { + warnx("fread error: %s", input_file); + return 1; + } + } + for (i = 1; mode && i <= loops; i++) { + ret = audio_do_frame(audio_fd, buffer_size, rbuffer, + wbuffer, mode, use_poll, use_select, use_bufinfo); + if (ret == 0) + return 1; + if (ret & 1) { + buffs_read++; + if (verbose) + warnx("loop %03d: read frame: %03d", i, buffs_read); + if (fwrite(rbuffer, buffer_size, 1, fout) < 1) { + warnx("fwrite error: %s", output_file); + return 1; + } + } + if (ret & 2) { + buffs_written++; + if (verbose) + warnx("loop %03d: write frame: %03d", i, buffs_written); + if (fread(wbuffer, buffer_size, 1, fin) < 1) { + if (feof(fin)) { + if (verbose) + warnx("input EOF"); + mode = mode & ~AUMODE_PLAY; + } else { + warnx("fread error: %s", input_file); + return 1; + } + } + } + } + + if (output_file != NULL) + if (fileno(fout) >= 0) + fclose(fout); + if (input_file != NULL) + if (fileno(fin) >= 0) + fclose(fin); + + if (rbuffer != NULL) + free(rbuffer); + if (wbuffer != NULL) + free(wbuffer); + + return 0; +} + + +int +main(int argc, char *argv[]) +{ +char *audio_device; +char *output_file; +char *input_file; +int audio_fd; +size_t buffer_size; + +audio_device_t audio_dev; +audio_info_t audio_if; +u_int sample_rate; +u_int channels; +u_int mode; +u_int encoding; + +int flags; +int use_duplex; +int use_nonblock; +int use_poll; +int use_select; +int use_bufinfo; +int verbose; + +int loops; + +const char *errstr; + +int ch; +extern char *optarg; +extern int optind; + + + audio_device = "/dev/audio"; + input_file = NULL; + output_file = NULL; + + audio_fd = -1; + + buffer_size = 8192; + sample_rate = 48000; + channels = 2; + + encoding = 0; + + loops = 64; + use_nonblock = 0; + use_select = 0; + use_poll = 0; + use_bufinfo = 0; + use_duplex = 0; + verbose = 0; + + while ((ch = getopt(argc, argv, "b:c:e:f:i:l:o:r:dnpsv")) != -1) { + switch (ch) { + case 'b': + buffer_size = (size_t)strtonum(optarg, 32, 65536, &errstr); + if (errstr != NULL) + errx(1, "could not grok buffer_size: %s", errstr); + break; + case 'c': + channels = (u_int)strtonum(optarg, 1, 2, &errstr); + if (errstr != NULL) + errx(1, "could not grok channels: %s", errstr); + break; + case 'd': + use_duplex = 1; + break; + case 'e': + encoding = (u_int)strtonum(optarg, 0, 24, &errstr); + if (errstr != NULL) + errx(1, "could not grok encoding: %s", errstr); + break; + case 'f': + audio_device = optarg; + break; + case 'i': + input_file = optarg; + break; + case 'l': + loops = (int)strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr != NULL) + errx(1, "could not grok loops: %s", errstr); + break; + case 'n': + use_bufinfo = 1; + break; + case 'o': + output_file = optarg; + break; + case 'p': + use_poll = 1; + use_nonblock = 1; + break; + case 'r': + sample_rate = (u_int)strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr != NULL) + errx(1, "could not grok sample_rate: %s", errstr); + break; + case 's': + use_select = 1; + use_nonblock = 1; + break; + case 'v': + verbose = 1; + break; + default: + useage(); + exit(1); + break; + } + } + argc -= optind; + argv += optind; + + if (use_select + use_poll + use_bufinfo > 1) + errx(1, "can only use one of select, poll or buffer info"); + + if ((input_file == NULL) && (output_file == NULL)) + errx(1, "no input or output file specified"); + + if ((input_file != NULL) && (output_file != NULL)) + use_duplex = 1; + + mode = 0; + flags = 0; + + if (output_file != NULL) { + mode |= AUMODE_RECORD; + flags = O_RDONLY; + } + + if (input_file != NULL) { + mode |= AUMODE_PLAY; + flags = O_WRONLY; + } + + if (use_duplex) + flags = O_RDWR; + + if (use_nonblock) + flags |= O_NONBLOCK; + + if ((audio_fd = open(audio_device, flags)) < 0) + err(1, "open %s", audio_device); + + if (audio_set_duplex(audio_fd, audio_device, use_duplex)) + errx(1, "could not set duplex mode"); + + if (audio_set_info(audio_fd, mode, encoding, sample_rate, channels, + &buffer_size)) + errx(1, "could not initialize audio device"); + + if (verbose) { + AUDIO_INITINFO(&audio_if); + if (ioctl(audio_fd, AUDIO_GETINFO, &audio_if) < 0) + err(1, "AUDIO_GETINFO"); + + if (ioctl(audio_fd, AUDIO_GETDEV, &audio_dev) < 0) + err(1, "AUDIO_GETDEV"); + + warnx("audio device: %s: %s ver %s, config: %s", audio_device, + audio_dev.name, audio_dev.version, audio_dev.config); + warnx("blocksize: %u", audio_if.blocksize); + warnx("lowat: %u", audio_if.lowat); + warnx("hiwat: %u", audio_if.hiwat); + warnx("play.buffer_size: %u", audio_if.play.buffer_size); + warnx("record.buffer_size: %u", audio_if.record.buffer_size); + if (output_file != NULL) + warnx("output file: %s", output_file); + if (input_file != NULL) + warnx("input file: %s", input_file); + warnx("flags: %d", flags); + warnx("mode: %u", mode); + warnx("encoding: %u", encoding); + warnx("sample_rate: %u", sample_rate); + warnx("channels: %u", channels); + warnx("use_select: %d", use_select); + warnx("use_poll: %d", use_poll); + warnx("use_bufinfo: %d", use_bufinfo); + warnx("use_duplex: %d", use_duplex); + warnx("buffer_size: %lu", (unsigned long)buffer_size); + } + + /* need to trigger recording in duplex mode */ + if (use_duplex && (mode & AUMODE_RECORD)) + if (audio_trigger_record(audio_fd)) + exit(1); + + if (audio_do_test(audio_fd, buffer_size, input_file, output_file, + mode, use_poll, use_select, use_bufinfo, loops, verbose)) + exit(1); + + if (verbose) + warnx("test completed"); + + if (audio_fd >= 0) + close(audio_fd); + + exit(0); +} diff --git a/src/regress/sys/dev/fdesc/CVS/Entries b/src/regress/sys/dev/fdesc/CVS/Entries new file mode 100644 index 000000000..2045d4df7 --- /dev/null +++ b/src/regress/sys/dev/fdesc/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Wed Dec 7 02:29:01 2005// +/confuse.c/1.1/Wed Dec 7 01:43:39 2005// +D diff --git a/src/regress/sys/dev/fdesc/CVS/Repository b/src/regress/sys/dev/fdesc/CVS/Repository new file mode 100644 index 000000000..b9c9edb2e --- /dev/null +++ b/src/regress/sys/dev/fdesc/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/dev/fdesc diff --git a/src/regress/sys/dev/fdesc/CVS/Root b/src/regress/sys/dev/fdesc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/dev/fdesc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/dev/fdesc/Makefile b/src/regress/sys/dev/fdesc/Makefile new file mode 100644 index 000000000..0110945f1 --- /dev/null +++ b/src/regress/sys/dev/fdesc/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2005/12/07 02:29:01 pedro Exp $ + +PROG= confuse + +.include diff --git a/src/regress/sys/dev/fdesc/confuse.c b/src/regress/sys/dev/fdesc/confuse.c new file mode 100644 index 000000000..e61b242a8 --- /dev/null +++ b/src/regress/sys/dev/fdesc/confuse.c @@ -0,0 +1,43 @@ +/* $OpenBSD: confuse.c,v 1.1 2005/12/07 01:43:39 pedro Exp $ */ + +/* + * Written by Artur Grabowski in 2002. Public Domain. + */ + +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + char fname[64]; + int fd, newfd; + + if ((fd = open("/dev/null", O_RDONLY)) < 0) + err(1, "open(/dev/null)"); + + /* Try to confuse fdescfs by making it open into itself. */ + close(fd); + + snprintf(fname, sizeof(fname), "/dev/fd/%d", fd); + + if ((newfd = open(fname, O_RDONLY)) == fd) + errx(1, "open of %s to %d succeeded, beware.", fname, fd); + + if (newfd >= 0) + errx(1, "open(%s) gave us the unexpected %d", fname, fd); + + if (errno == ENOENT) + err(1, "open(%s)", fname); + + if (errno == ENXIO) + errx(1, "no support for fdesc in kernel"); + + warn("errno was (%d)", errno); + + return 0; +} diff --git a/src/regress/sys/dev/fdesc/obj b/src/regress/sys/dev/fdesc/obj new file mode 120000 index 000000000..fb6c0d98d --- /dev/null +++ b/src/regress/sys/dev/fdesc/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/dev/fdesc \ No newline at end of file diff --git a/src/regress/sys/ffs/CVS/Entries b/src/regress/sys/ffs/CVS/Entries new file mode 100644 index 000000000..9a8130617 --- /dev/null +++ b/src/regress/sys/ffs/CVS/Entries @@ -0,0 +1,6 @@ +/LICENSE/1.1/Fri Mar 30 19:02:51 2007// +/Makefile/1.3/Tue Apr 10 11:23:38 2007// +/README/1.1/Fri Mar 30 19:02:51 2007// +/fstest.c/1.2/Sat Apr 14 17:18:28 2007// +/run/1.1/Fri Mar 30 19:02:51 2007// +D/tests//// diff --git a/src/regress/sys/ffs/CVS/Repository b/src/regress/sys/ffs/CVS/Repository new file mode 100644 index 000000000..a5c106e3f --- /dev/null +++ b/src/regress/sys/ffs/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs diff --git a/src/regress/sys/ffs/CVS/Root b/src/regress/sys/ffs/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/LICENSE b/src/regress/sys/ffs/LICENSE new file mode 100644 index 000000000..0cbd1fb49 --- /dev/null +++ b/src/regress/sys/ffs/LICENSE @@ -0,0 +1,28 @@ +$OpenBSD: LICENSE,v 1.1 2007/03/30 19:02:51 pedro Exp $ +$FreeBSD: src/tools/regression/fstest/LICENSE,v 1.1 2007/01/17 01:42:07 pjd Exp $ + +The license for all regression tests available in this directory is as follows: + +Copyright (c) 2006-2007 Pawel Jakub Dawidek +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. diff --git a/src/regress/sys/ffs/Makefile b/src/regress/sys/ffs/Makefile new file mode 100644 index 000000000..493f2c4ad --- /dev/null +++ b/src/regress/sys/ffs/Makefile @@ -0,0 +1,71 @@ +# $OpenBSD: Makefile,v 1.3 2007/04/10 11:23:38 pedro Exp $ + +PROG= fstest + +mount: + dd if=/dev/zero of=${.CURDIR}/fakeobj bs=512 count=4k + vnconfig svnd0 ${.CURDIR}/fakeobj + newfs /dev/rsvnd0c + mount /dev/svnd0c /mnt + +clean: + -umount /mnt + -vnconfig -u svnd0 + -vnconfig -u svnd1 + -rm -f ${.CURDIR}/fakeobj + -rm -f ${.OBJDIR}/fstest + -rm -f ${.OBJDIR}/fstest.o + +chflags: ${PROG} mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/chflags/*.t + +chmod: ${PROG} mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/chmod/*.t + +chown: ${PROG} mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/chown/*.t + +link: ${PROG} mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/link/*.t + +mkdir: ${PROG} mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/mkdir/*.t + +mkfifo: ${PROG} mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/mkfifo/*.t + +open: ${PROG} mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/open/*.t + +rename: ${PROG} mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/rename/*.t + +rmdir: ${PROG} mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/rmdir/*.t + +symlink: ${PROG} mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/symlink/*.t + +truncate: ${PROG} mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/truncate/*.t + +unlink: ${PROG} mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/unlink/*.t + +run-regress-fstest: mount + cd /mnt && env FSTEST=${.OBJDIR}/fstest /bin/sh ${.CURDIR}/run\ + ${.CURDIR}/tests/*/*.t + +.include diff --git a/src/regress/sys/ffs/README b/src/regress/sys/ffs/README new file mode 100644 index 000000000..3a13e2e57 --- /dev/null +++ b/src/regress/sys/ffs/README @@ -0,0 +1,4 @@ +$OpenBSD: README,v 1.1 2007/03/30 19:02:51 pedro Exp $ + +These tests must be run as root, on a system with free svnd0 and svnd1 slots. +It is also advised that /mnt be unmounted, and clean. diff --git a/src/regress/sys/ffs/fstest.c b/src/regress/sys/ffs/fstest.c new file mode 100644 index 000000000..50a22498b --- /dev/null +++ b/src/regress/sys/ffs/fstest.c @@ -0,0 +1,728 @@ +/* $OpenBSD: fstest.c,v 1.2 2007/04/14 17:18:28 thib Exp $ */ + +/* + * Copyright (c) 2006-2007 Pawel Jakub Dawidek + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: src/tools/regression/fstest/fstest.c,v 1.1 2007/01/17 01:42:07 pjd Exp $ + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum action { + ACTION_OPEN, + ACTION_CREATE, + ACTION_UNLINK, + ACTION_MKDIR, + ACTION_RMDIR, + ACTION_LINK, + ACTION_SYMLINK, + ACTION_RENAME, + ACTION_MKFIFO, + ACTION_CHMOD, + ACTION_CHOWN, + ACTION_LCHOWN, + ACTION_CHFLAGS, + ACTION_TRUNCATE, + ACTION_STAT, + ACTION_LSTAT, +}; + +#define TYPE_NONE 0x0000 +#define TYPE_STRING 0x0001 +#define TYPE_NUMBER 0x0002 +#define TYPE_OPTIONAL 0x0100 +#define MAX_ARGS 8 + +struct syscall_desc { + char *sd_name; + enum action sd_action; + int sd_args[MAX_ARGS]; +}; + +static struct syscall_desc syscalls[] = { + { "open", ACTION_OPEN, { TYPE_STRING, TYPE_STRING, + TYPE_NUMBER | TYPE_OPTIONAL, TYPE_NONE } }, + { "create", ACTION_CREATE, { TYPE_STRING, TYPE_NUMBER, TYPE_NONE } }, + { "unlink", ACTION_UNLINK, { TYPE_STRING, TYPE_NONE } }, + { "mkdir", ACTION_MKDIR, { TYPE_STRING, TYPE_NUMBER, TYPE_NONE } }, + { "rmdir", ACTION_RMDIR, { TYPE_STRING, TYPE_NONE } }, + { "link", ACTION_LINK, { TYPE_STRING, TYPE_STRING, TYPE_NONE } }, + { "symlink", ACTION_SYMLINK, { TYPE_STRING, TYPE_STRING, TYPE_NONE } }, + { "rename", ACTION_RENAME, { TYPE_STRING, TYPE_STRING, TYPE_NONE } }, + { "mkfifo", ACTION_MKFIFO, { TYPE_STRING, TYPE_NUMBER, TYPE_NONE } }, + { "chmod", ACTION_CHMOD, { TYPE_STRING, TYPE_NUMBER, TYPE_NONE } }, + { "chown", ACTION_CHOWN, { TYPE_STRING, TYPE_NUMBER, + TYPE_NUMBER, TYPE_NONE } }, + { "lchown", ACTION_LCHOWN, { TYPE_STRING, TYPE_NUMBER, + TYPE_NUMBER, TYPE_NONE } }, + { "chflags", ACTION_CHFLAGS, { TYPE_STRING, TYPE_STRING, TYPE_NONE } }, + { "truncate", ACTION_TRUNCATE, { TYPE_STRING, TYPE_NUMBER, + TYPE_NONE } }, + { "stat", ACTION_STAT, { TYPE_STRING, TYPE_STRING, TYPE_NONE } }, + { "lstat", ACTION_LSTAT, { TYPE_STRING, TYPE_STRING, TYPE_NONE } }, + { NULL, -1, { TYPE_NONE } } +}; + +struct flag { + long long f_flag; + char *f_str; +}; + +static struct flag open_flags[] = { + { O_RDONLY, "O_RDONLY" }, + { O_WRONLY, "O_WRONLY" }, + { O_RDWR, "O_RDWR" }, + { O_NONBLOCK, "O_NONBLOCK" }, + { O_APPEND, "O_APPEND" }, + { O_CREAT, "O_CREAT" }, + { O_TRUNC, "O_TRUNC" }, + { O_EXCL, "O_EXCL" }, + { O_SHLOCK, "O_SHLOCK" }, + { O_EXLOCK, "O_EXLOCK" }, + { O_FSYNC, "O_FSYNC" }, + { O_SYNC, "O_SYNC" }, + { O_NOFOLLOW, "O_NOFOLLOW" }, + { O_NOCTTY, "O_NOCTTY" }, + { 0, NULL } +}; + +static struct flag chflags_flags[] = { + { UF_NODUMP, "UF_NODUMP" }, + { UF_IMMUTABLE, "UF_IMMUTABLE" }, + { UF_APPEND, "UF_APPEND" }, + { UF_OPAQUE, "UF_OPAQUE" }, + { SF_ARCHIVED, "SF_ARCHIVED" }, + { SF_IMMUTABLE, "SF_IMMUTABLE" }, + { SF_APPEND, "SF_APPEND" }, + { 0, NULL } +}; + +static const char *err2str(int error); +int use_appimm; /* use the SF_APPEND and SF_IMMUTABLE chflags */ + +__dead static void +usage(void) +{ + fprintf(stderr, "usage: fstest [-u uid] [-g gid1[,gid2[...]]] syscall " + "args ...\n"); + exit(1); +} + +static long long +str2flags(struct flag *tflags, char *sflags) +{ + long long flags = 0; + unsigned int i; + char *f; + + for (f = strtok(sflags, ","); f != NULL; f = strtok(NULL, ",")) { + /* Support magic 'none' flag which just reset all flags. */ + if (strcmp(f, "none") == 0) + return (0); + for (i = 0; tflags[i].f_str != NULL; i++) { + if (strcmp(tflags[i].f_str, f) == 0) + break; + } + if (tflags[i].f_str == NULL) { + fprintf(stderr, "unknown flag '%s'\n", f); + exit(1); + } + flags |= tflags[i].f_flag; + } + return (flags); +} + +static char * +flags2str(struct flag *tflags, long long flags) +{ + static char sflags[1024]; + unsigned int i; + + sflags[0] = '\0'; + for (i = 0; tflags[i].f_str != NULL; i++) { + if (flags & tflags[i].f_flag) { + if (sflags[0] != '\0') + strlcat(sflags, ",", sizeof(sflags)); + strlcat(sflags, tflags[i].f_str, sizeof(sflags)); + } + } + if (sflags[0] == '\0') + strlcpy(sflags, "none", sizeof(sflags)); + return (sflags); +} + +static struct syscall_desc * +find_syscall(const char *name) +{ + int i; + + for (i = 0; syscalls[i].sd_name != NULL; i++) { + if (strcmp(syscalls[i].sd_name, name) == 0) + return (&syscalls[i]); + } + return (NULL); +} + +static void +show_stat(struct stat *sp, const char *what) +{ + + if (strcmp(what, "mode") == 0) + printf("0%o", (unsigned int)(sp->st_mode & ALLPERMS)); + else if (strcmp(what, "inode") == 0) + printf("%lld", (long long)sp->st_ino); + else if (strcmp(what, "nlink") == 0) + printf("%lld", (long long)sp->st_nlink); + else if (strcmp(what, "uid") == 0) + printf("%d", (int)sp->st_uid); + else if (strcmp(what, "gid") == 0) + printf("%d", (int)sp->st_gid); + else if (strcmp(what, "size") == 0) + printf("%lld", (long long)sp->st_size); + else if (strcmp(what, "blocks") == 0) + printf("%lld", (long long)sp->st_blocks); + else if (strcmp(what, "atime") == 0) + printf("%lld", (long long)sp->st_atime); + else if (strcmp(what, "mtime") == 0) + printf("%lld", (long long)sp->st_mtime); + else if (strcmp(what, "ctime") == 0) + printf("%lld", (long long)sp->st_ctime); + else if (strcmp(what, "flags") == 0) + printf("%s", flags2str(chflags_flags, sp->st_flags)); + else if (strcmp(what, "type") == 0) { + switch (sp->st_mode & S_IFMT) { + case S_IFIFO: + printf("fifo"); + break; + case S_IFCHR: + printf("char"); + break; + case S_IFDIR: + printf("dir"); + break; + case S_IFBLK: + printf("block"); + break; + case S_IFREG: + printf("regular"); + break; + case S_IFLNK: + printf("symlink"); + break; + case S_IFSOCK: + printf("socket"); + break; + default: + printf("unknown"); + break; + } + } else { + printf("unknown"); + } +} + +static void +show_stats(struct stat *sp, char *what) +{ + const char *s = ""; + char *w; + + for (w = strtok(what, ","); w != NULL; w = strtok(NULL, ",")) { + printf("%s", s); + show_stat(sp, w); + s = ","; + } + printf("\n"); +} + +static unsigned int +call_syscall(struct syscall_desc *scall, char *argv[]) +{ + struct stat sb; + long long flags; + unsigned int i; + char *endp; + int rval; + union { + char *str; + long long num; + } args[MAX_ARGS]; + unsigned int ch_flags; + + /* + * Verify correctness of the arguments. + */ + for (i = 0; i < sizeof(args)/sizeof(args[0]); i++) { + if (scall->sd_args[i] == TYPE_NONE) { + if (argv[i] == NULL || strcmp(argv[i], ":") == 0) + break; + fprintf(stderr, "too many arguments [%s]\n", argv[i]); + exit(1); + } else { + if (argv[i] == NULL || strcmp(argv[i], ":") == 0) { + if (scall->sd_args[i] & TYPE_OPTIONAL) + break; + fprintf(stderr, "too few arguments\n"); + exit(1); + } + if (scall->sd_args[i] & TYPE_STRING) { + if (strcmp(argv[i], "NULL") == 0) + args[i].str = NULL; + else if (strcmp(argv[i], "DEADCODE") == 0) + args[i].str = (void *)0xdeadc0de; + else + args[i].str = argv[i]; + } else if (scall->sd_args[i] & TYPE_NUMBER) { + args[i].num = strtoll(argv[i], &endp, 0); + if (*endp != '\0' && + !isspace((unsigned char)*endp)) { + fprintf(stderr, "invalid argument %u, " + "number expected [%s]\n", i, endp); + exit(1); + } + } + } + } + /* + * Call the given syscall. + */ +#define NUM(n) (args[(n)].num) +#define STR(n) (args[(n)].str) + switch (scall->sd_action) { + case ACTION_OPEN: + flags = str2flags(open_flags, STR(1)); + if (flags & O_CREAT) { + if (i == 2) { + fprintf(stderr, "too few arguments\n"); + exit(1); + } + rval = open(STR(0), flags, (mode_t)NUM(2)); + } else { + if (i == 3) { + fprintf(stderr, "too many arguments\n"); + exit(1); + } + rval = open(STR(0), flags); + } + break; + case ACTION_CREATE: + rval = open(STR(0), O_CREAT | O_EXCL, NUM(1)); + if (rval >= 0) + close(rval); + break; + case ACTION_UNLINK: + rval = unlink(STR(0)); + break; + case ACTION_MKDIR: + rval = mkdir(STR(0), NUM(1)); + break; + case ACTION_RMDIR: + rval = rmdir(STR(0)); + break; + case ACTION_LINK: + rval = link(STR(0), STR(1)); + break; + case ACTION_SYMLINK: + rval = symlink(STR(0), STR(1)); + break; + case ACTION_RENAME: + rval = rename(STR(0), STR(1)); + break; + case ACTION_MKFIFO: + rval = mkfifo(STR(0), NUM(1)); + break; + case ACTION_CHMOD: + rval = chmod(STR(0), NUM(1)); + break; + case ACTION_CHOWN: + rval = chown(STR(0), NUM(1), NUM(2)); + break; + case ACTION_LCHOWN: + rval = lchown(STR(0), NUM(1), NUM(2)); + break; + case ACTION_CHFLAGS: + ch_flags = str2flags(chflags_flags, STR(1)); + if (!use_appimm) + ch_flags &= ~(SF_APPEND|SF_IMMUTABLE); + + rval = chflags(STR(0), ch_flags); + break; + case ACTION_TRUNCATE: + rval = truncate(STR(0), NUM(1)); + break; + case ACTION_STAT: + rval = stat(STR(0), &sb); + if (rval == 0) { + show_stats(&sb, STR(1)); + return (i); + } + break; + case ACTION_LSTAT: + rval = lstat(STR(0), &sb); + if (rval == 0) { + show_stats(&sb, STR(1)); + return (i); + } + break; + default: + fprintf(stderr, "unsupported syscall\n"); + exit(1); + } +#undef STR +#undef NUM + if (rval < 0) { + const char *serrno; + + serrno = err2str(errno); + fprintf(stderr, "%s returned %d\n", scall->sd_name, rval); + printf("%s\n", serrno); + exit(1); + } + printf("0\n"); + return (i); +} + +static void +set_gids(char *gids) +{ + gid_t *gidset; + long ngroups; + char *g, *endp; + unsigned i; + + ngroups = sysconf(_SC_NGROUPS_MAX); + assert(ngroups > 0); + gidset = malloc(sizeof(*gidset) * ngroups); + assert(gidset != NULL); + for (i = 0, g = strtok(gids, ","); g != NULL; + g = strtok(NULL, ","), i++) { + if (i >= ngroups) { + fprintf(stderr, "too many gids\n"); + exit(1); + } + gidset[i] = strtol(g, &endp, 0); + if (*endp != '\0' && !isspace((unsigned char)*endp)) { + fprintf(stderr, "invalid gid '%s' - number expected\n", + g); + exit(1); + } + } + if (setgroups(i, gidset) < 0) { + fprintf(stderr, "cannot change groups: %s\n", strerror(errno)); + exit(1); + } + free(gidset); +} + +int +main(int argc, char *argv[]) +{ + struct syscall_desc *scall; + unsigned int n; + char *gids, *endp; + int uid, umsk, ch; + int mib[2]; + size_t len; + int securelevel; + + uid = -1; + gids = NULL; + umsk = 0; + + while ((ch = getopt(argc, argv, "g:u:U:")) != -1) { + switch(ch) { + case 'g': + gids = optarg; + break; + case 'u': + uid = (int)strtol(optarg, &endp, 0); + if (*endp != '\0' && !isspace((unsigned char)*endp)) { + fprintf(stderr, "invalid uid '%s' - number " + "expected\n", optarg); + exit(1); + } + break; + case 'U': + umsk = (int)strtol(optarg, &endp, 0); + if (*endp != '\0' && !isspace((unsigned char)*endp)) { + fprintf(stderr, "invalid umask '%s' - number " + "expected\n", optarg); + exit(1); + } + break; + default: + usage(); + } + } + argc -= optind; + argv += optind; + + if (argc < 1) { + fprintf(stderr, "too few arguments\n"); + usage(); + } + + if (gids != NULL) { + fprintf(stderr, "changing groups to %s\n", gids); + set_gids(gids); + } + if (uid != -1) { + fprintf(stderr, "changing uid to %d\n", uid); + if (setuid(uid) < 0) { + fprintf(stderr, "cannot change uid: %s\n", + strerror(errno)); + exit(1); + } + } + + /* + * Find out if we should use the SF_IMMUTABLE and SF_APPEND flags; + * Since we run by default on kern.securelevel=1 these cause false + * positives. + */ + mib[0] = CTL_KERN; + mib[1] = KERN_SECURELVL; + len = sizeof(securelevel); + if (sysctl(mib, 2, &securelevel, &len, NULL, 0) == -1) { + fprintf(stderr, "cannot get kernel securelevel\n"); + exit(1); + } + if (securelevel == 0 || securelevel == -1) + use_appimm = 1; + else + use_appimm = 0; + + /* Change umask to requested value or to 0, if not requested. */ + umask(umsk); + + for (;;) { + scall = find_syscall(argv[0]); + if (scall == NULL) { + fprintf(stderr, "syscall '%s' not supported\n", argv[0]); + exit(1); + } + argc++; + argv++; + n = call_syscall(scall, argv); + argc += n; + argv += n; + if (argv[0] == NULL) + break; + argc++; + argv++; + } + + exit(0); +} + +static const char * +err2str(int error) +{ + static char errnum[8]; + + switch (error) { + case EPERM: + return ("EPERM"); + case ENOENT: + return ("ENOENT"); + case ESRCH: + return ("ESRCH"); + case EINTR: + return ("EINTR"); + case EIO: + return ("EIO"); + case ENXIO: + return ("ENXIO"); + case E2BIG: + return ("E2BIG"); + case ENOEXEC: + return ("ENOEXEC"); + case EBADF: + return ("EBADF"); + case ECHILD: + return ("ECHILD"); + case EDEADLK: + return ("EDEADLK"); + case ENOMEM: + return ("ENOMEM"); + case EACCES: + return ("EACCES"); + case EFAULT: + return ("EFAULT"); + case ENOTBLK: + return ("ENOTBLK"); + case EBUSY: + return ("EBUSY"); + case EEXIST: + return ("EEXIST"); + case EXDEV: + return ("EXDEV"); + case ENODEV: + return ("ENODEV"); + case ENOTDIR: + return ("ENOTDIR"); + case EISDIR: + return ("EISDIR"); + case EINVAL: + return ("EINVAL"); + case ENFILE: + return ("ENFILE"); + case EMFILE: + return ("EMFILE"); + case ENOTTY: + return ("ENOTTY"); + case ETXTBSY: + return ("ETXTBSY"); + case EFBIG: + return ("EFBIG"); + case ENOSPC: + return ("ENOSPC"); + case ESPIPE: + return ("ESPIPE"); + case EROFS: + return ("EROFS"); + case EMLINK: + return ("EMLINK"); + case EPIPE: + return ("EPIPE"); + case EDOM: + return ("EDOM"); + case ERANGE: + return ("ERANGE"); + case EAGAIN: + return ("EAGAIN"); + case EINPROGRESS: + return ("EINPROGRESS"); + case EALREADY: + return ("EALREADY"); + case ENOTSOCK: + return ("ENOTSOCK"); + case EDESTADDRREQ: + return ("EDESTADDRREQ"); + case EMSGSIZE: + return ("EMSGSIZE"); + case EPROTOTYPE: + return ("EPROTOTYPE"); + case ENOPROTOOPT: + return ("ENOPROTOOPT"); + case EPROTONOSUPPORT: + return ("EPROTONOSUPPORT"); + case ESOCKTNOSUPPORT: + return ("ESOCKTNOSUPPORT"); + case EOPNOTSUPP: + return ("EOPNOTSUPP"); + case EPFNOSUPPORT: + return ("EPFNOSUPPORT"); + case EAFNOSUPPORT: + return ("EAFNOSUPPORT"); + case EADDRINUSE: + return ("EADDRINUSE"); + case EADDRNOTAVAIL: + return ("EADDRNOTAVAIL"); + case ENETDOWN: + return ("ENETDOWN"); + case ENETUNREACH: + return ("ENETUNREACH"); + case ENETRESET: + return ("ENETRESET"); + case ECONNABORTED: + return ("ECONNABORTED"); + case ECONNRESET: + return ("ECONNRESET"); + case ENOBUFS: + return ("ENOBUFS"); + case EISCONN: + return ("EISCONN"); + case ENOTCONN: + return ("ENOTCONN"); + case ESHUTDOWN: + return ("ESHUTDOWN"); + case ETOOMANYREFS: + return ("ETOOMANYREFS"); + case ETIMEDOUT: + return ("ETIMEDOUT"); + case ECONNREFUSED: + return ("ECONNREFUSED"); + case ELOOP: + return ("ELOOP"); + case ENAMETOOLONG: + return ("ENAMETOOLONG"); + case EHOSTDOWN: + return ("EHOSTDOWN"); + case EHOSTUNREACH: + return ("EHOSTUNREACH"); + case ENOTEMPTY: + return ("ENOTEMPTY"); + case EPROCLIM: + return ("EPROCLIM"); + case EUSERS: + return ("EUSERS"); + case EDQUOT: + return ("EDQUOT"); + case ESTALE: + return ("ESTALE"); + case EREMOTE: + return ("EREMOTE"); + case EBADRPC: + return ("EBADRPC"); + case ERPCMISMATCH: + return ("ERPCMISMATCH"); + case EPROGUNAVAIL: + return ("EPROGUNAVAIL"); + case EPROGMISMATCH: + return ("EPROGMISMATCH"); + case EPROCUNAVAIL: + return ("EPROCUNAVAIL"); + case ENOLCK: + return ("ENOLCK"); + case ENOSYS: + return ("ENOSYS"); + case EFTYPE: + return ("EFTYPE"); + case EAUTH: + return ("EAUTH"); + case ENEEDAUTH: + return ("ENEEDAUTH"); + case EILSEQ: + return ("EILSEQ"); + case ENOATTR: + return ("ENOATTR"); + default: + snprintf(errnum, sizeof(errnum), "%d", error); + return (errnum); + } +} diff --git a/src/regress/sys/ffs/run b/src/regress/sys/ffs/run new file mode 100644 index 000000000..a1a967a53 --- /dev/null +++ b/src/regress/sys/ffs/run @@ -0,0 +1,60 @@ +#!/bin/sh +# $OpenBSD: run,v 1.1 2007/03/30 19:02:51 pedro Exp $ +# Heavily inspired on FreeBSD's misc.sh. + +totntest=0 +totnfail=0 + +name253="_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_12" +name255="${name253}34" +name256="${name255}5" +path1021="${name255}/${name255}/${name255}/${name253}" +path1023="${path1021}/x" +path1024="${path1023}x" + +# Run a single test, calling fstest to do the job. +expect() +{ + e="${1}" + shift + echo -n "Running test #${ntest}... " +# echo ${FSTEST} $* + r=`${FSTEST} $* 2>/dev/null | tail -1` + echo "${r}" | egrep '^'${e}'$' >/dev/null 2>&1 + if [ $? -eq 0 ]; then + echo "okay." + else + nfail=`expr $nfail + 1` + echo "failed." + fi + ntest=`expr $ntest + 1` +} + +test_check() +{ + echo -n "Running test #${ntest}... " + if [ $* ]; then + echo "okay." + else + nfail=`expr $nfail + 1` + echo "failed." + fi + ntest=`expr $ntest + 1` +} + +# Generate a random file/directory name. +namegen() +{ + echo "fstest_`dd if=/dev/urandom bs=1k count=1 2>/dev/null | openssl md5`" +} + +for arg in $*; do + ntest=0 + nfail=0 + echo $arg: + . $arg + totntest=`expr $totntest + $ntest` + totnfail=`expr $totnfail + $nfail` +done + +echo "${totntest} tests completed, ${totnfail} failed." diff --git a/src/regress/sys/ffs/tests/CVS/Entries b/src/regress/sys/ffs/tests/CVS/Entries new file mode 100644 index 000000000..36e2a616f --- /dev/null +++ b/src/regress/sys/ffs/tests/CVS/Entries @@ -0,0 +1,12 @@ +D/chflags//// +D/chmod//// +D/chown//// +D/link//// +D/mkdir//// +D/mkfifo//// +D/open//// +D/rename//// +D/rmdir//// +D/symlink//// +D/truncate//// +D/unlink//// diff --git a/src/regress/sys/ffs/tests/CVS/Repository b/src/regress/sys/ffs/tests/CVS/Repository new file mode 100644 index 000000000..23c6f90ea --- /dev/null +++ b/src/regress/sys/ffs/tests/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests diff --git a/src/regress/sys/ffs/tests/CVS/Root b/src/regress/sys/ffs/tests/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/tests/chflags/00.t b/src/regress/sys/ffs/tests/chflags/00.t new file mode 100644 index 000000000..688f43d68 --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/00.t @@ -0,0 +1,171 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/00.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags changes flags" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n2} 0755 +cdir=`pwd` +cd ${n2} + +expect 0 create ${n0} 0644 +expect none stat ${n0} flags +expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND +expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n0} flags +expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE +expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE stat ${n0} flags +expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND +expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n0} flags +expect 0 chflags ${n0} none +expect none stat ${n0} flags +expect 0 unlink ${n0} + +expect 0 mkdir ${n0} 0644 +expect none stat ${n0} flags +expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND +expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n0} flags +expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE +expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE stat ${n0} flags +expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND +expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n0} flags +expect 0 chflags ${n0} none +expect none stat ${n0} flags +expect 0 rmdir ${n0} + +expect 0 mkfifo ${n0} 0644 +expect none stat ${n0} flags +expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND +expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n0} flags +expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE +expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE stat ${n0} flags +expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND +expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n0} flags +expect 0 chflags ${n0} none +expect none stat ${n0} flags +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 symlink ${n0} ${n1} +expect none stat ${n1} flags +expect none lstat ${n1} flags +expect 0 chflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND +expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n1} flags +expect none lstat ${n1} flags +expect 0 chflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE +expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE stat ${n1} flags +expect none lstat ${n1} flags +expect 0 chflags ${n1} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND +expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n1} flags +expect none lstat ${n1} flags +expect 0 chflags ${n1} none +expect none stat ${n1} flags +expect none lstat ${n1} flags +expect 0 unlink ${n1} +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 symlink ${n0} ${n1} +expect none stat ${n1} flags +expect none lstat ${n1} flags +expect 0 lchflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND +expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND lstat ${n1} flags +expect none stat ${n1} flags +expect 0 lchflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE +expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE lstat ${n1} flags +expect none stat ${n1} flags +expect 0 lchflags ${n1} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND +expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND lstat ${n1} flags +expect none stat ${n1} flags +expect 0 lchflags ${n1} none +expect none lstat ${n1} flags +expect none stat ${n1} flags +expect 0 unlink ${n1} +expect 0 unlink ${n0} + +# successful chflags(2) updates ctime. +expect 0 create ${n0} 0644 +for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND none; do + ctime1=`${FSTEST} stat ${n0} ctime` + sleep 1 + expect 0 chflags ${n0} ${flag} + ctime2=`${FSTEST} stat ${n0} ctime` + test_check $ctime1 -lt $ctime2 +done +expect 0 unlink ${n0} + +expect 0 mkdir ${n0} 0755 +for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND none; do + ctime1=`${FSTEST} stat ${n0} ctime` + sleep 1 + expect 0 chflags ${n0} ${flag} + ctime2=`${FSTEST} stat ${n0} ctime` + test_check $ctime1 -lt $ctime2 +done +expect 0 rmdir ${n0} + +expect 0 mkfifo ${n0} 0644 +for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND none; do + ctime1=`${FSTEST} stat ${n0} ctime` + sleep 1 + expect 0 chflags ${n0} ${flag} + ctime2=`${FSTEST} stat ${n0} ctime` + test_check $ctime1 -lt $ctime2 +done +expect 0 unlink ${n0} + +expect 0 symlink ${n1} ${n0} +for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND none; do + ctime1=`${FSTEST} lstat ${n0} ctime` + sleep 1 + expect 0 lchflags ${n0} ${flag} + ctime2=`${FSTEST} lstat ${n0} ctime` + test_check $ctime1 -lt $ctime2 +done +expect 0 unlink ${n0} + +# unsuccessful chflags(2) does not update ctime. +expect 0 create ${n0} 0644 +for flag in UF_IMMUTABLE SF_IMMUTABLE none; do + ctime1=`${FSTEST} stat ${n0} ctime` + sleep 1 + expect EPERM -u 65534 chflags ${n0} ${flag} + ctime2=`${FSTEST} stat ${n0} ctime` + test_check $ctime1 -eq $ctime2 +done +expect 0 unlink ${n0} + +expect 0 mkdir ${n0} 0755 +for flag in UF_IMMUTABLE SF_IMMUTABLE none; do + ctime1=`${FSTEST} stat ${n0} ctime` + sleep 1 + expect EPERM -u 65534 chflags ${n0} ${flag} + ctime2=`${FSTEST} stat ${n0} ctime` + test_check $ctime1 -eq $ctime2 +done +expect 0 rmdir ${n0} + +expect 0 mkfifo ${n0} 0644 +for flag in UF_IMMUTABLE SF_IMMUTABLE none; do + ctime1=`${FSTEST} stat ${n0} ctime` + sleep 1 + expect EPERM -u 65534 chflags ${n0} ${flag} + ctime2=`${FSTEST} stat ${n0} ctime` + test_check $ctime1 -eq $ctime2 +done +expect 0 unlink ${n0} + +expect 0 symlink ${n1} ${n0} +for flag in UF_IMMUTABLE SF_IMMUTABLE none; do + ctime1=`${FSTEST} lstat ${n0} ctime` + sleep 1 + expect EPERM -u 65534 lchflags ${n0} ${flag} + ctime2=`${FSTEST} lstat ${n0} ctime` + test_check $ctime1 -eq $ctime2 +done +expect 0 unlink ${n0} + +cd ${cdir} +expect 0 rmdir ${n2} diff --git a/src/regress/sys/ffs/tests/chflags/01.t b/src/regress/sys/ffs/tests/chflags/01.t new file mode 100644 index 000000000..70cc6e6e7 --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/01.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/01.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags returns ENOTDIR if a component of the path prefix is not a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect ENOTDIR chflags ${n0}/${n1}/test UF_IMMUTABLE +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chflags/02.t b/src/regress/sys/ffs/tests/chflags/02.t new file mode 100644 index 000000000..5b569756a --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/02.t @@ -0,0 +1,11 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/02.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags returns ENAMETOOLONG if a component of a pathname exceeded 255 characters" + +expect 0 create ${name255} 0644 +expect 0 chflags ${name255} UF_IMMUTABLE +expect UF_IMMUTABLE stat ${name255} flags +expect 0 chflags ${name255} none +expect 0 unlink ${name255} +expect ENAMETOOLONG chflags ${name256} UF_IMMUTABLE diff --git a/src/regress/sys/ffs/tests/chflags/03.t b/src/regress/sys/ffs/tests/chflags/03.t new file mode 100644 index 000000000..7fcbd6986 --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/03.t @@ -0,0 +1,18 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/03.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags returns ENAMETOOLONG if an entire path name exceeded 1023 characters" + +expect 0 mkdir ${name255} 0755 +expect 0 mkdir ${name255}/${name255} 0755 +expect 0 mkdir ${name255}/${name255}/${name255} 0755 +expect 0 mkdir ${path1021} 0755 +expect 0 create ${path1023} 0644 +expect 0 chflags ${path1023} UF_IMMUTABLE +expect 0 chflags ${path1023} none +expect 0 unlink ${path1023} +expect ENAMETOOLONG chflags ${path1024} UF_IMMUTABLE +expect 0 rmdir ${path1021} +expect 0 rmdir ${name255}/${name255}/${name255} +expect 0 rmdir ${name255}/${name255} +expect 0 rmdir ${name255} diff --git a/src/regress/sys/ffs/tests/chflags/04.t b/src/regress/sys/ffs/tests/chflags/04.t new file mode 100644 index 000000000..6a9801573 --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/04.t @@ -0,0 +1,7 @@ +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect ENOENT chflags ${n0}/${n1}/test UF_IMMUTABLE +expect ENOENT chflags ${n0}/${n1} UF_IMMUTABLE +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chflags/05.t b/src/regress/sys/ffs/tests/chflags/05.t new file mode 100644 index 000000000..96f7c9c81 --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/05.t @@ -0,0 +1,28 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/05.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags returns EACCES when search permission is denied for a component of the path prefix" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644 +expect 0 -u 65534 -g 65534 chflags ${n1}/${n2} UF_IMMUTABLE +expect UF_IMMUTABLE -u 65534 -g 65534 stat ${n1}/${n2} flags +expect 0 -u 65534 -g 65534 chflags ${n1}/${n2} none +expect 0 chmod ${n1} 0644 +expect EACCES -u 65534 -g 65534 chflags ${n1}/${n2} UF_IMMUTABLE +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 chflags ${n1}/${n2} UF_IMMUTABLE +expect UF_IMMUTABLE -u 65534 -g 65534 stat ${n1}/${n2} flags +expect 0 -u 65534 -g 65534 chflags ${n1}/${n2} none +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chflags/06.t b/src/regress/sys/ffs/tests/chflags/06.t new file mode 100644 index 000000000..7b6ad8148 --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/06.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/06.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags returns ELOOP if too many symbolic links were encountered in translating the pathname" + +n0=`namegen` +n1=`namegen` + +expect 0 symlink ${n0} ${n1} +expect 0 symlink ${n1} ${n0} +expect ELOOP chflags ${n0}/test UF_IMMUTABLE +expect ELOOP chflags ${n1}/test UF_IMMUTABLE +expect 0 unlink ${n0} +expect 0 unlink ${n1} diff --git a/src/regress/sys/ffs/tests/chflags/07.t b/src/regress/sys/ffs/tests/chflags/07.t new file mode 100644 index 000000000..a86eea32c --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/07.t @@ -0,0 +1,47 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/07.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags returns EPERM when the effective user ID does not match the owner of the file and the effective user ID is not the super-user" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} + +expect 0 create ${n1} 0644 +expect EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE +expect none stat ${n1} flags +expect 0 chown ${n1} 65534 65534 +expect EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE +expect none stat ${n1} flags +expect 0 unlink ${n1} + +expect 0 mkdir ${n1} 0755 +expect EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE +expect none stat ${n1} flags +expect 0 chown ${n1} 65534 65534 +expect EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE +expect none stat ${n1} flags +expect 0 rmdir ${n1} + +expect 0 mkfifo ${n1} 0644 +expect EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE +expect none stat ${n1} flags +expect 0 chown ${n1} 65534 65534 +expect EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE +expect none stat ${n1} flags +expect 0 unlink ${n1} + +expect 0 symlink ${n2} ${n1} +expect EPERM -u 65534 -g 65534 lchflags ${n1} UF_IMMUTABLE +expect none lstat ${n1} flags +expect 0 lchown ${n1} 65534 65534 +expect EPERM -u 65533 -g 65533 lchflags ${n1} UF_IMMUTABLE +expect none lstat ${n1} flags +expect 0 unlink ${n1} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chflags/08.t b/src/regress/sys/ffs/tests/chflags/08.t new file mode 100644 index 000000000..fad75054c --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/08.t @@ -0,0 +1,63 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/08.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags returns EPERM when one of SF_IMMUTABLE or SF_APPEND, is set and the user is not the super-user" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} + +expect 0 create ${n1} 0644 +expect 0 chown ${n1} 65534 65534 +for flag in SF_IMMUTABLE SF_APPEND ; do + expect 0 chflags ${n1} ${flag} + expect EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE + expect ${flag} stat ${n1} flags + expect EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE + expect ${flag} stat ${n1} flags +done +expect 0 chflags ${n1} none +expect 0 unlink ${n1} + +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +for flag in SF_IMMUTABLE SF_APPEND ; do + expect 0 chflags ${n1} ${flag} + expect EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE + expect ${flag} stat ${n1} flags + expect EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE + expect ${flag} stat ${n1} flags +done +expect 0 chflags ${n1} none +expect 0 rmdir ${n1} + +expect 0 mkfifo ${n1} 0644 +expect 0 chown ${n1} 65534 65534 +for flag in SF_IMMUTABLE SF_APPEND ; do + expect 0 chflags ${n1} ${flag} + expect EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE + expect ${flag} stat ${n1} flags + expect EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE + expect ${flag} stat ${n1} flags +done +expect 0 chflags ${n1} none +expect 0 unlink ${n1} + +expect 0 symlink ${n2} ${n1} +expect 0 lchown ${n1} 65534 65534 +for flag in SF_IMMUTABLE SF_APPEND ; do + expect 0 lchflags ${n1} ${flag} + expect EPERM -u 65533 -g 65533 lchflags ${n1} UF_IMMUTABLE + expect ${flag} lstat ${n1} flags + expect EPERM -u 65534 -g 65534 lchflags ${n1} UF_IMMUTABLE + expect ${flag} lstat ${n1} flags +done +expect 0 lchflags ${n1} none +expect 0 unlink ${n1} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chflags/09.t b/src/regress/sys/ffs/tests/chflags/09.t new file mode 100644 index 000000000..0302ef183 --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/09.t @@ -0,0 +1,51 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/09.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags returns EPERM when one of SF_IMMUTABLE or SF_APPEND is set and securelevel is greater than 0" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} + +expect 0 create ${n1} 0644 +expect 0 chown ${n1} 65534 65534 +for flag in SF_IMMUTABLE SF_APPEND; do + expect 0 chflags ${n1} ${flag} + expect ${flag} stat ${n1} flags +done +expect 0 chflags ${n1} none +expect 0 unlink ${n1} + +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +for flag in SF_IMMUTABLE SF_APPEND; do + expect 0 chflags ${n1} ${flag} + expect ${flag} stat ${n1} flags +done +expect 0 chflags ${n1} none +expect 0 rmdir ${n1} + +expect 0 mkfifo ${n1} 0644 +expect 0 chown ${n1} 65534 65534 +for flag in SF_IMMUTABLE SF_APPEND; do + expect 0 chflags ${n1} ${flag} + expect ${flag} stat ${n1} flags +done +expect 0 chflags ${n1} none +expect 0 unlink ${n1} + +expect 0 symlink ${n2} ${n1} +expect 0 lchown ${n1} 65534 65534 +for flag in SF_IMMUTABLE SF_APPEND; do + expect 0 lchflags ${n1} ${flag} + expect ${flag} lstat ${n1} flags +done +expect 0 lchflags ${n1} none +expect 0 unlink ${n1} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chflags/10.t b/src/regress/sys/ffs/tests/chflags/10.t new file mode 100644 index 000000000..c04ea12ec --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/10.t @@ -0,0 +1,55 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/10.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags returns EPERM if non-super-user tries to set one of SF_IMMUTABLE, SF_APPEND" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} + +expect 0 create ${n1} 0644 +expect 0 chown ${n1} 65534 65534 +for flag in SF_IMMUTABLE SF_APPEND; do + expect EPERM -u 65533 -g 65533 chflags ${n1} ${flag} + expect none stat ${n1} flags + expect EPERM -u 65534 -g 65534 chflags ${n1} ${flag} + expect none stat ${n1} flags +done +expect 0 unlink ${n1} + +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +for flag in SF_IMMUTABLE SF_APPEND; do + expect EPERM -u 65533 -g 65533 chflags ${n1} ${flag} + expect none stat ${n1} flags + expect EPERM -u 65534 -g 65534 chflags ${n1} ${flag} + expect none stat ${n1} flags +done +expect 0 rmdir ${n1} + +expect 0 mkfifo ${n1} 0644 +expect 0 chown ${n1} 65534 65534 +for flag in SF_IMMUTABLE SF_APPEND; do + expect EPERM -u 65533 -g 65533 chflags ${n1} ${flag} + expect none stat ${n1} flags + expect EPERM -u 65534 -g 65534 chflags ${n1} ${flag} + expect none stat ${n1} flags +done +expect 0 unlink ${n1} + +expect 0 symlink ${n2} ${n1} +expect 0 lchown ${n1} 65534 65534 +for flag in SF_IMMUTABLE SF_APPEND; do + expect EPERM -u 65533 -g 65533 lchflags ${n1} ${flag} + expect none lstat ${n1} flags + expect EPERM -u 65534 -g 65534 lchflags ${n1} ${flag} + expect none lstat ${n1} flags +done +expect 0 unlink ${n1} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chflags/11.t b/src/regress/sys/ffs/tests/chflags/11.t new file mode 100644 index 000000000..10b38f0ff --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/11.t @@ -0,0 +1,63 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/11.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags returns EPERM if a user tries to set or remove the SF_SNAPSHOT flag" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} + +expect 0 create ${n1} 0644 +expect EPERM -u 65534 -g 65534 chflags ${n1} SF_SNAPSHOT +expect none stat ${n1} flags +expect EPERM chflags ${n1} SF_SNAPSHOT +expect none stat ${n1} flags +expect 0 chown ${n1} 65534 65534 +expect EPERM -u 65534 -g 65534 chflags ${n1} SF_SNAPSHOT +expect none stat ${n1} flags +expect EPERM chflags ${n1} SF_SNAPSHOT +expect none stat ${n1} flags +expect 0 unlink ${n1} + +expect 0 mkdir ${n1} 0644 +expect EPERM -u 65534 -g 65534 chflags ${n1} SF_SNAPSHOT +expect none stat ${n1} flags +expect EPERM chflags ${n1} SF_SNAPSHOT +expect none stat ${n1} flags +expect 0 chown ${n1} 65534 65534 +expect EPERM -u 65534 -g 65534 chflags ${n1} SF_SNAPSHOT +expect none stat ${n1} flags +expect EPERM chflags ${n1} SF_SNAPSHOT +expect none stat ${n1} flags +expect 0 rmdir ${n1} + +expect 0 mkfifo ${n1} 0644 +expect EPERM -u 65534 -g 65534 chflags ${n1} SF_SNAPSHOT +expect none stat ${n1} flags +expect EPERM chflags ${n1} SF_SNAPSHOT +expect none stat ${n1} flags +expect 0 chown ${n1} 65534 65534 +expect EPERM -u 65534 -g 65534 chflags ${n1} SF_SNAPSHOT +expect none stat ${n1} flags +expect EPERM chflags ${n1} SF_SNAPSHOT +expect none stat ${n1} flags +expect 0 unlink ${n1} + +expect 0 symlink ${n2} ${n1} +expect EPERM -u 65534 -g 65534 lchflags ${n1} SF_SNAPSHOT +expect none lstat ${n1} flags +expect EPERM lchflags ${n1} SF_SNAPSHOT +expect none lstat ${n1} flags +expect 0 lchown ${n1} 65534 65534 +expect EPERM -u 65534 -g 65534 lchflags ${n1} SF_SNAPSHOT +expect none lstat ${n1} flags +expect EPERM lchflags ${n1} SF_SNAPSHOT +expect none lstat ${n1} flags +expect 0 unlink ${n1} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chflags/12.t b/src/regress/sys/ffs/tests/chflags/12.t new file mode 100644 index 000000000..2316514aa --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/12.t @@ -0,0 +1,31 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/12.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags returns EROFS if the named file resides on a read-only file system" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 create ${n0}/${n1} 0644 +expect 0 chflags ${n0}/${n1} UF_IMMUTABLE +expect UF_IMMUTABLE stat ${n0}/${n1} flags +expect 0 chflags ${n0}/${n1} none +expect none stat ${n0}/${n1} flags +mount -ur /dev/svnd1c +expect EROFS chflags ${n0}/${n1} UF_IMMUTABLE +expect none stat ${n0}/${n1} flags +mount -uw /dev/svnd1c +expect 0 chflags ${n0}/${n1} UF_IMMUTABLE +expect UF_IMMUTABLE stat ${n0}/${n1} flags +expect 0 chflags ${n0}/${n1} none +expect none stat ${n0}/${n1} flags +expect 0 unlink ${n0}/${n1} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chflags/13.t b/src/regress/sys/ffs/tests/chflags/13.t new file mode 100644 index 000000000..f476b3249 --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/13.t @@ -0,0 +1,7 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chflags/13.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chflags returns EFAULT if the path argument points outside the process's allocated address space" + +expect EFAULT chflags NULL UF_IMMUTABLE +expect EFAULT chflags DEADCODE UF_IMMUTABLE diff --git a/src/regress/sys/ffs/tests/chflags/CVS/Entries b/src/regress/sys/ffs/tests/chflags/CVS/Entries new file mode 100644 index 000000000..ad083d523 --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/CVS/Entries @@ -0,0 +1,15 @@ +/00.t/1.2/Thu Apr 12 22:40:46 2007// +/01.t/1.1/Fri Mar 30 19:02:51 2007// +/02.t/1.1/Fri Mar 30 19:02:51 2007// +/03.t/1.1/Fri Mar 30 19:02:51 2007// +/04.t/1.1/Fri Mar 30 19:02:51 2007// +/05.t/1.1/Fri Mar 30 19:02:51 2007// +/06.t/1.1/Fri Mar 30 19:02:51 2007// +/07.t/1.1/Fri Mar 30 19:02:51 2007// +/08.t/1.2/Thu Apr 12 22:40:46 2007// +/09.t/1.2/Thu Apr 12 22:40:46 2007// +/10.t/1.2/Thu Apr 12 22:40:46 2007// +/11.t/1.1/Fri Mar 30 19:02:51 2007// +/12.t/1.1/Fri Mar 30 19:02:51 2007// +/13.t/1.1/Fri Mar 30 19:02:51 2007// +D diff --git a/src/regress/sys/ffs/tests/chflags/CVS/Repository b/src/regress/sys/ffs/tests/chflags/CVS/Repository new file mode 100644 index 000000000..f86c6b7b8 --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests/chflags diff --git a/src/regress/sys/ffs/tests/chflags/CVS/Root b/src/regress/sys/ffs/tests/chflags/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/chflags/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/tests/chmod/00.t b/src/regress/sys/ffs/tests/chmod/00.t new file mode 100644 index 000000000..43b24f5d9 --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/00.t @@ -0,0 +1,119 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chmod/00.t,v 1.2 2007/01/25 20:48:14 pjd Exp $ + +desc="chmod changes permission" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n2} 0755 +cdir=`pwd` +cd ${n2} + +expect 0 create ${n0} 0644 +expect 0644 stat ${n0} mode +expect 0 chmod ${n0} 0111 +expect 0111 stat ${n0} mode +expect 0 unlink ${n0} + +expect 0 mkdir ${n0} 0755 +expect 0755 stat ${n0} mode +expect 0 chmod ${n0} 0753 +expect 0753 stat ${n0} mode +expect 0 rmdir ${n0} + +expect 0 mkfifo ${n0} 0644 +expect 0644 stat ${n0} mode +expect 0 chmod ${n0} 0310 +expect 0310 stat ${n0} mode +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 symlink ${n0} ${n1} +expect 0644 stat ${n1} mode +expect 0 chmod ${n1} 0321 +expect 0321 stat ${n1} mode +expect 0321 lstat ${n0} mode +expect 0 unlink ${n0} +expect 0 unlink ${n1} + +# successful chmod(2) updates ctime. +expect 0 create ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 chmod ${n0} 0111 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n0} + +expect 0 mkdir ${n0} 0755 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 chmod ${n0} 0753 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 rmdir ${n0} + +expect 0 mkfifo ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 chmod ${n0} 0310 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n0} + +# unsuccessful chmod(2) does not update ctime. +expect 0 create ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect EPERM -u 65534 chmod ${n0} 0111 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} + +expect 0 mkdir ${n0} 0755 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect EPERM -u 65534 chmod ${n0} 0753 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 rmdir ${n0} + +expect 0 mkfifo ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect EPERM -u 65534 chmod ${n0} 0310 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} + +# POSIX: If the calling process does not have appropriate privileges, and if +# the group ID of the file does not match the effective group ID or one of the +# supplementary group IDs and if the file is a regular file, bit S_ISGID +# (set-group-ID on execution) in the file's mode shall be cleared upon +# successful return from chmod(). + +expect 0 create ${n0} 0755 +expect 0 chown ${n0} 65535 65535 +expect 0 -u 65535 -g 65535 chmod ${n0} 02755 +expect 02755 stat ${n0} mode +expect 0 -u 65535 -g 65535 chmod ${n0} 0755 +expect 0755 stat ${n0} mode + +# XXX +# Unfortunately FreeBSD doesn't clear set-gid bit, but returns EPERM instead. +#case "${os}" in +#FreeBSD) + expect EPERM -u 65535 -g 65534 chmod ${n0} 02755 + expect 0755 stat ${n0} mode +# ;; +#*) +# expect 0 -u 65535 -g 65534 chmod ${n0} 02755 +# expect 0755 stat ${n0} mode +# ;; +#esac +expect 0 unlink ${n0} + +cd ${cdir} +expect 0 rmdir ${n2} diff --git a/src/regress/sys/ffs/tests/chmod/01.t b/src/regress/sys/ffs/tests/chmod/01.t new file mode 100644 index 000000000..623f23005 --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/01.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chmod/01.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chmod returns ENOTDIR if a component of the path prefix is not a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect ENOTDIR chmod ${n0}/${n1}/test 0644 +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chmod/02.t b/src/regress/sys/ffs/tests/chmod/02.t new file mode 100644 index 000000000..52848e0ab --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/02.t @@ -0,0 +1,10 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chmod/02.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chmod returns ENAMETOOLONG if a component of a pathname exceeded 255 characters" + +expect 0 create ${name255} 0644 +expect 0 chmod ${name255} 0620 +expect 0620 stat ${name255} mode +expect 0 unlink ${name255} +expect ENAMETOOLONG chmod ${name256} 0620 diff --git a/src/regress/sys/ffs/tests/chmod/03.t b/src/regress/sys/ffs/tests/chmod/03.t new file mode 100644 index 000000000..546019507 --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/03.t @@ -0,0 +1,17 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chmod/03.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chmod returns ENAMETOOLONG if an entire path name exceeded 1023 characters" + +expect 0 mkdir ${name255} 0755 +expect 0 mkdir ${name255}/${name255} 0755 +expect 0 mkdir ${name255}/${name255}/${name255} 0755 +expect 0 mkdir ${path1021} 0755 +expect 0 create ${path1023} 0644 +expect 0 chmod ${path1023} 0642 +expect 0 unlink ${path1023} +expect ENAMETOOLONG chmod ${path1024} 0642 +expect 0 rmdir ${path1021} +expect 0 rmdir ${name255}/${name255}/${name255} +expect 0 rmdir ${name255}/${name255} +expect 0 rmdir ${name255} diff --git a/src/regress/sys/ffs/tests/chmod/04.t b/src/regress/sys/ffs/tests/chmod/04.t new file mode 100644 index 000000000..e38365c74 --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/04.t @@ -0,0 +1,12 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chmod/04.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chmod returns ENOENT if the named file does not exist" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect ENOENT chmod ${n0}/${n1}/test 0644 +expect ENOENT chmod ${n0}/${n1} 0644 +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chmod/05.t b/src/regress/sys/ffs/tests/chmod/05.t new file mode 100644 index 000000000..fbe16b937 --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/05.t @@ -0,0 +1,26 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chmod/05.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chmod returns EACCES when search permission is denied for a component of the path prefix" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644 +expect 0 -u 65534 -g 65534 chmod ${n1}/${n2} 0642 +expect 0642 -u 65534 -g 65534 stat ${n1}/${n2} mode +expect 0 chmod ${n1} 0644 +expect EACCES -u 65534 -g 65534 chmod ${n1}/${n2} 0620 +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 chmod ${n1}/${n2} 0420 +expect 0420 -u 65534 -g 65534 stat ${n1}/${n2} mode +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chmod/06.t b/src/regress/sys/ffs/tests/chmod/06.t new file mode 100644 index 000000000..d60475c5b --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/06.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chmod/06.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chmod returns ELOOP if too many symbolic links were encountered in translating the pathname" + +n0=`namegen` +n1=`namegen` + +expect 0 symlink ${n0} ${n1} +expect 0 symlink ${n1} ${n0} +expect ELOOP chmod ${n0}/test 0644 +expect ELOOP chmod ${n1}/test 0644 +expect 0 unlink ${n0} +expect 0 unlink ${n1} diff --git a/src/regress/sys/ffs/tests/chmod/07.t b/src/regress/sys/ffs/tests/chmod/07.t new file mode 100644 index 000000000..e16257d0b --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/07.t @@ -0,0 +1,26 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chmod/07.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chmod returns EPERM if the operation would change the ownership, but the effective user ID is not the super-user" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644 +expect 0 -u 65534 -g 65534 chmod ${n1}/${n2} 0642 +expect 0642 stat ${n1}/${n2} mode +expect EPERM -u 65533 -g 65533 chmod ${n1}/${n2} 0641 +expect 0642 stat ${n1}/${n2} mode +expect 0 chown ${n1}/${n2} 0 0 +expect EPERM -u 65534 -g 65534 chmod ${n1}/${n2} 0641 +expect 0642 stat ${n1}/${n2} mode +expect 0 unlink ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chmod/08.t b/src/regress/sys/ffs/tests/chmod/08.t new file mode 100644 index 000000000..dc3fceef9 --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/08.t @@ -0,0 +1,38 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chmod/08.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chmod returns EPERM if the named file has its immutable or append-only flag set" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM chmod ${n0} 0600 +expect 0644 stat ${n0} mode +expect 0 chflags ${n0} none +expect 0 chmod ${n0} 0600 +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM chmod ${n0} 0600 +expect 0644 stat ${n0} mode +expect 0 chflags ${n0} none +expect 0 chmod ${n0} 0600 +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} SF_APPEND +expect EPERM chmod ${n0} 0600 +expect 0644 stat ${n0} mode +expect 0 chflags ${n0} none +expect 0 chmod ${n0} 0600 +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} UF_APPEND +expect EPERM chmod ${n0} 0600 +expect 0644 stat ${n0} mode +expect 0 chflags ${n0} none +expect 0 chmod ${n0} 0600 +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/chmod/09.t b/src/regress/sys/ffs/tests/chmod/09.t new file mode 100644 index 000000000..326e10577 --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/09.t @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chmod/09.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chmod returns EROFS if the named file resides on a read-only file system" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 create ${n0}/${n1} 0644 +expect 0 chmod ${n0}/${n1} 0640 +expect 0640 stat ${n0}/${n1} mode +mount -ur /dev/svnd1c +expect EROFS chmod ${n0}/${n1} 0600 +expect 0640 stat ${n0}/${n1} mode +mount -uw /dev/svnd1c +expect 0 chmod ${n0}/${n1} 0600 +expect 0600 stat ${n0}/${n1} mode +expect 0 unlink ${n0}/${n1} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chmod/10.t b/src/regress/sys/ffs/tests/chmod/10.t new file mode 100644 index 000000000..b7d3d19a7 --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/10.t @@ -0,0 +1,7 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chmod/10.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chmod returns EFAULT if the path argument points outside the process's allocated address space" + +expect EFAULT chmod NULL 0644 +expect EFAULT chmod DEADCODE 0644 diff --git a/src/regress/sys/ffs/tests/chmod/11.t b/src/regress/sys/ffs/tests/chmod/11.t new file mode 100644 index 000000000..f90f357f2 --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/11.t @@ -0,0 +1,36 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chmod/11.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chmod returns EFTYPE if the effective user ID is not the super-user, the mode includes the sticky bit (S_ISVTX), and path does not refer to a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} + +expect 0 mkdir ${n1} 0755 +expect 0 chmod ${n1} 01755 +expect 01755 stat ${n1} mode +expect 0 rmdir ${n1} + +expect 0 create ${n1} 0644 +expect 0 chmod ${n1} 01644 +expect 01644 stat ${n1} mode +expect 0 unlink ${n1} + +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 chmod ${n1} 01755 +expect 01755 stat ${n1} mode +expect 0 rmdir ${n1} + +expect 0 create ${n1} 0644 +expect 0 chown ${n1} 65534 65534 +expect EFTYPE -u 65534 -g 65534 chmod ${n1} 01644 +expect 0644 stat ${n1} mode +expect 0 unlink ${n1} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chmod/CVS/Entries b/src/regress/sys/ffs/tests/chmod/CVS/Entries new file mode 100644 index 000000000..8ed19c359 --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/CVS/Entries @@ -0,0 +1,13 @@ +/00.t/1.1/Fri Mar 30 19:02:51 2007// +/01.t/1.1/Fri Mar 30 19:02:51 2007// +/02.t/1.1/Fri Mar 30 19:02:51 2007// +/03.t/1.1/Fri Mar 30 19:02:51 2007// +/04.t/1.1/Fri Mar 30 19:02:51 2007// +/05.t/1.1/Fri Mar 30 19:02:51 2007// +/06.t/1.1/Fri Mar 30 19:02:51 2007// +/07.t/1.1/Fri Mar 30 19:02:51 2007// +/08.t/1.2/Thu Apr 12 22:40:46 2007// +/09.t/1.1/Fri Mar 30 19:02:51 2007// +/10.t/1.1/Fri Mar 30 19:02:51 2007// +/11.t/1.1/Fri Mar 30 19:02:51 2007// +D diff --git a/src/regress/sys/ffs/tests/chmod/CVS/Repository b/src/regress/sys/ffs/tests/chmod/CVS/Repository new file mode 100644 index 000000000..688be21f8 --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests/chmod diff --git a/src/regress/sys/ffs/tests/chmod/CVS/Root b/src/regress/sys/ffs/tests/chmod/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/chmod/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/tests/chown/00.t b/src/regress/sys/ffs/tests/chown/00.t new file mode 100644 index 000000000..3a251179c --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/00.t @@ -0,0 +1,277 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chown/00.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chown changes ownership" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n2} 0755 +cdir=`pwd` +cd ${n2} + +# super-user can always modify ownership +# 2 +expect 0 create ${n0} 0644 +expect 0 chown ${n0} 123 456 +expect 123,456 lstat ${n0} uid,gid +expect 0 chown ${n0} 0 0 +expect 0,0 lstat ${n0} uid,gid +expect 0 unlink ${n0} +# 8 +expect 0 mkfifo ${n0} 0644 +expect 0 chown ${n0} 123 456 +expect 123,456 lstat ${n0} uid,gid +expect 0 chown ${n0} 0 0 +expect 0,0 lstat ${n0} uid,gid +expect 0 unlink ${n0} +# 14 +expect 0 mkdir ${n0} 0755 +expect 0 chown ${n0} 123 456 +expect 123,456 lstat ${n0} uid,gid +expect 0 chown ${n0} 0 0 +expect 0,0 lstat ${n0} uid,gid +expect 0 rmdir ${n0} +# 20 +expect 0 create ${n0} 0644 +expect 0 symlink ${n0} ${n1} +expect 0 chown ${n1} 123 456 +expect 123,456 stat ${n1} uid,gid +expect 123,456 stat ${n0} uid,gid +expect 0 lchown ${n1} 135 579 +expect 135,579 lstat ${n1} uid,gid +expect 123,456 stat ${n1} uid,gid +expect 123,456 stat ${n0} uid,gid +expect 0 unlink ${n0} +expect 0 unlink ${n1} + +# non-super-user can modify file group if he is owner of a file and +# gid he is setting is in his groups list. +# 31 +expect 0 create ${n0} 0644 +expect 0 chown ${n0} 65534 65533 +expect 65534,65533 lstat ${n0} uid,gid +expect 0 -u 65534 -g 65532,65531 chown ${n0} -1 65532 +expect 65534,65532 lstat ${n0} uid,gid +expect 0 -u 65534 -g 65532,65531 chown ${n0} 65534 65531 +expect 65534,65531 lstat ${n0} uid,gid +expect 0 unlink ${n0} + +# chown(2) return 0 if user is not owner of a file, but chown(2) is called +# with both uid and gid equal to -1. +# 39 +expect 0 create ${n0} 0644 +expect 0 chown ${n0} 65534 65533 +expect 0 -u 65532 -g 65531 chown ${n0} -1 -1 +expect 0 unlink ${n0} + +# when super-user calls chown(2), set-uid and set-gid bits are not removed. +# 43 +expect 0 create ${n0} 0644 +expect 0 chown ${n0} 65534 65533 +expect 0 chmod ${n0} 06555 +expect 06555 lstat ${n0} mode +expect 0 chown ${n0} 65532 65531 +expect 06555 lstat ${n0} mode +expect 0 unlink ${n0} +# 50 +expect 0 create ${n0} 0644 +expect 0 chown ${n0} 0 0 +expect 0 chmod ${n0} 06555 +expect 06555 lstat ${n0} mode +expect 0 chown ${n0} 65534 65533 +expect 06555 lstat ${n0} mode +expect 0 unlink ${n0} +# 57 +expect 0 create ${n0} 0644 +expect 0 chown ${n0} 65534 65533 +expect 0 chmod ${n0} 06555 +expect 06555 lstat ${n0} mode +expect 0 chown ${n0} 0 0 +expect 06555 lstat ${n0} mode +expect 0 unlink ${n0} + +# when non-super-user calls chown(2) successfully, set-uid and set-gid bits are +# removed, except when both uid and gid are equal to -1. +# 64 +expect 0 create ${n0} 0644 +expect 0 chown ${n0} 65534 65533 +expect 0 chmod ${n0} 06555 +expect 06555 lstat ${n0} mode +expect 0 -u 65534 -g 65533,65532 chown ${n0} 65534 65532 +expect 0555,65534,65532 lstat ${n0} mode,uid,gid +expect 0 chmod ${n0} 06555 +expect 06555 lstat ${n0} mode +expect 0 -u 65534 -g 65533,65532 chown ${n0} -1 65533 +expect 0555,65534,65533 lstat ${n0} mode,uid,gid +expect 0 chmod ${n0} 06555 +expect 06555 lstat ${n0} mode +expect 0 -u 65534 -g 65533,65532 chown ${n0} -1 -1 +expect 06555,65534,65533 lstat ${n0} mode,uid,gid +expect 0 unlink ${n0} +# 79 +expect 0 mkdir ${n0} 0755 +expect 0 chown ${n0} 65534 65533 +expect 0 chmod ${n0} 06555 +expect 06555 lstat ${n0} mode +expect 0 -u 65534 -g 65533,65532 chown ${n0} 65534 65532 +expect 0555,65534,65532 lstat ${n0} mode,uid,gid +expect 0 chmod ${n0} 06555 +expect 06555 lstat ${n0} mode +expect 0 -u 65534 -g 65533,65532 chown ${n0} -1 65533 +expect 0555,65534,65533 lstat ${n0} mode,uid,gid +expect 0 chmod ${n0} 06555 +expect 06555 lstat ${n0} mode +expect 0 -u 65534 -g 65533,65532 chown ${n0} -1 -1 +expect 06555,65534,65533 lstat ${n0} mode,uid,gid +expect 0 rmdir ${n0} + +# successful chown(2) call (except uid and gid equal to -1) updates ctime. +# 109 +expect 0 create ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 chown ${n0} 65534 65533 +expect 65534,65533 lstat ${n0} uid,gid +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n0} +# 114 +expect 0 mkdir ${n0} 0755 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 chown ${n0} 65534 65533 +expect 65534,65533 lstat ${n0} uid,gid +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 rmdir ${n0} +# 119 +expect 0 mkfifo ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 chown ${n0} 65534 65533 +expect 65534,65533 lstat ${n0} uid,gid +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n0} +# 124 +expect 0 symlink ${n1} ${n0} +ctime1=`${FSTEST} lstat ${n0} ctime` +sleep 1 +expect 0 lchown ${n0} 65534 65533 +expect 65534,65533 lstat ${n0} uid,gid +ctime2=`${FSTEST} lstat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n0} +# 129 +expect 0 create ${n0} 0644 +expect 0 chown ${n0} 65534 65533 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 -u 65534 -g 65532 chown ${n0} 65534 65532 +expect 65534,65532 lstat ${n0} uid,gid +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n0} +# 135 +expect 0 mkdir ${n0} 0755 +expect 0 chown ${n0} 65534 65533 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 -u 65534 -g 65532 chown ${n0} 65534 65532 +expect 65534,65532 lstat ${n0} uid,gid +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 rmdir ${n0} +# 141 +expect 0 mkfifo ${n0} 0644 +expect 0 chown ${n0} 65534 65533 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 chown ${n0} 65534 65533 +expect 0 -u 65534 -g 65532 chown ${n0} 65534 65532 +expect 65534,65532 lstat ${n0} uid,gid +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n0} +# 148 +expect 0 symlink ${n1} ${n0} +expect 0 lchown ${n0} 65534 65533 +ctime1=`${FSTEST} lstat ${n0} ctime` +sleep 1 +expect 0 -u 65534 -g 65532 lchown ${n0} 65534 65532 +expect 65534,65532 lstat ${n0} uid,gid +ctime2=`${FSTEST} lstat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n0} +# 154 +expect 0 create ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 chown ${n0} -1 -1 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} +# 158 +expect 0 mkdir ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 chown ${n0} -1 -1 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 rmdir ${n0} +# 162 +expect 0 mkfifo ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 chown ${n0} -1 -1 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} +# 166 +expect 0 symlink ${n1} ${n0} +ctime1=`${FSTEST} lstat ${n0} ctime` +sleep 1 +expect 0 lchown ${n0} -1 -1 +ctime2=`${FSTEST} lstat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} + +# unsuccessful chown(2) does not update ctime. +# 170 +expect 0 create ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect EPERM -u 65534 chown ${n0} 65534 -1 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} +# 174 +expect 0 mkdir ${n0} 0755 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect EPERM -u 65534 -g 65534 chown ${n0} -1 65534 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 rmdir ${n0} +# 178 +expect 0 mkfifo ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect EPERM -u 65534 -g 65534 chown ${n0} 65534 65534 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} +# 182 +expect 0 symlink ${n1} ${n0} +ctime1=`${FSTEST} lstat ${n0} ctime` +sleep 1 +expect EPERM -u 65534 -g 65534 lchown ${n0} 65534 65534 +ctime2=`${FSTEST} lstat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} + +# 186 +cd ${cdir} +expect 0 rmdir ${n2} diff --git a/src/regress/sys/ffs/tests/chown/01.t b/src/regress/sys/ffs/tests/chown/01.t new file mode 100644 index 000000000..8bb1c5aec --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/01.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chown/01.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chown returns ENOTDIR if a component of the path prefix is not a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect ENOTDIR chown ${n0}/${n1}/test 65534 65534 +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chown/02.t b/src/regress/sys/ffs/tests/chown/02.t new file mode 100644 index 000000000..34ea20688 --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/02.t @@ -0,0 +1,9 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chown/02.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chown returns ENAMETOOLONG if a component of a pathname exceeded 255 characters" +expect 0 create ${name255} 0644 +expect 0 chown ${name255} 65534 65534 +expect 65534,65534 stat ${name255} uid,gid +expect 0 unlink ${name255} +expect ENAMETOOLONG chown ${name256} 65533 65533 diff --git a/src/regress/sys/ffs/tests/chown/03.t b/src/regress/sys/ffs/tests/chown/03.t new file mode 100644 index 000000000..61ce2336f --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/03.t @@ -0,0 +1,17 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chown/03.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chown returns ENAMETOOLONG if an entire path name exceeded 1023 characters" + +expect 0 mkdir ${name255} 0755 +expect 0 mkdir ${name255}/${name255} 0755 +expect 0 mkdir ${name255}/${name255}/${name255} 0755 +expect 0 mkdir ${path1021} 0755 +expect 0 create ${path1023} 0644 +expect 0 chown ${path1023} 65534 65534 +expect 0 unlink ${path1023} +expect ENAMETOOLONG chown ${path1024} 65533 65533 +expect 0 rmdir ${path1021} +expect 0 rmdir ${name255}/${name255}/${name255} +expect 0 rmdir ${name255}/${name255} +expect 0 rmdir ${name255} diff --git a/src/regress/sys/ffs/tests/chown/04.t b/src/regress/sys/ffs/tests/chown/04.t new file mode 100644 index 000000000..5cdf37986 --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/04.t @@ -0,0 +1,12 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chown/04.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chown returns ENOENT if the named file does not exist" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect ENOENT chown ${n0}/${n1}/test 65534 65534 +expect ENOENT chown ${n0}/${n1} 65534 65534 +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chown/05.t b/src/regress/sys/ffs/tests/chown/05.t new file mode 100644 index 000000000..d469f45b1 --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/05.t @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chown/05.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chown returns EACCES when search permission is denied for a component of the path prefix" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644 +expect 0 -u 65534 -g 65533,65534 chown ${n1}/${n2} -1 65533 +expect 65534,65533 -u 65534 -g 65534 stat ${n1}/${n2} uid,gid +expect 0 chmod ${n1} 0644 +expect EACCES -u 65534 -g 65533,65534 chown ${n1}/${n2} -1 65534 +expect 0 chmod ${n1} 0755 +expect 65534,65533 -u 65534 -g 65534 stat ${n1}/${n2} uid,gid +expect 0 -u 65534 -g 65533,65534 chown ${n1}/${n2} -1 65534 +expect 65534,65534 -u 65534 -g 65534 stat ${n1}/${n2} uid,gid +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chown/06.t b/src/regress/sys/ffs/tests/chown/06.t new file mode 100644 index 000000000..88999d8f0 --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/06.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chown/06.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chown returns ELOOP if too many symbolic links were encountered in translating the pathname" + +n0=`namegen` +n1=`namegen` + +expect 0 symlink ${n0} ${n1} +expect 0 symlink ${n1} ${n0} +expect ELOOP chown ${n0}/test 65534 65534 +expect ELOOP chown ${n1}/test 65534 65534 +expect 0 unlink ${n0} +expect 0 unlink ${n1} diff --git a/src/regress/sys/ffs/tests/chown/07.t b/src/regress/sys/ffs/tests/chown/07.t new file mode 100644 index 000000000..0aed7c2ed --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/07.t @@ -0,0 +1,23 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chown/07.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chown returns EPERM if the operation would change the ownership, but the effective user ID is not the super-user and the process is not an owner of the file" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644 +expect EPERM -u 65534 -g 65534 chown ${n1}/${n2} 65533 65533 +expect EPERM -u 65533 -g 65533 chown ${n1}/${n2} 65534 65534 +expect EPERM -u 65533 -g 65533 chown ${n1}/${n2} 65533 65533 +expect EPERM -u 65534 -g 65534 chown ${n1}/${n2} -1 65533 +expect 0 unlink ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chown/08.t b/src/regress/sys/ffs/tests/chown/08.t new file mode 100644 index 000000000..4fe7b69b9 --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/08.t @@ -0,0 +1,34 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chown/08.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chown returns EPERM if the named file has its immutable or append-only flag set" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM chown ${n0} 65534 65534 +expect 0 chflags ${n0} none +expect 0 chown ${n0} 65534 65534 +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM chown ${n0} 65534 65534 +expect 0 chflags ${n0} none +expect 0 chown ${n0} 65534 65534 +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} SF_APPEND +expect EPERM chown ${n0} 65534 65534 +expect 0 chflags ${n0} none +expect 0 chown ${n0} 65534 65534 +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} UF_APPEND +expect EPERM chown ${n0} 65534 65534 +expect 0 chflags ${n0} none +expect 0 chown ${n0} 65534 65534 +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/chown/09.t b/src/regress/sys/ffs/tests/chown/09.t new file mode 100644 index 000000000..90f5350df --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/09.t @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chown/09.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chown returns EROFS if the named file resides on a read-only file system" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 create ${n0}/${n1} 0644 +expect 0 chown ${n0}/${n1} 65534 65534 +expect 65534,65534 stat ${n0}/${n1} uid,gid +mount -ur /dev/svnd1c +expect EROFS chown ${n0}/${n1} 65533 65533 +expect 65534,65534 stat ${n0}/${n1} uid,gid +mount -uw /dev/svnd1c +expect 0 chown ${n0}/${n1} 65533 65533 +expect 65533,65533 stat ${n0}/${n1} uid,gid +expect 0 unlink ${n0}/${n1} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/chown/10.t b/src/regress/sys/ffs/tests/chown/10.t new file mode 100644 index 000000000..bc429f222 --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/10.t @@ -0,0 +1,7 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/chown/10.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ + +desc="chown returns EFAULT if the path argument points outside the process's allocated address space" + +expect EFAULT chown NULL 65534 65534 +expect EFAULT chown DEADCODE 65534 65534 diff --git a/src/regress/sys/ffs/tests/chown/CVS/Entries b/src/regress/sys/ffs/tests/chown/CVS/Entries new file mode 100644 index 000000000..e9a41d01f --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/CVS/Entries @@ -0,0 +1,12 @@ +/00.t/1.2/Sun Nov 25 16:40:04 2007// +/01.t/1.1/Fri Mar 30 19:02:51 2007// +/02.t/1.1/Fri Mar 30 19:02:51 2007// +/03.t/1.1/Fri Mar 30 19:02:51 2007// +/04.t/1.1/Fri Mar 30 19:02:51 2007// +/05.t/1.1/Fri Mar 30 19:02:51 2007// +/06.t/1.1/Fri Mar 30 19:02:51 2007// +/07.t/1.1/Fri Mar 30 19:02:51 2007// +/08.t/1.2/Thu Apr 12 22:40:46 2007// +/09.t/1.1/Fri Mar 30 19:02:51 2007// +/10.t/1.1/Fri Mar 30 19:02:51 2007// +D diff --git a/src/regress/sys/ffs/tests/chown/CVS/Repository b/src/regress/sys/ffs/tests/chown/CVS/Repository new file mode 100644 index 000000000..5e7508d47 --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests/chown diff --git a/src/regress/sys/ffs/tests/chown/CVS/Root b/src/regress/sys/ffs/tests/chown/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/chown/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/tests/link/00.t b/src/regress/sys/ffs/tests/link/00.t new file mode 100644 index 000000000..85c572f55 --- /dev/null +++ b/src/regress/sys/ffs/tests/link/00.t @@ -0,0 +1,146 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/00.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link creates hardlinks" + +n0=`namegen` +n1=`namegen` +n2=`namegen` +n3=`namegen` + +expect 0 mkdir ${n3} 0755 +cdir=`pwd` +cd ${n3} + +expect 0 create ${n0} 0644 +expect regular,0644,1 lstat ${n0} type,mode,nlink + +expect 0 link ${n0} ${n1} +expect regular,0644,2 lstat ${n0} type,mode,nlink +expect regular,0644,2 lstat ${n1} type,mode,nlink + +expect 0 link ${n1} ${n2} +expect regular,0644,3 lstat ${n0} type,mode,nlink +expect regular,0644,3 lstat ${n1} type,mode,nlink +expect regular,0644,3 lstat ${n2} type,mode,nlink + +expect 0 chmod ${n1} 0201 +expect 0 chown ${n1} 65534 65533 + +expect regular,0201,3,65534,65533 lstat ${n0} type,mode,nlink,uid,gid +expect regular,0201,3,65534,65533 lstat ${n1} type,mode,nlink,uid,gid +expect regular,0201,3,65534,65533 lstat ${n2} type,mode,nlink,uid,gid + +expect 0 unlink ${n0} +expect ENOENT lstat ${n0} type,mode,nlink,uid,gid +expect regular,0201,2,65534,65533 lstat ${n1} type,mode,nlink,uid,gid +expect regular,0201,2,65534,65533 lstat ${n2} type,mode,nlink,uid,gid + +expect 0 unlink ${n2} +expect ENOENT lstat ${n0} type,mode,nlink,uid,gid +expect regular,0201,1,65534,65533 lstat ${n1} type,mode,nlink,uid,gid +expect ENOENT lstat ${n2} type,mode,nlink,uid,gid + +expect 0 unlink ${n1} +expect ENOENT lstat ${n0} type,mode,nlink,uid,gid +expect ENOENT lstat ${n1} type,mode,nlink,uid,gid +expect ENOENT lstat ${n2} type,mode,nlink,uid,gid + +expect 0 mkfifo ${n0} 0644 +expect fifo,0644,1 lstat ${n0} type,mode,nlink + +expect 0 link ${n0} ${n1} +expect fifo,0644,2 lstat ${n0} type,mode,nlink +expect fifo,0644,2 lstat ${n1} type,mode,nlink + +expect 0 link ${n1} ${n2} +expect fifo,0644,3 lstat ${n0} type,mode,nlink +expect fifo,0644,3 lstat ${n1} type,mode,nlink +expect fifo,0644,3 lstat ${n2} type,mode,nlink + +expect 0 chmod ${n1} 0201 +expect 0 chown ${n1} 65534 65533 + +expect fifo,0201,3,65534,65533 lstat ${n0} type,mode,nlink,uid,gid +expect fifo,0201,3,65534,65533 lstat ${n1} type,mode,nlink,uid,gid +expect fifo,0201,3,65534,65533 lstat ${n2} type,mode,nlink,uid,gid + +expect 0 unlink ${n0} +expect ENOENT lstat ${n0} type,mode,nlink,uid,gid +expect fifo,0201,2,65534,65533 lstat ${n1} type,mode,nlink,uid,gid +expect fifo,0201,2,65534,65533 lstat ${n2} type,mode,nlink,uid,gid + +expect 0 unlink ${n2} +expect ENOENT lstat ${n0} type,mode,nlink,uid,gid +expect fifo,0201,1,65534,65533 lstat ${n1} type,mode,nlink,uid,gid +expect ENOENT lstat ${n2} type,mode,nlink,uid,gid + +expect 0 unlink ${n1} +expect ENOENT lstat ${n0} type,mode,nlink,uid,gid +expect ENOENT lstat ${n1} type,mode,nlink,uid,gid +expect ENOENT lstat ${n2} type,mode,nlink,uid,gid + +# successful link(2) updates ctime. +expect 0 create ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +dctime1=`${FSTEST} stat . ctime` +dmtime1=`${FSTEST} stat . mtime` +sleep 1 +expect 0 link ${n0} ${n1} +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +dctime2=`${FSTEST} stat . ctime` +test_check $dctime1 -lt $dctime2 +dmtime2=`${FSTEST} stat . mtime` +test_check $dctime1 -lt $dmtime2 +expect 0 unlink ${n0} +expect 0 unlink ${n1} + +expect 0 mkfifo ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +dctime1=`${FSTEST} stat . ctime` +dmtime1=`${FSTEST} stat . mtime` +sleep 1 +expect 0 link ${n0} ${n1} +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +dctime2=`${FSTEST} stat . ctime` +test_check $dctime1 -lt $dctime2 +dmtime2=`${FSTEST} stat . mtime` +test_check $dctime1 -lt $dmtime2 +expect 0 unlink ${n0} +expect 0 unlink ${n1} + +# unsuccessful link(2) does not update ctime. +expect 0 create ${n0} 0644 +expect 0 chown ${n0} 65534 -1 +ctime1=`${FSTEST} stat ${n0} ctime` +dctime1=`${FSTEST} stat . ctime` +dmtime1=`${FSTEST} stat . mtime` +sleep 1 +expect EACCES -u 65534 link ${n0} ${n1} +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +dctime2=`${FSTEST} stat . ctime` +test_check $dctime1 -eq $dctime2 +dmtime2=`${FSTEST} stat . mtime` +test_check $dctime1 -eq $dmtime2 +expect 0 unlink ${n0} + +expect 0 mkfifo ${n0} 0644 +expect 0 chown ${n0} 65534 -1 +ctime1=`${FSTEST} stat ${n0} ctime` +dctime1=`${FSTEST} stat . ctime` +dmtime1=`${FSTEST} stat . mtime` +sleep 1 +expect EACCES -u 65534 link ${n0} ${n1} +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +dctime2=`${FSTEST} stat . ctime` +test_check $dctime1 -eq $dctime2 +dmtime2=`${FSTEST} stat . mtime` +test_check $dctime1 -eq $dmtime2 +expect 0 unlink ${n0} + +cd ${cdir} +expect 0 rmdir ${n3} diff --git a/src/regress/sys/ffs/tests/link/01.t b/src/regress/sys/ffs/tests/link/01.t new file mode 100644 index 000000000..766fa2409 --- /dev/null +++ b/src/regress/sys/ffs/tests/link/01.t @@ -0,0 +1,17 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/01.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns ENOTDIR if a component of either path prefix is not a directory" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect ENOTDIR link ${n0}/${n1}/test ${n0}/${n2} +expect 0 create ${n0}/${n2} 0644 +expect ENOTDIR link ${n0}/${n2} ${n0}/${n1}/test +expect 0 unlink ${n0}/${n1} +expect 0 unlink ${n0}/${n2} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/link/02.t b/src/regress/sys/ffs/tests/link/02.t new file mode 100644 index 000000000..807a5a4c5 --- /dev/null +++ b/src/regress/sys/ffs/tests/link/02.t @@ -0,0 +1,18 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/02.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns ENAMETOOLONG if a component of either pathname exceeded 255 characters" + +n0=`namegen` + +expect 0 create ${name255} 0644 +expect 0 link ${name255} ${n0} +expect 0 unlink ${name255} +expect 0 link ${n0} ${name255} +expect 0 unlink ${n0} +expect 0 unlink ${name255} + +expect 0 create ${n0} 0644 +expect ENAMETOOLONG link ${n0} ${name256} +expect 0 unlink ${n0} +expect ENAMETOOLONG link ${name256} ${n0} diff --git a/src/regress/sys/ffs/tests/link/03.t b/src/regress/sys/ffs/tests/link/03.t new file mode 100644 index 000000000..0ea265a2f --- /dev/null +++ b/src/regress/sys/ffs/tests/link/03.t @@ -0,0 +1,23 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/03.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns ENAMETOOLONG if an entire length of either path name exceeded 1023 characters" + +n0=`namegen` + +expect 0 mkdir ${name255} 0755 +expect 0 mkdir ${name255}/${name255} 0755 +expect 0 mkdir ${name255}/${name255}/${name255} 0755 +expect 0 mkdir ${path1021} 0755 +expect 0 create ${path1023} 0644 +expect 0 link ${path1023} ${n0} +expect 0 unlink ${path1023} +expect 0 link ${n0} ${path1023} +expect 0 unlink ${path1023} +expect ENAMETOOLONG link ${n0} ${path1024} +expect 0 unlink ${n0} +expect ENAMETOOLONG link ${path1024} ${n0} +expect 0 rmdir ${path1021} +expect 0 rmdir ${name255}/${name255}/${name255} +expect 0 rmdir ${name255}/${name255} +expect 0 rmdir ${name255} diff --git a/src/regress/sys/ffs/tests/link/04.t b/src/regress/sys/ffs/tests/link/04.t new file mode 100644 index 000000000..4da80462c --- /dev/null +++ b/src/regress/sys/ffs/tests/link/04.t @@ -0,0 +1,15 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/04.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns ENOENT if a component of either path prefix does not exist" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +expect ENOENT link ${n0}/${n1}/test ${n2} +expect 0 create ${n2} 0644 +expect ENOENT link ${n2} ${n0}/${n1}/test +expect 0 unlink ${n2} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/link/05.t b/src/regress/sys/ffs/tests/link/05.t new file mode 100644 index 000000000..63b68b4a6 --- /dev/null +++ b/src/regress/sys/ffs/tests/link/05.t @@ -0,0 +1,31 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/05.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns EMLINK if the link count of the file named by name1 would exceed 32767" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs -i 1 /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 create ${n0}/${n1} 0644 +i=1 +while :; do + link ${n0}/${n1} ${n0}/${i} >/dev/null 2>&1 + if [ $? -ne 0 ]; then + break + fi + i=`expr $i + 1` +done +test_check $i -eq 32767 + +expect EMLINK link ${n0}/${n1} ${n0}/${n2} + +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/link/06.t b/src/regress/sys/ffs/tests/link/06.t new file mode 100644 index 000000000..643c008a4 --- /dev/null +++ b/src/regress/sys/ffs/tests/link/06.t @@ -0,0 +1,38 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/06.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns EACCES when a component of either path prefix denies search permission" + +n0=`namegen` +n1=`namegen` +n2=`namegen` +n3=`namegen` +n4=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} + +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 mkdir ${n2} 0755 +expect 0 chown ${n2} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n3} 0644 + +expect 0 -u 65534 -g 65534 link ${n1}/${n3} ${n2}/${n4} +expect 0 -u 65534 -g 65534 unlink ${n2}/${n4} + +expect 0 chmod ${n1} 0644 +expect EACCES -u 65534 -g 65534 link ${n1}/${n3} ${n1}/${n4} +expect EACCES -u 65534 -g 65534 link ${n1}/${n3} ${n2}/${n4} + +expect 0 chmod ${n1} 0755 +expect 0 chmod ${n2} 0644 +expect EACCES -u 65534 -g 65534 link ${n1}/${n3} ${n2}/${n4} + +expect 0 unlink ${n1}/${n3} +expect 0 rmdir ${n1} +expect 0 rmdir ${n2} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/link/07.t b/src/regress/sys/ffs/tests/link/07.t new file mode 100644 index 000000000..0c1367c92 --- /dev/null +++ b/src/regress/sys/ffs/tests/link/07.t @@ -0,0 +1,36 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/07.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns EACCES when the requested link requires writing in a directory with a mode that denies write permission" + +n0=`namegen` +n1=`namegen` +n2=`namegen` +n3=`namegen` +n4=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} + +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 mkdir ${n2} 0755 +expect 0 chown ${n2} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n3} 0644 + +expect 0 -u 65534 -g 65534 link ${n1}/${n3} ${n2}/${n4} +expect 0 -u 65534 -g 65534 unlink ${n2}/${n4} + +expect 0 chmod ${n2} 0555 +expect EACCES -u 65534 -g 65534 link ${n1}/${n3} ${n2}/${n4} +expect 0 chmod ${n1} 0555 +expect EACCES -u 65534 -g 65534 link ${n1}/${n3} ${n1}/${n4} +expect 0 chmod ${n1} 0755 + +expect 0 unlink ${n1}/${n3} +expect 0 rmdir ${n1} +expect 0 rmdir ${n2} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/link/08.t b/src/regress/sys/ffs/tests/link/08.t new file mode 100644 index 000000000..8fdea0895 --- /dev/null +++ b/src/regress/sys/ffs/tests/link/08.t @@ -0,0 +1,19 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/08.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns ELOOP if too many symbolic links were encountered in translating one of the pathnames" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 symlink ${n0} ${n1} +expect 0 symlink ${n1} ${n0} +expect ELOOP link ${n0}/test ${n2} +expect ELOOP link ${n1}/test ${n2} +expect 0 create ${n2} 0644 +expect ELOOP link ${n2} ${n0}/test +expect ELOOP link ${n2} ${n1}/test +expect 0 unlink ${n0} +expect 0 unlink ${n1} +expect 0 unlink ${n2} diff --git a/src/regress/sys/ffs/tests/link/09.t b/src/regress/sys/ffs/tests/link/09.t new file mode 100644 index 000000000..679276f2e --- /dev/null +++ b/src/regress/sys/ffs/tests/link/09.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/09.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns ENOENT if the source file does not exist" + +n0=`namegen` +n1=`namegen` + +expect 0 create ${n0} 0644 +expect 0 link ${n0} ${n1} +expect 0 unlink ${n0} +expect 0 unlink ${n1} +expect ENOENT link ${n0} ${n1} diff --git a/src/regress/sys/ffs/tests/link/10.t b/src/regress/sys/ffs/tests/link/10.t new file mode 100644 index 000000000..98fbeabab --- /dev/null +++ b/src/regress/sys/ffs/tests/link/10.t @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/10.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns EEXIST if the destination file does exist" + +n0=`namegen` +n1=`namegen` + +expect 0 create ${n0} 0644 + +expect 0 create ${n1} 0644 +expect EEXIST link ${n0} ${n1} +expect 0 unlink ${n1} + +expect 0 mkdir ${n1} 0755 +expect EEXIST link ${n0} ${n1} +expect 0 rmdir ${n1} + +expect 0 symlink test ${n1} +expect EEXIST link ${n0} ${n1} +expect 0 unlink ${n1} + +expect 0 mkfifo ${n1} 0644 +expect EEXIST link ${n0} ${n1} +expect 0 unlink ${n1} + +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/link/11.t b/src/regress/sys/ffs/tests/link/11.t new file mode 100644 index 000000000..a839b65ce --- /dev/null +++ b/src/regress/sys/ffs/tests/link/11.t @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/11.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns EPERM if the source file is a directory" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +expect EPERM link ${n0} ${n1} +expect 0 rmdir ${n0} + +expect 0 mkdir ${n0} 0755 +expect 0 chown ${n0} 65534 65534 +cdir=`pwd` +cd ${n0} + +expect 0 -u 65534 -g 65534 mkdir ${n1} 0755 +expect EPERM -u 65534 -g 65534 link ${n1} ${n2} +expect 0 -u 65534 -g 65534 rmdir ${n1} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/link/12.t b/src/regress/sys/ffs/tests/link/12.t new file mode 100644 index 000000000..f5e1813eb --- /dev/null +++ b/src/regress/sys/ffs/tests/link/12.t @@ -0,0 +1,38 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/12.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns EPERM if the source file has its immutable or append-only flag set" + +n0=`namegen` +n1=`namegen` + +expect 0 create ${n0} 0644 + +expect 0 link ${n0} ${n1} +expect 0 unlink ${n1} + +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM link ${n0} ${n1} +expect 0 chflags ${n0} none +expect 0 link ${n0} ${n1} +expect 0 unlink ${n1} + +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM link ${n0} ${n1} +expect 0 chflags ${n0} none +expect 0 link ${n0} ${n1} +expect 0 unlink ${n1} + +expect 0 chflags ${n0} SF_APPEND +expect EPERM link ${n0} ${n1} +expect 0 chflags ${n0} none +expect 0 link ${n0} ${n1} +expect 0 unlink ${n1} + +expect 0 chflags ${n0} UF_APPEND +expect EPERM link ${n0} ${n1} +expect 0 chflags ${n0} none +expect 0 link ${n0} ${n1} +expect 0 unlink ${n1} + +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/link/13.t b/src/regress/sys/ffs/tests/link/13.t new file mode 100644 index 000000000..2328a0da3 --- /dev/null +++ b/src/regress/sys/ffs/tests/link/13.t @@ -0,0 +1,39 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/13.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns EPERM if the parent directory of the destination file has its immutable flag set" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 + +expect 0 create ${n0}/${n1} 0644 +expect 0 link ${n0}/${n1} ${n0}/${n2} +expect 0 unlink ${n0}/${n2} + +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM link ${n0}/${n1} ${n0}/${n2} +expect 0 chflags ${n0} none +expect 0 link ${n0}/${n1} ${n0}/${n2} +expect 0 unlink ${n0}/${n2} + +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM link ${n0}/${n1} ${n0}/${n2} +expect 0 chflags ${n0} none +expect 0 link ${n0}/${n1} ${n0}/${n2} +expect 0 unlink ${n0}/${n2} + +expect 0 chflags ${n0} SF_APPEND +expect 0 link ${n0}/${n1} ${n0}/${n2} +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n2} + +expect 0 chflags ${n0} UF_APPEND +expect 0 link ${n0}/${n1} ${n0}/${n2} +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n2} + +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/link/14.t b/src/regress/sys/ffs/tests/link/14.t new file mode 100644 index 000000000..95372da65 --- /dev/null +++ b/src/regress/sys/ffs/tests/link/14.t @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/14.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns EXDEV if the source and the destination files are on different file systems" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 create ${n0}/${n1} 0644 +expect EXDEV link ${n0}/${n1} ${n2} +expect 0 unlink ${n0}/${n1} +expect 0 create ${n1} 0644 +expect EXDEV link ${n1} ${n0}/${n2} +expect 0 unlink ${n1} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/link/15.t b/src/regress/sys/ffs/tests/link/15.t new file mode 100644 index 000000000..cbe19522d --- /dev/null +++ b/src/regress/sys/ffs/tests/link/15.t @@ -0,0 +1,28 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/15.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns ENOSPC if the directory in which the entry for the new link is being placed cannot be extended because there is no space left on the file system containing the directory" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=256 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 create ${n0}/${n1} 0644 +i=0 +while :; do + link ${n0}/${n1} ${n0}/${i} >/dev/null 2>&1 + if [ $? -ne 0 ]; then + break + fi + i=`expr $i + 1` +done +expect ENOSPC link ${n0}/${n1} ${n0}/${n2} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/link/16.t b/src/regress/sys/ffs/tests/link/16.t new file mode 100644 index 000000000..6cfe6de73 --- /dev/null +++ b/src/regress/sys/ffs/tests/link/16.t @@ -0,0 +1,29 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/16.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns EROFS if the requested link requires writing in a directory on a read-only file system" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 create ${n0}/${n1} 0644 + +expect 0 link ${n0}/${n1} ${n0}/${n2} +expect 0 unlink ${n0}/${n2} +mount -ur /dev/svnd1c +expect EROFS link ${n0}/${n1} ${n0}/${n2} +mount -uw /dev/svnd1c +expect 0 link ${n0}/${n1} ${n0}/${n2} +expect 0 unlink ${n0}/${n2} + +expect 0 unlink ${n0}/${n1} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/link/17.t b/src/regress/sys/ffs/tests/link/17.t new file mode 100644 index 000000000..cb472ba4a --- /dev/null +++ b/src/regress/sys/ffs/tests/link/17.t @@ -0,0 +1,15 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/link/17.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="link returns EFAULT if one of the pathnames specified is outside the process's allocated address space" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect EFAULT link ${n0} NULL +expect EFAULT link ${n0} DEADCODE +expect 0 unlink ${n0} +expect EFAULT link NULL ${n0} +expect EFAULT link DEADCODE ${n0} +expect EFAULT link NULL DEADCODE +expect EFAULT link DEADCODE NULL diff --git a/src/regress/sys/ffs/tests/link/CVS/Entries b/src/regress/sys/ffs/tests/link/CVS/Entries new file mode 100644 index 000000000..8e5fee79e --- /dev/null +++ b/src/regress/sys/ffs/tests/link/CVS/Entries @@ -0,0 +1,19 @@ +/00.t/1.1/Fri Mar 30 19:02:51 2007// +/01.t/1.1/Fri Mar 30 19:02:51 2007// +/02.t/1.1/Fri Mar 30 19:02:51 2007// +/03.t/1.1/Fri Mar 30 19:02:51 2007// +/04.t/1.1/Fri Mar 30 19:02:51 2007// +/05.t/1.1/Fri Mar 30 19:02:51 2007// +/06.t/1.1/Fri Mar 30 19:02:51 2007// +/07.t/1.1/Fri Mar 30 19:02:51 2007// +/08.t/1.1/Fri Mar 30 19:02:51 2007// +/09.t/1.1/Fri Mar 30 19:02:51 2007// +/10.t/1.1/Fri Mar 30 19:02:51 2007// +/11.t/1.1/Fri Mar 30 19:02:51 2007// +/12.t/1.2/Thu Apr 12 22:40:46 2007// +/13.t/1.2/Thu Apr 12 22:40:46 2007// +/14.t/1.1/Fri Mar 30 19:02:51 2007// +/15.t/1.1/Fri Mar 30 19:02:51 2007// +/16.t/1.1/Fri Mar 30 19:02:51 2007// +/17.t/1.1/Fri Mar 30 19:02:51 2007// +D diff --git a/src/regress/sys/ffs/tests/link/CVS/Repository b/src/regress/sys/ffs/tests/link/CVS/Repository new file mode 100644 index 000000000..7081b88b5 --- /dev/null +++ b/src/regress/sys/ffs/tests/link/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests/link diff --git a/src/regress/sys/ffs/tests/link/CVS/Root b/src/regress/sys/ffs/tests/link/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/link/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/tests/mkdir/00.t b/src/regress/sys/ffs/tests/mkdir/00.t new file mode 100644 index 000000000..991d825a3 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/00.t @@ -0,0 +1,68 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/00.t,v 1.2 2007/01/25 20:50:02 pjd Exp $ + +desc="mkdir creates directories" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n1} 0755 +cdir=`pwd` +cd ${n1} + +# POSIX: The file permission bits of the new directory shall be initialized from +# mode. These file permission bits of the mode argument shall be modified by the +# process' file creation mask. +expect 0 mkdir ${n0} 0755 +expect dir,0755 lstat ${n0} type,mode +expect 0 rmdir ${n0} +expect 0 mkdir ${n0} 0151 +expect dir,0151 lstat ${n0} type,mode +expect 0 rmdir ${n0} +expect 0 -U 077 mkdir ${n0} 0151 +expect dir,0100 lstat ${n0} type,mode +expect 0 rmdir ${n0} +expect 0 -U 070 mkdir ${n0} 0345 +expect dir,0305 lstat ${n0} type,mode +expect 0 rmdir ${n0} +expect 0 -U 0501 mkdir ${n0} 0345 +expect dir,0244 lstat ${n0} type,mode +expect 0 rmdir ${n0} + +# POSIX: The directory's user ID shall be set to the process' effective user ID. +# The directory's group ID shall be set to the group ID of the parent directory +# or to the effective group ID of the process. +expect 0 chown . 65535 65535 +expect 0 -u 65535 -g 65535 mkdir ${n0} 0755 +expect 65535,65535 lstat ${n0} uid,gid +expect 0 rmdir ${n0} +expect 0 -u 65535 -g 65534 mkdir ${n0} 0755 +expect "65535,6553[45]" lstat ${n0} uid,gid +expect 0 rmdir ${n0} +expect 0 chmod . 0777 +expect 0 -u 65534 -g 65533 mkdir ${n0} 0755 +expect "65534,6553[35]" lstat ${n0} uid,gid +expect 0 rmdir ${n0} + +# POSIX: Upon successful completion, mkdir() shall mark for update the st_atime, +# st_ctime, and st_mtime fields of the directory. Also, the st_ctime and +# st_mtime fields of the directory that contains the new entry shall be marked +# for update. +expect 0 chown . 0 0 +time=`${FSTEST} stat . ctime` +sleep 1 +expect 0 mkdir ${n0} 0755 +atime=`${FSTEST} stat ${n0} atime` +test_check $time -lt $atime +mtime=`${FSTEST} stat ${n0} mtime` +test_check $time -lt $mtime +ctime=`${FSTEST} stat ${n0} ctime` +test_check $time -lt $ctime +mtime=`${FSTEST} stat . mtime` +test_check $time -lt $mtime +ctime=`${FSTEST} stat . ctime` +test_check $time -lt $ctime +expect 0 rmdir ${n0} + +cd ${cdir} +expect 0 rmdir ${n1} diff --git a/src/regress/sys/ffs/tests/mkdir/01.t b/src/regress/sys/ffs/tests/mkdir/01.t new file mode 100644 index 000000000..fb20427c8 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/01.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/01.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkdir returns ENOTDIR if a component of the path prefix is not a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect ENOTDIR mkdir ${n0}/${n1}/test 0755 +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkdir/02.t b/src/regress/sys/ffs/tests/mkdir/02.t new file mode 100644 index 000000000..8235b6ca8 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/02.t @@ -0,0 +1,8 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/02.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkdir returns ENAMETOOLONG if a component of a pathname exceeded 255 characters" + +expect 0 mkdir ${name255} 0755 +expect 0 rmdir ${name255} +expect ENAMETOOLONG mkdir ${name256} 0755 diff --git a/src/regress/sys/ffs/tests/mkdir/03.t b/src/regress/sys/ffs/tests/mkdir/03.t new file mode 100644 index 000000000..e7cb8ee38 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/03.t @@ -0,0 +1,16 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/03.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkdir returns ENAMETOOLONG if an entire path name exceeded 1023 characters" + +expect 0 mkdir ${name255} 0755 +expect 0 mkdir ${name255}/${name255} 0755 +expect 0 mkdir ${name255}/${name255}/${name255} 0755 +expect 0 mkdir ${path1021} 0755 +expect 0 mkdir ${path1023} 0755 +expect 0 rmdir ${path1023} +expect ENAMETOOLONG mkdir ${path1024} 0755 +expect 0 rmdir ${path1021} +expect 0 rmdir ${name255}/${name255}/${name255} +expect 0 rmdir ${name255}/${name255} +expect 0 rmdir ${name255} diff --git a/src/regress/sys/ffs/tests/mkdir/04.t b/src/regress/sys/ffs/tests/mkdir/04.t new file mode 100644 index 000000000..8e8ca46a6 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/04.t @@ -0,0 +1,11 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/04.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkdir returns ENOENT if a component of the path prefix does not exist" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect ENOENT mkdir ${n0}/${n1}/test 0755 +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkdir/05.t b/src/regress/sys/ffs/tests/mkdir/05.t new file mode 100644 index 000000000..aeb982edc --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/05.t @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/05.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkdir returns EACCES when search permission is denied for a component of the path prefix" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 mkdir ${n1}/${n2} 0755 +expect 0 -u 65534 -g 65534 rmdir ${n1}/${n2} +expect 0 chmod ${n1} 0644 +expect EACCES -u 65534 -g 65534 mkdir ${n1}/${n2} 0755 +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 mkdir ${n1}/${n2} 0755 +expect 0 -u 65534 -g 65534 rmdir ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkdir/06.t b/src/regress/sys/ffs/tests/mkdir/06.t new file mode 100644 index 000000000..35479539a --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/06.t @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/06.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkdir returns EACCES when write permission is denied on the parent directory of the directory to be created" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 mkdir ${n1}/${n2} 0755 +expect 0 -u 65534 -g 65534 rmdir ${n1}/${n2} +expect 0 chmod ${n1} 0555 +expect EACCES -u 65534 -g 65534 mkdir ${n1}/${n2} 0755 +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 mkdir ${n1}/${n2} 0755 +expect 0 -u 65534 -g 65534 rmdir ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkdir/07.t b/src/regress/sys/ffs/tests/mkdir/07.t new file mode 100644 index 000000000..340b867c7 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/07.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/07.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkdir returns ELOOP if too many symbolic links were encountered in translating the pathname" + +n0=`namegen` +n1=`namegen` + +expect 0 symlink ${n0} ${n1} +expect 0 symlink ${n1} ${n0} +expect ELOOP mkdir ${n0}/test 0755 +expect ELOOP mkdir ${n1}/test 0755 +expect 0 unlink ${n0} +expect 0 unlink ${n1} diff --git a/src/regress/sys/ffs/tests/mkdir/08.t b/src/regress/sys/ffs/tests/mkdir/08.t new file mode 100644 index 000000000..475b1cb7b --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/08.t @@ -0,0 +1,36 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/08.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkdir returns EPERM if the parent directory of the directory to be created has its immutable flag set" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 + +expect 0 mkdir ${n0}/${n1} 0755 +expect 0 rmdir ${n0}/${n1} + +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM mkdir ${n0}/${n1} 0755 +expect 0 chflags ${n0} none +expect 0 mkdir ${n0}/${n1} 0755 +expect 0 rmdir ${n0}/${n1} + +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM mkdir ${n0}/${n1} 0755 +expect 0 chflags ${n0} none +expect 0 mkdir ${n0}/${n1} 0755 +expect 0 rmdir ${n0}/${n1} + +expect 0 chflags ${n0} SF_APPEND +expect 0 mkdir ${n0}/${n1} 0755 +expect 0 chflags ${n0} none +expect 0 rmdir ${n0}/${n1} + +expect 0 chflags ${n0} UF_APPEND +expect 0 mkdir ${n0}/${n1} 0755 +expect 0 chflags ${n0} none +expect 0 rmdir ${n0}/${n1} + +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkdir/09.t b/src/regress/sys/ffs/tests/mkdir/09.t new file mode 100644 index 000000000..43c13d185 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/09.t @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/09.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkdir returns EROFS if the named file resides on a read-only file system" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 mkdir ${n0}/${n1} 0755 +expect 0 rmdir ${n0}/${n1} +mount -ur /dev/svnd1c +expect EROFS mkdir ${n0}/${n1} 0755 +mount -uw /dev/svnd1c +expect 0 mkdir ${n0}/${n1} 0755 +expect 0 rmdir ${n0}/${n1} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkdir/10.t b/src/regress/sys/ffs/tests/mkdir/10.t new file mode 100644 index 000000000..93d00f26b --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/10.t @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/10.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkdir returns EEXIST if the named file exists" + +n0=`namegen` + +expect 0 mkdir ${n0} 0755 +expect EEXIST mkdir ${n0} 0755 +expect 0 rmdir ${n0} + +expect 0 create ${n0} 0644 +expect EEXIST mkdir ${n0} 0755 +expect 0 unlink ${n0} + +expect 0 symlink test ${n0} +expect EEXIST mkdir ${n0} 0755 +expect 0 unlink ${n0} + +expect 0 mkfifo ${n0} 0644 +expect EEXIST mkdir ${n0} 0755 +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/mkdir/11.t b/src/regress/sys/ffs/tests/mkdir/11.t new file mode 100644 index 000000000..0eeac313d --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/11.t @@ -0,0 +1,26 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/11.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkdir returns ENOSPC if there are no free inodes on the file system on which the directory is being created" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=256 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +i=0 +while :; do + mkdir ${n0}/${i} >/dev/null 2>&1 + if [ $? -ne 0 ]; then + break + fi + i=`expr $i + 1` +done +expect ENOSPC mkdir ${n0}/${n1} 0755 +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkdir/12.t b/src/regress/sys/ffs/tests/mkdir/12.t new file mode 100644 index 000000000..a526a69d9 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/12.t @@ -0,0 +1,7 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkdir/12.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkdir returns EFAULT if the path argument points outside the process's allocated address space" + +expect EFAULT mkdir NULL 0755 +expect EFAULT mkdir DEADCODE 0755 diff --git a/src/regress/sys/ffs/tests/mkdir/CVS/Entries b/src/regress/sys/ffs/tests/mkdir/CVS/Entries new file mode 100644 index 000000000..f368e8398 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/CVS/Entries @@ -0,0 +1,14 @@ +/00.t/1.1/Fri Mar 30 19:02:51 2007// +/01.t/1.1/Fri Mar 30 19:02:51 2007// +/02.t/1.1/Fri Mar 30 19:02:51 2007// +/03.t/1.1/Fri Mar 30 19:02:51 2007// +/04.t/1.1/Fri Mar 30 19:02:51 2007// +/05.t/1.1/Fri Mar 30 19:02:51 2007// +/06.t/1.1/Fri Mar 30 19:02:51 2007// +/07.t/1.1/Fri Mar 30 19:02:51 2007// +/08.t/1.2/Thu Apr 12 22:40:46 2007// +/09.t/1.1/Fri Mar 30 19:02:51 2007// +/10.t/1.1/Fri Mar 30 19:02:51 2007// +/11.t/1.1/Fri Mar 30 19:02:51 2007// +/12.t/1.1/Fri Mar 30 19:02:51 2007// +D diff --git a/src/regress/sys/ffs/tests/mkdir/CVS/Repository b/src/regress/sys/ffs/tests/mkdir/CVS/Repository new file mode 100644 index 000000000..3ea0eb87c --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests/mkdir diff --git a/src/regress/sys/ffs/tests/mkdir/CVS/Root b/src/regress/sys/ffs/tests/mkdir/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/mkdir/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/tests/mkfifo/00.t b/src/regress/sys/ffs/tests/mkfifo/00.t new file mode 100644 index 000000000..be417091b --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/00.t @@ -0,0 +1,68 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/00.t,v 1.2 2007/01/25 20:50:02 pjd Exp $ + +desc="mkfifo creates fifo files" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n1} 0755 +cdir=`pwd` +cd ${n1} + +# POSIX: The file permission bits of the new FIFO shall be initialized from +# mode. The file permission bits of the mode argument shall be modified by the +# process' file creation mask. +expect 0 mkfifo ${n0} 0755 +expect fifo,0755 lstat ${n0} type,mode +expect 0 unlink ${n0} +expect 0 mkfifo ${n0} 0151 +expect fifo,0151 lstat ${n0} type,mode +expect 0 unlink ${n0} +expect 0 -U 077 mkfifo ${n0} 0151 +expect fifo,0100 lstat ${n0} type,mode +expect 0 unlink ${n0} +expect 0 -U 070 mkfifo ${n0} 0345 +expect fifo,0305 lstat ${n0} type,mode +expect 0 unlink ${n0} +expect 0 -U 0501 mkfifo ${n0} 0345 +expect fifo,0244 lstat ${n0} type,mode +expect 0 unlink ${n0} + +# POSIX: The FIFO's user ID shall be set to the process' effective user ID. +# The FIFO's group ID shall be set to the group ID of the parent directory or to +# the effective group ID of the process. +expect 0 chown . 65535 65535 +expect 0 -u 65535 -g 65535 mkfifo ${n0} 0755 +expect 65535,65535 lstat ${n0} uid,gid +expect 0 unlink ${n0} +expect 0 -u 65535 -g 65534 mkfifo ${n0} 0755 +expect "65535,6553[45]" lstat ${n0} uid,gid +expect 0 unlink ${n0} +expect 0 chmod . 0777 +expect 0 -u 65534 -g 65533 mkfifo ${n0} 0755 +expect "65534,6553[35]" lstat ${n0} uid,gid +expect 0 unlink ${n0} + +# POSIX: Upon successful completion, mkfifo() shall mark for update the +# st_atime, st_ctime, and st_mtime fields of the file. Also, the st_ctime and +# st_mtime fields of the directory that contains the new entry shall be marked +# for update. +expect 0 chown . 0 0 +time=`${FSTEST} stat . ctime` +sleep 1 +expect 0 mkfifo ${n0} 0755 +atime=`${FSTEST} stat ${n0} atime` +test_check $time -lt $atime +mtime=`${FSTEST} stat ${n0} mtime` +test_check $time -lt $mtime +ctime=`${FSTEST} stat ${n0} ctime` +test_check $time -lt $ctime +mtime=`${FSTEST} stat . mtime` +test_check $time -lt $mtime +ctime=`${FSTEST} stat . ctime` +test_check $time -lt $ctime +expect 0 unlink ${n0} + +cd ${cdir} +expect 0 rmdir ${n1} diff --git a/src/regress/sys/ffs/tests/mkfifo/01.t b/src/regress/sys/ffs/tests/mkfifo/01.t new file mode 100644 index 000000000..c9ba0fb04 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/01.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/01.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkfifo returns ENOTDIR if a component of the path prefix is not a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect ENOTDIR mkfifo ${n0}/${n1}/test 0644 +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkfifo/02.t b/src/regress/sys/ffs/tests/mkfifo/02.t new file mode 100644 index 000000000..95580667e --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/02.t @@ -0,0 +1,8 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/02.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkfifo returns ENAMETOOLONG if a component of a pathname exceeded 255 characters" + +expect 0 mkfifo ${name255} 0644 +expect 0 unlink ${name255} +expect ENAMETOOLONG mkfifo ${name256} 0644 diff --git a/src/regress/sys/ffs/tests/mkfifo/03.t b/src/regress/sys/ffs/tests/mkfifo/03.t new file mode 100644 index 000000000..74c3637cb --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/03.t @@ -0,0 +1,16 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/03.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkfifo returns ENAMETOOLONG if an entire path name exceeded 1023 characters" + +expect 0 mkdir ${name255} 0755 +expect 0 mkdir ${name255}/${name255} 0755 +expect 0 mkdir ${name255}/${name255}/${name255} 0755 +expect 0 mkdir ${path1021} 0755 +expect 0 mkfifo ${path1023} 0644 +expect 0 unlink ${path1023} +expect ENAMETOOLONG mkfifo ${path1024} 0644 +expect 0 rmdir ${path1021} +expect 0 rmdir ${name255}/${name255}/${name255} +expect 0 rmdir ${name255}/${name255} +expect 0 rmdir ${name255} diff --git a/src/regress/sys/ffs/tests/mkfifo/04.t b/src/regress/sys/ffs/tests/mkfifo/04.t new file mode 100644 index 000000000..a24ed1b4a --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/04.t @@ -0,0 +1,11 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/04.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkfifo returns ENOENT if a component of the path prefix does not exist" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect ENOENT mkfifo ${n0}/${n1}/test 0644 +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkfifo/05.t b/src/regress/sys/ffs/tests/mkfifo/05.t new file mode 100644 index 000000000..bf4b78d48 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/05.t @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/05.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkfifo returns EACCES when search permission is denied for a component of the path prefix" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 mkfifo ${n1}/${n2} 0644 +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 chmod ${n1} 0644 +expect EACCES -u 65534 -g 65534 mkfifo ${n1}/${n2} 0644 +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 mkfifo ${n1}/${n2} 0644 +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkfifo/06.t b/src/regress/sys/ffs/tests/mkfifo/06.t new file mode 100644 index 000000000..f8478cd67 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/06.t @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/06.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkfifo returns EACCES when write permission is denied on the parent directory of the file to be created" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 mkfifo ${n1}/${n2} 0644 +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 chmod ${n1} 0555 +expect EACCES -u 65534 -g 65534 mkfifo ${n1}/${n2} 0644 +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 mkfifo ${n1}/${n2} 0644 +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkfifo/07.t b/src/regress/sys/ffs/tests/mkfifo/07.t new file mode 100644 index 000000000..e4dc57cb7 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/07.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/07.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkfifo returns ELOOP if too many symbolic links were encountered in translating the pathname" + +n0=`namegen` +n1=`namegen` + +expect 0 symlink ${n0} ${n1} +expect 0 symlink ${n1} ${n0} +expect ELOOP mkfifo ${n0}/test 0644 +expect ELOOP mkfifo ${n1}/test 0644 +expect 0 unlink ${n0} +expect 0 unlink ${n1} diff --git a/src/regress/sys/ffs/tests/mkfifo/08.t b/src/regress/sys/ffs/tests/mkfifo/08.t new file mode 100644 index 000000000..4364fb031 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/08.t @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/08.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkfifo returns EROFS if the named file resides on a read-only file system" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 mkfifo ${n0}/${n1} 0644 +expect 0 unlink ${n0}/${n1} +mount -ur /dev/svnd1c +expect EROFS mkfifo ${n0}/${n1} 0644 +#mount -uw /dev/svnd1c +expect 0 mkfifo ${n0}/${n1} 0644 +expect 0 unlink ${n0}/${n1} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkfifo/09.t b/src/regress/sys/ffs/tests/mkfifo/09.t new file mode 100644 index 000000000..7a1d67ce1 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/09.t @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/09.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkfifo returns EEXIST if the named file exists" + +n0=`namegen` + +expect 0 mkdir ${n0} 0755 +expect EEXIST mkfifo ${n0} 0644 +expect 0 rmdir ${n0} + +expect 0 create ${n0} 0644 +expect EEXIST mkfifo ${n0} 0644 +expect 0 unlink ${n0} + +expect 0 symlink test ${n0} +expect EEXIST mkfifo ${n0} 0644 +expect 0 unlink ${n0} + +expect 0 mkfifo ${n0} 0644 +expect EEXIST mkfifo ${n0} 0644 +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/mkfifo/10.t b/src/regress/sys/ffs/tests/mkfifo/10.t new file mode 100644 index 000000000..e9a27831a --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/10.t @@ -0,0 +1,36 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/10.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkfifo returns EPERM if the parent directory of the file to be created has its immutable flag set" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 + +expect 0 mkfifo ${n0}/${n1} 0644 +expect 0 unlink ${n0}/${n1} + +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM mkfifo ${n0}/${n1} 0644 +expect 0 chflags ${n0} none +expect 0 mkfifo ${n0}/${n1} 0644 +expect 0 unlink ${n0}/${n1} + +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM mkfifo ${n0}/${n1} 0644 +expect 0 chflags ${n0} none +expect 0 mkfifo ${n0}/${n1} 0644 +expect 0 unlink ${n0}/${n1} + +expect 0 chflags ${n0} SF_APPEND +expect 0 mkfifo ${n0}/${n1} 0644 +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 chflags ${n0} UF_APPEND +expect 0 mkfifo ${n0}/${n1} 0644 +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkfifo/11.t b/src/regress/sys/ffs/tests/mkfifo/11.t new file mode 100644 index 000000000..383ee6814 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/11.t @@ -0,0 +1,26 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/11.t,v 1.1 2007/01/17 01:42:09 pjd Exp $ + +desc="mkfifo returns ENOSPC if there are no free inodes on the file system on which the file is being created" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=256 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +i=0 +while :; do + mkfifo ${n0}/${i} >/dev/null 2>&1 + if [ $? -ne 0 ]; then + break + fi + i=`expr $i + 1` +done +expect ENOSPC mkfifo ${n0}/${n1} 0644 +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/mkfifo/12.t b/src/regress/sys/ffs/tests/mkfifo/12.t new file mode 100644 index 000000000..180790393 --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/12.t @@ -0,0 +1,7 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/mkfifo/12.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="mkfifo returns EFAULT if the path argument points outside the process's allocated address space" + +expect EFAULT mkfifo NULL 0644 +expect EFAULT mkfifo DEADCODE 0644 diff --git a/src/regress/sys/ffs/tests/mkfifo/CVS/Entries b/src/regress/sys/ffs/tests/mkfifo/CVS/Entries new file mode 100644 index 000000000..2094fca3b --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/CVS/Entries @@ -0,0 +1,14 @@ +/00.t/1.1/Fri Mar 30 19:02:51 2007// +/01.t/1.1/Fri Mar 30 19:02:51 2007// +/02.t/1.1/Fri Mar 30 19:02:51 2007// +/03.t/1.1/Fri Mar 30 19:02:51 2007// +/04.t/1.1/Fri Mar 30 19:02:51 2007// +/05.t/1.1/Fri Mar 30 19:02:51 2007// +/06.t/1.1/Fri Mar 30 19:02:51 2007// +/07.t/1.1/Fri Mar 30 19:02:51 2007// +/08.t/1.1/Fri Mar 30 19:02:51 2007// +/09.t/1.1/Fri Mar 30 19:02:51 2007// +/10.t/1.2/Thu Apr 12 22:40:46 2007// +/11.t/1.1/Fri Mar 30 19:02:51 2007// +/12.t/1.1/Fri Mar 30 19:02:51 2007// +D diff --git a/src/regress/sys/ffs/tests/mkfifo/CVS/Repository b/src/regress/sys/ffs/tests/mkfifo/CVS/Repository new file mode 100644 index 000000000..0cb5a1cab --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests/mkfifo diff --git a/src/regress/sys/ffs/tests/mkfifo/CVS/Root b/src/regress/sys/ffs/tests/mkfifo/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/mkfifo/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/tests/open/00.t b/src/regress/sys/ffs/tests/open/00.t new file mode 100644 index 000000000..1a60afbc1 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/00.t @@ -0,0 +1,94 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/00.t,v 1.2 2007/01/25 20:50:02 pjd Exp $ + +desc="open opens (and eventually creates) a file" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n1} 0755 +cdir=`pwd` +cd ${n1} + +# POSIX: (If O_CREAT is specified and the file doesn't exist) [...] the access +# permission bits of the file mode shall be set to the value of the third +# argument taken as type mode_t modified as follows: a bitwise AND is performed +# on the file-mode bits and the corresponding bits in the complement of the +# process' file mode creation mask. Thus, all bits in the file mode whose +# corresponding bit in the file mode creation mask is set are cleared. +expect 0 open ${n0} O_CREAT,O_WRONLY 0755 +expect regular,0755 lstat ${n0} type,mode +expect 0 unlink ${n0} +expect 0 open ${n0} O_CREAT,O_WRONLY 0151 +expect regular,0151 lstat ${n0} type,mode +expect 0 unlink ${n0} +expect 0 -U 077 open ${n0} O_CREAT,O_WRONLY 0151 +expect regular,0100 lstat ${n0} type,mode +expect 0 unlink ${n0} +expect 0 -U 070 open ${n0} O_CREAT,O_WRONLY 0345 +expect regular,0305 lstat ${n0} type,mode +expect 0 unlink ${n0} +expect 0 -U 0501 open ${n0} O_CREAT,O_WRONLY 0345 +expect regular,0244 lstat ${n0} type,mode +expect 0 unlink ${n0} + +# POSIX: (If O_CREAT is specified and the file doesn't exist) [...] the user ID +# of the file shall be set to the effective user ID of the process; the group ID +# of the file shall be set to the group ID of the file's parent directory or to +# the effective group ID of the process [...] +expect 0 chown . 65535 65535 +expect 0 -u 65535 -g 65535 open ${n0} O_CREAT,O_WRONLY 0644 +expect 65535,65535 lstat ${n0} uid,gid +expect 0 unlink ${n0} +expect 0 -u 65535 -g 65534 open ${n0} O_CREAT,O_WRONLY 0644 +expect "65535,6553[45]" lstat ${n0} uid,gid +expect 0 unlink ${n0} +expect 0 chmod . 0777 +expect 0 -u 65534 -g 65533 open ${n0} O_CREAT,O_WRONLY 0644 +expect "65534,6553[35]" lstat ${n0} uid,gid +expect 0 unlink ${n0} + +# Update parent directory ctime/mtime if file didn't exist. +expect 0 chown . 0 0 +time=`${FSTEST} stat . ctime` +sleep 1 +expect 0 open ${n0} O_CREAT,O_WRONLY 0644 +atime=`${FSTEST} stat ${n0} atime` +test_check $time -lt $atime +mtime=`${FSTEST} stat ${n0} mtime` +test_check $time -lt $mtime +ctime=`${FSTEST} stat ${n0} ctime` +test_check $time -lt $ctime +mtime=`${FSTEST} stat . mtime` +test_check $time -lt $mtime +ctime=`${FSTEST} stat . ctime` +test_check $time -lt $ctime +expect 0 unlink ${n0} + +# Don't update parent directory ctime/mtime if file existed. +expect 0 create ${n0} 0644 +dmtime=`${FSTEST} stat . mtime` +dctime=`${FSTEST} stat . ctime` +sleep 1 +expect 0 open ${n0} O_CREAT,O_RDONLY 0644 +mtime=`${FSTEST} stat . mtime` +test_check $dmtime -eq $mtime +ctime=`${FSTEST} stat . ctime` +test_check $dctime -eq $ctime +expect 0 unlink ${n0} + +echo test > ${n0} +expect 5 stat ${n0} size +mtime1=`${FSTEST} stat ${n0} mtime` +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 open ${n0} O_WRONLY,O_TRUNC +mtime2=`${FSTEST} stat ${n0} mtime` +test_check $mtime1 -lt $mtime2 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 stat ${n0} size +expect 0 unlink ${n0} + +cd ${cdir} +expect 0 rmdir ${n1} diff --git a/src/regress/sys/ffs/tests/open/01.t b/src/regress/sys/ffs/tests/open/01.t new file mode 100644 index 000000000..16d4c8577 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/01.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/01.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns ENOTDIR if a component of the path prefix is not a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect ENOTDIR open ${n0}/${n1}/test O_CREAT 0644 +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/open/02.t b/src/regress/sys/ffs/tests/open/02.t new file mode 100644 index 000000000..caaf0cfab --- /dev/null +++ b/src/regress/sys/ffs/tests/open/02.t @@ -0,0 +1,9 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/02.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns ENAMETOOLONG if a component of a pathname exceeded 255 characters" + +expect 0 open ${name255} O_CREAT 0620 +expect 0620 stat ${name255} mode +expect 0 unlink ${name255} +expect ENAMETOOLONG open ${name256} O_CREAT 0620 diff --git a/src/regress/sys/ffs/tests/open/03.t b/src/regress/sys/ffs/tests/open/03.t new file mode 100644 index 000000000..9b184fff7 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/03.t @@ -0,0 +1,17 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/03.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns ENAMETOOLONG if an entire path name exceeded 1023 characters" + +expect 0 mkdir ${name255} 0755 +expect 0 mkdir ${name255}/${name255} 0755 +expect 0 mkdir ${name255}/${name255}/${name255} 0755 +expect 0 mkdir ${path1021} 0755 +expect 0 open ${path1023} O_CREAT 0642 +expect 0642 stat ${path1023} mode +expect 0 unlink ${path1023} +expect ENAMETOOLONG open ${path1024} O_CREAT 0642 +expect 0 rmdir ${path1021} +expect 0 rmdir ${name255}/${name255}/${name255} +expect 0 rmdir ${name255}/${name255} +expect 0 rmdir ${name255} diff --git a/src/regress/sys/ffs/tests/open/04.t b/src/regress/sys/ffs/tests/open/04.t new file mode 100644 index 000000000..c59bf4de4 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/04.t @@ -0,0 +1,12 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/04.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns ENOENT if a component of the path name that must exist does not exist or O_CREAT is not set and the named file does not exist" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect ENOENT open ${n0}/${n1}/test O_CREAT 0644 +expect ENOENT open ${n0}/${n1} O_RDONLY +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/open/05.t b/src/regress/sys/ffs/tests/open/05.t new file mode 100644 index 000000000..a849b3148 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/05.t @@ -0,0 +1,24 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/05.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EACCES when search permission is denied for a component of the path prefix" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644 +expect 0 -u 65534 -g 65534 open ${n1}/${n2} O_RDONLY +expect 0 chmod ${n1} 0644 +expect EACCES -u 65534 -g 65534 open ${n1}/${n2} O_RDONLY +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 open ${n1}/${n2} O_RDONLY +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/open/06.t b/src/regress/sys/ffs/tests/open/06.t new file mode 100644 index 000000000..8de3d1d32 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/06.t @@ -0,0 +1,84 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/06.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EACCES when the required permissions (for reading and/or writing) are denied for the given flags" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 chown ${n0} 65534 65534 +cdir=`pwd` +cd ${n0} + +expect 0 -u 65534 -g 65534 create ${n1} 0644 + +expect 0 -u 65534 -g 65534 chmod ${n1} 0600 +expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 open ${n1} O_WRONLY +expect 0 -u 65534 -g 65534 open ${n1} O_RDWR +expect 0 -u 65534 -g 65534 chmod ${n1} 0060 +expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65533 -g 65534 open ${n1} O_WRONLY +expect 0 -u 65533 -g 65534 open ${n1} O_RDWR +expect 0 -u 65534 -g 65534 chmod ${n1} 0006 +expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY +expect 0 -u 65533 -g 65533 open ${n1} O_WRONLY +expect 0 -u 65533 -g 65533 open ${n1} O_RDWR + +expect 0 -u 65534 -g 65534 chmod ${n1} 0477 +expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY +expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY +expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR +expect 0 -u 65534 -g 65534 chmod ${n1} 0747 +expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY +expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY +expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR +expect 0 -u 65534 -g 65534 chmod ${n1} 0774 +expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY +expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY +expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR + +expect 0 -u 65534 -g 65534 chmod ${n1} 0277 +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65534 -g 65534 open ${n1} O_WRONLY +expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR +expect 0 -u 65534 -g 65534 chmod ${n1} 0727 +expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY +expect 0 -u 65533 -g 65534 open ${n1} O_WRONLY +expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR +expect 0 -u 65534 -g 65534 chmod ${n1} 0772 +expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY +expect 0 -u 65533 -g 65533 open ${n1} O_WRONLY +expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR + +expect 0 -u 65534 -g 65534 chmod ${n1} 0177 +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY +expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY +expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR +expect 0 -u 65534 -g 65534 chmod ${n1} 0717 +expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY +expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY +expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR +expect 0 -u 65534 -g 65534 chmod ${n1} 0771 +expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY +expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY +expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR + +expect 0 -u 65534 -g 65534 chmod ${n1} 0077 +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY +expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY +expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR +expect 0 -u 65534 -g 65534 chmod ${n1} 0707 +expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY +expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY +expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR +expect 0 -u 65534 -g 65534 chmod ${n1} 0770 +expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY +expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY +expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR + +expect 0 -u 65534 -g 65534 unlink ${n1} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/open/07.t b/src/regress/sys/ffs/tests/open/07.t new file mode 100644 index 000000000..22e2f5733 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/07.t @@ -0,0 +1,40 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/07.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EACCES when O_TRUNC is specified and write permission is denied" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 chown ${n0} 65534 65534 +cdir=`pwd` +cd ${n0} + +expect 0 -u 65534 -g 65534 create ${n1} 0644 + +expect 0 -u 65534 -g 65534 chmod ${n1} 0477 +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,O_TRUNC +expect 0 -u 65534 -g 65534 chmod ${n1} 0747 +expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY,O_TRUNC +expect 0 -u 65534 -g 65534 chmod ${n1} 0774 +expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,O_TRUNC + +expect 0 -u 65534 -g 65534 chmod ${n1} 0177 +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,O_TRUNC +expect 0 -u 65534 -g 65534 chmod ${n1} 0717 +expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY,O_TRUNC +expect 0 -u 65534 -g 65534 chmod ${n1} 0771 +expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,O_TRUNC + +expect 0 -u 65534 -g 65534 chmod ${n1} 0077 +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,O_TRUNC +expect 0 -u 65534 -g 65534 chmod ${n1} 0707 +expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY,O_TRUNC +expect 0 -u 65534 -g 65534 chmod ${n1} 0770 +expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,O_TRUNC + +expect 0 -u 65534 -g 65534 unlink ${n1} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/open/08.t b/src/regress/sys/ffs/tests/open/08.t new file mode 100644 index 000000000..200f8322a --- /dev/null +++ b/src/regress/sys/ffs/tests/open/08.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/08.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EACCES when O_CREAT is specified, the file does not exist, and the directory in which it is to be created does not permit writing" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,O_CREAT 0644 +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/open/09.t b/src/regress/sys/ffs/tests/open/09.t new file mode 100644 index 000000000..b70fa4410 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/09.t @@ -0,0 +1,36 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/09.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="O_CREAT is specified, the file does not exist, and the directory in which it is to be created has its immutable flag set" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 + +expect 0 open ${n0}/${n1} O_RDONLY,O_CREAT 0644 +expect 0 unlink ${n0}/${n1} + +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM open ${n0}/${n1} O_RDONLY,O_CREAT 0644 +expect 0 chflags ${n0} none +expect 0 open ${n0}/${n1} O_RDONLY,O_CREAT 0644 +expect 0 unlink ${n0}/${n1} + +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM open ${n0}/${n1} O_RDONLY,O_CREAT 0644 +expect 0 chflags ${n0} none +expect 0 open ${n0}/${n1} O_RDONLY,O_CREAT 0644 +expect 0 unlink ${n0}/${n1} + +expect 0 chflags ${n0} SF_APPEND +expect 0 open ${n0}/${n1} O_RDONLY,O_CREAT 0644 +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 chflags ${n0} UF_APPEND +expect 0 open ${n0}/${n1} O_RDONLY,O_CREAT 0644 +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/open/10.t b/src/regress/sys/ffs/tests/open/10.t new file mode 100644 index 000000000..9ab10bbb8 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/10.t @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/10.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EPERM when the named file has its immutable flag set and the file is to be modified" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM open ${n0} O_WRONLY +expect EPERM open ${n0} O_RDWR +expect EPERM open ${n0} O_RDONLY,O_TRUNC +expect 0 chflags ${n0} none +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM open ${n0} O_WRONLY +expect EPERM open ${n0} O_RDWR +expect EPERM open ${n0} O_RDONLY,O_TRUNC +expect 0 chflags ${n0} none +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/open/11.t b/src/regress/sys/ffs/tests/open/11.t new file mode 100644 index 000000000..764cb02d9 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/11.t @@ -0,0 +1,32 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/11.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EPERM when the named file has its append-only flag set, the file is to be modified, and O_TRUNC is specified or O_APPEND is not specified" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} SF_APPEND +expect 0 open ${n0} O_WRONLY,O_APPEND +expect 0 open ${n0} O_RDWR,O_APPEND +expect EPERM open ${n0} O_WRONLY +expect EPERM open ${n0} O_RDWR +expect EPERM open ${n0} O_RDONLY,O_TRUNC +expect EPERM open ${n0} O_RDONLY,O_APPEND,O_TRUNC +expect EPERM open ${n0} O_WRONLY,O_APPEND,O_TRUNC +expect EPERM open ${n0} O_RDWR,O_APPEND,O_TRUNC +expect 0 chflags ${n0} none +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} UF_APPEND +expect 0 open ${n0} O_WRONLY,O_APPEND +expect 0 open ${n0} O_RDWR,O_APPEND +expect EPERM open ${n0} O_WRONLY +expect EPERM open ${n0} O_RDWR +expect EPERM open ${n0} O_RDONLY,O_TRUNC +expect EPERM open ${n0} O_RDONLY,O_APPEND,O_TRUNC +expect EPERM open ${n0} O_WRONLY,O_APPEND,O_TRUNC +expect EPERM open ${n0} O_RDWR,O_APPEND,O_TRUNC +expect 0 chflags ${n0} none +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/open/12.t b/src/regress/sys/ffs/tests/open/12.t new file mode 100644 index 000000000..3e2884790 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/12.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/12.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns ELOOP if too many symbolic links were encountered in translating the pathname" + +n0=`namegen` +n1=`namegen` + +expect 0 symlink ${n0} ${n1} +expect 0 symlink ${n1} ${n0} +expect ELOOP open ${n0}/test O_RDONLY +expect ELOOP open ${n1}/test O_RDONLY +expect 0 unlink ${n0} +expect 0 unlink ${n1} diff --git a/src/regress/sys/ffs/tests/open/13.t b/src/regress/sys/ffs/tests/open/13.t new file mode 100644 index 000000000..715f08198 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/13.t @@ -0,0 +1,17 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/13.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EISDIR when he named file is a directory, and the arguments specify it is to be modified" + +n0=`namegen` + +expect 0 mkdir ${n0} 0755 + +expect 0 open ${n0} O_RDONLY +expect EISDIR open ${n0} O_WRONLY +expect EISDIR open ${n0} O_RDWR +expect EISDIR open ${n0} O_RDONLY,O_TRUNC +expect EISDIR open ${n0} O_WRONLY,O_TRUNC +expect EISDIR open ${n0} O_RDWR,O_TRUNC + +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/open/14.t b/src/regress/sys/ffs/tests/open/14.t new file mode 100644 index 000000000..577d37f66 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/14.t @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/14.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EROFS if the named file resides on a read-only file system, and the file is to be modified" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 create ${n0}/${n1} 0644 +expect 0 open ${n0}/${n1} O_WRONLY +expect 0 open ${n0}/${n1} O_RDWR +expect 0 open ${n0}/${n1} O_RDONLY,O_TRUNC +mount -ur /dev/svnd1c +expect EROFS open ${n0}/${n1} O_WRONLY +expect EROFS open ${n0}/${n1} O_RDWR +expect EROFS open ${n0}/${n1} O_RDONLY,O_TRUNC +mount -uw /dev/svnd1c +expect 0 unlink ${n0}/${n1} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/open/15.t b/src/regress/sys/ffs/tests/open/15.t new file mode 100644 index 000000000..4eae05cb9 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/15.t @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/15.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EROFS when O_CREAT is specified and the named file would reside on a read-only file system" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 open ${n0}/${n1} O_RDONLY,O_CREAT 0644 +expect 0 unlink ${n0}/${n1} +mount -ur /dev/svnd1c +expect EROFS open ${n0}/${n1} O_RDONLY,O_CREAT 0644 +mount -uw /dev/svnd1c +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/open/16.t b/src/regress/sys/ffs/tests/open/16.t new file mode 100644 index 000000000..d22381b48 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/16.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/16.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EMLINK when O_NOFOLLOW was specified and the target is a symbolic link" + +n0=`namegen` +n1=`namegen` + +expect 0 symlink ${n0} ${n1} +expect EMLINK open ${n1} O_RDONLY,O_CREAT,O_NOFOLLOW 0644 +expect EMLINK open ${n1} O_RDONLY,O_NOFOLLOW +expect EMLINK open ${n1} O_WRONLY,O_NOFOLLOW +expect EMLINK open ${n1} O_RDWR,O_NOFOLLOW +expect 0 unlink ${n1} diff --git a/src/regress/sys/ffs/tests/open/17.t b/src/regress/sys/ffs/tests/open/17.t new file mode 100644 index 000000000..49d569eaa --- /dev/null +++ b/src/regress/sys/ffs/tests/open/17.t @@ -0,0 +1,10 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/17.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns ENXIO when O_NONBLOCK is set, the named file is a fifo, O_WRONLY is set, and no process has the file open for reading" + +n0=`namegen` + +expect 0 mkfifo ${n0} 0644 +expect ENXIO open ${n0} O_WRONLY,O_NONBLOCK +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/open/18.t b/src/regress/sys/ffs/tests/open/18.t new file mode 100644 index 000000000..d15190fc7 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/18.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/18.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EWOULDBLOCK when O_NONBLOCK and one of O_SHLOCK or O_EXLOCK is specified and the file is locked" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect 0 open ${n0} O_RDONLY,O_SHLOCK : open ${n0} O_RDONLY,O_SHLOCK,O_NONBLOCK +expect "EWOULDBLOCK|EAGAIN" open ${n0} O_RDONLY,O_EXLOCK : open ${n0} O_RDONLY,O_EXLOCK,O_NONBLOCK +expect "EWOULDBLOCK|EAGAIN" open ${n0} O_RDONLY,O_SHLOCK : open ${n0} O_RDONLY,O_EXLOCK,O_NONBLOCK +expect "EWOULDBLOCK|EAGAIN" open ${n0} O_RDONLY,O_EXLOCK : open ${n0} O_RDONLY,O_SHLOCK,O_NONBLOCK +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/open/19.t b/src/regress/sys/ffs/tests/open/19.t new file mode 100644 index 000000000..c25a4f4d7 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/19.t @@ -0,0 +1,26 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/19.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns ENOSPC when O_CREAT is specified, the file does not exist, and there are no free inodes on the file system on which the file is being created" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=256 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +i=0 +while :; do + touch ${n0}/${i} >/dev/null 2>&1 + if [ $? -ne 0 ]; then + break + fi + i=`expr $i + 1` +done +expect ENOSPC open ${n0}/${i} O_RDONLY,O_CREAT 0644 +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/open/20.t b/src/regress/sys/ffs/tests/open/20.t new file mode 100644 index 000000000..6313e9cb5 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/20.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/20.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns ETXTBSY when the file is a pure procedure (shared text) file that is being executed and the open() system call requests write access" + +n0=`namegen` + +cp -pf `which sleep` ${n0} +./${n0} 3 & +expect ETXTBSY open ${n0} O_WRONLY +expect ETXTBSY open ${n0} O_RDWR +expect ETXTBSY open ${n0} O_RDONLY,O_TRUNC +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/open/21.t b/src/regress/sys/ffs/tests/open/21.t new file mode 100644 index 000000000..c7f3b9db8 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/21.t @@ -0,0 +1,7 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/21.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EFAULT if the path argument points outside the process's allocated address space" + +expect EFAULT open NULL O_RDONLY +expect EFAULT open DEADCODE O_RDONLY diff --git a/src/regress/sys/ffs/tests/open/22.t b/src/regress/sys/ffs/tests/open/22.t new file mode 100644 index 000000000..80a3763c0 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/22.t @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/22.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EEXIST when O_CREAT and O_EXCL were specified and the file exists" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect EEXIST open ${n0} O_CREAT,O_EXCL 0644 +expect 0 unlink ${n0} + +expect 0 mkdir ${n0} 0755 +expect EEXIST open ${n0} O_CREAT,O_EXCL 0644 +expect 0 rmdir ${n0} + +expect 0 mkfifo ${n0} 0644 +expect EEXIST open ${n0} O_CREAT,O_EXCL 0644 +expect 0 unlink ${n0} + +expect 0 symlink test ${n0} +expect EEXIST open ${n0} O_CREAT,O_EXCL 0644 +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/open/23.t b/src/regress/sys/ffs/tests/open/23.t new file mode 100644 index 000000000..7c5c3ab98 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/23.t @@ -0,0 +1,11 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/open/23.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="open returns EINVAL when an attempt was made to open a descriptor with an illegal combination of O_RDONLY, O_WRONLY, and O_RDWR" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect EINVAL open ${n0} O_WRONLY,O_RDWR +expect EINVAL open ${n0} O_RDONLY,O_WRONLY,O_RDWR +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/open/CVS/Entries b/src/regress/sys/ffs/tests/open/CVS/Entries new file mode 100644 index 000000000..db9cc4de0 --- /dev/null +++ b/src/regress/sys/ffs/tests/open/CVS/Entries @@ -0,0 +1,25 @@ +/00.t/1.1/Fri Mar 30 19:02:51 2007// +/01.t/1.1/Fri Mar 30 19:02:51 2007// +/02.t/1.1/Fri Mar 30 19:02:51 2007// +/03.t/1.1/Fri Mar 30 19:02:51 2007// +/04.t/1.1/Fri Mar 30 19:02:51 2007// +/05.t/1.1/Fri Mar 30 19:02:51 2007// +/06.t/1.1/Fri Mar 30 19:02:51 2007// +/07.t/1.1/Fri Mar 30 19:02:51 2007// +/08.t/1.1/Fri Mar 30 19:02:51 2007// +/09.t/1.2/Thu Apr 12 22:40:46 2007// +/10.t/1.2/Thu Apr 12 22:40:46 2007// +/11.t/1.1/Fri Mar 30 19:02:51 2007// +/12.t/1.1/Fri Mar 30 19:02:51 2007// +/13.t/1.1/Fri Mar 30 19:02:51 2007// +/14.t/1.1/Fri Mar 30 19:02:51 2007// +/15.t/1.1/Fri Mar 30 19:02:51 2007// +/16.t/1.1/Fri Mar 30 19:02:51 2007// +/17.t/1.1/Fri Mar 30 19:02:51 2007// +/18.t/1.1/Fri Mar 30 19:02:51 2007// +/19.t/1.1/Fri Mar 30 19:02:51 2007// +/20.t/1.1/Fri Mar 30 19:02:51 2007// +/21.t/1.1/Fri Mar 30 19:02:51 2007// +/22.t/1.1/Fri Mar 30 19:02:51 2007// +/23.t/1.1/Fri Mar 30 19:02:51 2007// +D diff --git a/src/regress/sys/ffs/tests/open/CVS/Repository b/src/regress/sys/ffs/tests/open/CVS/Repository new file mode 100644 index 000000000..b55304b4d --- /dev/null +++ b/src/regress/sys/ffs/tests/open/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests/open diff --git a/src/regress/sys/ffs/tests/open/CVS/Root b/src/regress/sys/ffs/tests/open/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/open/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/tests/rename/00.t b/src/regress/sys/ffs/tests/rename/00.t new file mode 100644 index 000000000..e5b342d36 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/00.t @@ -0,0 +1,136 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/00.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename changes file name" + +n0=`namegen` +n1=`namegen` +n2=`namegen` +n3=`namegen` + +expect 0 mkdir ${n3} 0755 +cdir=`pwd` +cd ${n3} + +expect 0 create ${n0} 0644 +expect regular,0644,1 lstat ${n0} type,mode,nlink +inode=`${FSTEST} lstat ${n0} inode` +expect 0 rename ${n0} ${n1} +expect ENOENT lstat ${n0} type,mode,nlink +expect regular,${inode},0644,1 lstat ${n1} type,inode,mode,nlink +expect 0 link ${n1} ${n0} +expect regular,${inode},0644,2 lstat ${n0} type,inode,mode,nlink +expect regular,${inode},0644,2 lstat ${n1} type,inode,mode,nlink +expect 0 rename ${n1} ${n2} +expect regular,${inode},0644,2 lstat ${n0} type,inode,mode,nlink +expect ENOENT lstat ${n1} type,mode,nlink +expect regular,${inode},0644,2 lstat ${n2} type,inode,mode,nlink +expect 0 unlink ${n0} +expect 0 unlink ${n2} + +expect 0 mkdir ${n0} 0755 +expect dir,0755 lstat ${n0} type,mode +inode=`${FSTEST} lstat ${n0} inode` +expect 0 rename ${n0} ${n1} +expect ENOENT lstat ${n0} type,mode +expect dir,${inode},0755 lstat ${n1} type,inode,mode +expect 0 rmdir ${n1} + +expect 0 mkfifo ${n0} 0644 +expect fifo,0644,1 lstat ${n0} type,mode,nlink +inode=`${FSTEST} lstat ${n0} inode` +expect 0 rename ${n0} ${n1} +expect ENOENT lstat ${n0} type,mode,nlink +expect fifo,${inode},0644,1 lstat ${n1} type,inode,mode,nlink +expect 0 link ${n1} ${n0} +expect fifo,${inode},0644,2 lstat ${n0} type,inode,mode,nlink +expect fifo,${inode},0644,2 lstat ${n1} type,inode,mode,nlink +expect 0 rename ${n1} ${n2} +expect fifo,${inode},0644,2 lstat ${n0} type,inode,mode,nlink +expect ENOENT lstat ${n1} type,mode,nlink +expect fifo,${inode},0644,2 lstat ${n2} type,inode,mode,nlink +expect 0 unlink ${n0} +expect 0 unlink ${n2} + +expect 0 create ${n0} 0644 +rinode=`${FSTEST} lstat ${n0} inode` +expect regular,0644 lstat ${n0} type,mode +expect 0 symlink ${n0} ${n1} +sinode=`${FSTEST} lstat ${n1} inode` +expect regular,${rinode},0644 stat ${n1} type,inode,mode +expect symlink,${sinode} lstat ${n1} type,inode +expect 0 rename ${n1} ${n2} +expect regular,${rinode},0644 stat ${n0} type,inode,mode +expect ENOENT lstat ${n1} type,mode +expect symlink,${sinode} lstat ${n2} type,inode +expect 0 unlink ${n0} +expect 0 unlink ${n2} + +# successful rename(2) updates ctime. +expect 0 create ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 rename ${n0} ${n1} +ctime2=`${FSTEST} stat ${n1} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n1} + +expect 0 mkdir ${n0} 0755 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 rename ${n0} ${n1} +ctime2=`${FSTEST} stat ${n1} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 rmdir ${n1} + +expect 0 mkfifo ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 rename ${n0} ${n1} +ctime2=`${FSTEST} stat ${n1} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n1} + +expect 0 symlink ${n2} ${n0} +ctime1=`${FSTEST} lstat ${n0} ctime` +sleep 1 +expect 0 rename ${n0} ${n1} +ctime2=`${FSTEST} lstat ${n1} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n1} + +# unsuccessful link(2) does not update ctime. +expect 0 create ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect EACCES -u 65534 rename ${n0} ${n1} +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} + +expect 0 mkdir ${n0} 0755 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect EACCES -u 65534 rename ${n0} ${n1} +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 rmdir ${n0} + +expect 0 mkfifo ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect EACCES -u 65534 rename ${n0} ${n1} +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} + +expect 0 symlink ${n2} ${n0} +ctime1=`${FSTEST} lstat ${n0} ctime` +sleep 1 +expect EACCES -u 65534 rename ${n0} ${n1} +ctime2=`${FSTEST} lstat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} + +cd ${cdir} +expect 0 rmdir ${n3} diff --git a/src/regress/sys/ffs/tests/rename/01.t b/src/regress/sys/ffs/tests/rename/01.t new file mode 100644 index 000000000..a0abbad5c --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/01.t @@ -0,0 +1,16 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/01.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns ENAMETOOLONG if a component of either pathname exceeded 255 characters" + +n0=`namegen` + +expect 0 create ${name255} 0644 +expect 0 rename ${name255} ${n0} +expect 0 rename ${n0} ${name255} +expect 0 unlink ${name255} + +expect 0 create ${n0} 0644 +expect ENAMETOOLONG rename ${n0} ${name256} +expect 0 unlink ${n0} +expect ENAMETOOLONG rename ${name256} ${n0} diff --git a/src/regress/sys/ffs/tests/rename/02.t b/src/regress/sys/ffs/tests/rename/02.t new file mode 100644 index 000000000..5cc8fb48e --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/02.t @@ -0,0 +1,21 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/02.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns ENAMETOOLONG if an entire length of either path name exceeded 1023 characters" + +n0=`namegen` + +expect 0 mkdir ${name255} 0755 +expect 0 mkdir ${name255}/${name255} 0755 +expect 0 mkdir ${name255}/${name255}/${name255} 0755 +expect 0 mkdir ${path1021} 0755 +expect 0 create ${n0} 0644 +expect 0 rename ${n0} ${path1023} +expect 0 rename ${path1023} ${n0} +expect ENAMETOOLONG rename ${n0} ${path1024} +expect 0 unlink ${n0} +expect ENAMETOOLONG rename ${path1024} ${n0} +expect 0 rmdir ${path1021} +expect 0 rmdir ${name255}/${name255}/${name255} +expect 0 rmdir ${name255}/${name255} +expect 0 rmdir ${name255} diff --git a/src/regress/sys/ffs/tests/rename/03.t b/src/regress/sys/ffs/tests/rename/03.t new file mode 100644 index 000000000..d1abaf50c --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/03.t @@ -0,0 +1,15 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/03.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns ENOENT if a component of the 'from' path does not exist, or a path prefix of 'to' does not exist" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +expect ENOENT rename ${n0}/${n1}/test ${n2} +expect 0 create ${n2} 0644 +expect ENOENT rename ${n2} ${n0}/${n1}/test +expect 0 unlink ${n2} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/04.t b/src/regress/sys/ffs/tests/rename/04.t new file mode 100644 index 000000000..a016e3b80 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/04.t @@ -0,0 +1,38 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/04.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EACCES when a component of either path prefix denies search permission" + +n0=`namegen` +n1=`namegen` +n2=`namegen` +n3=`namegen` +n4=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} + +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 mkdir ${n2} 0755 +expect 0 chown ${n2} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n3} 0644 + +expect 0 -u 65534 -g 65534 rename ${n1}/${n3} ${n2}/${n4} +expect 0 -u 65534 -g 65534 rename ${n2}/${n4} ${n1}/${n3} + +expect 0 chmod ${n1} 0644 +expect EACCES -u 65534 -g 65534 rename ${n1}/${n3} ${n1}/${n4} +expect EACCES -u 65534 -g 65534 rename ${n1}/${n3} ${n2}/${n4} + +expect 0 chmod ${n1} 0755 +expect 0 chmod ${n2} 0644 +expect EACCES -u 65534 -g 65534 rename ${n1}/${n3} ${n2}/${n4} + +expect 0 unlink ${n1}/${n3} +expect 0 rmdir ${n1} +expect 0 rmdir ${n2} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/05.t b/src/regress/sys/ffs/tests/rename/05.t new file mode 100644 index 000000000..79eed15ee --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/05.t @@ -0,0 +1,36 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/05.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EACCES when the requested link requires writing in a directory with a mode that denies write permission" + +n0=`namegen` +n1=`namegen` +n2=`namegen` +n3=`namegen` +n4=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} + +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 mkdir ${n2} 0755 +expect 0 chown ${n2} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n3} 0644 + +expect 0 -u 65534 -g 65534 rename ${n1}/${n3} ${n2}/${n4} +expect 0 -u 65534 -g 65534 rename ${n2}/${n4} ${n1}/${n3} + +expect 0 chmod ${n2} 0555 +expect EACCES -u 65534 -g 65534 rename ${n1}/${n3} ${n2}/${n4} +expect 0 chmod ${n1} 0555 +expect EACCES -u 65534 -g 65534 rename ${n1}/${n3} ${n1}/${n4} +expect 0 chmod ${n1} 0755 + +expect 0 unlink ${n1}/${n3} +expect 0 rmdir ${n1} +expect 0 rmdir ${n2} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/06.t b/src/regress/sys/ffs/tests/rename/06.t new file mode 100644 index 000000000..78a7a0e1b --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/06.t @@ -0,0 +1,43 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/06.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EPERM if the file pointed at by the 'from' argument has its immutable, undeletable or append-only flag set" + +n0=`namegen` +n1=`namegen` + +expect 0 create ${n0} 0644 +for flag in SF_IMMUTABLE UF_IMMUTABLE SF_APPEND UF_APPEND; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect EPERM rename ${n0} ${n1} +done +expect 0 chflags ${n0} none +expect 0 unlink ${n0} + +expect 0 mkdir ${n0} 0755 +for flag in SF_IMMUTABLE UF_IMMUTABLE SF_APPEND UF_APPEND; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect EPERM rename ${n0} ${n1} +done +expect 0 chflags ${n0} none +expect 0 rmdir ${n0} + +expect 0 mkfifo ${n0} 0644 +for flag in SF_IMMUTABLE UF_IMMUTABLE SF_APPEND UF_APPEND; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect EPERM rename ${n0} ${n1} +done +expect 0 chflags ${n0} none +expect 0 unlink ${n0} + +expect 0 symlink ${n1} ${n0} +for flag in SF_IMMUTABLE UF_IMMUTABLE SF_APPEND UF_APPEND; do + expect 0 lchflags ${n0} ${flag} + expect ${flag} lstat ${n0} flags + expect EPERM rename ${n0} ${n1} +done +expect 0 lchflags ${n0} none +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/rename/07.t b/src/regress/sys/ffs/tests/rename/07.t new file mode 100644 index 000000000..5ae711239 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/07.t @@ -0,0 +1,48 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/07.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EPERM if the parent directory of the file pointed at by the 'from' argument has its immutable or append-only flag set" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 + +expect 0 create ${n0}/${n1} 0644 +for flag in SF_IMMUTABLE UF_IMMUTABLE SF_APPEND UF_APPEND; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect EPERM rename ${n0}/${n1} ${n2} +done +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 mkdir ${n0}/${n1} 0755 +for flag in SF_IMMUTABLE UF_IMMUTABLE SF_APPEND UF_APPEND; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect EPERM rename ${n0}/${n1} ${n2} +done +expect 0 chflags ${n0} none +expect 0 rmdir ${n0}/${n1} + +expect 0 mkfifo ${n0}/${n1} 0644 +for flag in SF_IMMUTABLE UF_IMMUTABLE SF_APPEND UF_APPEND; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect EPERM rename ${n0}/${n1} ${n2} +done +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 symlink ${n2} ${n0}/${n1} +for flag in SF_IMMUTABLE UF_IMMUTABLE SF_APPEND UF_APPEND; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect EPERM rename ${n0}/${n1} ${n2} +done +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/08.t b/src/regress/sys/ffs/tests/rename/08.t new file mode 100644 index 000000000..a4e693175 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/08.t @@ -0,0 +1,88 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/08.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EPERM if the parent directory of the file pointed at by the 'to' argument has its immutable flag set" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 + +expect 0 create ${n1} 0644 +for flag in SF_IMMUTABLE UF_IMMUTABLE; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect EPERM rename ${n1} ${n0}/${n2} +done +expect 0 chflags ${n0} none +expect 0 unlink ${n1} + +expect 0 mkdir ${n1} 0755 +for flag in SF_IMMUTABLE UF_IMMUTABLE; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect EPERM rename ${n1} ${n0}/${n2} +done +expect 0 chflags ${n0} none +expect 0 rmdir ${n1} + +expect 0 mkfifo ${n1} 0644 +for flag in SF_IMMUTABLE UF_IMMUTABLE; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect EPERM rename ${n1} ${n0}/${n2} +done +expect 0 chflags ${n0} none +expect 0 unlink ${n1} + +expect 0 symlink ${n2} ${n1} +for flag in SF_IMMUTABLE UF_IMMUTABLE; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect EPERM rename ${n1} ${n0}/${n2} +done +expect 0 chflags ${n0} none +expect 0 unlink ${n1} + +expect 0 create ${n1} 0644 +for flag in SF_APPEND UF_APPEND; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect 0 rename ${n1} ${n0}/${n2} + expect 0 chflags ${n0} none + expect 0 rename ${n0}/${n2} ${n1} +done +expect 0 unlink ${n1} + +expect 0 mkdir ${n1} 0755 +for flag in SF_APPEND UF_APPEND; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect 0 rename ${n1} ${n0}/${n2} + expect 0 chflags ${n0} none + expect 0 rename ${n0}/${n2} ${n1} +done +expect 0 rmdir ${n1} + +expect 0 mkfifo ${n1} 0644 +for flag in SF_APPEND UF_APPEND; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect 0 rename ${n1} ${n0}/${n2} + expect 0 chflags ${n0} none + expect 0 rename ${n0}/${n2} ${n1} +done +expect 0 unlink ${n1} + +expect 0 symlink ${n2} ${n1} +for flag in SF_APPEND UF_APPEND; do + expect 0 chflags ${n0} ${flag} + expect ${flag} stat ${n0} flags + expect 0 rename ${n1} ${n0}/${n2} + expect 0 chflags ${n0} none + expect 0 rename ${n0}/${n2} ${n1} +done +expect 0 unlink ${n1} + +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/09.t b/src/regress/sys/ffs/tests/rename/09.t new file mode 100644 index 000000000..64437f248 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/09.t @@ -0,0 +1,89 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/09.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EACCES or EPERM if the directory containing 'from' is marked sticky, and neither the containing directory nor 'from' are owned by the effective user ID" + +n0=`namegen` +n1=`namegen` +n2=`namegen` +n3=`namegen` +n4=`namegen` + +expect 0 mkdir ${n4} 0755 +cdir=`pwd` +cd ${n4} + +expect 0 mkdir ${n0} 0755 +expect 0 chown ${n0} 65534 65534 +expect 0 chmod ${n0} 01777 + +expect 0 mkdir ${n1} 0755 + +# User owns both: the sticky directory and the file to be renamed. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect 0 unlink ${n1}/${n3} +# User owns the file to be renamed, but doesn't own the sticky directory. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65533 -g 65533 create ${n0}/${n2} 0644 +expect 0 -u 65533 -g 65533 rename ${n0}/${n2} ${n1}/${n3} +expect 0 unlink ${n1}/${n3} +# User owns the sticky directory, but doesn't own the file to be renamed. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65533 -g 65533 create ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect 0 unlink ${n1}/${n3} +# User doesn't own the sticky directory nor the file to be renamed. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65534 -g 65534 create ${n0}/${n2} 0644 +expect "EACCES|EPERM" -u 65533 -g 65533 rename ${n0}/${n2} ${n1}/${n3} +expect 0 unlink ${n0}/${n2} + +# User owns both: the sticky directory and the fifo to be renamed. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect 0 unlink ${n1}/${n3} +# User owns the fifo to be renamed, but doesn't own the sticky directory. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65533 -g 65533 mkfifo ${n0}/${n2} 0644 +expect 0 -u 65533 -g 65533 rename ${n0}/${n2} ${n1}/${n3} +expect 0 unlink ${n1}/${n3} +# User owns the sticky directory, but doesn't own the fifo to be renamed. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65533 -g 65533 mkfifo ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect 0 unlink ${n1}/${n3} +# User doesn't own the sticky directory nor the fifo to be renamed. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n2} 0644 +expect "EACCES|EPERM" -u 65533 -g 65533 rename ${n0}/${n2} ${n1}/${n3} +expect 0 unlink ${n0}/${n2} + +# User owns both: the sticky directory and the symlink to be renamed. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 symlink test ${n0}/${n2} +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect 0 unlink ${n1}/${n3} +# User owns the symlink to be renamed, but doesn't own the sticky directory. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65533 -g 65533 symlink test ${n0}/${n2} +expect 0 -u 65533 -g 65533 rename ${n0}/${n2} ${n1}/${n3} +expect 0 unlink ${n1}/${n3} +# User owns the sticky directory, but doesn't own the symlink to be renamed. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65533 -g 65533 symlink test ${n0}/${n2} +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect 0 unlink ${n1}/${n3} +# User doesn't own the sticky directory nor the symlink to be renamed. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65534 -g 65534 symlink test ${n0}/${n2} +expect "EACCES|EPERM" -u 65533 -g 65533 rename ${n0}/${n2} ${n1}/${n3} +expect 0 unlink ${n0}/${n2} + +expect 0 rmdir ${n1} +expect 0 rmdir ${n0} + +cd ${cdir} +expect 0 rmdir ${n4} diff --git a/src/regress/sys/ffs/tests/rename/10.t b/src/regress/sys/ffs/tests/rename/10.t new file mode 100644 index 000000000..d429381f5 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/10.t @@ -0,0 +1,238 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/10.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EACCES or EPERM if the file pointed at by the 'to' argument exists, the directory containing 'to' is marked sticky, and neither the containing directory nor 'to' are owned by the effective user ID" + +n0=`namegen` +n1=`namegen` +n2=`namegen` +n3=`namegen` +n4=`namegen` + +expect 0 mkdir ${n4} 0755 +cdir=`pwd` +cd ${n4} + +expect 0 mkdir ${n0} 0755 +expect 0 chown ${n0} 65534 65534 + +expect 0 mkdir ${n1} 0755 +expect 0 chmod ${n1} 01777 + +# User owns both: the sticky directory and the destination file. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n0}/${n2} 0644 +inode=`${FSTEST} lstat ${n0}/${n2} inode` +expect 0 -u 65534 -g 65534 create ${n1}/${n3} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} inode +expect ${inode} lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n1}/${n3} ${n0}/${n2} +expect ${inode} lstat ${n0}/${n2} inode +expect ENOENT lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n3} +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} inode +expect ${inode} lstat ${n1}/${n3} inode +expect 0 unlink ${n1}/${n3} +# User owns the sticky directory, but doesn't own the destination file. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n0}/${n2} 0644 +inode=`${FSTEST} lstat ${n0}/${n2} inode` +expect 0 -u 65534 -g 65534 create ${n1}/${n3} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} type +expect ${inode} lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n1}/${n3} ${n0}/${n2} +expect ${inode} lstat ${n0}/${n2} inode +expect ENOENT lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n3} +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} inode +expect ${inode} lstat ${n1}/${n3} inode +expect 0 unlink ${n1}/${n3} +# User owns the destination file, but doesn't own the sticky directory. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65534 -g 65534 create ${n0}/${n2} 0644 +inode=`${FSTEST} lstat ${n0}/${n2} inode` +expect 0 -u 65534 -g 65534 create ${n1}/${n3} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} type +expect ${inode} lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n1}/${n3} ${n0}/${n2} +expect ${inode} lstat ${n0}/${n2} inode +expect ENOENT lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n3} +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} inode +expect ${inode} lstat ${n1}/${n3} inode +expect 0 unlink ${n1}/${n3} +# User doesn't own the sticky directory nor the destination file. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65534 -g 65534 create ${n0}/${n2} 0644 +expect 0 -u 65533 -g 65533 create ${n1}/${n3} 0644 +inode=`${FSTEST} lstat ${n1}/${n3} inode` +expect "EACCES|EPERM" -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ${inode} lstat ${n1}/${n3} inode +expect 0 unlink ${n0}/${n2} +expect 0 unlink ${n1}/${n3} + +# User owns both: the sticky directory and the destination file. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 mkdir ${n0}/${n2} 0755 +expect 0 -u 65534 -g 65534 mkdir ${n1}/${n3} 0755 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} type +expect 0 rmdir ${n1}/${n3} +# User owns the sticky directory, but doesn't own the destination file. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 mkdir ${n0}/${n2} 0755 +expect 0 -u 65534 -g 65534 mkdir ${n1}/${n3} 0755 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} type +expect 0 rmdir ${n1}/${n3} +# User owns the destination file, but doesn't own the sticky directory. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65534 -g 65534 mkdir ${n0}/${n2} 0755 +expect 0 -u 65534 -g 65534 mkdir ${n1}/${n3} 0755 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} type +expect 0 rmdir ${n1}/${n3} +# User doesn't own the sticky directory nor the destination file. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65534 -g 65534 mkdir ${n0}/${n2} 0755 +expect 0 -u 65533 -g 65533 mkdir ${n1}/${n3} 0755 +expect "EACCES|EPERM" -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect 0 rmdir ${n0}/${n2} +expect 0 rmdir ${n1}/${n3} + +# User owns both: the sticky directory and the destination file. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n2} 0644 +inode=`${FSTEST} lstat ${n0}/${n2} inode` +expect 0 -u 65534 -g 65534 mkfifo ${n1}/${n3} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} inode +expect ${inode} lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 create ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n1}/${n3} ${n0}/${n2} +expect ${inode} lstat ${n0}/${n2} inode +expect ENOENT lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n3} +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} inode +expect ${inode} lstat ${n1}/${n3} inode +expect 0 unlink ${n1}/${n3} +# User owns the sticky directory, but doesn't own the destination file. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n2} 0644 +inode=`${FSTEST} lstat ${n0}/${n2} inode` +expect 0 -u 65534 -g 65534 mkfifo ${n1}/${n3} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} type +expect ${inode} lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 create ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n1}/${n3} ${n0}/${n2} +expect ${inode} lstat ${n0}/${n2} inode +expect ENOENT lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n3} +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} inode +expect ${inode} lstat ${n1}/${n3} inode +expect 0 unlink ${n1}/${n3} +# User owns the destination file, but doesn't own the sticky directory. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n2} 0644 +inode=`${FSTEST} lstat ${n0}/${n2} inode` +expect 0 -u 65534 -g 65534 mkfifo ${n1}/${n3} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} type +expect ${inode} lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 create ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n1}/${n3} ${n0}/${n2} +expect ${inode} lstat ${n0}/${n2} inode +expect ENOENT lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n3} +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} inode +expect ${inode} lstat ${n1}/${n3} inode +expect 0 unlink ${n1}/${n3} +# User doesn't own the sticky directory nor the destination file. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n2} 0644 +expect 0 -u 65533 -g 65533 mkfifo ${n1}/${n3} 0644 +inode=`${FSTEST} lstat ${n1}/${n3} inode` +expect "EACCES|EPERM" -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ${inode} lstat ${n1}/${n3} inode +expect 0 unlink ${n0}/${n2} +expect 0 unlink ${n1}/${n3} + +# User owns both: the sticky directory and the destination file. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 symlink test ${n0}/${n2} +inode=`${FSTEST} lstat ${n0}/${n2} inode` +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n3} +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} inode +expect ${inode} lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 create ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n1}/${n3} ${n0}/${n2} +expect ${inode} lstat ${n0}/${n2} inode +expect ENOENT lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 mkfifo ${n1}/${n3} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} inode +expect ${inode} lstat ${n1}/${n3} inode +expect 0 unlink ${n1}/${n3} +# User owns the sticky directory, but doesn't own the destination file. +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 symlink test ${n0}/${n2} +inode=`${FSTEST} lstat ${n0}/${n2} inode` +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n3} +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} type +expect ${inode} lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 create ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n1}/${n3} ${n0}/${n2} +expect ${inode} lstat ${n0}/${n2} inode +expect ENOENT lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 mkfifo ${n1}/${n3} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} inode +expect ${inode} lstat ${n1}/${n3} inode +expect 0 unlink ${n1}/${n3} +# User owns the destination file, but doesn't own the sticky directory. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65534 -g 65534 symlink test ${n0}/${n2} +inode=`${FSTEST} lstat ${n0}/${n2} inode` +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n3} +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} type +expect ${inode} lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 create ${n0}/${n2} 0644 +expect 0 -u 65534 -g 65534 rename ${n1}/${n3} ${n0}/${n2} +expect ${inode} lstat ${n0}/${n2} inode +expect ENOENT lstat ${n1}/${n3} inode +expect 0 -u 65534 -g 65534 mkfifo ${n1}/${n3} 0644 +expect 0 -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ENOENT lstat ${n0}/${n2} inode +expect ${inode} lstat ${n1}/${n3} inode +expect 0 unlink ${n1}/${n3} +# User doesn't own the sticky directory nor the destination file. +expect 0 chown ${n1} 65533 65533 +expect 0 -u 65534 -g 65534 symlink test ${n0}/${n2} +expect 0 -u 65533 -g 65533 symlink test ${n1}/${n3} +inode=`${FSTEST} lstat ${n1}/${n3} inode` +expect "EACCES|EPERM" -u 65534 -g 65534 rename ${n0}/${n2} ${n1}/${n3} +expect ${inode} lstat ${n1}/${n3} inode +expect 0 unlink ${n0}/${n2} +expect 0 unlink ${n1}/${n3} + +expect 0 rmdir ${n1} +expect 0 rmdir ${n0} + +cd ${cdir} +expect 0 rmdir ${n4} diff --git a/src/regress/sys/ffs/tests/rename/11.t b/src/regress/sys/ffs/tests/rename/11.t new file mode 100644 index 000000000..d40f08de6 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/11.t @@ -0,0 +1,19 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/11.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns ELOOP if too many symbolic links were encountered in translating one of the pathnames" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 symlink ${n0} ${n1} +expect 0 symlink ${n1} ${n0} +expect ELOOP rename ${n0}/test ${n2} +expect ELOOP rename ${n1}/test ${n2} +expect 0 create ${n2} 0644 +expect ELOOP rename ${n2} ${n0}/test +expect ELOOP rename ${n2} ${n1}/test +expect 0 unlink ${n0} +expect 0 unlink ${n1} +expect 0 unlink ${n2} diff --git a/src/regress/sys/ffs/tests/rename/12.t b/src/regress/sys/ffs/tests/rename/12.t new file mode 100644 index 000000000..95d63df17 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/12.t @@ -0,0 +1,17 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/12.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns ENOTDIR if a component of either path prefix is not a directory" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect ENOTDIR rename ${n0}/${n1}/test ${n0}/${n2} +expect 0 create ${n0}/${n2} 0644 +expect ENOTDIR link ${n0}/${n2} ${n0}/${n1}/test +expect 0 unlink ${n0}/${n1} +expect 0 unlink ${n0}/${n2} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/13.t b/src/regress/sys/ffs/tests/rename/13.t new file mode 100644 index 000000000..de50c8bdd --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/13.t @@ -0,0 +1,29 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/13.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns ENOTDIR when the 'from' argument is a directory, but 'to' is not a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 + +expect 0 create ${n1} 0644 +expect ENOTDIR rename ${n0} ${n1} +expect dir lstat ${n0} type +expect regular lstat ${n1} type +expect 0 unlink ${n1} + +expect 0 mkfifo ${n1} 0644 +expect ENOTDIR rename ${n0} ${n1} +expect dir lstat ${n0} type +expect fifo lstat ${n1} type +expect 0 unlink ${n1} + +expect 0 symlink test ${n1} +expect ENOTDIR rename ${n0} ${n1} +expect dir lstat ${n0} type +expect symlink lstat ${n1} type +expect 0 unlink ${n1} + +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/14.t b/src/regress/sys/ffs/tests/rename/14.t new file mode 100644 index 000000000..d0b3a0d14 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/14.t @@ -0,0 +1,29 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/14.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EISDIR when the 'to' argument is a directory, but 'from' is not a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 + +expect 0 create ${n1} 0644 +expect EISDIR rename ${n1} ${n0} +expect dir lstat ${n0} type +expect regular lstat ${n1} type +expect 0 unlink ${n1} + +expect 0 mkfifo ${n1} 0644 +expect EISDIR rename ${n1} ${n0} +expect dir lstat ${n0} type +expect fifo lstat ${n1} type +expect 0 unlink ${n1} + +expect 0 symlink test ${n1} +expect EISDIR rename ${n1} ${n0} +expect dir lstat ${n0} type +expect symlink lstat ${n1} type +expect 0 unlink ${n1} + +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/15.t b/src/regress/sys/ffs/tests/rename/15.t new file mode 100644 index 000000000..2bca8bc2c --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/15.t @@ -0,0 +1,35 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/15.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EXDEV if the link named by 'to' and the file named by 'from' are on different file systems" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} + +expect 0 create ${n0}/${n1} 0644 +expect EXDEV rename ${n0}/${n1} ${n2} +expect 0 unlink ${n0}/${n1} + +expect 0 mkdir ${n0}/${n1} 0755 +expect EXDEV rename ${n0}/${n1} ${n2} +expect 0 rmdir ${n0}/${n1} + +expect 0 mkfifo ${n0}/${n1} 0644 +expect EXDEV rename ${n0}/${n1} ${n2} +expect 0 unlink ${n0}/${n1} + +expect 0 symlink test ${n0}/${n1} +expect EXDEV rename ${n0}/${n1} ${n2} +expect 0 unlink ${n0}/${n1} + +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/16.t b/src/regress/sys/ffs/tests/rename/16.t new file mode 100644 index 000000000..41a653bce --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/16.t @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/16.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EROFS if the requested link requires writing in a directory on a read-only file system" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 create ${n0}/${n1} 0644 +mount -ur /dev/svnd1c + +expect EROFS rename ${n0}/${n1} ${n0}/${n2} +expect EROFS rename ${n0}/${n1} ${n2} +expect 0 create ${n2} 0644 +expect EROFS rename ${n2} ${n0}/${n2} +expect 0 unlink ${n2} + +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/17.t b/src/regress/sys/ffs/tests/rename/17.t new file mode 100644 index 000000000..287a60954 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/17.t @@ -0,0 +1,15 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/17.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EFAULT if one of the pathnames specified is outside the process's allocated address space" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect EFAULT rename ${n0} NULL +expect EFAULT rename ${n0} DEADCODE +expect 0 unlink ${n0} +expect EFAULT rename NULL ${n0} +expect EFAULT rename DEADCODE ${n0} +expect EFAULT rename NULL DEADCODE +expect EFAULT rename DEADCODE NULL diff --git a/src/regress/sys/ffs/tests/rename/18.t b/src/regress/sys/ffs/tests/rename/18.t new file mode 100644 index 000000000..2a5f4a681 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/18.t @@ -0,0 +1,17 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/18.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EINVAL when the 'from' argument is a parent directory of 'to'" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 mkdir ${n0}/${n1} 0755 + +expect EINVAL rename ${n0} ${n0}/${n1} +expect EINVAL rename ${n0} ${n0}/${n1}/${n2} + +expect 0 rmdir ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/19.t b/src/regress/sys/ffs/tests/rename/19.t new file mode 100644 index 000000000..2dde8ab16 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/19.t @@ -0,0 +1,17 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/19.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EINVAL when an attempt is made to rename '.' or '..'" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 mkdir ${n0}/${n1} 0755 + +expect EINVAL rename ${n0}/${n1}/. ${n2} +expect EINVAL rename ${n0}/${n1}/.. ${n2} + +expect 0 rmdir ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/20.t b/src/regress/sys/ffs/tests/rename/20.t new file mode 100644 index 000000000..3c9eaf02c --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/20.t @@ -0,0 +1,30 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rename/20.t,v 1.1 2007/01/17 01:42:10 pjd Exp $ + +desc="rename returns EEXIST or ENOTEMPTY if the 'to' argument is a directory and is not empty" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 mkdir ${n1} 0755 + +expect 0 create ${n1}/${n2} 0644 +expect "EEXIST|ENOTEMPTY" rename ${n0} ${n1} +expect 0 unlink ${n1}/${n2} + +expect 0 mkdir ${n1}/${n2} 0755 +expect "EEXIST|ENOTEMPTY" rename ${n0} ${n1} +expect 0 rmdir ${n1}/${n2} + +expect 0 mkfifo ${n1}/${n2} 0644 +expect "EEXIST|ENOTEMPTY" rename ${n0} ${n1} +expect 0 unlink ${n1}/${n2} + +expect 0 symlink test ${n1}/${n2} +expect "EEXIST|ENOTEMPTY" rename ${n0} ${n1} +expect 0 unlink ${n1}/${n2} + +expect 0 rmdir ${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rename/CVS/Entries b/src/regress/sys/ffs/tests/rename/CVS/Entries new file mode 100644 index 000000000..230654204 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/CVS/Entries @@ -0,0 +1,22 @@ +/00.t/1.1/Fri Mar 30 19:02:51 2007// +/01.t/1.1/Fri Mar 30 19:02:51 2007// +/02.t/1.1/Fri Mar 30 19:02:51 2007// +/03.t/1.1/Fri Mar 30 19:02:51 2007// +/04.t/1.1/Fri Mar 30 19:02:51 2007// +/05.t/1.1/Fri Mar 30 19:02:51 2007// +/06.t/1.2/Thu Apr 12 22:40:46 2007// +/07.t/1.2/Thu Apr 12 22:40:46 2007// +/08.t/1.2/Thu Apr 12 22:40:46 2007// +/09.t/1.1/Fri Mar 30 19:02:51 2007// +/10.t/1.1/Fri Mar 30 19:02:51 2007// +/11.t/1.1/Fri Mar 30 19:02:51 2007// +/12.t/1.1/Fri Mar 30 19:02:51 2007// +/13.t/1.1/Fri Mar 30 19:02:51 2007// +/14.t/1.1/Fri Mar 30 19:02:51 2007// +/15.t/1.1/Fri Mar 30 19:02:51 2007// +/16.t/1.1/Fri Mar 30 19:02:51 2007// +/17.t/1.1/Fri Mar 30 19:02:51 2007// +/18.t/1.1/Fri Mar 30 19:02:51 2007// +/19.t/1.1/Fri Mar 30 19:02:51 2007// +/20.t/1.1/Fri Mar 30 19:02:51 2007// +D diff --git a/src/regress/sys/ffs/tests/rename/CVS/Repository b/src/regress/sys/ffs/tests/rename/CVS/Repository new file mode 100644 index 000000000..100333144 --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests/rename diff --git a/src/regress/sys/ffs/tests/rename/CVS/Root b/src/regress/sys/ffs/tests/rename/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/rename/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/tests/rmdir/00.t b/src/regress/sys/ffs/tests/rmdir/00.t new file mode 100644 index 000000000..6086173f1 --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/00.t @@ -0,0 +1,23 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/00.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir removes directories" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect dir lstat ${n0} type +expect 0 rmdir ${n0} +expect ENOENT lstat ${n0} type + +expect 0 mkdir ${n0} 0755 +expect 0 mkdir ${n0}/${n1} 0755 +time=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 rmdir ${n0}/${n1} +mtime=`${FSTEST} stat ${n0} mtime` +test_check $time -lt $mtime +ctime=`${FSTEST} stat ${n0} ctime` +test_check $time -lt $ctime +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rmdir/01.t b/src/regress/sys/ffs/tests/rmdir/01.t new file mode 100644 index 000000000..cd98094a3 --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/01.t @@ -0,0 +1,25 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/01.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns ENOTDIR if a component of the path is not a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect ENOTDIR rmdir ${n0}/${n1}/test +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} + +expect 0 create ${n0} 0644 +expect ENOTDIR rmdir ${n0} +expect 0 unlink ${n0} + +expect 0 symlink ${n1} ${n0} +expect ENOTDIR rmdir ${n0} +expect 0 unlink ${n0} + +expect 0 mkfifo ${n0} 0644 +expect ENOTDIR rmdir ${n0} +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/rmdir/02.t b/src/regress/sys/ffs/tests/rmdir/02.t new file mode 100644 index 000000000..cc184e5da --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/02.t @@ -0,0 +1,9 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/02.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns ENAMETOOLONG if a component of a pathname exceeded 255 characters" + +expect 0 mkdir ${name255} 0755 +expect 0 rmdir ${name255} +expect ENOENT rmdir ${name255} +expect ENAMETOOLONG rmdir ${name256} diff --git a/src/regress/sys/ffs/tests/rmdir/03.t b/src/regress/sys/ffs/tests/rmdir/03.t new file mode 100644 index 000000000..c311fbf5b --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/03.t @@ -0,0 +1,17 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/03.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns ENAMETOOLONG if an entire path name exceeded 1023 characters" + +expect 0 mkdir ${name255} 0755 +expect 0 mkdir ${name255}/${name255} 0755 +expect 0 mkdir ${name255}/${name255}/${name255} 0755 +expect 0 mkdir ${path1021} 0755 +expect 0 mkdir ${path1023} 0755 +expect 0 rmdir ${path1023} +expect ENOENT rmdir ${path1023} +expect ENAMETOOLONG rmdir ${path1024} +expect 0 rmdir ${path1021} +expect 0 rmdir ${name255}/${name255}/${name255} +expect 0 rmdir ${name255}/${name255} +expect 0 rmdir ${name255} diff --git a/src/regress/sys/ffs/tests/rmdir/04.t b/src/regress/sys/ffs/tests/rmdir/04.t new file mode 100644 index 000000000..0f5baa2ba --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/04.t @@ -0,0 +1,12 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/04.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns ENOENT if the named directory does not exist" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 rmdir ${n0} +expect ENOENT rmdir ${n0} +expect ENOENT rmdir ${n1} diff --git a/src/regress/sys/ffs/tests/rmdir/05.t b/src/regress/sys/ffs/tests/rmdir/05.t new file mode 100644 index 000000000..120e3cc48 --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/05.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/05.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns ELOOP if too many symbolic links were encountered in translating the pathname" + +n0=`namegen` +n1=`namegen` + +expect 0 symlink ${n0} ${n1} +expect 0 symlink ${n1} ${n0} +expect ELOOP rmdir ${n0}/test +expect ELOOP rmdir ${n1}/test +expect 0 unlink ${n0} +expect 0 unlink ${n1} diff --git a/src/regress/sys/ffs/tests/rmdir/06.t b/src/regress/sys/ffs/tests/rmdir/06.t new file mode 100644 index 000000000..ce3313f3e --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/06.t @@ -0,0 +1,31 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/06.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns EEXIST or ENOTEMPTY the named directory contains files other than '.' and '..' in it" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 mkdir ${n0}/${n1} 0755 +expect "EEXIST|ENOTEMPTY" rmdir ${n0} +expect 0 rmdir ${n0}/${n1} +expect 0 rmdir ${n0} + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect "EEXIST|ENOTEMPTY" rmdir ${n0} +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} + +expect 0 mkdir ${n0} 0755 +expect 0 symlink test ${n0}/${n1} +expect "EEXIST|ENOTEMPTY" rmdir ${n0} +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} + +expect 0 mkdir ${n0} 0755 +expect 0 mkfifo ${n0}/${n1} 0644 +expect "EEXIST|ENOTEMPTY" rmdir ${n0} +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rmdir/07.t b/src/regress/sys/ffs/tests/rmdir/07.t new file mode 100644 index 000000000..8e99d13ee --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/07.t @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/07.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns EACCES when search permission is denied for a component of the path prefix" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 mkdir ${n1}/${n2} 0755 +expect 0 chmod ${n1} 0644 +expect EACCES -u 65534 -g 65534 rmdir ${n1}/${n2} +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 rmdir ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rmdir/08.t b/src/regress/sys/ffs/tests/rmdir/08.t new file mode 100644 index 000000000..c60c44b16 --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/08.t @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/08.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns EACCES when write permission is denied on the directory containing the link to be removed" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 mkdir ${n1}/${n2} 0755 +expect 0 chmod ${n1} 0555 +expect EACCES -u 65534 -g 65534 rmdir ${n1}/${n2} +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 rmdir ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rmdir/09.t b/src/regress/sys/ffs/tests/rmdir/09.t new file mode 100644 index 000000000..143b688a9 --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/09.t @@ -0,0 +1,30 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/09.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns EPERM if the named file has its immutable, undeletable or append-only flag set" + +n0=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM rmdir ${n0} +expect 0 chflags ${n0} none +expect 0 rmdir ${n0} + +expect 0 mkdir ${n0} 0755 +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM rmdir ${n0} +expect 0 chflags ${n0} none +expect 0 rmdir ${n0} + +expect 0 mkdir ${n0} 0755 +expect 0 chflags ${n0} SF_APPEND +expect EPERM rmdir ${n0} +expect 0 chflags ${n0} none +expect 0 rmdir ${n0} + +expect 0 mkdir ${n0} 0755 +expect 0 chflags ${n0} UF_APPEND +expect EPERM rmdir ${n0} +expect 0 chflags ${n0} none +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rmdir/10.t b/src/regress/sys/ffs/tests/rmdir/10.t new file mode 100644 index 000000000..e0ffac543 --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/10.t @@ -0,0 +1,35 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/10.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns EPERM if the parent directory of the named file has its immutable or append-only flag set" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 + +expect 0 mkdir ${n0}/${n1} 0755 +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM rmdir ${n0}/${n1} +expect 0 chflags ${n0} none +expect 0 rmdir ${n0}/${n1} + +expect 0 mkdir ${n0}/${n1} 0755 +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM rmdir ${n0}/${n1} +expect 0 chflags ${n0} none +expect 0 rmdir ${n0}/${n1} + +expect 0 mkdir ${n0}/${n1} 0755 +expect 0 chflags ${n0} SF_APPEND +expect EPERM rmdir ${n0}/${n1} +expect 0 chflags ${n0} none +expect 0 rmdir ${n0}/${n1} + +expect 0 mkdir ${n0}/${n1} 0755 +expect 0 chflags ${n0} UF_APPEND +expect EPERM rmdir ${n0}/${n1} +expect 0 chflags ${n0} none +expect 0 rmdir ${n0}/${n1} + +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rmdir/11.t b/src/regress/sys/ffs/tests/rmdir/11.t new file mode 100644 index 000000000..7869a79c1 --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/11.t @@ -0,0 +1,35 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/11.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns EACCES or EPERM if the directory containing the directory to be removed is marked sticky, and neither the containing directory nor the directory to be removed are owned by the effective user ID" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n2} 0755 +cdir=`pwd` +cd ${n2} + +expect 0 mkdir ${n0} 0755 +expect 0 chown ${n0} 65534 65534 +expect 0 chmod ${n0} 01777 + +# User owns both: the sticky directory and the directory to be removed. +expect 0 -u 65534 -g 65534 mkdir ${n0}/${n1} 0755 +expect 0 -u 65534 -g 65534 rmdir ${n0}/${n1} +# User owns the directory to be removed, but doesn't own the sticky directory. +expect 0 -u 65533 -g 65533 mkdir ${n0}/${n1} 0755 +expect 0 -u 65533 -g 65533 rmdir ${n0}/${n1} +# User owns the sticky directory, but doesn't own the directory to be removed. +expect 0 -u 65533 -g 65533 mkdir ${n0}/${n1} 0755 +expect 0 -u 65534 -g 65534 rmdir ${n0}/${n1} +# User doesn't own the sticky directory nor the directory to be removed. +expect 0 -u 65534 -g 65534 mkdir ${n0}/${n1} 0755 +expect "EACCES|EPERM" -u 65533 -g 65533 rmdir ${n0}/${n1} +expect 0 rmdir ${n0}/${n1} + +expect 0 rmdir ${n0} + +cd ${cdir} +expect 0 rmdir ${n2} diff --git a/src/regress/sys/ffs/tests/rmdir/12.t b/src/regress/sys/ffs/tests/rmdir/12.t new file mode 100644 index 000000000..a3fb0a87e --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/12.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/12.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns EINVAL if the last component of the path is '.' or '..'" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 mkdir ${n0}/${n1} 0755 +expect EINVAL rmdir ${n0}/${n1}/. +expect EINVAL rmdir ${n0}/${n1}/.. +expect 0 rmdir ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rmdir/13.t b/src/regress/sys/ffs/tests/rmdir/13.t new file mode 100644 index 000000000..64c475dae --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/13.t @@ -0,0 +1,17 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/13.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns EBUSY if the directory to be removed is the mount point for a mounted file system" + +n0=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect EBUSY rmdir ${n0} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rmdir/14.t b/src/regress/sys/ffs/tests/rmdir/14.t new file mode 100644 index 000000000..d9d670396 --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/14.t @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/14.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns EROFS if the named file resides on a read-only file system" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 mkdir ${n0}/${n1} 0755 +mount -ur /dev/svnd1c +expect EROFS rmdir ${n0}/${n1} +mount -uw /dev/svnd1c +expect 0 rmdir ${n0}/${n1} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/rmdir/15.t b/src/regress/sys/ffs/tests/rmdir/15.t new file mode 100644 index 000000000..1b719e977 --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/15.t @@ -0,0 +1,7 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/rmdir/15.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="rmdir returns EFAULT if the path argument points outside the process's allocated address space" + +expect EFAULT rmdir NULL +expect EFAULT rmdir DEADCODE diff --git a/src/regress/sys/ffs/tests/rmdir/CVS/Entries b/src/regress/sys/ffs/tests/rmdir/CVS/Entries new file mode 100644 index 000000000..35ad4a018 --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/CVS/Entries @@ -0,0 +1,17 @@ +/00.t/1.1/Fri Mar 30 19:02:51 2007// +/01.t/1.1/Fri Mar 30 19:02:51 2007// +/02.t/1.1/Fri Mar 30 19:02:51 2007// +/03.t/1.1/Fri Mar 30 19:02:51 2007// +/04.t/1.1/Fri Mar 30 19:02:51 2007// +/05.t/1.1/Fri Mar 30 19:02:51 2007// +/06.t/1.1/Fri Mar 30 19:02:51 2007// +/07.t/1.1/Fri Mar 30 19:02:51 2007// +/08.t/1.1/Fri Mar 30 19:02:51 2007// +/09.t/1.2/Thu Apr 12 22:40:46 2007// +/10.t/1.2/Thu Apr 12 22:40:46 2007// +/11.t/1.1/Fri Mar 30 19:02:51 2007// +/12.t/1.1/Fri Mar 30 19:02:51 2007// +/13.t/1.1/Fri Mar 30 19:02:51 2007// +/14.t/1.1/Fri Mar 30 19:02:52 2007// +/15.t/1.1/Fri Mar 30 19:02:52 2007// +D diff --git a/src/regress/sys/ffs/tests/rmdir/CVS/Repository b/src/regress/sys/ffs/tests/rmdir/CVS/Repository new file mode 100644 index 000000000..849447cc2 --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests/rmdir diff --git a/src/regress/sys/ffs/tests/rmdir/CVS/Root b/src/regress/sys/ffs/tests/rmdir/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/rmdir/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/tests/symlink/00.t b/src/regress/sys/ffs/tests/symlink/00.t new file mode 100644 index 000000000..51ac0e477 --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/00.t @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/00.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink creates symbolic links" + +n0=`namegen` +n1=`namegen` + +expect 0 create ${n0} 0644 +expect regular,0644 lstat ${n0} type,mode +expect 0 symlink ${n0} ${n1} +expect symlink lstat ${n1} type +expect regular,0644 stat ${n1} type,mode +expect 0 unlink ${n0} +expect ENOENT stat ${n1} type,mode +expect 0 unlink ${n1} + +expect 0 mkdir ${n0} 0755 +time=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 symlink test ${n0}/${n1} +mtime=`${FSTEST} stat ${n0} mtime` +test_check $time -lt $mtime +ctime=`${FSTEST} stat ${n0} ctime` +test_check $time -lt $ctime +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/symlink/01.t b/src/regress/sys/ffs/tests/symlink/01.t new file mode 100644 index 000000000..8a3c0727f --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/01.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/01.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink returns ENOTDIR if a component of the name2 path prefix is not a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect ENOTDIR symlink test ${n0}/${n1}/test +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/symlink/02.t b/src/regress/sys/ffs/tests/symlink/02.t new file mode 100644 index 000000000..0c79c2909 --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/02.t @@ -0,0 +1,15 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/02.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink returns ENAMETOOLONG if a component of the name2 pathname exceeded 255 characters" + +n0=`namegen` + +expect 0 symlink ${name255} ${n0} +expect 0 unlink ${n0} +expect 0 symlink ${n0} ${name255} +expect 0 unlink ${name255} + +expect ENAMETOOLONG symlink ${n0} ${name256} +expect 0 symlink ${name256} ${n0} +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/symlink/03.t b/src/regress/sys/ffs/tests/symlink/03.t new file mode 100644 index 000000000..341eb66b1 --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/03.t @@ -0,0 +1,21 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/03.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink returns ENAMETOOLONG if an entire length of either path name exceeded 1023 characters" + +n0=`namegen` + +expect 0 symlink ${path1023} ${n0} +expect 0 unlink ${n0} +expect 0 mkdir ${name255} 0755 +expect 0 mkdir ${name255}/${name255} 0755 +expect 0 mkdir ${name255}/${name255}/${name255} 0755 +expect 0 mkdir ${path1021} 0755 +expect 0 symlink ${n0} ${path1023} +expect 0 unlink ${path1023} +expect ENAMETOOLONG symlink ${n0} ${path1024} +expect ENAMETOOLONG symlink ${path1024} ${n0} +expect 0 rmdir ${path1021} +expect 0 rmdir ${name255}/${name255}/${name255} +expect 0 rmdir ${name255}/${name255} +expect 0 rmdir ${name255} diff --git a/src/regress/sys/ffs/tests/symlink/04.t b/src/regress/sys/ffs/tests/symlink/04.t new file mode 100644 index 000000000..c8ca3ba53 --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/04.t @@ -0,0 +1,11 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/04.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink returns ENOENT if a component of the name2 path prefix does not exist" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect ENOENT symlink test ${n0}/${n1}/test +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/symlink/05.t b/src/regress/sys/ffs/tests/symlink/05.t new file mode 100644 index 000000000..b3cfd6169 --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/05.t @@ -0,0 +1,29 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/05.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink returns EACCES when a component of the name2 path prefix denies search permission" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} + +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 + +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n2} +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} + +expect 0 chmod ${n1} 0644 +expect EACCES -u 65534 -g 65534 symlink test ${n1}/${n2} +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n2} +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} + +expect 0 rmdir ${n1} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/symlink/06.t b/src/regress/sys/ffs/tests/symlink/06.t new file mode 100644 index 000000000..e3393645b --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/06.t @@ -0,0 +1,29 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/06.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink returns EACCES if the parent directory of the file to be created denies write permission" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} + +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 + +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n2} +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} + +expect 0 chmod ${n1} 0555 +expect EACCES -u 65534 -g 65534 symlink test ${n1}/${n2} +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 symlink test ${n1}/${n2} +expect 0 unlink ${n1}/${n2} + +expect 0 rmdir ${n1} + +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/symlink/07.t b/src/regress/sys/ffs/tests/symlink/07.t new file mode 100644 index 000000000..1c72c4b17 --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/07.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/07.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink returns ELOOP if too many symbolic links were encountered in translating the name2 path name" + +n0=`namegen` +n1=`namegen` + +expect 0 symlink ${n0} ${n1} +expect 0 symlink ${n1} ${n0} +expect ELOOP symlink test ${n0}/test +expect ELOOP symlink test ${n1}/test +expect 0 unlink ${n0} +expect 0 unlink ${n1} diff --git a/src/regress/sys/ffs/tests/symlink/08.t b/src/regress/sys/ffs/tests/symlink/08.t new file mode 100644 index 000000000..98128a12b --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/08.t @@ -0,0 +1,18 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/08.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink returns EEXIST if the name2 argument already exists" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect EEXIST symlink test ${n0} +expect 0 unlink ${n0} + +expect 0 mkdir ${n0} 0755 +expect EEXIST symlink test ${n0} +expect 0 rmdir ${n0} + +expect 0 symlink test ${n0} +expect EEXIST symlink test ${n0} +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/symlink/09.t b/src/regress/sys/ffs/tests/symlink/09.t new file mode 100644 index 000000000..b10a08922 --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/09.t @@ -0,0 +1,36 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/09.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink returns EPERM if the parent directory of the file named by name2 has its immutable flag set" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 + +expect 0 symlink test ${n0}/${n1} +expect 0 unlink ${n0}/${n1} + +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM symlink test ${n0}/${n1} +expect 0 chflags ${n0} none +expect 0 symlink test ${n0}/${n1} +expect 0 unlink ${n0}/${n1} + +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM symlink test ${n0}/${n1} +expect 0 chflags ${n0} none +expect 0 symlink test ${n0}/${n1} +expect 0 unlink ${n0}/${n1} + +expect 0 chflags ${n0} SF_APPEND +expect 0 symlink test ${n0}/${n1} +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 chflags ${n0} UF_APPEND +expect 0 symlink test ${n0}/${n1} +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/symlink/10.t b/src/regress/sys/ffs/tests/symlink/10.t new file mode 100644 index 000000000..c9230802f --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/10.t @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/10.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink returns EROFS if the file name2 would reside on a read-only file system" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} + +expect 0 symlink test ${n0}/${n1} +expect 0 unlink ${n0}/${n1} +mount -ur /dev/svnd1c +expect EROFS symlink test ${n0}/${n1} +mount -uw /dev/svnd1c +expect 0 symlink test ${n0}/${n1} +expect 0 unlink ${n0}/${n1} + +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/symlink/11.t b/src/regress/sys/ffs/tests/symlink/11.t new file mode 100644 index 000000000..27c26401f --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/11.t @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/11.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink returns ENOSPC if there are no free inodes on the file system on which the symbolic link is being created" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=256 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} + +i=0 +while :; do + ln -s test ${n0}/${i} >/dev/null 2>&1 + if [ $? -ne 0 ]; then + break + fi + i=`expr $i + 1` +done +expect ENOSPC symlink test ${n0}/${n1} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/symlink/12.t b/src/regress/sys/ffs/tests/symlink/12.t new file mode 100644 index 000000000..a5468c83d --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/12.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/symlink/12.t,v 1.1 2007/01/17 01:42:11 pjd Exp $ + +desc="symlink returns EFAULT if one of the pathnames specified is outside the process's allocated address space" + +n0=`namegen` + +expect EFAULT symlink NULL ${n0} +expect EFAULT symlink DEADCODE ${n0} +expect EFAULT symlink test NULL +expect EFAULT symlink test DEADCODE +expect EFAULT symlink NULL DEADCODE +expect EFAULT symlink DEADCODE NULL diff --git a/src/regress/sys/ffs/tests/symlink/CVS/Entries b/src/regress/sys/ffs/tests/symlink/CVS/Entries new file mode 100644 index 000000000..5b457e3d9 --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/CVS/Entries @@ -0,0 +1,14 @@ +/00.t/1.1/Fri Mar 30 19:02:52 2007// +/01.t/1.1/Fri Mar 30 19:02:52 2007// +/02.t/1.1/Fri Mar 30 19:02:52 2007// +/03.t/1.1/Fri Mar 30 19:02:52 2007// +/04.t/1.1/Fri Mar 30 19:02:52 2007// +/05.t/1.1/Fri Mar 30 19:02:52 2007// +/06.t/1.1/Fri Mar 30 19:02:52 2007// +/07.t/1.1/Fri Mar 30 19:02:52 2007// +/08.t/1.1/Fri Mar 30 19:02:52 2007// +/09.t/1.2/Thu Apr 12 22:40:46 2007// +/10.t/1.1/Fri Mar 30 19:02:52 2007// +/11.t/1.1/Fri Mar 30 19:02:52 2007// +/12.t/1.1/Fri Mar 30 19:02:52 2007// +D diff --git a/src/regress/sys/ffs/tests/symlink/CVS/Repository b/src/regress/sys/ffs/tests/symlink/CVS/Repository new file mode 100644 index 000000000..3a1b59f7a --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests/symlink diff --git a/src/regress/sys/ffs/tests/symlink/CVS/Root b/src/regress/sys/ffs/tests/symlink/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/symlink/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/tests/truncate/00.t b/src/regress/sys/ffs/tests/truncate/00.t new file mode 100644 index 000000000..295ec7b91 --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/00.t @@ -0,0 +1,46 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/00.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate descrease/increase file size" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n1} 0755 +cdir=`pwd` +cd ${n1} + +expect 0 create ${n0} 0644 +expect 0 truncate ${n0} 1234567 +expect 1234567 lstat ${n0} size +expect 0 truncate ${n0} 567 +expect 567 lstat ${n0} size +expect 0 unlink ${n0} + +dd if=/dev/random of=${n0} bs=12345 count=1 >/dev/null 2>&1 +expect 0 truncate ${n0} 23456 +expect 23456 lstat ${n0} size +expect 0 truncate ${n0} 1 +expect 1 lstat ${n0} size +expect 0 unlink ${n0} + +# successful truncate(2) updates ctime. +expect 0 create ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 truncate ${n0} 123 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n0} + +# unsuccessful truncate(2) does not update ctime. +expect 0 create ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect EACCES -u 65534 truncate ${n0} 123 +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} + +cd ${cdir} +expect 0 rmdir ${n1} diff --git a/src/regress/sys/ffs/tests/truncate/01.t b/src/regress/sys/ffs/tests/truncate/01.t new file mode 100644 index 000000000..d70cd3fd9 --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/01.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/01.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns ENOTDIR if a component of the path prefix is not a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect ENOTDIR truncate ${n0}/${n1}/test 123 +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/truncate/02.t b/src/regress/sys/ffs/tests/truncate/02.t new file mode 100644 index 000000000..65adbb546 --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/02.t @@ -0,0 +1,10 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/02.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns ENAMETOOLONG if a component of a pathname exceeded 255 characters" + +expect 0 create ${name255} 0644 +expect 0 truncate ${name255} 123 +expect 123 stat ${name255} size +expect 0 unlink ${name255} +expect ENAMETOOLONG truncate ${name256} 123 diff --git a/src/regress/sys/ffs/tests/truncate/03.t b/src/regress/sys/ffs/tests/truncate/03.t new file mode 100644 index 000000000..c61ca57a3 --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/03.t @@ -0,0 +1,17 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/03.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns ENAMETOOLONG if an entire path name exceeded 1023 characters" + +expect 0 mkdir ${name255} 0755 +expect 0 mkdir ${name255}/${name255} 0755 +expect 0 mkdir ${name255}/${name255}/${name255} 0755 +expect 0 mkdir ${path1021} 0755 +expect 0 create ${path1023} 0644 +expect 0 truncate ${path1023} 123 +expect 0 unlink ${path1023} +expect ENAMETOOLONG truncate ${path1024} 123 +expect 0 rmdir ${path1021} +expect 0 rmdir ${name255}/${name255}/${name255} +expect 0 rmdir ${name255}/${name255} +expect 0 rmdir ${name255} diff --git a/src/regress/sys/ffs/tests/truncate/04.t b/src/regress/sys/ffs/tests/truncate/04.t new file mode 100644 index 000000000..5ab0a1e66 --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/04.t @@ -0,0 +1,12 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/04.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns ENOENT if the named file does not exist" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect ENOENT truncate ${n0}/${n1}/test 123 +expect ENOENT truncate ${n0}/${n1} 123 +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/truncate/05.t b/src/regress/sys/ffs/tests/truncate/05.t new file mode 100644 index 000000000..e0134729e --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/05.t @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/05.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns EACCES when search permission is denied for a component of the path prefix" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644 +expect 0 -u 65534 -g 65534 truncate ${n1}/${n2} 123 +expect 123 -u 65534 -g 65534 stat ${n1}/${n2} size +expect 0 chmod ${n1} 0644 +expect EACCES -u 65534 -g 65534 truncate ${n1}/${n2} 1234 +expect 0 chmod ${n1} 0755 +expect 123 -u 65534 -g 65534 stat ${n1}/${n2} size +expect 0 -u 65534 -g 65534 truncate ${n1}/${n2} 1234 +expect 1234 -u 65534 -g 65534 stat ${n1}/${n2} size +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/truncate/06.t b/src/regress/sys/ffs/tests/truncate/06.t new file mode 100644 index 000000000..d7a3eda28 --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/06.t @@ -0,0 +1,19 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/06.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns EACCES if the named file is not writable by the user" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 create ${n1} 0644 +expect EACCES -u 65534 -g 65534 truncate ${n1} 123 +expect 0 chown ${n1} 65534 65534 +expect 0 chmod ${n1} 0444 +expect EACCES -u 65534 -g 65534 truncate ${n1} 123 +expect 0 unlink ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/truncate/07.t b/src/regress/sys/ffs/tests/truncate/07.t new file mode 100644 index 000000000..98c70a0ef --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/07.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/07.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns ELOOP if too many symbolic links were encountered in translating the pathname" + +n0=`namegen` +n1=`namegen` + +expect 0 symlink ${n0} ${n1} +expect 0 symlink ${n1} ${n0} +expect ELOOP truncate ${n0}/test 123 +expect ELOOP truncate ${n1}/test 123 +expect 0 unlink ${n0} +expect 0 unlink ${n1} diff --git a/src/regress/sys/ffs/tests/truncate/08.t b/src/regress/sys/ffs/tests/truncate/08.t new file mode 100644 index 000000000..52d630462 --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/08.t @@ -0,0 +1,38 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/08.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns EPERM if the named file has its immutable or append-only flag set" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM truncate ${n0} 123 +expect 0 stat ${n0} size +expect 0 chflags ${n0} none +expect 0 truncate ${n0} 123 +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM truncate ${n0} 123 +expect 0 stat ${n0} size +expect 0 chflags ${n0} none +expect 0 truncate ${n0} 123 +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} SF_APPEND +expect EPERM truncate ${n0} 123 +expect 0 stat ${n0} size +expect 0 chflags ${n0} none +expect 0 truncate ${n0} 123 +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} UF_APPEND +expect EPERM truncate ${n0} 123 +expect 0 stat ${n0} size +expect 0 chflags ${n0} none +expect 0 truncate ${n0} 123 +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/truncate/09.t b/src/regress/sys/ffs/tests/truncate/09.t new file mode 100644 index 000000000..897ab0a57 --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/09.t @@ -0,0 +1,10 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/09.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns EISDIR if the named file is a directory" + +n0=`namegen` + +expect 0 mkdir ${n0} 0755 +expect EISDIR truncate ${n0} 123 +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/truncate/10.t b/src/regress/sys/ffs/tests/truncate/10.t new file mode 100644 index 000000000..5479cefde --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/10.t @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/10.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns EROFS if the named file resides on a read-only file system" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 create ${n0}/${n1} 0644 +expect 0 truncate ${n0}/${n1} 123 +expect 123 stat ${n0}/${n1} size +mount -ur /dev/svnd1c +expect EROFS truncate ${n0}/${n1} 1234 +expect 123 stat ${n0}/${n1} size +mount -uw /dev/svnd1c +expect 0 truncate ${n0}/${n1} 1234 +expect 1234 stat ${n0}/${n1} size +expect 0 unlink ${n0}/${n1} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/truncate/11.t b/src/regress/sys/ffs/tests/truncate/11.t new file mode 100644 index 000000000..87b339db5 --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/11.t @@ -0,0 +1,11 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/11.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns ETXTBSY the file is a pure procedure (shared text) file that is being executed" + +n0=`namegen` + +cp -pf `which sleep` ${n0} +./${n0} 3 & +expect ETXTBSY truncate ${n0} 123 +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/truncate/12.t b/src/regress/sys/ffs/tests/truncate/12.t new file mode 100644 index 000000000..c3786f171 --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/12.t @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/12.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns EFBIG or EINVAL if the length argument was greater than the maximum file size" + +n0=`namegen` + +expect 0 create ${n0} 0644 +r=`${FSTEST} truncate ${n0} 999999999999999 2>/dev/null` +case "${r}" in +EFBIG|EINVAL) + expect 0 stat ${n0} size + ;; +0) + expect 999999999999999 stat ${n0} size + ;; +*) + echo "not ok ${ntest}" + ntest=`expr ${ntest} + 1` + ;; +esac +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/truncate/13.t b/src/regress/sys/ffs/tests/truncate/13.t new file mode 100644 index 000000000..30c63cf5a --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/13.t @@ -0,0 +1,11 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/13.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns EINVAL if the length argument was less than 0" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect EINVAL truncate ${n0} -1 +expect EINVAL truncate ${n0} -999999 +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/truncate/14.t b/src/regress/sys/ffs/tests/truncate/14.t new file mode 100644 index 000000000..84723d2d2 --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/14.t @@ -0,0 +1,7 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/truncate/14.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="truncate returns EFAULT if the path argument points outside the process's allocated address space" + +expect EFAULT truncate NULL 123 +expect EFAULT truncate DEADCODE 123 diff --git a/src/regress/sys/ffs/tests/truncate/CVS/Entries b/src/regress/sys/ffs/tests/truncate/CVS/Entries new file mode 100644 index 000000000..a8d87f363 --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/CVS/Entries @@ -0,0 +1,16 @@ +/00.t/1.1/Fri Mar 30 19:02:52 2007// +/01.t/1.1/Fri Mar 30 19:02:52 2007// +/02.t/1.1/Fri Mar 30 19:02:52 2007// +/03.t/1.1/Fri Mar 30 19:02:52 2007// +/04.t/1.1/Fri Mar 30 19:02:52 2007// +/05.t/1.1/Fri Mar 30 19:02:52 2007// +/06.t/1.1/Fri Mar 30 19:02:52 2007// +/07.t/1.1/Fri Mar 30 19:02:52 2007// +/08.t/1.2/Thu Apr 12 22:40:46 2007// +/09.t/1.1/Fri Mar 30 19:02:52 2007// +/10.t/1.1/Fri Mar 30 19:02:52 2007// +/11.t/1.1/Fri Mar 30 19:02:52 2007// +/12.t/1.1/Fri Mar 30 19:02:52 2007// +/13.t/1.1/Fri Mar 30 19:02:52 2007// +/14.t/1.1/Fri Mar 30 19:02:52 2007// +D diff --git a/src/regress/sys/ffs/tests/truncate/CVS/Repository b/src/regress/sys/ffs/tests/truncate/CVS/Repository new file mode 100644 index 000000000..c3607168e --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests/truncate diff --git a/src/regress/sys/ffs/tests/truncate/CVS/Root b/src/regress/sys/ffs/tests/truncate/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/truncate/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ffs/tests/unlink/00.t b/src/regress/sys/ffs/tests/unlink/00.t new file mode 100644 index 000000000..e09922f72 --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/00.t @@ -0,0 +1,110 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/00.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink removes regular files, symbolic links, fifos and sockets" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n2} 0755 +cdir=`pwd` +cd ${n2} + +expect 0 create ${n0} 0644 +expect regular lstat ${n0} type +expect 0 unlink ${n0} +expect ENOENT lstat ${n0} type + +expect 0 symlink ${n1} ${n0} +expect symlink lstat ${n0} type +expect 0 unlink ${n0} +expect ENOENT lstat ${n0} type + +expect 0 mkfifo ${n0} 0644 +expect fifo lstat ${n0} type +expect 0 unlink ${n0} +expect ENOENT lstat ${n0} type + +# TODO: sockets removal + +# successful unlink(2) updates ctime. +expect 0 create ${n0} 0644 +expect 0 link ${n0} ${n1} +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 unlink ${n1} +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n0} + +expect 0 mkfifo ${n0} 0644 +expect 0 link ${n0} ${n1} +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 unlink ${n1} +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -lt $ctime2 +expect 0 unlink ${n0} + +# unsuccessful unlink(2) does not update ctime. +expect 0 create ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect EACCES -u 65534 unlink ${n0} +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} + +expect 0 mkfifo ${n0} 0644 +ctime1=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect EACCES -u 65534 unlink ${n0} +ctime2=`${FSTEST} stat ${n0} ctime` +test_check $ctime1 -eq $ctime2 +expect 0 unlink ${n0} + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +time=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 unlink ${n0}/${n1} +mtime=`${FSTEST} stat ${n0} mtime` +test_check $time -lt $mtime +ctime=`${FSTEST} stat ${n0} ctime` +test_check $time -lt $ctime +expect 0 rmdir ${n0} + +expect 0 mkdir ${n0} 0755 +expect 0 mkfifo ${n0}/${n1} 0644 +time=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 unlink ${n0}/${n1} +mtime=`${FSTEST} stat ${n0} mtime` +test_check $time -lt $mtime +ctime=`${FSTEST} stat ${n0} ctime` +test_check $time -lt $ctime +expect 0 rmdir ${n0} + +expect 0 mkdir ${n0} 0755 +expect 0 symlink test ${n0}/${n1} +time=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 unlink ${n0}/${n1} +mtime=`${FSTEST} stat ${n0} mtime` +test_check $time -lt $mtime +ctime=`${FSTEST} stat ${n0} ctime` +test_check $time -lt $ctime +expect 0 rmdir ${n0} + +expect 0 create ${n0} 0644 +expect 0 link ${n0} ${n1} +time=`${FSTEST} stat ${n0} ctime` +sleep 1 +expect 0 unlink ${n1} +ctime=`${FSTEST} stat ${n0} ctime` +test_check $time -lt $ctime +expect 0 unlink ${n0} + +cd ${cdir} +expect 0 rmdir ${n2} diff --git a/src/regress/sys/ffs/tests/unlink/01.t b/src/regress/sys/ffs/tests/unlink/01.t new file mode 100644 index 000000000..3cf7219b8 --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/01.t @@ -0,0 +1,13 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/01.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns ENOTDIR if a component of the path prefix is not a directory" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +expect 0 create ${n0}/${n1} 0644 +expect ENOTDIR unlink ${n0}/${n1}/test +expect 0 unlink ${n0}/${n1} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/unlink/02.t b/src/regress/sys/ffs/tests/unlink/02.t new file mode 100644 index 000000000..6f2fe41f0 --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/02.t @@ -0,0 +1,9 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/02.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns ENAMETOOLONG if a component of a pathname exceeded 255 characters" + +expect 0 create ${name255} 0644 +expect 0 unlink ${name255} +expect ENOENT unlink ${name255} +expect ENAMETOOLONG unlink ${name256} diff --git a/src/regress/sys/ffs/tests/unlink/03.t b/src/regress/sys/ffs/tests/unlink/03.t new file mode 100644 index 000000000..3e791a6cb --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/03.t @@ -0,0 +1,17 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/03.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns ENAMETOOLONG if an entire path name exceeded 1023 characters" + +expect 0 mkdir ${name255} 0755 +expect 0 mkdir ${name255}/${name255} 0755 +expect 0 mkdir ${name255}/${name255}/${name255} 0755 +expect 0 mkdir ${path1021} 0755 +expect 0 create ${path1023} 0644 +expect 0 unlink ${path1023} +expect ENOENT unlink ${path1023} +expect ENAMETOOLONG unlink ${path1024} +expect 0 rmdir ${path1021} +expect 0 rmdir ${name255}/${name255}/${name255} +expect 0 rmdir ${name255}/${name255} +expect 0 rmdir ${name255} diff --git a/src/regress/sys/ffs/tests/unlink/04.t b/src/regress/sys/ffs/tests/unlink/04.t new file mode 100644 index 000000000..3854264a6 --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/04.t @@ -0,0 +1,12 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/04.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns ENOENT if the named file does not exist" + +n0=`namegen` +n1=`namegen` + +expect 0 create ${n0} 0644 +expect 0 unlink ${n0} +expect ENOENT unlink ${n0} +expect ENOENT unlink ${n1} diff --git a/src/regress/sys/ffs/tests/unlink/05.t b/src/regress/sys/ffs/tests/unlink/05.t new file mode 100644 index 000000000..c81cfffdd --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/05.t @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/05.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns EACCES when search permission is denied for a component of the path prefix" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644 +expect 0 chmod ${n1} 0644 +expect EACCES -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/unlink/06.t b/src/regress/sys/ffs/tests/unlink/06.t new file mode 100644 index 000000000..9d0b3c9e3 --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/06.t @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/06.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns EACCES when write permission is denied on the directory containing the link to be removed" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n0} 0755 +cdir=`pwd` +cd ${n0} +expect 0 mkdir ${n1} 0755 +expect 0 chown ${n1} 65534 65534 +expect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644 +expect 0 chmod ${n1} 0555 +expect EACCES -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 chmod ${n1} 0755 +expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} +expect 0 rmdir ${n1} +cd ${cdir} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/unlink/07.t b/src/regress/sys/ffs/tests/unlink/07.t new file mode 100644 index 000000000..050da5860 --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/07.t @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/07.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns ELOOP if too many symbolic links were encountered in translating the pathname" + +n0=`namegen` +n1=`namegen` + +expect 0 symlink ${n0} ${n1} +expect 0 symlink ${n1} ${n0} +expect ELOOP unlink ${n0}/test +expect ELOOP unlink ${n1}/test +expect 0 unlink ${n0} +expect 0 unlink ${n1} diff --git a/src/regress/sys/ffs/tests/unlink/08.t b/src/regress/sys/ffs/tests/unlink/08.t new file mode 100644 index 000000000..f684f5b23 --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/08.t @@ -0,0 +1,10 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/08.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns EPERM if the named file is a directory" + +n0=`namegen` + +expect 0 mkdir ${n0} 0755 +expect EPERM unlink ${n0} +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/unlink/09.t b/src/regress/sys/ffs/tests/unlink/09.t new file mode 100644 index 000000000..908f2c18d --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/09.t @@ -0,0 +1,30 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/09.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns EPERM if the named file has its immutable, undeletable or append-only flag set" + +n0=`namegen` + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM unlink ${n0} +expect 0 chflags ${n0} none +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM unlink ${n0} +expect 0 chflags ${n0} none +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} SF_APPEND +expect EPERM unlink ${n0} +expect 0 chflags ${n0} none +expect 0 unlink ${n0} + +expect 0 create ${n0} 0644 +expect 0 chflags ${n0} UF_APPEND +expect EPERM unlink ${n0} +expect 0 chflags ${n0} none +expect 0 unlink ${n0} diff --git a/src/regress/sys/ffs/tests/unlink/10.t b/src/regress/sys/ffs/tests/unlink/10.t new file mode 100644 index 000000000..363b5f5a3 --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/10.t @@ -0,0 +1,35 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/10.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns EPERM if the parent directory of the named file has its immutable or append-only flag set" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 + +expect 0 create ${n0}/${n1} 0644 +expect 0 chflags ${n0} SF_IMMUTABLE +expect EPERM unlink ${n0}/${n1} +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 create ${n0}/${n1} 0644 +expect 0 chflags ${n0} UF_IMMUTABLE +expect EPERM unlink ${n0}/${n1} +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 create ${n0}/${n1} 0644 +expect 0 chflags ${n0} SF_APPEND +expect EPERM unlink ${n0}/${n1} +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 create ${n0}/${n1} 0644 +expect 0 chflags ${n0} UF_APPEND +expect EPERM unlink ${n0}/${n1} +expect 0 chflags ${n0} none +expect 0 unlink ${n0}/${n1} + +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/unlink/11.t b/src/regress/sys/ffs/tests/unlink/11.t new file mode 100644 index 000000000..21ca30888 --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/11.t @@ -0,0 +1,63 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/11.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns EACCES or EPERM if the directory containing the file is marked sticky, and neither the containing directory nor the file to be removed are owned by the effective user ID" + +n0=`namegen` +n1=`namegen` +n2=`namegen` + +expect 0 mkdir ${n2} 0755 +cdir=`pwd` +cd ${n2} + +expect 0 mkdir ${n0} 0755 +expect 0 chown ${n0} 65534 65534 +expect 0 chmod ${n0} 01777 + +# User owns both: the sticky directory and the file to be removed. +expect 0 -u 65534 -g 65534 create ${n0}/${n1} 0644 +expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} +# User owns the file to be removed, but doesn't own the sticky directory. +expect 0 -u 65533 -g 65533 create ${n0}/${n1} 0644 +expect 0 -u 65533 -g 65533 unlink ${n0}/${n1} +# User owns the sticky directory, but doesn't own the file to be removed. +expect 0 -u 65533 -g 65533 create ${n0}/${n1} 0644 +expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} +# User doesn't own the sticky directory nor the file to be removed. +expect 0 -u 65534 -g 65534 create ${n0}/${n1} 0644 +expect "EACCES|EPERM" -u 65533 -g 65533 unlink ${n0}/${n1} +expect 0 unlink ${n0}/${n1} + +# User owns both: the sticky directory and the fifo to be removed. +expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n1} 0644 +expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} +# User owns the fifo to be removed, but doesn't own the sticky directory. +expect 0 -u 65533 -g 65533 mkfifo ${n0}/${n1} 0644 +expect 0 -u 65533 -g 65533 unlink ${n0}/${n1} +# User owns the sticky directory, but doesn't own the fifo to be removed. +expect 0 -u 65533 -g 65533 mkfifo ${n0}/${n1} 0644 +expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} +# User doesn't own the sticky directory nor the fifo to be removed. +expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n1} 0644 +expect "EACCES|EPERM" -u 65533 -g 65533 unlink ${n0}/${n1} +expect 0 unlink ${n0}/${n1} + +# User owns both: the sticky directory and the symlink to be removed. +expect 0 -u 65534 -g 65534 symlink test ${n0}/${n1} +expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} +# User owns the symlink to be removed, but doesn't own the sticky directory. +expect 0 -u 65533 -g 65533 symlink test ${n0}/${n1} +expect 0 -u 65533 -g 65533 unlink ${n0}/${n1} +# User owns the sticky directory, but doesn't own the symlink to be removed. +expect 0 -u 65533 -g 65533 symlink test ${n0}/${n1} +expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} +# User doesn't own the sticky directory nor the symlink to be removed. +expect 0 -u 65534 -g 65534 symlink test ${n0}/${n1} +expect "EACCES|EPERM" -u 65533 -g 65533 unlink ${n0}/${n1} +expect 0 unlink ${n0}/${n1} + +expect 0 rmdir ${n0} + +cd ${cdir} +expect 0 rmdir ${n2} diff --git a/src/regress/sys/ffs/tests/unlink/12.t b/src/regress/sys/ffs/tests/unlink/12.t new file mode 100644 index 000000000..60d070352 --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/12.t @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/12.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns EROFS if the named file resides on a read-only file system" + +n0=`namegen` +n1=`namegen` + +expect 0 mkdir ${n0} 0755 +dd if=/dev/zero of=tmpdisk bs=1k count=1024 2>/dev/null +vnconfig svnd1 tmpdisk +newfs /dev/rsvnd1c >/dev/null +mount /dev/svnd1c ${n0} +expect 0 create ${n0}/${n1} 0644 +mount -ur /dev/svnd1c +expect EROFS unlink ${n0}/${n1} +mount -uw /dev/svnd1c +expect 0 unlink ${n0}/${n1} +umount /dev/svnd1c +vnconfig -u svnd1 +rm tmpdisk +expect 0 rmdir ${n0} diff --git a/src/regress/sys/ffs/tests/unlink/13.t b/src/regress/sys/ffs/tests/unlink/13.t new file mode 100644 index 000000000..5eddae1e5 --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/13.t @@ -0,0 +1,7 @@ +#!/bin/sh +# $FreeBSD: src/tools/regression/fstest/tests/unlink/13.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ + +desc="unlink returns EFAULT if the path argument points outside the process's allocated address space" + +expect EFAULT unlink NULL +expect EFAULT unlink DEADCODE diff --git a/src/regress/sys/ffs/tests/unlink/CVS/Entries b/src/regress/sys/ffs/tests/unlink/CVS/Entries new file mode 100644 index 000000000..b743567b0 --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/CVS/Entries @@ -0,0 +1,15 @@ +/00.t/1.1/Fri Mar 30 19:02:52 2007// +/01.t/1.1/Fri Mar 30 19:02:52 2007// +/02.t/1.1/Fri Mar 30 19:02:52 2007// +/03.t/1.1/Fri Mar 30 19:02:52 2007// +/04.t/1.1/Fri Mar 30 19:02:52 2007// +/05.t/1.1/Fri Mar 30 19:02:52 2007// +/06.t/1.1/Fri Mar 30 19:02:52 2007// +/07.t/1.1/Fri Mar 30 19:02:52 2007// +/08.t/1.1/Fri Mar 30 19:02:52 2007// +/09.t/1.2/Thu Apr 12 22:40:46 2007// +/10.t/1.2/Thu Apr 12 22:40:46 2007// +/11.t/1.1/Fri Mar 30 19:02:52 2007// +/12.t/1.1/Fri Mar 30 19:02:52 2007// +/13.t/1.1/Fri Mar 30 19:02:52 2007// +D diff --git a/src/regress/sys/ffs/tests/unlink/CVS/Repository b/src/regress/sys/ffs/tests/unlink/CVS/Repository new file mode 100644 index 000000000..115e750eb --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ffs/tests/unlink diff --git a/src/regress/sys/ffs/tests/unlink/CVS/Root b/src/regress/sys/ffs/tests/unlink/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ffs/tests/unlink/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/fifofs/CVS/Entries b/src/regress/sys/fifofs/CVS/Entries new file mode 100644 index 000000000..4f000c3c1 --- /dev/null +++ b/src/regress/sys/fifofs/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Thu Jan 29 20:11:09 2004// +/fifotest.c/1.3/Mon May 10 17:03:23 2004// +/fifotest.out/1.2/Mon May 10 17:03:23 2004// +D diff --git a/src/regress/sys/fifofs/CVS/Repository b/src/regress/sys/fifofs/CVS/Repository new file mode 100644 index 000000000..3a7c3b115 --- /dev/null +++ b/src/regress/sys/fifofs/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/fifofs diff --git a/src/regress/sys/fifofs/CVS/Root b/src/regress/sys/fifofs/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/fifofs/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/fifofs/Makefile b/src/regress/sys/fifofs/Makefile new file mode 100644 index 000000000..930fcfb1b --- /dev/null +++ b/src/regress/sys/fifofs/Makefile @@ -0,0 +1,13 @@ +# $OpenBSD: Makefile,v 1.1 2004/01/29 20:11:09 millert Exp $ + +PROG=fifotest +FIFO=fi.fo.fum +CLEANFILES+=${FIFO} +CFLAGS+= -Wall + +REGRESS_TARGETS=runtest + +runtest: ${PROG} + ./${PROG} ${FIFO} | diff - ${.CURDIR}/${PROG}.out + +.include diff --git a/src/regress/sys/fifofs/fifotest.c b/src/regress/sys/fifofs/fifotest.c new file mode 100644 index 000000000..3826bbfaa --- /dev/null +++ b/src/regress/sys/fifofs/fifotest.c @@ -0,0 +1,222 @@ +/* + * Copyright (c) 2004 Todd C. Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef INFTIM +#define INFTIM -1 +#endif + +void usage(void); +void sigalrm(int); +void dopoll(int, int, char *, int); +void doselect(int, int, int); +void runtest(char *, int, int); + +#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || \ + defined(__linux__) +extern char *__progname; +#else +char *__progname; +#endif + +/* + * Test FIFOs and poll(2) both with an emtpy and full FIFO. + */ +int +main(int argc, char **argv) +{ +#if !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && \ + !defined(__linux__) + __progname = argv[0]; +#endif + if (argc != 2) + usage(); + + runtest(argv[1], 0, 0); + runtest(argv[1], 0, INFTIM); + runtest(argv[1], O_NONBLOCK, 0); + runtest(argv[1], O_NONBLOCK, INFTIM); + + exit(0); +} + +void +runtest(char *fifo, int flags, int timeout) +{ + struct sigaction sa; + ssize_t nread; + int fd; + char buf[BUFSIZ]; + + (void)unlink(fifo); + if (mkfifo(fifo, 0644) != 0) { + printf("mkfifo %s: %s\n", fifo, strerror(errno)); + exit(1); + } + + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + sa.sa_handler = sigalrm; + sigaction(SIGALRM, &sa, NULL); + + alarm(2); + if ((fd = open(fifo, O_RDWR | flags, 0644)) == -1) { + printf("open %s: %s\n", fifo, strerror(errno)); + exit(1); + } + alarm(0); + (void)unlink(fifo); + printf("\nOpened fifo %s%s\n", fifo, + (flags & O_NONBLOCK) ? " (nonblocking)" : ""); + + printf("\nTesting empty FIFO:\n"); + dopoll(fd, POLLIN|POLLOUT, "POLLIN|POLLOUT", timeout); + dopoll(fd, POLLIN, "POLLIN", timeout); + dopoll(fd, POLLOUT, "POLLOUT", timeout); + doselect(fd, fd, timeout); + doselect(fd, -1, timeout); + doselect(-1, fd, timeout); + + if (write(fd, "test", 4) != 4) { + printf("write error: %s\n", strerror(errno)); + exit(1); + } + + printf("\nTesting full FIFO:\n"); + dopoll(fd, POLLIN|POLLOUT, "POLLIN|POLLOUT", timeout); + dopoll(fd, POLLIN, "POLLIN", timeout); + dopoll(fd, POLLOUT, "POLLOUT", timeout); + doselect(fd, fd, timeout); + doselect(fd, -1, timeout); + doselect(-1, fd, timeout); + + if ((nread = read(fd, buf, sizeof(buf))) <= 0) { + printf("read error: %s\n", (nread == 0) ? "EOF" : strerror(errno)); + exit(1); + } + buf[nread] = '\0'; + printf("\treceived '%s' from FIFO\n", buf); +} + +void +dopoll(int fd, int events, char *str, int timeout) +{ + struct pollfd pfd; + int nready; + + pfd.fd = fd; + pfd.events = events; + + printf("\tpoll %s, timeout=%d\n", str, timeout); + pfd.events = events; + alarm(2); + nready = poll(&pfd, 1, timeout); + alarm(0); + if (nready < 0) { + printf("poll: %s\n", strerror(errno)); + return; + } + printf("\t\t%d fd(s) ready%s", nready, nready ? ", revents ==" : ""); + if (pfd.revents & POLLIN) + printf(" POLLIN"); + if (pfd.revents & POLLOUT) + printf(" POLLOUT"); + if (pfd.revents & POLLERR) + printf(" POLLERR"); + if (pfd.revents & POLLHUP) + printf(" POLLHUP"); + if (pfd.revents & POLLNVAL) + printf(" POLLNVAL"); + printf("\n"); +} + +void +doselect(int rfd, int wfd, int timeout) +{ + struct timeval tv, *tvp; + fd_set *rfds = NULL, *wfds = NULL; + int nready, maxfd; + + if (timeout == INFTIM) + tvp = NULL; + else { + tv.tv_sec = timeout / 1000; + tv.tv_usec = (timeout % 1000) * 1000; + tvp = &tv; + } + tv.tv_sec = tv.tv_usec = 0; + maxfd = rfd > wfd ? rfd : wfd; + if (rfd != -1) { + rfds = calloc(howmany(maxfd + 1, NFDBITS), sizeof(fd_mask)); + if (rfds == NULL) { + printf("unable to allocate memory\n"); + exit(1); + } + FD_SET(rfd, rfds); + } + if (wfd != -1) { + wfds = calloc(howmany(maxfd + 1, NFDBITS), sizeof(fd_mask)); + if (wfds == NULL) { + printf("unable to allocate memory\n"); + exit(1); + } + FD_SET(wfd, wfds); + } + + printf("\tselect%s%s\n", rfds ? " read" : "", + wfds ? " write" : ""); + + alarm(2); + nready = select(maxfd + 1, rfds, wfds, NULL, &tv); + alarm(0); + if (nready < 0) { + printf("select: %s\n", strerror(errno)); + goto cleanup; + } + printf("\t\t%d fd(s) ready", nready); + if (rfds != NULL && FD_ISSET(rfd, rfds)) + printf(", readable"); + if (wfds != NULL && FD_ISSET(wfd, wfds)) + printf(", writeable"); + printf("\n"); +cleanup: + free(rfds); + free(wfds); +} + +void +sigalrm(int dummy) +{ + /* Just cause EINTR */ + return; +} + +void +usage(void) +{ + fprintf(stderr, "usage: %s fifoname\n", __progname); + exit(1); +} diff --git a/src/regress/sys/fifofs/fifotest.out b/src/regress/sys/fifofs/fifotest.out new file mode 100644 index 000000000..98c477031 --- /dev/null +++ b/src/regress/sys/fifofs/fifotest.out @@ -0,0 +1,124 @@ + +Opened fifo fi.fo.fum + +Testing empty FIFO: + poll POLLIN|POLLOUT, timeout=0 + 1 fd(s) ready, revents == POLLOUT + poll POLLIN, timeout=0 + 0 fd(s) ready + poll POLLOUT, timeout=0 + 1 fd(s) ready, revents == POLLOUT + select read write + 1 fd(s) ready, writeable + select read + 0 fd(s) ready + select write + 1 fd(s) ready, writeable + +Testing full FIFO: + poll POLLIN|POLLOUT, timeout=0 + 1 fd(s) ready, revents == POLLIN POLLOUT + poll POLLIN, timeout=0 + 1 fd(s) ready, revents == POLLIN + poll POLLOUT, timeout=0 + 1 fd(s) ready, revents == POLLOUT + select read write + 2 fd(s) ready, readable, writeable + select read + 1 fd(s) ready, readable + select write + 1 fd(s) ready, writeable + received 'test' from FIFO + +Opened fifo fi.fo.fum + +Testing empty FIFO: + poll POLLIN|POLLOUT, timeout=-1 + 1 fd(s) ready, revents == POLLOUT + poll POLLIN, timeout=-1 +poll: Interrupted system call + poll POLLOUT, timeout=-1 + 1 fd(s) ready, revents == POLLOUT + select read write + 1 fd(s) ready, writeable + select read + 0 fd(s) ready + select write + 1 fd(s) ready, writeable + +Testing full FIFO: + poll POLLIN|POLLOUT, timeout=-1 + 1 fd(s) ready, revents == POLLIN POLLOUT + poll POLLIN, timeout=-1 + 1 fd(s) ready, revents == POLLIN + poll POLLOUT, timeout=-1 + 1 fd(s) ready, revents == POLLOUT + select read write + 2 fd(s) ready, readable, writeable + select read + 1 fd(s) ready, readable + select write + 1 fd(s) ready, writeable + received 'test' from FIFO + +Opened fifo fi.fo.fum (nonblocking) + +Testing empty FIFO: + poll POLLIN|POLLOUT, timeout=0 + 1 fd(s) ready, revents == POLLOUT + poll POLLIN, timeout=0 + 0 fd(s) ready + poll POLLOUT, timeout=0 + 1 fd(s) ready, revents == POLLOUT + select read write + 1 fd(s) ready, writeable + select read + 0 fd(s) ready + select write + 1 fd(s) ready, writeable + +Testing full FIFO: + poll POLLIN|POLLOUT, timeout=0 + 1 fd(s) ready, revents == POLLIN POLLOUT + poll POLLIN, timeout=0 + 1 fd(s) ready, revents == POLLIN + poll POLLOUT, timeout=0 + 1 fd(s) ready, revents == POLLOUT + select read write + 2 fd(s) ready, readable, writeable + select read + 1 fd(s) ready, readable + select write + 1 fd(s) ready, writeable + received 'test' from FIFO + +Opened fifo fi.fo.fum (nonblocking) + +Testing empty FIFO: + poll POLLIN|POLLOUT, timeout=-1 + 1 fd(s) ready, revents == POLLOUT + poll POLLIN, timeout=-1 +poll: Interrupted system call + poll POLLOUT, timeout=-1 + 1 fd(s) ready, revents == POLLOUT + select read write + 1 fd(s) ready, writeable + select read + 0 fd(s) ready + select write + 1 fd(s) ready, writeable + +Testing full FIFO: + poll POLLIN|POLLOUT, timeout=-1 + 1 fd(s) ready, revents == POLLIN POLLOUT + poll POLLIN, timeout=-1 + 1 fd(s) ready, revents == POLLIN + poll POLLOUT, timeout=-1 + 1 fd(s) ready, revents == POLLOUT + select read write + 2 fd(s) ready, readable, writeable + select read + 1 fd(s) ready, readable + select write + 1 fd(s) ready, writeable + received 'test' from FIFO diff --git a/src/regress/sys/fifofs/obj b/src/regress/sys/fifofs/obj new file mode 120000 index 000000000..1066ddd5c --- /dev/null +++ b/src/regress/sys/fifofs/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/fifofs \ No newline at end of file diff --git a/src/regress/sys/kern/CVS/Entries b/src/regress/sys/kern/CVS/Entries new file mode 100644 index 000000000..785aae93c --- /dev/null +++ b/src/regress/sys/kern/CVS/Entries @@ -0,0 +1,45 @@ +/Makefile/1.54/Fri Jul 25 11:57:53 2008// +D/__syscall//// +D/accept//// +D/dup2//// +D/dup2_self//// +D/exec_self//// +D/execve//// +D/exit//// +D/extent//// +D/fcntl_dup//// +D/flock//// +D/getpeereid//// +D/getrusage//// +D/gettimeofday//// +D/itimer//// +D/kqueue//// +D/mbuf//// +D/minherit//// +D/mmap//// +D/mmap-fail//// +D/mmap2//// +D/mmap3//// +D/mquery//// +D/nanosleep//// +D/noexec//// +D/pread//// +D/preadv//// +D/ptmget//// +D/ptrace//// +D/pwrite//// +D/pwritev//// +D/rcvtimeo//// +D/rfork//// +D/rlimit-file//// +D/sig-stop//// +D/signal//// +D/signal-stress//// +D/sigsuspend//// +D/syscall//// +D/sysvmsg//// +D/sysvsem//// +D/sysvshm//// +D/unalign//// +D/unfdpass//// +D/wait//// diff --git a/src/regress/sys/kern/CVS/Repository b/src/regress/sys/kern/CVS/Repository new file mode 100644 index 000000000..c4c1e92e1 --- /dev/null +++ b/src/regress/sys/kern/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern diff --git a/src/regress/sys/kern/CVS/Root b/src/regress/sys/kern/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/Makefile b/src/regress/sys/kern/Makefile new file mode 100644 index 000000000..67651d793 --- /dev/null +++ b/src/regress/sys/kern/Makefile @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile,v 1.54 2008/07/25 11:57:53 art Exp $ + +SUBDIR+= __syscall accept dup2 dup2_self exec_self execve exit extent +SUBDIR+= fcntl_dup +SUBDIR+= flock +SUBDIR+= getpeereid getrusage gettimeofday itimer +SUBDIR+= kqueue mbuf minherit +SUBDIR+= mmap mmap2 mmap3 mmap-fail +#SUBDIR+= mquery +SUBDIR+= nanosleep noexec pread preadv ptmget pwrite pwritev rcvtimeo +#SUBDIR+= rfork +SUBDIR+= rlimit-file signal signal-stress sigsuspend +SUBDIR+= syscall sysvmsg sysvsem +SUBDIR+= sysvshm unalign unfdpass wait +SUBDIR+= sig-stop + +install: + +.include diff --git a/src/regress/sys/kern/__syscall/CVS/Entries b/src/regress/sys/kern/__syscall/CVS/Entries new file mode 100644 index 000000000..b4854a96c --- /dev/null +++ b/src/regress/sys/kern/__syscall/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Feb 8 21:39:22 2002// +/__syscall.c/1.4/Tue Nov 4 07:28:05 2003// +D diff --git a/src/regress/sys/kern/__syscall/CVS/Repository b/src/regress/sys/kern/__syscall/CVS/Repository new file mode 100644 index 000000000..79da08dcb --- /dev/null +++ b/src/regress/sys/kern/__syscall/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/__syscall diff --git a/src/regress/sys/kern/__syscall/CVS/Root b/src/regress/sys/kern/__syscall/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/__syscall/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/__syscall/Makefile b/src/regress/sys/kern/__syscall/Makefile new file mode 100644 index 000000000..e2705a916 --- /dev/null +++ b/src/regress/sys/kern/__syscall/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/08 21:39:22 art Exp $ + +PROG= __syscall + +.include diff --git a/src/regress/sys/kern/__syscall/__syscall.c b/src/regress/sys/kern/__syscall/__syscall.c new file mode 100644 index 000000000..e7c45e3a9 --- /dev/null +++ b/src/regress/sys/kern/__syscall/__syscall.c @@ -0,0 +1,33 @@ +/* $OpenBSD: __syscall.c,v 1.4 2003/11/04 07:28:05 mickey Exp $ */ + +/* + * Written by Michael Shalayeff 2003 Public Domain. + */ + +#include +#include +#include +#include +#include +#include + +int +main(void) +{ + extern off_t __syscall(); + off_t off; + int fd; + + if ((fd = open("/etc/passwd", O_RDONLY)) < 0) + err(1, "/etc/passwd"); + + off = __syscall((u_int64_t)SYS_lseek, fd, 0, (off_t)1, SEEK_SET); + if (off < 0) + err(1, "lseek"); + + off = __syscall((u_int64_t)SYS_lseek, fd, 0, (off_t)0, SEEK_CUR); + if (off != 1) + errx(1, "lseek: wrong position %llu", off); + + return 0; +} diff --git a/src/regress/sys/kern/__syscall/obj b/src/regress/sys/kern/__syscall/obj new file mode 120000 index 000000000..104f39488 --- /dev/null +++ b/src/regress/sys/kern/__syscall/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/__syscall \ No newline at end of file diff --git a/src/regress/sys/kern/accept/CVS/Entries b/src/regress/sys/kern/accept/CVS/Entries new file mode 100644 index 000000000..a6b7e8fb8 --- /dev/null +++ b/src/regress/sys/kern/accept/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Wed Aug 21 22:49:41 2002// +/accept.c/1.4/Sat Feb 28 03:29:15 2004// +D diff --git a/src/regress/sys/kern/accept/CVS/Repository b/src/regress/sys/kern/accept/CVS/Repository new file mode 100644 index 000000000..980cc81d8 --- /dev/null +++ b/src/regress/sys/kern/accept/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/accept diff --git a/src/regress/sys/kern/accept/CVS/Root b/src/regress/sys/kern/accept/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/accept/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/accept/Makefile b/src/regress/sys/kern/accept/Makefile new file mode 100644 index 000000000..fcf2e6da5 --- /dev/null +++ b/src/regress/sys/kern/accept/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.2 2002/08/21 22:49:41 wcobb Exp $ + +PROG= accept + +CLEANFILES= test-sock + +.include diff --git a/src/regress/sys/kern/accept/accept.c b/src/regress/sys/kern/accept/accept.c new file mode 100644 index 000000000..b59c349ff --- /dev/null +++ b/src/regress/sys/kern/accept/accept.c @@ -0,0 +1,105 @@ +/* $OpenBSD: accept.c,v 1.4 2004/02/28 03:29:15 deraadt Exp $ */ +/* + * Written by Artur Grabowski , 2002 Public Domain. + */ +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#define SOCK_NAME "test-sock" + +int child(void); + +int +main(int argc, char *argv[]) +{ + int listensock, sock; + struct sockaddr_un sun, csun; + int csunlen; + int fd, lastfd; + int status; + int ischild = 0; + + /* + * Create the listen socket. + */ + if ((listensock = socket(PF_LOCAL, SOCK_STREAM, 0)) == -1) + err(1, "socket"); + + unlink(SOCK_NAME); + memset(&sun, 0, sizeof(sun)); + sun.sun_family = AF_LOCAL; + strlcpy(sun.sun_path, SOCK_NAME, sizeof sun.sun_path); + sun.sun_len = SUN_LEN(&sun); + + + if (bind(listensock, (struct sockaddr *)&sun, sizeof(sun)) == -1) + err(1, "bind"); + + if (listen(listensock, 1) == -1) + err(1, "listen"); + + switch (fork()) { + case -1: + err(1, "fork"); + case 0: + return child(); + } + + while ((fd = open("/dev/null", O_RDONLY)) >= 0) + lastfd = fd; + + switch (fork()) { + case -1: + err(1, "fork"); + case 0: + ischild = 1; + close(lastfd); /* Close one fd so that accept can succeed */ + sleep(2); /* sleep a bit so that we're the second to accept */ + } + + sock = accept(listensock, (struct sockaddr *)&csun, &csunlen); + + if (!ischild && sock >= 0) + errx(1, "accept succeeded in parent"); + if (ischild && sock < 0) + err(1, "accept failed in child"); + + while (!ischild && wait4(-1, &status, 0, NULL) > 0) + ; + + return (0); +} + +int +child() +{ + int i, fd, sock; + struct sockaddr_un sun; + + /* + * Create socket and connect to the receiver. + */ + if ((sock = socket(PF_LOCAL, SOCK_STREAM, 0)) == -1) + errx(1, "child socket"); + + (void) memset(&sun, 0, sizeof(sun)); + sun.sun_family = AF_LOCAL; + (void) strlcpy(sun.sun_path, SOCK_NAME, sizeof sun.sun_path); + sun.sun_len = SUN_LEN(&sun); + + if (connect(sock, (struct sockaddr *)&sun, sizeof(sun)) == -1) + err(1, "child connect"); + + return (0); +} diff --git a/src/regress/sys/kern/accept/obj b/src/regress/sys/kern/accept/obj new file mode 120000 index 000000000..b34eb8229 --- /dev/null +++ b/src/regress/sys/kern/accept/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/accept \ No newline at end of file diff --git a/src/regress/sys/kern/dup2/CVS/Entries b/src/regress/sys/kern/dup2/CVS/Entries new file mode 100644 index 000000000..b7b975be6 --- /dev/null +++ b/src/regress/sys/kern/dup2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Tue Jan 1 23:05:30 2002// +/dup2test.c/1.3/Thu Jul 31 21:48:08 2003// +D diff --git a/src/regress/sys/kern/dup2/CVS/Repository b/src/regress/sys/kern/dup2/CVS/Repository new file mode 100644 index 000000000..ee77f514a --- /dev/null +++ b/src/regress/sys/kern/dup2/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/dup2 diff --git a/src/regress/sys/kern/dup2/CVS/Root b/src/regress/sys/kern/dup2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/dup2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/dup2/Makefile b/src/regress/sys/kern/dup2/Makefile new file mode 100644 index 000000000..73f879f9b --- /dev/null +++ b/src/regress/sys/kern/dup2/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/01 23:05:30 art Exp $ + +PROG= dup2test + +.include diff --git a/src/regress/sys/kern/dup2/dup2test.c b/src/regress/sys/kern/dup2/dup2test.c new file mode 100644 index 000000000..1c60ae016 --- /dev/null +++ b/src/regress/sys/kern/dup2/dup2test.c @@ -0,0 +1,43 @@ +/* $OpenBSD: dup2test.c,v 1.3 2003/07/31 21:48:08 deraadt Exp $ */ +/* + * Written by Artur Grabowski 2001 Public Domain. + */ +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + int orgfd, fd1, fd2; + char temp[] = "/tmp/dup2XXXXXXXXX"; + + if ((orgfd = mkstemp(temp)) < 0) + err(1, "mkstemp"); + remove(temp); + + if (ftruncate(orgfd, 1024) != 0) + err(1, "ftruncate"); + + if ((fd1 = dup(orgfd)) < 0) + err(1, "dup"); + + /* Set close-on-exec */ + if (fcntl(fd1, F_SETFD, 1) != 0) + err(1, "fcntl(F_SETFD)"); + + if ((fd2 = dup2(fd1, fd1 + 1)) < 0) + err(1, "dup2"); + + /* Test 1: Do we get the right fd? */ + if (fd2 != fd1 + 1) + errx(1, "dup2 didn't give us the right fd"); + + /* Test 2: Was close-on-exec cleared? */ + if (fcntl(fd2, F_GETFD) != 0) + errx(1, "dup2 didn't clear close-on-exec"); + + return 0; +} diff --git a/src/regress/sys/kern/dup2/obj b/src/regress/sys/kern/dup2/obj new file mode 120000 index 000000000..43800bfd7 --- /dev/null +++ b/src/regress/sys/kern/dup2/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/dup2 \ No newline at end of file diff --git a/src/regress/sys/kern/dup2_self/CVS/Entries b/src/regress/sys/kern/dup2_self/CVS/Entries new file mode 100644 index 000000000..87d8bb155 --- /dev/null +++ b/src/regress/sys/kern/dup2_self/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Feb 8 18:47:46 2002// +/dup2_self.c/1.3/Thu Jul 31 21:48:08 2003// +D diff --git a/src/regress/sys/kern/dup2_self/CVS/Repository b/src/regress/sys/kern/dup2_self/CVS/Repository new file mode 100644 index 000000000..ba9e545b1 --- /dev/null +++ b/src/regress/sys/kern/dup2_self/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/dup2_self diff --git a/src/regress/sys/kern/dup2_self/CVS/Root b/src/regress/sys/kern/dup2_self/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/dup2_self/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/dup2_self/Makefile b/src/regress/sys/kern/dup2_self/Makefile new file mode 100644 index 000000000..938a41a6f --- /dev/null +++ b/src/regress/sys/kern/dup2_self/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/08 18:47:46 art Exp $ + +PROG= dup2_self + +.include diff --git a/src/regress/sys/kern/dup2_self/dup2_self.c b/src/regress/sys/kern/dup2_self/dup2_self.c new file mode 100644 index 000000000..5849abe5e --- /dev/null +++ b/src/regress/sys/kern/dup2_self/dup2_self.c @@ -0,0 +1,63 @@ +/* $OpenBSD: dup2_self.c,v 1.3 2003/07/31 21:48:08 deraadt Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ +#include +#include +#include +#include +#include + +/* + * We're testing a small tweak in dup2 semantics. Normally dup and dup2 + * will clear the close-on-exec flag on the new fd (which appears to be + * an implementation mistake from start and not some planned behavior). + * In todays implementations of dup and dup2 we have to make an effort + * to really clear that flag. But all tested implementations of dup2 have + * another tweak. If we dup2(old, new) when old == new, the syscall + * short-circuits and returns early (because there is no need to do all + * the work (and there is a risk for serious mistakes)). So although the + * docs say that dup2 should "take 'old', close 'new' perform a dup(2) of + * 'old' into 'new'" the docs are not really followed because close-on-exec + * is not cleared on 'new'. + * + * Since everyone has this bug, we pretend that this is the way it is + * supposed to be and test here that it really works that way. + * + * This is a fine example on where two separate implementation fuckups + * take out each other and make the end-result the way it was meant to be. + */ + +int +main(int argc, char *argv[]) +{ + int orgfd, fd1, fd2; + char temp[] = "/tmp/dup2XXXXXXXXX"; + + if ((orgfd = mkstemp(temp)) < 0) + err(1, "mkstemp"); + remove(temp); + + if (ftruncate(orgfd, 1024) != 0) + err(1, "ftruncate"); + + if ((fd1 = dup(orgfd)) < 0) + err(1, "dup"); + + /* Set close-on-exec */ + if (fcntl(fd1, F_SETFD, 1) != 0) + err(1, "fcntl(F_SETFD)"); + + if ((fd2 = dup2(fd1, fd1)) < 0) + err(1, "dup2"); + + /* Test 1: Do we get the right fd? */ + if (fd2 != fd1) + errx(1, "dup2 didn't give us the right fd"); + + /* Test 2: Was close-on-exec cleared? */ + if (fcntl(fd2, F_GETFD) == 0) + errx(1, "dup2 cleared close-on-exec"); + + return 0; +} diff --git a/src/regress/sys/kern/dup2_self/obj b/src/regress/sys/kern/dup2_self/obj new file mode 120000 index 000000000..a9fc9a0c1 --- /dev/null +++ b/src/regress/sys/kern/dup2_self/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/dup2_self \ No newline at end of file diff --git a/src/regress/sys/kern/exec_self/CVS/Entries b/src/regress/sys/kern/exec_self/CVS/Entries new file mode 100644 index 000000000..43aa3aabb --- /dev/null +++ b/src/regress/sys/kern/exec_self/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Aug 17 22:58:59 2002// +/exec_self.c/1.1/Sat Aug 17 22:58:59 2002// +D diff --git a/src/regress/sys/kern/exec_self/CVS/Repository b/src/regress/sys/kern/exec_self/CVS/Repository new file mode 100644 index 000000000..9a4449e79 --- /dev/null +++ b/src/regress/sys/kern/exec_self/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/exec_self diff --git a/src/regress/sys/kern/exec_self/CVS/Root b/src/regress/sys/kern/exec_self/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/exec_self/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/exec_self/Makefile b/src/regress/sys/kern/exec_self/Makefile new file mode 100644 index 000000000..ef8635b6d --- /dev/null +++ b/src/regress/sys/kern/exec_self/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/08/17 22:58:59 art Exp $ + +PROG= exec_self + +.include diff --git a/src/regress/sys/kern/exec_self/exec_self.c b/src/regress/sys/kern/exec_self/exec_self.c new file mode 100644 index 000000000..4bf39af5f --- /dev/null +++ b/src/regress/sys/kern/exec_self/exec_self.c @@ -0,0 +1,44 @@ +/* $OpenBSD: exec_self.c,v 1.1 2002/08/17 22:58:59 art Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ +#include +#include +#include +#include +#include +#include + +struct { + const char pad1[256*1024]; /* avoid read-ahead. */ + const char string[256*1024]; /* at least one page */ + const char pad2[256*1024]; /* avoid read-behind. */ +} const blob = { + "padding1", + "the_test", + "padding2" +}; + +int +main(int argc, char **argv) +{ + int pgsz = getpagesize(); + vaddr_t va, off; + + if (argc > 1) { + return (0); + } + va = (vaddr_t)&blob; + off = va & (pgsz - 1); + + /* Make sure that nothing in the "blob" is cached. */ + if (madvise((void *)(va - off), sizeof(blob) + (off > 0 ? pgsz : 0), + MADV_FREE)) + err(1, "madvise"); + + if (execl(argv[0], argv[0], &blob.string, NULL)) + err(1, "execl"); + + /* NOTREACHED */ + return (1); +} diff --git a/src/regress/sys/kern/exec_self/obj b/src/regress/sys/kern/exec_self/obj new file mode 120000 index 000000000..da312f9d5 --- /dev/null +++ b/src/regress/sys/kern/exec_self/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/exec_self \ No newline at end of file diff --git a/src/regress/sys/kern/execve/CVS/Entries b/src/regress/sys/kern/execve/CVS/Entries new file mode 100644 index 000000000..90869df8c --- /dev/null +++ b/src/regress/sys/kern/execve/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.5/Mon Sep 2 20:01:44 2002// +/doexec.c/1.5/Tue Sep 2 23:52:17 2003// +D/good//// +D/tests//// diff --git a/src/regress/sys/kern/execve/CVS/Repository b/src/regress/sys/kern/execve/CVS/Repository new file mode 100644 index 000000000..de284f91d --- /dev/null +++ b/src/regress/sys/kern/execve/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/execve diff --git a/src/regress/sys/kern/execve/CVS/Root b/src/regress/sys/kern/execve/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/execve/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/execve/Makefile b/src/regress/sys/kern/execve/Makefile new file mode 100644 index 000000000..0cf921d3d --- /dev/null +++ b/src/regress/sys/kern/execve/Makefile @@ -0,0 +1,84 @@ +# $OpenBSD: Makefile,v 1.5 2002/09/02 20:01:44 avsm Exp $ + +PROG= doexec +LDSTATIC= -static + +RP= ${.OBJDIR}/${PROG} +TD= ${.CURDIR}/tests +OD= ${.CURDIR}/good + +TESTFILES= empty nonexistshell devnullscript badinterplen goodscript \ + scriptarg scriptarg-nospace goodaout truncaout + +CLEANFILES+= ${TESTFILES} + +all: ${PROG} ${TESTFILES} + +REGRESS_TARGETS= test-empty test-nonexist \ + test-nonexistshell test-devnullscript test-badinterplen \ + test-goodscript test-scriptarg test-scriptarg-nospace \ + test-goodaout test-truncaout + +empty: ${TD}/empty.in + ${INSTALL} -c -m 755 ${.ALLSRC} ${.TARGET} + +test-empty: ${PROG} empty + ${RP} ${.OBJDIR}/empty | diff - ${OD}/empty + +nonexist: ${TD}/nonexist.in + ${INSTALL} -c -m 755 ${.ALLSRC} ${.TARGET} + +test-nonexist: ${PROG} + ${RP} ${.OBJDIR}/nonexistent | diff - ${OD}/nonexistent + +nonexistshell: ${TD}/nonexistshell.in + ${INSTALL} -c -m 755 ${.ALLSRC} ${.TARGET} + +test-nonexistshell: ${PROG} nonexistshell + ${RP} ${.OBJDIR}/nonexistshell | diff - ${OD}/nonexistshell + +devnullscript: ${TD}/devnullscript.in + ${INSTALL} -c -m 755 ${.ALLSRC} ${.TARGET} + +test-devnullscript: ${PROG} devnullscript + ${RP} ${.OBJDIR}/devnullscript | diff - ${OD}/devnullscript + +badinterplen: ${TD}/badinterplen.in + ${INSTALL} -c -m 755 ${.ALLSRC} ${.TARGET} + +test-badinterplen: ${PROG} badinterplen + ${RP} ${.OBJDIR}/badinterplen | diff - ${OD}/badinterplen + +goodscript: ${TD}/goodscript.in + ${INSTALL} -c -m 755 ${.ALLSRC} ${.TARGET} + +test-goodscript: ${PROG} goodscript + ${RP} ${.OBJDIR}/goodscript | diff - ${OD}/goodscript + +scriptarg: ${TD}/scriptarg.in + ${INSTALL} -c -m 755 ${.ALLSRC} ${.TARGET} + +test-scriptarg: ${PROG} scriptarg + ${RP} ${.OBJDIR}/scriptarg 2>&1 | diff - ${OD}/scriptarg + +scriptarg-nospace: ${TD}/scriptarg-nospace.in + ${INSTALL} -c -m 755 ${.ALLSRC} ${.TARGET} + +test-scriptarg-nospace: ${PROG} scriptarg-nospace + ${RP} ${.OBJDIR}/scriptarg-nospace 2>&1 | diff - ${OD}/scriptarg-nospace + +goodaout: ${TD}/goodaout.c + ${LINK.c} ${LDSTATIC} -o ${.TARGET} ${TD}/goodaout.c ${LDLIBS} + +test-goodaout: ${PROG} goodaout + ${RP} ${.OBJDIR}/goodaout | diff - ${OD}/goodaout + +truncaout: goodaout + /bin/rm -rf truncaout + dd if=${.OBJDIR}/goodaout of=truncaout bs=16 count=1 + chmod a+x truncaout + +test-truncaout: ${PROG} truncaout + ${RP} ${.OBJDIR}/truncaout | diff - ${OD}/truncaout + +.include diff --git a/src/regress/sys/kern/execve/doexec.c b/src/regress/sys/kern/execve/doexec.c new file mode 100644 index 000000000..c22d49ae1 --- /dev/null +++ b/src/regress/sys/kern/execve/doexec.c @@ -0,0 +1,54 @@ +/* $OpenBSD: doexec.c,v 1.5 2003/09/02 23:52:17 david Exp $ */ +/* $NetBSD: doexec.c,v 1.3 1995/04/20 22:43:13 cgd Exp $ */ + +/* + * Copyright (c) 1993 Christopher G. Demetriou + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Christopher G. Demetriou. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + if (argc != 2) { + fprintf(stderr, "usage: %s \n", argv[0]); + exit(2); + } + + if (execve(argv[1], &argv[1], NULL) == -1) { + printf("%s\n", strerror(errno)); + exit(1); + } + + exit(0); +} diff --git a/src/regress/sys/kern/execve/good/CVS/Entries b/src/regress/sys/kern/execve/good/CVS/Entries new file mode 100644 index 000000000..18e9fc1c6 --- /dev/null +++ b/src/regress/sys/kern/execve/good/CVS/Entries @@ -0,0 +1,11 @@ +/badinterplen/1.1.1.1/Wed Oct 18 08:49:36 1995// +/devnullscript/1.1.1.1/Wed Oct 18 08:49:36 1995// +/empty/1.1.1.1/Wed Oct 18 08:49:36 1995// +/goodaout/1.1.1.1/Wed Oct 18 08:49:36 1995// +/goodscript/1.1.1.1/Wed Oct 18 08:49:36 1995// +/nonexistent/1.1.1.1/Wed Oct 18 08:49:36 1995// +/nonexistshell/1.1.1.1/Wed Oct 18 08:49:36 1995// +/scriptarg/1.1.1.1/Wed Oct 18 08:49:36 1995// +/scriptarg-nospace/1.1.1.1/Wed Oct 18 08:49:36 1995// +/truncaout/1.1.1.1/Wed Oct 18 08:49:36 1995// +D diff --git a/src/regress/sys/kern/execve/good/CVS/Repository b/src/regress/sys/kern/execve/good/CVS/Repository new file mode 100644 index 000000000..3d7d29ba4 --- /dev/null +++ b/src/regress/sys/kern/execve/good/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/execve/good diff --git a/src/regress/sys/kern/execve/good/CVS/Root b/src/regress/sys/kern/execve/good/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/execve/good/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/execve/good/badinterplen b/src/regress/sys/kern/execve/good/badinterplen new file mode 100644 index 000000000..a0f8bc9fa --- /dev/null +++ b/src/regress/sys/kern/execve/good/badinterplen @@ -0,0 +1 @@ +Exec format error diff --git a/src/regress/sys/kern/execve/good/devnullscript b/src/regress/sys/kern/execve/good/devnullscript new file mode 100644 index 000000000..fd58f1d4f --- /dev/null +++ b/src/regress/sys/kern/execve/good/devnullscript @@ -0,0 +1 @@ +Permission denied diff --git a/src/regress/sys/kern/execve/good/empty b/src/regress/sys/kern/execve/good/empty new file mode 100644 index 000000000..a0f8bc9fa --- /dev/null +++ b/src/regress/sys/kern/execve/good/empty @@ -0,0 +1 @@ +Exec format error diff --git a/src/regress/sys/kern/execve/good/goodaout b/src/regress/sys/kern/execve/good/goodaout new file mode 100644 index 000000000..774a5c0df --- /dev/null +++ b/src/regress/sys/kern/execve/good/goodaout @@ -0,0 +1 @@ +succeeded diff --git a/src/regress/sys/kern/execve/good/goodscript b/src/regress/sys/kern/execve/good/goodscript new file mode 100644 index 000000000..774a5c0df --- /dev/null +++ b/src/regress/sys/kern/execve/good/goodscript @@ -0,0 +1 @@ +succeeded diff --git a/src/regress/sys/kern/execve/good/nonexistent b/src/regress/sys/kern/execve/good/nonexistent new file mode 100644 index 000000000..ddc886910 --- /dev/null +++ b/src/regress/sys/kern/execve/good/nonexistent @@ -0,0 +1 @@ +No such file or directory diff --git a/src/regress/sys/kern/execve/good/nonexistshell b/src/regress/sys/kern/execve/good/nonexistshell new file mode 100644 index 000000000..ddc886910 --- /dev/null +++ b/src/regress/sys/kern/execve/good/nonexistshell @@ -0,0 +1 @@ +No such file or directory diff --git a/src/regress/sys/kern/execve/good/scriptarg b/src/regress/sys/kern/execve/good/scriptarg new file mode 100644 index 000000000..f3b372c72 --- /dev/null +++ b/src/regress/sys/kern/execve/good/scriptarg @@ -0,0 +1,2 @@ ++ echo succeeded +succeeded diff --git a/src/regress/sys/kern/execve/good/scriptarg-nospace b/src/regress/sys/kern/execve/good/scriptarg-nospace new file mode 100644 index 000000000..f3b372c72 --- /dev/null +++ b/src/regress/sys/kern/execve/good/scriptarg-nospace @@ -0,0 +1,2 @@ ++ echo succeeded +succeeded diff --git a/src/regress/sys/kern/execve/good/truncaout b/src/regress/sys/kern/execve/good/truncaout new file mode 100644 index 000000000..a0f8bc9fa --- /dev/null +++ b/src/regress/sys/kern/execve/good/truncaout @@ -0,0 +1 @@ +Exec format error diff --git a/src/regress/sys/kern/execve/obj b/src/regress/sys/kern/execve/obj new file mode 120000 index 000000000..5eb7ba2ad --- /dev/null +++ b/src/regress/sys/kern/execve/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/execve \ No newline at end of file diff --git a/src/regress/sys/kern/execve/tests/CVS/Entries b/src/regress/sys/kern/execve/tests/CVS/Entries new file mode 100644 index 000000000..6c1047eaf --- /dev/null +++ b/src/regress/sys/kern/execve/tests/CVS/Entries @@ -0,0 +1,9 @@ +/badinterplen.in/1.3/Fri Sep 19 23:34:31 2008// +/devnullscript.in/1.2/Mon Jan 29 02:05:56 2001// +/empty.in/1.1/Fri Jan 5 18:51:59 2001// +/goodaout.c/1.4/Tue Sep 2 23:52:17 2003// +/goodscript.in/1.2/Mon Jan 29 02:05:56 2001// +/nonexistshell.in/1.2/Mon Jan 29 02:05:56 2001// +/scriptarg-nospace.in/1.2/Mon Jan 29 02:05:56 2001// +/scriptarg.in/1.2/Mon Jan 29 02:05:57 2001// +D diff --git a/src/regress/sys/kern/execve/tests/CVS/Repository b/src/regress/sys/kern/execve/tests/CVS/Repository new file mode 100644 index 000000000..090266681 --- /dev/null +++ b/src/regress/sys/kern/execve/tests/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/execve/tests diff --git a/src/regress/sys/kern/execve/tests/CVS/Root b/src/regress/sys/kern/execve/tests/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/execve/tests/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/execve/tests/badinterplen.in b/src/regress/sys/kern/execve/tests/badinterplen.in new file mode 100644 index 000000000..85c61b992 --- /dev/null +++ b/src/regress/sys/kern/execve/tests/badinterplen.in @@ -0,0 +1,5 @@ +#! 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef +# $OpenBSD: badinterplen.in,v 1.3 2008/09/19 23:34:31 djm Exp $ + + +echo succeeded diff --git a/src/regress/sys/kern/execve/tests/devnullscript.in b/src/regress/sys/kern/execve/tests/devnullscript.in new file mode 100644 index 000000000..30f12dd47 --- /dev/null +++ b/src/regress/sys/kern/execve/tests/devnullscript.in @@ -0,0 +1,5 @@ +#! /dev/null +# $OpenBSD: devnullscript.in,v 1.2 2001/01/29 02:05:56 niklas Exp $ + + +echo succeeded diff --git a/src/regress/sys/kern/execve/tests/empty.in b/src/regress/sys/kern/execve/tests/empty.in new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/sys/kern/execve/tests/goodaout.c b/src/regress/sys/kern/execve/tests/goodaout.c new file mode 100644 index 000000000..68bb56223 --- /dev/null +++ b/src/regress/sys/kern/execve/tests/goodaout.c @@ -0,0 +1,43 @@ +/* $OpenBSD: goodaout.c,v 1.4 2003/09/02 23:52:17 david Exp $ */ +/* $NetBSD: goodaout.c,v 1.3 1995/04/20 22:44:20 cgd Exp $ */ + +/* + * Copyright (c) 1993 Christopher G. Demetriou + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Christopher G. Demetriou. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include + +int +main(int argc, char *argv) +{ + printf("succeeded\n"); + exit(0); +} diff --git a/src/regress/sys/kern/execve/tests/goodscript.in b/src/regress/sys/kern/execve/tests/goodscript.in new file mode 100644 index 000000000..331f77c65 --- /dev/null +++ b/src/regress/sys/kern/execve/tests/goodscript.in @@ -0,0 +1,5 @@ +#! /bin/csh +# $OpenBSD: goodscript.in,v 1.2 2001/01/29 02:05:56 niklas Exp $ + + +echo succeeded diff --git a/src/regress/sys/kern/execve/tests/nonexistshell.in b/src/regress/sys/kern/execve/tests/nonexistshell.in new file mode 100644 index 000000000..b88f13af1 --- /dev/null +++ b/src/regress/sys/kern/execve/tests/nonexistshell.in @@ -0,0 +1,5 @@ +#! /foo/bar/baz +# $OpenBSD: nonexistshell.in,v 1.2 2001/01/29 02:05:56 niklas Exp $ + + +echo foo diff --git a/src/regress/sys/kern/execve/tests/scriptarg-nospace.in b/src/regress/sys/kern/execve/tests/scriptarg-nospace.in new file mode 100644 index 000000000..c3fe849cb --- /dev/null +++ b/src/regress/sys/kern/execve/tests/scriptarg-nospace.in @@ -0,0 +1,5 @@ +#!/bin/sh -x +# $OpenBSD: scriptarg-nospace.in,v 1.2 2001/01/29 02:05:56 niklas Exp $ + + +echo succeeded diff --git a/src/regress/sys/kern/execve/tests/scriptarg.in b/src/regress/sys/kern/execve/tests/scriptarg.in new file mode 100644 index 000000000..2c09479a4 --- /dev/null +++ b/src/regress/sys/kern/execve/tests/scriptarg.in @@ -0,0 +1,5 @@ +#! /bin/sh -x +# $OpenBSD: scriptarg.in,v 1.2 2001/01/29 02:05:57 niklas Exp $ + + +echo succeeded diff --git a/src/regress/sys/kern/exit/CVS/Entries b/src/regress/sys/kern/exit/CVS/Entries new file mode 100644 index 000000000..5c93d2199 --- /dev/null +++ b/src/regress/sys/kern/exit/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Feb 8 20:15:14 2002// +/exit.c/1.3/Tue Sep 2 23:52:17 2003// +D diff --git a/src/regress/sys/kern/exit/CVS/Repository b/src/regress/sys/kern/exit/CVS/Repository new file mode 100644 index 000000000..7dc819886 --- /dev/null +++ b/src/regress/sys/kern/exit/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/exit diff --git a/src/regress/sys/kern/exit/CVS/Root b/src/regress/sys/kern/exit/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/exit/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/exit/Makefile b/src/regress/sys/kern/exit/Makefile new file mode 100644 index 000000000..182706bc0 --- /dev/null +++ b/src/regress/sys/kern/exit/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/08 20:15:14 art Exp $ + +PROG= exit + +.include diff --git a/src/regress/sys/kern/exit/exit.c b/src/regress/sys/kern/exit/exit.c new file mode 100644 index 000000000..79e528291 --- /dev/null +++ b/src/regress/sys/kern/exit/exit.c @@ -0,0 +1,13 @@ +/* $OpenBSD: exit.c,v 1.3 2003/09/02 23:52:17 david Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ +#include +#include + +int +main(int argc, char *argv[]) +{ + _exit(0); + abort(); +} diff --git a/src/regress/sys/kern/exit/obj b/src/regress/sys/kern/exit/obj new file mode 120000 index 000000000..a6bf8ab7a --- /dev/null +++ b/src/regress/sys/kern/exit/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/exit \ No newline at end of file diff --git a/src/regress/sys/kern/extent/CVS/Entries b/src/regress/sys/kern/extent/CVS/Entries new file mode 100644 index 000000000..20d378895 --- /dev/null +++ b/src/regress/sys/kern/extent/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.2/Fri Apr 22 00:37:58 2005// +/extest.awk/1.2/Fri Apr 10 20:57:04 2009// +/extest.exp/1.4/Tue Oct 13 20:53:40 2009// +/tests/1.5/Tue Oct 13 20:53:40 2009// +D diff --git a/src/regress/sys/kern/extent/CVS/Repository b/src/regress/sys/kern/extent/CVS/Repository new file mode 100644 index 000000000..d8f8af19b --- /dev/null +++ b/src/regress/sys/kern/extent/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/extent diff --git a/src/regress/sys/kern/extent/CVS/Root b/src/regress/sys/kern/extent/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/extent/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/extent/Makefile b/src/regress/sys/kern/extent/Makefile new file mode 100644 index 000000000..ff8193444 --- /dev/null +++ b/src/regress/sys/kern/extent/Makefile @@ -0,0 +1,20 @@ +# $OpenBSD: Makefile,v 1.2 2005/04/22 00:37:58 miod Exp $ +# $NetBSD: Makefile,v 1.5 2002/09/18 04:16:02 lukem Exp $ + +PROG= extest +SRCS= extest.c subr_extent.c +CPPFLAGS+= -D_EXTENT_TESTING -DDIAGNOSTIC +CLEANFILES+= extest.c extest.out + +.PATH: ${.CURDIR}/../../../../sys/kern + +REGRESS_TARGETS= do-extent + +do-extent: ${PROG} + ./${PROG} >extest.out + tail +5 ${.CURDIR}/extest.exp | diff - extest.out + +extest.c: extest.awk tests + awk -f ${.CURDIR}/extest.awk <${.CURDIR}/tests >extest.c + +.include diff --git a/src/regress/sys/kern/extent/extest.awk b/src/regress/sys/kern/extent/extest.awk new file mode 100644 index 000000000..e803e9326 --- /dev/null +++ b/src/regress/sys/kern/extent/extest.awk @@ -0,0 +1,76 @@ +# $OpenBSD: extest.awk,v 1.2 2009/04/10 20:57:04 kettenis Exp $ +# $NetBSD: extest.awk,v 1.6 2002/02/21 03:59:25 mrg Exp $ + +BEGIN { + first = 1; + + printf("#include \n") + printf("#include \n\n") + printf("#include \n") + printf("#include \n") + printf("#include \n") + printf("int main(void) {\n") + printf("struct extent *ex; int error; long result;\n") +} + +END { + printf("exit (0);\n") + printf("}\n") +} + +$1 == "extent" { + if (first == 0) { + printf("extent_destroy(ex);\n") + } + + align = "EX_NOALIGN"; + boundary = "EX_NOBOUNDARY"; + + printf("printf(\"output for %s\\n\");\n", $2) + + if ($5 == "") { + flags = "0"; + } else { + flags = $5; + } + printf("ex = extent_create(\"%s\", %s, %s, 0, 0, 0, %s);\n", + $2, $3, $4, flags) + + first = 0; +} + +$1 == "align" { + align = $2; +} + +$1 == "boundary" { + boundary = $2; +} + +$1 == "alloc_region" { + if ($4 == "") { + flags = "0"; + } else { + flags = $4; + } + printf("error = extent_alloc_region(ex, %s, %s, %s);\n", + $2, $3, flags) + printf("if (error)\n\tprintf(\"error: %%s\\n\", strerror(error));\n") +} + +$1 == "alloc_subregion" { + printf("error = extent_alloc_subregion(ex, %s, %s, %s,\n", + $2, $3, $4) + printf("\t%s, 0, %s, 0, &result);\n", align, boundary) + printf("if (error)\n\tprintf(\"error: %%s\\n\", strerror(error));\n") + printf("else\n\tprintf(\"result: 0x%%lx\\n\", result);\n") +} + +$1 == "free" { + printf("error = extent_free(ex, %s, %s, 0);\n", $2, $3) + printf("if (error)\n\tprintf(\"error: %%s\\n\", strerror(error));\n") +} + +$1 == "print" { + printf("extent_print(ex);\n") +} diff --git a/src/regress/sys/kern/extent/extest.exp b/src/regress/sys/kern/extent/extest.exp new file mode 100644 index 000000000..4e4f6a5a4 --- /dev/null +++ b/src/regress/sys/kern/extent/extest.exp @@ -0,0 +1,94 @@ +# $OpenBSD: extest.exp,v 1.4 2009/10/13 20:53:40 miod Exp $ +# $NetBSD: extest.exp,v 1.9 2005/03/15 18:27:23 bouyer Exp $ +# real output must start in line 5 + +output for test1 +result: 0x30 +extent `test1' (0x0 - 0x4f), flags = 0x0 + 0x0 - 0x4f +output for test2 +result: 0x20 +extent `test2' (0x0 - 0x2f), flags = 0x2 + 0x0 - 0xf + 0x20 - 0x2f +output for test3 +result: 0x20 +extent `test3' (0x0 - 0x3f), flags = 0x2 + 0x0 - 0x1f + 0x20 - 0x2f + 0x30 - 0x3f +output for test4 +result: 0xf0000000 +extent `test4' (0xf0000000 - 0xffffffff), flags = 0x0 + 0xf0000000 - 0xf0000000 + 0xf1000000 - 0xf1000000 +output for test5 +result: 0xf0000000 +extent `test5' (0xf0000000 - 0xffffffff), flags = 0x0 + 0xf0000000 - 0xf0000000 +output for test6 +result: 0x0 +result: 0x8 +result: 0xa +extent `test6' (0x0 - 0xb), flags = 0x0 + 0x0 - 0xb +output for test7 +result: 0x0 +result: 0x8 +extent `test7' (0x0 - 0xb), flags = 0x0 + 0x0 - 0x6 + 0x8 - 0xb +output for test8 +result: 0x0 +error: Resource temporarily unavailable +extent `test8' (0x0 - 0x4f), flags = 0x2 + 0x0 - 0xf + 0x30 - 0x3f +output for test9 +result: 0x0 +result: 0xd +result: 0x10 +extent `test9' (0x0 - 0x4f), flags = 0x0 + 0x0 - 0x3 + 0xd - 0xe + 0x10 - 0x17 +output for test10 +result: 0xc0010000 +result: 0xc0020000 +extent `test10' (0xc0002000 - 0xffffe000), flags = 0x0 + 0xc0010000 - 0xc0011fff + 0xc0020000 - 0xc0021fff +extent `test10' (0xc0002000 - 0xffffe000), flags = 0x0 + 0xc0010000 - 0xc0011fff +result: 0xc0022000 +extent `test10' (0xc0002000 - 0xffffe000), flags = 0x0 + 0xc0010000 - 0xc0011fff + 0xc0022000 - 0xc0031fff +output for test11 +result: 0x10 +result: 0x1e +result: 0x20 +error: Resource temporarily unavailable +result: 0x14 +extent `test11' (0x10 - 0x20), flags = 0x2 + 0x10 - 0x13 + 0x14 - 0x14 + 0x1e - 0x1f + 0x20 - 0x20 +output for test12 +error: Resource temporarily unavailable +output for test13 +extent `test13' (0x0 - 0xffffffff), flags = 0x0 + 0xfce00000 - 0xfcefffff +output for test14 +extent `test14' (0x0 - 0xffffffff), flags = 0x0 + 0xfce00000 - 0xfce010ff +output for test15 +extent `test15' (0x0 - 0xffffffff), flags = 0x0 + 0xf8000000 - 0xffffffff +output for test16 +extent `test16' (0x0 - 0xffffffff), flags = 0x0 + 0x0 - 0x1fffffff +output for test17 +extent `test17' (0x0 - 0xffffffffffffffff), flags = 0x0 + 0x0 - 0xffffffffffffffff diff --git a/src/regress/sys/kern/extent/obj b/src/regress/sys/kern/extent/obj new file mode 120000 index 000000000..5405a1c51 --- /dev/null +++ b/src/regress/sys/kern/extent/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/extent \ No newline at end of file diff --git a/src/regress/sys/kern/extent/tests b/src/regress/sys/kern/extent/tests new file mode 100644 index 000000000..9f85853aa --- /dev/null +++ b/src/regress/sys/kern/extent/tests @@ -0,0 +1,138 @@ +# $OpenBSD: tests,v 1.5 2009/10/13 20:53:40 miod Exp $ +# $NetBSD: tests,v 1.9 2005/03/15 18:27:23 bouyer Exp $ + +#fill up an extent, should coalesce into one allocation +extent test1 0 0x4f +alloc_region 0x00 0x10 +alloc_region 0x20 0x10 +alloc_region 0x40 0x10 +alloc_region 0x10 0x10 +alloc_subregion 0 0x4f 0x10 +print + +#check whether subregion is obeyed (PR kern/7539) +extent test2 0 0x2f EX_NOCOALESCE +alloc_region 0x00 0x10 +alloc_subregion 0x20 0x2f 0x10 +print + +#check overlap into subregion (fixed in 1.25) +extent test3 0 0x3f EX_NOCOALESCE +alloc_region 0x00 0x20 +alloc_region 0x30 0x10 +alloc_subregion 0x10 0x3f 0x10 +print + +#check overflow in boundary check, before an allocated region (fixed in 1.32) +extent test4 0xf0000000 0xffffffff +alloc_region 0xf1000000 0x1 +boundary 0x20000000 +alloc_subregion 0xf0000000 0xffffffff 0x1 +print + +#check overflow in boundary check, before the subregion end (fixed in 1.32) +extent test5 0xf0000000 0xffffffff +boundary 0x20000000 +alloc_subregion 0xf0000000 0xffffffff 0x1 +print + +#check allocation beyond last boundary line (to be fixed) +# last two allocations should succeed without boundary "fixups" +extent test6 0 11 +boundary 8 +alloc_subregion 0 11 8 +alloc_subregion 0 11 2 +alloc_subregion 0 11 2 +print + +#check allocation beyond last boundary line (to be fixed) +# last allocation should be bumped to the next boundary and exactly fit +# the remaining space +extent test7 0 11 +boundary 8 +alloc_subregion 0 11 7 +alloc_subregion 0 11 4 +print + +#don't allocate a region pasts the end of subregion (i.e., the second +#alloc_subregion should fail). subr_extent.c prior to rev. 1.43 allocates +#region starts from 0x10. +extent test8 0 0x4f EX_NOCOALESCE +alloc_region 0x30 0x10 +alloc_subregion 0 0xf 0x10 +alloc_subregion 0 0xf 0x10 +print + +#When allocating a region with a boundary constraint, check that we properly +#detect overlaps once the candidate region has been aligned. +#subr_extent.c prior 1.45 could corrupt the extent map in this situation +extent test9 0 0x4f +boundary 0 +alloc_subregion 0 0x10 4 +alloc_subregion 0xd 0x20 2 +boundary 8 +alloc_subregion 0 0x4f 8 +print + +#check that free works +extent test10 0xc0002000 0xffffe000 EX_BOUNDZERO +boundary 0x10000 +align 0x10000 +alloc_subregion 0xc0002000 0xffffe000 0x2000 +alloc_subregion 0xc0002000 0xffffe000 0x2000 +print +free 0xc0020000 0x2000 +print +alloc_subregion 0xc0002000 0xffffe000 0x10000 +print +#If we have something like that in the EX_NOCOALESCE case: +#extent `test11' (0x10 - 0x20), flags = 0x2 +# 0x10 - 0x13 +# 0x1e - 0x1f +# 0x20 - 0x20 +#then a new extent of size 1 could be allocated at 0x20. +# fixed in 1.51 +extent test11 0x10 0x20 EX_NOCOALESCE +alloc_subregion 0x10 0x13 0x4 +alloc_subregion 0x1e 0x1f 0x2 +alloc_subregion 0x20 0x20 0x1 +alloc_subregion 0x20 0x20 0x1 +alloc_subregion 0x10 0x20 0x1 +print + +# Overlapping regions should result in a failure +extent test12 0x00000000 0xffffffff +alloc_region 0xfce00000 0x100 +alloc_region 0xfce00000 0x100000 + +# But not if we specify EX_CONFLICTOK +extent test13 0x00000000 0xffffffff +alloc_region 0xfce00000 0x100 +alloc_region 0xfce00000 0x100000 EX_CONFLICTOK +print + +# Check partial overlap +extent test14 0x00000000 0xffffffff +alloc_region 0xfce00000 0x1000 +alloc_region 0xfce00100 0x1000 EX_CONFLICTOK +print + +# Check multiple overlaps +extent test15 0x00000000 0xffffffff +alloc_region 0xfce00000 0x100 +alloc_region 0xfee00000 0x100 +alloc_region 0xf8000000 0x8000000 EX_CONFLICTOK +print + +# Check coallescing in combination with overlaps +extent test16 0x00000000 0xffffffff +alloc_region 0x0 0xa0000 +alloc_region 0xf0000 0x1ff10000 +alloc_region 0xa0000 0x60000 EX_CONFLICTOK +print + +# Check allocation of a conflicting region in an otherwise filled +# extent does not trigger an infinite loop +extent test17 0x00000000 -1L EX_FILLED +alloc_region 0 0x4000 EX_CONFLICTOK +print diff --git a/src/regress/sys/kern/fcntl_dup/CVS/Entries b/src/regress/sys/kern/fcntl_dup/CVS/Entries new file mode 100644 index 000000000..163f8a3c6 --- /dev/null +++ b/src/regress/sys/kern/fcntl_dup/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Feb 8 17:05:55 2002// +/fcntl_dup.c/1.2/Thu Jul 31 21:48:08 2003// +D diff --git a/src/regress/sys/kern/fcntl_dup/CVS/Repository b/src/regress/sys/kern/fcntl_dup/CVS/Repository new file mode 100644 index 000000000..4f7f9b4dc --- /dev/null +++ b/src/regress/sys/kern/fcntl_dup/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/fcntl_dup diff --git a/src/regress/sys/kern/fcntl_dup/CVS/Root b/src/regress/sys/kern/fcntl_dup/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/fcntl_dup/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/fcntl_dup/Makefile b/src/regress/sys/kern/fcntl_dup/Makefile new file mode 100644 index 000000000..6038a7ee1 --- /dev/null +++ b/src/regress/sys/kern/fcntl_dup/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/08 17:05:55 art Exp $ + +PROG= fcntl_dup + +.include diff --git a/src/regress/sys/kern/fcntl_dup/fcntl_dup.c b/src/regress/sys/kern/fcntl_dup/fcntl_dup.c new file mode 100644 index 000000000..88469c611 --- /dev/null +++ b/src/regress/sys/kern/fcntl_dup/fcntl_dup.c @@ -0,0 +1,39 @@ +/* $OpenBSD: fcntl_dup.c,v 1.2 2003/07/31 21:48:08 deraadt Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + int orgfd, fd1, fd2; + char temp[] = "/tmp/dup2XXXXXXXXX"; + + if ((orgfd = mkstemp(temp)) < 0) + err(1, "mkstemp"); + remove(temp); + + if (ftruncate(orgfd, 1024) != 0) + err(1, "ftruncate"); + + if ((fd1 = dup(orgfd)) < 0) + err(1, "dup"); + + /* Set close-on-exec */ + if (fcntl(fd1, F_SETFD, 1) != 0) + err(1, "fcntl(F_SETFD)"); + + if ((fd2 = fcntl(fd1, F_DUPFD)) < 0) + err(1, "fcntl(F_DUPFD)"); + + /* Test 2: Was close-on-exec cleared? */ + if (fcntl(fd2, F_GETFD) != 0) + errx(1, "fcntl(F_DUPFD) didn't clear close-on-exec"); + + return 0; +} diff --git a/src/regress/sys/kern/fcntl_dup/obj b/src/regress/sys/kern/fcntl_dup/obj new file mode 120000 index 000000000..c8bed8876 --- /dev/null +++ b/src/regress/sys/kern/fcntl_dup/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/fcntl_dup \ No newline at end of file diff --git a/src/regress/sys/kern/flock/CVS/Entries b/src/regress/sys/kern/flock/CVS/Entries new file mode 100644 index 000000000..ef10c10a6 --- /dev/null +++ b/src/regress/sys/kern/flock/CVS/Entries @@ -0,0 +1,3 @@ +/flock.c/1.1/Fri Jul 25 11:41:22 2008// +/Makefile/1.2/Sun Jun 27 18:30:04 2010// +D diff --git a/src/regress/sys/kern/flock/CVS/Repository b/src/regress/sys/kern/flock/CVS/Repository new file mode 100644 index 000000000..8c88a4f4a --- /dev/null +++ b/src/regress/sys/kern/flock/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/flock diff --git a/src/regress/sys/kern/flock/CVS/Root b/src/regress/sys/kern/flock/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/flock/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/flock/Makefile b/src/regress/sys/kern/flock/Makefile new file mode 100644 index 000000000..ce3074042 --- /dev/null +++ b/src/regress/sys/kern/flock/Makefile @@ -0,0 +1,13 @@ +# $OpenBSD: Makefile,v 1.2 2010/06/20 14:14:49 phessler Exp $ + +PROG= flock + +TESTS!=jot 15 1 + +.for a in ${TESTS} +t-${a}: flock + ./flock /tmp ${a} +REGRESS_TARGETS+=t-${a} +.endfor + +.include diff --git a/src/regress/sys/kern/flock/flock.c b/src/regress/sys/kern/flock/flock.c new file mode 100644 index 000000000..e5e0baca0 --- /dev/null +++ b/src/regress/sys/kern/flock/flock.c @@ -0,0 +1,1497 @@ +/*- + * Copyright (c) 2008 Isilon Inc http://www.isilon.com/ + * Authors: Doug Rabson + * Developed with Red Inc: Alfred Perlstein + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: src/tools/regression/file/flock/flock.c,v 1.3 2008/06/26 10:21:54 dfr Exp $ + */ + +#include +#ifdef __FreeBSD__ +#include +#endif +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __FreeBSD__ +#if __FreeBSD_version >= 800028 +#define HAVE_SYSID +#endif +#include +#else +#ifndef __unused +#define __unused +#endif +#endif + +int verbose = 0; + +static int +make_file(const char *pathname, off_t sz) +{ + struct stat st; + const char *template = "/flocktempXXXXXX"; + size_t len; + char *filename; + int fd; + + if (stat(pathname, &st) == 0) { + if (S_ISREG(st.st_mode)) { + fd = open(pathname, O_RDWR); + if (fd < 0) + err(1, "open(%s)", pathname); + if (ftruncate(fd, sz) < 0) + err(1, "ftruncate"); + return (fd); + } + } + + len = strlen(pathname) + strlen(template) + 1; + filename = malloc(len); + snprintf(filename, len, "%s%s", pathname, template); + fd = mkstemp(filename); + if (fd < 0) + err(1, "mkstemp"); + if (ftruncate(fd, sz) < 0) + err(1, "ftruncate"); + if (unlink(filename) < 0) + err(1, "unlink"); + free(filename); + + return (fd); +} + +static void +ignore_alarm(int __unused sig) +{ +} + +static int +safe_waitpid(pid_t pid) +{ + int save_errno; + int status; + + save_errno = errno; + errno = 0; + while (waitpid(pid, &status, 0) != pid) { + if (errno == EINTR) + continue; + err(1, "waitpid"); + } + errno = save_errno; + + return (status); +} + +static int +safe_kill(pid_t pid, int sig) +{ + int save_errno; + int status; + + save_errno = errno; + errno = 0; + status = kill(pid, sig); + errno = save_errno; + + return (status); +} + +#define FAIL(test) \ + do { \ + if (test) { \ + if (verbose) printf("FAIL (%s)\n", #test); \ + return -1; \ + } \ + } while (0) + +#define SUCCEED \ + do { if (verbose) printf("SUCCEED\n"); return 0; } while (0) + +/* + * Test 1 - F_GETLK on unlocked region + * + * If no lock is found that would prevent this lock from being + * created, the structure is left unchanged by this function call + * except for the lock type which is set to F_UNLCK. + */ +static int +test1(int fd, __unused int argc, const __unused char **argv) +{ + struct flock fl1, fl2; + + memset(&fl1, 1, sizeof(fl1)); + fl1.l_type = F_WRLCK; + fl1.l_whence = SEEK_SET; + fl2 = fl1; + + if (fcntl(fd, F_GETLK, &fl1) < 0) + err(1, "F_GETLK"); + + if (verbose) printf("1 - F_GETLK on unlocked region: "); + FAIL(fl1.l_start != fl2.l_start); + FAIL(fl1.l_len != fl2.l_len); + FAIL(fl1.l_pid != fl2.l_pid); + FAIL(fl1.l_type != F_UNLCK); + FAIL(fl1.l_whence != fl2.l_whence); +#ifdef HAVE_SYSID + FAIL(fl1.l_sysid != fl2.l_sysid); +#endif + + SUCCEED; +} + +/* + * Test 2 - F_SETLK on locked region + * + * If a shared or exclusive lock cannot be set, fcntl returns + * immediately with EACCES or EAGAIN. + */ +static int +test2(int fd, __unused int argc, const __unused char **argv) +{ + /* + * We create a child process to hold the lock which we will + * test. We use a pipe to communicate with the child. + */ + int pid; + int pfd[2]; + struct flock fl; + char ch; + int res; + + if (pipe(pfd) < 0) + err(1, "pipe"); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + + pid = fork(); + if (pid < 0) + err(1, "fork"); + + if (pid == 0) { + /* + * We are the child. We set a write lock and then + * write one byte back to the parent to tell it. The + * parent will kill us when its done. + */ + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK (child)"); + if (write(pfd[1], "a", 1) < 0) + err(1, "writing to pipe (child)"); + pause(); + exit(0); + } + + /* + * Wait until the child has set its lock and then perform the + * test. + */ + if (read(pfd[0], &ch, 1) != 1) + err(1, "reading from pipe (child)"); + + /* + * fcntl should return -1 with errno set to either EACCES or + * EAGAIN. + */ + if (verbose) printf("2 - F_SETLK on locked region: "); + res = fcntl(fd, F_SETLK, &fl); + safe_kill(pid, SIGTERM); + safe_waitpid(pid); + close(pfd[0]); + close(pfd[1]); + FAIL(res == 0); + FAIL(errno != EACCES && errno != EAGAIN); + + SUCCEED; +} + +/* + * Test 3 - F_SETLKW on locked region + * + * If a shared or exclusive lock is blocked by other locks, the + * process waits until the request can be satisfied. + * + * XXX this test hangs on FreeBSD NFS filesystems due to limitations + * in FreeBSD's client (and server) lockd implementation. + */ +static int +test3(int fd, __unused int argc, const __unused char **argv) +{ + /* + * We create a child process to hold the lock which we will + * test. We use a pipe to communicate with the child. + */ + int pid; + int pfd[2]; + struct flock fl; + char ch; + int res; + + if (pipe(pfd) < 0) + err(1, "pipe"); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + + pid = fork(); + if (pid < 0) + err(1, "fork"); + + if (pid == 0) { + /* + * We are the child. We set a write lock and then + * write one byte back to the parent to tell it. The + * parent will kill us when its done. + */ + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK (child)"); + if (write(pfd[1], "a", 1) < 0) + err(1, "writing to pipe (child)"); + pause(); + exit(0); + } + + /* + * Wait until the child has set its lock and then perform the + * test. + */ + if (read(pfd[0], &ch, 1) != 1) + err(1, "reading from pipe (child)"); + + /* + * fcntl should wait until the alarm and then return -1 with + * errno set to EINTR. + */ + if (verbose) printf("3 - F_SETLKW on locked region: "); + + alarm(1); + + res = fcntl(fd, F_SETLKW, &fl); + safe_kill(pid, SIGTERM); + safe_waitpid(pid); + close(pfd[0]); + close(pfd[1]); + FAIL(res == 0); + FAIL(errno != EINTR); + + SUCCEED; +} + +/* + * Test 4 - F_GETLK on locked region + * + * Get the first lock that blocks the lock. + */ +static int +test4(int fd, __unused int argc, const __unused char **argv) +{ + /* + * We create a child process to hold the lock which we will + * test. We use a pipe to communicate with the child. + */ + int pid; + int pfd[2]; + struct flock fl; + char ch; + + if (pipe(pfd) < 0) + err(1, "pipe"); + + fl.l_start = 0; + fl.l_len = 99; + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + + pid = fork(); + if (pid < 0) + err(1, "fork"); + + if (pid == 0) { + /* + * We are the child. We set a write lock and then + * write one byte back to the parent to tell it. The + * parent will kill us when its done. + */ + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK (child)"); + if (write(pfd[1], "a", 1) < 0) + err(1, "writing to pipe (child)"); + pause(); + exit(0); + } + + /* + * Wait until the child has set its lock and then perform the + * test. + */ + if (read(pfd[0], &ch, 1) != 1) + err(1, "reading from pipe (child)"); + + /* + * fcntl should return a lock structure reflecting the lock we + * made in the child process. + */ + if (fcntl(fd, F_GETLK, &fl) < 0) + err(1, "F_GETLK"); + + if (verbose) printf("4 - F_GETLK on locked region: "); + FAIL(fl.l_start != 0); + FAIL(fl.l_len != 99); + FAIL(fl.l_type != F_WRLCK); + FAIL(fl.l_pid != pid); +#ifdef HAVE_SYSID + FAIL(fl.l_sysid != 0); +#endif + + safe_kill(pid, SIGTERM); + safe_waitpid(pid); + close(pfd[0]); + close(pfd[1]); + + SUCCEED; +} + +/* + * Test 5 - F_SETLKW simple deadlock + * + * If a blocking shared lock request would cause a deadlock (i.e. the + * lock request is blocked by a process which is itself blocked on a + * lock currently owned by the process making the new request), + * EDEADLK is returned. + */ +static int +test5(int fd, __unused int argc, const __unused char **argv) +{ + /* + * We create a child process to hold the lock which we will + * test. Because our test relies on the child process being + * blocked on the parent's lock, we can't easily use a pipe to + * synchronize so we just sleep in the parent to given the + * child a chance to setup. + * + * To create the deadlock condition, we arrange for the parent + * to lock the first byte of the file and the child to lock + * the second byte. After locking the second byte, the child + * will attempt to lock the first byte of the file, and + * block. The parent will then attempt to lock the second byte + * (owned by the child) which should cause deadlock. + */ + int pid; + struct flock fl; + int res; + + /* + * Lock the first byte in the parent. + */ + fl.l_start = 0; + fl.l_len = 1; + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK 1 (parent)"); + + pid = fork(); + if (pid < 0) + err(1, "fork"); + + if (pid == 0) { + /* + * Lock the second byte in the child and then block on + * the parent's lock. + */ + fl.l_start = 1; + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK (child)"); + fl.l_start = 0; + if (fcntl(fd, F_SETLKW, &fl) < 0) + err(1, "F_SETLKW (child)"); + exit(0); + } + + /* + * Wait until the child has set its lock and then perform the + * test. + */ + sleep(1); + + /* + * fcntl should immediately return -1 with errno set to + * EDEADLK. If the alarm fires, we failed to detect the + * deadlock. + */ + alarm(1); + if (verbose) printf("5 - F_SETLKW simple deadlock: "); + + fl.l_start = 1; + res = fcntl(fd, F_SETLKW, &fl); + safe_kill(pid, SIGTERM); + safe_waitpid(pid); + + FAIL(res == 0); + FAIL(errno != EDEADLK); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_UNLCK; + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_UNLCK"); + + /* + * Cancel the alarm to avoid confusing later tests. + */ + alarm(0); + + SUCCEED; +} + +/* + * Test 6 - F_SETLKW complex deadlock. + * + * This test involves three process, P, C1 and C2. We set things up so + * that P locks byte zero, C1 locks byte 1 and C2 locks byte 2. We + * also block C2 by attempting to lock byte zero. Lastly, P attempts + * to lock a range including byte 1 and 2. This represents a deadlock + * (due to C2's blocking attempt to lock byte zero). + */ +static int +test6(int fd, __unused int argc, const __unused char **argv) +{ + /* + * Because our test relies on the child process being blocked + * on the parent's lock, we can't easily use a pipe to + * synchronize so we just sleep in the parent to given the + * children a chance to setup. + */ + int pid1, pid2; + struct flock fl; + int res; + + /* + * Lock the first byte in the parent. + */ + fl.l_start = 0; + fl.l_len = 1; + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK 1 (parent)"); + + pid1 = fork(); + if (pid1 < 0) + err(1, "fork"); + + if (pid1 == 0) { + /* + * C1 + * Lock the second byte in the child and then sleep + */ + fl.l_start = 1; + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK (child1)"); + pause(); + exit(0); + } + + pid2 = fork(); + if (pid2 < 0) + err(1, "fork"); + + if (pid2 == 0) { + /* + * C2 + * Lock the third byte in the child and then block on + * the parent's lock. + */ + fl.l_start = 2; + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK (child2)"); + fl.l_start = 0; + if (fcntl(fd, F_SETLKW, &fl) < 0) + err(1, "F_SETLKW (child2)"); + exit(0); + } + + /* + * Wait until the children have set their locks and then + * perform the test. + */ + sleep(1); + + /* + * fcntl should immediately return -1 with errno set to + * EDEADLK. If the alarm fires, we failed to detect the + * deadlock. + */ + alarm(1); + if (verbose) printf("6 - F_SETLKW complex deadlock: "); + + fl.l_start = 1; + fl.l_len = 2; + res = fcntl(fd, F_SETLKW, &fl); + safe_kill(pid1, SIGTERM); + safe_waitpid(pid1); + safe_kill(pid2, SIGTERM); + safe_waitpid(pid2); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_UNLCK; + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_UNLCK"); + + FAIL(res == 0); + FAIL(errno != EDEADLK); + + /* + * Cancel the alarm to avoid confusing later tests. + */ + alarm(0); + + SUCCEED; +} + +/* + * Test 7 - F_SETLK shared lock on exclusive locked region + * + * If a shared or exclusive lock cannot be set, fcntl returns + * immediately with EACCES or EAGAIN. + */ +static int +test7(int fd, __unused int argc, const __unused char **argv) +{ + /* + * We create a child process to hold the lock which we will + * test. We use a pipe to communicate with the child. + */ + int pid; + int pfd[2]; + struct flock fl; + char ch; + int res; + + if (pipe(pfd) < 0) + err(1, "pipe"); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + + pid = fork(); + if (pid < 0) + err(1, "fork"); + + if (pid == 0) { + /* + * We are the child. We set a write lock and then + * write one byte back to the parent to tell it. The + * parent will kill us when its done. + */ + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK (child)"); + if (write(pfd[1], "a", 1) < 0) + err(1, "writing to pipe (child)"); + pause(); + exit(0); + } + + /* + * Wait until the child has set its lock and then perform the + * test. + */ + if (read(pfd[0], &ch, 1) != 1) + err(1, "reading from pipe (child)"); + + /* + * fcntl should wait until the alarm and then return -1 with + * errno set to EINTR. + */ + if (verbose) printf("7 - F_SETLK shared lock on exclusive locked region: "); + + fl.l_type = F_RDLCK; + res = fcntl(fd, F_SETLK, &fl); + safe_kill(pid, SIGTERM); + safe_waitpid(pid); + close(pfd[0]); + close(pfd[1]); + + FAIL(res == 0); + FAIL(errno != EACCES && errno != EAGAIN); + + SUCCEED; +} + +/* + * Test 8 - F_SETLK shared lock on share locked region + * + * When a shared lock is set on a segment of a file, other processes + * shall be able to set shared locks on that segment or a portion of + * it. + */ +static int +test8(int fd, __unused int argc, const __unused char **argv) +{ + /* + * We create a child process to hold the lock which we will + * test. We use a pipe to communicate with the child. + */ + int pid; + int pfd[2]; + struct flock fl; + char ch; + int res; + + if (pipe(pfd) < 0) + err(1, "pipe"); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_RDLCK; + fl.l_whence = SEEK_SET; + + pid = fork(); + if (pid < 0) + err(1, "fork"); + + if (pid == 0) { + /* + * We are the child. We set a write lock and then + * write one byte back to the parent to tell it. The + * parent will kill us when its done. + */ + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK (child)"); + if (write(pfd[1], "a", 1) < 0) + err(1, "writing to pipe (child)"); + pause(); + exit(0); + } + + /* + * Wait until the child has set its lock and then perform the + * test. + */ + if (read(pfd[0], &ch, 1) != 1) + err(1, "reading from pipe (child)"); + + /* + * fcntl should wait until the alarm and then return -1 with + * errno set to EINTR. + */ + if (verbose) printf("8 - F_SETLK shared lock on share locked region: "); + + fl.l_type = F_RDLCK; + res = fcntl(fd, F_SETLK, &fl); + + safe_kill(pid, SIGTERM); + safe_waitpid(pid); + close(pfd[0]); + close(pfd[1]); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_UNLCK; + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_UNLCK"); + + FAIL(res != 0); + + SUCCEED; +} + +/* + * Test 9 - F_SETLK exclusive lock on share locked region + * + * If a shared or exclusive lock cannot be set, fcntl returns + * immediately with EACCES or EAGAIN. + */ +static int +test9(int fd, __unused int argc, const __unused char **argv) +{ + /* + * We create a child process to hold the lock which we will + * test. We use a pipe to communicate with the child. + */ + int pid; + int pfd[2]; + struct flock fl; + char ch; + int res; + + if (pipe(pfd) < 0) + err(1, "pipe"); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_RDLCK; + fl.l_whence = SEEK_SET; + + pid = fork(); + if (pid < 0) + err(1, "fork"); + + if (pid == 0) { + /* + * We are the child. We set a write lock and then + * write one byte back to the parent to tell it. The + * parent will kill us when its done. + */ + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK (child)"); + if (write(pfd[1], "a", 1) < 0) + err(1, "writing to pipe (child)"); + pause(); + exit(0); + } + + /* + * Wait until the child has set its lock and then perform the + * test. + */ + if (read(pfd[0], &ch, 1) != 1) + err(1, "reading from pipe (child)"); + + /* + * fcntl should wait until the alarm and then return -1 with + * errno set to EINTR. + */ + if (verbose) printf("9 - F_SETLK exclusive lock on share locked region: "); + + fl.l_type = F_WRLCK; + res = fcntl(fd, F_SETLK, &fl); + safe_kill(pid, SIGTERM); + safe_waitpid(pid); + close(pfd[0]); + close(pfd[1]); + + FAIL(res == 0); + FAIL(errno != EACCES && errno != EAGAIN); + + SUCCEED; +} + +/* + * Test 10 - trying to set bogus pid or sysid values + * + * The l_pid and l_sysid fields are only used with F_GETLK to return + * the process ID of the process holding a blocking lock and the + * system ID of the system that owns that process + */ +static int +test10(int fd, __unused int argc, const __unused char **argv) +{ + /* + * We create a child process to hold the lock which we will + * test. We use a pipe to communicate with the child. + */ + int pid; + int pfd[2]; + struct flock fl; + char ch; + + if (pipe(pfd) < 0) + err(1, "pipe"); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + fl.l_pid = 9999; +#ifdef HAVE_SYSID + fl.l_sysid = 9999; +#endif + + pid = fork(); + if (pid < 0) + err(1, "fork"); + + if (pid == 0) { + /* + * We are the child. We set a write lock and then + * write one byte back to the parent to tell it. The + * parent will kill us when its done. + */ + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK (child)"); + if (write(pfd[1], "a", 1) < 0) + err(1, "writing to pipe (child)"); + pause(); + exit(0); + } + + /* + * Wait until the child has set its lock and then perform the + * test. + */ + if (read(pfd[0], &ch, 1) != 1) + err(1, "reading from pipe (child)"); + + if (verbose) printf("10 - trying to set bogus pid or sysid values: "); + + if (fcntl(fd, F_GETLK, &fl) < 0) + err(1, "F_GETLK"); + + safe_kill(pid, SIGTERM); + safe_waitpid(pid); + close(pfd[0]); + close(pfd[1]); + + FAIL(fl.l_pid != pid); +#ifdef HAVE_SYSID + FAIL(fl.l_sysid != 0); +#endif + + SUCCEED; +} + +/* + * Test 11 - remote locks + * + * XXX temporary interface which will be removed when the kernel lockd + * is added. + */ +static int +test11(int fd, __unused int argc, const __unused char **argv) +{ +#ifdef F_SETLK_REMOTE + struct flock fl; + int res; + + if (geteuid() != 0) + return 0; + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + fl.l_pid = 9999; + fl.l_sysid = 1001; + + if (verbose) printf("11 - remote locks: "); + + res = fcntl(fd, F_SETLK_REMOTE, &fl); + FAIL(res != 0); + + fl.l_sysid = 1002; + res = fcntl(fd, F_SETLK_REMOTE, &fl); + FAIL(res == 0); + FAIL(errno != EACCES && errno != EAGAIN); + + res = fcntl(fd, F_GETLK, &fl); + FAIL(res != 0); + FAIL(fl.l_pid != 9999); + FAIL(fl.l_sysid != 1001); + + fl.l_type = F_UNLCK; + fl.l_sysid = 1001; + fl.l_start = 0; + fl.l_len = 0; + res = fcntl(fd, F_SETLK_REMOTE, &fl); + FAIL(res != 0); + + fl.l_pid = 1234; + fl.l_sysid = 1001; + fl.l_start = 0; + fl.l_len = 1; + fl.l_whence = SEEK_SET; + fl.l_type = F_RDLCK; + res = fcntl(fd, F_SETLK_REMOTE, &fl); + FAIL(res != 0); + + fl.l_sysid = 1002; + res = fcntl(fd, F_SETLK_REMOTE, &fl); + FAIL(res != 0); + + fl.l_type = F_UNLCKSYS; + fl.l_sysid = 1001; + res = fcntl(fd, F_SETLK_REMOTE, &fl); + FAIL(res != 0); + + fl.l_type = F_WRLCK; + res = fcntl(fd, F_GETLK, &fl); + FAIL(res != 0); + FAIL(fl.l_pid != 1234); + FAIL(fl.l_sysid != 1002); + + fl.l_type = F_UNLCKSYS; + fl.l_sysid = 1002; + res = fcntl(fd, F_SETLK_REMOTE, &fl); + FAIL(res != 0); + + SUCCEED; +#else + return 0; +#endif +} + +/* + * Test 12 - F_SETLKW on locked region which is then unlocked + * + * If a shared or exclusive lock is blocked by other locks, the + * process waits until the request can be satisfied. + */ +static int +test12(int fd, __unused int argc, const __unused char **argv) +{ + /* + * We create a child process to hold the lock which we will + * test. We use a pipe to communicate with the child. + */ + int pid; + int pfd[2]; + struct flock fl; + char ch; + int res; + + if (pipe(pfd) < 0) + err(1, "pipe"); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + + pid = fork(); + if (pid < 0) + err(1, "fork"); + + if (pid == 0) { + /* + * We are the child. We set a write lock and then + * write one byte back to the parent to tell it. The + * parent will kill us when its done. + */ + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK (child)"); + if (write(pfd[1], "a", 1) < 0) + err(1, "writing to pipe (child)"); + + sleep(1); + exit(0); + } + + /* + * Wait until the child has set its lock and then perform the + * test. + */ + if (read(pfd[0], &ch, 1) != 1) + err(1, "reading from pipe (child)"); + + /* + * fcntl should wait until the alarm and then return -1 with + * errno set to EINTR. + */ + if (verbose) printf("12 - F_SETLKW on locked region which is then unlocked: "); + + //alarm(1); + + res = fcntl(fd, F_SETLKW, &fl); + safe_kill(pid, SIGTERM); + safe_waitpid(pid); + close(pfd[0]); + close(pfd[1]); + FAIL(res != 0); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_UNLCK; + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_UNLCK"); + + SUCCEED; +} + +/* + * Test 13 - F_SETLKW on locked region, race with owner + * + * If a shared or exclusive lock is blocked by other locks, the + * process waits until the request can be satisfied. + */ +static int +test13(int fd, __unused int argc, const __unused char **argv) +{ + /* + * We create a child process to hold the lock which we will + * test. We use a pipe to communicate with the child. + */ + int i; + int pid; + int pfd[2]; + struct flock fl; + char ch; + int res; + struct itimerval itv; + + if (verbose) printf("13 - F_SETLKW on locked region, race with owner: "); + fflush(stdout); + + for (i = 0; i < 100; i++) { + if (pipe(pfd) < 0) + err(1, "pipe"); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + + pid = fork(); + if (pid < 0) + err(1, "fork"); + + if (pid == 0) { + /* + * We are the child. We set a write lock and then + * write one byte back to the parent to tell it. The + * parent will kill us when its done. + */ + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_SETLK (child)"); + if (write(pfd[1], "a", 1) < 0) + err(1, "writing to pipe (child)"); + + sleep(1); + exit(0); + } + + /* + * Wait until the child has set its lock and then perform the + * test. + */ + while (read(pfd[0], &ch, 1) != 1) { + if (errno == EINTR) + continue; + err(1, "reading from pipe (child)"); + } + + /* + * fcntl should wait until the alarm and then return -1 with + * errno set to EINTR. + */ + itv.it_interval.tv_sec = 0; + itv.it_interval.tv_usec = 0; + itv.it_value.tv_sec = 0; + itv.it_value.tv_usec = 2; + setitimer(ITIMER_REAL, &itv, NULL); + + res = fcntl(fd, F_SETLKW, &fl); + safe_kill(pid, SIGTERM); + safe_waitpid(pid); + close(pfd[0]); + close(pfd[1]); + FAIL(!(res == 0 || (res == -1 && errno == EINTR))); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_UNLCK; + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "F_UNLCK"); + } + SUCCEED; +} + +/* + * Test 14 - soak test + */ +static int +test14(int fd, int argc, const char **argv) +{ +#define CHILD_COUNT 20 + /* + * We create a set of child processes and let each one run + * through a random sequence of locks and unlocks. + */ + int i, j, id, id_base; + int pids[CHILD_COUNT], pid; + char buf[128]; + char tbuf[128]; + int map[128]; + char outbuf[512]; + struct flock fl; + struct itimerval itv; + int status; + + id_base = 0; + if (argc >= 2) + id_base = strtol(argv[1], NULL, 0); + + if (verbose) printf("14 - soak test: "); + fflush(stdout); + + for (i = 0; i < 128; i++) + map[i] = F_UNLCK; + + for (i = 0; i < CHILD_COUNT; i++) { + + pid = fork(); + if (pid < 0) + err(1, "fork"); + if (pid) { + /* + * Parent - record the pid and continue. + */ + pids[i] = pid; + continue; + } + + /* + * Child - do some work and exit. + */ + id = id_base + i; + srandom(getpid()); + + for (j = 0; j < 50; j++) { + int start, end, len; + int set, wrlock; + + do { + start = random() & 127; + end = random() & 127; + } while (end <= start); + + set = random() & 1; + wrlock = random() & 1; + + len = end - start; + fl.l_start = start; + fl.l_len = len; + fl.l_whence = SEEK_SET; + if (set) + fl.l_type = wrlock ? F_WRLCK : F_RDLCK; + else + fl.l_type = F_UNLCK; + + itv.it_interval.tv_sec = 0; + itv.it_interval.tv_usec = 0; + itv.it_value.tv_sec = 0; + itv.it_value.tv_usec = 3000; + setitimer(ITIMER_REAL, &itv, NULL); + + if (fcntl(fd, F_SETLKW, &fl) < 0) { + if (errno == EDEADLK || errno == EINTR) { + if (verbose) { + snprintf(outbuf, sizeof(outbuf), + "%d[%d]: %s [%d .. %d] %s\n", + id, j, + set ? (wrlock ? "write lock" + : "read lock") + : "unlock", start, end, + errno == EDEADLK + ? "deadlock" + : "interrupted"); + write(1, outbuf, + strlen(outbuf)); + } + continue; + } else { + perror("fcntl"); + } + } + + itv.it_interval.tv_sec = 0; + itv.it_interval.tv_usec = 0; + itv.it_value.tv_sec = 0; + itv.it_value.tv_usec = 0; + setitimer(ITIMER_REAL, &itv, NULL); + + if (verbose) { + snprintf(outbuf, sizeof(outbuf), + "%d[%d]: %s [%d .. %d] succeeded\n", + id, j, + set ? (wrlock ? "write lock" : "read lock") + : "unlock", start, end); + write(1, outbuf, strlen(outbuf)); + } + + if (set) { + if (wrlock) { + /* + * We got a write lock - write + * our ID to each byte that we + * managed to claim. + */ + for (i = start; i < end; i++) + map[i] = F_WRLCK; + memset(&buf[start], id, len); + if (pwrite(fd, &buf[start], len, + start) != len) { + printf("%d: short write\n", id); + exit(1); + } + } else { + /* + * We got a read lock - read + * the bytes which we claimed + * so that we can check that + * they don't change + * unexpectedly. + */ + for (i = start; i < end; i++) + map[i] = F_RDLCK; + if (pread(fd, &buf[start], len, + start) != len) { + printf("%d: short read\n", id); + exit(1); + } + } + } else { + for (i = start; i < end; i++) + map[i] = F_UNLCK; + } + + usleep(1000); + + /* + * Read back the whole region so that we can + * check that all the bytes we have some kind + * of claim to have the correct value. + */ + if (pread(fd, tbuf, sizeof(tbuf), 0) != sizeof(tbuf)) { + printf("%d: short read\n", id); + exit(1); + } + + for (i = 0; i < 128; i++) { + if (map[i] != F_UNLCK && buf[i] != tbuf[i]) { + snprintf(outbuf, sizeof(outbuf), + "%d: byte %d expected %d, " + "got %d\n", id, i, buf[i], tbuf[i]); + write(1, outbuf, strlen(outbuf)); + exit(1); + } + } + } + if (verbose) + printf("%d[%d]: done\n", id, j); + + exit(0); + } + + status = 0; + for (i = 0; i < CHILD_COUNT; i++) { + status += safe_waitpid(pids[i]); + } + if (status) + FAIL(status != 0); + + SUCCEED; +} + +/* + * Test 15 - flock(2) semantcs + * + * When a lock holder has a shared lock and attempts to upgrade that + * shared lock to exclusive, it must drop the shared lock before + * blocking on the exclusive lock. + * + * To test this, we first arrange for two shared locks on the file, + * and then attempt to upgrade one of them to exclusive. This should + * drop one of the shared locks and block. We interrupt the blocking + * lock request and examine the lock state of the file after dropping + * the other shared lock - there should be no active locks at this + * point. + */ +static int +test15(int fd, __unused int argc, const __unused char **argv) +{ +#ifdef LOCK_EX + /* + * We create a child process to hold the lock which we will + * test. We use a pipe to communicate with the child. + * + * Since we only have one file descriptors and lock ownership + * for flock(2) goes with the file descriptor, we use fcntl to + * set the child's shared lock. + */ + int pid; + int pfd[2]; + int fd2; + struct flock fl; + char ch; + int res; + + if (pipe(pfd) < 0) + err(1, "pipe"); + + pid = fork(); + if (pid < 0) + err(1, "fork"); + + if (pid == 0) { + /* + * We are the child. We set a shared lock and then + * write one byte back to the parent to tell it. The + * parent will kill us when its done. + */ + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_RDLCK; + fl.l_whence = SEEK_SET; + if (fcntl(fd, F_SETLK, &fl) < 0) + err(1, "fcntl(F_SETLK) (child)"); + if (write(pfd[1], "a", 1) < 0) + err(1, "writing to pipe (child)"); + pause(); + exit(0); + } + + /* + * Wait until the child has set its lock and then perform the + * test. + */ + if (read(pfd[0], &ch, 1) != 1) + err(1, "reading from pipe (child)"); + + fd2 = dup(fd); + if (flock(fd, LOCK_SH) < 0) + err(1, "flock shared"); + + /* + * flock should wait until the alarm and then return -1 with + * errno set to EINTR. + */ + if (verbose) printf("15 - flock(2) semantics: "); + + alarm(1); + flock(fd, LOCK_EX); + + /* + * Kill the child to force it to drop its locks. + */ + safe_kill(pid, SIGTERM); + safe_waitpid(pid); + + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + res = fcntl(fd, F_GETLK, &fl); + + close(pfd[0]); + close(pfd[1]); + FAIL(res != 0); + FAIL(fl.l_type != F_UNLCK); + + SUCCEED; +#else + return 0; +#endif +} + +struct test { + int (*testfn)(int, int, const char **); /* function to perform the test */ + int num; /* test number */ + int intr; /* non-zero if the test interrupts a lock */ +}; + +struct test tests[] = { + { test1, 1, 0 }, + { test2, 2, 0 }, + { test3, 3, 1 }, + { test4, 4, 0 }, + { test5, 5, 1 }, + { test6, 6, 1 }, + { test7, 7, 0 }, + { test8, 8, 0 }, + { test9, 9, 0 }, + { test10, 10, 0 }, + { test11, 11, 1 }, + { test12, 12, 0 }, + { test13, 13, 1 }, + { test14, 14, 0 }, + { test15, 15, 1 }, +}; +int test_count = sizeof(tests) / sizeof(tests[0]); + +int +main(int argc, const char *argv[]) +{ + int testnum; + int fd; + int nointr; + int i; + struct sigaction sa; + int test_argc; + const char **test_argv; + int ret; + + if (argc < 2) { + errx(1, "usage: flock [test number] ..."); + } + + fd = make_file(argv[1], 1024); + if (argc >= 3) { + testnum = strtol(argv[2], NULL, 0); + test_argc = argc - 2; + test_argv = argv + 2; + } else { + verbose = 1; + testnum = 0; + test_argc = 0; + test_argv = 0; + } + + sa.sa_handler = ignore_alarm; + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + sigaction(SIGALRM, &sa, 0); + + nointr = 0; +#if defined(__FreeBSD__) && __FreeBSD_version < 800040 + { + /* + * FreeBSD with userland NLM can't interrupt a blocked + * lock request on an NFS mounted filesystem. + */ + struct statfs st; + fstatfs(fd, &st); + nointr = !strcmp(st.f_fstypename, "nfs"); + } +#endif + + ret = 0; + for (i = 0; i < test_count; i++) { + if (tests[i].intr && nointr) + continue; + if (!testnum || tests[i].num == testnum) + ret |= tests[i].testfn(fd, test_argc, test_argv); + } + + return (ret ? 1 : 0); +} diff --git a/src/regress/sys/kern/flock/obj b/src/regress/sys/kern/flock/obj new file mode 120000 index 000000000..fe2b8964a --- /dev/null +++ b/src/regress/sys/kern/flock/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/flock \ No newline at end of file diff --git a/src/regress/sys/kern/getpeereid/CVS/Entries b/src/regress/sys/kern/getpeereid/CVS/Entries new file mode 100644 index 000000000..9e48019ad --- /dev/null +++ b/src/regress/sys/kern/getpeereid/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Oct 23 15:18:47 2006// +/getpeereid_test.c/1.1/Mon Oct 23 15:18:47 2006// +D diff --git a/src/regress/sys/kern/getpeereid/CVS/Repository b/src/regress/sys/kern/getpeereid/CVS/Repository new file mode 100644 index 000000000..a0c0a764b --- /dev/null +++ b/src/regress/sys/kern/getpeereid/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/getpeereid diff --git a/src/regress/sys/kern/getpeereid/CVS/Root b/src/regress/sys/kern/getpeereid/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/getpeereid/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/getpeereid/Makefile b/src/regress/sys/kern/getpeereid/Makefile new file mode 100644 index 000000000..3b0253bf5 --- /dev/null +++ b/src/regress/sys/kern/getpeereid/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2006/10/23 15:18:47 espie Exp $ + +PROG= getpeereid_test + +.include diff --git a/src/regress/sys/kern/getpeereid/getpeereid_test.c b/src/regress/sys/kern/getpeereid/getpeereid_test.c new file mode 100644 index 000000000..fe4815bd3 --- /dev/null +++ b/src/regress/sys/kern/getpeereid/getpeereid_test.c @@ -0,0 +1,147 @@ +/* $OpenBSD: getpeereid_test.c,v 1.1 2006/10/23 15:18:47 espie Exp $ */ +/* Written by Marc Espie in 2006 */ +/* Public domain */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +char path[1024]; +char *dir; + +char * +check_id(int fd) +{ + uid_t sockuid, myuid; + gid_t sockgid, mygid; + static char problem[1024]; + + if (getpeereid(fd, &sockuid, &sockgid) == -1) { + snprintf(problem, sizeof problem, "getpeereid: %s", + strerror(errno)); + return problem; + } + myuid = geteuid(); + mygid = getgid(); + if (myuid != sockuid) { + snprintf(problem, sizeof problem, "uid discrepancy %ld vs %ld", + (long)myuid, (long)sockuid); + return problem; + } + if (mygid != sockgid) { + snprintf(problem, sizeof problem, "gid discrepancy %ld vs %ld", + (long)mygid, (long)sockgid); + return problem; + } + return NULL; +} + +void +client(struct sockaddr_un *sun) +{ + int s; + int i; + int r; + char *problem; + + s = socket(AF_UNIX, SOCK_STREAM, 0); + if (s == -1) + err(1, "Bad socket"); + + /* XXX make sure the server started alright */ + for (i = 0; i < 10; i++) { + r = connect(s, (struct sockaddr *)sun, sizeof(*sun)); + if (r == 0) { + problem = check_id(s); + if (problem) + errx(1, problem); + exit(0); + } + sleep(5); + } + errx(1, "Could not connect after 10 tries"); +} + + +void +server(struct sockaddr_un *sun) +{ + int s, fd; + struct sockaddr_storage client_addr; + socklen_t client_len; + char *problem; + + s = socket(AF_UNIX, SOCK_STREAM, 0); + if (s == -1) + err(1, "Bad socket"); + + if (bind(s, (struct sockaddr *)sun, sizeof(*sun)) != 0) + err(1, "bind"); + if (listen(s, 5) != 0) { + unlink(path); + rmdir(dir); + err(1, "listen"); + } + fd = accept(s, (struct sockaddr *)&client_addr, &client_len); + if (fd == -1) { + unlink(path); + rmdir(dir); + err(1, "accept"); + } + problem = check_id(fd); + if (problem) { + unlink(path); + rmdir(dir); + errx(1, problem); + } + unlink(path); + rmdir(dir); +} + + + +int +main() +{ + pid_t pid; + struct sockaddr_un sun; + char dir_template[] = "/tmp/peer.XXXXXX"; + + dir = mkdtemp(dir_template); + if (!dir) + err(1, "mkdtemp"); + snprintf(path, sizeof path, "%s/%s", dir, "socket"); + + memset(&sun, 0, sizeof(struct sockaddr_un)); + if (strlcpy(sun.sun_path, path, sizeof(sun.sun_path)) >= + sizeof(sun.sun_path)) + errx(1, "Memory error"); + sun.sun_len = sizeof(sun); + sun.sun_family = AF_UNIX; + + /* let's make those two rendez-vous, a bit artificial */ + pid = fork(); + if (pid == -1) + err(1, "can't fork"); + if (pid == 0) { + client(&sun); + exit(0); + } else { + int status; + + server(&sun); + waitpid(pid, &status, 0); + if (WIFEXITED(status) && WEXITSTATUS(status) == 0) { + printf("getpeereid test okay\n"); + exit(0); + } else + errx(1, "Problem with child\n"); + } +} diff --git a/src/regress/sys/kern/getpeereid/obj b/src/regress/sys/kern/getpeereid/obj new file mode 120000 index 000000000..8cbc6f3c0 --- /dev/null +++ b/src/regress/sys/kern/getpeereid/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/getpeereid \ No newline at end of file diff --git a/src/regress/sys/kern/getrusage/CVS/Entries b/src/regress/sys/kern/getrusage/CVS/Entries new file mode 100644 index 000000000..5075a6cbd --- /dev/null +++ b/src/regress/sys/kern/getrusage/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Tue Jan 1 23:05:30 2002// +/getrusage.c/1.3/Thu Jul 31 21:48:08 2003// +D diff --git a/src/regress/sys/kern/getrusage/CVS/Repository b/src/regress/sys/kern/getrusage/CVS/Repository new file mode 100644 index 000000000..080ac808e --- /dev/null +++ b/src/regress/sys/kern/getrusage/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/getrusage diff --git a/src/regress/sys/kern/getrusage/CVS/Root b/src/regress/sys/kern/getrusage/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/getrusage/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/getrusage/Makefile b/src/regress/sys/kern/getrusage/Makefile new file mode 100644 index 000000000..7b4cc07b3 --- /dev/null +++ b/src/regress/sys/kern/getrusage/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/01 23:05:30 art Exp $ + +PROG= getrusage + +.include diff --git a/src/regress/sys/kern/getrusage/getrusage.c b/src/regress/sys/kern/getrusage/getrusage.c new file mode 100644 index 000000000..13bd3f08f --- /dev/null +++ b/src/regress/sys/kern/getrusage/getrusage.c @@ -0,0 +1,39 @@ +/* $OpenBSD: getrusage.c,v 1.3 2003/07/31 21:48:08 deraadt Exp $ */ +/* + * Written by Thomas Nordin 2002 Public Domain. + */ +#include +#include +#include +#include +#include + +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + struct timeval utime; + struct timeval stime; + struct rusage r; + int i; + + timerclear(&utime); + timerclear(&stime); + do { + if (getrusage(RUSAGE_SELF, &r) == -1) + err(1, "getrusage"); + + if (timercmp(&(r.ru_utime), &utime, <)) + errx(1, "user time decreased"); + utime = r.ru_utime; + + if (timercmp(&(r.ru_stime), &stime, <)) + errx(1, "system time decreased"); + stime = r.ru_stime; + } while (utime.tv_sec < 1 && stime.tv_sec < 1); + + return 0; +} diff --git a/src/regress/sys/kern/getrusage/obj b/src/regress/sys/kern/getrusage/obj new file mode 120000 index 000000000..3de9bb059 --- /dev/null +++ b/src/regress/sys/kern/getrusage/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/getrusage \ No newline at end of file diff --git a/src/regress/sys/kern/gettimeofday/CVS/Entries b/src/regress/sys/kern/gettimeofday/CVS/Entries new file mode 100644 index 000000000..1de43d52e --- /dev/null +++ b/src/regress/sys/kern/gettimeofday/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Feb 21 09:21:30 2002// +/gettimeofday.c/1.2/Thu Jul 31 21:48:08 2003// +D diff --git a/src/regress/sys/kern/gettimeofday/CVS/Repository b/src/regress/sys/kern/gettimeofday/CVS/Repository new file mode 100644 index 000000000..27cfd2c9b --- /dev/null +++ b/src/regress/sys/kern/gettimeofday/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/gettimeofday diff --git a/src/regress/sys/kern/gettimeofday/CVS/Root b/src/regress/sys/kern/gettimeofday/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/gettimeofday/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/gettimeofday/Makefile b/src/regress/sys/kern/gettimeofday/Makefile new file mode 100644 index 000000000..72706202f --- /dev/null +++ b/src/regress/sys/kern/gettimeofday/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/21 09:21:30 nordin Exp $ + +PROG= gettimeofday + +.include diff --git a/src/regress/sys/kern/gettimeofday/gettimeofday.c b/src/regress/sys/kern/gettimeofday/gettimeofday.c new file mode 100644 index 000000000..df6771a3b --- /dev/null +++ b/src/regress/sys/kern/gettimeofday/gettimeofday.c @@ -0,0 +1,31 @@ +/* $OpenBSD: gettimeofday.c,v 1.2 2003/07/31 21:48:08 deraadt Exp $ */ +/* + * Written by Thomas Nordin 2002 Public Domain. + */ +#include +#include + +#include + +int +main(int argc, char *argv[]) +{ + struct timeval s; + struct timeval t1; + struct timeval t2; + + if (gettimeofday(&s, NULL) == -1) + err(1, "gettimeofday"); + + do { + if (gettimeofday(&t1, NULL) == -1) + err(1, "gettimeofday"); + if (gettimeofday(&t2, NULL) == -1) + err(1, "gettimeofday"); + + if (timercmp(&t2, &t1, <)) + errx(1, "time of day decreased"); + } while (t1.tv_sec - s.tv_sec < 7); + + return 0; +} diff --git a/src/regress/sys/kern/gettimeofday/obj b/src/regress/sys/kern/gettimeofday/obj new file mode 120000 index 000000000..88003e182 --- /dev/null +++ b/src/regress/sys/kern/gettimeofday/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/gettimeofday \ No newline at end of file diff --git a/src/regress/sys/kern/itimer/CVS/Entries b/src/regress/sys/kern/itimer/CVS/Entries new file mode 100644 index 000000000..e28b954f4 --- /dev/null +++ b/src/regress/sys/kern/itimer/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Jul 28 21:32:51 2004// +/itimer.c/1.1/Wed Jul 28 21:32:51 2004// +D diff --git a/src/regress/sys/kern/itimer/CVS/Repository b/src/regress/sys/kern/itimer/CVS/Repository new file mode 100644 index 000000000..8a3dd8b83 --- /dev/null +++ b/src/regress/sys/kern/itimer/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/itimer diff --git a/src/regress/sys/kern/itimer/CVS/Root b/src/regress/sys/kern/itimer/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/itimer/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/itimer/Makefile b/src/regress/sys/kern/itimer/Makefile new file mode 100644 index 000000000..e9e2d0a1c --- /dev/null +++ b/src/regress/sys/kern/itimer/Makefile @@ -0,0 +1,17 @@ +# $OpenBSD: Makefile,v 1.1 2004/07/28 21:32:51 art Exp $ + +PROG= itimer +SRCS= itimer.c + +real: itimer + ./itimer -r + +virtual: itimer + ./itimer -v + +prof: itimer + ./itimer -p + +REGRESS_TARGETS=real virtual prof + +.include diff --git a/src/regress/sys/kern/itimer/itimer.c b/src/regress/sys/kern/itimer/itimer.c new file mode 100644 index 000000000..cdaf2849e --- /dev/null +++ b/src/regress/sys/kern/itimer/itimer.c @@ -0,0 +1,95 @@ +/* $OpenBSD: itimer.c,v 1.1 2004/07/28 21:32:51 art Exp $ */ +/* + * Written by Artur Grabowski 2004 Public Domain. + */ +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +void sighand(int); + +volatile sig_atomic_t ticks; + +#define TIMEOUT 2 + +int +main(int argc, char **argv) +{ + struct timeval stv, tv; + struct itimerval itv; + struct rusage ru; + int which, sig; + int ch; + + while ((ch = getopt(argc, argv, "rvp")) != -1) { + switch (ch) { + case 'r': + which = ITIMER_REAL; + sig = SIGALRM; + break; + case 'v': + which = ITIMER_VIRTUAL; + sig = SIGVTALRM; + break; + case 'p': + which = ITIMER_PROF; + sig = SIGPROF; + break; + default: + fprintf(stderr, "Usage: itimer [-rvp]\n"); + exit(1); + } + } + + signal(sig, sighand); + + itv.it_value.tv_sec = 0; + itv.it_value.tv_usec = 100000; + itv.it_interval = itv.it_value; + + if (setitimer(which, &itv, NULL) != 0) + err(1, "setitimer"); + + gettimeofday(&stv, NULL); + while (ticks != TIMEOUT * 10) + ; + + switch (which) { + case ITIMER_REAL: + gettimeofday(&tv, NULL); + timersub(&tv, &stv, &tv); + break; + case ITIMER_VIRTUAL: + case ITIMER_PROF: + if (getrusage(RUSAGE_SELF, &ru) != 0) + err(1, "getrusage"); + tv = ru.ru_utime; + break; + } + stv.tv_sec = TIMEOUT; + stv.tv_usec = 0; + + if (timercmp(&stv, &tv, <)) + timersub(&tv, &stv, &tv); + else + timersub(&stv, &tv, &tv); + + if (tv.tv_sec != 0 || tv.tv_usec > 100000) + errx(1, "timer difference too big: %ld.%ld", (long)tv.tv_sec, + (long)tv.tv_usec); + + return (0); +} + +void +sighand(int signum) +{ + ticks++; +} diff --git a/src/regress/sys/kern/itimer/obj b/src/regress/sys/kern/itimer/obj new file mode 120000 index 000000000..54202b1cc --- /dev/null +++ b/src/regress/sys/kern/itimer/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/itimer \ No newline at end of file diff --git a/src/regress/sys/kern/kqueue/CVS/Entries b/src/regress/sys/kern/kqueue/CVS/Entries new file mode 100644 index 000000000..715ac5ee1 --- /dev/null +++ b/src/regress/sys/kern/kqueue/CVS/Entries @@ -0,0 +1,9 @@ +/Makefile/1.13/Wed Dec 29 04:39:17 2004// +/kqueue-fork.c/1.2/Thu Jul 31 21:48:08 2003// +/kqueue-pipe.c/1.4/Thu Jul 31 21:48:08 2003// +/kqueue-process.c/1.4/Thu Jul 31 21:48:08 2003// +/kqueue-pty.c/1.5/Thu Jul 31 21:48:08 2003// +/kqueue-random.c/1.4/Thu Jul 31 21:48:08 2003// +/main.c/1.5/Tue Dec 2 05:48:48 2003// +/kqueue-tun.c/1.4/Sun Jun 27 18:30:04 2010// +D diff --git a/src/regress/sys/kern/kqueue/CVS/Repository b/src/regress/sys/kern/kqueue/CVS/Repository new file mode 100644 index 000000000..01d746257 --- /dev/null +++ b/src/regress/sys/kern/kqueue/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/kqueue diff --git a/src/regress/sys/kern/kqueue/CVS/Root b/src/regress/sys/kern/kqueue/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/kqueue/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/kqueue/Makefile b/src/regress/sys/kern/kqueue/Makefile new file mode 100644 index 000000000..2ca436026 --- /dev/null +++ b/src/regress/sys/kern/kqueue/Makefile @@ -0,0 +1,33 @@ +# $OpenBSD: Makefile,v 1.13 2004/12/29 04:39:17 david Exp $ + +PROG= kqueue-test +CFLAGS+=-Wall +SRCS= kqueue-pipe.c kqueue-fork.c main.c kqueue-process.c kqueue-random.c \ + kqueue-pty.c kqueue-tun.c +LDADD= -levent -lutil +DPADD= ${LIBEVENT} ${LIBUTIL} + +kq-pipe: ${PROG} + ./${PROG} -p +kq-fork: ${PROG} + ./${PROG} -f +kq-process: ${PROG} + ./${PROG} -P +kq-random: ${PROG} + ./${PROG} -r +kq-tun: ${PROG} + @-${SUDO} sh -c 'cd /dev && sh MAKEDEV tun98 tun99' + @EVENT_SHOW_METHOD=yes EVENT_NOPOLL=yes EVENT_NOSELECT=yes ${SUDO} ./${PROG} -t + @EVENT_SHOW_METHOD=yes EVENT_NOPOLL=yes EVENT_NOKQUEUE=yes ${SUDO} ./${PROG} -t + @EVENT_SHOW_METHOD=yes EVENT_NOSELECT=yes EVENT_NOKQUEUE=yes ${SUDO} ./${PROG} -t + @-${SUDO} ifconfig tun98 destroy + @-${SUDO} ifconfig tun99 destroy + @-${SUDO} rm -f /dev/tun98 /dev/tun99 +kq-pty: ${PROG} + ${SUDO} ./${PROG} -T + +REGRESS_TARGETS=kq-pipe kq-fork kq-process kq-random kq-tun kq-pty +REGRESS_ROOT_TARGETS=${REGRESS_TARGETS} +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/sys/kern/kqueue/kqueue-fork.c b/src/regress/sys/kern/kqueue/kqueue-fork.c new file mode 100644 index 000000000..67ab19350 --- /dev/null +++ b/src/regress/sys/kern/kqueue/kqueue-fork.c @@ -0,0 +1,48 @@ +/* $OpenBSD: kqueue-fork.c,v 1.2 2003/07/31 21:48:08 deraadt Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain + */ + +#include +#include +#include +#include + +#include +#include +#include + +int check_inheritance(void); + +int +check_inheritance(void) +{ + int kq, status; + + if ((kq = kqueue()) < 0) { + warn("kqueue"); + return (1); + } + + /* + * Check if the kqueue is properly closed on fork(). + */ + + switch (fork()) { + case -1: + err(1, "fork"); + case 0: + if (close(kq) < 0) + _exit(0); + warnx("fork didn't close kqueue"); + _exit(1); + } + if (wait(&status) < 0) + err(1, "wait"); + + if (!WIFEXITED(status)) + errx(1, "child didn't exit?"); + + close(kq); + return (WEXITSTATUS(status) != 0); +} diff --git a/src/regress/sys/kern/kqueue/kqueue-pipe.c b/src/regress/sys/kern/kqueue/kqueue-pipe.c new file mode 100644 index 000000000..6ef3ccdb7 --- /dev/null +++ b/src/regress/sys/kern/kqueue/kqueue-pipe.c @@ -0,0 +1,83 @@ +/* $OpenBSD: kqueue-pipe.c,v 1.4 2003/07/31 21:48:08 deraadt Exp $ */ +/* + * Copyright 2001 Niels Provos + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Niels Provos. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include +#include +#include +#include +#include + +int do_pipe(void); + +int +do_pipe(void) +{ + int kq; + int n; + int fd[2]; + struct kevent ev; + struct timespec ts; + char buf[8000]; + + if (pipe(fd) == -1) + return (1); + if (fcntl(fd[1], F_SETFL, O_NONBLOCK) == -1) + return (1); + + if ((kq = kqueue()) == -1) + return (1); + + ev.ident = fd[1]; + ev.filter = EVFILT_WRITE; + ev.flags = EV_ADD | EV_ENABLE; + n = kevent(kq, &ev, 1, NULL, 0, NULL); + if (n == -1) + return (1); + + while ((n = write(fd[1], buf, sizeof(buf))) == sizeof(buf)) + ; + + ts.tv_sec = 0; + ts.tv_nsec = 0; + n = kevent(kq, NULL, 0, &ev, 1, &ts); + if (n != 0) + return (1); + + read(fd[0], buf, sizeof(buf)); + + ts.tv_sec = 0; + ts.tv_nsec = 0; + n = kevent(kq, NULL, 0, &ev, 1, &ts); + if (n == -1 || n == 0) + return (1); + + return (0); +} diff --git a/src/regress/sys/kern/kqueue/kqueue-process.c b/src/regress/sys/kern/kqueue/kqueue-process.c new file mode 100644 index 000000000..9fda60887 --- /dev/null +++ b/src/regress/sys/kern/kqueue/kqueue-process.c @@ -0,0 +1,139 @@ +/* $OpenBSD: kqueue-process.c,v 1.4 2003/07/31 21:48:08 deraadt Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain + */ + +#include +#include +#include + +#include +#include +#include +#include +#include + +static int process_child(void); + +#define ASS(cond, mess) do { if (!(cond)) { mess; return 1; } } while (0) + +#define ASSX(cond) ASS(cond, warnx("assertion " #cond " failed on line %d", __LINE__)) + +static void +usr1handler(int signum) +{ + /* nada */ +} + +int do_process(void); + +int +do_process(void) +{ + struct kevent ke; + int kq, status; + pid_t pid, pid2; + int didfork, didchild; + int i; + struct timespec ts; + + /* + * Timeout in case something doesn't work. + */ + ts.tv_sec = 10; + ts.tv_nsec = 0; + + ASS((kq = kqueue()) >= 0, warn("kqueue")); + + /* + * Install a signal handler so that we can use pause() to synchronize + * with the child with the parent. + */ + signal(SIGUSR1, usr1handler); + + switch ((pid = fork())) { + case -1: + err(1, "fork"); + case 0: + _exit(process_child()); + } + + sleep(2); /* wait for child to settle down. */ + + EV_SET(&ke, pid, EVFILT_PROC, EV_ADD|EV_ENABLE|EV_CLEAR, + NOTE_EXIT|NOTE_FORK|NOTE_EXEC|NOTE_TRACK, 0, NULL); + ASS(kevent(kq, &ke, 1, NULL, 0, NULL) == 0, + warn("can't register events on kqueue")); + + kill(pid, SIGUSR1); /* sync 1 */ + + didfork = didchild = 0; + + pid2 = -1; + for (i = 0; i < 2; i++) { + ASS(kevent(kq, NULL, 0, &ke, 1, &ts) == 1, + warnx("didn't receive event")); + ASSX(ke.filter == EVFILT_PROC); + switch (ke.fflags) { + case NOTE_CHILD: + didchild = 1; + ASSX((pid_t)ke.data == pid); + pid2 = ke.ident; + fprintf(stderr, "child %d\n", pid2); + break; + case NOTE_FORK: + didfork = 1; + ASSX(ke.ident == pid); + fprintf(stderr, "fork\n"); + break; + case NOTE_TRACKERR: + errx(1, "child tracking failed due to resource shortage"); + default: + errx(1, "kevent returned weird event 0x%x pid %d", + ke.fflags, (pid_t)ke.ident); + } + } + + if (pid2 == -1) + return (1); + + /* Both children now sleeping. */ + + ASSX(didchild == didfork == 1); + + kill(pid2, SIGUSR1); /* sync 2.1 */ + kill(pid, SIGUSR1); /* sync 2 */ + + if (wait(&status) < 0) + err(1, "wait"); + + if (!WIFEXITED(status)) + errx(1, "child didn't exit?"); + + close(kq); + return (WEXITSTATUS(status) != 0); +} + +static int +process_child(void) +{ + signal(SIGCHLD, SIG_IGN); /* ignore our children. */ + + pause(); + + /* fork and see if tracking works. */ + switch (fork()) { + case -1: + err(1, "fork"); + case 0: + /* sync 2.1 */ + pause(); + execl("/usr/bin/true", "true", (void *)NULL); + err(1, "execl(true)"); + } + + /* sync 2 */ + pause(); + + return 0; +} diff --git a/src/regress/sys/kern/kqueue/kqueue-pty.c b/src/regress/sys/kern/kqueue/kqueue-pty.c new file mode 100644 index 000000000..e6f1e5ad8 --- /dev/null +++ b/src/regress/sys/kern/kqueue/kqueue-pty.c @@ -0,0 +1,104 @@ +/* $OpenBSD: kqueue-pty.c,v 1.5 2003/07/31 21:48:08 deraadt Exp $ */ + +/* Written by Michael Shalayeff, 2003, Public Domain */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int +pty_check(int kq, struct kevent *ev, int n, int rm, int rs, int wm, int ws) +{ + struct timespec ts; + int i; + + ts.tv_sec = 0; + ts.tv_nsec = 0; + if ((n = kevent(kq, NULL, 0, ev, n, &ts)) < 0) + err(1, "slave: kevent"); + + if (n == 0) + return (1); + + for (i = 0; i < n; i++, ev++) { + if (ev->filter == EVFILT_READ) { + if (rm < 0 && ev->ident == -rm) + return (1); + if (rs < 0 && ev->ident == -rs) + return (1); + } else if (ev->filter == EVFILT_WRITE) { + if (wm < 0 && ev->ident == -wm) + return (1); + if (ws < 0 && ev->ident == -ws) + return (1); + } else + errx(1, "unknown event"); + } + + return (0); +} + +int do_pty(void); + +int +do_pty(void) +{ + struct kevent ev[4]; + struct termios tt; + int kq, massa, slave; + char buf[1024]; + + tcgetattr(STDIN_FILENO, &tt); + cfmakeraw(&tt); + tt.c_lflag &= ~ECHO; + if (openpty(&massa, &slave, NULL, &tt, NULL) < 0) + err(1, "openpty"); + if (fcntl(massa, F_SETFL, O_NONBLOCK) < 0) + err(1, "massa: fcntl"); + if (fcntl(slave, F_SETFL, O_NONBLOCK) < 0) + err(1, "massa: fcntl"); + if ((kq = kqueue()) == -1) + err(1, "kqueue"); + + /* test the read from the slave works */ + EV_SET(&ev[0], massa, EVFILT_READ, EV_ADD|EV_ENABLE, 0, 0, NULL); + EV_SET(&ev[1], massa, EVFILT_WRITE, EV_ADD|EV_ENABLE, 0, 0, NULL); + EV_SET(&ev[2], slave, EVFILT_READ, EV_ADD|EV_ENABLE, 0, 0, NULL); + EV_SET(&ev[3], slave, EVFILT_WRITE, EV_ADD|EV_ENABLE, 0, 0, NULL); + if (kevent(kq, ev, 4, NULL, 0, NULL) < 0) + err(1, "slave: kevent add"); + + if (write(massa, " ", 1) != 1) + err(1, "massa: write"); + + if (pty_check(kq, ev, 4, -massa, slave, massa, slave)) + return (1); + + read(slave, buf, sizeof(buf)); + + if (pty_check(kq, ev, 4, -massa, -slave, massa, slave)) + return (1); + + while (write(massa, buf, sizeof(buf)) > 0); + + if (pty_check(kq, ev, 4, -massa, slave, -massa, slave)) + return (1); + + read(slave, buf, 1); + + if (pty_check(kq, ev, 4, -massa, slave, massa, slave)) + return (1); + + while (read(slave, buf, sizeof(buf)) > 0); + + if (pty_check(kq, ev, 4, -massa, -slave, massa, slave)) + return (1); + + return (0); +} diff --git a/src/regress/sys/kern/kqueue/kqueue-random.c b/src/regress/sys/kern/kqueue/kqueue-random.c new file mode 100644 index 000000000..681e8c49a --- /dev/null +++ b/src/regress/sys/kern/kqueue/kqueue-random.c @@ -0,0 +1,68 @@ +/* $OpenBSD: kqueue-random.c,v 1.4 2003/07/31 21:48:08 deraadt Exp $ */ +/* Written by Michael Shalayeff, 2002, Public Domain */ + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +int do_random(void); + +int +do_random(void) +{ + int n, fd, kq; + struct timespec ts; + struct kevent ev; + u_int32_t buf[POOLWORDS]; + + if ((fd = open("/dev/srandom", O_RDONLY)) < 0) { + warn("open: /dev/srandom"); + return (1); + } + if (fcntl(fd, F_SETFL, O_NONBLOCK) == -1) { + warn("fcntl"); + close(fd); + return (1); + } + + if ((kq = kqueue()) < 0) { + warn("kqueue"); + close(fd); + return (1); + } + + ev.ident = fd; + ev.filter = EVFILT_READ; + ev.flags = EV_ADD | EV_ENABLE; + n = kevent(kq, &ev, 1, NULL, 0, NULL); + if (n == -1) { + warn("kevent"); + close(kq); + close(fd); + return (1); + } + + ts.tv_sec = 0; + ts.tv_nsec = 0; + if (kevent(kq, NULL, 0, &ev, 1, &ts) < 0) { + warn("kevent2"); + return (1); + } + + n = MIN((ev.data + 7) / 8, sizeof(buf)); + if (read(fd, buf, n) < 1) + return (1); + + close(kq); + close(fd); + + return (0); +} diff --git a/src/regress/sys/kern/kqueue/kqueue-tun.c b/src/regress/sys/kern/kqueue/kqueue-tun.c new file mode 100644 index 000000000..088e54c5b --- /dev/null +++ b/src/regress/sys/kern/kqueue/kqueue-tun.c @@ -0,0 +1,171 @@ +/* $OpenBSD: kqueue-tun.c,v 1.4 2010/06/26 22:54:04 blambert Exp $ */ +/* $Gateweaver: tunkq.c,v 1.2 2003/11/27 22:47:41 cmaxwell Exp $ */ +/* + * Copyright 2003 Christopher J. Maxwell + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define TUN0 "tun98" +#define TUN1 "tun99" +#define TUN0_ADDR "192.0.2.1" +#define TUN1_ADDR "192.0.2.2" +#define TUN_MAXWAIT 5 +#define TUN_PINGDEL 1 + +struct buffer { + u_char *buf; + size_t len; + size_t a; +}; + +int state; +int tunfd[2]; +struct buffer tpkt; +u_char pktbuf[TUNMTU]; +struct event tunwev[2]; +struct timeval exittv = {TUN_MAXWAIT, 0}; + +void +tunnel_write(int fd, short which, void *arg) +{ + uint32_t type = htonl(AF_INET); + struct iovec iv[2]; + int rlen; + int fdkey = (fd == tunfd[0]) ? 0 : 1; + + iv[0].iov_base = &type; + iv[0].iov_len = sizeof(type); + iv[1].iov_base = tpkt.buf; + iv[1].iov_len = tpkt.len; + + state++; + if ((rlen = writev(fd, iv, 2)) > 0) + fprintf(stderr, "Tunnel %d wrote %ld bytes\n", + fdkey, (long)(rlen - sizeof(type))); + else + errx(1, "Write to tunnel %d failed", fdkey); +} + +void +tunnel_read(int fd, short which, void *arg) +{ + struct iovec iv[2]; + uint32_t type; + int rlen; + int fdkey = (fd == tunfd[0]) ? 0 : 1; + int oppfdkey = (fd == tunfd[0]) ? 1 : 0; + + iv[0].iov_base = &type; + iv[0].iov_len = sizeof(type); + iv[1].iov_base = tpkt.buf; + iv[1].iov_len = tpkt.a; + + state++; + if ((rlen = readv(fd, iv, 2)) > 0) { + fprintf(stderr, "Tunnel %d read %ld bytes\n", + fdkey, (long)(rlen - sizeof(type))); + tpkt.len = rlen - sizeof(type); + + /* add write event on opposite tunnel */ + event_add(&tunwev[oppfdkey], &exittv); + } else + errx(1, "Read from tunnel %d failed", fdkey); +} + +void +tunnel_ping(int fd, short which, void *arg) +{ + system("ping -c 1 -I " TUN0_ADDR " " TUN1_ADDR " >/dev/null &"); +} + +/* + * +------------+ +------------+ + * | TUN0 | | TUN1 | + * | TUN0_ADDR | | TUN1_ADDR | + * +------------+ +------------+ + * + * Set up both tunnel devices (TUN0, TUN1) + * This works because the routing table prefers the opposing end of the ptp + * interfaces. + * Set up one read and one write event per tunnel. + * The read events add the write event. + */ +int +do_tun(void) +{ + struct event tunrev[2]; + struct event pingev; + struct timeval pingtv = {TUN_PINGDEL, 0}; + + /* read buffer */ + tpkt.buf = (u_char *)&pktbuf; + tpkt.len = 0; + tpkt.a = sizeof(pktbuf); + + event_init(); + + /* tun0 */ + if ((tunfd[0] = open("/dev/" TUN0, O_RDWR)) < 0) + errx(1, "Cannot open /dev/" TUN0); + event_set(&tunrev[0], tunfd[0], EV_READ, tunnel_read, NULL); + event_set(&tunwev[0], tunfd[0], EV_WRITE, tunnel_write, NULL); + event_add(&tunrev[0], &exittv); + + /* tun1 */ + if ((tunfd[1] = open("/dev/" TUN1, O_RDWR)) < 0) + errx(1, "Cannot open /dev/" TUN1); + event_set(&tunrev[1], tunfd[1], EV_READ, tunnel_read, NULL); + event_set(&tunwev[1], tunfd[1], EV_WRITE, tunnel_write, NULL); + event_add(&tunrev[1], &exittv); + + /* ping */ + evtimer_set(&pingev, tunnel_ping, NULL); + event_add(&pingev, &pingtv); + + /* configure the interfaces */ + system("ifconfig " TUN0 " " TUN0_ADDR + " netmask 255.255.255.255 " TUN1_ADDR); + system("ifconfig " TUN1 " " TUN1_ADDR + " netmask 255.255.255.255 " TUN0_ADDR); + + state = 0; + if (event_dispatch() < 0) + errx(errno, "Event handler failed"); + + return (state != 4); +} diff --git a/src/regress/sys/kern/kqueue/main.c b/src/regress/sys/kern/kqueue/main.c new file mode 100644 index 000000000..d51ebb003 --- /dev/null +++ b/src/regress/sys/kern/kqueue/main.c @@ -0,0 +1,51 @@ +/* $OpenBSD: main.c,v 1.5 2003/12/02 05:48:48 mickey Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain + */ + +#include +#include +#include + +int do_pipe(void); +int check_inheritance(void); +int do_process(void); +int do_random(void); +int do_pty(void); +int do_tun(void); + +int +main(int argc, char **argv) +{ + extern char *__progname; + int ret, c; + + ret = 0; + while ((c = getopt(argc, argv, "fPprTt")) != -1) { + switch (c) { + case 'p': + ret |= do_pipe(); + break; + case 'f': + ret |= check_inheritance(); + break; + case 'P': + ret |= do_process(); + break; + case 'r': + ret |= do_random(); + break; + case 't': + ret |= do_tun(); + break; + case 'T': + ret |= do_pty(); + break; + default: + fprintf(stderr, "Usage: %s -[fPprTt]\n", __progname); + exit(1); + } + } + + return (ret); +} diff --git a/src/regress/sys/kern/kqueue/obj b/src/regress/sys/kern/kqueue/obj new file mode 120000 index 000000000..4cefcfba4 --- /dev/null +++ b/src/regress/sys/kern/kqueue/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/kqueue \ No newline at end of file diff --git a/src/regress/sys/kern/mbuf/CVS/Entries b/src/regress/sys/kern/mbuf/CVS/Entries new file mode 100644 index 000000000..9a5e69650 --- /dev/null +++ b/src/regress/sys/kern/mbuf/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Apr 23 21:45:57 2003// +/mbuftest.c/1.2/Tue May 29 17:58:02 2007// +D diff --git a/src/regress/sys/kern/mbuf/CVS/Repository b/src/regress/sys/kern/mbuf/CVS/Repository new file mode 100644 index 000000000..0c287ee0a --- /dev/null +++ b/src/regress/sys/kern/mbuf/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/mbuf diff --git a/src/regress/sys/kern/mbuf/CVS/Root b/src/regress/sys/kern/mbuf/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/mbuf/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/mbuf/Makefile b/src/regress/sys/kern/mbuf/Makefile new file mode 100644 index 000000000..1c9453d48 --- /dev/null +++ b/src/regress/sys/kern/mbuf/Makefile @@ -0,0 +1,3 @@ +# $OpenBSD: Makefile,v 1.1 2003/04/23 21:45:57 jason Exp $ +PROG= mbuftest +.include diff --git a/src/regress/sys/kern/mbuf/mbuftest.c b/src/regress/sys/kern/mbuf/mbuftest.c new file mode 100644 index 000000000..d38f63d9e --- /dev/null +++ b/src/regress/sys/kern/mbuf/mbuftest.c @@ -0,0 +1,51 @@ +/* $OpenBSD: mbuftest.c,v 1.2 2007/05/29 17:58:02 david Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Verify that sizeof(struct mbuf) is the same as MSIZE. Because of + * padding in the structures, this may have to be adjusted. + */ + +#include +#include +#include +#include +#include + +int main(void); + +int +main(void) +{ + if (sizeof(struct mbuf) != MSIZE) + err(1, "sizeof mbuf %lu != MSIZE %d", + sizeof(struct mbuf), MSIZE); + return (0); +} diff --git a/src/regress/sys/kern/mbuf/obj b/src/regress/sys/kern/mbuf/obj new file mode 120000 index 000000000..1b9db20e2 --- /dev/null +++ b/src/regress/sys/kern/mbuf/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/mbuf \ No newline at end of file diff --git a/src/regress/sys/kern/minherit/CVS/Entries b/src/regress/sys/kern/minherit/CVS/Entries new file mode 100644 index 000000000..06d9c228e --- /dev/null +++ b/src/regress/sys/kern/minherit/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Jan 31 15:53:12 2002// +/minherit.c/1.3/Sat Aug 2 01:24:36 2003// +D diff --git a/src/regress/sys/kern/minherit/CVS/Repository b/src/regress/sys/kern/minherit/CVS/Repository new file mode 100644 index 000000000..9e2bcb478 --- /dev/null +++ b/src/regress/sys/kern/minherit/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/minherit diff --git a/src/regress/sys/kern/minherit/CVS/Root b/src/regress/sys/kern/minherit/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/minherit/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/minherit/Makefile b/src/regress/sys/kern/minherit/Makefile new file mode 100644 index 000000000..e63cca1fb --- /dev/null +++ b/src/regress/sys/kern/minherit/Makefile @@ -0,0 +1,4 @@ +# $OpenBSD: Makefile,v 1.1 2002/01/31 15:53:12 art Exp $ +PROG=minherit + +.include diff --git a/src/regress/sys/kern/minherit/minherit.c b/src/regress/sys/kern/minherit/minherit.c new file mode 100644 index 000000000..7dd257c4d --- /dev/null +++ b/src/regress/sys/kern/minherit/minherit.c @@ -0,0 +1,64 @@ +/* $OpenBSD: minherit.c,v 1.3 2003/08/02 01:24:36 david Exp $ */ +/* + * Written by Artur Grabowski Public Domain. + */ +#include +#include +#include + +#include +#include +#include +#include +#include + +#define MAGIC "inherited" + +int +main(int argc, char *argv[]) +{ + void *map1, *map2; + int page_size; + int status; + + page_size = getpagesize(); + + if ((map1 = mmap(NULL, page_size, PROT_READ|PROT_WRITE, MAP_ANON, + -1, 0)) == MAP_FAILED) + err(1, "mmap"); + + if ((map2 = mmap(NULL, page_size, PROT_READ|PROT_WRITE, MAP_ANON, + -1, 0)) == MAP_FAILED) + err(1, "mmap"); + + memset(map1, 0, sizeof(MAGIC)); + memcpy(map2, MAGIC, sizeof(MAGIC)); + + if (minherit(map1, page_size, MAP_INHERIT_SHARE) != 0) + err(1, "minherit"); + + if (minherit(map2, page_size, MAP_INHERIT_NONE) != 0) + err(1, "minherit"); + + switch(fork()) { + case -1: + err(1, "fork"); + case 0: + memcpy(map1, MAGIC, sizeof(MAGIC)); + /* map2 is not mapped and should give us error on munmap */ + if (munmap(map2, page_size) == 0) + _exit(1); + _exit(0); + } + + if (wait(&status) < 0) + err(1, "wait"); + + if (!WIFEXITED(status)) + err(1, "child error"); + + if (memcmp(map1, MAGIC, sizeof(MAGIC)) != 0) + return 1; + + return WEXITSTATUS(status) != 0; +} diff --git a/src/regress/sys/kern/minherit/obj b/src/regress/sys/kern/minherit/obj new file mode 120000 index 000000000..32729c37a --- /dev/null +++ b/src/regress/sys/kern/minherit/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/minherit \ No newline at end of file diff --git a/src/regress/sys/kern/mmap-fail/CVS/Entries b/src/regress/sys/kern/mmap-fail/CVS/Entries new file mode 100644 index 000000000..76e154199 --- /dev/null +++ b/src/regress/sys/kern/mmap-fail/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Jul 11 12:50:46 2005// +/mmap-fail.c/1.1/Mon Jul 11 12:50:46 2005// +D diff --git a/src/regress/sys/kern/mmap-fail/CVS/Repository b/src/regress/sys/kern/mmap-fail/CVS/Repository new file mode 100644 index 000000000..e0dac673f --- /dev/null +++ b/src/regress/sys/kern/mmap-fail/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/mmap-fail diff --git a/src/regress/sys/kern/mmap-fail/CVS/Root b/src/regress/sys/kern/mmap-fail/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/mmap-fail/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/mmap-fail/Makefile b/src/regress/sys/kern/mmap-fail/Makefile new file mode 100644 index 000000000..0b76005d6 --- /dev/null +++ b/src/regress/sys/kern/mmap-fail/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2005/07/11 12:50:46 art Exp $ + +PROG= mmap-fail + +.include diff --git a/src/regress/sys/kern/mmap-fail/mmap-fail.c b/src/regress/sys/kern/mmap-fail/mmap-fail.c new file mode 100644 index 000000000..6a484a1df --- /dev/null +++ b/src/regress/sys/kern/mmap-fail/mmap-fail.c @@ -0,0 +1,20 @@ +/* $OpenBSD: mmap-fail.c,v 1.1 2005/07/11 12:50:46 art Exp $ */ +/* + * Written by Artur Grabowski 2005 Public Domain. + */ + +#include +#include + +int +main() +{ + void *foo; + + foo = mmap(0, (size_t)-1, 0, 0, 0, 0); + + if (foo == MAP_FAILED) + return (0); + + return (1); +} diff --git a/src/regress/sys/kern/mmap-fail/obj b/src/regress/sys/kern/mmap-fail/obj new file mode 120000 index 000000000..e215f6de2 --- /dev/null +++ b/src/regress/sys/kern/mmap-fail/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/mmap-fail \ No newline at end of file diff --git a/src/regress/sys/kern/mmap/CVS/Entries b/src/regress/sys/kern/mmap/CVS/Entries new file mode 100644 index 000000000..b6e1520c3 --- /dev/null +++ b/src/regress/sys/kern/mmap/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Tue Jan 1 23:05:31 2002// +/mmaptest.c/1.5/Sun Oct 10 03:08:30 2004// +D diff --git a/src/regress/sys/kern/mmap/CVS/Repository b/src/regress/sys/kern/mmap/CVS/Repository new file mode 100644 index 000000000..65e16fbd1 --- /dev/null +++ b/src/regress/sys/kern/mmap/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/mmap diff --git a/src/regress/sys/kern/mmap/CVS/Root b/src/regress/sys/kern/mmap/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/mmap/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/mmap/Makefile b/src/regress/sys/kern/mmap/Makefile new file mode 100644 index 000000000..665afc928 --- /dev/null +++ b/src/regress/sys/kern/mmap/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2002/01/01 23:05:31 art Exp $ + +PROG= mmaptest + +.include diff --git a/src/regress/sys/kern/mmap/mmaptest.c b/src/regress/sys/kern/mmap/mmaptest.c new file mode 100644 index 000000000..26b174e7e --- /dev/null +++ b/src/regress/sys/kern/mmap/mmaptest.c @@ -0,0 +1,81 @@ +/* $OpenBSD: mmaptest.c,v 1.5 2004/10/10 03:08:30 mickey Exp $ */ + +/* + * Copyright (c) 2001 Niklas Hallqvist. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include + +#define TEMPL "test-fileXXXXXXXXXX" +#define MAGIC 0x1234 + +int +main(int argc, char **argv) +{ + int fd; + void *v; + int i; + ssize_t n; + static char nm[] = TEMPL; + off_t sz; + + fd = mkstemp(nm); + if (fd == -1) + err(1, "mkstemp"); + sz = sysconf(_SC_PAGESIZE); + if (sz == -1) + err(1, "sysconf"); + if (ftruncate(fd, sz) == -1) + err(1, "ftruncate"); + v = mmap(0, sz, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); + if (v == MAP_FAILED) + err(1, "mmap"); + *(int *)v = MAGIC; + if (msync(v, sz, MS_SYNC) == -1) + err(1, "msync"); + if (munmap(v, sz) == -1) + err(1, "munmap"); + if (close(fd) == -1) + err(1, "close"); + fd = open(nm, O_RDONLY); + if (fd == -1) + err(1, "open"); + if (unlink(nm) == -1) + err(1, "unlink"); + n = read(fd, &i, sizeof i); + if (n == -1) + err(1, "read"); + if (n != sizeof i) + errx(1, "short read"); + if (close(fd) == -1) + err(1, "close"); + exit(i != MAGIC); +} diff --git a/src/regress/sys/kern/mmap/obj b/src/regress/sys/kern/mmap/obj new file mode 120000 index 000000000..94086e782 --- /dev/null +++ b/src/regress/sys/kern/mmap/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/mmap \ No newline at end of file diff --git a/src/regress/sys/kern/mmap2/CVS/Entries b/src/regress/sys/kern/mmap2/CVS/Entries new file mode 100644 index 000000000..a877881d7 --- /dev/null +++ b/src/regress/sys/kern/mmap2/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Jan 3 15:03:42 2002// +/mmaptest.c/1.6/Thu Jul 31 21:48:08 2003// +D diff --git a/src/regress/sys/kern/mmap2/CVS/Repository b/src/regress/sys/kern/mmap2/CVS/Repository new file mode 100644 index 000000000..f8dd87bec --- /dev/null +++ b/src/regress/sys/kern/mmap2/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/mmap2 diff --git a/src/regress/sys/kern/mmap2/CVS/Root b/src/regress/sys/kern/mmap2/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/mmap2/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/mmap2/Makefile b/src/regress/sys/kern/mmap2/Makefile new file mode 100644 index 000000000..a3e3952fa --- /dev/null +++ b/src/regress/sys/kern/mmap2/Makefile @@ -0,0 +1,4 @@ +# $OpenBSD: Makefile,v 1.1 2002/01/03 15:03:42 art Exp $ + +PROG= mmaptest +.include diff --git a/src/regress/sys/kern/mmap2/mmaptest.c b/src/regress/sys/kern/mmap2/mmaptest.c new file mode 100644 index 000000000..6d7ecff7d --- /dev/null +++ b/src/regress/sys/kern/mmap2/mmaptest.c @@ -0,0 +1,71 @@ +/* $OpenBSD: mmaptest.c,v 1.6 2003/07/31 21:48:08 deraadt Exp $ */ +/* + * Written by Artur Grabowski , 2001 Public Domain + */ + +#include +#include +#include +#include +#include + +#include +#include + +/* + * Map the same physical page in two places in memory. + * Should cause a cache alias on sparc and other VAC architectures. + */ + +#define MAGIC "The voices in my head are trying to ignore me." + +int +main(int argc, char *argv[]) +{ + char fname[25] = "/tmp/mmaptestXXXXXXXXXX"; + int page_size; + int fd; + char *v1, *v2; + + if ((fd = mkstemp(fname)) < 0) + err(1, "mkstemp"); + + if (remove(fname) < 0) + err(1, "remove"); + + if ((page_size = sysconf(_SC_PAGESIZE)) < 0) + err(1, "sysconf"); + + if (ftruncate(fd, 2 * page_size) < 0) + err(1, "ftruncate"); + + /* map two pages, then map the first page over the second */ + + v1 = mmap(NULL, 2 * page_size, PROT_READ|PROT_WRITE, + MAP_SHARED, fd, 0); + if (v1 == MAP_FAILED) + err(1, "mmap 1"); + + /* No need to unmap, mmap is supposed to do that for us if MAP_FIXED */ + + v2 = mmap(v1 + page_size, page_size, PROT_READ|PROT_WRITE, + MAP_SHARED|MAP_FIXED, fd, 0); + if (v2 == MAP_FAILED) + err(1, "mmap 2"); + + memcpy(v1, MAGIC, sizeof(MAGIC)); + + if (memcmp(v2, MAGIC, sizeof(MAGIC)) != 0) + errx(1, "comparison 1 failed"); + + if (memcmp(v1, v2, sizeof(MAGIC)) != 0) + errx(1, "comparison 2 failed"); + + if (munmap(v1, 2 * page_size) < 0) + errx(1, "munmap"); + + close(fd); + + return 0; +} + diff --git a/src/regress/sys/kern/mmap2/obj b/src/regress/sys/kern/mmap2/obj new file mode 120000 index 000000000..09fbfab39 --- /dev/null +++ b/src/regress/sys/kern/mmap2/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/mmap2 \ No newline at end of file diff --git a/src/regress/sys/kern/mmap3/CVS/Entries b/src/regress/sys/kern/mmap3/CVS/Entries new file mode 100644 index 000000000..dd8136f1b --- /dev/null +++ b/src/regress/sys/kern/mmap3/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Thu Jul 31 22:46:59 2003// +/mmaptest.c/1.6/Mon Feb 20 17:03:27 2006// +D diff --git a/src/regress/sys/kern/mmap3/CVS/Repository b/src/regress/sys/kern/mmap3/CVS/Repository new file mode 100644 index 000000000..fadc50962 --- /dev/null +++ b/src/regress/sys/kern/mmap3/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/mmap3 diff --git a/src/regress/sys/kern/mmap3/CVS/Root b/src/regress/sys/kern/mmap3/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/mmap3/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/mmap3/Makefile b/src/regress/sys/kern/mmap3/Makefile new file mode 100644 index 000000000..dd1c022ff --- /dev/null +++ b/src/regress/sys/kern/mmap3/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2003/07/31 22:46:59 david Exp $ + +PROG= mmaptest +CLEANFILES+= test.out +.include diff --git a/src/regress/sys/kern/mmap3/mmaptest.c b/src/regress/sys/kern/mmap3/mmaptest.c new file mode 100644 index 000000000..1318d46c4 --- /dev/null +++ b/src/regress/sys/kern/mmap3/mmaptest.c @@ -0,0 +1,84 @@ +/* $OpenBSD: mmaptest.c,v 1.6 2006/02/20 17:03:27 mickey Exp $ */ +/* + * Copyright (c) 2002 Marc Espie. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE OPENBSD PROJECT AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBSD + * PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include + +#define AREA (16 * 4096) +/* + * Check for mmap/ftruncate interaction. Specifically, ftruncate on + * a short file may lose modifications made through an mmapped area. + */ +int +main(int argc, char *argv[]) +{ + int i; + int fd; + char area[AREA]; + char *a2; + for (i = 0 ; i < AREA; i++) + area[i] = 5; + + fd = open("test.out", O_WRONLY|O_CREAT|O_TRUNC, 0600); + if (fd == -1) + err(1, "open(test.out)"); + if (write(fd, area, AREA) != AREA) + err(1, "write"); + if (close(fd)) + err(1, "close"); + fd = open("test.out", O_RDWR); + if (fd == -1) + err(1, "open(test.out) 2"); + a2 = mmap(NULL, AREA, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); + if (!a2) + err(1, "mmap"); + a2[10] = 3; + msync(a2, AREA, MS_SYNC|MS_INVALIDATE); + if (mlock(a2, AREA)) + err(1, "mlock"); + if (ftruncate(fd, 128)) + err(1, "ftruncate"); + if (munlock(a2, AREA)) + err(1, "munlock"); + if (close(fd)) + err(1, "close"); + fd = open("test.out", O_RDONLY); + if (fd == -1) + err(1, "open(test.out) 3"); + if (read(fd, area, AREA) != 128) + err(1, "read"); + if (area[10] != 3) + errx(1, "area[10] != 3"); + if (close(fd)) + err(1, "close"); + return 0; +} + diff --git a/src/regress/sys/kern/mmap3/obj b/src/regress/sys/kern/mmap3/obj new file mode 120000 index 000000000..c1a75367c --- /dev/null +++ b/src/regress/sys/kern/mmap3/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/mmap3 \ No newline at end of file diff --git a/src/regress/sys/kern/mquery/CVS/Entries b/src/regress/sys/kern/mquery/CVS/Entries new file mode 100644 index 000000000..5d054b63c --- /dev/null +++ b/src/regress/sys/kern/mquery/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Apr 18 16:02:11 2003// +/mquery.c/1.2/Mon Aug 2 20:18:50 2004// +D diff --git a/src/regress/sys/kern/mquery/CVS/Repository b/src/regress/sys/kern/mquery/CVS/Repository new file mode 100644 index 000000000..ab91daa84 --- /dev/null +++ b/src/regress/sys/kern/mquery/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/mquery diff --git a/src/regress/sys/kern/mquery/CVS/Root b/src/regress/sys/kern/mquery/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/mquery/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/mquery/Makefile b/src/regress/sys/kern/mquery/Makefile new file mode 100644 index 000000000..3550aeed4 --- /dev/null +++ b/src/regress/sys/kern/mquery/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2003/04/18 16:02:11 drahn Exp $ + +PROG= mquery + +.include diff --git a/src/regress/sys/kern/mquery/mquery.c b/src/regress/sys/kern/mquery/mquery.c new file mode 100644 index 000000000..d40f87f46 --- /dev/null +++ b/src/regress/sys/kern/mquery/mquery.c @@ -0,0 +1,119 @@ +/* $OpenBSD: mquery.c,v 1.2 2004/08/02 20:18:50 drahn Exp $ */ + +/* + * Copyright (c) 2003 Dale Rahn. All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include + +char chardata = 'a'; +extern char etext; +extern char edata; + +main() +{ + void *addr; + void *ret; + void *bound_a; + void *bound_b; + + /* check heap */ + + errno = 0; + addr = sbrk(0); + /* mquery fixed is not allowed in heap, check errno? */ + ret = mquery(addr, 0x1000, PROT_READ|PROT_WRITE, MAP_FIXED, -1, 0); + if (ret != MAP_FAILED) + exit (1); + + errno = 0; + addr = sbrk(0); + /* mquery should return next available address after heap. */ + ret = mquery(addr, 0x1000, PROT_READ|PROT_WRITE, 0, -1, 0); + if (ret == MAP_FAILED) + exit (2); + + + /* check data */ + + errno = 0; + addr = &chardata; + /* mquery fixed is not allowed in heap, check errno? */ + ret = mquery(addr, 0x1000, PROT_READ|PROT_WRITE, MAP_FIXED, -1, 0); + if (ret != MAP_FAILED) + exit (3); + + errno = 0; + addr = &chardata; + /* mquery should return next available address after heap. */ + ret = mquery(addr, 0x1000, PROT_READ|PROT_WRITE, 0, -1, 0); + if (ret == MAP_FAILED) + exit (4); + if (ret < (void *)&edata) { + printf("mquerry returned %p &edata %p\n", + ret, (void *)&edata); + /* should always return above data*/ + exit (5); + } +#define PAD (64 * 1024 * 8) + bound_a = (void *)&chardata; + bound_b = (void *)(&chardata + MAXDSIZ-PAD); + /* chardata + MAXDSIZ is valid??? */ + if (ret >= bound_a && ret < bound_b) { + printf("returned %p should be not be ~%p - ~%p\n", + ret, bound_a, bound_b); + exit (6); + } + + /* check text */ + + errno = 0; + addr = &main; + /* mquery on text addresses should fail. */ + ret = mquery(addr, 0x1000, PROT_READ|PROT_WRITE, MAP_FIXED, -1, 0); + if (ret != MAP_FAILED) + exit (7); + + errno = 0; + addr = &main; + /* mquery on text addresses should return below data or above heap. */ + ret = mquery(addr, 0x1000, PROT_READ|PROT_WRITE, 0, -1, 0); + if (ret == MAP_FAILED) + exit (8); + if (ret < (void *)&etext) { + /* should always return above text */ + exit (9); + } + /* chardata + MAXDSIZ is valid??? */ + if (ret >= (void *)&chardata && ret < (void *)(&chardata + MAXDSIZ)) + exit (10); + + exit (0); +} + + diff --git a/src/regress/sys/kern/nanosleep/CVS/Entries b/src/regress/sys/kern/nanosleep/CVS/Entries new file mode 100644 index 000000000..761b77467 --- /dev/null +++ b/src/regress/sys/kern/nanosleep/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Mon Sep 2 20:01:44 2002// +/nanosleep.c/1.5/Sat Aug 2 01:24:36 2003// +D diff --git a/src/regress/sys/kern/nanosleep/CVS/Repository b/src/regress/sys/kern/nanosleep/CVS/Repository new file mode 100644 index 000000000..07f6d4157 --- /dev/null +++ b/src/regress/sys/kern/nanosleep/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/nanosleep diff --git a/src/regress/sys/kern/nanosleep/CVS/Root b/src/regress/sys/kern/nanosleep/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/nanosleep/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/nanosleep/Makefile b/src/regress/sys/kern/nanosleep/Makefile new file mode 100644 index 000000000..fca0da5e6 --- /dev/null +++ b/src/regress/sys/kern/nanosleep/Makefile @@ -0,0 +1,24 @@ +# $OpenBSD: Makefile,v 1.3 2002/09/02 20:01:44 avsm Exp $ + +PROG= nanosleep +SRCS= nanosleep.c + +trivial: nanosleep + ./nanosleep -t + +with_signal: nanosleep + ./nanosleep -s + +time_elapsed: nanosleep + ./nanosleep -e + +time_elapsed_with_signal: nanosleep + ./nanosleep -E + +short_time: nanosleep + ./nanosleep -S + +REGRESS_TARGETS=trivial with_signal time_elapsed time_elapsed_with_signal +REGRESS_TARGETS+=short_time + +.include diff --git a/src/regress/sys/kern/nanosleep/nanosleep.c b/src/regress/sys/kern/nanosleep/nanosleep.c new file mode 100644 index 000000000..d44100ab0 --- /dev/null +++ b/src/regress/sys/kern/nanosleep/nanosleep.c @@ -0,0 +1,261 @@ +/* $OpenBSD: nanosleep.c,v 1.5 2003/08/02 01:24:36 david Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +int trivial(void); +int with_signal(void); +int time_elapsed(void); +int time_elapsed_with_signal(void); + +int short_time(void); + +void sighandler(int); + +int +main(int argc, char **argv) +{ + int ch, ret; + + ret = 0; + + while ((ch = getopt(argc, argv, "tseES")) != -1) { + switch (ch) { + case 't': + ret |= trivial(); + break; + case 's': + ret |= with_signal(); + break; + case 'e': + ret |= time_elapsed(); + break; + case 'E': + ret |= time_elapsed_with_signal(); + break; + case 'S': + ret |= short_time(); + default: + fprintf(stderr, "Usage: nanosleep [-tse]\n"); + exit(1); + } + } + + return (ret); +} + +void +sighandler(int signum) +{ +} + +int +trivial(void) +{ + struct timespec ts, rts; + + ts.tv_sec = 0; + ts.tv_nsec = 30000000; + rts.tv_sec = 4711; /* Just add to the confusion */ + rts.tv_nsec = 4711; + if (nanosleep(&ts, &rts) < 0) { + warn("trivial: nanosleep"); + return 1; + } + + /* + * Just check that we don't get any leftover time if we sleep the + * amount of time we want to sleep. + * If we receive any signal, something is wrong anyway. + */ + if (rts.tv_sec != 0 || rts.tv_nsec != 0) { + warnx("trivial: non-zero time? %d/%d", rts.tv_sec, + rts.tv_nsec); + return 1; + } + + return 0; +} + +int +with_signal(void) +{ + struct timespec ts, rts; + pid_t pid; + int status; + + signal(SIGUSR1, sighandler); + + pid = getpid(); + + switch(fork()) { + case -1: + err(1, "fork"); + default: + ts.tv_sec = 1; + ts.tv_nsec = 0; + nanosleep(&ts, NULL); + kill(pid, SIGUSR1); + exit(0); + } + + ts.tv_sec = 10; + ts.tv_nsec = 0; + rts.tv_sec = 0; + rts.tv_nsec = 0; + if (nanosleep(&ts, &rts) == 0) { + warnx("with-signal: nanosleep"); + return 1; + } + if (rts.tv_sec == 0 && rts.tv_nsec == 0) { + warnx("with-signal: zero time"); + return 1; + } + + if (wait(&status) < 0) + err(1, "wait"); + + return 0; +} + +int +time_elapsed(void) +{ + struct timespec ts; + struct timeval stv, etv; + + ts.tv_sec = 0; + ts.tv_nsec = 500000000; + + if (gettimeofday(&stv, NULL) < 0) { + warn("gettimeofday"); + return 1; + } + + if (nanosleep(&ts, NULL) < 0) { + warn("nanosleep"); + return 1; + } + + if (gettimeofday(&etv, NULL) < 0) { + warn("gettimeofday"); + return 1; + } + + timersub(&etv, &stv, &stv); + + if (stv.tv_sec == 0 && stv.tv_usec < 500000) { + warnx("slept less than 0.5 sec"); + return 1; + } + + return 0; +} + +int +time_elapsed_with_signal(void) +{ + struct timespec ts, rts; + struct timeval stv, etv; + pid_t pid; + int status; + + signal(SIGUSR1, sighandler); + + pid = getpid(); + + switch(fork()) { + case -1: + err(1, "fork"); + default: + ts.tv_sec = 1; + ts.tv_nsec = 0; + nanosleep(&ts, NULL); + kill(pid, SIGUSR1); + exit(0); + } + + ts.tv_sec = 10; + ts.tv_nsec = 0; + rts.tv_sec = 0; + rts.tv_nsec = 0; + + if (gettimeofday(&stv, NULL) < 0) { + warn("gettimeofday"); + return 1; + } + + if (nanosleep(&ts, &rts) == 0) { + warnx("nanosleep"); + return 1; + } + + if (gettimeofday(&etv, NULL) < 0) { + warn("gettimeofday"); + return 1; + } + + timersub(&etv, &stv, &stv); + + etv.tv_sec = rts.tv_sec; + etv.tv_usec = rts.tv_nsec / 1000 + 1; /* the '+ 1' is a "roundup" */ + + timeradd(&etv, &stv, &stv); + + if (stv.tv_sec < 10) { + warnx("slept time + leftover time < 10 sec"); + return 1; + } + + + if (wait(&status) < 0) + err(1, "wait"); + + return 0; +} + +int +short_time(void) +{ + struct timespec ts, rts; + pid_t pid; + int status; + + signal(SIGUSR1, sighandler); + + pid = getpid(); + + switch(fork()) { + case -1: + err(1, "fork"); + default: + /* Sleep two seconds, then shoot parent. */ + ts.tv_sec = 2; + ts.tv_nsec = 0; + nanosleep(&ts, NULL); + kill(pid, SIGUSR1); + exit(0); + } + + ts.tv_sec = 0; + ts.tv_nsec = 1; + if (nanosleep(&ts, NULL) <= 0) { + warn("short_time: nanosleep"); + return 1; + } + + if (wait(&status) < 0) + err(1, "wait"); + + return 0; +} diff --git a/src/regress/sys/kern/nanosleep/obj b/src/regress/sys/kern/nanosleep/obj new file mode 120000 index 000000000..518194d44 --- /dev/null +++ b/src/regress/sys/kern/nanosleep/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/nanosleep \ No newline at end of file diff --git a/src/regress/sys/kern/noexec/CVS/Entries b/src/regress/sys/kern/noexec/CVS/Entries new file mode 100644 index 000000000..3a7b1d696 --- /dev/null +++ b/src/regress/sys/kern/noexec/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.12/Thu Mar 4 07:24:01 2004// +/noexec.c/1.10/Thu Dec 27 17:56:44 2007// +D diff --git a/src/regress/sys/kern/noexec/CVS/Repository b/src/regress/sys/kern/noexec/CVS/Repository new file mode 100644 index 000000000..b5745c204 --- /dev/null +++ b/src/regress/sys/kern/noexec/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/noexec diff --git a/src/regress/sys/kern/noexec/CVS/Root b/src/regress/sys/kern/noexec/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/noexec/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/noexec/Makefile b/src/regress/sys/kern/noexec/Makefile new file mode 100644 index 000000000..50b2d87b3 --- /dev/null +++ b/src/regress/sys/kern/noexec/Makefile @@ -0,0 +1,72 @@ +# $OpenBSD: Makefile,v 1.12 2004/03/04 07:24:01 david Exp $ + +.if ${MACHINE} == "sparc64" || ${MACHINE} == "sparc" || \ + ${MACHINE} == "alpha" || \ + ${MACHINE_ARCH} == "amd64" || ${MACHINE} == "i386" || \ + ${MACHINE} == "hppa" + +PROG= noexec +CFLAGS+=-Wall +LDSTATIC= ${STATIC} +REGRESS_TARGETS= nxtext-mmap nxtext-mprotect \ + nxdata nxdata-mmap nxdata-mprotect \ + nxbss nxbss-mmap nxbss-mprotect \ + nxheap nxheap-mmap nxheap-mprotect \ + nxmmap nxmmap-mprotect \ + nxstack nxstack-mmap nxstack-mprotect +REGRESS_SKIP_TARGETS+= nxtext-mmap +.PHONY: ${REGRESS_TARGETS} + +nxtext-mmap: ${PROG} + @./${PROG} -T -m + +nxtext-mprotect: ${PROG} + @./${PROG} -T -p + +nxdata: ${PROG} + @./${PROG} -D + +nxdata-mprotect: ${PROG} + @./${PROG} -D -p + +nxdata-mmap: ${PROG} + @./${PROG} -D -m + +nxbss: ${PROG} + @./${PROG} -B + +nxbss-mmap: ${PROG} + @./${PROG} -B -m + +nxbss-mprotect: ${PROG} + @./${PROG} -B -p + +nxheap: ${PROG} + @./${PROG} -H + +nxheap-mmap: ${PROG} + @./${PROG} -H -m + +nxheap-mprotect: ${PROG} + @./${PROG} -H -p + +nxstack: ${PROG} + @./${PROG} -S + +nxstack-mmap: ${PROG} + @./${PROG} -S -m + +nxstack-mprotect: ${PROG} + @./${PROG} -S -p + +nxmmap: ${PROG} + @./${PROG} -m + +nxmmap-mprotect: ${PROG} + @./${PROG} -m -p + +.else +REGRESS_TARGETS= # this architecture has no test for this +.endif + +.include diff --git a/src/regress/sys/kern/noexec/noexec.c b/src/regress/sys/kern/noexec/noexec.c new file mode 100644 index 000000000..f2055de76 --- /dev/null +++ b/src/regress/sys/kern/noexec/noexec.c @@ -0,0 +1,283 @@ +/* $OpenBSD: noexec.c,v 1.10 2007/12/27 17:56:44 deraadt Exp $ */ + +/* + * Copyright (c) 2002,2003 Michael Shalayeff + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +volatile sig_atomic_t fail; +int page_size; +char label[64] = "non-exec "; + +#define PAD 64*1024 +#define MAXPAGESIZE 8192 +#define TESTSZ 256 /* assuming the testfly() will fit */ +u_int64_t data[(PAD + TESTSZ + PAD + MAXPAGESIZE) / 8] = { 0 }; +u_int64_t bss[(PAD + TESTSZ + PAD + MAXPAGESIZE) / 8]; + +void testfly(void); + +static void +fdcache(void *p, size_t size) +{ +#ifdef __hppa__ + __asm __volatile( /* XXX this hardcodes the TESTSZ */ + "fdc,m %1(%0)\n\t" + "fdc,m %1(%0)\n\t" + "fdc,m %1(%0)\n\t" + "fdc,m %1(%0)\n\t" + "fdc,m %1(%0)\n\t" + "fdc,m %1(%0)\n\t" + "fdc,m %1(%0)\n\t" + "fdc,m %1(%0)" + : "+r" (p) : "r" (32)); +#endif +} + +static void +sigsegv(int sig, siginfo_t *sip, void *scp) +{ + _exit(fail); +} + +static int +noexec(void *p, size_t size) +{ + fail = 0; + printf("%s: execute\n", label); + fflush(stdout); + ((void (*)(void))p)(); + + return (1); +} + +static int +noexec_mprotect(void *p, size_t size) +{ + + /* here we must fail on segv since we said it gets executable */ + fail = 1; + if (mprotect(p, size, PROT_READ|PROT_EXEC) < 0) + err(1, "mprotect 1"); + printf("%s: execute\n", label); + fflush(stdout); + ((void (*)(void))p)(); + + /* here we are successful on segv and fail if it still executes */ + fail = 0; + if (mprotect(p, size, PROT_READ) < 0) + err(1, "mprotect 2"); + printf("%s: catch a signal\n", label); + fflush(stdout); + ((void (*)(void))p)(); + + return (1); +} + +static void * +getaddr(void *a) +{ + void *ret; + + if ((void *)&ret < a) + ret = (void *)((u_long)&ret - 4 * page_size); + else + ret = (void *)((u_long)&ret + 4 * page_size); + + return (void *)((u_long)ret & ~(page_size - 1)); +} + +static int +noexec_mmap(void *p, size_t size) +{ + memcpy(p + page_size * 1, p, page_size); + memcpy(p + page_size * 2, p, page_size); + fdcache(p + page_size * 1, TESTSZ); + fdcache(p + page_size * 2, TESTSZ); + + /* here we must fail on segv since we said it gets executable */ + fail = 1; + + printf("%s: execute #1\n", label); + fflush(stdout); + ((void (*)(void))p)(); + + /* unmap the first page to see that the higher page is still exec */ + if (munmap(p, page_size) < 0) + err(1, "munmap"); + + p += page_size; + printf("%s: execute #2\n", label); + fflush(stdout); + ((void (*)(void))p)(); + + /* unmap the last page to see that the lower page is still exec */ + if (munmap(p + page_size, page_size) < 0) + err(1, "munmap"); + + printf("%s: execute #3\n", label); + fflush(stdout); + ((void (*)(void))p)(); + + return (0); +} + +static void +usage(void) +{ + extern char *__progname; + fprintf(stderr, "Usage: %s [-s ] -[TDBHS] [-p] [-m]\n", + __progname); + exit(2); +} + +int +main(int argc, char *argv[]) +{ + u_int64_t stack[TESTSZ/8]; /* assuming the testfly() will fit */ + struct sigaction sa; + int (*func)(void *, size_t); + size_t size; + char *ep; + void *p, *ptr; + int ch; + + if ((page_size = sysconf(_SC_PAGESIZE)) < 0) + err(1, "sysconf"); + + setvbuf(stdout, NULL, _IONBF, 0); + setvbuf(stderr, NULL, _IONBF, 0); + + p = NULL; + func = &noexec; + size = TESTSZ; + while ((ch = getopt(argc, argv, "TDBHSmps:")) != -1) { + if (p == NULL) { + switch (ch) { + case 'T': + p = &testfly; + (void) strlcat(label, "text", sizeof(label)); + continue; + case 'D': + p = &data[(PAD + page_size) / 8]; + p = (void *)((long)p & ~(page_size - 1)); + (void) strlcat(label, "data", sizeof(label)); + continue; + case 'B': + p = &bss[(PAD + page_size) / 8]; + p = (void *)((long)p & ~(page_size - 1)); + (void) strlcat(label, "bss", sizeof(label)); + continue; + case 'H': + p = malloc(size + 2 * page_size); + if (p == NULL) + err(2, "malloc"); + p += page_size; + p = (void *)((long)p & ~(page_size - 1)); + (void) strlcat(label, "heap", sizeof(label)); + continue; + case 'S': + p = getaddr(&stack); + (void) strlcat(label, "stack", sizeof(label)); + continue; + case 's': /* only valid for heap and size */ + size = strtoul(optarg, &ep, 0); + if (size > ULONG_MAX) + errno = ERANGE; + if (errno) + err(1, "invalid size: %s", optarg); + if (*ep) + errx(1, "invalid size: %s", optarg); + continue; + } + } + switch (ch) { + case 'm': + if (p) { + if ((ptr = mmap(p, size + 2 * page_size, + PROT_READ|PROT_WRITE, + MAP_ANON|MAP_FIXED, -1, 0)) == MAP_FAILED) + err(1, "mmap"); + (void) strlcat(label, "-mmap", sizeof(label)); + } else { + if ((ptr = mmap(p, size + 2 * page_size, + PROT_READ|PROT_WRITE|PROT_EXEC, + MAP_ANON, -1, 0)) == MAP_FAILED) + err(1, "mmap"); + func = &noexec_mmap; + (void) strlcat(label, "mmap", sizeof(label)); + } + p = ptr; + break; + case 'p': + func = &noexec_mprotect; + (void) strlcat(label, "-mprotect", sizeof(label)); + break; + default: + usage(); + } + } + argc -= optind; + argv += optind; + + if (argc > 0) + usage(); + + if (p == NULL) + exit(2); + + sa.sa_sigaction = &sigsegv; + sa.sa_flags = SA_SIGINFO; + sigemptyset(&sa.sa_mask); + sigaction(SIGSEGV, &sa, NULL); + + if (p != &testfly) { + memcpy(p, &testfly, TESTSZ); + fdcache(p, size); + } + + exit((*func)(p, size)); +} + +__asm (".space 8192"); + +void +testfly(void) +{ +} + +__asm (".space 8192"); diff --git a/src/regress/sys/kern/noexec/obj b/src/regress/sys/kern/noexec/obj new file mode 120000 index 000000000..15ab2a1c8 --- /dev/null +++ b/src/regress/sys/kern/noexec/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/noexec \ No newline at end of file diff --git a/src/regress/sys/kern/pread/CVS/Entries b/src/regress/sys/kern/pread/CVS/Entries new file mode 100644 index 000000000..3d581ce30 --- /dev/null +++ b/src/regress/sys/kern/pread/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Feb 8 19:05:18 2002// +/pread.c/1.2/Thu Jul 31 21:48:09 2003// +D diff --git a/src/regress/sys/kern/pread/CVS/Repository b/src/regress/sys/kern/pread/CVS/Repository new file mode 100644 index 000000000..eb36ace24 --- /dev/null +++ b/src/regress/sys/kern/pread/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/pread diff --git a/src/regress/sys/kern/pread/CVS/Root b/src/regress/sys/kern/pread/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/pread/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/pread/Makefile b/src/regress/sys/kern/pread/Makefile new file mode 100644 index 000000000..5979802f0 --- /dev/null +++ b/src/regress/sys/kern/pread/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/08 19:05:18 art Exp $ + +PROG= pread + +.include diff --git a/src/regress/sys/kern/pread/obj b/src/regress/sys/kern/pread/obj new file mode 120000 index 000000000..bd1810980 --- /dev/null +++ b/src/regress/sys/kern/pread/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/pread \ No newline at end of file diff --git a/src/regress/sys/kern/pread/pread.c b/src/regress/sys/kern/pread/pread.c new file mode 100644 index 000000000..c4640dd1a --- /dev/null +++ b/src/regress/sys/kern/pread/pread.c @@ -0,0 +1,48 @@ +/* $OpenBSD: pread.c,v 1.2 2003/07/31 21:48:09 deraadt Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + char temp[] = "/tmp/dup2XXXXXXXXX"; + const char magic[10] = "0123456789"; + char c; + int fd; + + if ((fd = mkstemp(temp)) < 0) + err(1, "mkstemp"); + remove(temp); + + if (write(fd, magic, sizeof(magic)) != sizeof(magic)) + err(1, "write"); + + if (lseek(fd, 0, SEEK_SET) != 0) + err(1, "lseek"); + + if (read(fd, &c, 1) != 1) + err(1, "read1"); + + if (c != magic[0]) + errx(1, "read1 %c != %c", c, magic[0]); + + if (pread(fd, &c, 1, 7) != 1) + err(1, "pread"); + + if (c != magic[7]) + errx(1, "pread %c != %c", c, magic[7]); + + if (read(fd, &c, 1) != 1) + err(1, "read2"); + + if (c != magic[1]) + errx(1, "read2 %c != %c", c, magic[1]); + + return 0; +} diff --git a/src/regress/sys/kern/preadv/CVS/Entries b/src/regress/sys/kern/preadv/CVS/Entries new file mode 100644 index 000000000..f49112182 --- /dev/null +++ b/src/regress/sys/kern/preadv/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Feb 8 20:04:03 2002// +/preadv.c/1.2/Thu Jul 31 21:48:09 2003// +D diff --git a/src/regress/sys/kern/preadv/CVS/Repository b/src/regress/sys/kern/preadv/CVS/Repository new file mode 100644 index 000000000..22aae870f --- /dev/null +++ b/src/regress/sys/kern/preadv/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/preadv diff --git a/src/regress/sys/kern/preadv/CVS/Root b/src/regress/sys/kern/preadv/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/preadv/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/preadv/Makefile b/src/regress/sys/kern/preadv/Makefile new file mode 100644 index 000000000..ebfceff6e --- /dev/null +++ b/src/regress/sys/kern/preadv/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/08 20:04:03 art Exp $ + +PROG= preadv + +.include diff --git a/src/regress/sys/kern/preadv/obj b/src/regress/sys/kern/preadv/obj new file mode 120000 index 000000000..39d4567b0 --- /dev/null +++ b/src/regress/sys/kern/preadv/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/preadv \ No newline at end of file diff --git a/src/regress/sys/kern/preadv/preadv.c b/src/regress/sys/kern/preadv/preadv.c new file mode 100644 index 000000000..261af9596 --- /dev/null +++ b/src/regress/sys/kern/preadv/preadv.c @@ -0,0 +1,59 @@ +/* $OpenBSD: preadv.c,v 1.2 2003/07/31 21:48:09 deraadt Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ +#include +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + char temp[] = "/tmp/dup2XXXXXXXXX"; + const char magic[10] = "0123456789"; + char c, c1, c2; + int fd; + struct iovec iv[2]; + + if ((fd = mkstemp(temp)) < 0) + err(1, "mkstemp"); + remove(temp); + + if (write(fd, magic, sizeof(magic)) != sizeof(magic)) + err(1, "write"); + + if (lseek(fd, 0, SEEK_SET) != 0) + err(1, "lseek"); + + if (read(fd, &c, 1) != 1) + err(1, "read1"); + + if (c != magic[0]) + errx(1, "read1 %c != %c", c, magic[0]); + + iv[0].iov_base = &c1; + iv[0].iov_len = 1; + iv[1].iov_base = &c2; + iv[1].iov_len = 1; + + if (preadv(fd, iv, 2, 7) != 2) + err(1, "pread"); + + if (c1 != magic[7]) + errx(1, "pread %c != %c", c1, magic[7]); + + if (c2 != magic[8]) + errx(1, "pread %c != %c", c2, magic[7]); + + if (read(fd, &c, 1) != 1) + err(1, "read2"); + + if (c != magic[1]) + errx(1, "read2 %c != %c", c, magic[1]); + + return 0; +} diff --git a/src/regress/sys/kern/ptmget/CVS/Entries b/src/regress/sys/kern/ptmget/CVS/Entries new file mode 100644 index 000000000..0afb9cbd5 --- /dev/null +++ b/src/regress/sys/kern/ptmget/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Jan 18 20:56:22 2004// +/ptmget.c/1.2/Wed Dec 22 00:54:39 2004// +D diff --git a/src/regress/sys/kern/ptmget/CVS/Repository b/src/regress/sys/kern/ptmget/CVS/Repository new file mode 100644 index 000000000..76d25db7f --- /dev/null +++ b/src/regress/sys/kern/ptmget/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/ptmget diff --git a/src/regress/sys/kern/ptmget/CVS/Root b/src/regress/sys/kern/ptmget/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/ptmget/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/ptmget/Makefile b/src/regress/sys/kern/ptmget/Makefile new file mode 100644 index 000000000..8f495ee7f --- /dev/null +++ b/src/regress/sys/kern/ptmget/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2004/01/18 20:56:22 beck Exp $ + +PROG= ptmget + +.include diff --git a/src/regress/sys/kern/ptmget/obj b/src/regress/sys/kern/ptmget/obj new file mode 120000 index 000000000..3d5ef58ce --- /dev/null +++ b/src/regress/sys/kern/ptmget/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/ptmget \ No newline at end of file diff --git a/src/regress/sys/kern/ptmget/ptmget.c b/src/regress/sys/kern/ptmget/ptmget.c new file mode 100644 index 000000000..24fb09b73 --- /dev/null +++ b/src/regress/sys/kern/ptmget/ptmget.c @@ -0,0 +1,59 @@ +/* $OpenBSD: ptmget.c,v 1.2 2004/12/22 00:54:39 david Exp $ */ +/* + * Written by Bob Beck 2004 Public Domain. + * Basic test to ensure /dev/ptm works, and what it returns + * can be used via tty(4); + */ +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + int fd; + struct ptmget ptm; + struct termios ti; + struct stat sb; + struct group *gr; + gid_t ttygid; + + if ((gr = getgrnam("tty")) != NULL) + ttygid = gr->gr_gid; + else + ttygid = 4; + fd = open("/dev/ptm", O_RDWR, 0); + if (fd == -1) + err(1, "Can't open /dev/ptm"); + if ((ioctl(fd, PTMGET, &ptm) == -1)) + err(1, "ioctl PTMGET failed"); + if ((tcgetattr(ptm.sfd, &ti) == -1)) + err(1, "tcgetattr failed on slave"); + if ((tcgetattr(ptm.cfd, &ti) == -1)) + err(1, "tcgetattr failed on master"); + if ((ioctl(ptm.sfd, TIOCSTOP) == -1)) + err(1, "ioctl TIOCSTOP failed on slave"); + if ((ioctl(ptm.cfd, TIOCSTOP) == -1)) + err(1, "ioctl TIOCSTOP failed on master"); + bzero(&sb, sizeof(sb)); + if ((stat(ptm.sn, &sb) == -1)) + err(1, "can't stat slave %s", ptm.sn); + if (sb.st_mode != (S_IFCHR | S_IWUSR | S_IRUSR | S_IWGRP)) + errx(1, "Bad mode %o on %s, should be %o", sb.st_mode, + ptm.sn, (S_IFCHR | S_IWUSR | S_IRUSR | S_IWGRP)); + if (sb.st_gid != ttygid) + errx(1, "%s gid is %d not the tty group(%d)", ptm.sn, + sb.st_gid, ttygid); + if (sb.st_uid != geteuid()) + errx(1, "%s owned by %d, not the current user (%d)", ptm.sn, + sb.st_uid, geteuid()); + return(0); +} diff --git a/src/regress/sys/kern/ptrace/CVS/Entries b/src/regress/sys/kern/ptrace/CVS/Entries new file mode 100644 index 000000000..2b917b147 --- /dev/null +++ b/src/regress/sys/kern/ptrace/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Wed Jul 20 15:41:51 2005// +/ptrace.c/1.2/Wed Jul 20 16:16:04 2005// +D diff --git a/src/regress/sys/kern/ptrace/CVS/Repository b/src/regress/sys/kern/ptrace/CVS/Repository new file mode 100644 index 000000000..b84775642 --- /dev/null +++ b/src/regress/sys/kern/ptrace/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/ptrace diff --git a/src/regress/sys/kern/ptrace/CVS/Root b/src/regress/sys/kern/ptrace/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/ptrace/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/ptrace/Makefile b/src/regress/sys/kern/ptrace/Makefile new file mode 100644 index 000000000..cc755cc9d --- /dev/null +++ b/src/regress/sys/kern/ptrace/Makefile @@ -0,0 +1,26 @@ +# $OpenBSD: Makefile,v 1.2 2005/07/20 15:41:51 deraadt Exp $ + +PROG= ptrace + +read_i: + ${.OBJDIR}/${PROG} -ri +read_d: + ${.OBJDIR}/${PROG} -rd +read_i_bad: + ${.OBJDIR}/${PROG} -rib +read_d_bad: + ${.OBJDIR}/${PROG} -rdb + +io_read_i: + ${.OBJDIR}/${PROG} -Iri +io_read_d: + ${.OBJDIR}/${PROG} -Ird +io_read_i_bad: + ${.OBJDIR}/${PROG} -Irib +io_read_d_bad: + ${.OBJDIR}/${PROG} -Irdb + +REGRESS_TARGETS=read_i read_d read_i_bad read_d_bad \ + io_read_i io_read_d io_read_i_bad io_read_d_bad + +.include diff --git a/src/regress/sys/kern/ptrace/ptrace.c b/src/regress/sys/kern/ptrace/ptrace.c new file mode 100644 index 000000000..bb07185d1 --- /dev/null +++ b/src/regress/sys/kern/ptrace/ptrace.c @@ -0,0 +1,178 @@ +/* $OpenBSD: ptrace.c,v 1.2 2005/07/20 16:16:04 art Exp $ */ +/* + * Copyright (c) 2005 Artur Grabowski + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static void +usage(void) +{ + fprintf(stderr, "Usage: ptrace [-bdirwI]\n"); + exit(1); +} + +#define MAGIC "asdfblahblahspam1235432blah" +#define MAGIC_I 0x47114217 + +int +main(int argc, char **argv) +{ + int ch; + int bad = 0, i, write, I; + pid_t pid; + char *m; + int ps; + int status, req; + int ret; + + ps = getpagesize(); + + I = 0; + i = 0; + write = 0; + + while ((ch = getopt(argc, argv, "bdirwI")) != -1) { + switch (ch) { + case 'b': + bad = 1; + break; + case 'i': + i = 1; + break; + case 'd': + i = 0; + break; + case 'r': + write = 0; + break; + case 'w': + write = 1; + break; + case 'I': + I = 1; + break; + default: + usage(); + } + } + + m = mmap(0, ps, PROT_READ|PROT_WRITE, MAP_ANON|MAP_SHARED, -1, 0); + if (m == MAP_FAILED) + err(1, "mmap"); + + if (!write) { + if (I) + memcpy(m, MAGIC, sizeof(MAGIC)); + else + *(int *)m = MAGIC_I; + } + if (bad) + if (mprotect(m, ps, PROT_NONE)) + err(1, "mprotect"); + + switch ((pid = fork())) { + case 0: + pause(); + _exit(0); + case -1: + err(1, "fork"); + } + + ret = 0; + + if (ptrace(PT_ATTACH, pid, 0, 0) == -1) { + warn("ptrace(PT_ATTACH)"); + ret = -1; + goto out; + } + + if (wait(&status) != pid) { + warn("wait"); + ret = -1; + goto out; + } + + if (!write) { + int i, req; + + if (I) { + char foo[1024]; + struct ptrace_io_desc piod; + + if (i) + piod.piod_op = PIOD_READ_I; + else + piod.piod_op = PIOD_READ_D; + piod.piod_offs = m; + piod.piod_addr = &foo; + piod.piod_len = sizeof(MAGIC); + + if (ptrace(PT_IO, pid, (caddr_t)&piod, 0) == -1) { + warn("ptrace(PT_IO)"); + if (errno == EFAULT) + ret = 1; + else + ret = -1; + goto out; + } + + if (memcmp(foo, MAGIC, sizeof(MAGIC))) { + warnx("mismatch %s != %s", foo, MAGIC); + ret = 1; + goto out; + } + } else { + if (i) + req = PT_READ_I; + else + req = PT_READ_D; + + i = ptrace(req, pid, m, sizeof(i)); + if (i != MAGIC_I) { + warn("ptrace(%d): %d != %d", req, i, MAGIC_I); + ret = 1; + goto out; + } + } + } else { + errx(1, "lazy bum"); + } + +out: + if (ret == -1) { + /* other errors */ + ret = 1; + } else if (bad) { + if (ret == 0) { + warnx("protected memory unprotected"); + ret = 1; + } else { + ret = 0; + } + } + + kill(pid, SIGKILL); + + return ret; +} diff --git a/src/regress/sys/kern/pwrite/CVS/Entries b/src/regress/sys/kern/pwrite/CVS/Entries new file mode 100644 index 000000000..0dcf71232 --- /dev/null +++ b/src/regress/sys/kern/pwrite/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Feb 8 20:58:02 2002// +/pwrite.c/1.3/Tue Sep 2 23:52:17 2003// +D diff --git a/src/regress/sys/kern/pwrite/CVS/Repository b/src/regress/sys/kern/pwrite/CVS/Repository new file mode 100644 index 000000000..4ddfdcf61 --- /dev/null +++ b/src/regress/sys/kern/pwrite/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/pwrite diff --git a/src/regress/sys/kern/pwrite/CVS/Root b/src/regress/sys/kern/pwrite/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/pwrite/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/pwrite/Makefile b/src/regress/sys/kern/pwrite/Makefile new file mode 100644 index 000000000..5ef6587bb --- /dev/null +++ b/src/regress/sys/kern/pwrite/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/08 20:58:02 art Exp $ + +PROG= pwrite + +.include diff --git a/src/regress/sys/kern/pwrite/obj b/src/regress/sys/kern/pwrite/obj new file mode 120000 index 000000000..0155c66ba --- /dev/null +++ b/src/regress/sys/kern/pwrite/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/pwrite \ No newline at end of file diff --git a/src/regress/sys/kern/pwrite/pwrite.c b/src/regress/sys/kern/pwrite/pwrite.c new file mode 100644 index 000000000..80ba0143e --- /dev/null +++ b/src/regress/sys/kern/pwrite/pwrite.c @@ -0,0 +1,52 @@ +/* $OpenBSD: pwrite.c,v 1.3 2003/09/02 23:52:17 david Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + char temp[] = "/tmp/pwriteXXXXXXXXX"; + const char magic[10] = "0123456789"; + const char zeroes[10] = "0000000000"; + char buf[10]; + char c; + int fd; + + if ((fd = mkstemp(temp)) < 0) + err(1, "mkstemp"); + remove(temp); + + if (write(fd, zeroes, sizeof(zeroes)) != sizeof(zeroes)) + err(1, "write"); + + if (lseek(fd, 5, SEEK_SET) != 5) + err(1, "lseek"); + + if (pwrite(fd, &magic[1], 4, 4) != 4) + err(1, "pwrite"); + + if (read(fd, &c, 1) != 1) + err(1, "read"); + + if (c != '2') + errx(1, "read %c != %c", c, '2'); + + c = '5'; + if (write(fd, &c, 1) != 1) + err(1, "write"); + + if (pread(fd, buf, 10, 0) != 10) + err(1, "pread"); + + if (memcmp(buf, "0000125400", 10) != 0) + errx(1, "data mismatch: %s != %s", buf, "0000125400"); + + return 0; +} diff --git a/src/regress/sys/kern/pwritev/CVS/Entries b/src/regress/sys/kern/pwritev/CVS/Entries new file mode 100644 index 000000000..d7bb6ace8 --- /dev/null +++ b/src/regress/sys/kern/pwritev/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Feb 8 21:06:05 2002// +/pwritev.c/1.3/Tue Sep 2 23:52:17 2003// +D diff --git a/src/regress/sys/kern/pwritev/CVS/Repository b/src/regress/sys/kern/pwritev/CVS/Repository new file mode 100644 index 000000000..27d6fa388 --- /dev/null +++ b/src/regress/sys/kern/pwritev/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/pwritev diff --git a/src/regress/sys/kern/pwritev/CVS/Root b/src/regress/sys/kern/pwritev/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/pwritev/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/pwritev/Makefile b/src/regress/sys/kern/pwritev/Makefile new file mode 100644 index 000000000..4d01ee63a --- /dev/null +++ b/src/regress/sys/kern/pwritev/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/08 21:06:05 art Exp $ + +PROG= pwritev + +.include diff --git a/src/regress/sys/kern/pwritev/obj b/src/regress/sys/kern/pwritev/obj new file mode 120000 index 000000000..2505b97d2 --- /dev/null +++ b/src/regress/sys/kern/pwritev/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/pwritev \ No newline at end of file diff --git a/src/regress/sys/kern/pwritev/pwritev.c b/src/regress/sys/kern/pwritev/pwritev.c new file mode 100644 index 000000000..6012869cc --- /dev/null +++ b/src/regress/sys/kern/pwritev/pwritev.c @@ -0,0 +1,60 @@ +/* $OpenBSD: pwritev.c,v 1.3 2003/09/02 23:52:17 david Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ +#include +#include +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + char temp[] = "/tmp/pwritevXXXXXXXXX"; + char magic[10] = "0123456789"; + const char zeroes[10] = "0000000000"; + char buf[10]; + struct iovec iov[2]; + char c; + int fd; + + if ((fd = mkstemp(temp)) < 0) + err(1, "mkstemp"); + remove(temp); + + if (write(fd, zeroes, sizeof(zeroes)) != sizeof(zeroes)) + err(1, "write"); + + if (lseek(fd, 5, SEEK_SET) != 5) + err(1, "lseek"); + + iov[0].iov_base = &magic[8]; + iov[0].iov_len = 2; + iov[1].iov_base = &magic[7]; + iov[1].iov_len = 2; + + if (pwritev(fd, iov, 2, 4) != 4) + err(1, "pwrite"); + + if (read(fd, &c, 1) != 1) + err(1, "read"); + + if (c != '9') + errx(1, "read %c != %c", c, '9'); + + c = '5'; + if (write(fd, &c, 1) != 1) + err(1, "write"); + + if (pread(fd, buf, 10, 0) != 10) + err(1, "pread"); + + if (memcmp(buf, "0000895800", 10) != 0) + errx(1, "data mismatch: %s != %s", buf, "0000895800"); + + return 0; +} diff --git a/src/regress/sys/kern/rcvtimeo/CVS/Entries b/src/regress/sys/kern/rcvtimeo/CVS/Entries new file mode 100644 index 000000000..120595d66 --- /dev/null +++ b/src/regress/sys/kern/rcvtimeo/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Nov 26 18:31:59 2002// +/rcvtimeo.c/1.4/Tue Sep 2 23:52:17 2003// +D diff --git a/src/regress/sys/kern/rcvtimeo/CVS/Repository b/src/regress/sys/kern/rcvtimeo/CVS/Repository new file mode 100644 index 000000000..6f2df07b2 --- /dev/null +++ b/src/regress/sys/kern/rcvtimeo/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/rcvtimeo diff --git a/src/regress/sys/kern/rcvtimeo/CVS/Root b/src/regress/sys/kern/rcvtimeo/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/rcvtimeo/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/rcvtimeo/Makefile b/src/regress/sys/kern/rcvtimeo/Makefile new file mode 100644 index 000000000..73e736d56 --- /dev/null +++ b/src/regress/sys/kern/rcvtimeo/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2002/11/26 18:31:59 mickey Exp $ + +PROG= rcvtimeo +CFLAGS+=-Wall + +.include diff --git a/src/regress/sys/kern/rcvtimeo/obj b/src/regress/sys/kern/rcvtimeo/obj new file mode 120000 index 000000000..5b1038347 --- /dev/null +++ b/src/regress/sys/kern/rcvtimeo/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/rcvtimeo \ No newline at end of file diff --git a/src/regress/sys/kern/rcvtimeo/rcvtimeo.c b/src/regress/sys/kern/rcvtimeo/rcvtimeo.c new file mode 100644 index 000000000..2dcb00fe9 --- /dev/null +++ b/src/regress/sys/kern/rcvtimeo/rcvtimeo.c @@ -0,0 +1,75 @@ +/* $OpenBSD: rcvtimeo.c,v 1.4 2003/09/02 23:52:17 david Exp $ */ + +/* Written by Michael Shalayeff, 2002, Public Domain */ + +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + +volatile int back; + +static void +sigalarm(int sig, siginfo_t *sip, void *scp) +{ + if (!back) + _exit(1); +} + +int +main(int argc, char *argv[]) +{ + struct sockaddr_in sin; + struct sigaction sa; + struct timeval tv; + u_char buf[16]; + int s; + + sa.sa_sigaction = &sigalarm; + sa.sa_flags = SA_SIGINFO; + sigemptyset(&sa.sa_mask); + sigaction(SIGALRM, &sa, NULL); + + if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) + err(1, "socket"); + + sin.sin_len = sizeof(sin); + sin.sin_family = AF_INET; + sin.sin_port = htons(30000); /* XXX assuming nothing is there */ + sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) + err(1, "bind"); + + tv.tv_sec = 1; + tv.tv_usec = 0; + if (setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) < 0) + err(1, "setsockopt1"); + + back = 0; + alarm(2); + errno = 0; + if (recv(s, buf, sizeof(buf), 0) < 0 && errno != EAGAIN) + err(1, "recv1"); + back = 1; + + tv.tv_sec = 0; + tv.tv_usec = 1; + if (setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) < 0) + err(1, "setsockopt2"); + + back = 0; + alarm(2); + errno = 0; + if (recv(s, buf, sizeof(buf), 0) < 0 && errno != EAGAIN) + err(1, "recv2"); + back = 1; + + exit (0); +} diff --git a/src/regress/sys/kern/rfork/CVS/Entries b/src/regress/sys/kern/rfork/CVS/Entries new file mode 100644 index 000000000..fb8e5dadb --- /dev/null +++ b/src/regress/sys/kern/rfork/CVS/Entries @@ -0,0 +1,7 @@ +/Makefile/1.7/Tue Mar 12 15:19:28 2002// +D/madness//// +D/rfcfdg//// +D/rfmem//// +D/rfmem-stack//// +D/rfnowait//// +D/rfsharefd//// diff --git a/src/regress/sys/kern/rfork/CVS/Repository b/src/regress/sys/kern/rfork/CVS/Repository new file mode 100644 index 000000000..a15a7ac3d --- /dev/null +++ b/src/regress/sys/kern/rfork/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/rfork diff --git a/src/regress/sys/kern/rfork/CVS/Root b/src/regress/sys/kern/rfork/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/rfork/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/rfork/Makefile b/src/regress/sys/kern/rfork/Makefile new file mode 100644 index 000000000..d9a32f567 --- /dev/null +++ b/src/regress/sys/kern/rfork/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.7 2002/03/12 15:19:28 art Exp $ + +SUBDIR=rfmem rfcfdg rfnowait rfsharefd madness rfmem-stack + +install: + +.include diff --git a/src/regress/sys/kern/rfork/madness/CVS/Entries b/src/regress/sys/kern/rfork/madness/CVS/Entries new file mode 100644 index 000000000..5c4d34567 --- /dev/null +++ b/src/regress/sys/kern/rfork/madness/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Feb 17 05:58:51 2002// +/madness.c/1.3/Sat Aug 2 01:24:36 2003// +D diff --git a/src/regress/sys/kern/rfork/madness/CVS/Repository b/src/regress/sys/kern/rfork/madness/CVS/Repository new file mode 100644 index 000000000..8493eebb5 --- /dev/null +++ b/src/regress/sys/kern/rfork/madness/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/rfork/madness diff --git a/src/regress/sys/kern/rfork/madness/CVS/Root b/src/regress/sys/kern/rfork/madness/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/rfork/madness/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/rfork/madness/Makefile b/src/regress/sys/kern/rfork/madness/Makefile new file mode 100644 index 000000000..d44f5ff2b --- /dev/null +++ b/src/regress/sys/kern/rfork/madness/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/17 05:58:51 art Exp $ + +PROG=madness + +.include diff --git a/src/regress/sys/kern/rfork/madness/madness.c b/src/regress/sys/kern/rfork/madness/madness.c new file mode 100644 index 000000000..7b1006bff --- /dev/null +++ b/src/regress/sys/kern/rfork/madness/madness.c @@ -0,0 +1,55 @@ +/* $OpenBSD: madness.c,v 1.3 2003/08/02 01:24:36 david Exp $ */ +/* + * Written by Artur Grabowski , 2002 Public Domain. + */ +#include +#include +#include +#include +#include +#include + +volatile int step; + +int +main(int argc, char *argv[]) +{ + int fds[2], fd; + pid_t pid1, pid2, pid3; + + if (pipe(fds) < 0) + err(1, "pipe"); + + fd = fds[0]; + + if ((pid1 = rfork(RFPROC|RFMEM|RFFDG|RFNOWAIT)) == 0) { + char foo[1024]; + step = 1; + read(fd, foo, sizeof(foo)); + _exit(0); + } + + if ((pid2 = rfork(RFPROC|RFMEM|RFFDG|RFNOWAIT)) == 0) { + while (step < 1) + sleep(1); + sleep(1); + step = 2; + close(fd); + _exit(0); + } + if ((pid3 = rfork(RFPROC|RFMEM|RFFDG|RFNOWAIT)) == 0) { + while (step < 2) + sleep(1); + sleep(1); + step = 3; + dup2(0, fd); + _exit(0); + } + while (step < 3) + sleep(1); + sleep(1); + kill(pid1, SIGKILL); + kill(pid2, SIGKILL); + kill(pid3, SIGKILL); + return 0; +} diff --git a/src/regress/sys/kern/rfork/rfcfdg/CVS/Entries b/src/regress/sys/kern/rfork/rfcfdg/CVS/Entries new file mode 100644 index 000000000..7671c6eb6 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfcfdg/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Feb 17 05:16:41 2002// +/rfcfdg.c/1.3/Thu Jul 31 21:48:09 2003// +D diff --git a/src/regress/sys/kern/rfork/rfcfdg/CVS/Repository b/src/regress/sys/kern/rfork/rfcfdg/CVS/Repository new file mode 100644 index 000000000..eb56d4c73 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfcfdg/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/rfork/rfcfdg diff --git a/src/regress/sys/kern/rfork/rfcfdg/CVS/Root b/src/regress/sys/kern/rfork/rfcfdg/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/rfork/rfcfdg/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/rfork/rfcfdg/Makefile b/src/regress/sys/kern/rfork/rfcfdg/Makefile new file mode 100644 index 000000000..d0fd9ab70 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfcfdg/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/17 05:16:41 art Exp $ + +PROG=rfcfdg + +.include diff --git a/src/regress/sys/kern/rfork/rfcfdg/rfcfdg.c b/src/regress/sys/kern/rfork/rfcfdg/rfcfdg.c new file mode 100644 index 000000000..95fd62043 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfcfdg/rfcfdg.c @@ -0,0 +1,38 @@ +/* $OpenBSD: rfcfdg.c,v 1.3 2003/07/31 21:48:09 deraadt Exp $ */ +/* + * Written by Artur Grabowski , 2002 Public Domain. + */ +#include +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + int status; + + /* Make sure that at least fd 0 is allocated. */ + if (open("/dev/null", O_RDONLY) < 0) + err(1, "open(/dev/null)"); + + switch(rfork(RFCFDG|RFPROC)) { + case -1: + err(1, "fork"); + case 0: + if (open("/dev/null", O_RDONLY) != 0) + _exit(1); /* pretty hard to print to stderr */ + _exit(0); + } + + if (wait(&status) < 0) + err(1, "wait"); + + if (!WIFEXITED(status)) + err(1, "child error"); + + return WEXITSTATUS(status) != 0; +} diff --git a/src/regress/sys/kern/rfork/rfmem-stack/CVS/Entries b/src/regress/sys/kern/rfork/rfmem-stack/CVS/Entries new file mode 100644 index 000000000..4b3b68546 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfmem-stack/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Feb 21 21:07:11 2002// +/rfmem-stack.c/1.5/Sat Aug 2 01:24:37 2003// +D diff --git a/src/regress/sys/kern/rfork/rfmem-stack/CVS/Repository b/src/regress/sys/kern/rfork/rfmem-stack/CVS/Repository new file mode 100644 index 000000000..255a3bce5 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfmem-stack/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/rfork/rfmem-stack diff --git a/src/regress/sys/kern/rfork/rfmem-stack/CVS/Root b/src/regress/sys/kern/rfork/rfmem-stack/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/rfork/rfmem-stack/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/rfork/rfmem-stack/Makefile b/src/regress/sys/kern/rfork/rfmem-stack/Makefile new file mode 100644 index 000000000..491df13bd --- /dev/null +++ b/src/regress/sys/kern/rfork/rfmem-stack/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/21 21:07:11 art Exp $ + +PROG=rfmem-stack + +.include diff --git a/src/regress/sys/kern/rfork/rfmem-stack/rfmem-stack.c b/src/regress/sys/kern/rfork/rfmem-stack/rfmem-stack.c new file mode 100644 index 000000000..29dbf7e11 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfmem-stack/rfmem-stack.c @@ -0,0 +1,54 @@ +/* $OpenBSD: rfmem-stack.c,v 1.5 2003/08/02 01:24:37 david Exp $ */ +/* + * Written by Artur Grabowski , 2002 Public Domain. + */ +#include +#include +#include + +#include +#include +#include +#include +#include + +#define MAGIC "inherited" + +int +main(int argc, char *argv[]) +{ + char *map, *map2; + int status; + + map = alloca(sizeof(MAGIC)); + memset(map, 0, sizeof(MAGIC)); + + map2 = alloca(sizeof(MAGIC)); + memset(map2, 0, sizeof(MAGIC)); + + switch(rfork(RFFDG|RFPROC|RFMEM)) { + case -1: + err(1, "fork"); + case 0: + memcpy(map, MAGIC, sizeof(MAGIC)); + sleep(1); + if (memcmp(map2, MAGIC, sizeof(MAGIC)) == 0) { + write(2, "child stack polluted\n", 21); + _exit(1); + } + _exit(0); + } + + memcpy(map2, MAGIC, sizeof(MAGIC)); + + if (wait(&status) < 0) + err(1, "wait"); + + if (!WIFEXITED(status)) + err(1, "child error"); + + if (memcmp(map, MAGIC, sizeof(MAGIC)) == 0) + return 1; + + return WEXITSTATUS(status) != 0; +} diff --git a/src/regress/sys/kern/rfork/rfmem/CVS/Entries b/src/regress/sys/kern/rfork/rfmem/CVS/Entries new file mode 100644 index 000000000..0d4bf6485 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfmem/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Feb 17 05:10:40 2002// +/rfmem.c/1.4/Sat Aug 2 01:24:37 2003// +D diff --git a/src/regress/sys/kern/rfork/rfmem/CVS/Repository b/src/regress/sys/kern/rfork/rfmem/CVS/Repository new file mode 100644 index 000000000..e084e4a90 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfmem/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/rfork/rfmem diff --git a/src/regress/sys/kern/rfork/rfmem/CVS/Root b/src/regress/sys/kern/rfork/rfmem/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/rfork/rfmem/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/rfork/rfmem/Makefile b/src/regress/sys/kern/rfork/rfmem/Makefile new file mode 100644 index 000000000..3e2df82ce --- /dev/null +++ b/src/regress/sys/kern/rfork/rfmem/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/17 05:10:40 art Exp $ + +PROG=rfmem + +.include diff --git a/src/regress/sys/kern/rfork/rfmem/rfmem.c b/src/regress/sys/kern/rfork/rfmem/rfmem.c new file mode 100644 index 000000000..84ae38d1f --- /dev/null +++ b/src/regress/sys/kern/rfork/rfmem/rfmem.c @@ -0,0 +1,50 @@ +/* $OpenBSD: rfmem.c,v 1.4 2003/08/02 01:24:37 david Exp $ */ +/* + * Written by Artur Grabowski , 2002 Public Domain. + */ +#include +#include +#include + +#include +#include +#include +#include +#include + +#define MAGIC "inherited" + +int +main(int argc, char *argv[]) +{ + void *map; + int page_size; + int status; + + page_size = getpagesize(); + + if ((map = mmap(NULL, page_size, PROT_READ|PROT_WRITE, MAP_ANON, + -1, 0)) == MAP_FAILED) + err(1, "mmap"); + + memset(map, 0, sizeof(MAGIC)); + + switch(rfork(RFFDG|RFPROC|RFMEM)) { + case -1: + err(1, "fork"); + case 0: + memcpy(map, MAGIC, sizeof(MAGIC)); + _exit(0); + } + + if (wait(&status) < 0) + err(1, "wait"); + + if (!WIFEXITED(status)) + err(1, "child error"); + + if (memcmp(map, MAGIC, sizeof(MAGIC)) != 0) + return 1; + + return WEXITSTATUS(status) != 0; +} diff --git a/src/regress/sys/kern/rfork/rfnowait/CVS/Entries b/src/regress/sys/kern/rfork/rfnowait/CVS/Entries new file mode 100644 index 000000000..f4b51754d --- /dev/null +++ b/src/regress/sys/kern/rfork/rfnowait/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Feb 17 05:22:41 2002// +/rfnowait.c/1.3/Thu Jul 31 21:48:09 2003// +D diff --git a/src/regress/sys/kern/rfork/rfnowait/CVS/Repository b/src/regress/sys/kern/rfork/rfnowait/CVS/Repository new file mode 100644 index 000000000..54359810d --- /dev/null +++ b/src/regress/sys/kern/rfork/rfnowait/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/rfork/rfnowait diff --git a/src/regress/sys/kern/rfork/rfnowait/CVS/Root b/src/regress/sys/kern/rfork/rfnowait/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/rfork/rfnowait/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/rfork/rfnowait/Makefile b/src/regress/sys/kern/rfork/rfnowait/Makefile new file mode 100644 index 000000000..7f716a031 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfnowait/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/17 05:22:41 art Exp $ + +PROG=rfnowait + +.include diff --git a/src/regress/sys/kern/rfork/rfnowait/rfnowait.c b/src/regress/sys/kern/rfork/rfnowait/rfnowait.c new file mode 100644 index 000000000..58d242155 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfnowait/rfnowait.c @@ -0,0 +1,32 @@ +/* $OpenBSD: rfnowait.c,v 1.3 2003/07/31 21:48:09 deraadt Exp $ */ +/* + * Written by Artur Grabowski , 2002 Public Domain. + */ +#include +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + int status; + + switch(rfork(RFFDG|RFNOWAIT|RFPROC)) { + case -1: + err(1, "fork"); + case 0: + _exit(0); + } + + if (wait(&status) >= 0) + errx(1, "wait returned a child?"); + + if (errno != ECHILD) + err(1, "unexpected errno (%d)"); + + return 0; +} diff --git a/src/regress/sys/kern/rfork/rfsharefd/CVS/Entries b/src/regress/sys/kern/rfork/rfsharefd/CVS/Entries new file mode 100644 index 000000000..5259e9fe8 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfsharefd/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Feb 17 05:44:07 2002// +/rfsharefd.c/1.3/Thu Jul 31 21:48:09 2003// +D diff --git a/src/regress/sys/kern/rfork/rfsharefd/CVS/Repository b/src/regress/sys/kern/rfork/rfsharefd/CVS/Repository new file mode 100644 index 000000000..b6a0a0711 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfsharefd/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/rfork/rfsharefd diff --git a/src/regress/sys/kern/rfork/rfsharefd/CVS/Root b/src/regress/sys/kern/rfork/rfsharefd/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/rfork/rfsharefd/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/rfork/rfsharefd/Makefile b/src/regress/sys/kern/rfork/rfsharefd/Makefile new file mode 100644 index 000000000..a62465752 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfsharefd/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/17 05:44:07 art Exp $ + +PROG=rfsharefd + +.include diff --git a/src/regress/sys/kern/rfork/rfsharefd/rfsharefd.c b/src/regress/sys/kern/rfork/rfsharefd/rfsharefd.c new file mode 100644 index 000000000..ad7c0a3f3 --- /dev/null +++ b/src/regress/sys/kern/rfork/rfsharefd/rfsharefd.c @@ -0,0 +1,42 @@ +/* $OpenBSD: rfsharefd.c,v 1.3 2003/07/31 21:48:09 deraadt Exp $ */ +/* + * Written by Artur Grabowski , 2002 Public Domain. + */ +#include +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + int status; + int fd; + + /* Make sure that at least fd 0 is allocated. */ + if ((fd = open("/dev/null", O_RDONLY)) < 0) + err(1, "open(/dev/null)"); + + switch(rfork(RFPROC)) { + case -1: + err(1, "fork"); + case 0: + if (close(fd) < 0) + _exit(1); + _exit(0); + } + + if (wait(&status) < 0) + err(1, "wait"); + + if (!WIFEXITED(status)) + err(1, "child error"); + + if (close(fd) == 0) + errx(1, "fd 0 not closed"); + + return WEXITSTATUS(status) != 0; +} diff --git a/src/regress/sys/kern/rlimit-file/CVS/Entries b/src/regress/sys/kern/rlimit-file/CVS/Entries new file mode 100644 index 000000000..c747ccf82 --- /dev/null +++ b/src/regress/sys/kern/rlimit-file/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Feb 5 16:19:49 2002// +/rlim-file.c/1.3/Thu Jul 31 21:48:10 2003// +D diff --git a/src/regress/sys/kern/rlimit-file/CVS/Repository b/src/regress/sys/kern/rlimit-file/CVS/Repository new file mode 100644 index 000000000..29f3e953e --- /dev/null +++ b/src/regress/sys/kern/rlimit-file/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/rlimit-file diff --git a/src/regress/sys/kern/rlimit-file/CVS/Root b/src/regress/sys/kern/rlimit-file/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/rlimit-file/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/rlimit-file/Makefile b/src/regress/sys/kern/rlimit-file/Makefile new file mode 100644 index 000000000..0bf3447a7 --- /dev/null +++ b/src/regress/sys/kern/rlimit-file/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/05 16:19:49 art Exp $ + +PROG= rlim-file + +.include diff --git a/src/regress/sys/kern/rlimit-file/obj b/src/regress/sys/kern/rlimit-file/obj new file mode 120000 index 000000000..fc57d49c4 --- /dev/null +++ b/src/regress/sys/kern/rlimit-file/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/rlimit-file \ No newline at end of file diff --git a/src/regress/sys/kern/rlimit-file/rlim-file.c b/src/regress/sys/kern/rlimit-file/rlim-file.c new file mode 100644 index 000000000..b1114550a --- /dev/null +++ b/src/regress/sys/kern/rlimit-file/rlim-file.c @@ -0,0 +1,41 @@ +/* $OpenBSD: rlim-file.c,v 1.3 2003/07/31 21:48:10 deraadt Exp $ */ +/* + * Written by Artur Grabowski (2002) Public Domain. + */ +#include +#include +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + int lim, fd, fds[2]; + struct rlimit rl; + + if (getrlimit(RLIMIT_NOFILE, &rl) < 0) + err(1, "getrlimit"); + + lim = rl.rlim_cur; + + fd = -1; + while (fd < lim - 2) + if ((fd = open("/dev/null", O_RDONLY)) < 0) + err(1, "open"); + + if (pipe(fds) == 0) + errx(1, "pipe was allowed"); + + if (errno == ENFILE) + errx(1, "try to do the test on a less loaded system"); + + if (errno != EMFILE) + errx(1, "bad errno (%d): %s", errno, strerror(errno)); + + return 0; +} + diff --git a/src/regress/sys/kern/sig-stop/CVS/Entries b/src/regress/sys/kern/sig-stop/CVS/Entries new file mode 100644 index 000000000..4c75b5e91 --- /dev/null +++ b/src/regress/sys/kern/sig-stop/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Apr 29 20:10:24 2007// +/sig-stop.c/1.1/Sun Apr 29 20:10:24 2007// +D diff --git a/src/regress/sys/kern/sig-stop/CVS/Repository b/src/regress/sys/kern/sig-stop/CVS/Repository new file mode 100644 index 000000000..ea5260161 --- /dev/null +++ b/src/regress/sys/kern/sig-stop/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/sig-stop diff --git a/src/regress/sys/kern/sig-stop/CVS/Root b/src/regress/sys/kern/sig-stop/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/sig-stop/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/sig-stop/Makefile b/src/regress/sys/kern/sig-stop/Makefile new file mode 100644 index 000000000..c148c6507 --- /dev/null +++ b/src/regress/sys/kern/sig-stop/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2007/04/29 20:10:24 art Exp $ + +PROG= sig-stop + +.include diff --git a/src/regress/sys/kern/sig-stop/obj b/src/regress/sys/kern/sig-stop/obj new file mode 120000 index 000000000..c916a12b8 --- /dev/null +++ b/src/regress/sys/kern/sig-stop/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/sig-stop \ No newline at end of file diff --git a/src/regress/sys/kern/sig-stop/sig-stop.c b/src/regress/sys/kern/sig-stop/sig-stop.c new file mode 100644 index 000000000..278fc1cb6 --- /dev/null +++ b/src/regress/sys/kern/sig-stop/sig-stop.c @@ -0,0 +1,57 @@ +/* $OpenBSD: sig-stop.c,v 1.1 2007/04/29 20:10:24 art Exp $ */ +/* + * Written by Artur Grabowski 2007 Public Domain. + */ +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +int +main(int argc, char **argv) +{ + struct timespec ts; + pid_t child; + int status; + int count; + int toggle = 0; + + switch((child = fork())) { + case -1: + err(1, "fork"); + case 0: + ts.tv_sec = 0; + ts.tv_nsec = 1000; + for (count = 0; count < 100; count++) { + nanosleep(&ts, NULL); + } + exit(0); + default: + break; + } + + ts.tv_sec = 1; + ts.tv_nsec = 0; + nanosleep(&ts, NULL); + + do { + toggle ^= 1; + if (kill(child, toggle ? SIGSTOP : SIGCONT)) { + if (wait(&status) < 0) + err(1, "wait"); + break; + } + } while(waitpid(child, &status, WCONTINUED|WUNTRACED) > 0 && + (toggle ? WIFSTOPPED(status) : WIFCONTINUED(status))); + + if (!WIFEXITED(status)) + err(1, "bad status: %d\n", status); + + return 0; +} diff --git a/src/regress/sys/kern/signal-stress/CVS/Entries b/src/regress/sys/kern/signal-stress/CVS/Entries new file mode 100644 index 000000000..4fa345b11 --- /dev/null +++ b/src/regress/sys/kern/signal-stress/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Aug 5 02:58:35 2004// +/signal-stress.c/1.3/Sun Apr 13 00:22:17 2008// +D diff --git a/src/regress/sys/kern/signal-stress/CVS/Repository b/src/regress/sys/kern/signal-stress/CVS/Repository new file mode 100644 index 000000000..52efe34fd --- /dev/null +++ b/src/regress/sys/kern/signal-stress/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/signal-stress diff --git a/src/regress/sys/kern/signal-stress/CVS/Root b/src/regress/sys/kern/signal-stress/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/signal-stress/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/signal-stress/Makefile b/src/regress/sys/kern/signal-stress/Makefile new file mode 100644 index 000000000..84b877305 --- /dev/null +++ b/src/regress/sys/kern/signal-stress/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2004/08/05 02:58:35 art Exp $ + +PROG= signal-stress + +.include diff --git a/src/regress/sys/kern/signal-stress/obj b/src/regress/sys/kern/signal-stress/obj new file mode 120000 index 000000000..e7a30f896 --- /dev/null +++ b/src/regress/sys/kern/signal-stress/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/signal-stress \ No newline at end of file diff --git a/src/regress/sys/kern/signal-stress/signal-stress.c b/src/regress/sys/kern/signal-stress/signal-stress.c new file mode 100644 index 000000000..61aa23bcd --- /dev/null +++ b/src/regress/sys/kern/signal-stress/signal-stress.c @@ -0,0 +1,176 @@ +/* $OpenBSD: signal-stress.c,v 1.3 2008/04/13 00:22:17 djm Exp $ */ +/* + * Written by Artur Grabowski 2004 Public Domain. + */ +#include +#include +#include + +#include +#include +#include +#include + +int nprocs, nsigs; +pid_t *pids; +pid_t next, prev; +sig_atomic_t usr1, usr2; + +void +sighand(int sig) +{ + if (sig == SIGUSR1 && ++usr1 <= nsigs) { + if (kill(next, sig)) + _exit(1); + } + if (sig == SIGUSR2 && ++usr2 <= nsigs) { + if (kill(prev, sig)) + _exit(1); + } +} + +void +do_child(void) +{ + int i; + + /* + * Step 1 - suspend and wait for SIGCONT so that all siblings have + * been started before the next step. + */ + raise(SIGSTOP); + + /* Find our neighbours. */ + for (i = 0; i < nprocs; i++) { + if (pids[i] != getpid()) + continue; + if (i + 1 == nprocs) + next = pids[0]; + else + next = pids[i + 1]; + if (i == 0) + prev = pids[nprocs - 1]; + else + prev = pids[i - 1]; + } + + signal(SIGUSR1, sighand); + signal(SIGUSR2, sighand); + + /* Step 2 - wait again until everyone is ready. */ + raise(SIGSTOP); + + while (usr1 < nsigs || usr2 < nsigs) + pause(); + + /* Step 3 - wait again until everyone is ready. */ + raise(SIGSTOP); +} + +void +wait_stopped(pid_t pid) +{ + int status; + + if (waitpid(pid, &status, WUNTRACED) != pid) + err(1, "waitpid"); + if (!WIFSTOPPED(status)) + errx(1, "child %d not stopped", pid); +} + +void +cleanup(void) +{ + int i; + + for (i = 0; i < nprocs; i++) + kill(pids[i], 9); +} + +void +alrmhand(int sig) +{ + cleanup(); + _exit(1); +} + +int +main() +{ + int i; + pid_t pid; + + nprocs = 35; + + nsigs = 1000; + + if ((pids = mmap(NULL, getpagesize(), PROT_READ|PROT_WRITE, + MAP_ANON|MAP_SHARED, -1, 0)) == MAP_FAILED) + err(1, "mmap"); + + for (i = 0; i < nprocs; i++) { + switch((pid = fork())) { + case 0: + do_child(); + _exit(0); + case -1: + err(1, "fork"); + } + pids[i] = pid; + } + + atexit(cleanup); + signal(SIGALRM, alrmhand); + alarm(120); /* Die after two minutes. */ + + /* Step 1. Wait until all children have went to sleep */ + for (i = 0; i < nprocs; i++) + wait_stopped(pids[i]); + /* And wake them */ + for (i = 0; i < nprocs; i++) + kill(pids[i], SIGCONT); + + /* Step 2. Repeat. */ + for (i = 0; i < nprocs; i++) + wait_stopped(pids[i]); + for (i = 0; i < nprocs; i++) + kill(pids[i], SIGCONT); + + /* + * Now all children are ready for action. + * Send the first signals and wait until they all exit. + */ + kill(pids[arc4random_uniform(nprocs)], SIGUSR1); + kill(pids[arc4random_uniform(nprocs)], SIGUSR2); + + /* + * The signal game is running, now insert noise in the process. + */ + for (i = 0; i < nprocs; i++) { + pid_t pid = pids[arc4random_uniform(nprocs)]; + kill(pid, SIGSTOP); + wait_stopped(pid); + kill(pid, SIGCONT); + } + + + /* Step 3. Repeat. */ + for (i = 0; i < nprocs; i++) + wait_stopped(pids[i]); + for (i = 0; i < nprocs; i++) + kill(pids[i], SIGCONT); + + /* Wait for everyone to finish. */ + for (i = 0; i < nprocs; i++) { + int status; + + if (waitpid(pids[i], &status, WUNTRACED) != pids[i]) + err(1, "waitpid"); + if (!WIFEXITED(status)) + errx(1, "child %d not stopped (%d)", pids[i], status); + if (WEXITSTATUS(status) != 0) + warnx("child %d status: %d", i, status); + } + + return (0); +} diff --git a/src/regress/sys/kern/signal/CVS/Entries b/src/regress/sys/kern/signal/CVS/Entries new file mode 100644 index 000000000..d5c4e9fbe --- /dev/null +++ b/src/regress/sys/kern/signal/CVS/Entries @@ -0,0 +1,6 @@ +/Makefile/1.4/Tue Jun 10 18:04:31 2008// +D/cansig//// +D/earlysig//// +D/fpsig//// +D/sigfpe//// +D/siginfo_addr//// diff --git a/src/regress/sys/kern/signal/CVS/Repository b/src/regress/sys/kern/signal/CVS/Repository new file mode 100644 index 000000000..3e198bbf9 --- /dev/null +++ b/src/regress/sys/kern/signal/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/signal diff --git a/src/regress/sys/kern/signal/CVS/Root b/src/regress/sys/kern/signal/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/signal/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/signal/Makefile b/src/regress/sys/kern/signal/Makefile new file mode 100644 index 000000000..65193ab43 --- /dev/null +++ b/src/regress/sys/kern/signal/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.4 2008/06/10 18:04:31 hshoexer Exp $ + +SUBDIR+= sigfpe siginfo_addr fpsig earlysig cansig + +install: + +.include diff --git a/src/regress/sys/kern/signal/cansig/CVS/Entries b/src/regress/sys/kern/signal/cansig/CVS/Entries new file mode 100644 index 000000000..480a85afb --- /dev/null +++ b/src/regress/sys/kern/signal/cansig/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Jun 10 18:04:31 2008// +/cansig.c/1.1/Tue Jun 10 18:04:31 2008// +D diff --git a/src/regress/sys/kern/signal/cansig/CVS/Repository b/src/regress/sys/kern/signal/cansig/CVS/Repository new file mode 100644 index 000000000..c90b0224c --- /dev/null +++ b/src/regress/sys/kern/signal/cansig/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/signal/cansig diff --git a/src/regress/sys/kern/signal/cansig/CVS/Root b/src/regress/sys/kern/signal/cansig/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/signal/cansig/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/signal/cansig/Makefile b/src/regress/sys/kern/signal/cansig/Makefile new file mode 100644 index 000000000..1bb80f33c --- /dev/null +++ b/src/regress/sys/kern/signal/cansig/Makefile @@ -0,0 +1,12 @@ +# $OpenBSD: Makefile,v 1.1 2008/06/10 18:04:31 hshoexer Exp $ + +PROG= cansig +CFLAGS+=-Wall + +t-cansig: ${PROG} + ${SUDO} ./${PROG} + +REGRESS_TARGETS=t-cansig +REGRESS_ROOT_TARGETS=${REGRESS_TARGETS} + +.include diff --git a/src/regress/sys/kern/signal/cansig/cansig.c b/src/regress/sys/kern/signal/cansig/cansig.c new file mode 100644 index 000000000..00e5f073f --- /dev/null +++ b/src/regress/sys/kern/signal/cansig/cansig.c @@ -0,0 +1,49 @@ +/* $OpenBSD: cansig.c,v 1.1 2008/06/10 18:04:31 hshoexer Exp $ */ +/* Written by Michael Shalayeff, 2008. Public Domain */ + +#include +#include +#include +#include +#include +#include + +int +main() +{ + pid_t pid; + int serrno; + + if ((pid = fork()) < 0) + err(1, "fork"); + + /* nun sex */ + if (!pid) { + if (seteuid(1)) + err(1, "seteuid"); + sleep(3); + return 0; + } + + /* monk rock */ + sleep(1); + /* first see if we can still do it */ + if (kill(pid, 0)) { + serrno = errno; + kill(pid, SIGKILL); + errno = serrno; + err(1, "kill0"); + } + if (setreuid(1, 1)) { + serrno = errno; + kill(pid, SIGKILL); + errno = serrno; + err(1, "seteuid1"); + } + /* not allowed */ + if (!kill(pid, 0)) + errx(1, "kill1"); + + /* we can't collect the remains from the kiddo */ + return 0; +} diff --git a/src/regress/sys/kern/signal/cansig/obj b/src/regress/sys/kern/signal/cansig/obj new file mode 120000 index 000000000..302ece03c --- /dev/null +++ b/src/regress/sys/kern/signal/cansig/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/signal/cansig \ No newline at end of file diff --git a/src/regress/sys/kern/signal/earlysig/CVS/Entries b/src/regress/sys/kern/signal/earlysig/CVS/Entries new file mode 100644 index 000000000..6eed01809 --- /dev/null +++ b/src/regress/sys/kern/signal/earlysig/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Aug 8 18:53:36 2005// +/earlysig.c/1.2/Wed Aug 1 21:32:53 2007// +D diff --git a/src/regress/sys/kern/signal/earlysig/CVS/Repository b/src/regress/sys/kern/signal/earlysig/CVS/Repository new file mode 100644 index 000000000..a2413c75a --- /dev/null +++ b/src/regress/sys/kern/signal/earlysig/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/signal/earlysig diff --git a/src/regress/sys/kern/signal/earlysig/CVS/Root b/src/regress/sys/kern/signal/earlysig/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/signal/earlysig/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/signal/earlysig/Makefile b/src/regress/sys/kern/signal/earlysig/Makefile new file mode 100644 index 000000000..e9396582b --- /dev/null +++ b/src/regress/sys/kern/signal/earlysig/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2005/08/08 18:53:36 otto Exp $ + +PROG=earlysig + +.include diff --git a/src/regress/sys/kern/signal/earlysig/earlysig.c b/src/regress/sys/kern/signal/earlysig/earlysig.c new file mode 100644 index 000000000..6bbadf5f3 --- /dev/null +++ b/src/regress/sys/kern/signal/earlysig/earlysig.c @@ -0,0 +1,49 @@ +/* $OpenBSD: earlysig.c,v 1.2 2007/08/01 21:32:53 miod Exp $ */ + +/* + * Public domain. 2005, Otto Moerbeek + * + * Try to create the case where a signal is delivered to a process before + * fork() returns. + */ + +#include +#include + +#include +#include +#include +#include +#include + +void dohup(int signo) +{ +} + +int +main() +{ + pid_t pid; + int status; + + signal(SIGHUP, dohup); + + switch(pid = fork()) { + case -1: + err(1, "fork"); + break; + case 0: + sleep(2); + exit(0); + default: + kill(pid, SIGHUP); + sleep(1); + if (waitpid(pid, &status, 0) == -1) + err(1, "waitpid"); + if (WIFEXITED(status) && WEXITSTATUS(status) == 0) + exit(0); + else + errx(1, "child exited with status %d", + WEXITSTATUS(status)); + } +} diff --git a/src/regress/sys/kern/signal/earlysig/obj b/src/regress/sys/kern/signal/earlysig/obj new file mode 120000 index 000000000..3ee837ef2 --- /dev/null +++ b/src/regress/sys/kern/signal/earlysig/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/signal/earlysig \ No newline at end of file diff --git a/src/regress/sys/kern/signal/fpsig/CVS/Entries b/src/regress/sys/kern/signal/fpsig/CVS/Entries new file mode 100644 index 000000000..22f94139c --- /dev/null +++ b/src/regress/sys/kern/signal/fpsig/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Jul 13 14:53:54 2005// +/fpsig.c/1.2/Fri Jul 15 07:28:33 2005// +D diff --git a/src/regress/sys/kern/signal/fpsig/CVS/Repository b/src/regress/sys/kern/signal/fpsig/CVS/Repository new file mode 100644 index 000000000..644d836e6 --- /dev/null +++ b/src/regress/sys/kern/signal/fpsig/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/signal/fpsig diff --git a/src/regress/sys/kern/signal/fpsig/CVS/Root b/src/regress/sys/kern/signal/fpsig/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/signal/fpsig/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/signal/fpsig/Makefile b/src/regress/sys/kern/signal/fpsig/Makefile new file mode 100644 index 000000000..613b8d948 --- /dev/null +++ b/src/regress/sys/kern/signal/fpsig/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2005/07/13 14:53:54 otto Exp $ + +PROG=fpsig + +.include diff --git a/src/regress/sys/kern/signal/fpsig/fpsig.c b/src/regress/sys/kern/signal/fpsig/fpsig.c new file mode 100644 index 000000000..ae4e368e0 --- /dev/null +++ b/src/regress/sys/kern/signal/fpsig/fpsig.c @@ -0,0 +1,54 @@ +/* $OpenBSD: fpsig.c,v 1.2 2005/07/15 07:28:33 otto Exp $ */ + +/* + * Public domain. 2005, Otto Moerbeek + * + * Try to check if fp registers are properly saved and restored while + * calling a signal hander. This is not supposed to catch all that + * can go wrong, but trashed fp registers will typically get caught. + */ + +#include +#include +#include + +#define LIMIT 10.0 + +volatile sig_atomic_t count; + +volatile double g1; +volatile double g2; + +void +handler(int signo) +{ + double a, b, c = 0.0; + + if (signo) + alarm(1); + for (a = 0.0; a < LIMIT; a++) + for (b = 0.0; b < LIMIT; b++) + c += a * a + b * b; + + if (signo) { + g1 = c; + count++; + } else + g2 = c; +} + +int +main() +{ + signal(SIGALRM, handler); + /* initialize global vars */ + handler(0); + handler(1); + + while (count < 10) { + handler(0); + if (g1 != g2) + errx(1, "%f %f", g1, g2); + } + return (0); +} diff --git a/src/regress/sys/kern/signal/fpsig/obj b/src/regress/sys/kern/signal/fpsig/obj new file mode 120000 index 000000000..7e9caed1b --- /dev/null +++ b/src/regress/sys/kern/signal/fpsig/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/signal/fpsig \ No newline at end of file diff --git a/src/regress/sys/kern/signal/sigfpe/CVS/Entries b/src/regress/sys/kern/signal/sigfpe/CVS/Entries new file mode 100644 index 000000000..ec293cd4d --- /dev/null +++ b/src/regress/sys/kern/signal/sigfpe/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Mon Sep 2 20:01:44 2002// +/sigfpe.c/1.4/Sun Jun 27 18:30:04 2010// +D diff --git a/src/regress/sys/kern/signal/sigfpe/CVS/Repository b/src/regress/sys/kern/signal/sigfpe/CVS/Repository new file mode 100644 index 000000000..0ead3bcdb --- /dev/null +++ b/src/regress/sys/kern/signal/sigfpe/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/signal/sigfpe diff --git a/src/regress/sys/kern/signal/sigfpe/CVS/Root b/src/regress/sys/kern/signal/sigfpe/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/signal/sigfpe/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/signal/sigfpe/Makefile b/src/regress/sys/kern/signal/sigfpe/Makefile new file mode 100644 index 000000000..8a21482ea --- /dev/null +++ b/src/regress/sys/kern/signal/sigfpe/Makefile @@ -0,0 +1,16 @@ +# $OpenBSD: Makefile,v 1.3 2002/09/02 20:01:44 avsm Exp $ + +PROG= sigfpe + +# XXX - don't want the compiler to optimize away our tests +CFLAGS= -O0 ${PIPE} ${DEBUG} + +REGRESS_TARGETS= divzero oflow + +divzero: ${PROG} + ./${PROG} -z + +oflow: ${PROG} + ./${PROG} -o + +.include diff --git a/src/regress/sys/kern/signal/sigfpe/obj b/src/regress/sys/kern/signal/sigfpe/obj new file mode 120000 index 000000000..9c176d397 --- /dev/null +++ b/src/regress/sys/kern/signal/sigfpe/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/signal/sigfpe \ No newline at end of file diff --git a/src/regress/sys/kern/signal/sigfpe/sigfpe.c b/src/regress/sys/kern/signal/sigfpe/sigfpe.c new file mode 100644 index 000000000..3c3f499c3 --- /dev/null +++ b/src/regress/sys/kern/signal/sigfpe/sigfpe.c @@ -0,0 +1,92 @@ +/* Placed in the public domain by Todd C. Miller on April 30, 2002 */ + +#include +#include +#include +#include + +void check_oflow(void); +void check_div0(int); +void timedout(int); +void div0_handler(int); +__dead void usage(void); + +/* + * Check signal(SIGFPE, SIG_IGN) for overflow and divide by zero. + */ +int +main(int argc, char **argv) +{ + int ch, oflag, zflag; + + oflag = zflag = 0; + while ((ch = getopt(argc, argv, "oz")) != -1) { + switch (ch) { + case 'o': + oflag = 1; + break; + case 'z': + zflag = 1; + break; + } + } + + if (oflag && zflag) + usage(); + + signal(SIGFPE, div0_handler); + signal(SIGALRM, timedout); + + if (oflag) + check_oflow(); + else + check_div0(0); + + exit(0); +} + +void +check_oflow(void) +{ + double d, od; + + od = 0; + d = 256; + do { + od = d; + alarm(10); + d *= d; + alarm(0); + } while (d != od); +} + +void +check_div0(int zero) +{ + int i; + + alarm(10); + i = 1 / zero; + alarm(0); +} + +void +timedout(int sig) +{ + _exit(1); +} + +void +div0_handler(int sig) +{ + _exit(0); +} + +__dead void +usage(void) +{ + extern char *__progname; + + (void)fprintf(stderr, "usage: %s -o | -z\n", __progname); + exit(1); +} diff --git a/src/regress/sys/kern/signal/siginfo_addr/CVS/Entries b/src/regress/sys/kern/signal/siginfo_addr/CVS/Entries new file mode 100644 index 000000000..e1e985505 --- /dev/null +++ b/src/regress/sys/kern/signal/siginfo_addr/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Feb 23 19:15:41 2002// +/siginfo_addr.c/1.4/Sat Aug 2 01:24:37 2003// +D diff --git a/src/regress/sys/kern/signal/siginfo_addr/CVS/Repository b/src/regress/sys/kern/signal/siginfo_addr/CVS/Repository new file mode 100644 index 000000000..98cf41ef5 --- /dev/null +++ b/src/regress/sys/kern/signal/siginfo_addr/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/signal/siginfo_addr diff --git a/src/regress/sys/kern/signal/siginfo_addr/CVS/Root b/src/regress/sys/kern/signal/siginfo_addr/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/signal/siginfo_addr/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/signal/siginfo_addr/Makefile b/src/regress/sys/kern/signal/siginfo_addr/Makefile new file mode 100644 index 000000000..e66bfde4b --- /dev/null +++ b/src/regress/sys/kern/signal/siginfo_addr/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/23 19:15:41 deraadt Exp $ + +PROG= siginfo_addr + +.include diff --git a/src/regress/sys/kern/signal/siginfo_addr/obj b/src/regress/sys/kern/signal/siginfo_addr/obj new file mode 120000 index 000000000..febe20ea5 --- /dev/null +++ b/src/regress/sys/kern/signal/siginfo_addr/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/signal/siginfo_addr \ No newline at end of file diff --git a/src/regress/sys/kern/signal/siginfo_addr/siginfo_addr.c b/src/regress/sys/kern/signal/siginfo_addr/siginfo_addr.c new file mode 100644 index 000000000..473d22cb0 --- /dev/null +++ b/src/regress/sys/kern/signal/siginfo_addr/siginfo_addr.c @@ -0,0 +1,40 @@ +#include +#include +#include +#include +#include +#include + +#define FAULTADDR 0x123123 + +static void +handler(int sig, siginfo_t *sip, void *scp) +{ + char buf[1024]; + + if (sip == NULL) + _exit(1); + if (sip->si_addr == 0) /* wrong address */ + _exit(1); + + // snprintf(buf, sizeof buf, "addr %p\n", sip->si_addr); + // write(STDOUT_FILENO, buf, strlen(buf)); + _exit(0); +} + + +int +main(int argc, char *argv[]) +{ + struct sigaction sa; + + memset(&sa, 0, sizeof sa); + sigfillset(&sa.sa_mask); + sa.sa_sigaction = handler; + sa.sa_flags = SA_SIGINFO; + + sigaction(SIGSEGV, &sa, NULL); + sigaction(SIGBUS, &sa, NULL); + + *(char *)FAULTADDR = 0; +} diff --git a/src/regress/sys/kern/sigsuspend/CVS/Entries b/src/regress/sys/kern/sigsuspend/CVS/Entries new file mode 100644 index 000000000..3cb6c944e --- /dev/null +++ b/src/regress/sys/kern/sigsuspend/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue May 31 09:27:28 2005// +/sigsuspend.c/1.2/Sun Jun 27 18:30:05 2010// +D diff --git a/src/regress/sys/kern/sigsuspend/CVS/Repository b/src/regress/sys/kern/sigsuspend/CVS/Repository new file mode 100644 index 000000000..8025510fa --- /dev/null +++ b/src/regress/sys/kern/sigsuspend/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/sigsuspend diff --git a/src/regress/sys/kern/sigsuspend/CVS/Root b/src/regress/sys/kern/sigsuspend/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/sigsuspend/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/sigsuspend/Makefile b/src/regress/sys/kern/sigsuspend/Makefile new file mode 100644 index 000000000..cb8bcf903 --- /dev/null +++ b/src/regress/sys/kern/sigsuspend/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2005/05/31 09:27:28 art Exp $ + +PROG= sigsuspend + +.include diff --git a/src/regress/sys/kern/sigsuspend/obj b/src/regress/sys/kern/sigsuspend/obj new file mode 120000 index 000000000..ddf1ede3c --- /dev/null +++ b/src/regress/sys/kern/sigsuspend/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/sigsuspend \ No newline at end of file diff --git a/src/regress/sys/kern/sigsuspend/sigsuspend.c b/src/regress/sys/kern/sigsuspend/sigsuspend.c new file mode 100644 index 000000000..d32de5047 --- /dev/null +++ b/src/regress/sys/kern/sigsuspend/sigsuspend.c @@ -0,0 +1,129 @@ +/* $OpenBSD: sigsuspend.c,v 1.2 2010/06/20 17:57:09 phessler Exp $ */ +/* + * Written by Artur Grabowski 2005, Public domain. + */ + +#include +#include +#include +#include +#include +#include +#include + +sig_atomic_t gotusr1; +sig_atomic_t gotusr2; + +void +usr1handler(int signo) +{ + gotusr1 = 1; +} + +void +usr2handler(int signo) +{ + gotusr2 = 1; +} + +int +main() +{ + sigset_t set, oset; + struct sigaction sa; + pid_t pid, ppid; + int status; + + ppid = getpid(); + + memset(&sa, 0, sizeof(sa)); + sigemptyset(&sa.sa_mask); + sa.sa_handler = usr1handler; + if (sigaction(SIGUSR1, &sa, NULL)) + err(1, "sigaction(USR1)"); + + sa.sa_handler = usr2handler; + if (sigaction(SIGUSR2, &sa, NULL)) + err(1, "sigaction(USR2)"); + + /* + * Set the procmask to mask the early USR1 the child will send us. + */ + sigemptyset(&set); + sigaddset(&set, SIGUSR1); + sigaddset(&set, SIGUSR2); + if (sigprocmask(SIG_BLOCK, &set, &oset)) + err(1, "sigprocmask"); + + switch((pid = fork())) { + case 0: + /* + * In the child. + */ + + kill(ppid, SIGUSR1); /* Tell the parent we're ready. */ + + sigemptyset(&set); + sigaddset(&set, SIGUSR2); + sigsuspend(&set); + + /* + * Check that sigsuspend didn't change the signal mask. + */ + if (sigprocmask(SIG_SETMASK, NULL, &oset)) + err(1, "sigprocmask"); + if (!sigismember(&oset, SIGUSR1) || + !sigismember(&oset, SIGUSR2)) + errx(1, "sigprocmask is bad"); + + /* Check that we got the sigusr1 that we expected. */ + if (!gotusr1) + errx(1, "didn't get usr1"); + if (gotusr2) + errx(1, "got incorrect usr2"); + + sigemptyset(&set); + sigaddset(&set, SIGUSR1); + sigsuspend(&set); + + if (!gotusr2) + errx(1, "didn't get usr2"); + + _exit(0); + case -1: + err(1, "fork"); + default: + /* + * In the parent. + * Waiting for the initial USR1 that tells us the child + * is ready. + */ + while (gotusr1 == 0) + sigsuspend(&oset); + + /* + * Check that sigsuspend didn't change the signal mask. + */ + if (sigprocmask(SIG_SETMASK, NULL, &oset)) + err(1, "sigprocmask"); + if (!sigismember(&oset, SIGUSR1) || + !sigismember(&oset, SIGUSR2)) + errx(1, "sigprocmask is bad"); + + /* + * Deliberately send USR2 first to confuse. + */ + kill(pid, SIGUSR2); + kill(pid, SIGUSR1); + + if (waitpid(pid, &status, 0) != pid) + err(1, "waitpid"); + + if (WIFEXITED(status)) + exit(WEXITSTATUS(status)); + exit(1); + } + /* NOTREACHED */ +} + + diff --git a/src/regress/sys/kern/syscall/CVS/Entries b/src/regress/sys/kern/syscall/CVS/Entries new file mode 100644 index 000000000..ecc64a220 --- /dev/null +++ b/src/regress/sys/kern/syscall/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Feb 8 21:33:32 2002// +/syscall.c/1.2/Thu Jul 31 21:48:10 2003// +D diff --git a/src/regress/sys/kern/syscall/CVS/Repository b/src/regress/sys/kern/syscall/CVS/Repository new file mode 100644 index 000000000..07d91261f --- /dev/null +++ b/src/regress/sys/kern/syscall/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/syscall diff --git a/src/regress/sys/kern/syscall/CVS/Root b/src/regress/sys/kern/syscall/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/syscall/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/syscall/Makefile b/src/regress/sys/kern/syscall/Makefile new file mode 100644 index 000000000..1b22f581d --- /dev/null +++ b/src/regress/sys/kern/syscall/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/08 21:33:32 art Exp $ + +PROG= syscall + +.include diff --git a/src/regress/sys/kern/syscall/obj b/src/regress/sys/kern/syscall/obj new file mode 120000 index 000000000..1623c4c02 --- /dev/null +++ b/src/regress/sys/kern/syscall/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/syscall \ No newline at end of file diff --git a/src/regress/sys/kern/syscall/syscall.c b/src/regress/sys/kern/syscall/syscall.c new file mode 100644 index 000000000..9198e5e2e --- /dev/null +++ b/src/regress/sys/kern/syscall/syscall.c @@ -0,0 +1,35 @@ +/* $OpenBSD: syscall.c,v 1.2 2003/07/31 21:48:10 deraadt Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + int status; + + switch(fork()) { + case -1: + err(1, "fork"); + case 0: + syscall(SYS_exit, 17); + abort(); + } + + if (wait(&status) < 0) + err(1, "wait"); + + if (!WIFEXITED(status)) + errx(1, "child didn't exit gracefully"); + + if (WEXITSTATUS(status) != 17) + errx(1, "wrong exit status"); + + return 0; +} diff --git a/src/regress/sys/kern/sysvmsg/CVS/Entries b/src/regress/sys/kern/sysvmsg/CVS/Entries new file mode 100644 index 000000000..f9ebe6f86 --- /dev/null +++ b/src/regress/sys/kern/sysvmsg/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Feb 16 13:58:18 2002// +/msgtest.c/1.6/Thu Jun 26 05:42:06 2008// +D diff --git a/src/regress/sys/kern/sysvmsg/CVS/Repository b/src/regress/sys/kern/sysvmsg/CVS/Repository new file mode 100644 index 000000000..19470d60a --- /dev/null +++ b/src/regress/sys/kern/sysvmsg/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/sysvmsg diff --git a/src/regress/sys/kern/sysvmsg/CVS/Root b/src/regress/sys/kern/sysvmsg/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/sysvmsg/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/sysvmsg/Makefile b/src/regress/sys/kern/sysvmsg/Makefile new file mode 100644 index 000000000..e73368b4f --- /dev/null +++ b/src/regress/sys/kern/sysvmsg/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/16 13:58:18 art Exp $ + +PROG=msgtest + +.include diff --git a/src/regress/sys/kern/sysvmsg/msgtest.c b/src/regress/sys/kern/sysvmsg/msgtest.c new file mode 100644 index 000000000..f95bd4cea --- /dev/null +++ b/src/regress/sys/kern/sysvmsg/msgtest.c @@ -0,0 +1,356 @@ +/* $OpenBSD: msgtest.c,v 1.6 2008/06/26 05:42:06 ray Exp $ */ +/* $NetBSD: msgtest.c,v 1.6 2001/02/19 22:44:41 cgd Exp $ */ + +/*- + * Copyright (c) 1999 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, + * NASA Ames Research Center. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Test the SVID-compatible Message Queue facility. + */ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +int main(int, char *[]); +void print_msqid_ds(struct msqid_ds *, mode_t); +void sigsys_handler(int); +void sigchld_handler(int); +void cleanup(void); +void receiver(void); + +#define MESSAGE_TEXT_LEN 256 + +struct thismsg { + long mtype; + char mtext[MESSAGE_TEXT_LEN]; +}; + +const char *m1_str = "California is overrated."; +const char *m2_str = "The quick brown fox jumped over the lazy dog."; + +#define MTYPE_1 1 +#define MTYPE_1_ACK 2 + +#define MTYPE_2 3 +#define MTYPE_2_ACK 4 + +int sender_msqid = -1; +pid_t child_pid; + +key_t msgkey; + +char keyname[] = "/tmp/msgtestXXXXXXXX"; + +int verbose; + +int +main(int argc, char **argv) +{ + struct sigaction sa; + struct msqid_ds m_ds; + struct thismsg m; + sigset_t sigmask; + int fd, ch; + + if ((fd = mkstemp(keyname)) < 0) + err(1, "mkstemp"); + + close(fd); + + while ((ch = getopt(argc, argv, "v")) != -1) { + switch (ch) { + case 'v': + verbose = 1; + break; + default: + fprintf(stderr, "Usage: msgtest [-v]\n"); + exit(1); + } + } + + /* + * Install a SIGSYS handler so that we can exit gracefully if + * System V Message Queue support isn't in the kernel. + */ + sa.sa_handler = sigsys_handler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + if (sigaction(SIGSYS, &sa, NULL) == -1) + err(1, "sigaction SIGSYS"); + + /* + * Install and SIGCHLD handler to deal with all possible exit + * conditions of the receiver. + */ + sa.sa_handler = sigchld_handler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + if (sigaction(SIGCHLD, &sa, NULL) == -1) + err(1, "sigaction SIGCHLD"); + + msgkey = ftok(keyname, 4160); + + /* + * Initialize child_pid to ourselves to that the cleanup function + * works before we create the receiver. + */ + child_pid = getpid(); + + /* + * Make sure that when the sender exits, the message queue is + * removed. + */ + if (atexit(cleanup) == -1) + err(1, "atexit"); + + if ((sender_msqid = msgget(msgkey, IPC_CREAT | 0640)) == -1) + err(1, "msgget"); + + if (msgctl(sender_msqid, IPC_STAT, &m_ds) == -1) + err(1, "msgctl IPC_STAT"); + + if (verbose) + print_msqid_ds(&m_ds, 0640); + + m_ds.msg_perm.mode = (m_ds.msg_perm.mode & ~0777) | 0600; + + if (msgctl(sender_msqid, IPC_SET, &m_ds) == -1) + err(1, "msgctl IPC_SET"); + + memset(&m_ds, 0, sizeof(m_ds)); + + if (msgctl(sender_msqid, IPC_STAT, &m_ds) == -1) + err(1, "msgctl IPC_STAT"); + + if ((m_ds.msg_perm.mode & 0777) != 0600) + err(1, "IPC_SET of mode didn't hold"); + + if (verbose) + print_msqid_ds(&m_ds, 0600); + + switch ((child_pid = fork())) { + case -1: + err(1, "fork"); + /* NOTREACHED */ + + case 0: + receiver(); + break; + + default: + break; + } + + /* + * Send the first message to the receiver and wait for the ACK. + */ + m.mtype = MTYPE_1; + strlcpy(m.mtext, m1_str, sizeof m.mtext); + if (msgsnd(sender_msqid, &m, sizeof(m), 0) == -1) + err(1, "sender: msgsnd 1"); + + if (msgrcv(sender_msqid, &m, sizeof(m), MTYPE_1_ACK, 0) != sizeof(m)) + err(1, "sender: msgrcv 1 ack"); + + if (verbose) + print_msqid_ds(&m_ds, 0600); + + /* + * Send the second message to the receiver and wait for the ACK. + */ + m.mtype = MTYPE_2; + strlcpy(m.mtext, m2_str, sizeof m.mtext); + if (msgsnd(sender_msqid, &m, sizeof(m), 0) == -1) + err(1, "sender: msgsnd 2"); + + if (msgrcv(sender_msqid, &m, sizeof(m), MTYPE_2_ACK, 0) != sizeof(m)) + err(1, "sender: msgrcv 2 ack"); + + /* + * Suspend forever; when we get SIGCHLD, the handler will exit. + */ + sigemptyset(&sigmask); + (void) sigsuspend(&sigmask); + + /* + * ...and any other signal is an unexpected error. + */ + errx(1, "sender: received unexpected signal"); +} + +void +sigsys_handler(signo) + int signo; +{ + + errx(1, "System V Message Queue support is not present in the kernel"); +} + +void +sigchld_handler(signo) + int signo; +{ + struct msqid_ds m_ds; + int cstatus; + + /* + * Reap the child; if it exited successfully, then the test passed! + */ + if (waitpid(child_pid, &cstatus, 0) != child_pid) + err(1, "waitpid"); + + if (WIFEXITED(cstatus) == 0) + errx(1, "receiver exited abnormally"); + + if (WEXITSTATUS(cstatus) != 0) + errx(1, "receiver exited with status %d", + WEXITSTATUS(cstatus)); + + /* + * If we get here, the child has exited normally, and thus + * we should exit normally too. First, tho, we print out + * the final stats for the message queue. + */ + + if (msgctl(sender_msqid, IPC_STAT, &m_ds) == -1) + err(1, "msgctl IPC_STAT"); + + if (verbose) + print_msqid_ds(&m_ds, 0600); + + exit(0); +} + +void +cleanup() +{ + + /* + * If we're the sender, and it exists, remove the message queue. + */ + if (child_pid != 0 && sender_msqid != -1) { + if (msgctl(sender_msqid, IPC_RMID, NULL) == -1) + warn("msgctl IPC_RMID"); + } + + remove(keyname); +} + +void +print_msqid_ds(mp, mode) + struct msqid_ds *mp; + mode_t mode; +{ + uid_t uid = geteuid(); + gid_t gid = getegid(); + + printf("PERM: uid %u, gid %u, cuid %u, cgid %u, mode 0%o\n", + mp->msg_perm.uid, mp->msg_perm.gid, + mp->msg_perm.cuid, mp->msg_perm.cgid, + mp->msg_perm.mode & 0777); + + printf("qnum %lu, qbytes %lu, lspid %d, lrpid %d\n", + mp->msg_qnum, (u_long)mp->msg_qbytes, mp->msg_lspid, + mp->msg_lrpid); + + printf("stime: %s", ctime(&mp->msg_stime)); + printf("rtime: %s", ctime(&mp->msg_rtime)); + printf("ctime: %s", ctime(&mp->msg_ctime)); + + /* + * Sanity check a few things. + */ + + if (mp->msg_perm.uid != uid || mp->msg_perm.cuid != uid) + errx(1, "uid mismatch"); + + if (mp->msg_perm.gid != gid || mp->msg_perm.cgid != gid) + errx(1, "gid mismatch"); + + if ((mp->msg_perm.mode & 0777) != mode) + errx(1, "mode mismatch"); +} + +void +receiver() +{ + struct thismsg m; + int msqid; + + if ((msqid = msgget(msgkey, 0)) == -1) + err(1, "receiver: msgget"); + + /* + * Receive the first message, print it, and send an ACK. + */ + + if (msgrcv(msqid, &m, sizeof(m), MTYPE_1, 0) != sizeof(m)) + err(1, "receiver: msgrcv 1"); + + if (verbose) + printf("%s\n", m.mtext); + if (strcmp(m.mtext, m1_str) != 0) + err(1, "receiver: message 1 data isn't correct"); + + m.mtype = MTYPE_1_ACK; + + if (msgsnd(msqid, &m, sizeof(m), 0) == -1) + err(1, "receiver: msgsnd ack 1"); + + /* + * Receive the second message, print it, and send an ACK. + */ + + if (msgrcv(msqid, &m, sizeof(m), MTYPE_2, 0) != sizeof(m)) + err(1, "receiver: msgrcv 2"); + + if (verbose) + printf("%s\n", m.mtext); + if (strcmp(m.mtext, m2_str) != 0) + err(1, "receiver: message 2 data isn't correct"); + + m.mtype = MTYPE_2_ACK; + + if (msgsnd(msqid, &m, sizeof(m), 0) == -1) + err(1, "receiver: msgsnd ack 2"); + + exit(0); +} diff --git a/src/regress/sys/kern/sysvmsg/obj b/src/regress/sys/kern/sysvmsg/obj new file mode 120000 index 000000000..430568629 --- /dev/null +++ b/src/regress/sys/kern/sysvmsg/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/sysvmsg \ No newline at end of file diff --git a/src/regress/sys/kern/sysvsem/CVS/Entries b/src/regress/sys/kern/sysvsem/CVS/Entries new file mode 100644 index 000000000..76823771c --- /dev/null +++ b/src/regress/sys/kern/sysvsem/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Feb 16 14:24:07 2002// +/semtest.c/1.6/Thu Jun 26 05:42:06 2008// +D diff --git a/src/regress/sys/kern/sysvsem/CVS/Repository b/src/regress/sys/kern/sysvsem/CVS/Repository new file mode 100644 index 000000000..ab5391229 --- /dev/null +++ b/src/regress/sys/kern/sysvsem/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/sysvsem diff --git a/src/regress/sys/kern/sysvsem/CVS/Root b/src/regress/sys/kern/sysvsem/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/sysvsem/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/sysvsem/Makefile b/src/regress/sys/kern/sysvsem/Makefile new file mode 100644 index 000000000..1cf5c9cc0 --- /dev/null +++ b/src/regress/sys/kern/sysvsem/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/16 14:24:07 art Exp $ + +PROG=semtest + +.include diff --git a/src/regress/sys/kern/sysvsem/obj b/src/regress/sys/kern/sysvsem/obj new file mode 120000 index 000000000..69b1f1ab5 --- /dev/null +++ b/src/regress/sys/kern/sysvsem/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/sysvsem \ No newline at end of file diff --git a/src/regress/sys/kern/sysvsem/semtest.c b/src/regress/sys/kern/sysvsem/semtest.c new file mode 100644 index 000000000..807569c01 --- /dev/null +++ b/src/regress/sys/kern/sysvsem/semtest.c @@ -0,0 +1,355 @@ +/* $NetBSD: semtest.c,v 1.3 2001/02/19 22:44:41 cgd Exp $ */ + +/*- + * Copyright (c) 1999 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, + * NASA Ames Research Center. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Test the SVID-compatible Semaphore facility. + */ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int main(int, char *[]); +void print_semid_ds(struct semid_ds *, mode_t); +void sigsys_handler(int); +void sigchld_handler(int); +void cleanup(void); +void waiter(void); + +int sender_semid = -1; +pid_t child_pid; +int child_count; +volatile sig_atomic_t signal_was_sigchld; + +key_t semkey; + +char keyname[] = "/tmp/msgtestXXXXXXXX"; + +int verbose; + +union mysemun { + int val; /* value for SETVAL */ + struct semid_ds *buf; /* buffer for IPC_{STAT,SET} */ + u_short *array; /* array for GETALL & SETALL */ +}; + +int +main(argc, argv) + int argc; + char *argv[]; +{ + struct sigaction sa; + union mysemun sun; + struct semid_ds s_ds; + sigset_t sigmask; + int i; + + int fd, ch; + + if ((fd = mkstemp(keyname)) < 0) + err(1, "mkstemp"); + + close(fd); + + while ((ch = getopt(argc, argv, "v")) != -1) { + switch (ch) { + case 'v': + verbose = 1; + break; + default: + fprintf(stderr, "Usage: semtest [-v]\n"); + exit(1); + } + } + + /* + * Install a SIGSYS handler so that we can exit gracefully if + * System V Semaphore support isn't in the kernel. + */ + sa.sa_handler = sigsys_handler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + if (sigaction(SIGSYS, &sa, NULL) == -1) + err(1, "sigaction SIGSYS"); + + /* + * Install and SIGCHLD handler to deal with all possible exit + * conditions of the receiver. + */ + sa.sa_handler = sigchld_handler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + if (sigaction(SIGCHLD, &sa, NULL) == -1) + err(1, "sigaction SIGCHLD"); + + semkey = ftok(keyname, arc4random() & INT_MAX); + + /* + * Initialize child_pid to ourselves to that the cleanup function + * works before we create the receiver. + */ + child_pid = getpid(); + + /* + * Make sure that when the sender exits, the message queue is + * removed. + */ + if (atexit(cleanup) == -1) + err(1, "atexit"); + + sender_semid = semget(semkey, 1, IPC_CREAT | IPC_EXCL | 0640); + if (sender_semid == -1) + err(1, "semget"); + + + sun.buf = &s_ds; + if (semctl(sender_semid, 0, IPC_STAT, sun) == -1) + err(1, "semctl IPC_STAT"); + + if (verbose) + print_semid_ds(&s_ds, 0640); + + s_ds.sem_perm.mode = (s_ds.sem_perm.mode & ~0777) | 0600; + + sun.buf = &s_ds; + if (semctl(sender_semid, 0, IPC_SET, sun) == -1) + err(1, "semctl IPC_SET"); + + memset(&s_ds, 0, sizeof(s_ds)); + + sun.buf = &s_ds; + if (semctl(sender_semid, 0, IPC_STAT, sun) == -1) + err(1, "semctl IPC_STAT"); + + if ((s_ds.sem_perm.mode & 0777) != 0600) + err(1, "IPC_SET of mode didn't hold"); + + if (verbose) + print_semid_ds(&s_ds, 0600); + + for (child_count = 0; child_count < 5; child_count++) { + switch ((child_pid = fork())) { + case -1: + err(1, "fork"); + /* NOTREACHED */ + + case 0: + waiter(); + break; + + default: + break; + } + } + + /* + * Wait for all of the waiters to be attempting to acquire the + * semaphore. + */ + for (;;) { + i = semctl(sender_semid, 0, GETNCNT); + if (i == -1) + err(1, "semctl GETNCNT"); + if (i == 5) + break; + } + + /* + * Now set the thundering herd in motion by initializing the + * semaphore to the value 1. + */ + sun.val = 1; + if (semctl(sender_semid, 0, SETVAL, sun) == -1) + err(1, "sender: semctl SETVAL to 1"); + + /* + * Suspend forever; when we get SIGCHLD, the handler will exit. + */ + sigemptyset(&sigmask); + for (;;) { + (void) sigsuspend(&sigmask); + if (signal_was_sigchld) + signal_was_sigchld = 0; + else + break; + } + + /* + * ...and any other signal is an unexpected error. + */ + errx(1, "sender: received unexpected signal"); +} + +void +sigsys_handler(signo) + int signo; +{ + + errx(1, "System V Semaphore support is not present in the kernel"); +} + +void +sigchld_handler(signo) + int signo; +{ + union mysemun sun; + struct semid_ds s_ds; + int cstatus; + + /* + * Reap the child; if it exited successfully, then we're on the + * right track! + */ + if (wait(&cstatus) == -1) + err(1, "wait"); + + if (WIFEXITED(cstatus) == 0) + errx(1, "receiver exited abnormally"); + + if (WEXITSTATUS(cstatus) != 0) + errx(1, "receiver exited with status %d", + WEXITSTATUS(cstatus)); + + /* + * If we get here, the child has exited normally, and we should + * decrement the child count. If the child_count reaches 0, we + * should exit. + */ + + sun.buf = &s_ds; + if (semctl(sender_semid, 0, IPC_STAT, sun) == -1) + err(1, "semctl IPC_STAT"); + + if (verbose) + print_semid_ds(&s_ds, 0600); + + if (--child_count != 0) { + signal_was_sigchld = 1; + return; + } + + exit(0); +} + +void +cleanup() +{ + + /* + * If we're the sender, and it exists, remove the message queue. + */ + if (child_pid != 0 && sender_semid != -1) { + if (semctl(sender_semid, 0, IPC_RMID) == -1) + warn("semctl IPC_RMID"); + } + remove(keyname); +} + +void +print_semid_ds(sp, mode) + struct semid_ds *sp; + mode_t mode; +{ + uid_t uid = geteuid(); + gid_t gid = getegid(); + + printf("PERM: uid %u, gid %u, cuid %u, cgid %u, mode 0%o\n", + sp->sem_perm.uid, sp->sem_perm.gid, + sp->sem_perm.cuid, sp->sem_perm.cgid, + sp->sem_perm.mode & 0777); + + printf("nsems %u\n", sp->sem_nsems); + + printf("otime: %s", ctime(&sp->sem_otime)); + printf("ctime: %s", ctime(&sp->sem_ctime)); + + /* + * Sanity check a few things. + */ + + if (sp->sem_perm.uid != uid || sp->sem_perm.cuid != uid) + errx(1, "uid mismatch"); + + if (sp->sem_perm.gid != gid || sp->sem_perm.cgid != gid) + errx(1, "gid mismatch"); + + if ((sp->sem_perm.mode & 0777) != mode) + errx(1, "mode mismatch %o != %o", + (sp->sem_perm.mode & 0777), mode); +} + +void +waiter() +{ + struct sembuf s; + int semid; + + if ((semid = semget(semkey, 1, 0)) == -1) + err(1, "waiter: semget"); + + /* + * Attempt to acquire the semaphore. + */ + s.sem_num = 0; + s.sem_op = -1; + s.sem_flg = SEM_UNDO; + + if (semop(semid, &s, 1) == -1) + err(1, "waiter: semop -1"); + + if (verbose) + printf("WOO! GOT THE SEMAPHORE!\n"); + sleep(1); + + /* + * Release the semaphore and exit. + */ + s.sem_num = 0; + s.sem_op = 1; + s.sem_flg = SEM_UNDO; + + if (semop(semid, &s, 1) == -1) + err(1, "waiter: semop +1"); + + exit(0); +} diff --git a/src/regress/sys/kern/sysvshm/CVS/Entries b/src/regress/sys/kern/sysvshm/CVS/Entries new file mode 100644 index 000000000..c32d59e08 --- /dev/null +++ b/src/regress/sys/kern/sysvshm/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Feb 16 14:34:54 2002// +/shmtest.c/1.6/Thu Jun 26 05:42:06 2008// +D diff --git a/src/regress/sys/kern/sysvshm/CVS/Repository b/src/regress/sys/kern/sysvshm/CVS/Repository new file mode 100644 index 000000000..59296216b --- /dev/null +++ b/src/regress/sys/kern/sysvshm/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/sysvshm diff --git a/src/regress/sys/kern/sysvshm/CVS/Root b/src/regress/sys/kern/sysvshm/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/sysvshm/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/sysvshm/Makefile b/src/regress/sys/kern/sysvshm/Makefile new file mode 100644 index 000000000..53ad9fd32 --- /dev/null +++ b/src/regress/sys/kern/sysvshm/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/02/16 14:34:54 art Exp $ + +PROG=shmtest + +.include diff --git a/src/regress/sys/kern/sysvshm/obj b/src/regress/sys/kern/sysvshm/obj new file mode 120000 index 000000000..c76f14650 --- /dev/null +++ b/src/regress/sys/kern/sysvshm/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/sysvshm \ No newline at end of file diff --git a/src/regress/sys/kern/sysvshm/shmtest.c b/src/regress/sys/kern/sysvshm/shmtest.c new file mode 100644 index 000000000..230fc87c8 --- /dev/null +++ b/src/regress/sys/kern/sysvshm/shmtest.c @@ -0,0 +1,304 @@ +/* $NetBSD: shmtest.c,v 1.2 2001/02/19 22:44:41 cgd Exp $ */ + +/*- + * Copyright (c) 1999 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, + * NASA Ames Research Center. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Test the SVID-compatible Shared Memory facility. + */ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +int main(int, char *[]); +void print_shmid_ds(struct shmid_ds *, mode_t); +void sigsys_handler(int); +void sigchld_handler(int); +void cleanup(void); +void receiver(void); + +const char *m_str = "The quick brown fox jumped over the lazy dog."; + +int sender_shmid = -1; +pid_t child_pid; + +key_t shmkey; + +char keyname[] = "/tmp/msgtestXXXXXXXX"; + +int verbose; + +size_t pgsize; + +int +main(argc, argv) + int argc; + char *argv[]; +{ + struct sigaction sa; + struct shmid_ds s_ds; + sigset_t sigmask; + char *shm_buf; + int fd, ch; + + if ((fd = mkstemp(keyname)) < 0) + err(1, "mkstemp"); + + close(fd); + + while ((ch = getopt(argc, argv, "v")) != -1) { + switch (ch) { + case 'v': + verbose = 1; + break; + default: + fprintf(stderr, "Usage: shmtest [-v]\n"); + exit(1); + } + } + + /* + * Install a SIGSYS handler so that we can exit gracefully if + * System V Shared Memory support isn't in the kernel. + */ + sa.sa_handler = sigsys_handler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + if (sigaction(SIGSYS, &sa, NULL) == -1) + err(1, "sigaction SIGSYS"); + + /* + * Install and SIGCHLD handler to deal with all possible exit + * conditions of the receiver. + */ + sa.sa_handler = sigchld_handler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + if (sigaction(SIGCHLD, &sa, NULL) == -1) + err(1, "sigaction SIGCHLD"); + + pgsize = sysconf(_SC_PAGESIZE); + + shmkey = ftok(argv[1], 4160); + + /* + * Initialize child_pid to ourselves to that the cleanup function + * works before we create the receiver. + */ + child_pid = getpid(); + + /* + * Make sure that when the sender exits, the message queue is + * removed. + */ + if (atexit(cleanup) == -1) + err(1, "atexit"); + + if ((sender_shmid = shmget(shmkey, pgsize, IPC_CREAT | 0640)) == -1) + err(1, "shmget"); + + if (shmctl(sender_shmid, IPC_STAT, &s_ds) == -1) + err(1, "shmctl IPC_STAT"); + + if (verbose) + print_shmid_ds(&s_ds, 0640); + + s_ds.shm_perm.mode = (s_ds.shm_perm.mode & ~0777) | 0600; + + if (shmctl(sender_shmid, IPC_SET, &s_ds) == -1) + err(1, "shmctl IPC_SET"); + + memset(&s_ds, 0, sizeof(s_ds)); + + if (shmctl(sender_shmid, IPC_STAT, &s_ds) == -1) + err(1, "shmctl IPC_STAT"); + + if ((s_ds.shm_perm.mode & 0777) != 0600) + err(1, "IPC_SET of mode didn't hold"); + + if (verbose) + print_shmid_ds(&s_ds, 0600); + + if ((shm_buf = shmat(sender_shmid, NULL, 0)) == (void *) -1) + err(1, "sender: shmat"); + + /* + * Write the test pattern into the shared memory buffer. + */ + strlcpy(shm_buf, m_str, pgsize); + + switch ((child_pid = fork())) { + case -1: + err(1, "fork"); + /* NOTREACHED */ + + case 0: + receiver(); + break; + + default: + break; + } + + /* + * Suspend forever; when we get SIGCHLD, the handler will exit. + */ + sigemptyset(&sigmask); + (void) sigsuspend(&sigmask); + + /* + * ...and any other signal is an unexpected error. + */ + errx(1, "sender: received unexpected signal"); +} + +void +sigsys_handler(signo) + int signo; +{ + + errx(1, "System V Shared Memory support is not present in the kernel"); +} + +void +sigchld_handler(signo) + int signo; +{ + struct shmid_ds s_ds; + int cstatus; + + /* + * Reap the child; if it exited successfully, then the test passed! + */ + if (waitpid(child_pid, &cstatus, 0) != child_pid) + err(1, "waitpid"); + + if (WIFEXITED(cstatus) == 0) + errx(1, "receiver exited abnormally"); + + if (WEXITSTATUS(cstatus) != 0) + errx(1, "receiver exited with status %d", + WEXITSTATUS(cstatus)); + + /* + * If we get here, the child has exited normally, and thus + * we should exit normally too. First, tho, we print out + * the final stats for the message queue. + */ + + if (shmctl(sender_shmid, IPC_STAT, &s_ds) == -1) + err(1, "shmctl IPC_STAT"); + + if (verbose) + print_shmid_ds(&s_ds, 0600); + + exit(0); +} + +void +cleanup() +{ + + /* + * If we're the sender, and it exists, remove the shared memory area. + */ + if (child_pid != 0 && sender_shmid != -1) { + if (shmctl(sender_shmid, IPC_RMID, NULL) == -1) + warn("shmctl IPC_RMID"); + } + + remove(keyname); +} + +void +print_shmid_ds(sp, mode) + struct shmid_ds *sp; + mode_t mode; +{ + uid_t uid = geteuid(); + gid_t gid = getegid(); + + printf("PERM: uid %u, gid %u, cuid %u, cgid %u, mode 0%o\n", + sp->shm_perm.uid, sp->shm_perm.gid, + sp->shm_perm.cuid, sp->shm_perm.cgid, + sp->shm_perm.mode & 0777); + + printf("segsz %lu, lpid %d, cpid %d, nattch %u\n", + (u_long)sp->shm_segsz, sp->shm_lpid, sp->shm_cpid, + sp->shm_nattch); + + printf("atime: %s", ctime(&sp->shm_atime)); + printf("dtime: %s", ctime(&sp->shm_dtime)); + printf("ctime: %s", ctime(&sp->shm_ctime)); + + /* + * Sanity check a few things. + */ + + if (sp->shm_perm.uid != uid || sp->shm_perm.cuid != uid) + errx(1, "uid mismatch"); + + if (sp->shm_perm.gid != gid || sp->shm_perm.cgid != gid) + errx(1, "gid mismatch"); + + if ((sp->shm_perm.mode & 0777) != mode) + errx(1, "mode mismatch"); +} + +void +receiver() +{ + int shmid; + void *shm_buf; + + if ((shmid = shmget(shmkey, pgsize, 0)) == -1) + err(1, "receiver: shmget"); + + if ((shm_buf = shmat(shmid, NULL, 0)) == (void *) -1) + err(1, "receiver: shmat"); + + if (verbose) + printf("%s\n", (const char *)shm_buf); + if (strcmp((const char *)shm_buf, m_str) != 0) + err(1, "receiver: data isn't correct"); + + exit(0); +} diff --git a/src/regress/sys/kern/unalign/CVS/Entries b/src/regress/sys/kern/unalign/CVS/Entries new file mode 100644 index 000000000..9e23581ca --- /dev/null +++ b/src/regress/sys/kern/unalign/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Apr 26 21:37:05 2005// +/unalign.c/1.2/Sat Jul 26 10:25:04 2008// +D diff --git a/src/regress/sys/kern/unalign/CVS/Repository b/src/regress/sys/kern/unalign/CVS/Repository new file mode 100644 index 000000000..ce5ce3a78 --- /dev/null +++ b/src/regress/sys/kern/unalign/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/unalign diff --git a/src/regress/sys/kern/unalign/CVS/Root b/src/regress/sys/kern/unalign/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/unalign/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/unalign/Makefile b/src/regress/sys/kern/unalign/Makefile new file mode 100644 index 000000000..1e0055985 --- /dev/null +++ b/src/regress/sys/kern/unalign/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/26 21:37:05 miod Exp $ + +PROG= unalign + +.include diff --git a/src/regress/sys/kern/unalign/obj b/src/regress/sys/kern/unalign/obj new file mode 120000 index 000000000..0c36d72cd --- /dev/null +++ b/src/regress/sys/kern/unalign/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/unalign \ No newline at end of file diff --git a/src/regress/sys/kern/unalign/unalign.c b/src/regress/sys/kern/unalign/unalign.c new file mode 100644 index 000000000..aeacad526 --- /dev/null +++ b/src/regress/sys/kern/unalign/unalign.c @@ -0,0 +1,73 @@ +/* $OpenBSD: unalign.c,v 1.2 2008/07/26 10:25:04 miod Exp $ */ +/* Written by Miod Vallat, 2004 AD -- this file is in the public domain */ + +/* + * This test checks for the ability, for 32 bit systems, to correctly + * access a long long (64 bit) value aligned on a 32 bit boundary, but not + * on a 64 bit boundary. + * + * All architectures should pass this test; on m88k this requires assistance + * from the kernel to recover from the misaligned operand exception: see + * double_reg_fixup() in arch/m88k/m88k/trap.c for details. + */ + +#include +#include + +uint32_t array[5]; + +int +unalign_read(uint64_t *addr) +{ + uint64_t t; + + t = *addr; +#if BYTE_ORDER == BIG_ENDIAN + if (t != 0x13579aceffffabcdULL) +#else + if (t != 0xffffabcd13579aceULL) +#endif + return (1); + + return (0); +} + +void +unalign_write(uint64_t *addr) +{ + uint64_t t; + + t = 0xdeadbeaffadebabeULL; + *addr = t; +} + +int +main(int argc, char *argv[]) +{ +#if !defined(__LP64__) + uint32_t *addr = array; + + /* align on a 64 bit boundary */ + if (((uint32_t)addr & 7) != 0) + addr++; + + addr[0] = 0x12345678; + addr[1] = 0x13579ace; + addr[2] = 0xffffabcd; + addr[3] = 0x2468fedc; + + if (unalign_read((uint64_t *)(addr + 1))) + return (1); + + unalign_write((uint64_t *)(addr + 1)); + +#if BYTE_ORDER == BIG_ENDIAN + if (addr[1] != 0xdeadbeaf || addr[2] != 0xfadebabe) +#else + if (addr[1] != 0xfadebabe || addr[2] != 0xdeadbeaf) +#endif + return (1); +#endif /* __LP64__ */ + + return (0); +} diff --git a/src/regress/sys/kern/unfdpass/CVS/Entries b/src/regress/sys/kern/unfdpass/CVS/Entries new file mode 100644 index 000000000..60bb58d68 --- /dev/null +++ b/src/regress/sys/kern/unfdpass/CVS/Entries @@ -0,0 +1,4 @@ +/expected/1.3/Sat Mar 15 16:49:15 2008// +/unfdpass.c/1.16/Thu Jun 26 05:42:06 2008// +/Makefile/1.9/Sun Jun 27 18:30:05 2010// +D diff --git a/src/regress/sys/kern/unfdpass/CVS/Repository b/src/regress/sys/kern/unfdpass/CVS/Repository new file mode 100644 index 000000000..cc0ff69d9 --- /dev/null +++ b/src/regress/sys/kern/unfdpass/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/unfdpass diff --git a/src/regress/sys/kern/unfdpass/CVS/Root b/src/regress/sys/kern/unfdpass/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/unfdpass/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/unfdpass/Makefile b/src/regress/sys/kern/unfdpass/Makefile new file mode 100644 index 000000000..6fa11cd7e --- /dev/null +++ b/src/regress/sys/kern/unfdpass/Makefile @@ -0,0 +1,17 @@ +# $OpenBSD: Makefile,v 1.9 2010/06/21 16:55:52 phessler Exp $ +# $NetBSD: Makefile,v 1.3 1998/03/02 21:57:38 cgd Exp $ + +PROG= unfdpass + +CLEANFILES+=file1 file2 file3 output test-sock +REGRESS_TARGETS=do-unfdpass1 do-unfdpass2 + +do-unfdpass1: ${PROG} + ./unfdpass > output + cmp -s ${.CURDIR}/expected output + +do-unfdpass2: ${PROG} + ./unfdpass -p > output + cmp -s ${.CURDIR}/expected output + +.include diff --git a/src/regress/sys/kern/unfdpass/expected b/src/regress/sys/kern/unfdpass/expected new file mode 100644 index 000000000..15fb28eea --- /dev/null +++ b/src/regress/sys/kern/unfdpass/expected @@ -0,0 +1,3 @@ +This is file 1. +This is file 2. +This is file 3. diff --git a/src/regress/sys/kern/unfdpass/obj b/src/regress/sys/kern/unfdpass/obj new file mode 120000 index 000000000..a0d2b87d0 --- /dev/null +++ b/src/regress/sys/kern/unfdpass/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/unfdpass \ No newline at end of file diff --git a/src/regress/sys/kern/unfdpass/unfdpass.c b/src/regress/sys/kern/unfdpass/unfdpass.c new file mode 100644 index 000000000..c5d8fe416 --- /dev/null +++ b/src/regress/sys/kern/unfdpass/unfdpass.c @@ -0,0 +1,291 @@ +/* $OpenBSD: unfdpass.c,v 1.16 2008/06/26 05:42:06 ray Exp $ */ +/* $NetBSD: unfdpass.c,v 1.3 1998/06/24 23:51:30 thorpej Exp $ */ + +/*- + * Copyright (c) 1998 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, + * NASA Ames Research Center. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Test passing of file descriptors over Unix domain sockets and socketpairs. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define SOCK_NAME "test-sock" + +int main(int, char *[]); +void child(int); +void catch_sigchld(int); + +/* ARGSUSED */ +int +main(int argc, char *argv[]) +{ + struct msghdr msg; + int listensock, sock, pfd[2], fd, i; + char fname[16], buf[64]; + struct cmsghdr *cmp; + int *files = NULL; + struct sockaddr_un sun, csun; + int csunlen; + pid_t pid; + union { + struct cmsghdr hdr; + char buf[CMSG_SPACE(sizeof(int) * 3)]; + } cmsgbuf; + int pflag; + extern char *__progname; + + pflag = 0; + while ((i = getopt(argc, argv, "p")) != -1) { + switch (i) { + case 'p': + pflag = 1; + break; + default: + fprintf(stderr, "usage: %s [-p]\n", __progname); + exit(1); + } + } + + /* + * Create the test files. + */ + for (i = 0; i < 3; i++) { + (void) snprintf(fname, sizeof fname, "file%d", i + 1); + if ((fd = open(fname, O_WRONLY|O_CREAT|O_TRUNC, 0666)) == -1) + err(1, "open %s", fname); + (void) snprintf(buf, sizeof buf, "This is file %d.\n", i + 1); + if (write(fd, buf, strlen(buf)) != strlen(buf)) + err(1, "write %s", fname); + (void) close(fd); + } + + if (pflag) { + /* + * Create the socketpair + */ + if (socketpair(PF_LOCAL, SOCK_STREAM, 0, pfd) == -1) + err(1, "socketpair"); + } else { + /* + * Create the listen socket. + */ + if ((listensock = socket(PF_LOCAL, SOCK_STREAM, 0)) == -1) + err(1, "socket"); + + (void) unlink(SOCK_NAME); + (void) memset(&sun, 0, sizeof(sun)); + sun.sun_family = AF_LOCAL; + (void) strlcpy(sun.sun_path, SOCK_NAME, sizeof sun.sun_path); + sun.sun_len = SUN_LEN(&sun); + + if (bind(listensock, (struct sockaddr *)&sun, sizeof(sun)) == -1) + err(1, "bind"); + + if (listen(listensock, 1) == -1) + err(1, "listen"); + pfd[0] = pfd[1] = -1; + } + + /* + * Create the sender. + */ + (void) signal(SIGCHLD, catch_sigchld); + pid = fork(); + switch (pid) { + case -1: + err(1, "fork"); + /* NOTREACHED */ + + case 0: + if (pfd[0] != -1) + close(pfd[0]); + child(pfd[1]); + /* NOTREACHED */ + } + + if (pfd[0] != -1) { + close(pfd[1]); + sock = pfd[0]; + } else { + /* + * Wait for the sender to connect. + */ + if ((sock = accept(listensock, (struct sockaddr *)&csun, + &csunlen)) == -1) + err(1, "accept"); + } + + /* + * Give sender a chance to run. We will get going again + * once the SIGCHLD arrives. + */ + (void) sleep(10); + + /* + * Grab the descriptors passed to us. + */ + (void) memset(&msg, 0, sizeof(msg)); + msg.msg_control = &cmsgbuf.buf; + msg.msg_controllen = sizeof(cmsgbuf.buf); + + if (recvmsg(sock, &msg, 0) < 0) + err(1, "recvmsg"); + + (void) close(sock); + + if (msg.msg_controllen == 0) + errx(1, "no control messages received"); + + if (msg.msg_flags & MSG_CTRUNC) + errx(1, "lost control message data"); + + for (cmp = CMSG_FIRSTHDR(&msg); cmp != NULL; + cmp = CMSG_NXTHDR(&msg, cmp)) { + if (cmp->cmsg_level != SOL_SOCKET) + errx(1, "bad control message level %d", + cmp->cmsg_level); + + switch (cmp->cmsg_type) { + case SCM_RIGHTS: + if (cmp->cmsg_len != CMSG_LEN(sizeof(int) * 3)) + errx(1, "bad fd control message length %d", + cmp->cmsg_len); + + files = (int *)CMSG_DATA(cmp); + break; + + default: + errx(1, "unexpected control message"); + /* NOTREACHED */ + } + } + + /* + * Read the files and print their contents. + */ + if (files == NULL) + warnx("didn't get fd control message"); + else { + for (i = 0; i < 3; i++) { + (void) memset(buf, 0, sizeof(buf)); + if (read(files[i], buf, sizeof(buf)) <= 0) + err(1, "read file %d (%d)", i + 1, files[i]); + printf("%s", buf); + } + } + + /* + * All done! + */ + exit(0); +} + +void +catch_sigchld(sig) + int sig; +{ + int save_errno = errno; + int status; + + (void) wait(&status); + errno = save_errno; +} + +void +child(int sock) +{ + struct msghdr msg; + char fname[16]; + struct cmsghdr *cmp; + int i, fd; + struct sockaddr_un sun; + union { + struct cmsghdr hdr; + char buf[CMSG_SPACE(sizeof(int) * 3)]; + } cmsgbuf; + int *files; + + /* + * Create socket if needed and connect to the receiver. + */ + if (sock == -1) { + if ((sock = socket(PF_LOCAL, SOCK_STREAM, 0)) == -1) + err(1, "child socket"); + + (void) memset(&sun, 0, sizeof(sun)); + sun.sun_family = AF_LOCAL; + (void) strlcpy(sun.sun_path, SOCK_NAME, sizeof sun.sun_path); + sun.sun_len = SUN_LEN(&sun); + + if (connect(sock, (struct sockaddr *)&sun, sizeof(sun)) == -1) + err(1, "child connect"); + } + + (void) memset(&msg, 0, sizeof(msg)); + msg.msg_control = &cmsgbuf.buf; + msg.msg_controllen = sizeof(cmsgbuf.buf); + + cmp = CMSG_FIRSTHDR(&msg); + cmp->cmsg_len = CMSG_LEN(sizeof(int) * 3); + cmp->cmsg_level = SOL_SOCKET; + cmp->cmsg_type = SCM_RIGHTS; + + /* + * Open the files again, and pass them to the child over the socket. + */ + files = (int *)CMSG_DATA(cmp); + for (i = 0; i < 3; i++) { + (void) snprintf(fname, sizeof fname, "file%d", i + 1); + if ((fd = open(fname, O_RDONLY, 0666)) == -1) + err(1, "child open %s", fname); + files[i] = fd; + } + + if (sendmsg(sock, &msg, 0)) + err(1, "child sendmsg"); + + /* + * All done! + */ + exit(0); +} diff --git a/src/regress/sys/kern/wait/CVS/Entries b/src/regress/sys/kern/wait/CVS/Entries new file mode 100644 index 000000000..983b8d9c3 --- /dev/null +++ b/src/regress/sys/kern/wait/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Nov 4 07:38:08 2003// +/wait.c/1.1/Tue Nov 4 07:38:08 2003// +D diff --git a/src/regress/sys/kern/wait/CVS/Repository b/src/regress/sys/kern/wait/CVS/Repository new file mode 100644 index 000000000..93846f0fb --- /dev/null +++ b/src/regress/sys/kern/wait/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/kern/wait diff --git a/src/regress/sys/kern/wait/CVS/Root b/src/regress/sys/kern/wait/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/kern/wait/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/kern/wait/Makefile b/src/regress/sys/kern/wait/Makefile new file mode 100644 index 000000000..2dd0918f0 --- /dev/null +++ b/src/regress/sys/kern/wait/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2003/11/04 07:38:08 mickey Exp $ + +PROG= wait + +.include diff --git a/src/regress/sys/kern/wait/obj b/src/regress/sys/kern/wait/obj new file mode 120000 index 000000000..0cc36bfcd --- /dev/null +++ b/src/regress/sys/kern/wait/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/kern/wait \ No newline at end of file diff --git a/src/regress/sys/kern/wait/wait.c b/src/regress/sys/kern/wait/wait.c new file mode 100644 index 000000000..1b93de0ac --- /dev/null +++ b/src/regress/sys/kern/wait/wait.c @@ -0,0 +1,35 @@ +/* $OpenBSD: wait.c,v 1.1 2003/11/04 07:38:08 mickey Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ +#include +#include +#include +#include +#include +#include + +int +main() +{ + int status; + + switch(fork()) { + case -1: + err(1, "fork"); + case 0: + __syscall((u_int64_t)SYS_exit, 17, 0); + abort(); + } + + if (wait(&status) < 0) + err(1, "wait"); + + if (!WIFEXITED(status)) + errx(1, "child didn't exit gracefully"); + + if (WEXITSTATUS(status) != 17) + errx(1, "wrong exit status"); + + return 0; +} diff --git a/src/regress/sys/net/CVS/Entries b/src/regress/sys/net/CVS/Entries new file mode 100644 index 000000000..7af217f7a --- /dev/null +++ b/src/regress/sys/net/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Aug 22 00:48:33 2008// +/pf_print_test.c/1.2/Mon Apr 5 23:11:51 2010// +D diff --git a/src/regress/sys/net/CVS/Repository b/src/regress/sys/net/CVS/Repository new file mode 100644 index 000000000..ccb18f6e5 --- /dev/null +++ b/src/regress/sys/net/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/net diff --git a/src/regress/sys/net/CVS/Root b/src/regress/sys/net/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/net/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/net/Makefile b/src/regress/sys/net/Makefile new file mode 100644 index 000000000..3504d8cda --- /dev/null +++ b/src/regress/sys/net/Makefile @@ -0,0 +1,13 @@ +PROG= pf_print_test +CLEANFILES= pf_print_host.c +CFLAGS= -Wall +CPPFLAGS= -I. + +pf_print_host.c: ../../../sys/net/pf.c Makefile + sed -n '/^pf_print_host/{x;p;x;};/^pf_print_host/,/^}/p;h' \ + ${.CURDIR}/../../../sys/net/pf.c >$@.tmp + mv $@.tmp $@ + +pf_print_test.o: pf_print_test.c pf_print_host.c + +.include diff --git a/src/regress/sys/net/obj b/src/regress/sys/net/obj new file mode 120000 index 000000000..02da35170 --- /dev/null +++ b/src/regress/sys/net/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/net \ No newline at end of file diff --git a/src/regress/sys/net/pf_print_test.c b/src/regress/sys/net/pf_print_test.c new file mode 100644 index 000000000..17240a487 --- /dev/null +++ b/src/regress/sys/net/pf_print_test.c @@ -0,0 +1,113 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#define INET 1 +#define INET6 1 + +void pf_print_host(struct pf_addr *, u_int16_t, u_int8_t); +#define addlog printf + +char *ipv6_addrs[] = { + "::", + "::1", + "1::", + "1::1", + "0:1::1:0", + "::1:2:0", + "0:1::", + "::1:0:0:0", + "1:2:3:4:5:6:7:8", + "0:2:3:4:5:6:7:8", + "1:2:3:4:5:6:7:0", + "1:0:3:0:5:0:7:8", + "::3:4:5:6:7:8", + "1:2:3:4:5:6::", + "0:2:3::6:7:8", + "1:2:0:4:5::8", + "1::4:5:0:0:8", + "1::5:0:0:8", + "1:0:0:4::8", + "::4:5:6:0:0", + "0:0:3:4:5::", + "::4:5:0:0:0", + "1234:5678:90ab:cdef:1234:5678:90ab:cdef", + NULL +}; + +int +main(int argc, char *argv[]) +{ + char str[100]; + struct pf_addr addr; + FILE *fpipe; + char **in, *out; + size_t len; + pid_t pid; + int fds[2]; + int status, ret = 0; + + for (in = ipv6_addrs; *in; in++) { + if (!inet_pton(AF_INET6, *in, &addr.v6)) + errx(2, "inet_pton %s", *in); + if (!inet_ntop(AF_INET6, &addr.v6, str, sizeof(str))) + errx(2, "inet_ntop %s", *in); + if (strcmp(*in, str) != 0) { + warnx("not equal\nin:\t%s\nstr:\t%s", *in, str); + ret = 2; + } + if (pipe(fds) == -1) + err(2, "pipe"); + if ((pid = fork()) == -1) + err(2, "fork"); + if (pid == 0) { + close(fds[0]); + if (dup2(fds[1], 1) == -1) + err(2, "dup2"); + close(fds[1]); + pf_print_host(&addr, 0, AF_INET6); + fflush(stdout); + _exit(0); + } + close(fds[1]); + if ((fpipe = fdopen(fds[0], "r")) == NULL) + err(2, "fdopen"); + if ((out = fgetln(fpipe, &len)) == NULL) + err(2, "fgetln"); + if (out[len - 1] == '\n') + out[len - 1] = '\0'; + else { + char *tmp; + /* EOF without EOL, copy and add the NUL */ + if ((tmp = malloc(len + 1)) == NULL) + err(2, "malloc"); + memcpy(tmp, out, len); + tmp[len] = '\0'; + out = tmp; + } + if (fclose(fpipe) == EOF) + err(2, "fclose"); + if (wait(&status) <= 0) + err(2, "wait"); + if (status != 0) + errx(2, "child exit status: %d", status); + if (strcmp(*in, out) != 0) { + warnx("not equal\nin:\t%s\nout:\t%s", *in, out); + ret = 1; + } + } + return (ret); +} + +#include "pf_print_host.c" diff --git a/src/regress/sys/ptrace/CVS/Entries b/src/regress/sys/ptrace/CVS/Entries new file mode 100644 index 000000000..d257c2c2f --- /dev/null +++ b/src/regress/sys/ptrace/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Jan 31 22:09:35 2004// +/ptrace.c/1.5/Sat Mar 14 16:54:26 2009// +D diff --git a/src/regress/sys/ptrace/CVS/Repository b/src/regress/sys/ptrace/CVS/Repository new file mode 100644 index 000000000..e249f5eb6 --- /dev/null +++ b/src/regress/sys/ptrace/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/ptrace diff --git a/src/regress/sys/ptrace/CVS/Root b/src/regress/sys/ptrace/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/ptrace/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/ptrace/Makefile b/src/regress/sys/ptrace/Makefile new file mode 100644 index 000000000..cade75aa9 --- /dev/null +++ b/src/regress/sys/ptrace/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2004/01/31 22:09:35 miod Exp $ + +PROG=ptrace + +.include diff --git a/src/regress/sys/ptrace/obj b/src/regress/sys/ptrace/obj new file mode 120000 index 000000000..3c4423589 --- /dev/null +++ b/src/regress/sys/ptrace/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/ptrace \ No newline at end of file diff --git a/src/regress/sys/ptrace/ptrace.c b/src/regress/sys/ptrace/ptrace.c new file mode 100644 index 000000000..89e0edb46 --- /dev/null +++ b/src/regress/sys/ptrace/ptrace.c @@ -0,0 +1,106 @@ +/* $OpenBSD: ptrace.c,v 1.5 2009/03/14 16:54:26 miod Exp $ */ +/* + * Copyright (c) 2004, Mark Kettenis. + * Copyright (c) 2004, Miodrag Vallat. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include + +#include + +#include +#include +#include +#include + +/* + * This tests checks whether ptrace will correctly cope with unaligned pc. + * + * Platforms known to fail at the moment are: sparc. + */ +int +main(void) +{ + pid_t pid; + int status; + + pid = fork(); + if (pid == 0) { + ptrace(PT_TRACE_ME, 0, 0, 0); + raise(SIGTRAP); + exit(EXIT_FAILURE); + } else { + struct reg regs; + + waitpid(pid, &status, 0); + ptrace(PT_GETREGS, pid, (caddr_t)®s, 0); + + /* + * Make sure amd64 is tested before i386, + * and sparc64 before sparc. + */ + +#if defined(__alpha__) + regs.r_regs[R_ZERO]|= 0x07; +#elif defined(__x86_64__) + regs.r_rip |= 0x07; +#elif defined(__arm__) + regs.r_pc |= 0x03; +#elif defined(__m68k__) + regs.r_pc |= 0x03; +#elif defined(__hppa__) + regs.r_pc |= 0x03; + regs.r_npc |= 0x03; +#elif defined(__i386__) + regs.r_eip |= 0x03; +#elif defined(__mips64__) + regs.r_regs[PC] |= 0x03; +#elif defined(__powerpc__) + regs.pc |= 0x03; +#elif defined(__sh__) + regs.r_spc |= 0x01; +#elif defined( __sparcv9__) + regs.r_pc |= 0x07; + regs.r_npc |= 0x07; +#elif defined(__sparc__) + regs.r_pc |= 0x03; + regs.r_npc |= 0x03; +#elif defined( __m88k__) + /* + * The following code is for 88100 only, but should work with + * 88110 too, even though it sets the DELAY bit in exip. + */ + regs.sxip |= 0x03; + regs.snip |= 0x03; + regs.sfip |= 0x03; +#elif defined(__vax__) + regs.pc |= 0x03; +#endif + ptrace(PT_SETREGS, pid, (caddr_t)®s, 0); + ptrace(PT_CONTINUE, pid, (caddr_t)1, 0); + } + exit(EXIT_SUCCESS); +} diff --git a/src/regress/sys/sys/CVS/Entries b/src/regress/sys/sys/CVS/Entries new file mode 100644 index 000000000..f2c1a2d39 --- /dev/null +++ b/src/regress/sys/sys/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.1/Tue Jun 11 21:55:57 2002// +D/tree//// diff --git a/src/regress/sys/sys/CVS/Repository b/src/regress/sys/sys/CVS/Repository new file mode 100644 index 000000000..55e94ad92 --- /dev/null +++ b/src/regress/sys/sys/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/sys diff --git a/src/regress/sys/sys/CVS/Root b/src/regress/sys/sys/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/sys/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/sys/Makefile b/src/regress/sys/sys/Makefile new file mode 100644 index 000000000..41c50d85c --- /dev/null +++ b/src/regress/sys/sys/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.1 2002/06/11 21:55:57 provos Exp $ + +SUBDIR= tree + +install: + +.include diff --git a/src/regress/sys/sys/tree/CVS/Entries b/src/regress/sys/sys/tree/CVS/Entries new file mode 100644 index 000000000..64ed46ae9 --- /dev/null +++ b/src/regress/sys/sys/tree/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Wed Aug 21 15:10:06 2002// +D/rb//// +D/splay//// diff --git a/src/regress/sys/sys/tree/CVS/Repository b/src/regress/sys/sys/tree/CVS/Repository new file mode 100644 index 000000000..56716b05c --- /dev/null +++ b/src/regress/sys/sys/tree/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/sys/tree diff --git a/src/regress/sys/sys/tree/CVS/Root b/src/regress/sys/sys/tree/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/sys/tree/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/sys/tree/Makefile b/src/regress/sys/sys/tree/Makefile new file mode 100644 index 000000000..b1300d58e --- /dev/null +++ b/src/regress/sys/sys/tree/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.3 2002/08/21 15:10:06 miod Exp $ + +SUBDIR= splay rb + +install: + +.include diff --git a/src/regress/sys/sys/tree/rb/CVS/Entries b/src/regress/sys/sys/tree/rb/CVS/Entries new file mode 100644 index 000000000..e00c34aea --- /dev/null +++ b/src/regress/sys/sys/tree/rb/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Jun 11 22:10:22 2002// +/rb-test.c/1.4/Sun Apr 13 00:22:17 2008// +D diff --git a/src/regress/sys/sys/tree/rb/CVS/Repository b/src/regress/sys/sys/tree/rb/CVS/Repository new file mode 100644 index 000000000..1e4c80df6 --- /dev/null +++ b/src/regress/sys/sys/tree/rb/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/sys/tree/rb diff --git a/src/regress/sys/sys/tree/rb/CVS/Root b/src/regress/sys/sys/tree/rb/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/sys/tree/rb/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/sys/tree/rb/Makefile b/src/regress/sys/sys/tree/rb/Makefile new file mode 100644 index 000000000..61695ac22 --- /dev/null +++ b/src/regress/sys/sys/tree/rb/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/06/11 22:10:22 provos Exp $ + +PROG= rb-test + +.include diff --git a/src/regress/sys/sys/tree/rb/obj b/src/regress/sys/sys/tree/rb/obj new file mode 120000 index 000000000..aa30ac7ac --- /dev/null +++ b/src/regress/sys/sys/tree/rb/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/sys/tree/rb \ No newline at end of file diff --git a/src/regress/sys/sys/tree/rb/rb-test.c b/src/regress/sys/sys/tree/rb/rb-test.c new file mode 100644 index 000000000..409cc2239 --- /dev/null +++ b/src/regress/sys/sys/tree/rb/rb-test.c @@ -0,0 +1,106 @@ +/* $OpenBSD: rb-test.c,v 1.4 2008/04/13 00:22:17 djm Exp $ */ +/* + * Copyright 2002 Niels Provos + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include +#include +#include +#include +#include + +struct node { + RB_ENTRY(node) node; + int key; +}; + +RB_HEAD(tree, node) root; + +static int +compare(struct node *a, struct node *b) +{ + if (a->key < b->key) return (-1); + else if (a->key > b->key) return (1); + return (0); +} + +RB_PROTOTYPE(tree, node, node, compare); + +RB_GENERATE(tree, node, node, compare); + +#define ITER 150 +#define MIN 5 +#define MAX 5000 + +int +main(int argc, char **argv) +{ + struct node *tmp, *ins; + int i, max, min; + + RB_INIT(&root); + + for (i = 0; i < ITER; i++) { + tmp = malloc(sizeof(struct node)); + if (tmp == NULL) err(1, "malloc"); + do { + tmp->key = arc4random_uniform(MAX-MIN); + tmp->key += MIN; + } while (RB_FIND(tree, &root, tmp) != NULL); + if (i == 0) + max = min = tmp->key; + else { + if (tmp->key > max) + max = tmp->key; + if (tmp->key < min) + min = tmp->key; + } + if (RB_INSERT(tree, &root, tmp) != NULL) + errx(1, "RB_INSERT failed"); + } + + ins = RB_MIN(tree, &root); + if (ins->key != min) + errx(1, "min does not match"); + tmp = ins; + ins = RB_MAX(tree, &root); + if (ins->key != max) + errx(1, "max does not match"); + + if (RB_REMOVE(tree, &root, tmp) != tmp) + errx(1, "RB_REMOVE failed"); + + for (i = 0; i < ITER - 1; i++) { + tmp = RB_ROOT(&root); + if (tmp == NULL) + errx(1, "RB_ROOT error"); + if (RB_REMOVE(tree, &root, tmp) != tmp) + errx(1, "RB_REMOVE error"); + free(tmp); + } + + exit(0); +} diff --git a/src/regress/sys/sys/tree/splay/CVS/Entries b/src/regress/sys/sys/tree/splay/CVS/Entries new file mode 100644 index 000000000..a9e77de1f --- /dev/null +++ b/src/regress/sys/sys/tree/splay/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue Jun 11 22:10:22 2002// +/splay-test.c/1.4/Sun Apr 13 00:22:17 2008// +D diff --git a/src/regress/sys/sys/tree/splay/CVS/Repository b/src/regress/sys/sys/tree/splay/CVS/Repository new file mode 100644 index 000000000..b2cbd441a --- /dev/null +++ b/src/regress/sys/sys/tree/splay/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/sys/tree/splay diff --git a/src/regress/sys/sys/tree/splay/CVS/Root b/src/regress/sys/sys/tree/splay/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/sys/tree/splay/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/sys/tree/splay/Makefile b/src/regress/sys/sys/tree/splay/Makefile new file mode 100644 index 000000000..66707f30e --- /dev/null +++ b/src/regress/sys/sys/tree/splay/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/06/11 22:10:22 provos Exp $ + +PROG= splay-test + +.include diff --git a/src/regress/sys/sys/tree/splay/obj b/src/regress/sys/sys/tree/splay/obj new file mode 120000 index 000000000..cb6625b23 --- /dev/null +++ b/src/regress/sys/sys/tree/splay/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/sys/tree/splay \ No newline at end of file diff --git a/src/regress/sys/sys/tree/splay/splay-test.c b/src/regress/sys/sys/tree/splay/splay-test.c new file mode 100644 index 000000000..56084a0c7 --- /dev/null +++ b/src/regress/sys/sys/tree/splay/splay-test.c @@ -0,0 +1,106 @@ +/* $OpenBSD: splay-test.c,v 1.4 2008/04/13 00:22:17 djm Exp $ */ +/* + * Copyright 2002 Niels Provos + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include +#include +#include +#include +#include + +struct node { + SPLAY_ENTRY(node) node; + int key; +}; + +SPLAY_HEAD(tree, node) root; + +static int +compare(struct node *a, struct node *b) +{ + if (a->key < b->key) return (-1); + else if (a->key > b->key) return (1); + return (0); +} + +SPLAY_PROTOTYPE(tree, node, node, compare); + +SPLAY_GENERATE(tree, node, node, compare); + +#define ITER 150 +#define MIN 5 +#define MAX 5000 + +int +main(int argc, char **argv) +{ + struct node *tmp, *ins; + int i, max, min; + + SPLAY_INIT(&root); + + for (i = 0; i < ITER; i++) { + tmp = malloc(sizeof(struct node)); + if (tmp == NULL) err(1, "malloc"); + do { + tmp->key = arc4random_uniform(MAX-MIN); + tmp->key += MIN; + } while (SPLAY_FIND(tree, &root, tmp) != NULL); + if (i == 0) + max = min = tmp->key; + else { + if (tmp->key > max) + max = tmp->key; + if (tmp->key < min) + min = tmp->key; + } + if (SPLAY_INSERT(tree, &root, tmp) != NULL) + errx(1, "SPLAY_INSERT failed"); + } + + ins = SPLAY_MIN(tree, &root); + if (ins->key != min) + errx(1, "min does not match"); + tmp = ins; + ins = SPLAY_MAX(tree, &root); + if (ins->key != max) + errx(1, "max does not match"); + + if (SPLAY_REMOVE(tree, &root, tmp) != tmp) + errx(1, "SPLAY_REMOVE failed"); + + for (i = 0; i < ITER - 1; i++) { + tmp = SPLAY_ROOT(&root); + if (tmp == NULL) + errx(1, "SPLAY_ROOT error"); + if (SPLAY_REMOVE(tree, &root, tmp) != tmp) + errx(1, "SPLAY_REMOVE error"); + free(tmp); + } + + exit(0); +} diff --git a/src/regress/sys/uvm/CVS/Entries b/src/regress/sys/uvm/CVS/Entries new file mode 100644 index 000000000..cecc4bb29 --- /dev/null +++ b/src/regress/sys/uvm/CVS/Entries @@ -0,0 +1,6 @@ +/Makefile/1.6/Mon May 21 07:28:16 2007// +D/misc//// +D/mmap_4g//// +D/mmap_fixed//// +D/mmap_mod//// +D/mmap_size//// diff --git a/src/regress/sys/uvm/CVS/Repository b/src/regress/sys/uvm/CVS/Repository new file mode 100644 index 000000000..ef49213ed --- /dev/null +++ b/src/regress/sys/uvm/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/uvm diff --git a/src/regress/sys/uvm/CVS/Root b/src/regress/sys/uvm/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/uvm/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/uvm/Makefile b/src/regress/sys/uvm/Makefile new file mode 100644 index 000000000..57a549426 --- /dev/null +++ b/src/regress/sys/uvm/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.6 2007/05/21 07:28:16 art Exp $ + +SUBDIR=misc mmap_4g mmap_size mmap_fixed mmap_mod + +install: + +.include diff --git a/src/regress/sys/uvm/misc/CVS/Entries b/src/regress/sys/uvm/misc/CVS/Entries new file mode 100644 index 000000000..7d06ec6a5 --- /dev/null +++ b/src/regress/sys/uvm/misc/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.3/Wed Dec 29 04:28:39 2004// +/misc.c/1.5/Thu Jun 26 05:42:06 2008// +D diff --git a/src/regress/sys/uvm/misc/CVS/Repository b/src/regress/sys/uvm/misc/CVS/Repository new file mode 100644 index 000000000..97e469739 --- /dev/null +++ b/src/regress/sys/uvm/misc/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/uvm/misc diff --git a/src/regress/sys/uvm/misc/CVS/Root b/src/regress/sys/uvm/misc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/uvm/misc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/uvm/misc/Makefile b/src/regress/sys/uvm/misc/Makefile new file mode 100644 index 000000000..d7990dac2 --- /dev/null +++ b/src/regress/sys/uvm/misc/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.3 2004/12/29 04:28:39 david Exp $ + +PROG=misc +CLEANFILES=mapped_file + +REGRESS_ROOT_TARGETS= run-regress-${PROG} + +run-regress-${PROG}: ${PROG} + ${SUDO} ./${PROG} + +.include diff --git a/src/regress/sys/uvm/misc/misc.c b/src/regress/sys/uvm/misc/misc.c new file mode 100644 index 000000000..d902b6b51 --- /dev/null +++ b/src/regress/sys/uvm/misc/misc.c @@ -0,0 +1,430 @@ +/* $NetBSD: mmap.c,v 1.12 2001/02/19 22:44:41 cgd Exp $ */ + +/*- + * Copyright (c) 1999 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, + * NASA Ames Research Center. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Test various memory mapping facilities. + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include /* for memset declaration (?) */ + +#include /* SHMMAXPGS */ + +int main(int, char *[]); +void usage(void); + +int check_residency(void *, int); + +int pgsize; +int verbose; + +#define MAPPED_FILE "mapped_file" +#define TEST_PATTERN 0xa5 + +int +main(argc, argv) + int argc; + char *argv[]; +{ + struct stat st; + void *addr, *addr2, *addr3; + int i, ch, ecode, fd, npgs, shmid; + const char *filename; + u_int8_t *cp; + + while ((ch = getopt(argc, argv, "v")) != -1) { + switch (ch) { + case 'v': + verbose = 1; + break; + + default: + usage(); + } + } + argv += optind; + argc -= optind; + + if (argc > 0) + filename = argv[0]; + else + filename = "/usr/share/dict/words"; + + ecode = 0; + + pgsize = sysconf(_SC_PAGESIZE); + + /* + * TEST MLOCKING A FILE. + */ + + printf(">>> MAPPING FILE <<<\n"); + + fd = open(filename, O_RDONLY, 0666); + if (fd == -1) + err(1, "open %s", filename); + + if (fstat(fd, &st) == -1) + err(1, "fstat %s", filename); + + addr = mmap(NULL, (size_t) st.st_size, PROT_READ, MAP_FILE|MAP_SHARED, + fd, (off_t) 0); + if (addr == MAP_FAILED) + err(1, "mmap %s", filename); + + (void) close(fd); + + npgs = (st.st_size / pgsize) + 1; + + printf(" CHECKING RESIDENCY\n"); + + (void) check_residency(addr, npgs); + + printf(" LOCKING RANGE\n"); + + if (mlock(addr, npgs * pgsize) == -1) + err(1, "mlock %s", filename); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr, npgs) != npgs) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + printf(" UNLOCKING RANGE\n"); + + if (munlock(addr, pgsize) == -1) + err(1, "munlock %s", filename); + + (void) munmap(addr, st.st_size); + + /* + * TEST MLOCKALL'ING AN ANONYMOUS MEMORY RANGE. + */ + + npgs = 128; + if (npgs > SHMMAXPGS) + npgs = SHMMAXPGS; + + printf(">>> MAPPING %d PAGE ANONYMOUS REGION <<<\n", npgs); + + addr = mmap(NULL, npgs * pgsize, PROT_READ|PROT_WRITE, + MAP_ANON|MAP_PRIVATE, -1, (off_t) 0); + if (addr == MAP_FAILED) + err(1, "mmap anon #1"); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr, npgs) != 0) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + printf(" LOCKING ALL - CURRENT and FUTURE\n"); + + if (mlockall(MCL_CURRENT|MCL_FUTURE) == -1) + err(1, "mlockall current/future"); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr, npgs) != npgs) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + printf(">>> MAPPING ANOTHER %d PAGE ANONYMOUS REGION <<<\n", npgs); + + addr2 = mmap(NULL, npgs * pgsize, PROT_READ, MAP_ANON, -1, (off_t) 0); + if (addr2 == MAP_FAILED) + err(1, "mmap anon #2"); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr2, npgs) != npgs) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + printf(">>> MAPPING THIRD %d PAGE ANONYMOUS REGION, PROT_NONE <<<\n", + npgs); + + addr3 = mmap(NULL, npgs * pgsize, PROT_NONE, MAP_ANON, -1, (off_t) 0); + if (addr3 == MAP_FAILED) + err(1, "mmap anon #3"); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr3, npgs) != 0) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + printf(" PROT_READ'ING MAPPING\n"); + + if (mprotect(addr3, npgs * pgsize, PROT_READ) == -1) + err(1, "mprotect"); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr3, npgs) != npgs) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + printf(" UNLOCKING ALL\n"); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr, npgs) != npgs || + check_residency(addr2, npgs) != npgs) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + (void) munlockall(); + + printf(">>> MADV_FREE'ING SECOND ANONYMOUS REGION <<<\n"); + + if (madvise(addr2, npgs * pgsize, MADV_FREE) == -1) + err(1, "madvise"); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr2, npgs) != 0) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + printf(">>> MADV_FREE'ING FIRST ANONYMOUS REGION <<<\n"); + + if (madvise(addr, npgs * pgsize, MADV_FREE) == -1) + err(1, "madvise"); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr, npgs) != 0) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + printf(">>> ZEROING FIRST ANONYMOUS REGION <<<\n"); + + memset(addr, 0, npgs * pgsize); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr, npgs) != npgs) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + printf(">>> MADV_FREE'ING FIRST ANONYMOUS REGION AGAIN <<<\n"); + + if (madvise(addr, npgs * pgsize, MADV_FREE) == -1) + err(1, "madvise"); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr2, npgs) != 0) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + printf(">>> UNMAPPING ANONYMOUS REGIONS <<<\n"); + + (void) munmap(addr, npgs * pgsize); + (void) munmap(addr2, npgs * pgsize); + (void) munmap(addr3, npgs * pgsize); + + printf(">>> CREATING MAPPED FILE <<<\n"); + + (void) unlink(MAPPED_FILE); + + if ((fd = open(MAPPED_FILE, O_RDWR|O_CREAT|O_TRUNC, 0666)) == -1) + err(1, "open %s", MAPPED_FILE); + + if ((cp = malloc(npgs * pgsize)) == NULL) + err(1, "malloc %d bytes", npgs * pgsize); + + memset(cp, 0x01, npgs * pgsize); + + if (write(fd, cp, npgs * pgsize) != npgs * pgsize) + err(1, "write %s", MAPPED_FILE); + + addr = mmap(NULL, npgs * pgsize, PROT_READ|PROT_WRITE, + MAP_FILE|MAP_SHARED, fd, (off_t) 0); + if (addr == MAP_FAILED) + err(1, "mmap %s", MAPPED_FILE); + + (void) close(fd); + + printf(" WRITING TEST PATTERN\n"); + + for (i = 0; i < npgs * pgsize; i++) + ((u_int8_t *)addr)[i] = TEST_PATTERN; + + printf(" SYNCING FILE\n"); + + if (msync(addr, npgs * pgsize, MS_SYNC|MS_INVALIDATE) == -1) + err(1, "msync %s", MAPPED_FILE); + + printf(" UNMAPPING FILE\n"); + + (void) munmap(addr, npgs * pgsize); + + printf(" READING FILE\n"); + + if ((fd = open(MAPPED_FILE, O_RDONLY, 0666)) == -1) + err(1, "open %s", MAPPED_FILE); + + if (read(fd, cp, npgs * pgsize) != npgs * pgsize) + err(1, "read %s", MAPPED_FILE); + + (void) close(fd); + + printf(" CHECKING TEST PATTERN\n"); + + for (i = 0; i < npgs * pgsize; i++) { + if (cp[i] != TEST_PATTERN) { + printf(" INCORRECT BYTE AT OFFSET %d: " + "0x%02x should be 0x%02x\n", i, cp[i], + TEST_PATTERN); + ecode = 1; + break; + } + } + + printf(">>> CREATING SYSV SHM SEGMENT <<<\n"); + + if ((shmid = shmget(IPC_PRIVATE, npgs * pgsize, + IPC_CREAT|S_IRUSR|S_IWUSR)) == -1) + err(1, "shmget"); + + if ((addr = shmat(shmid, NULL, 0)) == (void *) -1) + err(1, "shmat"); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr, npgs) != 0) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + printf(" ZEROING SEGMENT\n"); + + memset(addr, 0xff, npgs * pgsize); + + printf(" CHECKING RESIDENCY\n"); + + if (check_residency(addr, npgs) != npgs) { + printf(" RESIDENCY CHECK FAILED!\n"); + ecode = 1; + } + + printf(" MADV_FREE'ING SEGMENT\n"); + if (madvise(addr, npgs * pgsize, MADV_FREE) == -1) + err(1, "madvise"); + + printf(" CHECKING RESIDENCY\n"); + + /* + * NOTE! Even though we have MADV_FREE'd the range, + * there is another reference (the kernel's) to the + * object which owns the pages. In this case, the + * kernel does not simply free the pages, as haphazardly + * freeing pages when there are still references to + * an object can cause data corruption (say, the other + * referencer doesn't expect the pages to be freed, + * and is surprised by the subsequent ZFOD). + * + * Because of this, we simply report the number of + * pages still resident, for information only. + */ + + npgs = check_residency(addr, npgs); + printf(" RESIDENCY CHECK: %d pages still resident\n", npgs); + + if (shmdt(addr) == -1) + warn("shmdt"); + if (shmctl(shmid, IPC_RMID, NULL) == -1) + err(1, "shmctl"); + + exit(ecode); +} + +int +check_residency(addr, npgs) + void *addr; + int npgs; +{ + char *vec; + int i, resident; + + vec = malloc(npgs); + if (vec == NULL) + err(1, "malloc mincore vec"); + + if (mincore(addr, npgs * pgsize, vec) == -1) + err(1, "mincore"); + + for (i = 0, resident = 0; i < npgs; i++) { + if (vec[i] != 0) + resident++; + if (verbose) + printf("page 0x%lx is %sresident\n", + addr + (i * pgsize), vec[i] ? "" : "not "); + } + + free(vec); + + return (resident); +} + +void +usage() +{ + + fprintf(stderr, "usage: mmap [-v] filename\n"); + exit(1); +} diff --git a/src/regress/sys/uvm/misc/obj b/src/regress/sys/uvm/misc/obj new file mode 120000 index 000000000..0b7bce57b --- /dev/null +++ b/src/regress/sys/uvm/misc/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/uvm/misc \ No newline at end of file diff --git a/src/regress/sys/uvm/mmap_4g/CVS/Entries b/src/regress/sys/uvm/mmap_4g/CVS/Entries new file mode 100644 index 000000000..faa674d99 --- /dev/null +++ b/src/regress/sys/uvm/mmap_4g/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Tue May 3 18:26:54 2005// +/mmap_4g.c/1.3/Sun Jun 27 18:30:05 2010// +D diff --git a/src/regress/sys/uvm/mmap_4g/CVS/Repository b/src/regress/sys/uvm/mmap_4g/CVS/Repository new file mode 100644 index 000000000..39ea63917 --- /dev/null +++ b/src/regress/sys/uvm/mmap_4g/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/uvm/mmap_4g diff --git a/src/regress/sys/uvm/mmap_4g/CVS/Root b/src/regress/sys/uvm/mmap_4g/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/uvm/mmap_4g/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/uvm/mmap_4g/Makefile b/src/regress/sys/uvm/mmap_4g/Makefile new file mode 100644 index 000000000..95f2d7705 --- /dev/null +++ b/src/regress/sys/uvm/mmap_4g/Makefile @@ -0,0 +1,4 @@ +# $OpenBSD: Makefile,v 1.1 2005/05/03 18:26:54 otto Exp $ +PROG=mmap_4g + +.include diff --git a/src/regress/sys/uvm/mmap_4g/mmap_4g.c b/src/regress/sys/uvm/mmap_4g/mmap_4g.c new file mode 100644 index 000000000..7247f28b4 --- /dev/null +++ b/src/regress/sys/uvm/mmap_4g/mmap_4g.c @@ -0,0 +1,78 @@ +/* $OpenBSD: mmap_4g.c,v 1.3 2010/06/20 17:56:07 phessler Exp $ */ + +/* + * Public domain. 2005, Otto Moerbeek + */ + +#include +#include +#include +#include +#include +#include +#include + +/* + * Write near the 4g boundary using a mmaped file and check if the + * bytes do not wrap to offset 0. + */ + +int +main() +{ + int fd, i; + off_t offset; + size_t sz; + char *p, buf[100]; + const char * file = "foo"; + + fd = open(file, O_WRONLY | O_CREAT | O_TRUNC, 0666); + if (fd == -1) + err(1, "open"); + + sz = sizeof(buf); + offset = 4LL * 1024LL * 1024LL * 1024LL - sz/2; + + if (lseek(fd, offset, SEEK_SET) != offset) + err(1, "lseek"); + memset(buf, 0, sz); + if (write(fd, buf, sz) != sz) + err(1, "write"); + close(fd); + + fd = open(file, O_RDWR, 0); + if (fd == -1) + err(1, "open"); + p = mmap(NULL, 100, PROT_READ | PROT_WRITE, MAP_FILE | MAP_SHARED, + fd, offset); + if (p == MAP_FAILED) + err(1, "mmap"); + for (i = 0; i < sz; i++) + p[i] = i + 1; + if (munmap(p, sz) == -1) + err(1, "munmap"); + close(fd); + + fd = open(file, O_RDONLY, 0); + if (fd == -1) + err(1, "open"); + if (read(fd, buf, sz) != sz) + err(1, "read"); + for (i = 0; i < sz; i++) + if (buf[i]) + errx(1, "nonzero byte 0x%02x found at offset %zu", + buf[i], i); + + if (lseek(fd, offset, SEEK_SET) != offset) + err(1, "lseek"); + if (read(fd, buf, sz) != sz) + err(1, "read"); + for (i = 0; i < sz; i++) + if (buf[i] != i + 1) + err(1, "incorrect value 0x%02x at offset %llx", + p[i], offset + i); + + close(fd); + unlink(file); + return 0; +} diff --git a/src/regress/sys/uvm/mmap_4g/obj b/src/regress/sys/uvm/mmap_4g/obj new file mode 120000 index 000000000..9c05bf4f1 --- /dev/null +++ b/src/regress/sys/uvm/mmap_4g/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/uvm/mmap_4g \ No newline at end of file diff --git a/src/regress/sys/uvm/mmap_fixed/CVS/Entries b/src/regress/sys/uvm/mmap_fixed/CVS/Entries new file mode 100644 index 000000000..495f0c8fc --- /dev/null +++ b/src/regress/sys/uvm/mmap_fixed/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1.1.1/Thu Apr 6 20:39:03 2006// +/mmap_fixed.c/1.1.1.1/Thu Apr 6 20:39:03 2006// +D diff --git a/src/regress/sys/uvm/mmap_fixed/CVS/Repository b/src/regress/sys/uvm/mmap_fixed/CVS/Repository new file mode 100644 index 000000000..748a4ea7e --- /dev/null +++ b/src/regress/sys/uvm/mmap_fixed/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/uvm/mmap_fixed diff --git a/src/regress/sys/uvm/mmap_fixed/CVS/Root b/src/regress/sys/uvm/mmap_fixed/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/uvm/mmap_fixed/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/uvm/mmap_fixed/Makefile b/src/regress/sys/uvm/mmap_fixed/Makefile new file mode 100644 index 000000000..405f33cb8 --- /dev/null +++ b/src/regress/sys/uvm/mmap_fixed/Makefile @@ -0,0 +1,4 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2006/04/06 20:39:03 kurt Exp $ +PROG=mmap_fixed + +.include diff --git a/src/regress/sys/uvm/mmap_fixed/mmap_fixed.c b/src/regress/sys/uvm/mmap_fixed/mmap_fixed.c new file mode 100644 index 000000000..4b3669ba5 --- /dev/null +++ b/src/regress/sys/uvm/mmap_fixed/mmap_fixed.c @@ -0,0 +1,33 @@ +/* $OpenBSD: mmap_fixed.c,v 1.1.1.1 2006/04/06 20:39:03 kurt Exp $ */ + +/* + * Public domain. 2006, Kurt Miller + */ + +#include +#include +#include + +#define MEM_SIZE 1024*1024 + +/* + * Repetitively call mmap with MMAP_FIXED on the same region of memory + * to ensure process datasize is properly calculated. + */ + +int +main(void) +{ + void *mem_area; + int i; + + mem_area = mmap(0, MEM_SIZE, PROT_NONE, MAP_ANON, -1, 0); + + for (i = 0; i < 20000; i++) { + if (mmap(mem_area, MEM_SIZE, PROT_READ|PROT_WRITE|PROT_EXEC, + MAP_ANON|MAP_FIXED, -1, 0) == MAP_FAILED) + err(1, NULL); + } + + return (0); +} diff --git a/src/regress/sys/uvm/mmap_fixed/obj b/src/regress/sys/uvm/mmap_fixed/obj new file mode 120000 index 000000000..0bf075a30 --- /dev/null +++ b/src/regress/sys/uvm/mmap_fixed/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/uvm/mmap_fixed \ No newline at end of file diff --git a/src/regress/sys/uvm/mmap_mod/CVS/Entries b/src/regress/sys/uvm/mmap_mod/CVS/Entries new file mode 100644 index 000000000..98274b490 --- /dev/null +++ b/src/regress/sys/uvm/mmap_mod/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon May 21 07:27:37 2007// +/mmap_mod.c/1.2/Sun Jun 27 18:30:05 2010// +D diff --git a/src/regress/sys/uvm/mmap_mod/CVS/Repository b/src/regress/sys/uvm/mmap_mod/CVS/Repository new file mode 100644 index 000000000..d29d67995 --- /dev/null +++ b/src/regress/sys/uvm/mmap_mod/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/uvm/mmap_mod diff --git a/src/regress/sys/uvm/mmap_mod/CVS/Root b/src/regress/sys/uvm/mmap_mod/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/uvm/mmap_mod/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/uvm/mmap_mod/Makefile b/src/regress/sys/uvm/mmap_mod/Makefile new file mode 100644 index 000000000..336408c1a --- /dev/null +++ b/src/regress/sys/uvm/mmap_mod/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2007/05/21 07:27:37 art Exp $ + +PROG=mmap_mod + +.include diff --git a/src/regress/sys/uvm/mmap_mod/mmap_mod.c b/src/regress/sys/uvm/mmap_mod/mmap_mod.c new file mode 100644 index 000000000..5effc628a --- /dev/null +++ b/src/regress/sys/uvm/mmap_mod/mmap_mod.c @@ -0,0 +1,75 @@ +/* $OpenBSD: mmap_mod.c,v 1.2 2010/06/20 17:56:07 phessler Exp $ */ + +/* + * Public domain. 2007, Artur Grabowski + */ + +#include +#include +#include +#include +#include +#include +#include + +/* + * Test a corner case where a pmap can lose mod/ref bits after unmapping + * and remapping a page. + */ +int +main() +{ + char name[20] = "/tmp/fluff.XXXXXX"; + char *buf, *pat; + size_t ps; + int fd; + + ps = getpagesize(); + + if ((fd = mkstemp(name)) == -1) + err(1, "mkstemp"); + + if (unlink(name) == -1) + err(1, "unlink"); + + if (ftruncate(fd, ps)) + err(1, "ftruncate"); + + if ((pat = malloc(ps)) == NULL) + err(1, "malloc"); + + memset(pat, 'a', ps); + + if (pwrite(fd, pat, ps, 0) != ps) + err(1, "write"); + + buf = mmap(NULL, ps, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd, 0); + if (buf == MAP_FAILED) + err(1, "mmap"); + + if (*buf != 'a') + errx(1, "mapped area - no file data ('%c' != 'a')", *buf); + + memset(buf, 'x', ps); + + if (munmap(buf, ps) == -1) + err(1, "munmap"); + + buf = mmap(NULL, ps, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd, 0); + if (buf == MAP_FAILED) + err(1, "mmap 2"); + + if (*buf != 'x') + errx(1, "mapped area lost modifications ('%c' != 'x')", *buf); + + if (msync(buf, ps, MS_SYNC) == -1) + err(1, "msync"); + + if (pread(fd, pat, ps, 0) != ps) + err(1, "pread"); + + if (*pat != 'x') + errx(1, "synced area lost modifications ('%c' != 'x')", *pat); + + return (0); +} diff --git a/src/regress/sys/uvm/mmap_mod/obj b/src/regress/sys/uvm/mmap_mod/obj new file mode 120000 index 000000000..6347dbd39 --- /dev/null +++ b/src/regress/sys/uvm/mmap_mod/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/uvm/mmap_mod \ No newline at end of file diff --git a/src/regress/sys/uvm/mmap_size/CVS/Entries b/src/regress/sys/uvm/mmap_size/CVS/Entries new file mode 100644 index 000000000..f89544eda --- /dev/null +++ b/src/regress/sys/uvm/mmap_size/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Jan 6 10:14:20 2005// +/mmap_size.c/1.2/Tue Mar 14 09:31:51 2006// +D diff --git a/src/regress/sys/uvm/mmap_size/CVS/Repository b/src/regress/sys/uvm/mmap_size/CVS/Repository new file mode 100644 index 000000000..20594b835 --- /dev/null +++ b/src/regress/sys/uvm/mmap_size/CVS/Repository @@ -0,0 +1 @@ +src/regress/sys/uvm/mmap_size diff --git a/src/regress/sys/uvm/mmap_size/CVS/Root b/src/regress/sys/uvm/mmap_size/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/sys/uvm/mmap_size/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/sys/uvm/mmap_size/Makefile b/src/regress/sys/uvm/mmap_size/Makefile new file mode 100644 index 000000000..2c5d809d3 --- /dev/null +++ b/src/regress/sys/uvm/mmap_size/Makefile @@ -0,0 +1,4 @@ +# $OpenBSD: Makefile,v 1.1 2005/01/06 10:14:20 otto Exp $ +PROG=mmap_size + +.include diff --git a/src/regress/sys/uvm/mmap_size/mmap_size.c b/src/regress/sys/uvm/mmap_size/mmap_size.c new file mode 100644 index 000000000..1d63763c7 --- /dev/null +++ b/src/regress/sys/uvm/mmap_size/mmap_size.c @@ -0,0 +1,43 @@ +/* $OpenBSD: mmap_size.c,v 1.2 2006/03/14 09:31:51 mickey Exp $ */ + +/* + * Public domain. 2005, Otto Moerbeek + */ + +#include +#include +#include +#include +#include +#include + +void +f(size_t sz) +{ + char *p; + p = mmap(NULL, sz, PROT_READ|PROT_WRITE, + MAP_ANON|MAP_PRIVATE, -1, (off_t)0); + + if (p == MAP_FAILED) + return; + + if (sz > 0) { + p[0] = 0; + p[sz / 2] = 0; + p[sz - 1] = 0; + } + munmap(p, sz); +} + +int +main() +{ + size_t i; + + for (i = 0; i < 0x2000; i += 0x100) { + f(i); + f(-i); + f(SIZE_T_MAX/2 - 0x1000); + } + return (0); +} diff --git a/src/regress/sys/uvm/mmap_size/obj b/src/regress/sys/uvm/mmap_size/obj new file mode 120000 index 000000000..e0f5cb1f7 --- /dev/null +++ b/src/regress/sys/uvm/mmap_size/obj @@ -0,0 +1 @@ +/usr/obj/regress/sys/uvm/mmap_size \ No newline at end of file diff --git a/src/regress/usr.bin/CVS/CVS/Entries b/src/regress/usr.bin/CVS/CVS/Entries new file mode 100644 index 000000000..859a3af27 --- /dev/null +++ b/src/regress/usr.bin/CVS/CVS/Entries @@ -0,0 +1,5 @@ +/Makefile/1.26/Mon Mar 10 20:03:21 2008// +/setdate.pl/1.1/Mon Mar 10 20:03:21 2008// +/test_cvs_import_01_seed1.txt,v/1.1/Mon Mar 10 20:03:21 2008/-ko/ +/test_opencvs_import_01_seed1.txt,v/1.1/Mon Mar 10 20:03:21 2008/-ko/ +D/import_seed//// diff --git a/src/regress/usr.bin/CVS/CVS/Repository b/src/regress/usr.bin/CVS/CVS/Repository new file mode 100644 index 000000000..7a81d0727 --- /dev/null +++ b/src/regress/usr.bin/CVS/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/cvs diff --git a/src/regress/usr.bin/CVS/CVS/Root b/src/regress/usr.bin/CVS/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/CVS/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/CVS/Entries b/src/regress/usr.bin/CVS/Entries new file mode 100644 index 000000000..9118dfd42 --- /dev/null +++ b/src/regress/usr.bin/CVS/Entries @@ -0,0 +1,27 @@ +D/basename//// +D/bc//// +D/cap_mkdb//// +D/cvs//// +D/dc//// +D/diff//// +D/diff3//// +D/dirname//// +D/file//// +D/grep//// +D/gzip//// +D/gzsig//// +D/m4//// +D/make//// +D/mandoc//// +D/mdoclint//// +D/patch//// +D/pcc//// +D/rcs//// +D/sdiff//// +D/sed//// +D/sort//// +D/ssh//// +D/tsort//// +D/xlint//// +/Makefile/1.21/Mon Apr 5 23:11:51 2010// +D/xargs//// diff --git a/src/regress/usr.bin/CVS/Makefile b/src/regress/usr.bin/CVS/Makefile new file mode 100644 index 000000000..2bac00db0 --- /dev/null +++ b/src/regress/usr.bin/CVS/Makefile @@ -0,0 +1,311 @@ +# $OpenBSD: Makefile,v 1.26 2008/03/10 20:03:21 tobias Exp $ + +# Regression tests by Niall O'Higgins and +# Tobias Stoeckmann . +# Based on OpenRCS regression framework. + +CVS?= opencvs +CVSCMD= ${CVS} -f + +REGRESS_ROOT= ${.OBJDIR}/regress_cvs_root +REGRESS_WCOPY= ${.OBJDIR}/regress_cvs_wcopy +REGRESS_SEED= ${REGRESS_WCOPY}/seed + +.if defined(REMOTE) +MYCVSROOT?= localhost:${REGRESS_ROOT} +.if defined(CVS_SERVER) +TESTFILE= $(CVS_SERVER) +.else +TESTFILE= cvs +.endif +.else +TESTFILE= ${CVS} +MYCVSROOT?= ${REGRESS_ROOT} +.endif + +DIFF= diff -u + +CLEANFILES= regress_cvs_root regress_cvs_wcopy regress_cvs_stderr \ + regress_cvs_stdout + + +# These must be done in order. +LTESTS= cvs-initial \ + cvs-import-mflag \ + cvs-checkout-dflag \ + cvs-checkout-rflag-HEAD \ + cvs-checkout-kflag-k-rflag-HEAD \ + cvs-checkout-rflag-inval_branch_rev \ + cvs-checkout-rflag-too_high \ + cvs-checkout \ + cvs-checkout-pflag \ + cvs-tag \ + cvs-add \ + cvs-add-dir \ + cvs-add-subdir_file \ + cvs-commit-Fflag \ + cvs-checkout \ + cvs-tag-branch \ + cvs-checkout-rflag_branch \ + cvs-diff-file \ + cvs-commit-to_branch \ + cvs-annotate \ + cvs-annotate-rflag-inval_branch_rev \ + cvs-annotate-rflag-inval_branch_rev-fflag \ + cvs-annotate-rflag-unknown_symbol-fflag \ + cvs-checkout-kflag-kv-rflag-1.1 \ + cvs-update-Aflag-kflag-kv \ + cvs-update-Aflag-kflag-k-rflag-1.1 \ + cvs-update-Aflag-rflag-1.1 \ + cvs-update-Aflag \ + cvs-status \ + cvs-diff \ + cvs-remove-fflag \ + cvs-status-vflag \ + cvs-log \ + cvs-rlog \ + cvs-rtag-one_more_branch \ + cvs-export +# Known to fail. +# cvs-update-for_subdir +# cvs-release-dflag + +.for t in ${LTESTS} +REGRESS_TARGETS+=test-${t} +.endfor + +# XXX - should not print anything +test-cvs-add: + @echo "initial content" > ${REGRESS_SEED}/seed2.txt + @cd ${REGRESS_SEED}; \ + ${CVSCMD} -q add seed2.txt > /dev/null 2> /dev/null +# eval 'test `${CVSCMD} -Q add seed2.txt | wc -l` -eq 0' + +test-cvs-add-dir: + @mkdir ${REGRESS_SEED}/subdir + @cd ${REGRESS_SEED}; ${CVSCMD} -q add subdir > /dev/null 2> /dev/null + @test -d ${REGRESS_SEED}/subdir/CVS && \ + test -d ${REGRESS_ROOT}/seed/subdir + +test-cvs-add-subdir_file: + @echo "initial content of seed3.txt" > ${REGRESS_SEED}/subdir/seed3.txt + @cd ${REGRESS_SEED}; \ + ${CVSCMD} -q add subdir/seed3.txt > /dev/null 2> /dev/null +# @eval 'test `${CVSCMD} -Q add seed2.txt | wc -l` -eq 0' + +test-cvs-annotate: + @cd ${REGRESS_SEED}; \ + eval 'test `${CVSCMD} -Q annotate seed1.txt 2>/dev/null | \ + wc -l` -eq 3' + +test-cvs-annotate-rflag-inval_branch_rev: + @cd ${REGRESS_SEED}; \ + eval 'test `${CVSCMD} -Q annotate -r 1.2.3.4 seed1.txt 2>/dev/null \ + | wc -l` -eq 0' + +test-cvs-annotate-rflag-inval_branch_rev-fflag: + @cd ${REGRESS_SEED}; \ + eval 'test `${CVSCMD} -Q annotate -f -r 1.2.3.4 seed1.txt \ + 2>/dev/null | wc -l` -eq 3' + +test-cvs-annotate-rflag-unknown_symbol-fflag: + @cd ${REGRESS_SEED}; \ + eval 'test `${CVSCMD} -Q annotate -f -r UNKNOWN seed1.txt \ + 2>/dev/null | wc -l` -eq 0' + +test-cvs-checkout: + @rm -rf ${REGRESS_WCOPY} + @mkdir ${REGRESS_WCOPY} + @cd ${REGRESS_WCOPY}; ${CVSCMD} -Q -d ${MYCVSROOT} co seed > /dev/null + @test -f ${REGRESS_SEED}/seed1.txt + +test-cvs-checkout-kflag-k-rflag-HEAD: + @rm -rf ${REGRESS_WCOPY} + @mkdir ${REGRESS_WCOPY} + @cd ${REGRESS_WCOPY}; \ + ${CVSCMD} -Q -d ${MYCVSROOT} co -rHEAD -kkv seed > /dev/null + @test -f ${REGRESS_SEED}/seed1.txt + @eval 'test `grep -c -e THEAD -e -kkv \ + ${REGRESS_SEED}/CVS/Entries | wc -l` -eq 1' + @eval 'test `grep -c Id$ \ + ${REGRESS_SEED}/seed1.txt | wc -l` -eq 1' + +test-cvs-checkout-kflag-kv-rflag-1.1: + @rm -rf ${REGRESS_WCOPY} + @mkdir ${REGRESS_WCOPY} + @cd ${REGRESS_WCOPY}; \ + ${CVSCMD} -Q -d ${MYCVSROOT} co -r 1.1 -kkv seed > /dev/null + @test -f ${REGRESS_SEED}/seed1.txt; + @eval 'test `grep -c -e T1.1 -e -kkv \ + ${REGRESS_SEED}/CVS/Entries | wc -l` -eq 1' + +test-cvs-checkout-pflag: + @eval 'test `${CVSCMD} -Q -d ${MYCVSROOT} checkout \ + -p seed/seed1.txt 2>/dev/null | wc -l` -eq 2' + +test-cvs-checkout-rflag_branch: + @rm -rf ${REGRESS_WCOPY} + @mkdir ${REGRESS_WCOPY} + @cd ${REGRESS_WCOPY}; \ + ${CVSCMD} -Q -d ${MYCVSROOT} co -r FIRST_BRANCH seed > /dev/null + @test -f ${REGRESS_SEED}/seed1.txt + @eval 'test `grep -c TFIRST_BRANCH ${REGRESS_SEED}/CVS/Entries` -eq 2' + +test-cvs-checkout-rflag-inval_branch_rev: + @rm -rf ${REGRESS_WCOPY} + @mkdir ${REGRESS_WCOPY} + @cd ${REGRESS_WCOPY}; ${CVSCMD} -Q -d ${MYCVSROOT} co -r1.2.3.4 seed + @eval 'test ! -f ${REGRESS_SEED}/seed1.txt' + +test-cvs-checkout-rflag-too_high: + @rm -rf ${REGRESS_WCOPY} + @mkdir ${REGRESS_WCOPY} + @cd ${REGRESS_WCOPY}; ${CVSCMD} -Q -d ${MYCVSROOT} co -r1.5 seed + @eval 'test ! -f ${REGRESS_SEED}/seed1.txt' + +test-cvs-checkout-rflag-HEAD: + @rm -rf ${REGRESS_WCOPY} + @mkdir ${REGRESS_WCOPY} + @cd ${REGRESS_WCOPY}; \ + ${CVSCMD} -Q -d ${MYCVSROOT} co -rHEAD seed > /dev/null + @test -f ${REGRESS_SEED}/seed1.txt; + @eval 'test `grep -c THEAD ${REGRESS_SEED}/CVS/Entries | wc -l` -eq 1' + +test-cvs-checkout-rflag-1.1: + @rm -rf ${REGRESS_WCOPY} + @mkdir ${REGRESS_WCOPY} + @cd ${REGRESS_WCOPY}; \ + ${CVSCMD} -Q -d ${MYCVSROOT} co -r 1.1 seed > /dev/null + @test -f ${REGRESS_SEED}/seed1.txt && test -f ${REGRESS_SEED}/seed2.txt + +test-cvs-checkout-dflag: + @rm -rf ${REGRESS_WCOPY} + @mkdir ${REGRESS_WCOPY} + @cd ${REGRESS_WCOPY}; \ + ${CVSCMD} -Q -d ${MYCVSROOT} co -d seed2 seed > /dev/null + @test -d ${REGRESS_WCOPY}/seed2/CVS + +test-cvs-checkout-subdir: + @rm -rf ${REGRESS_WCOPY} + @mkdir ${REGRESS_WCOPY} + @cd ${REGRESS_WCOPY}; \ + ${CVSCMD} -Q -d ${MYCVSROOT} co seed/subdir > /dev/null + @test -f ${REGRESS_SEED}/subdir/seed3.txt && \ + test ! -f ${REGRESS_SEED}/seed2.txt + +test-cvs-commit-Fflag: + @sleep 1 + @echo "second line" >> ${REGRESS_SEED}/seed1.txt + @echo "commit seed repo" > ${REGRESS_WCOPY}/logmsg.txt + @cd ${REGRESS_SEED}; ${CVSCMD} commit \ + -F ${REGRESS_WCOPY}/logmsg.txt > /dev/null + @grep "^@commit seed repo" \ + ${REGRESS_ROOT}/seed/seed1.txt,v > /dev/null + @eval 'test `cat ${REGRESS_ROOT}/seed/seed1.txt,v | wc -l` -eq 60' + @test -f ${REGRESS_ROOT}/seed/seed2.txt,v + +test-cvs-commit-to_branch: + @sleep 1 + @cd ${REGRESS_SEED}; ${CVSCMD} commit -m'first branch seed' > /dev/null + @eval 'test `cat ${REGRESS_ROOT}/seed/seed1.txt,v | wc -l` -eq 80' + @eval 'test `grep -c TFIRST_BRANCH ${REGRESS_SEED}/CVS/Entries` -eq 2' + +test-cvs-diff: + @sleep 1 + @echo "modified" > ${REGRESS_SEED}/seed2.txt + @cd ${REGRESS_SEED}; eval 'test `${CVSCMD} -Q diff | wc -l` -eq 9' + +test-cvs-diff-file: + @sleep 1 + @echo "first branch line" >> ${REGRESS_SEED}/seed1.txt + @cd ${REGRESS_SEED}; \ + eval 'test `${CVSCMD} -Q diff seed1.txt | wc -l` -eq 7' + +test-cvs-export: + @rm -rf ${REGRESS_WCOPY} + @mkdir ${REGRESS_WCOPY} + @cd ${REGRESS_WCOPY}; \ + ${CVSCMD} -Q -d ${MYCVSROOT} export -r HEAD seed > /dev/null + @test -f ${REGRESS_SEED}/seed1.txt + +test-cvs-import-mflag: + @cd ${.CURDIR}/import_seed; \ + touch -t 200001010100 seed1.txt; \ + ${CVSCMD} -Q -d ${MYCVSROOT} import \ + -m'import seed repo' seed regress regress_import > /dev/null + @chmod u+w ${REGRESS_ROOT}/seed/seed1.txt,v + @perl ${.CURDIR}/setdate.pl ${REGRESS_ROOT}/seed/seed1.txt,v 1.1 \ + 2000.01.01.00.00.00 + @perl ${.CURDIR}/setdate.pl ${REGRESS_ROOT}/seed/seed1.txt,v 1.1.1.1 \ + 2000.01.01.00.00.00 + @sed "s/author `whoami`/author user/" \ + ${REGRESS_ROOT}/seed/seed1.txt,v | \ + ${DIFF} - ${.CURDIR}/test_${TESTFILE}_import_01_seed1.txt,v + +test-cvs-initial: clean + @${CVSCMD} -d ${MYCVSROOT} init + @test -d ${REGRESS_ROOT}/CVSROOT + +test-cvs-log: + @cd ${REGRESS_SEED}; eval 'test `${CVSCMD} -Q log | wc -l` -eq 68' + +test-cvs-release-dflag: test-cvs-checkout + @cd ${REGRESS_WCOPY}; ${CVSCMD} -Q -d ${MYCVSROOT} release -d seed + @test ! -d ${.OBJDIR}/regress_cvs_wcopy/seed + @eval 'test `grep '^F' ${REGRESS_ROOT}/CVSROOT/history | wc -l` -eq 1' + +test-cvs-remove-fflag: + @cd ${REGRESS_SEED}; ${CVSCMD} -Q remove -f seed1.txt + @test ! -f ${REGRESS_SEED}/seed1.txt + +test-cvs-rlog: + @eval 'test `${CVSCMD} -Q -d ${MYCVSROOT} rlog seed | wc -l` -eq 65' + +test-cvs-status: + @cd ${REGRESS_SEED}; eval 'test `${CVSCMD} -Q status | wc -l` -eq 18' + +test-cvs-status-vflag: + @cd ${REGRESS_SEED}; eval 'test `${CVSCMD} -Q status -v | wc -l` -eq 30' + +test-cvs-tag: + @cd ${REGRESS_SEED}; ${CVSCMD} -Q tag FIRST_TAG > /dev/null + @grep FIRST_TAG ${REGRESS_ROOT}/seed/seed1.txt,v > /dev/null + +test-cvs-tag-branch: + @cd ${REGRESS_SEED}; ${CVSCMD} -Q tag -b FIRST_BRANCH > /dev/null + @grep FIRST_BRANCH ${REGRESS_ROOT}/seed/seed1.txt,v > /dev/null + +test-cvs-rtag-one_more_branch: + @${CVSCMD} -d ${MYCVSROOT} -Q rtag -b SECOND_BRANCH seed > /dev/null + @grep SECOND_BRANCH ${REGRESS_ROOT}/seed/seed2.txt,v \ + | grep 4 > /dev/null + +test-cvs-update-Aflag: + @cd ${REGRESS_SEED}; ${CVSCMD} -Q update -A > /dev/null + @eval 'test `grep -c -e T1 -e kkv ${REGRESS_SEED}/CVS/Entries` -eq 0' + +test-cvs-update-Aflag-kflag-kv: + @cd ${REGRESS_SEED}; ${CVSCMD} -Q update -A -kv > /dev/null + @eval 'test `grep -c T1 ${REGRESS_SEED}/CVS/Entries` -eq 0' + @eval 'test `grep -c kv ${REGRESS_SEED}/CVS/Entries` -eq 2' + +test-cvs-update-Aflag-kflag-k-rflag-1.1: + @cd ${REGRESS_SEED}; ${CVSCMD} -Q update -A -kk -r 1.1 > /dev/null + @eval 'test `grep -c T1 ${REGRESS_SEED}/CVS/Entries` -eq 2' + @eval 'test `grep -c kk ${REGRESS_SEED}/CVS/Entries` -eq 2' + +test-cvs-update-Aflag-rflag-1.1: + @cd ${REGRESS_SEED}; ${CVSCMD} -Q update -A -r 1.1 > /dev/null + @eval 'test `grep -c T1 ${REGRESS_SEED}/CVS/Entries` -eq 2' + @eval 'test `grep -c kk ${REGRESS_SEED}/CVS/Entries` -eq 0' + +test-cvs-update-for_subdir: + @cd ${REGRESS_SEED}; ${CVSCMD} -Q update > /dev/null + @test -f ${REGRESS_SEED}/subdir/seed3.txt && \ + test ! -f ${REGRESS_SEED}/seed1.txt && \ + test ! -f ${REGRESS_SEED}/seed2.txt + +clean: + @rm -rf ${CLEANFILES} + +.include diff --git a/src/regress/usr.bin/CVS/Repository b/src/regress/usr.bin/CVS/Repository new file mode 100644 index 000000000..d42b8b922 --- /dev/null +++ b/src/regress/usr.bin/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin diff --git a/src/regress/usr.bin/CVS/Root b/src/regress/usr.bin/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/CVS/import_seed/CVS/Entries b/src/regress/usr.bin/CVS/import_seed/CVS/Entries new file mode 100644 index 000000000..881d06e60 --- /dev/null +++ b/src/regress/usr.bin/CVS/import_seed/CVS/Entries @@ -0,0 +1,2 @@ +/seed1.txt/1.1/Tue Jun 5 05:49:41 2007// +D diff --git a/src/regress/usr.bin/CVS/import_seed/CVS/Repository b/src/regress/usr.bin/CVS/import_seed/CVS/Repository new file mode 100644 index 000000000..8b26ef23f --- /dev/null +++ b/src/regress/usr.bin/CVS/import_seed/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/cvs/import_seed diff --git a/src/regress/usr.bin/CVS/import_seed/CVS/Root b/src/regress/usr.bin/CVS/import_seed/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/CVS/import_seed/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/CVS/import_seed/seed1.txt b/src/regress/usr.bin/CVS/import_seed/seed1.txt new file mode 100644 index 000000000..60b0e4763 --- /dev/null +++ b/src/regress/usr.bin/CVS/import_seed/seed1.txt @@ -0,0 +1,2 @@ +$Id: seed1.txt,v 1.1 2007/06/05 05:49:41 niallo Exp $ +a test file for the seed repository diff --git a/src/regress/usr.bin/CVS/setdate.pl b/src/regress/usr.bin/CVS/setdate.pl new file mode 100644 index 000000000..a265dc2d5 --- /dev/null +++ b/src/regress/usr.bin/CVS/setdate.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl +# $OpenBSD: setdate.pl,v 1.1 2008/03/10 20:03:21 tobias Exp $ +# +# Sets "date x;" of specified revision in rcsfile to date. +# This script is needed to make -D checks available. CVS adjusts dates +# to gmt, so it is impossible to write tests which can be used in +# all timezones. +# +# usage: setdate.pl rcsfile revision date + +my $gotrev; +my @lines; + +die "usage: setdate.pl file revision date\n" if ($#ARGV != 2); + +open FILE, "< $ARGV[0]" or die "cannot open file $ARGV[0] for reading\n"; +@lines = ; +close FILE; + +$gotrev = 0; +open FILE, "> $ARGV[0]" or die "cannot open file $ARGV[0] for writing\n"; +for (@lines) { + if ($gotrev) { + if (m/^date\s+(.*?);/) { + s/$1/$ARGV[2]/; + break; + } + $gotrev = 0; + } + $gotrev = 1 if (m/^$ARGV[1]\n$/); + print FILE "$_"; +} +close FILE; + diff --git a/src/regress/usr.bin/CVS/test_cvs_import_01_seed1.txt,v b/src/regress/usr.bin/CVS/test_cvs_import_01_seed1.txt,v new file mode 100644 index 000000000..0b745d3ca --- /dev/null +++ b/src/regress/usr.bin/CVS/test_cvs_import_01_seed1.txt,v @@ -0,0 +1,40 @@ +head 1.1; +branch 1.1.1; +access ; +symbols regress_import:1.1.1.1 regress:1.1.1; +locks ; strict; +comment @# @; + + +1.1 +date 2000.01.01.00.00.00; author user; state Exp; +branches 1.1.1.1; +next ; + +1.1.1.1 +date 2000.01.01.00.00.00; author user; state Exp; +branches ; +next ; + + +desc +@@ + + + +1.1 +log +@Initial revision +@ +text +@$Id: seed1.txt,v 1.1 2007/06/05 05:49:41 niallo Exp $ +a test file for the seed repository +@ + + +1.1.1.1 +log +@import seed repo +@ +text +@@ diff --git a/src/regress/usr.bin/CVS/test_opencvs_import_01_seed1.txt,v b/src/regress/usr.bin/CVS/test_opencvs_import_01_seed1.txt,v new file mode 100644 index 000000000..ca709c9e9 --- /dev/null +++ b/src/regress/usr.bin/CVS/test_opencvs_import_01_seed1.txt,v @@ -0,0 +1,42 @@ +head 1.1; +branch 1.1.1; +access; +symbols + regress_import:1.1.1.1 + regress:1.1.0.1; +locks; strict; +comment @# @; + + +1.1 +date 2000.01.01.00.00.00; author user; state Exp; +branches + 1.1.1.1; +next ; + +1.1.1.1 +date 2000.01.01.00.00.00; author user; state Exp; +branches; +next ; + + +desc +@@ + + +1.1 +log +@Initial revision +@ +text +@$Id: seed1.txt,v 1.1 2007/06/05 05:49:41 niallo Exp $ +a test file for the seed repository +@ + + +1.1.1.1 +log +@import seed repo +@ +text +@@ diff --git a/src/regress/usr.bin/Makefile b/src/regress/usr.bin/Makefile new file mode 100644 index 000000000..67983733e --- /dev/null +++ b/src/regress/usr.bin/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.21 2010/03/25 01:43:47 schwarze Exp $ +# $NetBSD: Makefile,v 1.1 1997/12/30 23:27:11 cgd Exp $ + +SUBDIR+= basename bc cap_mkdb dc diff diff3 dirname grep gzip gzsig +SUBDIR+= m4 make patch rcs sdiff sed sort ssh tsort xargs + +.include diff --git a/src/regress/usr.bin/basename/CVS/Entries b/src/regress/usr.bin/basename/CVS/Entries new file mode 100644 index 000000000..2ee24acce --- /dev/null +++ b/src/regress/usr.bin/basename/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Apr 7 07:24:27 2005// +/basename.sh/1.2/Tue Apr 12 06:45:03 2005// +D diff --git a/src/regress/usr.bin/basename/CVS/Repository b/src/regress/usr.bin/basename/CVS/Repository new file mode 100644 index 000000000..96eeff44e --- /dev/null +++ b/src/regress/usr.bin/basename/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/basename diff --git a/src/regress/usr.bin/basename/CVS/Root b/src/regress/usr.bin/basename/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/basename/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/basename/Makefile b/src/regress/usr.bin/basename/Makefile new file mode 100644 index 000000000..9277e2d25 --- /dev/null +++ b/src/regress/usr.bin/basename/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/07 07:24:27 otto Exp $ +# $NetBSD: Makefile,v 1.1 2005/04/04 16:48:45 peter Exp $ + +regress: + @sh ${.CURDIR}/basename.sh + +.include diff --git a/src/regress/usr.bin/basename/basename.sh b/src/regress/usr.bin/basename/basename.sh new file mode 100644 index 000000000..89279a24e --- /dev/null +++ b/src/regress/usr.bin/basename/basename.sh @@ -0,0 +1,42 @@ +#!/bin/sh +# +# $OpenBSD: basename.sh,v 1.2 2005/04/12 06:45:03 otto Exp $ +# $NetBSD: basename.sh,v 1.1 2005/04/04 16:48:45 peter Exp $ + +test_basename() +{ + echo "Testing \"$1\"" + result=`basename "$1" 2>&1` + if [ "$result" != "$2" ]; then + echo "Expected \"$2\", but got \"$result\"" + exit 1 + fi +} + +test_basename_suffix() +{ + echo "Testing suffix \"$1\" \"$2\"" + result=`basename "$1" "$2" 2>&1` + if [ "$result" != "$3" ]; then + echo "Expected \"$3\", but got \"$result\"" + exit 1 + fi +} + +# Tests without suffix +test_basename "" "" +test_basename "/usr/bin" "bin" +test_basename "/usr" "usr" +test_basename "/" "/" +test_basename "///" "/" +test_basename "/usr//" "usr" +test_basename "//usr//bin" "bin" +test_basename "usr" "usr" +test_basename "usr/bin" "bin" + +# Tests with suffix +test_basename_suffix "/usr/bin" "n" "bi" +test_basename_suffix "/usr/bin" "bin" "bin" +test_basename_suffix "/" "/" "/" +test_basename_suffix "/usr/bin/gcc" "cc" "g" +test_basename_suffix "/usr/bin/gcc" "xx" "gcc" diff --git a/src/regress/usr.bin/basename/obj b/src/regress/usr.bin/basename/obj new file mode 120000 index 000000000..82677b4f7 --- /dev/null +++ b/src/regress/usr.bin/basename/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/basename \ No newline at end of file diff --git a/src/regress/usr.bin/bc/CVS/Entries b/src/regress/usr.bin/bc/CVS/Entries new file mode 100644 index 000000000..ee6e2e31e --- /dev/null +++ b/src/regress/usr.bin/bc/CVS/Entries @@ -0,0 +1,38 @@ +/Makefile/1.10/Fri Oct 5 16:58:21 2007// +/t1.in/1.1/Thu Sep 25 19:40:07 2003// +/t1.out/1.1/Thu Sep 25 19:40:07 2003// +/t10.in/1.1/Sun Oct 19 19:22:48 2003// +/t10.out/1.1/Sun Oct 19 19:22:48 2003// +/t11.in/1.1/Wed Oct 22 12:26:43 2003// +/t11.out/1.1/Wed Oct 22 12:26:43 2003// +/t12.in/1.1/Tue Nov 11 09:18:21 2003// +/t12.out/1.2/Thu Nov 13 19:42:41 2003// +/t13.in/1.1/Tue Nov 11 19:50:50 2003// +/t13.out/1.1/Tue Nov 11 19:50:50 2003// +/t14.in/1.1/Mon Nov 17 11:23:02 2003// +/t14.out/1.1/Mon Nov 17 11:23:02 2003// +/t15.in/1.1/Mon Nov 17 11:23:02 2003// +/t15.out/1.1/Mon Nov 17 11:23:02 2003// +/t16.in/1.1/Mon Nov 17 11:23:02 2003// +/t16.out/1.1/Mon Nov 17 11:23:02 2003// +/t17.in/1.1/Tue Dec 2 09:02:02 2003// +/t17.out/1.1/Tue Dec 2 09:02:02 2003// +/t18.in/1.1/Tue Dec 9 12:49:01 2003// +/t18.out/1.1/Tue Dec 9 12:49:01 2003// +/t2.in/1.1/Thu Sep 25 19:40:07 2003// +/t2.out/1.1/Thu Sep 25 19:40:07 2003// +/t3.in/1.1/Thu Sep 25 19:40:07 2003// +/t3.out/1.1/Thu Sep 25 19:40:07 2003// +/t4.in/1.1/Thu Sep 25 19:40:07 2003// +/t4.out/1.1/Thu Sep 25 19:40:07 2003// +/t5.in/1.1/Thu Sep 25 19:40:07 2003// +/t5.out/1.1/Thu Sep 25 19:40:07 2003// +/t6.in/1.1/Thu Sep 25 19:40:07 2003// +/t6.out/1.1/Thu Sep 25 19:40:07 2003// +/t7.in/1.1/Tue Oct 21 20:01:15 2003// +/t7.out/1.1/Tue Oct 21 20:01:16 2003// +/t8.in/1.1/Sat Oct 18 19:58:51 2003// +/t8.out/1.1/Sat Oct 18 19:58:51 2003// +/t9.in/1.1/Sat Oct 18 19:58:51 2003// +/t9.out/1.1/Sat Oct 18 19:58:51 2003// +D diff --git a/src/regress/usr.bin/bc/CVS/Repository b/src/regress/usr.bin/bc/CVS/Repository new file mode 100644 index 000000000..a59ad491d --- /dev/null +++ b/src/regress/usr.bin/bc/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/bc diff --git a/src/regress/usr.bin/bc/CVS/Root b/src/regress/usr.bin/bc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/bc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/bc/Makefile b/src/regress/usr.bin/bc/Makefile new file mode 100644 index 000000000..ccc215b78 --- /dev/null +++ b/src/regress/usr.bin/bc/Makefile @@ -0,0 +1,43 @@ +# $OpenBSD: Makefile,v 1.10 2007/10/05 16:58:21 otto Exp $ + +BC=bc + +REGRESS_TARGETS=t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 + +# .in: input file +# .out: desired result + +# t1: bc.library +# t2: while loop +# t3: for loop +# t4: deeply nested while loop +# t5: function definition and call +# t6: empty if statement +# t7: assignment ops +# t8: continue ops +# t9: more continue +# t10: for with empty E's +# t11: if else +# t12: print +# t13: alternive forms of define and return +# t14: compare +# t15: boolean and +# t16: boolean or +# t17: long var names +# t18: towers of hanoi + +all: clean + +.SUFFIXES: .in + +.in: + @echo ${*} + @${BC} -d < ${.CURDIR}/${*}.in > ${*}.log + @cmp -s ${.CURDIR}/${*}.out ${*}.log || \ + (echo "XXX ${*} failed" && false) + +# Clean all files generated +clean: + rm -f *.log + +.include diff --git a/src/regress/usr.bin/bc/obj b/src/regress/usr.bin/bc/obj new file mode 120000 index 000000000..71f83e6cc --- /dev/null +++ b/src/regress/usr.bin/bc/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/bc \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t1.in b/src/regress/usr.bin/bc/t1.in new file mode 100644 index 000000000..e7b878c86 --- /dev/null +++ b/src/regress/usr.bin/bc/t1.in @@ -0,0 +1,234 @@ +/* $OpenBSD: t1.in,v 1.1 2003/09/25 19:40:07 otto Exp $ */ + +/* + * Copyright (C) Caldera International Inc. 2001-2002. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code and documentation must retain the above + * copyright notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed or owned by Caldera + * International, Inc. + * 4. Neither the name of Caldera International, Inc. nor the names of other + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * USE OF THE SOFTWARE PROVIDED FOR UNDER THIS LICENSE BY CALDERA + * INTERNATIONAL, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL CALDERA INTERNATIONAL, INC. BE LIABLE FOR ANY DIRECT, + * INDIRECT INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * @(#)bc.library 5.1 (Berkeley) 4/17/91 + */ + +scale = 20 +define e(x){ + auto a, b, c, d, e, g, t, w, y + + t = scale + scale = t + .434*x + 1 + + w = 0 + if(x<0){ + x = -x + w = 1 + } + y = 0 + while(x>2){ + x = x/2 + y = y + 1 + } + + a=1 + b=1 + c=b + d=1 + e=1 + for(a=1;1==1;a++){ + b=b*x + c=c*a+b + d=d*a + g = c/d + if(g == e){ + g = g/1 + while(y--){ + g = g*g + } + scale = t + if(w==1) return(1/g) + return(g/1) + } + e=g + } +} + +define l(x){ + auto a, b, c, d, e, f, g, u, s, t + if(x <=0) return(1-10^scale) + t = scale + + f=1 + scale = scale + scale(x) - length(x) + 1 + s=scale + while(x > 2){ + s = s + (length(x)-scale(x))/2 + 1 + if(s>0) scale = s + x = sqrt(x) + f=f*2 + } + while(x < .5){ + s = s + (length(x)-scale(x))/2 + 1 + if(s>0) scale = s + x = sqrt(x) + f=f*2 + } + + scale = t + length(f) - scale(f) + 1 + u = (x-1)/(x+1) + + scale = scale + 1.1*length(t) - 1.1*scale(t) + s = u*u + b = 2*f + c = b + d = 1 + e = 1 + for(a=3;1==1;a=a+2){ + b=b*s + c=c*a+d*b + d=d*a + g=c/d + if(g==e){ + scale = t + return(u*c/d) + } + e=g + } +} + +define s(x){ + auto a, b, c, s, t, y, p, n, i + t = scale + y = x/.7853 + s = t + length(y) - scale(y) + if(s=0) n = (x/(2*p)+1)/2 + if(x<0) n = (x/(2*p)-1)/2 + x = x - 4*n*p + if(n%2!=0) x = -x + + scale = t + length(1.2*t) - scale(1.2*t) + y = -x*x + a = x + b = 1 + s = x + for(i=3; 1==1; i=i+2){ + a = a*y + b = b*i*(i-1) + c = a/b + if(c==0){scale=t; return(s/1)} + s = s+c + } +} + +define c(x){ + auto t + t = scale + scale = scale+1 + x = s(x+2*a(1)) + scale = t + return(x/1) +} + +define a(x){ + auto a, b, c, d, e, f, g, s, t + if(x==0) return(0) + if(x==1) { + if(scale<52) { + return(.7853981633974483096156608458198757210492923498437764/1) + } + } + t = scale + f=1 + while(x > .5){ + scale = scale + 1 + x= -(1-sqrt(1.+x*x))/x + f=f*2 + } + while(x < -.5){ + scale = scale + 1 + x = -(1-sqrt(1.+x*x))/x + f=f*2 + } + s = -x*x + b = f + c = f + d = 1 + e = 1 + for(a=3;1==1;a=a+2){ + b=b*s + c=c*a+d*b + d=d*a + g=c/d + if(g==e){ + scale = t + return(x*c/d) + } + e=g + } +} + +define j(n,x){ + auto a,b,c,d,e,g,i,s,k,t + + t = scale + k = 1.36*x + 1.16*t - n + k = length(k) - scale(k) + if(k>0) scale = scale + k + + s= -x*x/4 + if(n<0){ + n= -n + x= -x + } + a=1 + c=1 + for(i=1;i<=n;i++){ + a=a*x + c = c*2*i + } + b=a + d=1 + e=1 + for(i=1;1;i++){ + a=a*s + b=b*i*(n+i) + a + c=c*i*(n+i) + g=b/c + if(g==e){ + scale = t + return(g/1) + } + e=g + } +} diff --git a/src/regress/usr.bin/bc/t1.out b/src/regress/usr.bin/bc/t1.out new file mode 100644 index 000000000..246913c14 --- /dev/null +++ b/src/regress/usr.bin/bc/t1.out @@ -0,0 +1,63 @@ + + + + + + + 20k +[ 0lx-sx 1sw]s0 +[lx 2/sxly 1+sylx 2<1]s1 +[lglg*sglyd1-sy 0!=4]s4 +[ 1lg/Lxs.Las.Lbs.Lcs.Lds.Les.Lgs.Lts.Lws.Lys. 4Q]s5 +[lg 1/sglyd1-sy 0!=4 ltklw 1=5 lg 1/Lxs.Las.Lbs.Lcs.Lds.Les.Lgs.Lts.Lws.Lys. 3Q]s3 +[lblx*sblcla*lb+scldla*sdlcld/sglgle=3 lgselad1+sas. 1 1=2]s2 +[0Sy0Sw0St0Sg0Se0Sd0Sc0Sb0SaSxKstlt .434lx*+ 1+k 0swlx 0>0 0sylx 2<1 1sa 1sblbsc 1sd 1se 1dsas. 1 1=2 Lxs.Las.Lbs.Lcs.Lds.Les.Lgs.Lts.Lws.Lys.0 1Q]s + + + +[ 1 10K^-Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lus.Lss.Lts. 2Q]s6 +[lsk]s8 +[lslxZlxX- 2/+ 1+ssls 0<8 lxvsxlf 2*sflx 2<7]s7 +[lsk]s: +[lslxZlxX- 2/+ 1+ssls 0<: lxvsxlf 2*sflx .5>9]s9 +[ltklulc*ld/Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lus.Lss.Lts. 3Q]s< +[lbls*sblcla*ldlb*+scldla*sdlcld/sglgle=< lgsela 2+dsas. 1 1=;]s; +[0St0Ss0Su0Sg0Sf0Se0Sd0Sc0Sb0SaSxlx 0!<6 Kst 1sfKlxX+lxZ- 1+kKsslx 2<7 lx .5>9 ltlfZ+lfX- 1+klx 1-lx 1+/suK 1.1ltZ*+ 1.1ltX*-klulu*ss 2lf*sblbsc 1sd 1se 3dsas. 1 1=; Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lus.Lss.Lts.0 1Q]s + + + +[ltss]s= +[lx 2lp*/ 1+ 2/sn]s> +[lx 2lp*/ 1- 2/sn]s? +[ 0lx-sx]s@ +[ltkls 1/Lxs.Las.Lbs.Lcs.Lss.Lts.Lys.Lps.Lns.Lis. 3Q]sB +[laly*salbli*li 1-*sblalb/sclc 0=B lslc+ssli 2+dsis. 1 1=A]sA +[0Si0Sn0Sp0Sy0St0Ss0Sc0Sb0SaSxKstlx .7853/syltlyZ+lyX-sslslt>= lsk 1lxsp 0klx 0!>> lx 0>? lx 4ln*lp*-sxln 2% 0!=@ lt 1.2lt*Z+ 1.2lt*X-k 0lx-lx*sylxsa 1sblxss 3dsis. 1 1=A Lxs.Las.Lbs.Lcs.Lss.Lts.Lys.Lps.Lns.Lis.0 1Q]s + + + +[0StSxKstK 1+klx 2 1lx*+lxsxltklx 1/Lxs.Lts. 1QLxs.Lts.0 1Q]s + + + +[ 0Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lss.Lts. 2Q]sC +[ .7853981633974483096156608458198757210492923498437764 1/Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lss.Lts. 3Q]sE +[K 52>E ]sD +[K 1+k 0 1 1.lxlx*+v--lx/sxlf 2*sflx .5G]sG +[ltklxlc*ld/Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lss.Lts. 3Q]sI +[lbls*sblcla*ldlb*+scldla*sdlcld/sglgle=I lgsela 2+dsas. 1 1=H]sH +[0St0Ss0Sg0Sf0Se0Sd0Sc0Sb0SaSxlx 0=C lx 1=D Kst 1sflx .5G 0lx-lx*sslfsblfsc 1sd 1se 3dsas. 1 1=H Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lss.Lts.0 1Q]s + + + +[Klk+k]sJ +[ 0ln-sn 0lx-sx]sK +[lalx*salc 2*li*sclid1+sis.liln!K 1sa 1sc 1dsis.liln!0]s0 + 0s.la 1>0 +[ 0s.la 1>0]s0 + 1dsas.la 1>0 +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t11.in b/src/regress/usr.bin/bc/t11.in new file mode 100644 index 000000000..afd46f4ab --- /dev/null +++ b/src/regress/usr.bin/bc/t11.in @@ -0,0 +1,12 @@ +for (i = 0; i < 5; i++) { + if (i > 0) { + if (i < 3) { + "i > 0 && i < 3" + } else { + "i > 0 && i >= 3" + } + } else "i == 0" + " " + if (i == 0) "0 " else if (i == 1) "1 " else "* " + i +} diff --git a/src/regress/usr.bin/bc/t11.out b/src/regress/usr.bin/bc/t11.out new file mode 100644 index 000000000..4f77102e7 --- /dev/null +++ b/src/regress/usr.bin/bc/t11.out @@ -0,0 +1,11 @@ +[[i > 0 && i < 3]P]s2 +[[i > 0 && i >= 3]P]s3 +[li 3>2e3 ]s1 +[[i == 0]P]s4 +[[1 ]P]s7 +[[* ]P]s8 +[[0 ]P]s5 +[li 1=7e8 ]s6 +[li 0<1e4 [ ]Pli 0=5e6 lips.lid1+sis.li 5>0]s0 + 0dsis.li 5>0 +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t12.in b/src/regress/usr.bin/bc/t12.in new file mode 100644 index 000000000..85c9355a5 --- /dev/null +++ b/src/regress/usr.bin/bc/t12.in @@ -0,0 +1,5 @@ +print 1,.,1+1,"",3 +"X\Y" +print "\a\b\t\f\n\q\ra\\b[] +foo" +. diff --git a/src/regress/usr.bin/bc/t12.out b/src/regress/usr.bin/bc/t12.out new file mode 100644 index 000000000..7899fec5a --- /dev/null +++ b/src/regress/usr.bin/bc/t12.out @@ -0,0 +1,7 @@ + 1ds.nl.ds.n 1 1+ds.n[]n 3ds.n +[X\\Y]P +[ +" a\\b\[\] +foo]n +l.ps. +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t13.in b/src/regress/usr.bin/bc/t13.in new file mode 100644 index 000000000..55ebdb829 --- /dev/null +++ b/src/regress/usr.bin/bc/t13.in @@ -0,0 +1,11 @@ +#line comment +# +define f() { + return + return 1+2 + return (1+2) + return () +} +define f() +{ +} diff --git a/src/regress/usr.bin/bc/t13.out b/src/regress/usr.bin/bc/t13.out new file mode 100644 index 000000000..d2401a89f --- /dev/null +++ b/src/regress/usr.bin/bc/t13.out @@ -0,0 +1,9 @@ + + +[0 1Q 1 2+ 1Q 1 2+ 1Q0 1Q0 1Q]s + + +[0 1Q]s + + +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t14.in b/src/regress/usr.bin/bc/t14.in new file mode 100644 index 000000000..8f0171507 --- /dev/null +++ b/src/regress/usr.bin/bc/t14.in @@ -0,0 +1,28 @@ +if ((0 == 0)) "ok" else "nok" +if ((1 == 0)) "nok" else "ok" +if ((0 == 1)) "nok" else "ok" +print "\n" +if ((0 != 0)) "nok" else "ok" +if ((1 != 0)) "ok" else "nok" +if ((0 != 1)) "ok" else "nok" +print "\n" +if ((0 == 0)) "ok" else "nok" +if ((1 == 0)) "nok" else "ok" +if ((0 == 1)) "nok" else "ok" +print "\n" +if ((0 < 1)) "ok" else "nok" +if ((1 < 0)) "nok" else "ok" +if ((1 < 1)) "nok" else "ok" +print "\n" +if ((0 <= 1)) "ok" else "nok" +if ((1 <= 0)) "nok" else "ok" +if ((1 <= 1)) "ok" else "nok" +print "\n" +if ((0 > 1)) "nok" else "ok" +if ((1 > 0)) "ok" else "nok" +if ((1 > 1)) "nok" else "ok" +print "\n" +if ((0 >= 1)) "nok" else "ok" +if ((1 >= 0)) "ok" else "nok" +if ((1 >= 1)) "ok" else "nok" +print "\n" diff --git a/src/regress/usr.bin/bc/t14.out b/src/regress/usr.bin/bc/t14.out new file mode 100644 index 000000000..cd4a5da82 --- /dev/null +++ b/src/regress/usr.bin/bc/t14.out @@ -0,0 +1,78 @@ +[[ok]P]s0 +[[nok]P]s1 + 0 0G 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 1 0G 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 0 1G 0!=0e1 +[ +]n +[[nok]P]s0 +[[ok]P]s1 + 0 0GN 0!=0e1 +[[ok]P]s0 +[[nok]P]s1 + 1 0GN 0!=0e1 +[[ok]P]s0 +[[nok]P]s1 + 0 1GN 0!=0e1 +[ +]n +[[ok]P]s0 +[[nok]P]s1 + 0 0G 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 1 0G 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 0 1G 0!=0e1 +[ +]n +[[ok]P]s0 +[[nok]P]s1 + 1 0( 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 0 1( 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 1 1( 0!=0e1 +[ +]n +[[ok]P]s0 +[[nok]P]s1 + 1 0{ 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 0 1{ 0!=0e1 +[[ok]P]s0 +[[nok]P]s1 + 1 1{ 0!=0e1 +[ +]n +[[nok]P]s0 +[[ok]P]s1 + 0 1( 0!=0e1 +[[ok]P]s0 +[[nok]P]s1 + 1 0( 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 1 1( 0!=0e1 +[ +]n +[[nok]P]s0 +[[ok]P]s1 + 0 1{ 0!=0e1 +[[ok]P]s0 +[[nok]P]s1 + 1 0{ 0!=0e1 +[[ok]P]s0 +[[nok]P]s1 + 1 1{ 0!=0e1 +[ +]n +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t15.in b/src/regress/usr.bin/bc/t15.in new file mode 100644 index 000000000..692d88b62 --- /dev/null +++ b/src/regress/usr.bin/bc/t15.in @@ -0,0 +1,24 @@ +if (1 && 2) "ok1" +if (0 && 2) "nok2" else "ok2" +if (3 && 0) "nok3" else "ok3" +if (0 && 0) "nok4" else "ok4" +if (0 && 0 && 0) "nok5" else "ok5" +if (0 && 1 && 0) "nok6" else "ok6" +if (1 && 1 && 1) "ok7" else "nok7" +print "\n" +define f() { + "f" +} +define g() { + "g" + return 1 +} +if (f() && g()) { + "nok8" +} else "ok8" +if (!f() && g()) { + "ok9" +} else "nok9" +print "\n" +if (1 < 2 && 3 < 4) "ok10" else "nok10" +print "\n" diff --git a/src/regress/usr.bin/bc/t15.out b/src/regress/usr.bin/bc/t15.out new file mode 100644 index 000000000..a23127db8 --- /dev/null +++ b/src/regress/usr.bin/bc/t15.out @@ -0,0 +1,55 @@ +[R 2]s1 +[[ok1]P]s0 + 1d0!=1 0!=0 +[R 2]s1 +[[nok2]P]s0 +[[ok2]P]s2 + 0d0!=1 0!=0e2 +[R 0]s1 +[[nok3]P]s0 +[[ok3]P]s2 + 3d0!=1 0!=0e2 +[R 0]s1 +[[nok4]P]s0 +[[ok4]P]s2 + 0d0!=1 0!=0e2 +[R 0]s1 +[R 0]s2 +[[nok5]P]s0 +[[ok5]P]s3 + 0d0!=1d0!=2 0!=0e3 +[R 1]s1 +[R 0]s2 +[[nok6]P]s0 +[[ok6]P]s3 + 0d0!=1d0!=2 0!=0e3 +[R 1]s1 +[R 1]s2 +[[ok7]P]s0 +[[nok7]P]s3 + 1d0!=1d0!=2 0!=0e3 +[ +]n +[[f]P0 1Q]s + + +[[g]P 1 1Q0 1Q]s + + +[Rlx]s1 +[[nok8]P]s0 +[[ok8]P]s2 +lxd0!=1 0!=0e2 +[Rlx]s1 +[[ok9]P]s0 +[[nok9]P]s2 +lxNd0!=1 0!=0e2 +[ +]n +[R 4 3(]s1 +[[ok10]P]s0 +[[nok10]P]s2 + 2 1(d0!=1 0!=0e2 +[ +]n +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t16.in b/src/regress/usr.bin/bc/t16.in new file mode 100644 index 000000000..eef924980 --- /dev/null +++ b/src/regress/usr.bin/bc/t16.in @@ -0,0 +1,24 @@ +if (0 || 0) "nok1" else "ok1" +if (1 || 0) "ok2" else "nok2" +if (0 || 1) "ok3" else "nok3" +if (1 || 1) "ok4" else "nok4" +print "\n" + +define f() { + "f"; + return 0 +} +define g() { + "g"; + return 0 +} +define h() { + "h"; + return 1 +} + +if (f() || g() || h()) "ok5" else "nok5" +if (f() || g() || !h()) "nok6" else "ok6" +if (f() || !h() || g()) "nok7" else "ok7" + +print "\n" diff --git a/src/regress/usr.bin/bc/t16.out b/src/regress/usr.bin/bc/t16.out new file mode 100644 index 000000000..cf01ac742 --- /dev/null +++ b/src/regress/usr.bin/bc/t16.out @@ -0,0 +1,48 @@ +[R 0]s1 +[[nok1]P]s0 +[[ok1]P]s2 + 0d0=1 0!=0e2 +[R 0]s1 +[[ok2]P]s0 +[[nok2]P]s2 + 1d0=1 0!=0e2 +[R 1]s1 +[[ok3]P]s0 +[[nok3]P]s2 + 0d0=1 0!=0e2 +[R 1]s1 +[[ok4]P]s0 +[[nok4]P]s2 + 1d0=1 0!=0e2 +[ +]n + +[[f]P 0 1Q0 1Q]s + + +[[g]P 0 1Q0 1Q]s + + +[[h]P 1 1Q0 1Q]s + + + +[Rlx]s1 +[Rlx]s2 +[[ok5]P]s0 +[[nok5]P]s3 +lxd0=1d0=2 0!=0e3 +[Rlx]s1 +[RlxN]s2 +[[nok6]P]s0 +[[ok6]P]s3 +lxd0=1d0=2 0!=0e3 +[RlxN]s1 +[Rlx]s2 +[[nok7]P]s0 +[[ok7]P]s3 +lxd0=1d0=2 0!=0e3 + +[ +]n +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t17.in b/src/regress/usr.bin/bc/t17.in new file mode 100644 index 000000000..2a1b242cf --- /dev/null +++ b/src/regress/usr.bin/bc/t17.in @@ -0,0 +1,566 @@ +a=97 +b=98 +c=99 +d=100 +e=101 +f=102 +g=103 +h=104 +i=105 +j=106 +k=107 +l=108 +m=109 +n=110 +o=111 +p=112 +q=113 +r=114 +s=115 +t=116 +u=117 +v=118 +w=119 +x=120 +y=121 +z=122 +_=123 +a0=0 +a1=1 +a2=2 +a3=3 +a4=4 +a5=5 +a6=6 +a7=7 +a8=8 +a9=9 +a10=10 +a11=11 +a12=12 +a13=13 +a14=14 +a15=15 +a16=16 +a17=17 +a18=18 +a19=19 +a20=20 +a21=21 +a22=22 +a23=23 +a24=24 +a25=25 +a26=26 +a27=27 +a28=28 +a29=29 +a30=30 +a31=31 +a32=32 +a33=33 +a34=34 +a35=35 +a36=36 +a37=37 +a38=38 +a39=39 +a40=40 +a41=41 +a42=42 +a43=43 +a44=44 +a45=45 +a46=46 +a47=47 +a48=48 +a49=49 +a50=50 +a51=51 +a52=52 +a53=53 +a54=54 +a55=55 +a56=56 +a57=57 +a58=58 +a59=59 +a60=60 +a61=61 +a62=62 +a63=63 +a64=64 +a65=65 +a66=66 +a67=67 +a68=68 +a69=69 +a70=70 +a71=71 +a72=72 +a73=73 +a74=74 +a75=75 +a76=76 +a77=77 +a78=78 +a79=79 +a80=80 +a81=81 +a82=82 +a83=83 +a84=84 +a85=85 +a86=86 +a87=87 +a88=88 +a89=89 +a90=90 +a91=91 +a92=92 +a93=93 +a94=94 +a95=95 +a96=96 +a97=97 +a98=98 +a99=99 +a100=100 +a101=101 +a102=102 +a103=103 +a104=104 +a105=105 +a106=106 +a107=107 +a108=108 +a109=109 +a110=110 +a111=111 +a112=112 +a113=113 +a114=114 +a115=115 +a116=116 +a117=117 +a118=118 +a119=119 +a120=120 +a121=121 +a122=122 +a123=123 +a124=124 +a125=125 +a126=126 +a127=127 +a128=128 +a129=129 +a130=130 +a131=131 +a132=132 +a133=133 +a134=134 +a135=135 +a136=136 +a137=137 +a138=138 +a139=139 +a140=140 +a141=141 +a142=142 +a143=143 +a144=144 +a145=145 +a146=146 +a147=147 +a148=148 +a149=149 +a150=150 +a151=151 +a152=152 +a153=153 +a154=154 +a155=155 +a156=156 +a157=157 +a158=158 +a159=159 +a160=160 +a161=161 +a162=162 +a163=163 +a164=164 +a165=165 +a166=166 +a167=167 +a168=168 +a169=169 +a170=170 +a171=171 +a172=172 +a173=173 +a174=174 +a175=175 +a176=176 +a177=177 +a178=178 +a179=179 +a180=180 +a181=181 +a182=182 +a183=183 +a184=184 +a185=185 +a186=186 +a187=187 +a188=188 +a189=189 +a190=190 +a191=191 +a192=192 +a193=193 +a194=194 +a195=195 +a196=196 +a197=197 +a198=198 +a199=199 +a200=200 +a201=201 +a202=202 +a203=203 +a204=204 +a205=205 +a206=206 +a207=207 +a208=208 +a209=209 +a210=210 +a211=211 +a212=212 +a213=213 +a214=214 +a215=215 +a216=216 +a217=217 +a218=218 +a219=219 +a220=220 +a221=221 +a222=222 +a223=223 +a224=224 +a225=225 +a226=226 +a227=227 +a228=228 +a229=229 +a230=230 +a231=231 +a232=232 +a233=233 +a234=234 +a235=235 +a236=236 +a237=237 +a238=238 +a239=239 +a240=240 +a241=241 +a242=242 +a243=243 +a244=244 +a245=245 +a246=246 +a247=247 +a248=248 +a249=249 +a250=250 +a251=251 +a252=252 +a253=253 +a254=254 +a255=255 +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +_ +a0 +a1 +a2 +a3 +a4 +a5 +a6 +a7 +a8 +a9 +a10 +a11 +a12 +a13 +a14 +a15 +a16 +a17 +a18 +a19 +a20 +a21 +a22 +a23 +a24 +a25 +a26 +a27 +a28 +a29 +a30 +a31 +a32 +a33 +a34 +a35 +a36 +a37 +a38 +a39 +a40 +a41 +a42 +a43 +a44 +a45 +a46 +a47 +a48 +a49 +a50 +a51 +a52 +a53 +a54 +a55 +a56 +a57 +a58 +a59 +a60 +a61 +a62 +a63 +a64 +a65 +a66 +a67 +a68 +a69 +a70 +a71 +a72 +a73 +a74 +a75 +a76 +a77 +a78 +a79 +a80 +a81 +a82 +a83 +a84 +a85 +a86 +a87 +a88 +a89 +a90 +a91 +a92 +a93 +a94 +a95 +a96 +a97 +a98 +a99 +a100 +a101 +a102 +a103 +a104 +a105 +a106 +a107 +a108 +a109 +a110 +a111 +a112 +a113 +a114 +a115 +a116 +a117 +a118 +a119 +a120 +a121 +a122 +a123 +a124 +a125 +a126 +a127 +a128 +a129 +a130 +a131 +a132 +a133 +a134 +a135 +a136 +a137 +a138 +a139 +a140 +a141 +a142 +a143 +a144 +a145 +a146 +a147 +a148 +a149 +a150 +a151 +a152 +a153 +a154 +a155 +a156 +a157 +a158 +a159 +a160 +a161 +a162 +a163 +a164 +a165 +a166 +a167 +a168 +a169 +a170 +a171 +a172 +a173 +a174 +a175 +a176 +a177 +a178 +a179 +a180 +a181 +a182 +a183 +a184 +a185 +a186 +a187 +a188 +a189 +a190 +a191 +a192 +a193 +a194 +a195 +a196 +a197 +a198 +a199 +a200 +a201 +a202 +a203 +a204 +a205 +a206 +a207 +a208 +a209 +a210 +a211 +a212 +a213 +a214 +a215 +a216 +a217 +a218 +a219 +a220 +a221 +a222 +a223 +a224 +a225 +a226 +a227 +a228 +a229 +a230 +a231 +a232 +a233 +a234 +a235 +a236 +a237 +a238 +a239 +a240 +a241 +a242 +a243 +a244 +a245 +a246 +a247 +a248 +a249 +a250 +a251 +a252 +a253 +a254 +a255 diff --git a/src/regress/usr.bin/bc/t17.out b/src/regress/usr.bin/bc/t17.out new file mode 100644 index 000000000..afa55d4de --- /dev/null +++ b/src/regress/usr.bin/bc/t17.out @@ -0,0 +1,569 @@ + 97sa + 98sb + 99sc + 100sd + 101se + 102sf + 103sg + 104sh + 105si + 106sj + 107sk + 108sl + 109sm + 110sn + 111so + 112sp + 113sq + 114sr + 115ss + 116st + 117su + 118sv + 119sw + 120sx + 121sy + 122sz + 123sÿ + 0sÿ + 1sÿ + 2sÿ + 3sÿ + 4sÿ + 5sÿ + 6sÿ + 7sÿ + 8sÿ + + 9sÿ + 10sÿ + 11sÿ + 12sÿ + 13sÿ + 14sÿ + 15sÿ + 16sÿ + 17sÿ + 18sÿ + 19sÿ + 20sÿ + 21sÿ + 22sÿ + 23sÿ + 24sÿ + 25sÿ + 26sÿ + 27sÿ + 28sÿ + 29sÿ + 30sÿ + 31sÿ! + 32sÿ" + 33sÿ# + 34sÿ$ + 35sÿ% + 36sÿ& + 37sÿ' + 38sÿ( + 39sÿ) + 40sÿ* + 41sÿ+ + 42sÿ, + 43sÿ- + 44sÿ. + 45sÿ/ + 46sÿ0 + 47sÿ1 + 48sÿ2 + 49sÿ3 + 50sÿ4 + 51sÿ5 + 52sÿ6 + 53sÿ7 + 54sÿ8 + 55sÿ9 + 56sÿ: + 57sÿ; + 58sÿ< + 59sÿ= + 60sÿ> + 61sÿ? + 62sÿ@ + 63sÿA + 64sÿB + 65sÿC + 66sÿD + 67sÿE + 68sÿF + 69sÿG + 70sÿH + 71sÿI + 72sÿJ + 73sÿK + 74sÿL + 75sÿM + 76sÿN + 77sÿO + 78sÿP + 79sÿQ + 80sÿR + 81sÿS + 82sÿT + 83sÿU + 84sÿV + 85sÿW + 86sÿX + 87sÿY + 88sÿZ + 89sÿ^ + 90sÿ_ + 91sÿ` + 92sÿa + 93sÿb + 94sÿc + 95sÿd + 96sÿe + 97sÿf + 98sÿg + 99sÿh + 100sÿi + 101sÿj + 102sÿk + 103sÿl + 104sÿm + 105sÿn + 106sÿo + 107sÿp + 108sÿq + 109sÿr + 110sÿs + 111sÿt + 112sÿu + 113sÿv + 114sÿw + 115sÿx + 116sÿy + 117sÿz + 118sÿ{ + 119sÿ| + 120sÿ} + 121sÿ~ + 122sÿ + 123sÿ€ + 124sÿ + 125sÿ‚ + 126sÿƒ + 127sÿ„ + 128sÿ… + 129sÿ† + 130sÿ‡ + 131sÿˆ + 132sÿ‰ + 133sÿŠ + 134sÿ‹ + 135sÿŒ + 136sÿ + 137sÿŽ + 138sÿ + 139sÿ + 140sÿ‘ + 141sÿ’ + 142sÿ“ + 143sÿ” + 144sÿ• + 145sÿ– + 146sÿ— + 147sÿ˜ + 148sÿ™ + 149sÿš + 150sÿ› + 151sÿœ + 152sÿ + 153sÿž + 154sÿŸ + 155sÿ  + 156sÿ¡ + 157sÿ¢ + 158sÿ£ + 159sÿ¤ + 160sÿ¥ + 161sÿ¦ + 162sÿ§ + 163sÿ¨ + 164sÿ© + 165sÿª + 166sÿ« + 167sÿ¬ + 168sÿ­ + 169sÿ® + 170sÿ¯ + 171sÿ° + 172sÿ± + 173sÿ² + 174sÿ³ + 175sÿ´ + 176sÿµ + 177sÿ¶ + 178sÿ· + 179sÿ¸ + 180sÿ¹ + 181sÿº + 182sÿ» + 183sÿ¼ + 184sÿ½ + 185sÿ¾ + 186sÿ¿ + 187sÿÀ + 188sÿÁ + 189sÿ + 190sÿà + 191sÿÄ + 192sÿÅ + 193sÿÆ + 194sÿÇ + 195sÿÈ + 196sÿÉ + 197sÿÊ + 198sÿË + 199sÿÌ + 200sÿÍ + 201sÿÎ + 202sÿÏ + 203sÿÐ + 204sÿÑ + 205sÿÒ + 206sÿÓ + 207sÿÔ + 208sÿÕ + 209sÿÖ + 210sÿ× + 211sÿØ + 212sÿÙ + 213sÿÚ + 214sÿÛ + 215sÿÜ + 216sÿÝ + 217sÿÞ + 218sÿß + 219sÿà + 220sÿá + 221sÿâ + 222sÿã + 223sÿä + 224sÿå + 225sÿæ + 226sÿç + 227sÿè + 228sÿé + 229sÿê + 230sÿë + 231sÿì + 232sÿí + 233sÿî + 234sÿï + 235sÿð + 236sÿñ + 237sÿò + 238sÿó + 239sÿô + 240sÿõ + 241sÿö + 242sÿ÷ + 243sÿø + 244sÿù + 245sÿú + 246sÿû + 247sÿü + 248sÿý + 249sÿþ + 250sÿÿ + 251sÿ + 252sÿ + 253sÿ + 254sÿ + 255sÿ +laps. +lbps. +lcps. +ldps. +leps. +lfps. +lgps. +lhps. +lips. +ljps. +lkps. +llps. +lmps. +lnps. +lops. +lpps. +lqps. +lrps. +lsps. +ltps. +lups. +lvps. +lwps. +lxps. +lyps. +lzps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿ ps. +lÿ +ps. +lÿ ps. +lÿ ps. +lÿ ps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿ ps. +lÿ!ps. +lÿ"ps. +lÿ#ps. +lÿ$ps. +lÿ%ps. +lÿ&ps. +lÿ'ps. +lÿ(ps. +lÿ)ps. +lÿ*ps. +lÿ+ps. +lÿ,ps. +lÿ-ps. +lÿ.ps. +lÿ/ps. +lÿ0ps. +lÿ1ps. +lÿ2ps. +lÿ3ps. +lÿ4ps. +lÿ5ps. +lÿ6ps. +lÿ7ps. +lÿ8ps. +lÿ9ps. +lÿ:ps. +lÿ;ps. +lÿps. +lÿ?ps. +lÿ@ps. +lÿAps. +lÿBps. +lÿCps. +lÿDps. +lÿEps. +lÿFps. +lÿGps. +lÿHps. +lÿIps. +lÿJps. +lÿKps. +lÿLps. +lÿMps. +lÿNps. +lÿOps. +lÿPps. +lÿQps. +lÿRps. +lÿSps. +lÿTps. +lÿUps. +lÿVps. +lÿWps. +lÿXps. +lÿYps. +lÿZps. +lÿ^ps. +lÿ_ps. +lÿ`ps. +lÿaps. +lÿbps. +lÿcps. +lÿdps. +lÿeps. +lÿfps. +lÿgps. +lÿhps. +lÿips. +lÿjps. +lÿkps. +lÿlps. +lÿmps. +lÿnps. +lÿops. +lÿpps. +lÿqps. +lÿrps. +lÿsps. +lÿtps. +lÿups. +lÿvps. +lÿwps. +lÿxps. +lÿyps. +lÿzps. +lÿ{ps. +lÿ|ps. +lÿ}ps. +lÿ~ps. +lÿps. +lÿ€ps. +lÿps. +lÿ‚ps. +lÿƒps. +lÿ„ps. +lÿ…ps. +lÿ†ps. +lÿ‡ps. +lÿˆps. +lÿ‰ps. +lÿŠps. +lÿ‹ps. +lÿŒps. +lÿps. +lÿŽps. +lÿps. +lÿps. +lÿ‘ps. +lÿ’ps. +lÿ“ps. +lÿ”ps. +lÿ•ps. +lÿ–ps. +lÿ—ps. +lÿ˜ps. +lÿ™ps. +lÿšps. +lÿ›ps. +lÿœps. +lÿps. +lÿžps. +lÿŸps. +lÿ ps. +lÿ¡ps. +lÿ¢ps. +lÿ£ps. +lÿ¤ps. +lÿ¥ps. +lÿ¦ps. +lÿ§ps. +lÿ¨ps. +lÿ©ps. +lÿªps. +lÿ«ps. +lÿ¬ps. +lÿ­ps. +lÿ®ps. +lÿ¯ps. +lÿ°ps. +lÿ±ps. +lÿ²ps. +lÿ³ps. +lÿ´ps. +lÿµps. +lÿ¶ps. +lÿ·ps. +lÿ¸ps. +lÿ¹ps. +lÿºps. +lÿ»ps. +lÿ¼ps. +lÿ½ps. +lÿ¾ps. +lÿ¿ps. +lÿÀps. +lÿÁps. +lÿÂps. +lÿÃps. +lÿÄps. +lÿÅps. +lÿÆps. +lÿÇps. +lÿÈps. +lÿÉps. +lÿÊps. +lÿËps. +lÿÌps. +lÿÍps. +lÿÎps. +lÿÏps. +lÿÐps. +lÿÑps. +lÿÒps. +lÿÓps. +lÿÔps. +lÿÕps. +lÿÖps. +lÿ×ps. +lÿØps. +lÿÙps. +lÿÚps. +lÿÛps. +lÿÜps. +lÿÝps. +lÿÞps. +lÿßps. +lÿàps. +lÿáps. +lÿâps. +lÿãps. +lÿäps. +lÿåps. +lÿæps. +lÿçps. +lÿèps. +lÿéps. +lÿêps. +lÿëps. +lÿìps. +lÿíps. +lÿîps. +lÿïps. +lÿðps. +lÿñps. +lÿòps. +lÿóps. +lÿôps. +lÿõps. +lÿöps. +lÿ÷ps. +lÿøps. +lÿùps. +lÿúps. +lÿûps. +lÿüps. +lÿýps. +lÿþps. +lÿÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t18.in b/src/regress/usr.bin/bc/t18.in new file mode 100644 index 000000000..1f989a228 --- /dev/null +++ b/src/regress/usr.bin/bc/t18.in @@ -0,0 +1,45 @@ +/* $OpenBSD: t18.in,v 1.1 2003/12/09 12:49:01 otto Exp $ */ +/* + * Copyright (c) 2003 Amit Singh + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * The Towers Of Hanoi + * bc version + * http://hanoi.kernelthread.com + */ + +define moveit(i, j) { + print "move " + print i + print " --> " + print j + print "\n" +} + +define dohanoi(n, h, d, o) { + if (n > 0) { + silence = dohanoi(n-1, h, o, d) + silence = moveit(h, d) + silence = dohanoi(n-1, o, d, h) + } +} + +define hanoi(n) { + silence = dohanoi(n, 1, 3, 2) +} + +hanoi(5) + diff --git a/src/regress/usr.bin/bc/t18.out b/src/regress/usr.bin/bc/t18.out new file mode 100644 index 000000000..01ce2a70b --- /dev/null +++ b/src/regress/usr.bin/bc/t18.out @@ -0,0 +1,22 @@ + + + + + +[SjSi[move ]nlids.n[ --> ]nljds.n[ +]nLis.Ljs.0 1Q]sÿ + + + +[ln 1-lhloldlÿxsÿlhldlÿxsÿln 1-loldlhlÿxsÿ]s0 +[SoSdShSnln 0<0 Lns.Lhs.Lds.Los.0 1Q]sÿ + + + +[Snln 1 3 2lÿxsÿLns.0 1Q]sÿ + + + + 5lÿxps. + +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t2.in b/src/regress/usr.bin/bc/t2.in new file mode 100644 index 000000000..01b746edc --- /dev/null +++ b/src/regress/usr.bin/bc/t2.in @@ -0,0 +1,5 @@ +while (1) { + while (0) break; + if (a == 1) break; + if (a = 2) if (a = 3) break; +} diff --git a/src/regress/usr.bin/bc/t2.out b/src/regress/usr.bin/bc/t2.out new file mode 100644 index 000000000..70a8f4ebd --- /dev/null +++ b/src/regress/usr.bin/bc/t2.out @@ -0,0 +1,7 @@ +[ 1Q 0 0!=1]s1 +[ 2Q]s2 +[ 3Q]s4 +[ 3dsa 0!=4 ]s3 +[ 0 0!=1 la 1=2 2dsa 0!=3 1 0!=0]s0 + 1 0!=0 +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t3.in b/src/regress/usr.bin/bc/t3.in new file mode 100644 index 000000000..851f80f66 --- /dev/null +++ b/src/regress/usr.bin/bc/t3.in @@ -0,0 +1,4 @@ +for (i = 0; i < 10; i++) { + a[i] = 3; + if (x % 3 == 0) break; +} diff --git a/src/regress/usr.bin/bc/t3.out b/src/regress/usr.bin/bc/t3.out new file mode 100644 index 000000000..920549105 --- /dev/null +++ b/src/regress/usr.bin/bc/t3.out @@ -0,0 +1,4 @@ +[ 2Q]s1 +[ 3li:¡lx 3% 0=1 lid1+sis.li 10>0]s0 + 0dsis.li 10>0 +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t4.in b/src/regress/usr.bin/bc/t4.in new file mode 100644 index 000000000..d4b13575c --- /dev/null +++ b/src/regress/usr.bin/bc/t4.in @@ -0,0 +1,6 @@ +while (0) while(1) while(2) while(3) while(4) while(5) while(6) while(7) { + while (8) while (9) while (10) while (11) while(12) while(13) { + while(14) while(15) { + } + } +} diff --git a/src/regress/usr.bin/bc/t4.out b/src/regress/usr.bin/bc/t4.out new file mode 100644 index 000000000..cd954cc36 --- /dev/null +++ b/src/regress/usr.bin/bc/t4.out @@ -0,0 +1,18 @@ +[ 15 0!=?]s? +[ 15 0!=? 14 0!=>]s> +[ 14 0!=> 13 0!==]s= +[ 13 0!== 12 0!=<]s< +[ 12 0!=< 11 0!=;]s; +[ 11 0!=; 10 0!=:]s: +[ 10 0!=: 9 0!=9]s9 +[ 9 0!=9 8 0!=8]s8 +[ 8 0!=8 7 0!=7]s7 +[ 7 0!=7 6 0!=6]s6 +[ 6 0!=6 5 0!=5]s5 +[ 5 0!=5 4 0!=4]s4 +[ 4 0!=4 3 0!=3]s3 +[ 3 0!=3 2 0!=2]s2 +[ 2 0!=2 1 0!=1]s1 +[ 1 0!=1 0 0!=0]s0 + 0 0!=0 +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t5.in b/src/regress/usr.bin/bc/t5.in new file mode 100644 index 000000000..c02b1b6c5 --- /dev/null +++ b/src/regress/usr.bin/bc/t5.in @@ -0,0 +1,7 @@ +define f(a, b, c[]) { + auto d,e,f; + a=1; + return (8); +} + +f(1,2,g[]) diff --git a/src/regress/usr.bin/bc/t5.out b/src/regress/usr.bin/bc/t5.out new file mode 100644 index 000000000..898e85f50 --- /dev/null +++ b/src/regress/usr.bin/bc/t5.out @@ -0,0 +1,6 @@ +[0Sf0Se0SdS£SbSa 1sa 8Las.Lbs.L£s.Lds.Les.Lfs. 1QLas.Lbs.L£s.Lds.Les.Lfs.0 1Q]s + + + + 1 2l§lxps. +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t6.in b/src/regress/usr.bin/bc/t6.in new file mode 100644 index 000000000..9a1967520 --- /dev/null +++ b/src/regress/usr.bin/bc/t6.in @@ -0,0 +1,3 @@ +if (1) +for (i=1; i <= 10; i++) +while (1>0) diff --git a/src/regress/usr.bin/bc/t6.out b/src/regress/usr.bin/bc/t6.out new file mode 100644 index 000000000..a47ddf7cf --- /dev/null +++ b/src/regress/usr.bin/bc/t6.out @@ -0,0 +1,7 @@ +[]s0 + 1 0!=0 +[lid1+sis.li 10!<0]s0 + 1dsis.li 10!<0 +[ 1 0<0]s0 + 1 0<0 +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t7.in b/src/regress/usr.bin/bc/t7.in new file mode 100644 index 000000000..e29e70f0c --- /dev/null +++ b/src/regress/usr.bin/bc/t7.in @@ -0,0 +1,6 @@ +a += 1 +b -= 2 +c *= 3 +d /= 4 +e ^= 5 +f %= 6 diff --git a/src/regress/usr.bin/bc/t7.out b/src/regress/usr.bin/bc/t7.out new file mode 100644 index 000000000..fd77bc319 --- /dev/null +++ b/src/regress/usr.bin/bc/t7.out @@ -0,0 +1,7 @@ +la 1+sa +lb 2-sb +lc 3*sc +ld 4/sd +le 5^se +lf 6%sf +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t8.in b/src/regress/usr.bin/bc/t8.in new file mode 100644 index 000000000..b2f1c180d --- /dev/null +++ b/src/regress/usr.bin/bc/t8.in @@ -0,0 +1,6 @@ +while (a < 10) { + a += 1; + if (a == 2) if (1) continue; + if (a == 7) if (1) continue; + a +} diff --git a/src/regress/usr.bin/bc/t8.out b/src/regress/usr.bin/bc/t8.out new file mode 100644 index 000000000..d48428c37 --- /dev/null +++ b/src/regress/usr.bin/bc/t8.out @@ -0,0 +1,7 @@ +[ 2J]s2 +[ 1 0!=2 ]s1 +[ 2J]s4 +[ 1 0!=4 ]s3 +[la 1+sala 2=1 la 7=3 laps.Mla 10>0]s0 +la 10>0 +q \ No newline at end of file diff --git a/src/regress/usr.bin/bc/t9.in b/src/regress/usr.bin/bc/t9.in new file mode 100644 index 000000000..7556e18b3 --- /dev/null +++ b/src/regress/usr.bin/bc/t9.in @@ -0,0 +1,19 @@ +define x() { + for (i = 0; i < 10; i++) { + i + "a "; + if (i == 5) { + "b "; + continue + } + "aaaaMbbbb" + a=0; + while (a < 4) { + a += 1; + if (a == 2) if (1) continue + "c "; a + } + } +} + +x() diff --git a/src/regress/usr.bin/bc/t9.out b/src/regress/usr.bin/bc/t9.out new file mode 100644 index 000000000..9a5ca8503 --- /dev/null +++ b/src/regress/usr.bin/bc/t9.out @@ -0,0 +1,11 @@ +[[b ]P 1J]s1 +[ 2J]s4 +[ 1 0!=4 ]s3 +[la 1+sala 2=3 [c ]Plaps.Mla 4>2]s2 +[lips.[a ]Pli 5=1 [aaaaMbbbb]P 0sala 4>2 Mlid1+sis.li 10>0]s0 +[ 0dsis.li 10>0 0 1Q]s + + + +lxps. +q \ No newline at end of file diff --git a/src/regress/usr.bin/cap_mkdb/CVS/Entries b/src/regress/usr.bin/cap_mkdb/CVS/Entries new file mode 100644 index 000000000..ee7c064a7 --- /dev/null +++ b/src/regress/usr.bin/cap_mkdb/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Wed Mar 22 02:46:17 2006// +/shortname.in/1.1/Fri Mar 10 05:22:46 2006// +D diff --git a/src/regress/usr.bin/cap_mkdb/CVS/Repository b/src/regress/usr.bin/cap_mkdb/CVS/Repository new file mode 100644 index 000000000..c1614a9a8 --- /dev/null +++ b/src/regress/usr.bin/cap_mkdb/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/cap_mkdb diff --git a/src/regress/usr.bin/cap_mkdb/CVS/Root b/src/regress/usr.bin/cap_mkdb/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/cap_mkdb/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/cap_mkdb/Makefile b/src/regress/usr.bin/cap_mkdb/Makefile new file mode 100644 index 000000000..16b617cb8 --- /dev/null +++ b/src/regress/usr.bin/cap_mkdb/Makefile @@ -0,0 +1,11 @@ +# $OpenBSD: Makefile,v 1.2 2006/03/22 02:46:17 ray Exp $ + +CAP_MKDB?= cap_mkdb + +REGRESS_TARGETS=shortname +CLEANFILES+= *.db + +shortname: + ${CAP_MKDB} -if shortname ${.CURDIR}/shortname.in || case "$$?" in 1) exit 0;; esac && exit 1 + +.include diff --git a/src/regress/usr.bin/cap_mkdb/obj b/src/regress/usr.bin/cap_mkdb/obj new file mode 120000 index 000000000..e09323a79 --- /dev/null +++ b/src/regress/usr.bin/cap_mkdb/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/cap_mkdb \ No newline at end of file diff --git a/src/regress/usr.bin/cap_mkdb/shortname.in b/src/regress/usr.bin/cap_mkdb/shortname.in new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/src/regress/usr.bin/cap_mkdb/shortname.in @@ -0,0 +1 @@ +0 diff --git a/src/regress/usr.bin/dc/CVS/Entries b/src/regress/usr.bin/dc/CVS/Entries new file mode 100644 index 000000000..840deff69 --- /dev/null +++ b/src/regress/usr.bin/dc/CVS/Entries @@ -0,0 +1,54 @@ +/Makefile/1.17/Tue Dec 13 19:29:43 2005// +/t1.in/1.1/Sun Sep 21 19:30:07 2003// +/t1.out/1.3/Tue Mar 29 10:54:56 2005// +/t10.in/1.2/Wed Oct 22 14:59:29 2003// +/t10.out/1.1/Sat Oct 18 19:48:10 2003// +/t11.in/1.1/Wed Oct 22 12:17:56 2003// +/t11.out/1.1/Wed Oct 22 12:17:56 2003// +/t12.in/1.1/Tue Nov 4 08:11:41 2003// +/t12.out/1.1/Tue Nov 4 08:11:41 2003// +/t13.in/1.1/Thu Nov 6 19:50:04 2003// +/t13.out/1.1/Thu Nov 6 19:50:04 2003// +/t14.in/1.1/Fri Nov 14 20:27:17 2003// +/t14.out/1.1/Fri Nov 14 20:27:17 2003// +/t15.in/1.1/Fri Nov 14 20:27:17 2003// +/t15.out/1.1/Fri Nov 14 20:27:17 2003// +/t16.in/1.1/Fri Nov 14 20:27:17 2003// +/t16.out/1.1/Fri Nov 14 20:27:17 2003// +/t17.in/1.1/Mon Nov 17 11:13:38 2003// +/t17.out/1.1/Mon Nov 17 11:13:38 2003// +/t18.in/1.1/Wed Nov 26 19:32:39 2003// +/t18.out/1.1/Wed Nov 26 19:32:39 2003// +/t19.in/1.1/Mon Dec 1 09:15:52 2003// +/t19.out/1.1/Mon Dec 1 09:15:52 2003// +/t2.in/1.1/Sun Sep 21 19:30:07 2003// +/t2.out/1.1/Sun Sep 21 19:30:07 2003// +/t20.in/1.1/Tue Dec 9 12:46:32 2003// +/t20.out/1.1/Tue Dec 9 12:46:32 2003// +/t21.in/1.1/Tue Oct 19 07:39:36 2004// +/t21.out/1.2/Mon Mar 28 19:22:24 2005// +/t22.in/1.1/Wed Dec 1 08:30:53 2004// +/t22.out/1.2/Mon Mar 28 19:22:24 2005// +/t23.in/1.1/Sun Mar 27 17:45:44 2005// +/t23.out/1.2/Mon Mar 28 19:22:24 2005// +/t24.in/1.2/Tue Mar 29 10:56:55 2005// +/t24.out/1.2/Tue Mar 29 10:56:55 2005// +/t25.in/1.1/Sat Apr 2 18:06:10 2005// +/t25.out/1.1/Sat Apr 2 18:06:10 2005// +/t26.in/1.1/Tue Dec 13 19:29:43 2005// +/t26.out/1.1/Tue Dec 13 19:29:43 2005// +/t3.in/1.1/Wed Dec 17 15:11:36 2003// +/t3.out/1.1/Wed Dec 17 15:11:36 2003// +/t4.in/1.1/Sun Sep 21 19:30:07 2003// +/t4.out/1.1/Sun Sep 21 19:30:07 2003// +/t5.in/1.1/Sun Sep 21 19:30:07 2003// +/t5.out/1.1/Sun Sep 21 19:30:07 2003// +/t6.in/1.1/Sun Sep 21 19:30:07 2003// +/t6.out/1.1/Sun Sep 21 19:30:07 2003// +/t7.in/1.2/Mon Sep 22 05:02:02 2003// +/t7.out/1.1/Sun Sep 21 19:30:07 2003// +/t8.in/1.1/Sun Sep 21 19:30:07 2003// +/t8.out/1.1/Sun Sep 21 19:30:07 2003// +/t9.in/1.1/Sun Sep 21 19:30:07 2003// +/t9.out/1.3/Tue Mar 29 10:54:56 2005// +D diff --git a/src/regress/usr.bin/dc/CVS/Repository b/src/regress/usr.bin/dc/CVS/Repository new file mode 100644 index 000000000..3fa36d847 --- /dev/null +++ b/src/regress/usr.bin/dc/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/dc diff --git a/src/regress/usr.bin/dc/CVS/Root b/src/regress/usr.bin/dc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/dc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/dc/Makefile b/src/regress/usr.bin/dc/Makefile new file mode 100644 index 000000000..55bbe888d --- /dev/null +++ b/src/regress/usr.bin/dc/Makefile @@ -0,0 +1,52 @@ +# $OpenBSD: Makefile,v 1.17 2005/12/13 19:29:43 otto Exp $ + +DC=dc -x + +REGRESS_TARGETS=t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 \ + t18 t19 t20 t21 t22 t23 t24 t25 t26 + +# .in: input file +# .out: desired result + +# t1: basic operations, prints "dc: Runtime warning: non-zero scale in exponent" +# t2: factoring program +# t3: string handling +# t4: more string ops +# t5: bc output, computing exp +# t6: nesting level and tail recursion +# t7: number input and string handling +# t8: bc output, array operations +# t9: output for different bases and wrapping of long lines +# t10: test J and M operators +# t11: test extended comparison operators +# t12: test r operator, prints two "stack empty" warnings +# t13: test #, n and a +# t14: test N, G, ( and { +# t15: more N, G, ( and { +# t16: even more N, G, ( and { +# t17: test R (drop) +# t18: read uninitialized and initialized array locations +# t19: test extended registers +# t20: towers of hanoi +# t21: 500 decimals of pi +# t22: sqrt +# t23: factorial 1000 +# t24: line continuations +# t25: exp +# t26: non-decimal fractions + +all: clean ${REGRESS_TARGET} + +.SUFFIXES: .in + +.in: + @echo ${*} + @${DC} ${.CURDIR}/${*}.in > ${*}.log + @cmp -s ${.CURDIR}/${*}.out ${*}.log || \ + (echo "XXX ${*} failed" && false) + +# Clean all files generated +clean: + rm -f *.log + +.include diff --git a/src/regress/usr.bin/dc/obj b/src/regress/usr.bin/dc/obj new file mode 120000 index 000000000..3da6a6ab7 --- /dev/null +++ b/src/regress/usr.bin/dc/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/dc \ No newline at end of file diff --git a/src/regress/usr.bin/dc/t1.in b/src/regress/usr.bin/dc/t1.in new file mode 100644 index 000000000..3b119fc64 --- /dev/null +++ b/src/regress/usr.bin/dc/t1.in @@ -0,0 +1,48 @@ +[1234]Xp s. +12.345Xp s. +[]Xp s. +1Xp s. +_1Xp s. +3.99999999999999Xp s. +_3.99999999999999Xp s. +[]Zp s. +[aap]Zp s. +[aapnoot]Zp s. +0Zp s. +1Zp s. +_1Zp s. +3.99999999999999Zp s. +_3.99999999999999Zp s. +_1 3^p s. +_1 3.0^p s. +2.0 10^p s. +100000000000000000000000000000000000000000000000000000000000000000000 99^ps. +30k +10000000000000000000000000000000000000vp s. +0.3219832098321890321903903218321098321098213vp s. +[ps.]sa +1 0 1 +a +4 6 7 +!>a +5 8 9 +=a +6 10 10 +=a +7 11 11 +!=a +8 12 13 +!=a +c +[OK] 0:a 0Sa [NOT OK] 0:a La 0;ap +!echo ECHO +[!echo STRING]sa +lax +[lip1+sili10>a]sa0silax +c +zp s. +1 2 3 z ps. diff --git a/src/regress/usr.bin/dc/t1.out b/src/regress/usr.bin/dc/t1.out new file mode 100644 index 000000000..55f545d03 --- /dev/null +++ b/src/regress/usr.bin/dc/t1.out @@ -0,0 +1,138 @@ +0 +3 +0 +0 +0 +14 +14 +0 +3 +7 +1 +1 +1 +15 +15 +-1 +-1 +1024.0 +10000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000000000 +3162277660168379331.998893544432718533719555139325 +.5674356437801462540323380286417965925128630 +2 +3 +6 +8 +OK +ECHO +STRING +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +3 diff --git a/src/regress/usr.bin/dc/t10.in b/src/regress/usr.bin/dc/t10.in new file mode 100644 index 000000000..fc4d11d24 --- /dev/null +++ b/src/regress/usr.bin/dc/t10.in @@ -0,0 +1,11 @@ +[1J]sM +1plMx +!echo M aap +lMp +[aMa] +0 0!=M +1p +0 0!=MeM +1p +M +2p diff --git a/src/regress/usr.bin/dc/t10.out b/src/regress/usr.bin/dc/t10.out new file mode 100644 index 000000000..1191247b6 --- /dev/null +++ b/src/regress/usr.bin/dc/t10.out @@ -0,0 +1,2 @@ +1 +2 diff --git a/src/regress/usr.bin/dc/t11.in b/src/regress/usr.bin/dc/t11.in new file mode 100644 index 000000000..5af86c77c --- /dev/null +++ b/src/regress/usr.bin/dc/t11.in @@ -0,0 +1,8 @@ +[[IF]p]sa +[[ELSE]p]sb +0 1aeb +0 0=aeb +0 1=aeb +1 0!=aeb +0 0!=aeb diff --git a/src/regress/usr.bin/dc/t11.out b/src/regress/usr.bin/dc/t11.out new file mode 100644 index 000000000..0304a3eb7 --- /dev/null +++ b/src/regress/usr.bin/dc/t11.out @@ -0,0 +1,6 @@ +ELSE +ELSE +IF +ELSE +IF +ELSE diff --git a/src/regress/usr.bin/dc/t12.in b/src/regress/usr.bin/dc/t12.in new file mode 100644 index 000000000..b3a0faaba --- /dev/null +++ b/src/regress/usr.bin/dc/t12.in @@ -0,0 +1,9 @@ +1 2 rf +[a] [b] rf +[c] 3 rf +c +r +1 +r +2 +rf diff --git a/src/regress/usr.bin/dc/t12.out b/src/regress/usr.bin/dc/t12.out new file mode 100644 index 000000000..8ad2c975c --- /dev/null +++ b/src/regress/usr.bin/dc/t12.out @@ -0,0 +1,14 @@ +1 +2 +a +b +1 +2 +c +3 +a +b +1 +2 +1 +2 diff --git a/src/regress/usr.bin/dc/t13.in b/src/regress/usr.bin/dc/t13.in new file mode 100644 index 000000000..efd58282e --- /dev/null +++ b/src/regress/usr.bin/dc/t13.in @@ -0,0 +1,15 @@ +# Comment +# + +1n +[foo]n +[]an +[a]an +[bc]an +0an +32an +100an +100000100an +[lidan1+dsi127>a]sa +32silax +10an diff --git a/src/regress/usr.bin/dc/t13.out b/src/regress/usr.bin/dc/t13.out new file mode 100644 index 000000000..3ab7c2d77 --- /dev/null +++ b/src/regress/usr.bin/dc/t13.out @@ -0,0 +1 @@ +1fooab dd !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ diff --git a/src/regress/usr.bin/dc/t14.in b/src/regress/usr.bin/dc/t14.in new file mode 100644 index 000000000..cd4a5da82 --- /dev/null +++ b/src/regress/usr.bin/dc/t14.in @@ -0,0 +1,78 @@ +[[ok]P]s0 +[[nok]P]s1 + 0 0G 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 1 0G 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 0 1G 0!=0e1 +[ +]n +[[nok]P]s0 +[[ok]P]s1 + 0 0GN 0!=0e1 +[[ok]P]s0 +[[nok]P]s1 + 1 0GN 0!=0e1 +[[ok]P]s0 +[[nok]P]s1 + 0 1GN 0!=0e1 +[ +]n +[[ok]P]s0 +[[nok]P]s1 + 0 0G 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 1 0G 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 0 1G 0!=0e1 +[ +]n +[[ok]P]s0 +[[nok]P]s1 + 1 0( 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 0 1( 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 1 1( 0!=0e1 +[ +]n +[[ok]P]s0 +[[nok]P]s1 + 1 0{ 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 0 1{ 0!=0e1 +[[ok]P]s0 +[[nok]P]s1 + 1 1{ 0!=0e1 +[ +]n +[[nok]P]s0 +[[ok]P]s1 + 0 1( 0!=0e1 +[[ok]P]s0 +[[nok]P]s1 + 1 0( 0!=0e1 +[[nok]P]s0 +[[ok]P]s1 + 1 1( 0!=0e1 +[ +]n +[[nok]P]s0 +[[ok]P]s1 + 0 1{ 0!=0e1 +[[ok]P]s0 +[[nok]P]s1 + 1 0{ 0!=0e1 +[[ok]P]s0 +[[nok]P]s1 + 1 1{ 0!=0e1 +[ +]n +q \ No newline at end of file diff --git a/src/regress/usr.bin/dc/t14.out b/src/regress/usr.bin/dc/t14.out new file mode 100644 index 000000000..d0237567c --- /dev/null +++ b/src/regress/usr.bin/dc/t14.out @@ -0,0 +1,7 @@ +okokok +okokok +okokok +okokok +okokok +okokok +okokok diff --git a/src/regress/usr.bin/dc/t15.in b/src/regress/usr.bin/dc/t15.in new file mode 100644 index 000000000..bf586a6d4 --- /dev/null +++ b/src/regress/usr.bin/dc/t15.in @@ -0,0 +1,55 @@ +[s. 2]s1 +[[ok1]P]s0 + 1d0!=1 0!=0 +[s. 2]s1 +[[nok2]P]s0 +[[ok2]P]s2 + 0d0!=1 0!=0e2 +[s. 0]s1 +[[nok3]P]s0 +[[ok3]P]s2 + 3d0!=1 0!=0e2 +[s. 0]s1 +[[nok4]P]s0 +[[ok4]P]s2 + 0d0!=1 0!=0e2 +[s. 0]s1 +[s. 0]s2 +[[nok5]P]s0 +[[ok5]P]s3 + 0d0!=1d0!=2 0!=0e3 +[s. 1]s1 +[s. 0]s2 +[[nok6]P]s0 +[[ok6]P]s3 + 0d0!=1d0!=2 0!=0e3 +[s. 1]s1 +[s. 1]s2 +[[ok7]P]s0 +[[nok7]P]s3 + 1d0!=1d0!=2 0!=0e3 +[ +]n +[[f]P0 1Q]s + + +[[g]P 1 1Q0 1Q]s + + +[s.lx]s1 +[[nok8]P]s0 +[[ok8]P]s2 +lxd0!=1 0!=0e2 +[s.lx]s1 +[[ok9]P]s0 +[[nok9]P]s2 +lxNd0!=1 0!=0e2 +[ +]n +[s. 4 3(]s1 +[[ok10]P]s0 +[[nok10]P]s2 + 2 1(d0!=1 0!=0e2 +[ +]n +q \ No newline at end of file diff --git a/src/regress/usr.bin/dc/t15.out b/src/regress/usr.bin/dc/t15.out new file mode 100644 index 000000000..ba78f6448 --- /dev/null +++ b/src/regress/usr.bin/dc/t15.out @@ -0,0 +1,3 @@ +ok1ok2ok3ok4ok5ok6ok7 +fok8fgok9 +ok10 diff --git a/src/regress/usr.bin/dc/t16.in b/src/regress/usr.bin/dc/t16.in new file mode 100644 index 000000000..1b1f998a7 --- /dev/null +++ b/src/regress/usr.bin/dc/t16.in @@ -0,0 +1,48 @@ +[s. 0]s1 +[[nok1]P]s0 +[[ok1]P]s2 + 0d0=1 0!=0e2 +[s. 0]s1 +[[ok2]P]s0 +[[nok2]P]s2 + 1d0=1 0!=0e2 +[s. 1]s1 +[[ok3]P]s0 +[[nok3]P]s2 + 0d0=1 0!=0e2 +[s. 1]s1 +[[ok4]P]s0 +[[nok4]P]s2 + 1d0=1 0!=0e2 +[ +]n + +[[f]P 0 1Q0 1Q]s + + +[[g]P 0 1Q0 1Q]s + + +[[h]P 1 1Q0 1Q]s + + + +[s.lx]s1 +[s.lx]s2 +[[ok5]P]s0 +[[nok5]P]s3 +lxd0=1d0=2 0!=0e3 +[s.lx]s1 +[s.lxN]s2 +[[nok6]P]s0 +[[ok6]P]s3 +lxd0=1d0=2 0!=0e3 +[s.lxN]s1 +[s.lx]s2 +[[nok7]P]s0 +[[ok7]P]s3 +lxd0=1d0=2 0!=0e3 + +[ +]n +q \ No newline at end of file diff --git a/src/regress/usr.bin/dc/t16.out b/src/regress/usr.bin/dc/t16.out new file mode 100644 index 000000000..9da14e7e2 --- /dev/null +++ b/src/regress/usr.bin/dc/t16.out @@ -0,0 +1,2 @@ +ok1ok2ok3ok4 +fghok5fghok6fhgok7 diff --git a/src/regress/usr.bin/dc/t17.in b/src/regress/usr.bin/dc/t17.in new file mode 100644 index 000000000..8236bebfa --- /dev/null +++ b/src/regress/usr.bin/dc/t17.in @@ -0,0 +1,3 @@ +1 2Rf +Rf +[foo][bar]rRf diff --git a/src/regress/usr.bin/dc/t17.out b/src/regress/usr.bin/dc/t17.out new file mode 100644 index 000000000..29295c37e --- /dev/null +++ b/src/regress/usr.bin/dc/t17.out @@ -0,0 +1,2 @@ +1 +bar diff --git a/src/regress/usr.bin/dc/t18.in b/src/regress/usr.bin/dc/t18.in new file mode 100644 index 000000000..38a9e3f29 --- /dev/null +++ b/src/regress/usr.bin/dc/t18.in @@ -0,0 +1,7 @@ +0;ap +100;a; +99 0:a +100 100:a +0;ap +100;ap + diff --git a/src/regress/usr.bin/dc/t18.out b/src/regress/usr.bin/dc/t18.out new file mode 100644 index 000000000..5b74afb72 --- /dev/null +++ b/src/regress/usr.bin/dc/t18.out @@ -0,0 +1,3 @@ +0 +99 +100 diff --git a/src/regress/usr.bin/dc/t19.in b/src/regress/usr.bin/dc/t19.in new file mode 100644 index 000000000..6bda7f3e8 --- /dev/null +++ b/src/regress/usr.bin/dc/t19.in @@ -0,0 +1,569 @@ + 97sa + 98sb + 99sc + 100sd + 101se + 102sf + 103sg + 104sh + 105si + 106sj + 107sk + 108sl + 109sm + 110sn + 111so + 112sp + 113sq + 114sr + 115ss + 116st + 117su + 118sv + 119sw + 120sx + 121sy + 122sz + 0sÿ + 1sÿ + 2sÿ + 3sÿ + 4sÿ + 5sÿ + 6sÿ + 7sÿ + 8sÿ + 9sÿ + + 10sÿ + 11sÿ + 12sÿ + 13sÿ + 14sÿ + 15sÿ + 16sÿ + 17sÿ + 18sÿ + 19sÿ + 20sÿ + 21sÿ + 22sÿ + 23sÿ + 24sÿ + 25sÿ + 26sÿ + 27sÿ + 28sÿ + 29sÿ + 30sÿ + 31sÿ + 32sÿ! + 33sÿ" + 34sÿ# + 35sÿ$ + 36sÿ% + 37sÿ& + 38sÿ' + 39sÿ( + 40sÿ) + 41sÿ* + 42sÿ+ + 43sÿ, + 44sÿ- + 45sÿ. + 46sÿ/ + 47sÿ0 + 48sÿ1 + 49sÿ2 + 50sÿ3 + 51sÿ4 + 52sÿ5 + 53sÿ6 + 54sÿ7 + 55sÿ8 + 56sÿ9 + 57sÿ: + 58sÿ; + 59sÿ< + 60sÿ= + 61sÿ> + 62sÿ? + 63sÿ@ + 64sÿA + 65sÿB + 66sÿC + 67sÿD + 68sÿE + 69sÿF + 70sÿG + 71sÿH + 72sÿI + 73sÿJ + 74sÿK + 75sÿL + 76sÿM + 77sÿN + 78sÿO + 79sÿP + 80sÿQ + 81sÿR + 82sÿS + 83sÿT + 84sÿU + 85sÿV + 86sÿW + 87sÿX + 88sÿY + 89sÿZ + 90sÿ^ + 91sÿ_ + 92sÿ` + 93sÿa + 94sÿb + 95sÿc + 96sÿd + 97sÿe + 98sÿf + 99sÿg + 100sÿh + 101sÿi + 102sÿj + 103sÿk + 104sÿl + 105sÿm + 106sÿn + 107sÿo + 108sÿp + 109sÿq + 110sÿr + 111sÿs + 112sÿt + 113sÿu + 114sÿv + 115sÿw + 116sÿx + 117sÿy + 118sÿz + 119sÿ{ + 120sÿ| + 121sÿ} + 122sÿ~ + 123sÿ + 124sÿ€ + 125sÿ + 126sÿ‚ + 127sÿƒ + 128sÿ„ + 129sÿ… + 130sÿ† + 131sÿ‡ + 132sÿˆ + 133sÿ‰ + 134sÿŠ + 135sÿ‹ + 136sÿŒ + 137sÿ + 138sÿŽ + 139sÿ + 140sÿ + 141sÿ‘ + 142sÿ’ + 143sÿ“ + 144sÿ” + 145sÿ• + 146sÿ– + 147sÿ— + 148sÿ˜ + 149sÿ™ + 150sÿš + 151sÿ› + 152sÿœ + 153sÿ + 154sÿž + 155sÿŸ + 156sÿ  + 157sÿ¡ + 158sÿ¢ + 159sÿ£ + 160sÿ¤ + 161sÿ¥ + 162sÿ¦ + 163sÿ§ + 164sÿ¨ + 165sÿ© + 166sÿª + 167sÿ« + 168sÿ¬ + 169sÿ­ + 170sÿ® + 171sÿ¯ + 172sÿ° + 173sÿ± + 174sÿ² + 175sÿ³ + 176sÿ´ + 177sÿµ + 178sÿ¶ + 179sÿ· + 180sÿ¸ + 181sÿ¹ + 182sÿº + 183sÿ» + 184sÿ¼ + 185sÿ½ + 186sÿ¾ + 187sÿ¿ + 188sÿÀ + 189sÿÁ + 190sÿ + 191sÿà + 192sÿÄ + 193sÿÅ + 194sÿÆ + 195sÿÇ + 196sÿÈ + 197sÿÉ + 198sÿÊ + 199sÿË + 200sÿÌ + 201sÿÍ + 202sÿÎ + 203sÿÏ + 204sÿÐ + 205sÿÑ + 206sÿÒ + 207sÿÓ + 208sÿÔ + 209sÿÕ + 210sÿÖ + 211sÿ× + 212sÿØ + 213sÿÙ + 214sÿÚ + 215sÿÛ + 216sÿÜ + 217sÿÝ + 218sÿÞ + 219sÿß + 220sÿà + 221sÿá + 222sÿâ + 223sÿã + 224sÿä + 225sÿå + 226sÿæ + 227sÿç + 228sÿè + 229sÿé + 230sÿê + 231sÿë + 232sÿì + 233sÿí + 234sÿî + 235sÿï + 236sÿð + 237sÿñ + 238sÿò + 239sÿó + 240sÿô + 241sÿõ + 242sÿö + 243sÿ÷ + 244sÿø + 245sÿù + 246sÿú + 247sÿû + 248sÿü + 249sÿý + 250sÿþ + 251sÿÿ + 252sÿ + 253sÿ + 254sÿ + 255sÿ + 256sÿÿÿ +laps. +lbps. +lcps. +ldps. +leps. +lfps. +lgps. +lhps. +lips. +ljps. +lkps. +llps. +lmps. +lnps. +lops. +lpps. +lqps. +lrps. +lsps. +ltps. +lups. +lvps. +lwps. +lxps. +lyps. +lzps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿ ps. +lÿ +ps. +lÿ ps. +lÿ ps. +lÿ ps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿ ps. +lÿ!ps. +lÿ"ps. +lÿ#ps. +lÿ$ps. +lÿ%ps. +lÿ&ps. +lÿ'ps. +lÿ(ps. +lÿ)ps. +lÿ*ps. +lÿ+ps. +lÿ,ps. +lÿ-ps. +lÿ.ps. +lÿ/ps. +lÿ0ps. +lÿ1ps. +lÿ2ps. +lÿ3ps. +lÿ4ps. +lÿ5ps. +lÿ6ps. +lÿ7ps. +lÿ8ps. +lÿ9ps. +lÿ:ps. +lÿ;ps. +lÿps. +lÿ?ps. +lÿ@ps. +lÿAps. +lÿBps. +lÿCps. +lÿDps. +lÿEps. +lÿFps. +lÿGps. +lÿHps. +lÿIps. +lÿJps. +lÿKps. +lÿLps. +lÿMps. +lÿNps. +lÿOps. +lÿPps. +lÿQps. +lÿRps. +lÿSps. +lÿTps. +lÿUps. +lÿVps. +lÿWps. +lÿXps. +lÿYps. +lÿZps. +lÿ^ps. +lÿ_ps. +lÿ`ps. +lÿaps. +lÿbps. +lÿcps. +lÿdps. +lÿeps. +lÿfps. +lÿgps. +lÿhps. +lÿips. +lÿjps. +lÿkps. +lÿlps. +lÿmps. +lÿnps. +lÿops. +lÿpps. +lÿqps. +lÿrps. +lÿsps. +lÿtps. +lÿups. +lÿvps. +lÿwps. +lÿxps. +lÿyps. +lÿzps. +lÿ{ps. +lÿ|ps. +lÿ}ps. +lÿ~ps. +lÿps. +lÿ€ps. +lÿps. +lÿ‚ps. +lÿƒps. +lÿ„ps. +lÿ…ps. +lÿ†ps. +lÿ‡ps. +lÿˆps. +lÿ‰ps. +lÿŠps. +lÿ‹ps. +lÿŒps. +lÿps. +lÿŽps. +lÿps. +lÿps. +lÿ‘ps. +lÿ’ps. +lÿ“ps. +lÿ”ps. +lÿ•ps. +lÿ–ps. +lÿ—ps. +lÿ˜ps. +lÿ™ps. +lÿšps. +lÿ›ps. +lÿœps. +lÿps. +lÿžps. +lÿŸps. +lÿ ps. +lÿ¡ps. +lÿ¢ps. +lÿ£ps. +lÿ¤ps. +lÿ¥ps. +lÿ¦ps. +lÿ§ps. +lÿ¨ps. +lÿ©ps. +lÿªps. +lÿ«ps. +lÿ¬ps. +lÿ­ps. +lÿ®ps. +lÿ¯ps. +lÿ°ps. +lÿ±ps. +lÿ²ps. +lÿ³ps. +lÿ´ps. +lÿµps. +lÿ¶ps. +lÿ·ps. +lÿ¸ps. +lÿ¹ps. +lÿºps. +lÿ»ps. +lÿ¼ps. +lÿ½ps. +lÿ¾ps. +lÿ¿ps. +lÿÀps. +lÿÁps. +lÿÂps. +lÿÃps. +lÿÄps. +lÿÅps. +lÿÆps. +lÿÇps. +lÿÈps. +lÿÉps. +lÿÊps. +lÿËps. +lÿÌps. +lÿÍps. +lÿÎps. +lÿÏps. +lÿÐps. +lÿÑps. +lÿÒps. +lÿÓps. +lÿÔps. +lÿÕps. +lÿÖps. +lÿ×ps. +lÿØps. +lÿÙps. +lÿÚps. +lÿÛps. +lÿÜps. +lÿÝps. +lÿÞps. +lÿßps. +lÿàps. +lÿáps. +lÿâps. +lÿãps. +lÿäps. +lÿåps. +lÿæps. +lÿçps. +lÿèps. +lÿéps. +lÿêps. +lÿëps. +lÿìps. +lÿíps. +lÿîps. +lÿïps. +lÿðps. +lÿñps. +lÿòps. +lÿóps. +lÿôps. +lÿõps. +lÿöps. +lÿ÷ps. +lÿøps. +lÿùps. +lÿúps. +lÿûps. +lÿüps. +lÿýps. +lÿþps. +lÿÿps. +lÿps. +lÿps. +lÿps. +lÿps. +lÿÿÿps. +q diff --git a/src/regress/usr.bin/dc/t19.out b/src/regress/usr.bin/dc/t19.out new file mode 100644 index 000000000..368c57874 --- /dev/null +++ b/src/regress/usr.bin/dc/t19.out @@ -0,0 +1,283 @@ +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 diff --git a/src/regress/usr.bin/dc/t2.in b/src/regress/usr.bin/dc/t2.in new file mode 100644 index 000000000..f9507950c --- /dev/null +++ b/src/regress/usr.bin/dc/t2.in @@ -0,0 +1,3 @@ +[Adapted from a dc example by Michel Charpentier, see + http://www.cs.unh.edu/~charpov/Programming/DC/ ]s. +10234252[p]s2[lip/dli%0=1dvsr]s12sid2%0=13sidvsr[dli%0=1lrli2+dsi!>.]ds.xd1<2 diff --git a/src/regress/usr.bin/dc/t2.out b/src/regress/usr.bin/dc/t2.out new file mode 100644 index 000000000..5273a398b --- /dev/null +++ b/src/regress/usr.bin/dc/t2.out @@ -0,0 +1,4 @@ +2 +2 +7 +365509 diff --git a/src/regress/usr.bin/dc/t20.in b/src/regress/usr.bin/dc/t20.in new file mode 100644 index 000000000..9e4a6e6a8 --- /dev/null +++ b/src/regress/usr.bin/dc/t20.in @@ -0,0 +1,100 @@ +# $OpenBSD: t20.in,v 1.1 2003/12/09 12:46:32 otto Exp $ +# +# Copyright (c) 2003 Amit Singh +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +# +# The Towers Of Hanoi +# dc (Unix Desk Calculator) version +# http://hanoi.kernelthread.com +# + +[ # move(from, to) + n # print from + [ --> ]n # print " --> " + p # print to\n + sw # p doesn't pop, so get rid of the value +]sm + +[ # init(n) + sw # tuck n away temporarily + 9 # sentinel as bottom of stack + lw # bring n back + 1 # "from" tower's label + 3 # "to" tower's label + 0 # processed marker +]si + +[ # Move() + lt # push to + lf # push from + lmx # call move(from, to) +]sM + +[ # code block + ln # push n + lf # push from + lt # push to + 1 # push processed marker 1 + ln # push n + 1 # push 1 + - # n - 1 + lf # push from + ll # push left + 0 # push processed marker 0 +]sd + +[ # code block + ln # push n + 1 # push 1 + - # n - 1 + ll # push left + lt # push to + 0 # push processed marker 0 +]se + +[ # code block + ln 1 =M + ln 1 !=d +]sx + +[ # code block + lMx + lex +]sy + +[ # quit() + q # exit the program +]sq + +[ # run() + d 9 =q # if stack empty, quit() + sp # processed + st # to + sf # from + sn # n + 6 # + lf # + - # + lt # + - # 6 - from - to + sl # + lp 0 =x # + lp 0 !=y # + lrx # loop +]sr + +5lix # init(n) +lrx # run() + diff --git a/src/regress/usr.bin/dc/t20.out b/src/regress/usr.bin/dc/t20.out new file mode 100644 index 000000000..3e7cb2592 --- /dev/null +++ b/src/regress/usr.bin/dc/t20.out @@ -0,0 +1,31 @@ +1 --> 3 +1 --> 2 +3 --> 2 +1 --> 3 +2 --> 1 +2 --> 3 +1 --> 3 +1 --> 2 +3 --> 2 +3 --> 1 +2 --> 1 +3 --> 2 +1 --> 3 +1 --> 2 +3 --> 2 +1 --> 3 +2 --> 1 +2 --> 3 +1 --> 3 +2 --> 1 +3 --> 2 +3 --> 1 +2 --> 1 +2 --> 3 +1 --> 3 +1 --> 2 +3 --> 2 +1 --> 3 +2 --> 1 +2 --> 3 +1 --> 3 diff --git a/src/regress/usr.bin/dc/t21.in b/src/regress/usr.bin/dc/t21.in new file mode 100644 index 000000000..ee95a9ca9 --- /dev/null +++ b/src/regress/usr.bin/dc/t21.in @@ -0,0 +1,64 @@ + + + + + + + 20k +[ 0lx-sx 1sw]s0 +[lx 2/sxly 1+sylx 2<1]s1 +[lglg*sglyd1-sy 0!=4]s4 +[ 1lg/Lxs.Las.Lbs.Lcs.Lds.Les.Lgs.Lts.Lws.Lys. 4Q]s5 +[lg 1/sglyd1-sy 0!=4 ltklw 1=5 lg 1/Lxs.Las.Lbs.Lcs.Lds.Les.Lgs.Lts.Lws.Lys. 3Q]s3 +[lblx*sblcla*lb+scldla*sdlcld/sglgle=3 lgselad1+sas. 1 1=2]s2 +[0Sy0Sw0St0Sg0Se0Sd0Sc0Sb0SaSxKstlt .434lx*+ 1+k 0swlx 0>0 0sylx 2<1 1sa 1sblbsc 1sd 1se 1dsas. 1 1=2 Lxs.Las.Lbs.Lcs.Lds.Les.Lgs.Lts.Lws.Lys.0 1Q]s + + + +[ 1 10K^-Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lus.Lss.Lts. 2Q]s6 +[lsk]s8 +[lslxZlxX- 2/+ 1+ssls 0<8 lxvsxlf 2*sflx 2<7]s7 +[lsk]s: +[lslxZlxX- 2/+ 1+ssls 0<: lxvsxlf 2*sflx .5>9]s9 +[ltklulc*ld/Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lus.Lss.Lts. 3Q]s< +[lbls*sblcla*ldlb*+scldla*sdlcld/sglgle=< lgsela 2+dsas. 1 1=;]s; +[0St0Ss0Su0Sg0Sf0Se0Sd0Sc0Sb0SaSxlx 0!<6 Kst 1sfKlxX+lxZ- 1+kKsslx 2<7 lx .5>9 ltlfZ+lfX- 1+klx 1-lx 1+/suK 1.1ltZ*+ 1.1ltX*-klulu*ss 2lf*sblbsc 1sd 1se 3dsas. 1 1=; Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lus.Lss.Lts.0 1Q]s + + + +[ltss]s= +[lx 2lp*/ 1+ 2/sn]s> +[lx 2lp*/ 1- 2/sn]s? +[ 0lx-sx]s@ +[ltkls 1/Lxs.Las.Lbs.Lcs.Lss.Lts.Lys.Lps.Lns.Lis. 3Q]sB +[laly*salbli*li 1-*sblalb/sclc 0=B lslc+ssli 2+dsis. 1 1=A]sA +[0Si0Sn0Sp0Sy0St0Ss0Sc0Sb0SaSxKstlx .7853/syltlyZ+lyX-sslslt>= lsk 1lxsp 0klx 0!>> lx 0>? lx 4ln*lp*-sxln 2% 0!=@ lt 1.2lt*Z+ 1.2lt*X-k 0lx-lx*sylxsa 1sblxss 3dsis. 1 1=A Lxs.Las.Lbs.Lcs.Lss.Lts.Lys.Lps.Lns.Lis.0 1Q]s + + + +[0StSxKstK 1+klx 2 1lx*+lxsxltklx 1/Lxs.Lts. 1QLxs.Lts.0 1Q]s + + + +[ 0Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lss.Lts. 2Q]sC +[ .7853981633974483096156608458198757210492923498437764 1/Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lss.Lts. 3Q]sE +[K 52>E ]sD +[K 1+k 0 1 1.lxlx*+v--lx/sxlf 2*sflx .5G]sG +[ltklxlc*ld/Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lss.Lts. 3Q]sI +[lbls*sblcla*ldlb*+scldla*sdlcld/sglgle=I lgsela 2+dsas. 1 1=H]sH +[0St0Ss0Sg0Sf0Se0Sd0Sc0Sb0SaSxlx 0=C lx 1=D Kst 1sflx .5G 0lx-lx*sslfsblfsc 1sd 1se 3dsas. 1 1=H Lxs.Las.Lbs.Lcs.Lds.Les.Lfs.Lgs.Lss.Lts.0 1Q]s + + + +[Klk+k]sJ +[ 0ln-sn 0lx-sx]sK +[lalx*salc 2*li*sclid1+sis.liln!K 1sa 1sc 1dsis.liln! +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +[ Sing the classic '99 Bottles of Beer', using the Unix dc utility. ]sd +[ ]sd +[ Run this one by typing 'dc < bottles.dc' at the Unix prompt, where ]sd +[ bottles.dc is the file containing these lines. ]sd +[ ]sd +[ bottles of beer]sb[ on the wall]sw[,]sc +[take one down, pass it around]st[.]sp[no more]sk +[10lplwlbln1-10lclt10lclbln32lclwlbln]sl +[lzxPPPPlzxPPPPPPlzxPPPP]so[lkP]sx[dZselyxsd]su +[d10le1-dse^ /d10/10*-48+P le00 0sylx 2<1 1sa 1sblbsc 1sd 1se 1dsas. 1 1=2 Lxs.Las.Lbs.Lcs.Lds.Les.Lgs.Lts.Lws.Lys.0 1Q]sE +10lExps. +10.6lExps. + diff --git a/src/regress/usr.bin/dc/t5.out b/src/regress/usr.bin/dc/t5.out new file mode 100644 index 000000000..b94fa0e0e --- /dev/null +++ b/src/regress/usr.bin/dc/t5.out @@ -0,0 +1,2 @@ +22026.46579480671651695789 +40134.83743087579310947682 diff --git a/src/regress/usr.bin/dc/t6.in b/src/regress/usr.bin/dc/t6.in new file mode 100644 index 000000000..98657718a --- /dev/null +++ b/src/regress/usr.bin/dc/t6.in @@ -0,0 +1,3 @@ +[1ps.1Q3ps.]sa +[3ps.lax]sb +lbx diff --git a/src/regress/usr.bin/dc/t6.out b/src/regress/usr.bin/dc/t6.out new file mode 100644 index 000000000..f00580c40 --- /dev/null +++ b/src/regress/usr.bin/dc/t6.out @@ -0,0 +1,2 @@ +3 +1 diff --git a/src/regress/usr.bin/dc/t7.in b/src/regress/usr.bin/dc/t7.in new file mode 100644 index 000000000..416df939b --- /dev/null +++ b/src/regress/usr.bin/dc/t7.in @@ -0,0 +1,5 @@ +[Program from http://www.cs.unh.edu/~charpov/Programming/DC/]s. +[The output produced by this test is the Jabberwocky poeam by Lewis Carol, + from "Through the Looking-Glass and What Alice Found There", 1872]s. +22208085721160815839326341402121883690522320029255552164456082082121507399131784888796775404393238740752073581292176033192975608648980579511790754074629932624904826033926771561352802702304711849306991432140783663141097741410673769879986682209343466281135283290275369909264160273176470124389744289584917009576579173596679560702849116170806711176042540325188738564140628164804618257135693047847192850818282310363304691273054958318318136191456275934310979155326791959077883445003166261104834773132040707456928546349673980840313948708349674193786434159922651000968311352206702569130007195445654084933953345626389764219705628257612293204376976748352217929337471880882231223685405877498688770919610871973453341673913923792234893241993439245115105190893660465508673064373840268054184063151225377582060655786260788736204677135397194609418373902725670020397378638535454535982247377168952102335040177207305844444366209308523996849245976720417612176719067483022960817121007244452665449784273243174997760034496193814960150784537785113589011725985900508524882770853637523676303240173952011467376200157457202234158542518689678707600958087139914974630505378072055818423497887022672894966264722482896163204923500950712750800537457664585469095374214293974296229117403664516032413259929513310658563843081832487569416683206341446732898062734501513714984552459725473478529038715898310732843126214088302700527765333188909878114118156328607905954179948741014531467629112351746391357169021505149742077359053197219166630939696390194435167157513452231104227665811363415438461304936968404285629177347016678518931947203796484167545101613670772251307345495413035233907657705241691280430994746768012380728375146653630623831838222282318165089162386341671976737726353273451886027886364291170031129520721957416004799824490011955162466021287535364309928388542132049900161052116530089934228815775998215778916104959359698408064987438386886161480778575982275751968826631954742887974749292068020577501261842082809483702986629865701617200056158514119921272726266484084142349717069035717802916618873448175705514451223911583066310022020808646584937752763866798004057371097500872885733222570967153949159920525516838117787583988167897342360101235912871520761154734770678309671549603175730098764310659277164535040418340982101759825495735066065501823775306294622701628580346350888711132078451931296748345416719473558304071712[d256%P256/d0<.]ds.x + diff --git a/src/regress/usr.bin/dc/t7.out b/src/regress/usr.bin/dc/t7.out new file mode 100644 index 000000000..8e55c1aef --- /dev/null +++ b/src/regress/usr.bin/dc/t7.out @@ -0,0 +1,36 @@ + JABBERWOCKY + +`Twas brillig, and the slithy toves + Did gyre and gimble in the wabe: +All mimsy were the borogoves, + And the mome raths outgrabe. + +"Beware the Jabberwock, my son! + The jaws that bite, the claws that catch! +Beware the Jubjub bird, and shun + The frumious Bandersnatch!" + +He took his vorpal sword in hand: + Long time the manxome foe he sought -- +So rested he by the Tumtum tree, + And stood awhile in thought. + +And, as in uffish thought he stood, + The Jabberwock, with eyes of flame, +Came whiffling through the tulgey wood, + And burbled as it came! + +One, two! One, two! And through and through + The vorpal blade went snicker-snack! +He left it dead, and with its head + He went galumphing back. + +"And, has thou slain the Jabberwock? + Come to my arms, my beamish boy! +O frabjous day! Callooh! Callay!' + He chortled in his joy. + +`Twas brillig, and the slithy toves + Did gyre and gimble in the wabe; +All mimsy were the borogoves, + And the mome raths outgrabe. diff --git a/src/regress/usr.bin/dc/t8.in b/src/regress/usr.bin/dc/t8.in new file mode 100644 index 000000000..0da53a55c --- /dev/null +++ b/src/regress/usr.bin/dc/t8.in @@ -0,0 +1,17 @@ +[S1S,Salaps. 0;,ps. 99 1:,Las.L,s.L1s.0 1Q]sF + + 13sa + 33 0:i + 44 1:i + + 77 0:c + 88 1:c + +lalilclFxps. + 2lclclFxps. + + 0;ips. + 1;ips. + 0;cps. + 1;cps. +q diff --git a/src/regress/usr.bin/dc/t8.out b/src/regress/usr.bin/dc/t8.out new file mode 100644 index 000000000..31d43ce0f --- /dev/null +++ b/src/regress/usr.bin/dc/t8.out @@ -0,0 +1,10 @@ +13 +33 +0 +2 +77 +0 +33 +44 +77 +88 diff --git a/src/regress/usr.bin/dc/t9.in b/src/regress/usr.bin/dc/t9.in new file mode 100644 index 000000000..46437c066 --- /dev/null +++ b/src/regress/usr.bin/dc/t9.in @@ -0,0 +1,24 @@ +[10o[* ]Ppop]sb + +[[==== ]10oPp 2lbx 3 lbx 4 lbx 5lbx 6lbx 7 lbx 8lbx 9lbx 10lbx 16lbx +17 lbx 20lbx 99lbx 100lbx 101lbx 1000lbx 10000lbx 2 30^lbx +[==== +]Ps.]sa +0lax +1lax +10lax +100lax +1000lax +10000lax +_1lax +_10lax +_100lax +_1000lax +_10000lax +10.1lax +10.01lax +10.10lax +1024 +25lax +125lax +2.1 500^lax diff --git a/src/regress/usr.bin/dc/t9.out b/src/regress/usr.bin/dc/t9.out new file mode 100644 index 000000000..6b1e7a314 --- /dev/null +++ b/src/regress/usr.bin/dc/t9.out @@ -0,0 +1,706 @@ +==== 0 +* 2 +0 +* 3 +0 +* 4 +0 +* 5 +0 +* 6 +0 +* 7 +0 +* 8 +0 +* 9 +0 +* 10 +0 +* 16 +0 +* 17 +0 +* 20 +0 +* 99 +0 +* 100 +0 +* 101 +0 +* 1000 +0 +* 10000 +0 +* 1073741824 +0 +==== +==== 1 +* 2 +1 +* 3 +1 +* 4 +1 +* 5 +1 +* 6 +1 +* 7 +1 +* 8 +1 +* 9 +1 +* 10 +1 +* 16 +1 +* 17 + 01 +* 20 + 01 +* 99 + 01 +* 100 + 01 +* 101 + 001 +* 1000 + 001 +* 10000 + 0001 +* 1073741824 + 0000000001 +==== +==== 10 +* 2 +1010 +* 3 +101 +* 4 +22 +* 5 +20 +* 6 +14 +* 7 +13 +* 8 +12 +* 9 +11 +* 10 +10 +* 16 +A +* 17 + 10 +* 20 + 10 +* 99 + 10 +* 100 + 10 +* 101 + 010 +* 1000 + 010 +* 10000 + 0010 +* 1073741824 + 0000000010 +==== +==== 100 +* 2 +1100100 +* 3 +10201 +* 4 +1210 +* 5 +400 +* 6 +244 +* 7 +202 +* 8 +144 +* 9 +121 +* 10 +100 +* 16 +64 +* 17 + 05 15 +* 20 + 05 00 +* 99 + 01 01 +* 100 + 01 00 +* 101 + 100 +* 1000 + 100 +* 10000 + 0100 +* 1073741824 + 0000000100 +==== +==== 1000 +* 2 +1111101000 +* 3 +1101001 +* 4 +33220 +* 5 +13000 +* 6 +4344 +* 7 +2626 +* 8 +1750 +* 9 +1331 +* 10 +1000 +* 16 +3E8 +* 17 + 03 07 14 +* 20 + 02 10 00 +* 99 + 10 10 +* 100 + 10 00 +* 101 + 009 091 +* 1000 + 001 000 +* 10000 + 1000 +* 1073741824 + 0000001000 +==== +==== 10000 +* 2 +10011100010000 +* 3 +111201101 +* 4 +2130100 +* 5 +310000 +* 6 +114144 +* 7 +41104 +* 8 +23420 +* 9 +14641 +* 10 +10000 +* 16 +2710 +* 17 + 02 00 10 04 +* 20 + 01 05 00 00 +* 99 + 01 02 01 +* 100 + 01 00 00 +* 101 + 099 001 +* 1000 + 010 000 +* 10000 + 0001 0000 +* 1073741824 + 0000010000 +==== +==== -1 +* 2 +-1 +* 3 +-1 +* 4 +-1 +* 5 +-1 +* 6 +-1 +* 7 +-1 +* 8 +-1 +* 9 +-1 +* 10 +-1 +* 16 +-1 +* 17 +- 01 +* 20 +- 01 +* 99 +- 01 +* 100 +- 01 +* 101 +- 001 +* 1000 +- 001 +* 10000 +- 0001 +* 1073741824 +- 0000000001 +==== +==== -10 +* 2 +-1010 +* 3 +-101 +* 4 +-22 +* 5 +-20 +* 6 +-14 +* 7 +-13 +* 8 +-12 +* 9 +-11 +* 10 +-10 +* 16 +-A +* 17 +- 10 +* 20 +- 10 +* 99 +- 10 +* 100 +- 10 +* 101 +- 010 +* 1000 +- 010 +* 10000 +- 0010 +* 1073741824 +- 0000000010 +==== +==== -100 +* 2 +-1100100 +* 3 +-10201 +* 4 +-1210 +* 5 +-400 +* 6 +-244 +* 7 +-202 +* 8 +-144 +* 9 +-121 +* 10 +-100 +* 16 +-64 +* 17 +- 05 15 +* 20 +- 05 00 +* 99 +- 01 01 +* 100 +- 01 00 +* 101 +- 100 +* 1000 +- 100 +* 10000 +- 0100 +* 1073741824 +- 0000000100 +==== +==== -1000 +* 2 +-1111101000 +* 3 +-1101001 +* 4 +-33220 +* 5 +-13000 +* 6 +-4344 +* 7 +-2626 +* 8 +-1750 +* 9 +-1331 +* 10 +-1000 +* 16 +-3E8 +* 17 +- 03 07 14 +* 20 +- 02 10 00 +* 99 +- 10 10 +* 100 +- 10 00 +* 101 +- 009 091 +* 1000 +- 001 000 +* 10000 +- 1000 +* 1073741824 +- 0000001000 +==== +==== -10000 +* 2 +-10011100010000 +* 3 +-111201101 +* 4 +-2130100 +* 5 +-310000 +* 6 +-114144 +* 7 +-41104 +* 8 +-23420 +* 9 +-14641 +* 10 +-10000 +* 16 +-2710 +* 17 +- 02 00 10 04 +* 20 +- 01 05 00 00 +* 99 +- 01 02 01 +* 100 +- 01 00 00 +* 101 +- 099 001 +* 1000 +- 010 000 +* 10000 +- 0001 0000 +* 1073741824 +- 0000010000 +==== +==== 10.1 +* 2 +1010.0001 +* 3 +101.002 +* 4 +22.01 +* 5 +20.02 +* 6 +14.03 +* 7 +13.04 +* 8 +12.06 +* 9 +11.08 +* 10 +10.1 +* 16 +A.1 +* 17 + 10.01 +* 20 + 10.02 +* 99 + 10.09 +* 100 + 10.10 +* 101 + 010.010 +* 1000 + 010.100 +* 10000 + 0010.1000 +* 1073741824 + 0000000010.0107374182 +==== +==== 10.01 +* 2 +1010.0000001 +* 3 +101.00002 +* 4 +22.0002 +* 5 +20.001 +* 6 +14.002 +* 7 +13.003 +* 8 +12.005 +* 9 +11.007 +* 10 +10.01 +* 16 +A.02 +* 17 + 10.00 02 +* 20 + 10.00 04 +* 99 + 10.00 98 +* 100 + 10.01 +* 101 + 010.001 +* 1000 + 010.010 +* 10000 + 0010.0100 +* 1073741824 + 0000000010.0010737418 +==== +==== 10.10 +* 2 +1010.0001100 +* 3 +101.00220 +* 4 +22.0121 +* 5 +20.022 +* 6 +14.033 +* 7 +13.046 +* 8 +12.063 +* 9 +11.080 +* 10 +10.10 +* 16 +A.19 +* 17 + 10.01 11 +* 20 + 10.02 00 +* 99 + 10.09 89 +* 100 + 10.10 +* 101 + 010.010 +* 1000 + 010.100 +* 10000 + 0010.1000 +* 1073741824 + 0000000010.0107374182 +==== +==== 25 +* 2 +11001 +* 3 +221 +* 4 +121 +* 5 +100 +* 6 +41 +* 7 +34 +* 8 +31 +* 9 +27 +* 10 +25 +* 16 +19 +* 17 + 01 08 +* 20 + 01 05 +* 99 + 25 +* 100 + 25 +* 101 + 025 +* 1000 + 025 +* 10000 + 0025 +* 1073741824 + 0000000025 +==== +==== 125 +* 2 +1111101 +* 3 +11122 +* 4 +1331 +* 5 +1000 +* 6 +325 +* 7 +236 +* 8 +175 +* 9 +148 +* 10 +125 +* 16 +7D +* 17 + 07 06 +* 20 + 06 05 +* 99 + 01 26 +* 100 + 01 25 +* 101 + 001 024 +* 1000 + 125 +* 10000 + 0125 +* 1073741824 + 0000000125 +==== +==== 48769821468242723227944060199278001754406569751046238666893491237191\ +27157844479044200165222440079397481692628792836411835175908092174600\ +1516259259543195854037051.4 +* 2 +11011110000000101010110111010110000111100011001010010110010110100101\ +11001110101010011111001111011011100000110111110011000011101100010010\ +11110100110011100000100010101000010011101010010110000010110111000111\ +00111011101100101000011110011101000110110010010101111111011000111100\ +00100001000110001011101101110111000001011111101011110110111111100010\ +01101111001101100101111010001101010010010001101101010101000110011111\ +01110101011111110000000001010110101001011011110000010010000011010110\ +1111111010110110101111101001011110011010111110000000111011.0110 +* 3 +21010021002100220110221221121020022100112000121011010002020221011200\ +02011022212101121001001101020222002201120001121120201001101002110100\ +12020002002011222221202102021121002222210110200221201002201120200112\ +10220102100101112010010000122112020110201001101001202211101102212022\ +02210002101011100101101222221001210111202201020010012011200121012.101 +* 4 +31320002223131120132030221121122113032222133033123200313303003230102\ +33103032002022201032221120023130130323230220132131012302111333120330\ +02010120232313130011332233123332021233031211322031102101231111012133\ +131113330000111222112330010200311233322312233221132122332000323.12 +* 5 +41004312433123020414444033222314241023100101220321324214310134310010\ +33100011041000443340412021434131433011432040102143000140333432140123\ +03402443344304444110200344242024000041104213023334340041303432123414\ +14023313321210102113141201.20 +* 6 +22405534502124321445345213114032222025535313045515352353130331343040\ +31401012204144115110054021412055253233415141515105232101230105422500\ +52542010130240334404231234101154500405252151354521431220304411243504\ +135.22 +* 7 +12134443526400112630431305154220156240131611502004034255655541250536\ +15460121365535566254302651314211132565564006135410025212200225236621\ +5065025420463163461025615363135536263010464154023646454.25 +* 8 +67401255654170624545513472517475560337141661136463404250235226026707\ +16731207472154453766170204305667340576573376115715457215222155250637\ +352774002552267404406557726657513632760073.31 +* 9 +23323232642784720831501713306683460642853470313368626460475210410733\ +16606215885236753288342085108152047263703451030184664210410527413852\ +683071140341887053452636105150535.35 +* 10 +48769821468242723227944060199278001754406569751046238666893491237191\ +27157844479044200165222440079397481692628792836411835175908092174600\ +1516259259543195854037051.4 +* 16 +3780AB75878CA596973AA7CF6E0DF30EC4BD33822A13A960B71CEECA1E746C95FD8F\ +08462EDDC17EBDBF89BCD97A35246D5467DD5FC015A96F04835BFADAFA5E6BE03B.6 +* 17 + 05 06 04 04 11 15 12 04 15 01 03 12 16 07 15 07 15 08 02 14 06 05 0\ +7 08 14 07 13 04 12 16 02 10 04 02 08 11 05 12 04 10 05 16 04 07 14 \ +03 16 12 00 06 07 04 05 04 02 13 15 09 14 14 04 03 11 02 08 03 00 10\ + 07 11 06 02 05 10 12 06 14 05 03 00 08 09 15 09 02 16 04 16 01 04 0\ +8 04 16 07 11 09 05 01 12 10 02 09 11 12 04 12 04 13 11 16 01 11 05 \ +05 04 13 07 16 02 08 06 13 13 00 08 10 10 04 15 02 09.06 +* 20 + 04 11 14 10 06 14 06 01 15 02 14 01 05 16 11 11 02 04 09 17 05 19 1\ +5 11 14 18 17 02 19 06 13 07 19 13 19 16 11 11 12 07 03 18 06 17 02 \ +10 05 08 05 00 10 10 13 11 01 17 08 03 11 01 07 06 09 04 16 10 11 08\ + 07 10 11 10 05 01 09 02 06 16 06 05 01 07 02 04 14 08 00 10 10 16 0\ +7 12 16 11 15 16 14 09 07 08 09 00 18 08 18 16 11 13 18 16 04 03 05 \ +14 15 06 01 15 04 07 14 12 12 11.08 +* 99 + 10 88 86 53 66 18 59 79 37 59 02 11 19 54 01 67 94 70 65 09 77 12 4\ +9 56 08 50 91 68 33 31 90 34 47 33 37 51 61 11 80 81 82 70 76 20 11 \ +45 82 07 18 54 08 79 79 59 59 50 85 65 21 85 90 23 01 97 03 05 51 37\ + 25 74 90 21 64 02 30 08 71 93 79 25 68.39 +* 100 + 04 87 69 82 14 68 24 27 23 22 79 44 06 01 99 27 80 01 75 44 06 56 9\ +7 51 04 62 38 66 68 93 49 12 37 19 12 71 57 84 44 79 04 42 00 16 52 \ +22 44 00 79 39 74 81 69 26 28 79 28 36 41 18 35 17 59 08 09 21 74 60\ + 01 51 62 59 25 95 43 19 58 54 03 70 51.40 +* 101 + 002 020 021 016 018 086 045 002 095 029 093 084 068 025 099 003 027\ + 043 030 061 025 061 041 049 030 058 090 002 084 086 030 005 035 046\ + 087 086 064 013 015 092 069 018 081 024 081 053 087 024 036 002 085\ + 033 092 002 043 025 093 058 047 098 001 046 049 099 036 035 092 084\ + 015 013 027 065 050 058 008 018 044 099 066 013 016.040 +* 1000 + 048 769 821 468 242 723 227 944 060 199 278 001 754 406 569 751 046\ + 238 666 893 491 237 191 271 578 444 790 442 001 652 224 400 793 974\ + 816 926 287 928 364 118 351 759 080 921 746 001 516 259 259 543 195\ + 854 037 051.400 +* 10000 + 0004 8769 8214 6824 2723 2279 4406 0199 2780 0175 4406 5697 5104 62\ +38 6668 9349 1237 1912 7157 8444 7904 4200 1652 2244 0079 3974 8169 \ +2628 7928 3641 1835 1759 0809 2174 6001 5162 5925 9543 1958 5403 705\ +1.4000 +* 1073741824 + 0014549677 0898075813 0631623337 1022812383 0205198068 0864168467 0\ +710421959 0250388967 0296900598 0252200494 0930111407 0469277645 063\ +6015761 0760506333 0401605994 0384845877 0803957737 0510386235.04294\ +96729 +==== diff --git a/src/regress/usr.bin/diff/CVS/Entries b/src/regress/usr.bin/diff/CVS/Entries new file mode 100644 index 000000000..1e8338318 --- /dev/null +++ b/src/regress/usr.bin/diff/CVS/Entries @@ -0,0 +1,28 @@ +/Makefile/1.5/Sun Aug 10 18:32:44 2003// +/t1.1/1.1/Thu Jul 17 21:04:03 2003// +/t1.2/1.1/Thu Jul 17 21:04:03 2003// +/t10.1/1.1/Thu Jul 17 21:04:03 2003// +/t10.2/1.1/Thu Jul 17 21:04:03 2003// +/t11.1/1.2/Tue Nov 27 16:22:12 2007// +/t11.2/1.1/Mon Jul 21 20:16:21 2003// +/t12.1/1.1/Mon Jul 21 20:16:21 2003// +/t12.2/1.1/Mon Jul 21 20:16:21 2003// +/t13.1/1.1/Tue Jul 22 19:34:16 2003// +/t13.2/1.1/Tue Jul 22 19:34:16 2003// +/t2.1/1.1/Thu Jul 17 21:04:03 2003// +/t2.2/1.1/Thu Jul 17 21:04:03 2003// +/t3.1/1.1/Thu Jul 17 21:04:03 2003// +/t3.2/1.1/Thu Jul 17 21:04:03 2003// +/t4.1/1.1/Thu Jul 17 21:04:03 2003// +/t4.2/1.1/Thu Jul 17 21:04:03 2003// +/t5.1/1.1/Thu Jul 17 21:04:03 2003// +/t5.2/1.1/Thu Jul 17 21:04:03 2003// +/t6.1/1.1/Thu Jul 17 21:04:03 2003// +/t6.2/1.1/Thu Jul 17 21:04:04 2003// +/t7.1/1.1/Thu Jul 17 21:04:04 2003// +/t7.2/1.1/Thu Jul 17 21:04:04 2003// +/t8.1/1.4/Mon Jan 8 19:46:08 2007// +/t8.2/1.1/Thu Jul 17 21:04:04 2003// +/t9.1/1.3/Mon Jul 3 10:41:03 2006// +/t9.2/1.1/Thu Jul 17 21:04:04 2003// +D/torture//// diff --git a/src/regress/usr.bin/diff/CVS/Repository b/src/regress/usr.bin/diff/CVS/Repository new file mode 100644 index 000000000..a89e2e8a8 --- /dev/null +++ b/src/regress/usr.bin/diff/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/diff diff --git a/src/regress/usr.bin/diff/CVS/Root b/src/regress/usr.bin/diff/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/diff/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/diff/Makefile b/src/regress/usr.bin/diff/Makefile new file mode 100644 index 000000000..e125f77e0 --- /dev/null +++ b/src/regress/usr.bin/diff/Makefile @@ -0,0 +1,59 @@ +# $OpenBSD: Makefile,v 1.5 2003/08/10 18:32:44 otto Exp $ + +REGRESS_TARGETS=t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 + +DIFF=diff +PATCH=patch +PATCHOPTIONS=-sb + +# Skip the cmp(1) part for ed(1) style diffs for these tests +EDSKIPCMP=t7 t10 t12 + +# .1 and .2: input files + +# t1: two empty files +# t2: basic editing +# t3: one empty, other contains text +# t4: one contains text, other empty +# t5: files are the same +# t6: one file with no newline at end, other does contain newline +# t7: one file with newline at end, the other not +# t8: revisison 1.1 and 1.54 of kern_malloc.c +# t9: revisison 1.1 and 1.104 of vfs_syscalls.c +# t10: two files with no end of line at the end, line in second file is longer +# t11: rev 1.3 and 1.36 of usr.bin/ed/ed.1. +# t12: rev 1.1 and 1.2 of sbin/isakmpd/regress/hmac/Makefile. +# t13: a case to check the single dot on a line handling for ed(1) patches. + +.SUFFIXES: .1 .2 + +all: clean ${REGRESS_TARGET} + +.1: + @cp ${.CURDIR}/${*}.1 ${*}.copy + @cp ${.CURDIR}/${*}.1 ${*}.c.copy + @cp ${.CURDIR}/${*}.1 ${*}.u.copy + @cp ${.CURDIR}/${*}.1 ${*}.e.copy + @${DIFF} ${.CURDIR}/${*}.1 ${.CURDIR}/${*}.2 > ${*}.patch || true + @${DIFF} -c ${.CURDIR}/${*}.1 ${.CURDIR}/${*}.2 > ${*}.c.patch || true + @${DIFF} -u ${.CURDIR}/${*}.1 ${.CURDIR}/${*}.2 > ${*}.u.patch || true + @${DIFF} -e ${.CURDIR}/${*}.1 ${.CURDIR}/${*}.2 > ${*}.e.patch || true + @${PATCH} ${PATCHOPTIONS} ${*}.copy ${*}.patch || true + @${PATCH} ${PATCHOPTIONS} ${*}.c.copy ${*}.c.patch || true + @${PATCH} ${PATCHOPTIONS} ${*}.u.copy ${*}.u.patch || true + @${PATCH} ${PATCHOPTIONS} ${*}.e.copy ${*}.e.patch || true + @cmp -s ${.CURDIR}/${*}.2 ${*}.copy || \ + (echo "XXX ${*} standard diff failed" && false) + @cmp -s ${.CURDIR}/${*}.2 ${*}.c.copy || \ + (echo "XXX ${*} context diff failed" && false) + @cmp -s ${.CURDIR}/${*}.2 ${*}.u.copy || \ + (echo "XXX ${*} unified diff failed" && false) + @( echo ${EDSKIPCMP} | grep -q '[[:<:]]${*}[[:>:]]' ) || \ + cmp -s ${.CURDIR}/${*}.2 ${*}.e.copy || \ + (echo "XXX ${*} ed diff failed" && false) + +# Clean all files generated +clean: + rm -f *.copy *.patch *.orig + +.include diff --git a/src/regress/usr.bin/diff/obj b/src/regress/usr.bin/diff/obj new file mode 120000 index 000000000..b4f578d4a --- /dev/null +++ b/src/regress/usr.bin/diff/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/diff \ No newline at end of file diff --git a/src/regress/usr.bin/diff/t1.1 b/src/regress/usr.bin/diff/t1.1 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/usr.bin/diff/t1.2 b/src/regress/usr.bin/diff/t1.2 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/usr.bin/diff/t10.1 b/src/regress/usr.bin/diff/t10.1 new file mode 100644 index 000000000..f0e624272 --- /dev/null +++ b/src/regress/usr.bin/diff/t10.1 @@ -0,0 +1 @@ +a line of text \ No newline at end of file diff --git a/src/regress/usr.bin/diff/t10.2 b/src/regress/usr.bin/diff/t10.2 new file mode 100644 index 000000000..03f42c690 --- /dev/null +++ b/src/regress/usr.bin/diff/t10.2 @@ -0,0 +1 @@ +Another line of text \ No newline at end of file diff --git a/src/regress/usr.bin/diff/t11.1 b/src/regress/usr.bin/diff/t11.1 new file mode 100644 index 000000000..6b95cd93d --- /dev/null +++ b/src/regress/usr.bin/diff/t11.1 @@ -0,0 +1,1003 @@ +.\" $OpenBSD: t11.1,v 1.2 2007/11/27 16:22:12 martynas Exp $ +.\" $NetBSD: ed.1,v 1.13 1995/03/21 09:04:38 cgd Exp $ +.\" +.TH ED 1 "21 May 1993" +.SH NAME +.\" ed, red \- text editor +ed \- text editor +.SH SYNOPSIS +ed [-] [-sx] [-p \fIstring\fR] [\fIfile\fR] +.\" .LP +.\" red [-] [-sx] [-p \fIstring\fR] [\fIfile\fR] +.SH DESCRIPTION +.B ed +is a line-oriented text editor. +It is used to create, display, modify and otherwise manipulate text +files. +.\" .B red +.\" is a restricted +.\" .BR ed : +.\" it can only edit files in the current +.\" directory and cannot execute shell commands. + +If invoked with a +.I file +argument, then a copy of +.I file +is read into the editor's buffer. +Changes are made to this copy and not directly to +.I file +itself. +Upon quitting +.BR ed , +any changes not explicitly saved with a +.I `w' +command are lost. + +Editing is done in two distinct modes: +.I command +and +.IR input . +When first invoked, +.B ed +is in command mode. +In this mode commands are read from the standard input and +executed to manipulate the contents of the editor buffer. +A typical command might look like: +.sp +.RS +,s/\fIold\fR/\fInew\fR/g +.RE +.sp +which replaces all occurrences of the string +.I old +with +.IR new . + +When an input command, such as +.I `a' +(append), +.I `i' +(insert) or +.I `c' +(change), is given, +.B ed +enters input mode. This is the primary means +of adding text to a file. +In this mode, no commands are available; +instead, the standard input is written +directly to the editor buffer. Lines consist of text up to and +including a +.IR newline +character. +Input mode is terminated by +entering a single period (\fI.\fR) on a line. + +All +.B ed +commands operate on whole lines or ranges of lines; e.g., +the +.I `d' +command deletes lines; the +.I `m' +command moves lines, and so on. +It is possible to modify only a portion of a line by means of replacement, +as in the example above. However even here, the +.I `s' +command is applied to whole lines at a time. + +In general, +.B ed +commands consist of zero or more line addresses, followed by a single +character command and possibly additional parameters; i.e., +commands have the structure: +.sp +.RS +.I [address [,address]]command[parameters] +.RE +.sp +The address(es) indicate the line or range of lines to be affected by the +command. If fewer addresses are given than the command accepts, then +default addresses are supplied. + +.SS OPTIONS +.TP 8 +-s +Suppresses diagnostics. This should be used if +.BR ed 's +standard input is from a script. + +.TP 8 +-x +Prompts for an encryption key to be used in subsequent reads and writes +(see the +.I `x' +command). + +.TP 8 +.RI \-p \ string +Specifies a command prompt. This may be toggled on and off with the +.I `P' +command. + +.TP 8 +.I file +Specifies the name of a file to read. If +.I file +is prefixed with a +bang (!), then it is interpreted as a shell command. In this case, +what is read is +the standard output of +.I file +executed via +.IR sh (1). +To read a file whose name begins with a bang, prefix the +name with a backslash (\\). +The default filename is set to +.I file +only if it is not prefixed with a bang. + +.SS LINE ADDRESSING +An address represents the number of a line in the buffer. +.B ed +maintains a +.I current address +which is +typically supplied to commands as the default address when none is specified. +When a file is first read, the current address is set to the last line +of the file. In general, the current address is set to the last line +affected by a command. + +A line address is +constructed from one of the bases in the list below, optionally followed +by a numeric offset. The offset may include any combination +of digits, operators (i.e., +.IR + , +.I - +and +.IR ^ ) +and whitespace. +Addresses are read from left to right, and their values are computed +relative to the current address. + +One exception to the rule that addresses represent line numbers is the +address +.I 0 +(zero). +This means "before the first line," +and is legal wherever it makes sense. + +An address range is two addresses separated either by a comma or +semi-colon. The value of the first address in a range cannot exceed the +value of the second. If only one address is given in a range, then +the second address is set to the given address. If an +.IR n- tuple +of addresses is given where +.I n > 2, +then the corresponding range is determined by the last two addresses in +the +.IR n- tuple. +If only one address is expected, then the last address is used. + +Each address in a comma-delimited range is interpreted relative to the +current address. In a semi-colon-delimited range, the first address is +used to set the current address, and the second address is interpreted +relative to the first. + + +The following address symbols are recognized. + +.TP 8 +\&. +The current line (address) in the buffer. + +.TP 8 +$ +The last line in the buffer. + +.TP 8 +n +The +.IR n th, +line in the buffer +where +.I n +is a number in the range +.I [0,$]. + +.TP 8 +- or ^ +The previous line. +This is equivalent to +.I -1 +and may be repeated with cumulative effect. + +.TP 8 +-\fIn\fR or ^\fIn\fR +The +.IR n th +previous line, where +.I n +is a non-negative number. + +.TP 8 ++ +The +next line. +This is equivalent to +.I +1 +and may be repeated with cumulative effect. + +.TP 8 ++\fIn\fR or whitespace\fIn\fR +The +.IR n th +next line, where +.I n +is a non-negative number. +.I whitespace +followed by a number +.I n +is interpreted as +.IR +n . + +.TP 8 +, \fRor\fB % +The first through last lines in the buffer. This is equivalent to +the address range +.I 1,$. + +.TP 8 +; +The +current through last lines in the buffer. This is equivalent to +the address range +.I .,$. + +.TP 8 +.RI / re/ +The +next line containing the regular expression +.IR re . +The search wraps to the beginning of the buffer and continues down to the +current line, if necessary. +// repeats the last search. + +.TP 8 +.RI ? re? +The +previous line containing the regular expression +.IR re . +The search wraps to the end of the buffer and continues up to the +current line, if necessary. +?? repeats the last search. + +.TP 8 +.RI \' lc +The +line previously marked by a +.I `k' +(mark) command, where +.I lc +is a lower case letter. + +.SS REGULAR EXPRESSIONS +Regular expressions are patterns used in selecting text. +For example, the +.B ed +command +.sp +.RS +g/\fIstring\fR/ +.RE +.sp +prints all lines containing +.IR string . +Regular expressions are also +used by the +.I `s' +command for selecting old text to be replaced with new. + +In addition to a specifying string literals, regular expressions can +represent +classes of strings. Strings thus represented are said to be matched +by the corresponding regular expression. +If it is possible for a regular expression +to match several strings in a line, then the left-most longest match is +the one selected. + +The following symbols are used in constructing regular expressions: + +.TP 8 +c +Any character +.I c +not listed below, including `{', '}', `(', `)', `<' and `>', +matches itself. + +.TP 8 +\fR\e\fIc\fR +Any backslash-escaped character +.IR c , +except for `{', '}', `(', `)', `<' and `>', +matches itself. + +.TP 8 +\fR.\fR +Matches any single character. + +.TP 8 +.I [char-class] +Matches any single character in +.IR char-class . +To include a `]' +in +.IR char-class , +it must be the first character. +A range of characters may be specified by separating the end characters +of the range with a `-', e.g., `a-z' specifies the lower case characters. +The following literal expressions can also be used in +.I char-class +to specify sets of characters: +.sp +\ \ [:alnum:]\ \ [:cntrl:]\ \ [:lower:]\ \ [:space:] +.PD 0 +\ \ [:alpha:]\ \ [:digit:]\ \ [:print:]\ \ [:upper:] +.PD 0 +\ \ [:blank:]\ \ [:graph:]\ \ [:punct:]\ \ [:xdigit:] +.sp +If `-' appears as the first or last +character of +.IR char-class , +then it matches itself. +All other characters in +.I char-class +match themselves. +.sp +Patterns in +.I char-class +of the form: +.sp +\ \ [.\fIcol-elm\fR.] or, +.PD 0 +\ \ [=\fIcol-elm\fR=] +.sp +where +.I col-elm +is a +.I collating element +are interpreted according to +.IR locale (5) +(not currently supported). +See +.IR regex (3) +for an explanation of these constructs. + +.TP 8 +[^\fIchar-class\fR] +Matches any single character, other than newline, not in +.IR char-class . +.IR char-class +is defined +as above. + +.TP 8 +^ +If `^' is the first character of a regular expression, then it +anchors the regular expression to the beginning of a line. +Otherwise, it matches itself. + +.TP 8 +$ +If `$' is the last character of a regular expression, it +anchors the regular expression to the end of a line. +Otherwise, it matches itself. + +.TP 8 +\fR\e<\fR +Anchors the single character regular expression or subexpression +immediately following it to the beginning of a word. +(This may not be available) + +.TP 8 +\fR\e>\fR +Anchors the single character regular expression or subexpression +immediately following it to the end of a word. +(This may not be available) + +.TP 8 +\fR\e(\fIre\fR\e)\fR +Defines a subexpression +.IR re . +Subexpressions may be nested. +A subsequent backreference of the form \fI`\en'\fR, where +.I n +is a number in the range [1,9], expands to the text matched by the +.IR n th +subexpression. +For example, the regular expression `\e(.*\e)\e1' matches any string +consisting of identical adjacent substrings. +Subexpressions are ordered relative to +their left delimiter. + +.TP 8 +* +Matches the single character regular expression or subexpression +immediately preceding it zero or more times. If '*' is the first +character of a regular expression or subexpression, then it matches +itself. The `*' operator sometimes yields unexpected results. +For example, the regular expression `b*' matches the beginning of +the string `abbb' (as opposed to the substring `bbb'), since a null match +is the only left-most match. + +.TP 8 +\fR\e{\fIn,m\fR\e}\fR or \fR\e{\fIn,\fR\e}\fR or \fR\e{\fIn\fR\e}\fR +Matches the single character regular expression or subexpression +immediately preceding it at least +.I n +and at most +.I m +times. +If +.I m +is omitted, then it matches at least +.I n +times. +If the comma is also omitted, then it matches exactly +.I n +times. + +.LP +Additional regular expression operators may be defined depending on the +particular +.IR regex (3) +implementation. + +.SS COMMANDS +All +.B ed +commands are single characters, though some require additonal parameters. +If a command's parameters extend over several lines, then +each line except for the last +must be terminated with a backslash (\\). + +In general, at most one command is allowed per line. +However, most commands accept a print suffix, which is any of +.I `p' +(print), +.I `l' +(list) , +or +.I `n' +(enumerate), +to print the last line affected by the command. + +An interrupt (typically ^C) has the effect of aborting the current command +and returning the editor to command mode. + +.B ed +recognizes the following commands. The commands are shown together with +the default address or address range supplied if none is +specified (in parenthesis). + +.TP 8 +(.)a +Appends text to the buffer after the addressed line. +Text is entered in input mode. +The current address is set to last line entered. + +.TP 8 +(.,.)c +Changes lines in the buffer. The addressed lines are deleted +from the buffer, and text is appended in their place. +Text is entered in input mode. +The current address is set to last line entered. + +.TP 8 +(.,.)d +Deletes the addressed lines from the buffer. +If there is a line after the deleted range, then the current address is set +to this line. Otherwise the current address is set to the line +before the deleted range. + +.TP 8 +.RI e \ file +Edits +.IR file , +and sets the default filename. +If +.I file +is not specified, then the default filename is used. +Any lines in the buffer are deleted before +the new file is read. +The current address is set to the last line read. + +.TP 8 +.RI e \ !command +Edits the standard output of +.IR `!command' , +(see +.RI ! command +below). +The default filename is unchanged. +Any lines in the buffer are deleted before the output of +.I command +is read. +The current address is set to the last line read. + +.TP 8 +.RI E \ file +Edits +.I file +unconditionally. +This is similar to the +.I e +command, +except that unwritten changes are discarded without warning. +The current address is set to the last line read. + +.TP 8 +.RI f \ file +Sets the default filename to +.IR file . +If +.I file +is not specified, then the default unescaped filename is printed. + +.TP 8 +.RI (1,$)g /re/command-list +Applies +.I command-list +to each of the addressed lines matching a regular expression +.IR re . +The current address is set to the +line currently matched before +.I command-list +is executed. +At the end of the +.I `g' +command, the current address is set to the last line affected by +.IR command-list . + +Each command in +.I command-list +must be on a separate line, +and every line except for the last must be terminated by a backslash +(\\). +Any commands are allowed, except for +.IR `g' , +.IR `G' , +.IR `v' , +and +.IR `V' . +A newline alone in +.I command-list +is equivalent to a +.I `p' +command. + +.TP 8 +.RI (1,$)G /re/ +Interactively edits the addressed lines matching a regular expression +.IR re. +For each matching line, +the line is printed, +the current address is set, +and the user is prompted to enter a +.IR command-list . +At the end of the +.I `G' +command, the current address +is set to the last line affected by (the last) +.IR command-list . + +The format of +.I command-list +is the same as that of the +.I `g' +command. A newline alone acts as a null command list. +A single `&' repeats the last non-null command list. + +.TP 8 +H +Toggles the printing of error explanations. +By default, explanations are not printed. +It is recommended that ed scripts begin with this command to +aid in debugging. + +.TP 8 +h +Prints an explanation of the last error. + +.TP 8 +(.)i +Inserts text in the buffer before the current line. +Text is entered in input mode. +The current address is set to the last line entered. + +.TP 8 +(.,.+1)j +Joins the addressed lines. The addressed lines are +deleted from the buffer and replaced by a single +line containing their joined text. +The current address is set to the resultant line. + +.TP 8 +.RI (.)k lc +Marks a line with a lower case letter +.IR lc . +The line can then be addressed as +.I 'lc +(i.e., a single quote followed by +.I lc +) in subsequent commands. The mark is not cleared until the line is +deleted or otherwise modified. + +.TP 8 +(.,.)l +Prints the addressed lines unambiguously. +If a single line fills for than one screen (as might be the case +when viewing a binary file, for instance), a `--More--' +prompt is printed on the last line. +.B ed +waits until the RETURN key is pressed +before displaying the next screen. +The current address is set to the last line +printed. + +.TP 8 +(.,.)m(.) +Moves lines in the buffer. The addressed lines are moved to after the +right-hand destination address, which may be the address +.IR 0 +(zero). +The current address is set to the +last line moved. + +.TP 8 +(.,.)n +Prints the addressed lines along with +their line numbers. The current address is set to the last line +printed. + +.TP 8 +(.,.)p +Prints the addressed lines. The current address is set to the last line +printed. + +.TP 8 +P +Toggles the command prompt on and off. +Unless a prompt was specified by with command-line option +\fI-p string\fR, the command prompt is by default turned off. + +.TP 8 +q +Quits ed. + +.TP 8 +Q +Quits ed unconditionally. +This is similar to the +.I q +command, +except that unwritten changes are discarded without warning. + +.TP 8 +.RI ($)r \ file +Reads +.I file +to after the addressed line. If +.I file +is not specified, then the default +filename is used. If there was no default filename prior to the command, +then the default filename is set to +.IR file . +Otherwise, the default filename is unchanged. +The current address is set to the last line read. + +.TP 8 +.RI ($)r \ !command +Reads +to after the addressed line +the standard output of +.IR `!command' , +(see the +.RI ! command +below). +The default filename is unchanged. +The current address is set to the last line read. + +.HP +.RI (.,.)s /re/replacement/ +.PD 0 +.HP +.RI (.,.)s /re/replacement/\fRg\fR +.HP +.RI (.,.)s /re/replacement/n +.br +Replaces text in the addressed lines +matching a regular expression +.I re +with +.IR replacement . +By default, only the first match in each line is replaced. +If the +.I `g' +(global) suffix is given, then every match to be replaced. +The +.I `n' +suffix, where +.I n +is a postive number, causes only the +.IR n th +match to be replaced. +It is an error if no substitutions are performed on any of the addressed +lines. +The current address is set the last line affected. + +.I re +and +.I replacement +may be delimited by any character other than space and newline +(see the +.I `s' +command below). +If one or two of the last delimiters is omitted, then the last line +affected is printed as though the print suffix +.I `p' +were specified. + + +An unescaped `&' in +.I replacement +is replaced by the currently matched text. +The character sequence +\fI`\em'\fR, +where +.I m +is a number in the range [1,9], is replaced by the +.IR m th +backreference expression of the matched text. +If +.I replacement +consists of a single `%', then +.I replacement +from the last substitution is used. +Newlines may be embedded in +.I replacement +if they are escaped with a backslash (\\). + +.TP 8 +(.,.)s +Repeats the last substitution. +This form of the +.I `s' +command accepts a count suffix +.IR `n' , +or any combination of the characters +.IR `r' , +.IR `g' , +and +.IR `p' . +If a count suffix +.I `n' +is given, then only the +.IR n th +match is replaced. +The +.I `r' +suffix causes +the regular expression of the last search to be used instead of the +that of the last substitution. +The +.I `g' +suffix toggles the global suffix of the last substitution. +The +.I `p' +suffix toggles the print suffix of the last substitution +The current address is set to the last line affected. + +.TP 8 +(.,.)t(.) +Copies (i.e., transfers) the addressed lines to after the right-hand +destination address, which may be the address +.IR 0 +(zero). +The current address is set to the last line +copied. + +.TP 8 +u +Undoes the last command and restores the current address +to what it was before the command. +The global commands +.IR `g' , +.IR `G' , +.IR `v' , +and +.IR `V' . +are treated as a single command by undo. +.I `u' +is its own inverse. + +.TP 8 +.RI (1,$)v /pat/command-list +Applies +.I command-list +to each of the addressed lines not matching a regular expression +.IR re . +This is similar to the +.I `g' +command. + +.TP 8 +.RI (1,$)V /re/ +Interactively edits the addressed lines not matching a regular expression +.IR re. +This is similar to the +.I `G' +command. + +.TP 8 +.RI (1,$)w \ file +Writes the addressed lines to +.IR file . +Any previous contents of +.I file +is lost without warning. +If there is no default filename, then the default filename is set to +.IR file, +otherwise it is unchanged. If no filename is specified, then the default +filename is used. +The current address is unchanged. + +.TP 8 +.RI (1,$)wq \ file +Writes the addressed lines to +.IR file , +and then executes a +.I `q' +command. + +.TP 8 +.RI (1,$)w \ !command +Writes the addressed lines to the standard input of +.IR `!command' , +(see the +.RI ! command +below). +The default filename and current address are unchanged. + +.TP 8 +.RI (1,$)W \ file +Appends the addressed lines to the end of +.IR file . +This is similar to the +.I `w' +command, expect that the previous contents of file is not clobbered. +The current address is unchanged. + +.TP 8 +x +Prompts for an encryption key which is used in subsequent reads and +writes. If a newline alone is entered as the key, then encryption is +turned off. Otherwise, echoing is disabled while a key is read. +Encryption/decryption is done using the bdes(1) algorithm. + +.TP 8 +.RI (.+1)z n +Scrolls +.I n +lines at a time starting at addressed line. If +.I n +is not specified, then the current window size is used. +The current address is set to the last line printed. + +.TP 8 +.RI ! command +Executes +.I command +via +.IR sh (1). +If the first character of +.I command +is `!', then it is replaced by text of the +previous +.IR `!command' . +.B ed +does not process +.I command +for backslash (\\) escapes. +However, an unescaped +.I `%' +is replaced by the default filename. +When the shell returns from execution, a `!' +is printed to the standard output. +The current line is unchanged. + +.TP 8 +($)= +Prints the line number of the addressed line. + +.TP 8 +(.+1)newline +Prints the addressed line, and sets the current address to +that line. + +.SH FILES +.TP 20 +/tmp/ed.* +Buffer file +.PD 0 +.TP 20 +ed.hup +The file to which +.B ed +attempts to write the buffer if the terminal hangs up. + +.SH SEE ALSO + +.IR vi (1), +.IR sed (1), +.IR regex (3), +.IR bdes (1), +.IR sh (1). + +USD:12-13 + +B. W. Kernighan and P. J. Plauger, +.I Software Tools in Pascal , +Addison-Wesley, 1981. + +.SH LIMITATIONS +.B ed +processes +.I file +arguments for backslash escapes, i.e., in a filename, +any characters preceded by a backslash (\\) are +interpreted literally. + +If a text (non-binary) file is not terminated by a newline character, +then +.B ed +appends one on reading/writing it. In the case of a binary file, +.B ed +does not append a newline on reading/writing. + +per line overhead: 4 ints + +.SH DIAGNOSTICS +When an error occurs, +.B ed +prints a `?' and either returns to command mode +or exits if its input is from a script. +An explanation of the last error can be +printed with the +.I `h' +(help) command. + +Since the +.I `g' +(global) command masks any errors from failed searches and substitutions, +it can be used to perform conditional operations in scripts; e.g., +.sp +.RS +g/\fIold\fR/s//\fInew\fR/ +.RE +.sp +replaces any occurrences of +.I old +with +.IR new . +If the +.I `u' +(undo) command occurs in a global command list, then +the command list is executed only once. + +If diagnostics are not disabled, attempting to quit +.B ed +or edit another file before writing a modified buffer +results in an error. +If the command is entered a second time, it succeeds, +but any changes to the buffer are lost. diff --git a/src/regress/usr.bin/diff/t11.2 b/src/regress/usr.bin/diff/t11.2 new file mode 100644 index 000000000..b55792073 --- /dev/null +++ b/src/regress/usr.bin/diff/t11.2 @@ -0,0 +1,908 @@ +.\" $OpenBSD: t11.2,v 1.1 2003/07/21 20:16:21 otto Exp $ +.\" +.Dd May 2, 1993 +.Dt ED 1 +.Os +.Sh NAME +.Nm ed +.Nd text editor +.Sh SYNOPSIS +.Nm ed +.Op Fl +.Op Fl sx +.Op Fl p Ar string +.Op Ar file +.Sh DESCRIPTION +.Nm +is a line-oriented text editor. +It is used to create, display, modify, and otherwise manipulate text files. +If invoked with a +.Ar file +argument, then a copy of +.Ar file +is read into the editor's buffer. +Changes are made to this copy and not directly to +.Ar file +itself. +Upon quitting +.Nm ed , +any changes not explicitly saved with a +.Em w +command are lost. +.Pp +Editing is done in two distinct modes: +.Em command +and +.Em input . +When first invoked, +.Nm +is in command mode. +In this mode, commands are read from the standard input and +executed to manipulate the contents of the editor buffer. +.Pp +A typical command might look like: +.Bd -literal -offset indent +,s/old/new/g +.Ed +.Pp +which replaces all occurrences of the string +.Pa old +with +.Pa new . +.Pp +When an input command, such as +.Em a +(append), +.Em i +(insert), +or +.Em c +(change) is given, +.Nm +enters input mode. +This is the primary means of adding text to a file. +In this mode, no commands are available; +instead, the standard input is written directory to the editor buffer. +Lines consist of text up to and including a newline character. +Input mode is terminated by entering a single period +.Pq Ql \&. +on a line. +.Pp +All +.Nm +commands operate on whole lines or ranges of lines; e.g., +the +.Em d +command deletes lines; the +.Em m +command moves lines, and so on. +It is possible to modify only a portion of a line by means of replacement, +as in the example above. +However, even here, the +.Em s +command is applied to whole lines at a time. +.Pp +In general, +.Nm +commands consist of zero or more line addresses, followed by a single +character command and possibly additional parameters; i.e., +commands have the structure: +.Bd -literal -offset indent +[address [,address]]command[parameters] +.Ed +.Pp +The address(es) indicate the line or range of lines to be affected by the +command. +If fewer addresses are given than the command accepts, then +default addresses are supplied. +.Pp +The options are as follows: +.Bl -tag -width Ds +.It Fl +Same as the +.Fl s +option (deprecated). +.It Fl s +Suppress diagnostics. +This should be used if +.Nm +standard input is from a script. +.Fl s +flag. +.It Fl x +Prompt for an encryption key to be used in subsequent reads and writes +(see the +.Em x +command). +.It Fl p Ar string +Specifies a command prompt. +This may be toggled on and off with the +.Em P +command. +.It Ar file +Specifies the name of a file to read. +If +.Ar file +is prefixed with a +bang +.Pq Ql \&! , +then it is interpreted as a shell command. +In this case, what is read is the standard output of +.Ar file +executed via +.Xr sh 1 . +To read a file whose name begins with a bang, prefix the +name with a backslash +.Pq Ql \e . +The default filename is set to +.Ar file +only if it is not prefixed with a bang. +.El +.Ss LINE ADDRESSING +An address represents the number of a line in the buffer. +.Nm +maintains a +.Em current address +which is typically supplied to commands as the default address +when none is specified. +When a file is first read, the current address is set to the last line +of the file. +In general, the current address is set to the last line affected by a command. +.Pp +A line address is +constructed from one of the bases in the list below, optionally followed +by a numeric offset. +The offset may include any combination of digits, operators (i.e., +.Em + , +.Em - , +and +.Em ^ ) , +and whitespace. +Addresses are read from left to right, and their values are computed +relative to the current address. +.Pp +One exception to the rule that addresses represent line numbers is the +address +.Em 0 +(zero). +This means +.Dq before the first line , +and is legal wherever it makes sense. +.Pp +An address range is two addresses separated either by a comma or semi-colon. +The value of the first address in a range cannot exceed the +value of the second. +If only one address is given in a range, +then the second address is set to the given address. +If an +.Em n Ns No -tuple +of addresses is given where +.Em n > 2 , +then the corresponding range is determined by the last two addresses in the +.Em n Ns No -tuple. +If only one address is expected, then the last address is used. +.Pp +Each address in a comma-delimited range is interpreted relative to the +current address. +In a semi-colon-delimited range, the first address is +used to set the current address, and the second address is interpreted +relative to the first. +.Pp +The following address symbols are recognized: +.Bl -tag -width Ds +.It Em \&. +The current line (address) in the buffer. +.It Em $ +The last line in the buffer. +.It Em n +The +.Em n Ns No th +line in the buffer where +.Em n +is a number in the range +.Em [0,$] . +.It Em - No or Em ^ +The previous line. +This is equivalent to +.Em -1 +and may be repeated with cumulative effect. +.It Em -n No or Em ^n +The +.Em n Ns No th +previous line, where +.Em n +is a non-negative number. +.It Em + +The next line. +This is equivalent to +.Em +1 +and may be repeated with cumulative effect. +.It Em +n +The +.Em n Ns No th +next line, where +.Em n +is a non-negative number. +.It Em \&, No or Em % +The first through last lines in the buffer. +This is equivalent to the address range +.Em 1,$ . +.It Em \&; +The current through last lines in the buffer. +This is equivalent to the address range +.Em .,$ . +.It Em / Ns No re Ns Em / +The next line containing the regular expression +.Em re . +The search wraps to the beginning of the buffer and continues down to the +current line, if necessary. +.Em // +repeats the last search. +.It Em ? Ns No re Ns Em ? +The previous line containing the regular expression +.Em re . +The search wraps to the end of the buffer and continues up to the +current line, if necessary. +.Em ?? +repeats the last search. +.It Em \&\' Ns No lc +The line previously marked by a +.Em k +(mark) command, where +.Em lc +is a lower case letter. +.El +.Ss REGULAR EXPRESSIONS +Regular expressions are patterns used in selecting text. +For example, the +.Nm +command +.Bd -literal -offset indent +g/string/ +.Ed +.Pp +prints all lines containing +.Em string . +Regular expressions are also used by the +.Em s +command for selecting old text to be replaced with new. +.Pp +In addition to a specifying string literals, regular expressions can +represent classes of strings. +Strings thus represented are said to be matched by the +corresponding regular expression. +If it is possible for a regular expression to match several strings in +a line, then the leftmost longest match is the one selected. +.Pp +The following symbols are used in constructing regular expressions: +.Bl -tag -width Dsasdfsd +.It Em c +Any character +.Em c +not listed below, including +.Em { Ns No , +.Em } Ns No , +.Em \&( Ns No , +.Em \&) Ns No , +.Em < Ns No , +and +.Em > +matches itself. +.It Em \ec +Any backslash-escaped character +.Em c Ns No , +except for +.Em { Ns No , +.Em } Ns No , +.Em \&( Ns No , +.Em \&) Ns No , +.Em < Ns No , and +.Em > +matches itself. +.It Em \&. +Matches any single character. +.It Em [char-class] +Matches any single character in +.Em char-class . +To include a +.Ql \&] +in +.Em char-class Ns No , +it must be the first character. +A range of characters may be specified by separating the end characters +of the range with a +.Ql - ; +e.g., +.Em a-z +specifies the lower case characters. +The following literal expressions can also be used in +.Em char-class +to specify sets of characters: +.Pp +.Em \ \ [:alnum:]\ \ [:cntrl:]\ \ [:lower:]\ \ [:space:] +.Em \ \ [:alpha:]\ \ [:digit:]\ \ [:print:]\ \ [:upper:] +.Em \ \ [:blank:]\ \ [:graph:]\ \ [:punct:]\ \ [:xdigit:] +.Pp +If +.Ql - +appears as the first or last character of +.Em char-class Ns No , +then it matches itself. +All other characters in +.Em char-class +match themselves. +.Pp +Patterns in +.Em char-class +of the form +.Em [.col-elm.] No or Em [=col-elm=] +where +.Em col-elm +is a collating element are interpreted according to +.Xr locale 5 +(not currently supported). +See +.Xr regex 3 +for an explanation of these constructs. +.It Em [^char-class] +Matches any single character, other than newline, not in +.Em char-class Ns No . +.Em char-class +is defined as above. +.It Em ^ +If +.Em ^ +is the first character of a regular expression, then it +anchors the regular expression to the beginning of a line. +Otherwise, it matches itself. +.It Em $ +If +.Em $ +is the last character of a regular expression, +it anchors the regular expression to the end of a line. +Otherwise, it matches itself. +.It Em \e< +Anchors the single character regular expression or subexpression +immediately following it to the beginning of a word. +(This may not be available.) +.It Em \e> +Anchors the single character regular expression or subexpression +immediately following it to the end of a word. +(This may not be available.) +.It Em \e( Ns No re Ns Em \e) +Defines a subexpression +.Em re . +Subexpressions may be nested. +A subsequent backreference of the form +.Em \en Ns No , +where +.Em n +is a number in the range [1,9], expands to the text matched by the +.Em n Ns No th +subexpression. +For example, the regular expression +.Em \e(.*\e)\e1 +matches any string consisting of identical adjacent substrings. +Subexpressions are ordered relative to their left delimiter. +.It Em * +Matches the single character regular expression or subexpression +immediately preceding it zero or more times. +If +.Em * +is the first character of a regular expression or subexpression, +then it matches itself. +The +.Em * +operator sometimes yields unexpected results. +For example, the regular expression +.Em b* +matches the beginning of the string +.Em abbb +(as opposed to the substring +.Em bbb Ns No ), +since a null match is the only leftmost match. +.Sm off +.It Xo Em \e{ No n,m +.Em \e}\ \e{ No n, Em \e}\ +.Em \e{ No n Em \e} +.Xc +.Sm on +Matches the single character regular expression or subexpression +immediately preceding it at least +.Em n +and at most +.Em m +times. +If +.Em m +is omitted, then it matches at least +.Em n +times. +If the comma is also omitted, then it matches exactly +.Em n +times. +.El +.Pp +Additional regular expression operators may be defined depending on the +particular +.Xr regex 3 +implementation. +.Ss COMMANDS +All +.Nm +commands are single characters, though some require additional parameters. +If a command's parameters extend over several lines, then +each line except for the last must be terminated with a backslash +.Pq Ql \e . +.Pp +In general, at most one command is allowed per line. +However, most commands accept a print suffix, which is any of +.Em p No (print), +.Em l No (list), +or +.Em n No (enumerate), +to print the last line affected by the command. +.Pp +An interrupt (typically ^C) has the effect of aborting the current command +and returning the editor to command mode. +.Pp +.Nm +recognizes the following commands. +The commands are shown together with +the default address or address range supplied if none is +specified (in parentheses), and other possible arguments on the right. +.Bl -tag -width Dxxs +.It (.) Ns Em a +Appends text to the buffer after the addressed line. +Text is entered in input mode. +The current address is set to last line entered. +.It (.,.) Ns Em c +Changes lines in the buffer. +The addressed lines are deleted from the buffer, +and text is appended in their place. +Text is entered in input mode. +The current address is set to last line entered. +.It (.,.) Ns Em d +Deletes the addressed lines from the buffer. +If there is a line after the deleted range, then the current address is set +to this line. +Otherwise the current address is set to the line before the deleted range. +.It Em e No file +Edits +.Em file Ns No , +and sets the default filename. +If +.Em file +is not specified, then the default filename is used. +Any lines in the buffer are deleted before the new file is read. +The current address is set to the last line read. +.It Em e No !command +Edits the standard output of +.Em !command Ns No , +(see +.Em ! No command +below). +The default filename is unchanged. +Any lines in the buffer are deleted before the output of +.Em command +is read. +The current address is set to the last line read. +.It Em E No file +Edits +.Em file +unconditionally. +This is similar to the +.Em e +command, except that unwritten changes are discarded without warning. +The current address is set to the last line read. +.It Em f No file +Sets the default filename to +.Em file Ns No . +If +.Em file +is not specified, then the default unescaped filename is printed. +.It (1,$) Ns Em g Ns No /re/command-list +Applies +.Em command-list +to each of the addressed lines matching a regular expression +.Em re Ns No . +The current address is set to the line currently matched before +.Em command-list +is executed. +At the end of the +.Em g +command, the current address is set to the last line affected by +.Em command-list Ns No . +.Pp +Each command in +.Em command-list +must be on a separate line, +and every line except for the last must be terminated by +.Em \e No (backslash). +Any commands are allowed, except for +.Em g Ns No , +.Em G Ns No , +.Em v Ns No , +and +.Em V Ns No . +A newline alone in +.Em command-list +is equivalent to a +.Em p +command. +.It (1,$) Ns Em G Ns No /re/ +Interactively edits the addressed lines matching a regular expression +.Em re Ns No . +For each matching line, the line is printed, the current address is set, +and the user is prompted to enter a +.Em command-list Ns No . +At the end of the +.Em g +command, the current address is set to the last line affected by (the last) +.Em command-list Ns No . +.Pp +The format of +.Em command-list +is the same as that of the +.Em g +command. +A newline alone acts as a null command list. +A single +.Em & +repeats the last non-null command list. +.It Em H +Toggles the printing of error explanations. +By default, explanations are not printed. +It is recommended that +.Nm +scripts begin with this command to aid in debugging. +.It Em h +Prints an explanation of the last error. +.It (.) Ns Em i +Inserts text in the buffer before the current line. +Text is entered in input mode. +The current address is set to the last line entered. +.It (.,.+1) Ns Em j +Joins the addressed lines. +The addressed lines are deleted from the buffer and replaced by a single +line containing their joined text. +The current address is set to the resultant line. +.It (.) Ns Em klc +Marks a line with a lower case letter +.Em lc Ns No \&. +The line can then be addressed as +.Em \&'lc +(i.e., a single quote followed by +.Em lc Ns No ) +in subsequent commands. +The mark is not cleared until the line is deleted or otherwise modified. +.It (.,.) Ns Em l +Prints the addressed lines unambiguously. +If a single line fills more than one screen (as might be the case +when viewing a binary file, for instance), a +.Dq --More-- +prompt is printed on the last line. +.Nm +waits until the RETURN key is pressed before displaying the next screen. +The current address is set to the last line printed. +.It (.,.) Ns Em m Ns No (.) +Moves lines in the buffer. +The addressed lines are moved to after the +right-hand destination address, which may be the address +.Em 0 +(zero). +The current address is set to the last line moved. +.It (.,.) Ns Em n +Prints the addressed lines along with their line numbers. +The current address is set to the last line printed. +.It (.,.) Ns Em p +Prints the addressed lines. +The current address is set to the last line printed. +.It Em P +Toggles the command prompt on and off. +Unless a prompt was specified by with command-line option +.Fl p Ar string Ns No , +the command prompt is by default turned off. +.It Em q +Quits +.Nm ed . +.It Em Q +Quits +.Nm +unconditionally. +This is similar to the +.Em q +command, except that unwritten changes are discarded without warning. +.It ($) Ns Em r No file +Reads +.Em file +to after the addressed line. +If +.Em file +is not specified, then the default filename is used. +If there was no default filename prior to the command, +then the default filename is set to +.Em file Ns No . +Otherwise, the default filename is unchanged. +The current address is set to the last line read. +.It ($) Ns Em r No !command +Reads to after the addressed line the standard output of +.Em !command Ns No , +(see the +.Em ! +command below). +The default filename is unchanged. +The current address is set to the last line read. +.Sm off +.It Xo (.,.) Em s No /re/replacement/ , \ (.,.) +.Em s No /re/replacement/ Em g , No \ (.,.) +.Em s No /re/replacement/ Em n +.Xc +.Sm on +Replaces text in the addressed lines matching a regular expression +.Em re +with +.Em replacement Ns No . +By default, only the first match in each line is replaced. +If the +.Em g +(global) suffix is given, then every match to be replaced. +The +.Em n +suffix, where +.Em n +is a positive number, causes only the +.Em n Ns No th +match to be replaced. +It is an error if no substitutions are performed on any of the addressed +lines. +The current address is set the last line affected. +.Pp +.Em re +and +.Em replacement +may be delimited by any character other than space and newline +(see the +.Em s +command below). +If one or two of the last delimiters is omitted, then the last line +affected is printed as though the print suffix +.Em p +were specified. +.Pp +An unescaped +.Ql \e +in +.Em replacement +is replaced by the currently matched text. +The character sequence +.Em \em Ns No , +where +.Em m +is a number in the range [1,9], is replaced by the +.Em m Ns No th +backreference expression of the matched text. +If +.Em replacement +consists of a single +.Ql % , +then +.Em replacement +from the last substitution is used. +Newlines may be embedded in +.Em replacement +if they are escaped with a backslash +.Pq Ql \e . +.It (.,.) Ns Em s +Repeats the last substitution. +This form of the +.Em s +command accepts a count suffix +.Em n Ns No , +or any combination of the characters +.Em r Ns No , +.Em g Ns No , +and +.Em p Ns No . +If a count suffix +.Em n +is given, then only the +.Em n Ns No th +match is replaced. +The +.Em r +suffix causes +the regular expression of the last search to be used instead of the +that of the last substitution. +The +.Em g +suffix toggles the global suffix of the last substitution. +The +.Em p +suffix toggles the print suffix of the last substitution +The current address is set to the last line affected. +.It (.,.) Ns Em t Ns No (.) +Copies (i.e., transfers) the addressed lines to after the right-hand +destination address, which may be the address +.Em 0 +(zero). +The current address is set to the last line copied. +.It Em u +Undoes the last command and restores the current address +to what it was before the command. +The global commands +.Em g Ns No , +.Em G Ns No , +.Em v Ns No , +and +.Em V Ns No . +are treated as a single command by undo. +.Em u +is its own inverse. +.It (1,$) Ns Em v Ns No /re/command-list +Applies +.Em command-list +to each of the addressed lines not matching a regular expression +.Em re Ns No . +This is similar to the +.Em g +command. +.It (1,$) Ns Em V Ns No /re/ +Interactively edits the addressed lines not matching a regular expression +.Em re Ns No . +This is similar to the +.Em G +command. +.It (1,$) Ns Em w No file +Writes the addressed lines to +.Em file Ns No . +Any previous contents of +.Em file +is lost without warning. +If there is no default filename, then the default filename is set to +.Em file Ns No , +otherwise it is unchanged. +If no filename is specified, then the default filename is used. +The current address is unchanged. +.It (1,$) Ns Em wq No file +Writes the addressed lines to +.Em file Ns No , +and then executes a +.Em q +command. +.It (1,$) Ns Em w No !command +Writes the addressed lines to the standard input of +.Em !command Ns No , +(see the +.Em ! +command below). +The default filename and current address are unchanged. +.It (1,$) Ns Em W No file +Appends the addressed lines to the end of +.Em file Ns No . +This is similar to the +.Em w +command, expect that the previous contents of file is not clobbered. +The current address is unchanged. +.It Em x +Prompts for an encryption key which is used in subsequent reads and writes. +If a newline alone is entered as the key, then encryption is turned off. +Otherwise, echoing is disabled while a key is read. +Encryption/decryption is done using the +.Xr bdes 1 +algorithm. +.It (.+1) Ns Em z Ns No n +Scrolls +.Em n +lines at a time starting at addressed line. +If +.Em n +is not specified, then the current window size is used. +The current address is set to the last line printed. +.It ($) Ns Em = +Prints the line number of the addressed line. +.It (.+1) Ns Em newline +Prints the addressed line, and sets the current address to that line. +.It Em ! Ns No command +Executes +.Em command +via +.Xr sh 1 . +If the first character of +.Em command +is +.Em ! Ns No , +then it is replaced by text of the previous +.Em !command Ns No . +.Nm +does not process +.Em command +for +.Em \e +(backslash) escapes. +However, an unescaped +.Em % +is replaced by the default filename. +When the shell returns from execution, a +.Em ! +is printed to the standard output. +The current line is unchanged. +.El +.Sh LIMITATIONS +.Nm +processes +.Em file +arguments for backslash escapes, i.e., in a filename, +any characters preceded by a backslash +.Pq Ql \e +are interpreted literally. +.Pp +If a text (non-binary) file is not terminated by a newline character, +then +.Nm +appends one on reading/writing it. +In the case of a binary file, +.Nm +does not append a newline on reading/writing. +.Sh DIAGNOSTICS +When an error occurs, +.Nm +prints a +.Dq ? +and either returns to command mode or exits if its input is from a script. +An explanation of the last error can be printed with the +.Em h +(help) command. +.Pp +Since the +.Em g +(global) command masks any errors from failed searches and substitutions, +it can be used to perform conditional operations in scripts; e.g., +.Bd -literal -offset indent +g/old/s//new/ +.Ed +.Pp +replaces any occurrences of +.Em old +with +.Em new Ns No . +.Pp +If the +.Em u +(undo) command occurs in a global command list, then +the command list is executed only once. +.Pp +If diagnostics are not disabled, attempting to quit +.Nm +or edit another file before writing a modified buffer results in an error. +If the command is entered a second time, it succeeds, +but any changes to the buffer are lost. +.Sh FILES +.Bl -tag -width /tmp/ed.* -compact +.It Pa /tmp/ed.* +buffer file +.It Pa ed.hup +where +.Nm +attempts to write the buffer if the terminal hangs up +.El +.Sh SEE ALSO +.Xr bdes 1 , +.Xr sed 1 , +.Xr sh 1 , +.Xr vi 1 , +.Xr regex 3 +.Pp +USD:12-13 +.Rs +.%A B. W. Kernighan +.%A P. J. Plauger +.%B Software Tools in Pascal +.%O Addison-Wesley +.%D 1981 +.Re +.Sh HISTORY +An +.Nm +command appeared in +.At v1 . diff --git a/src/regress/usr.bin/diff/t12.1 b/src/regress/usr.bin/diff/t12.1 new file mode 100644 index 000000000..009bd692d --- /dev/null +++ b/src/regress/usr.bin/diff/t12.1 @@ -0,0 +1,10 @@ +# Test HMAC: + +PROG= hmactest +SRCS= hash.c hmactest.c +.PATH: ${.CURDIR}/../../ +NOMAN= +CFLAGS+= -I${.CURDIR}/../../ -Wall +DEBUG= -g + +.include \ No newline at end of file diff --git a/src/regress/usr.bin/diff/t12.2 b/src/regress/usr.bin/diff/t12.2 new file mode 100644 index 000000000..93a7a2f80 --- /dev/null +++ b/src/regress/usr.bin/diff/t12.2 @@ -0,0 +1,12 @@ +# $OpenBSD: t12.2,v 1.1 2003/07/21 20:16:21 otto Exp $ + +# Test HMAC: + +PROG= hmactest +SRCS= hash.c hmactest.c +.PATH: ${.CURDIR}/../../ +NOMAN= +CFLAGS+= -I${.CURDIR}/../../ -Wall +DEBUG= -g + +.include \ No newline at end of file diff --git a/src/regress/usr.bin/diff/t13.1 b/src/regress/usr.bin/diff/t13.1 new file mode 100644 index 000000000..bedd72eee --- /dev/null +++ b/src/regress/usr.bin/diff/t13.1 @@ -0,0 +1,11 @@ +A line of text +. +Another line of text +.. +A third line +... +A fourth line +. +We keep counting +. +. diff --git a/src/regress/usr.bin/diff/t13.2 b/src/regress/usr.bin/diff/t13.2 new file mode 100644 index 000000000..3e00acf6e --- /dev/null +++ b/src/regress/usr.bin/diff/t13.2 @@ -0,0 +1,9 @@ +A line of text +Another line of text +.. +. +A third line +... +.. +We keep counting +. diff --git a/src/regress/usr.bin/diff/t2.1 b/src/regress/usr.bin/diff/t2.1 new file mode 100644 index 000000000..e01fce04d --- /dev/null +++ b/src/regress/usr.bin/diff/t2.1 @@ -0,0 +1,25 @@ +Below is an example license to be used for new code in OpenBSD, +modeled after the ISC license. + +It is important to specify the year of the copyright. Additional years +should be separated by a comma, e.g. + Copyright (c) 2003, 2004 + +If you add extra text to the body of the license, be careful not to +add further restrictions. + +/* + * Copyright (c) CCYY YOUR NAME HERE + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ diff --git a/src/regress/usr.bin/diff/t2.2 b/src/regress/usr.bin/diff/t2.2 new file mode 100644 index 000000000..40a0f253d --- /dev/null +++ b/src/regress/usr.bin/diff/t2.2 @@ -0,0 +1,25 @@ +Below is an example license to be used for new code in OpenBSD, +modeled after the ISC license. + +It is important to specify the year of the copyright. Additional years +should be separated by a comma, e.g. + Copyright (c) 2003, 2004, 2005 + +If you add extra text to the body of the license, be careful not to +add further restrictions. + +/* + * Copyright (c) CCYY YOUR NAME HERE + * + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ +An extra line diff --git a/src/regress/usr.bin/diff/t3.1 b/src/regress/usr.bin/diff/t3.1 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/usr.bin/diff/t3.2 b/src/regress/usr.bin/diff/t3.2 new file mode 100644 index 000000000..e01fce04d --- /dev/null +++ b/src/regress/usr.bin/diff/t3.2 @@ -0,0 +1,25 @@ +Below is an example license to be used for new code in OpenBSD, +modeled after the ISC license. + +It is important to specify the year of the copyright. Additional years +should be separated by a comma, e.g. + Copyright (c) 2003, 2004 + +If you add extra text to the body of the license, be careful not to +add further restrictions. + +/* + * Copyright (c) CCYY YOUR NAME HERE + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ diff --git a/src/regress/usr.bin/diff/t4.1 b/src/regress/usr.bin/diff/t4.1 new file mode 100644 index 000000000..e01fce04d --- /dev/null +++ b/src/regress/usr.bin/diff/t4.1 @@ -0,0 +1,25 @@ +Below is an example license to be used for new code in OpenBSD, +modeled after the ISC license. + +It is important to specify the year of the copyright. Additional years +should be separated by a comma, e.g. + Copyright (c) 2003, 2004 + +If you add extra text to the body of the license, be careful not to +add further restrictions. + +/* + * Copyright (c) CCYY YOUR NAME HERE + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ diff --git a/src/regress/usr.bin/diff/t4.2 b/src/regress/usr.bin/diff/t4.2 new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/usr.bin/diff/t5.1 b/src/regress/usr.bin/diff/t5.1 new file mode 100644 index 000000000..44312fc97 --- /dev/null +++ b/src/regress/usr.bin/diff/t5.1 @@ -0,0 +1,10 @@ +OpenBSD 3.3-current (GENERIC) #47: Mon Jun 30 11:19:56 CEST 2003 + +Welcome to OpenBSD: The proactively secure Unix-like operating system. + +Please use the sendbug(1) utility to report bugs in the system. +Before reporting a bug, please try to reproduce it with the latest +version of the code. With bug reports, please try to ensure that +enough information to reproduce the problem is enclosed, and if a +known fix for it exists, include that as well. + diff --git a/src/regress/usr.bin/diff/t5.2 b/src/regress/usr.bin/diff/t5.2 new file mode 100644 index 000000000..44312fc97 --- /dev/null +++ b/src/regress/usr.bin/diff/t5.2 @@ -0,0 +1,10 @@ +OpenBSD 3.3-current (GENERIC) #47: Mon Jun 30 11:19:56 CEST 2003 + +Welcome to OpenBSD: The proactively secure Unix-like operating system. + +Please use the sendbug(1) utility to report bugs in the system. +Before reporting a bug, please try to reproduce it with the latest +version of the code. With bug reports, please try to ensure that +enough information to reproduce the problem is enclosed, and if a +known fix for it exists, include that as well. + diff --git a/src/regress/usr.bin/diff/t6.1 b/src/regress/usr.bin/diff/t6.1 new file mode 100644 index 000000000..0e009186b --- /dev/null +++ b/src/regress/usr.bin/diff/t6.1 @@ -0,0 +1,9 @@ +OpenBSD 3.3-current (GENERIC) #47: Mon Jun 30 11:19:56 CEST 2003 + +Welcome to OpenBSD: The proactively secure Unix-like operating system. + +Please use the sendbug(1) utility to report bugs in the system. +Before reporting a bug, please try to reproduce it with the latest +version of the code. With bug reports, please try to ensure that +enough information to reproduce the problem is enclosed, and if a +known fix for it exists, include that as well. \ No newline at end of file diff --git a/src/regress/usr.bin/diff/t6.2 b/src/regress/usr.bin/diff/t6.2 new file mode 100644 index 000000000..54d08bd62 --- /dev/null +++ b/src/regress/usr.bin/diff/t6.2 @@ -0,0 +1,9 @@ +OpenBSD 3.3-current (GENERIC) #47: Mon Jun 30 11:19:56 CEST 2003 + +Welcome to OpenBSD: The proactively secure Unix-like operating system. + +Please use the sendbug(1) utility to report bugs in the system. +Before reporting a bug, please try to reproduce it with the latest +version of the code. With bug reports, please try to ensure that +enough information to reproduce the problem is enclosed, and if a +known fix for it exists, include that as well. diff --git a/src/regress/usr.bin/diff/t7.1 b/src/regress/usr.bin/diff/t7.1 new file mode 100644 index 000000000..54d08bd62 --- /dev/null +++ b/src/regress/usr.bin/diff/t7.1 @@ -0,0 +1,9 @@ +OpenBSD 3.3-current (GENERIC) #47: Mon Jun 30 11:19:56 CEST 2003 + +Welcome to OpenBSD: The proactively secure Unix-like operating system. + +Please use the sendbug(1) utility to report bugs in the system. +Before reporting a bug, please try to reproduce it with the latest +version of the code. With bug reports, please try to ensure that +enough information to reproduce the problem is enclosed, and if a +known fix for it exists, include that as well. diff --git a/src/regress/usr.bin/diff/t7.2 b/src/regress/usr.bin/diff/t7.2 new file mode 100644 index 000000000..0e009186b --- /dev/null +++ b/src/regress/usr.bin/diff/t7.2 @@ -0,0 +1,9 @@ +OpenBSD 3.3-current (GENERIC) #47: Mon Jun 30 11:19:56 CEST 2003 + +Welcome to OpenBSD: The proactively secure Unix-like operating system. + +Please use the sendbug(1) utility to report bugs in the system. +Before reporting a bug, please try to reproduce it with the latest +version of the code. With bug reports, please try to ensure that +enough information to reproduce the problem is enclosed, and if a +known fix for it exists, include that as well. \ No newline at end of file diff --git a/src/regress/usr.bin/diff/t8.1 b/src/regress/usr.bin/diff/t8.1 new file mode 100644 index 000000000..d7e53ca4d --- /dev/null +++ b/src/regress/usr.bin/diff/t8.1 @@ -0,0 +1,392 @@ +/* $NetBSD: kern_malloc.c,v 1.11 1995/05/01 22:39:11 cgd Exp $ */ + +/* + * Copyright (c) 1987, 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)kern_malloc.c 8.3 (Berkeley) 1/4/94 + */ + +#include +#include +#include +#include +#include + +#include +#include + +struct kmembuckets bucket[MINBUCKET + 16]; +struct kmemstats kmemstats[M_LAST]; +struct kmemusage *kmemusage; +char *kmembase, *kmemlimit; +char *memname[] = INITKMEMNAMES; + +#ifdef DIAGNOSTIC +/* + * This structure provides a set of masks to catch unaligned frees. + */ +long addrmask[] = { 0, + 0x00000001, 0x00000003, 0x00000007, 0x0000000f, + 0x0000001f, 0x0000003f, 0x0000007f, 0x000000ff, + 0x000001ff, 0x000003ff, 0x000007ff, 0x00000fff, + 0x00001fff, 0x00003fff, 0x00007fff, 0x0000ffff, +}; + +/* + * The WEIRD_ADDR is used as known text to copy into free objects so + * that modifications after frees can be detected. + */ +#define WEIRD_ADDR 0xdeadbeef +#define MAX_COPY 32 + +/* + * Normally the freelist structure is used only to hold the list pointer + * for free objects. However, when running with diagnostics, the first + * 8 bytes of the structure is unused except for diagnostic information, + * and the free list pointer is at offst 8 in the structure. Since the + * first 8 bytes is the portion of the structure most often modified, this + * helps to detect memory reuse problems and avoid free list corruption. + */ +struct freelist { + int32_t spare0; + int16_t type; + int16_t spare1; + caddr_t next; +}; +#else /* !DIAGNOSTIC */ +struct freelist { + caddr_t next; +}; +#endif /* DIAGNOSTIC */ + +/* + * Allocate a block of memory + */ +void * +malloc(size, type, flags) + unsigned long size; + int type, flags; +{ + register struct kmembuckets *kbp; + register struct kmemusage *kup; + register struct freelist *freep; + long indx, npg, allocsize; + int s; + caddr_t va, cp, savedlist; +#ifdef DIAGNOSTIC + int32_t *end, *lp; + int copysize; + char *savedtype; +#endif +#ifdef KMEMSTATS + register struct kmemstats *ksp = &kmemstats[type]; + + if (((unsigned long)type) > M_LAST) + panic("malloc - bogus type"); +#endif + indx = BUCKETINDX(size); + kbp = &bucket[indx]; + s = splimp(); +#ifdef KMEMSTATS + while (ksp->ks_memuse >= ksp->ks_limit) { + if (flags & M_NOWAIT) { + splx(s); + return ((void *) NULL); + } + if (ksp->ks_limblocks < 65535) + ksp->ks_limblocks++; + tsleep((caddr_t)ksp, PSWP+2, memname[type], 0); + } + ksp->ks_size |= 1 << indx; +#endif +#ifdef DIAGNOSTIC + copysize = 1 << indx < MAX_COPY ? 1 << indx : MAX_COPY; +#endif + if (kbp->kb_next == NULL) { + kbp->kb_last = NULL; + if (size > MAXALLOCSAVE) + allocsize = roundup(size, CLBYTES); + else + allocsize = 1 << indx; + npg = clrnd(btoc(allocsize)); + va = (caddr_t) kmem_malloc(kmem_map, (vm_size_t)ctob(npg), + !(flags & M_NOWAIT)); + if (va == NULL) { + splx(s); + return ((void *) NULL); + } +#ifdef KMEMSTATS + kbp->kb_total += kbp->kb_elmpercl; +#endif + kup = btokup(va); + kup->ku_indx = indx; + if (allocsize > MAXALLOCSAVE) { + if (npg > 65535) + panic("malloc: allocation too large"); + kup->ku_pagecnt = npg; +#ifdef KMEMSTATS + ksp->ks_memuse += allocsize; +#endif + goto out; + } +#ifdef KMEMSTATS + kup->ku_freecnt = kbp->kb_elmpercl; + kbp->kb_totalfree += kbp->kb_elmpercl; +#endif + /* + * Just in case we blocked while allocating memory, + * and someone else also allocated memory for this + * bucket, don't assume the list is still empty. + */ + savedlist = kbp->kb_next; + kbp->kb_next = cp = va + (npg * NBPG) - allocsize; + for (;;) { + freep = (struct freelist *)cp; +#ifdef DIAGNOSTIC + /* + * Copy in known text to detect modification + * after freeing. + */ + end = (int32_t *)&cp[copysize]; + for (lp = (int32_t *)cp; lp < end; lp++) + *lp = WEIRD_ADDR; + freep->type = M_FREE; +#endif /* DIAGNOSTIC */ + if (cp <= va) + break; + cp -= allocsize; + freep->next = cp; + } + freep->next = savedlist; + if (kbp->kb_last == NULL) + kbp->kb_last = (caddr_t)freep; + } + va = kbp->kb_next; + kbp->kb_next = ((struct freelist *)va)->next; +#ifdef DIAGNOSTIC + freep = (struct freelist *)va; + savedtype = (unsigned)freep->type < M_LAST ? + memname[freep->type] : "???"; + if (kbp->kb_next && + !kernacc(kbp->kb_next, sizeof(struct freelist), 0)) { + printf("%s %d of object %p size %d %s %s (invalid addr %p)\n", + "Data modified on freelist: word", + (int32_t *)&kbp->kb_next - (int32_t *)kbp, va, size, + "previous type", savedtype, kbp->kb_next); + kbp->kb_next = NULL; + } + + /* Fill the fields that we've used with WEIRD_ADDR */ +#if BYTE_ORDER == BIG_ENDIAN + freep->type = WEIRD_ADDR >> 16; +#endif +#if BYTE_ORDER == LITTLE_ENDIAN + freep->type = (short)WEIRD_ADDR; +#endif + end = (int32_t *)&freep->next + + (sizeof(freep->next) / sizeof(int32_t)); + for (lp = (int32_t *)&freep->next; lp < end; lp++) + *lp = WEIRD_ADDR; + + /* and check that the data hasn't been modified. */ + end = (int32_t *)&va[copysize]; + for (lp = (int32_t *)va; lp < end; lp++) { + if (*lp == WEIRD_ADDR) + continue; + printf("%s %d of object %p size %d %s %s (%p != %p)\n", + "Data modified on freelist: word", lp - (int32_t *)va, + va, size, "previous type", savedtype, *lp, WEIRD_ADDR); + break; + } + + freep->spare0 = 0; +#endif /* DIAGNOSTIC */ +#ifdef KMEMSTATS + kup = btokup(va); + if (kup->ku_indx != indx) + panic("malloc: wrong bucket"); + if (kup->ku_freecnt == 0) + panic("malloc: lost data"); + kup->ku_freecnt--; + kbp->kb_totalfree--; + ksp->ks_memuse += 1 << indx; +out: + kbp->kb_calls++; + ksp->ks_inuse++; + ksp->ks_calls++; + if (ksp->ks_memuse > ksp->ks_maxused) + ksp->ks_maxused = ksp->ks_memuse; +#else +out: +#endif + splx(s); + return ((void *) va); +} + +/* + * Free a block of memory allocated by malloc. + */ +void +free(addr, type) + void *addr; + int type; +{ + register struct kmembuckets *kbp; + register struct kmemusage *kup; + register struct freelist *freep; + long size; + int s; +#ifdef DIAGNOSTIC + caddr_t cp; + int32_t *end, *lp; + long alloc, copysize; +#endif +#ifdef KMEMSTATS + register struct kmemstats *ksp = &kmemstats[type]; +#endif + + kup = btokup(addr); + size = 1 << kup->ku_indx; + kbp = &bucket[kup->ku_indx]; + s = splimp(); +#ifdef DIAGNOSTIC + /* + * Check for returns of data that do not point to the + * beginning of the allocation. + */ + if (size > NBPG * CLSIZE) + alloc = addrmask[BUCKETINDX(NBPG * CLSIZE)]; + else + alloc = addrmask[kup->ku_indx]; + if (((u_long)addr & alloc) != 0) + panic("free: unaligned addr 0x%x, size %d, type %s, mask %d\n", + addr, size, memname[type], alloc); +#endif /* DIAGNOSTIC */ + if (size > MAXALLOCSAVE) { + kmem_free(kmem_map, (vm_offset_t)addr, ctob(kup->ku_pagecnt)); +#ifdef KMEMSTATS + size = kup->ku_pagecnt << PGSHIFT; + ksp->ks_memuse -= size; + kup->ku_indx = 0; + kup->ku_pagecnt = 0; + if (ksp->ks_memuse + size >= ksp->ks_limit && + ksp->ks_memuse < ksp->ks_limit) + wakeup((caddr_t)ksp); + ksp->ks_inuse--; + kbp->kb_total -= 1; +#endif + splx(s); + return; + } + freep = (struct freelist *)addr; +#ifdef DIAGNOSTIC + /* + * Check for multiple frees. Use a quick check to see if + * it looks free before laboriously searching the freelist. + */ + if (freep->spare0 == WEIRD_ADDR) { + for (cp = kbp->kb_next; cp; cp = *(caddr_t *)cp) { + if (addr != cp) + continue; + printf("multiply freed item %p\n", addr); + panic("free: duplicated free"); + } + } + /* + * Copy in known text to detect modification after freeing + * and to make it look free. Also, save the type being freed + * so we can list likely culprit if modification is detected + * when the object is reallocated. + */ + copysize = size < MAX_COPY ? size : MAX_COPY; + end = (int32_t *)&((caddr_t)addr)[copysize]; + for (lp = (int32_t *)addr; lp < end; lp++) + *lp = WEIRD_ADDR; + freep->type = type; +#endif /* DIAGNOSTIC */ +#ifdef KMEMSTATS + kup->ku_freecnt++; + if (kup->ku_freecnt >= kbp->kb_elmpercl) + if (kup->ku_freecnt > kbp->kb_elmpercl) + panic("free: multiple frees"); + else if (kbp->kb_totalfree > kbp->kb_highwat) + kbp->kb_couldfree++; + kbp->kb_totalfree++; + ksp->ks_memuse -= size; + if (ksp->ks_memuse + size >= ksp->ks_limit && + ksp->ks_memuse < ksp->ks_limit) + wakeup((caddr_t)ksp); + ksp->ks_inuse--; +#endif + if (kbp->kb_next == NULL) + kbp->kb_next = addr; + else + ((struct freelist *)kbp->kb_last)->next = addr; + freep->next = NULL; + kbp->kb_last = addr; + splx(s); +} + +/* + * Initialize the kernel memory allocator + */ +kmeminit() +{ + register long indx; + int npg; + +#if ((MAXALLOCSAVE & (MAXALLOCSAVE - 1)) != 0) + ERROR!_kmeminit:_MAXALLOCSAVE_not_power_of_2 +#endif +#if (MAXALLOCSAVE > MINALLOCSIZE * 32768) + ERROR!_kmeminit:_MAXALLOCSAVE_too_big +#endif +#if (MAXALLOCSAVE < CLBYTES) + ERROR!_kmeminit:_MAXALLOCSAVE_too_small +#endif + + if (sizeof(struct freelist) > (1 << MINBUCKET)) + panic("minbucket too small/struct freelist too big"); + + npg = VM_KMEM_SIZE/ NBPG; + kmemusage = (struct kmemusage *) kmem_alloc(kernel_map, + (vm_size_t)(npg * sizeof(struct kmemusage))); + kmem_map = kmem_suballoc(kernel_map, (vm_offset_t *)&kmembase, + (vm_offset_t *)&kmemlimit, (vm_size_t)(npg * NBPG), FALSE); +#ifdef KMEMSTATS + for (indx = 0; indx < MINBUCKET + 16; indx++) { + if (1 << indx >= CLBYTES) + bucket[indx].kb_elmpercl = 1; + else + bucket[indx].kb_elmpercl = CLBYTES / (1 << indx); + bucket[indx].kb_highwat = 5 * bucket[indx].kb_elmpercl; + } + for (indx = 0; indx < M_LAST; indx++) + kmemstats[indx].ks_limit = npg * NBPG * 6 / 10; +#endif +} diff --git a/src/regress/usr.bin/diff/t8.2 b/src/regress/usr.bin/diff/t8.2 new file mode 100644 index 000000000..f84ad5c34 --- /dev/null +++ b/src/regress/usr.bin/diff/t8.2 @@ -0,0 +1,616 @@ +/* $OpenBSD: t8.2,v 1.1 2003/07/17 21:04:04 otto Exp $ */ +/* $NetBSD: kern_malloc.c,v 1.15.4.2 1996/06/13 17:10:56 cgd Exp $ */ + +/* + * Copyright (c) 1987, 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)kern_malloc.c 8.3 (Berkeley) 1/4/94 + */ + +#include +#include +#include +#include +#include +#include + +#include + +static struct vm_map_intrsafe kmem_map_store; +struct vm_map *kmem_map = NULL; + +#ifdef NKMEMCLUSTERS +#error NKMEMCLUSTERS is obsolete; remove it from your kernel config file and use NKMEMPAGES instead or let the kernel auto-size +#endif + +/* + * Default number of pages in kmem_map. We attempt to calculate this + * at run-time, but allow it to be either patched or set in the kernel + * config file. + */ +#ifndef NKMEMPAGES +#define NKMEMPAGES 0 +#endif +int nkmempages = NKMEMPAGES; + +/* + * Defaults for lower- and upper-bounds for the kmem_map page count. + * Can be overridden by kernel config options. + */ +#ifndef NKMEMPAGES_MIN +#define NKMEMPAGES_MIN NKMEMPAGES_MIN_DEFAULT +#endif + +#ifndef NKMEMPAGES_MAX +#define NKMEMPAGES_MAX NKMEMPAGES_MAX_DEFAULT +#endif + +struct kmembuckets bucket[MINBUCKET + 16]; +struct kmemstats kmemstats[M_LAST]; +struct kmemusage *kmemusage; +char *kmembase, *kmemlimit; +char buckstring[16 * sizeof("123456,")]; +int buckstring_init = 0; +#if defined(KMEMSTATS) || defined(DIAGNOSTIC) || defined(FFS_SOFTUPDATES) +char *memname[] = INITKMEMNAMES; +char *memall = NULL; +extern struct lock sysctl_kmemlock; +#endif + +#ifdef DIAGNOSTIC +/* + * This structure provides a set of masks to catch unaligned frees. + */ +const long addrmask[] = { 0, + 0x00000001, 0x00000003, 0x00000007, 0x0000000f, + 0x0000001f, 0x0000003f, 0x0000007f, 0x000000ff, + 0x000001ff, 0x000003ff, 0x000007ff, 0x00000fff, + 0x00001fff, 0x00003fff, 0x00007fff, 0x0000ffff, +}; + +/* + * The WEIRD_ADDR is used as known text to copy into free objects so + * that modifications after frees can be detected. + */ +#define WEIRD_ADDR ((unsigned) 0xdeadbeef) +#define MAX_COPY 32 + +/* + * Normally the freelist structure is used only to hold the list pointer + * for free objects. However, when running with diagnostics, the first + * 8 bytes of the structure is unused except for diagnostic information, + * and the free list pointer is at offset 8 in the structure. Since the + * first 8 bytes is the portion of the structure most often modified, this + * helps to detect memory reuse problems and avoid free list corruption. + */ +struct freelist { + int32_t spare0; + int16_t type; + int16_t spare1; + caddr_t next; +}; +#else /* !DIAGNOSTIC */ +struct freelist { + caddr_t next; +}; +#endif /* DIAGNOSTIC */ + +/* + * Allocate a block of memory + */ +void * +malloc(size, type, flags) + unsigned long size; + int type, flags; +{ + register struct kmembuckets *kbp; + register struct kmemusage *kup; + register struct freelist *freep; + long indx, npg, allocsize; + int s; + caddr_t va, cp, savedlist; +#ifdef DIAGNOSTIC + int32_t *end, *lp; + int copysize; + char *savedtype; +#endif +#ifdef KMEMSTATS + register struct kmemstats *ksp = &kmemstats[type]; + + if (((unsigned long)type) >= M_LAST) + panic("malloc - bogus type"); +#endif + +#ifdef MALLOC_DEBUG + if (debug_malloc(size, type, flags, (void **)&va)) + return ((void *) va); +#endif + + indx = BUCKETINDX(size); + kbp = &bucket[indx]; + s = splvm(); +#ifdef KMEMSTATS + while (ksp->ks_memuse >= ksp->ks_limit) { + if (flags & M_NOWAIT) { + splx(s); + return ((void *) NULL); + } + if (ksp->ks_limblocks < 65535) + ksp->ks_limblocks++; + tsleep((caddr_t)ksp, PSWP+2, memname[type], 0); + } + ksp->ks_size |= 1 << indx; +#endif +#ifdef DIAGNOSTIC + copysize = 1 << indx < MAX_COPY ? 1 << indx : MAX_COPY; +#endif + if (kbp->kb_next == NULL) { + kbp->kb_last = NULL; + if (size > MAXALLOCSAVE) + allocsize = round_page(size); + else + allocsize = 1 << indx; + npg = btoc(allocsize); + va = (caddr_t) uvm_km_kmemalloc(kmem_map, uvmexp.kmem_object, + (vsize_t)ctob(npg), + (flags & M_NOWAIT) ? UVM_KMF_NOWAIT : 0); + if (va == NULL) { + /* + * Kmem_malloc() can return NULL, even if it can + * wait, if there is no map space available, because + * it can't fix that problem. Neither can we, + * right now. (We should release pages which + * are completely free and which are in buckets + * with too many free elements.) + */ + if ((flags & M_NOWAIT) == 0) + panic("malloc: out of space in kmem_map"); + splx(s); + return ((void *) NULL); + } +#ifdef KMEMSTATS + kbp->kb_total += kbp->kb_elmpercl; +#endif + kup = btokup(va); + kup->ku_indx = indx; + if (allocsize > MAXALLOCSAVE) { + if (npg > 65535) + panic("malloc: allocation too large"); + kup->ku_pagecnt = npg; +#ifdef KMEMSTATS + ksp->ks_memuse += allocsize; +#endif + goto out; + } +#ifdef KMEMSTATS + kup->ku_freecnt = kbp->kb_elmpercl; + kbp->kb_totalfree += kbp->kb_elmpercl; +#endif + /* + * Just in case we blocked while allocating memory, + * and someone else also allocated memory for this + * bucket, don't assume the list is still empty. + */ + savedlist = kbp->kb_next; + kbp->kb_next = cp = va + (npg * PAGE_SIZE) - allocsize; + for (;;) { + freep = (struct freelist *)cp; +#ifdef DIAGNOSTIC + /* + * Copy in known text to detect modification + * after freeing. + */ + end = (int32_t *)&cp[copysize]; + for (lp = (int32_t *)cp; lp < end; lp++) + *lp = WEIRD_ADDR; + freep->type = M_FREE; +#endif /* DIAGNOSTIC */ + if (cp <= va) + break; + cp -= allocsize; + freep->next = cp; + } + freep->next = savedlist; + if (kbp->kb_last == NULL) + kbp->kb_last = (caddr_t)freep; + } + va = kbp->kb_next; + kbp->kb_next = ((struct freelist *)va)->next; +#ifdef DIAGNOSTIC + freep = (struct freelist *)va; + savedtype = (unsigned)freep->type < M_LAST ? + memname[freep->type] : "???"; + if (kbp->kb_next) { + int rv; + vaddr_t addr = (vaddr_t)kbp->kb_next; + + vm_map_lock(kmem_map); + rv = uvm_map_checkprot(kmem_map, addr, + addr + sizeof(struct freelist), VM_PROT_WRITE); + vm_map_unlock(kmem_map); + + if (!rv) { + printf("%s %d of object %p size 0x%lx %s %s (invalid addr %p)\n", + "Data modified on freelist: word", + (int32_t *)&kbp->kb_next - (int32_t *)kbp, va, size, + "previous type", savedtype, kbp->kb_next); + kbp->kb_next = NULL; + } + } + + /* Fill the fields that we've used with WEIRD_ADDR */ +#if BYTE_ORDER == BIG_ENDIAN + freep->type = WEIRD_ADDR >> 16; +#endif +#if BYTE_ORDER == LITTLE_ENDIAN + freep->type = (short)WEIRD_ADDR; +#endif + end = (int32_t *)&freep->next + + (sizeof(freep->next) / sizeof(int32_t)); + for (lp = (int32_t *)&freep->next; lp < end; lp++) + *lp = WEIRD_ADDR; + + /* and check that the data hasn't been modified. */ + end = (int32_t *)&va[copysize]; + for (lp = (int32_t *)va; lp < end; lp++) { + if (*lp == WEIRD_ADDR) + continue; + printf("%s %d of object %p size 0x%lx %s %s (0x%x != 0x%x)\n", + "Data modified on freelist: word", lp - (int32_t *)va, + va, size, "previous type", savedtype, *lp, WEIRD_ADDR); + break; + } + + freep->spare0 = 0; +#endif /* DIAGNOSTIC */ +#ifdef KMEMSTATS + kup = btokup(va); + if (kup->ku_indx != indx) + panic("malloc: wrong bucket"); + if (kup->ku_freecnt == 0) + panic("malloc: lost data"); + kup->ku_freecnt--; + kbp->kb_totalfree--; + ksp->ks_memuse += 1 << indx; +out: + kbp->kb_calls++; + ksp->ks_inuse++; + ksp->ks_calls++; + if (ksp->ks_memuse > ksp->ks_maxused) + ksp->ks_maxused = ksp->ks_memuse; +#else +out: +#endif + splx(s); + return ((void *) va); +} + +/* + * Free a block of memory allocated by malloc. + */ +void +free(addr, type) + void *addr; + int type; +{ + register struct kmembuckets *kbp; + register struct kmemusage *kup; + register struct freelist *freep; + long size; + int s; +#ifdef DIAGNOSTIC + caddr_t cp; + int32_t *end, *lp; + long alloc, copysize; +#endif +#ifdef KMEMSTATS + register struct kmemstats *ksp = &kmemstats[type]; +#endif + +#ifdef MALLOC_DEBUG + if (debug_free(addr, type)) + return; +#endif + +#ifdef DIAGNOSTIC + if (addr < (void *)kmembase || addr >= (void *)kmemlimit) + panic("free: non-malloced addr %p type %s", addr, + memname[type]); +#endif + + kup = btokup(addr); + size = 1 << kup->ku_indx; + kbp = &bucket[kup->ku_indx]; + s = splvm(); +#ifdef DIAGNOSTIC + /* + * Check for returns of data that do not point to the + * beginning of the allocation. + */ + if (size > PAGE_SIZE) + alloc = addrmask[BUCKETINDX(PAGE_SIZE)]; + else + alloc = addrmask[kup->ku_indx]; + if (((u_long)addr & alloc) != 0) + panic("free: unaligned addr %p, size %ld, type %s, mask %ld", + addr, size, memname[type], alloc); +#endif /* DIAGNOSTIC */ + if (size > MAXALLOCSAVE) { + uvm_km_free(kmem_map, (vaddr_t)addr, ctob(kup->ku_pagecnt)); +#ifdef KMEMSTATS + size = kup->ku_pagecnt << PGSHIFT; + ksp->ks_memuse -= size; + kup->ku_indx = 0; + kup->ku_pagecnt = 0; + if (ksp->ks_memuse + size >= ksp->ks_limit && + ksp->ks_memuse < ksp->ks_limit) + wakeup((caddr_t)ksp); + ksp->ks_inuse--; + kbp->kb_total -= 1; +#endif + splx(s); + return; + } + freep = (struct freelist *)addr; +#ifdef DIAGNOSTIC + /* + * Check for multiple frees. Use a quick check to see if + * it looks free before laboriously searching the freelist. + */ + if (freep->spare0 == WEIRD_ADDR) { + for (cp = kbp->kb_next; cp; + cp = ((struct freelist *)cp)->next) { + if (addr != cp) + continue; + printf("multiply freed item %p\n", addr); + panic("free: duplicated free"); + } + } + /* + * Copy in known text to detect modification after freeing + * and to make it look free. Also, save the type being freed + * so we can list likely culprit if modification is detected + * when the object is reallocated. + */ + copysize = size < MAX_COPY ? size : MAX_COPY; + end = (int32_t *)&((caddr_t)addr)[copysize]; + for (lp = (int32_t *)addr; lp < end; lp++) + *lp = WEIRD_ADDR; + freep->type = type; +#endif /* DIAGNOSTIC */ +#ifdef KMEMSTATS + kup->ku_freecnt++; + if (kup->ku_freecnt >= kbp->kb_elmpercl) { + if (kup->ku_freecnt > kbp->kb_elmpercl) + panic("free: multiple frees"); + else if (kbp->kb_totalfree > kbp->kb_highwat) + kbp->kb_couldfree++; + } + kbp->kb_totalfree++; + ksp->ks_memuse -= size; + if (ksp->ks_memuse + size >= ksp->ks_limit && + ksp->ks_memuse < ksp->ks_limit) + wakeup((caddr_t)ksp); + ksp->ks_inuse--; +#endif + if (kbp->kb_next == NULL) + kbp->kb_next = addr; + else + ((struct freelist *)kbp->kb_last)->next = addr; + freep->next = NULL; + kbp->kb_last = addr; + splx(s); +} + +/* + * Compute the number of pages that kmem_map will map, that is, + * the size of the kernel malloc arena. + */ +void +kmeminit_nkmempages() +{ + int npages; + + if (nkmempages != 0) { + /* + * It's already been set (by us being here before, or + * by patching or kernel config options), bail out now. + */ + return; + } + + /* + * We use the following (simple) formula: + * + * - Starting point is physical memory / 4. + * + * - Clamp it down to NKMEMPAGES_MAX. + * + * - Round it up to NKMEMPAGES_MIN. + */ + npages = physmem / 4; + + if (npages > NKMEMPAGES_MAX) + npages = NKMEMPAGES_MAX; + + if (npages < NKMEMPAGES_MIN) + npages = NKMEMPAGES_MIN; + + nkmempages = npages; +} + +/* + * Initialize the kernel memory allocator + */ +void +kmeminit() +{ + vaddr_t base, limit; +#ifdef KMEMSTATS + long indx; +#endif + +#ifdef DIAGNOSTIC + if (sizeof(struct freelist) > (1 << MINBUCKET)) + panic("kmeminit: minbucket too small/struct freelist too big"); +#endif + + /* + * Compute the number of kmem_map pages, if we have not + * done so already. + */ + kmeminit_nkmempages(); + base = vm_map_min(kernel_map); + kmem_map = uvm_km_suballoc(kernel_map, &base, &limit, + (vsize_t)(nkmempages * PAGE_SIZE), VM_MAP_INTRSAFE, FALSE, + &kmem_map_store.vmi_map); + kmembase = (char *)base; + kmemlimit = (char *)limit; + kmemusage = (struct kmemusage *) uvm_km_zalloc(kernel_map, + (vsize_t)(nkmempages * sizeof(struct kmemusage))); +#ifdef KMEMSTATS + for (indx = 0; indx < MINBUCKET + 16; indx++) { + if (1 << indx >= PAGE_SIZE) + bucket[indx].kb_elmpercl = 1; + else + bucket[indx].kb_elmpercl = PAGE_SIZE / (1 << indx); + bucket[indx].kb_highwat = 5 * bucket[indx].kb_elmpercl; + } + for (indx = 0; indx < M_LAST; indx++) + kmemstats[indx].ks_limit = nkmempages * PAGE_SIZE * 6 / 10; +#endif +#ifdef MALLOC_DEBUG + debug_malloc_init(); +#endif +} + +/* + * Return kernel malloc statistics information. + */ +int +sysctl_malloc(name, namelen, oldp, oldlenp, newp, newlen, p) + int *name; + u_int namelen; + void *oldp; + size_t *oldlenp; + void *newp; + size_t newlen; + struct proc *p; +{ + struct kmembuckets kb; + int i, siz; + + if (namelen != 2 && name[0] != KERN_MALLOC_BUCKETS && + name[0] != KERN_MALLOC_KMEMNAMES) + return (ENOTDIR); /* overloaded */ + + switch (name[0]) { + case KERN_MALLOC_BUCKETS: + /* Initialize the first time */ + if (buckstring_init == 0) { + buckstring_init = 1; + bzero(buckstring, sizeof(buckstring)); + for (siz = 0, i = MINBUCKET; i < MINBUCKET + 16; i++) { + snprintf(buckstring + siz, + sizeof buckstring - siz, + "%d,", (u_int)(1<= M_LAST)) + return (EINVAL); + return (sysctl_rdstruct(oldp, oldlenp, newp, + &kmemstats[name[1]], sizeof(struct kmemstats))); +#else + return (EOPNOTSUPP); +#endif + case KERN_MALLOC_KMEMNAMES: +#if defined(KMEMSTATS) || defined(DIAGNOSTIC) || defined(FFS_SOFTUPDATES) + if (memall == NULL) { + int totlen; + + i = lockmgr(&sysctl_kmemlock, LK_EXCLUSIVE, NULL, p); + if (i) + return (i); + + /* Figure out how large a buffer we need */ + for (totlen = 0, i = 0; i < M_LAST; i++) { + if (memname[i]) + totlen += strlen(memname[i]); + totlen++; + } + memall = malloc(totlen + M_LAST, M_SYSCTL, M_WAITOK); + bzero(memall, totlen + M_LAST); + for (siz = 0, i = 0; i < M_LAST; i++) { + snprintf(memall + siz, + totlen + M_LAST - siz, + "%s,", memname[i] ? memname[i] : ""); + siz += strlen(memall + siz); + } + /* Remove trailing comma */ + if (siz) + memall[siz - 1] = '\0'; + + /* Now, convert all spaces to underscores */ + for (i = 0; i < totlen; i++) + if (memall[i] == ' ') + memall[i] = '_'; + lockmgr(&sysctl_kmemlock, LK_RELEASE, NULL, p); + } + return (sysctl_rdstring(oldp, oldlenp, newp, memall)); +#else + return (EOPNOTSUPP); +#endif + default: + return (EOPNOTSUPP); + } + /* NOTREACHED */ +} + +/* + * Round up a size to how much malloc would actually allocate. + */ +size_t +malloc_roundup(size_t sz) +{ + if (sz > MAXALLOCSAVE) + return round_page(sz); + + return (1 << BUCKETINDX(sz)); +} diff --git a/src/regress/usr.bin/diff/t9.1 b/src/regress/usr.bin/diff/t9.1 new file mode 100644 index 000000000..6ccaf86e9 --- /dev/null +++ b/src/regress/usr.bin/diff/t9.1 @@ -0,0 +1,2045 @@ +/* $NetBSD: vfs_syscalls.c,v 1.57 1995/10/07 06:28:51 mycroft Exp $ */ + +/* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)vfs_syscalls.c 8.28 (Berkeley) 12/10/94 + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +static int change_dir __P((struct nameidata *ndp, struct proc *p)); + +/* + * Virtual File System System Calls + */ + +/* + * Mount a file system. + */ +/* ARGSUSED */ +sys_mount(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_mount_args /* { + syscallarg(char *) type; + syscallarg(char *) path; + syscallarg(int) flags; + syscallarg(caddr_t) data; + } */ *uap = v; + register struct vnode *vp; + register struct mount *mp; + int error, flag; + u_long fsindex; + char fstypename[MFSNAMELEN]; + struct vattr va; + struct nameidata nd; + + /* + * Get vnode to be covered + */ + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + if (SCARG(uap, flags) & MNT_UPDATE) { + if ((vp->v_flag & VROOT) == 0) { + vput(vp); + return (EINVAL); + } + mp = vp->v_mount; + flag = mp->mnt_flag; + /* + * We only allow the filesystem to be reloaded if it + * is currently mounted read-only. + */ + if ((SCARG(uap, flags) & MNT_RELOAD) && + ((mp->mnt_flag & MNT_RDONLY) == 0)) { + vput(vp); + return (EOPNOTSUPP); /* Needs translation */ + } + mp->mnt_flag |= + SCARG(uap, flags) & (MNT_RELOAD | MNT_FORCE | MNT_UPDATE); + /* + * Only root, or the user that did the original mount is + * permitted to update it. + */ + if (mp->mnt_stat.f_owner != p->p_ucred->cr_uid && + (error = suser(p->p_ucred, &p->p_acflag))) { + vput(vp); + return (error); + } + /* + * Do not allow NFS export by non-root users. Silently + * enforce MNT_NOSUID and MNT_NODEV for non-root users. + */ + if (p->p_ucred->cr_uid != 0) { + if (SCARG(uap, flags) & MNT_EXPORTED) { + vput(vp); + return (EPERM); + } + SCARG(uap, flags) |= MNT_NOSUID | MNT_NODEV; + } + VOP_UNLOCK(vp); + goto update; + } + /* + * If the user is not root, ensure that they own the directory + * onto which we are attempting to mount. + */ + if ((error = VOP_GETATTR(vp, &va, p->p_ucred, p)) || + (va.va_uid != p->p_ucred->cr_uid && + (error = suser(p->p_ucred, &p->p_acflag)))) { + vput(vp); + return (error); + } + /* + * Do not allow NFS export by non-root users. Silently + * enforce MNT_NOSUID and MNT_NODEV for non-root users. + */ + if (p->p_ucred->cr_uid != 0) { + if (SCARG(uap, flags) & MNT_EXPORTED) { + vput(vp); + return (EPERM); + } + SCARG(uap, flags) |= MNT_NOSUID | MNT_NODEV; + } + if (error = vinvalbuf(vp, V_SAVE, p->p_ucred, p, 0, 0)) + return (error); + if (vp->v_type != VDIR) { + vput(vp); + return (ENOTDIR); + } + if (error = copyinstr(SCARG(uap, type), fstypename, MFSNAMELEN, + (size_t *)0)) { +#if defined(COMPAT_09) || defined(COMPAT_43) + /* + * Historically filesystem types were identified by number. + * If we get an integer for the filesystem type instead of a + * string, we check to see if it matches one of the historic + * filesystem types. + */ + fsindex = (u_long)SCARG(uap, type); + if (fsindex >= nvfssw || vfssw[fsindex] == NULL) { + vput(vp); + return (ENODEV); + } + strncpy(fstypename, vfssw[fsindex]->vfs_name, MFSNAMELEN); +#else + vput(vp); + return (error); +#endif + } + for (fsindex = 0; fsindex < nvfssw; fsindex++) + if (vfssw[fsindex] != NULL && + !strncmp(vfssw[fsindex]->vfs_name, fstypename, MFSNAMELEN)) + break; + if (fsindex >= nvfssw) { + vput(vp); + return (ENODEV); + } + if (vp->v_mountedhere != NULL) { + vput(vp); + return (EBUSY); + } + + /* + * Allocate and initialize the file system. + */ + mp = (struct mount *)malloc((u_long)sizeof(struct mount), + M_MOUNT, M_WAITOK); + bzero((char *)mp, (u_long)sizeof(struct mount)); + mp->mnt_op = vfssw[fsindex]; + if (error = vfs_lock(mp)) { + free((caddr_t)mp, M_MOUNT); + vput(vp); + return (error); + } + /* Do this early in case we block later. */ + vfssw[fsindex]->vfs_refcount++; + vp->v_mountedhere = mp; + mp->mnt_vnodecovered = vp; + mp->mnt_stat.f_owner = p->p_ucred->cr_uid; +update: + /* + * Set the mount level flags. + */ + if (SCARG(uap, flags) & MNT_RDONLY) + mp->mnt_flag |= MNT_RDONLY; + else if (mp->mnt_flag & MNT_RDONLY) + mp->mnt_flag |= MNT_WANTRDWR; + mp->mnt_flag &=~ (MNT_NOSUID | MNT_NOEXEC | MNT_NODEV | + MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC); + mp->mnt_flag |= SCARG(uap, flags) & (MNT_NOSUID | MNT_NOEXEC | + MNT_NODEV | MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC); + /* + * Mount the filesystem. + */ + error = VFS_MOUNT(mp, SCARG(uap, path), SCARG(uap, data), &nd, p); + if (mp->mnt_flag & MNT_UPDATE) { + vrele(vp); + if (mp->mnt_flag & MNT_WANTRDWR) + mp->mnt_flag &= ~MNT_RDONLY; + mp->mnt_flag &=~ + (MNT_UPDATE | MNT_RELOAD | MNT_FORCE | MNT_WANTRDWR); + if (error) + mp->mnt_flag = flag; + return (error); + } + /* + * Put the new filesystem on the mount list after root. + */ + cache_purge(vp); + if (!error) { + CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list); + checkdirs(vp); + VOP_UNLOCK(vp); + vfs_unlock(mp); + (void) VFS_STATFS(mp, &mp->mnt_stat, p); + error = VFS_START(mp, 0, p); + } else { + mp->mnt_vnodecovered->v_mountedhere = (struct mount *)0; + vfssw[fsindex]->vfs_refcount--; + vfs_unlock(mp); + free((caddr_t)mp, M_MOUNT); + vput(vp); + } + return (error); +} + +/* + * Scan all active processes to see if any of them have a current + * or root directory onto which the new filesystem has just been + * mounted. If so, replace them with the new mount point. + */ +checkdirs(olddp) + struct vnode *olddp; +{ + struct filedesc *fdp; + struct vnode *newdp; + struct proc *p; + + if (olddp->v_usecount == 1) + return; + if (VFS_ROOT(olddp->v_mountedhere, &newdp)) + panic("mount: lost mount"); + for (p = allproc.lh_first; p != 0; p = p->p_list.le_next) { + fdp = p->p_fd; + if (fdp->fd_cdir == olddp) { + vrele(fdp->fd_cdir); + VREF(newdp); + fdp->fd_cdir = newdp; + } + if (fdp->fd_rdir == olddp) { + vrele(fdp->fd_rdir); + VREF(newdp); + fdp->fd_rdir = newdp; + } + } + if (rootvnode == olddp) { + vrele(rootvnode); + VREF(newdp); + rootvnode = newdp; + } + vput(newdp); +} + +/* + * Unmount a file system. + * + * Note: unmount takes a path to the vnode mounted on as argument, + * not special file (as before). + */ +/* ARGSUSED */ +sys_unmount(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_unmount_args /* { + syscallarg(char *) path; + syscallarg(int) flags; + } */ *uap = v; + register struct vnode *vp; + struct mount *mp; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + mp = vp->v_mount; + + /* + * Only root, or the user that did the original mount is + * permitted to unmount this filesystem. + */ + if ((mp->mnt_stat.f_owner != p->p_ucred->cr_uid) && + (error = suser(p->p_ucred, &p->p_acflag))) { + vput(vp); + return (error); + } + + /* + * Don't allow unmounting the root file system. + */ + if (mp->mnt_flag & MNT_ROOTFS) { + vput(vp); + return (EINVAL); + } + + /* + * Must be the root of the filesystem + */ + if ((vp->v_flag & VROOT) == 0) { + vput(vp); + return (EINVAL); + } + vput(vp); + return (dounmount(mp, SCARG(uap, flags), p)); +} + +/* + * Do the actual file system unmount. + */ +dounmount(mp, flags, p) + register struct mount *mp; + int flags; + struct proc *p; +{ + struct vnode *coveredvp; + int error; + + coveredvp = mp->mnt_vnodecovered; + if (vfs_busy(mp)) + return (EBUSY); + mp->mnt_flag |= MNT_UNMOUNT; + if (error = vfs_lock(mp)) + return (error); + + mp->mnt_flag &=~ MNT_ASYNC; + vnode_pager_umount(mp); /* release cached vnodes */ + cache_purgevfs(mp); /* remove cache entries for this file sys */ + if ((error = VFS_SYNC(mp, MNT_WAIT, p->p_ucred, p)) == 0 || + (flags & MNT_FORCE)) + error = VFS_UNMOUNT(mp, flags, p); + mp->mnt_flag &= ~MNT_UNMOUNT; + vfs_unbusy(mp); + if (error) { + vfs_unlock(mp); + } else { + CIRCLEQ_REMOVE(&mountlist, mp, mnt_list); + if (coveredvp != NULLVP) { + vrele(coveredvp); + coveredvp->v_mountedhere = (struct mount *)0; + } + mp->mnt_op->vfs_refcount--; + vfs_unlock(mp); + if (mp->mnt_vnodelist.lh_first != NULL) + panic("unmount: dangling vnode"); + free((caddr_t)mp, M_MOUNT); + } + return (error); +} + +/* + * Sync each mounted filesystem. + */ +#ifdef DEBUG +int syncprt = 0; +struct ctldebug debug0 = { "syncprt", &syncprt }; +#endif + +/* ARGSUSED */ +sys_sync(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct mount *mp, *nmp; + int asyncflag; + + for (mp = mountlist.cqh_first; mp != (void *)&mountlist; mp = nmp) { + /* + * Get the next pointer in case we hang on vfs_busy + * while we are being unmounted. + */ + nmp = mp->mnt_list.cqe_next; + /* + * The lock check below is to avoid races with mount + * and unmount. + */ + if ((mp->mnt_flag & (MNT_MLOCK|MNT_RDONLY|MNT_MPBUSY)) == 0 && + !vfs_busy(mp)) { + asyncflag = mp->mnt_flag & MNT_ASYNC; + mp->mnt_flag &= ~MNT_ASYNC; + VFS_SYNC(mp, MNT_NOWAIT, p->p_ucred, p); + if (asyncflag) + mp->mnt_flag |= MNT_ASYNC; + /* + * Get the next pointer again, as the next filesystem + * might have been unmounted while we were sync'ing. + */ + nmp = mp->mnt_list.cqe_next; + vfs_unbusy(mp); + } + } +#ifdef DEBUG + if (syncprt) + vfs_bufstats(); +#endif /* DEBUG */ + return (0); +} + +/* + * Change filesystem quotas. + */ +/* ARGSUSED */ +sys_quotactl(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_quotactl_args /* { + syscallarg(char *) path; + syscallarg(int) cmd; + syscallarg(int) uid; + syscallarg(caddr_t) arg; + } */ *uap = v; + register struct mount *mp; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + mp = nd.ni_vp->v_mount; + vrele(nd.ni_vp); + return (VFS_QUOTACTL(mp, SCARG(uap, cmd), SCARG(uap, uid), + SCARG(uap, arg), p)); +} + +/* + * Get filesystem statistics. + */ +/* ARGSUSED */ +sys_statfs(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_statfs_args /* { + syscallarg(char *) path; + syscallarg(struct statfs *) buf; + } */ *uap = v; + register struct mount *mp; + register struct statfs *sp; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + mp = nd.ni_vp->v_mount; + sp = &mp->mnt_stat; + vrele(nd.ni_vp); + if (error = VFS_STATFS(mp, sp, p)) + return (error); + sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; + return (copyout((caddr_t)sp, (caddr_t)SCARG(uap, buf), sizeof(*sp))); +} + +/* + * Get filesystem statistics. + */ +/* ARGSUSED */ +sys_fstatfs(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_fstatfs_args /* { + syscallarg(int) fd; + syscallarg(struct statfs *) buf; + } */ *uap = v; + struct file *fp; + struct mount *mp; + register struct statfs *sp; + int error; + + if (error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) + return (error); + mp = ((struct vnode *)fp->f_data)->v_mount; + sp = &mp->mnt_stat; + if (error = VFS_STATFS(mp, sp, p)) + return (error); + sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; + return (copyout((caddr_t)sp, (caddr_t)SCARG(uap, buf), sizeof(*sp))); +} + +/* + * Get statistics on all filesystems. + */ +sys_getfsstat(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_getfsstat_args /* { + syscallarg(struct statfs *) buf; + syscallarg(long) bufsize; + syscallarg(int) flags; + } */ *uap = v; + register struct mount *mp, *nmp; + register struct statfs *sp; + caddr_t sfsp; + long count, maxcount, error; + + maxcount = SCARG(uap, bufsize) / sizeof(struct statfs); + sfsp = (caddr_t)SCARG(uap, buf); + for (count = 0, + mp = mountlist.cqh_first; mp != (void *)&mountlist; mp = nmp) { + nmp = mp->mnt_list.cqe_next; + if (sfsp && count < maxcount && + ((mp->mnt_flag & MNT_MLOCK) == 0)) { + sp = &mp->mnt_stat; + /* + * If MNT_NOWAIT is specified, do not refresh the + * fsstat cache. MNT_WAIT overrides MNT_NOWAIT. + */ + if (((SCARG(uap, flags) & MNT_NOWAIT) == 0 || + (SCARG(uap, flags) & MNT_WAIT)) && + (error = VFS_STATFS(mp, sp, p))) + continue; + sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; + if (error = copyout((caddr_t)sp, sfsp, sizeof(*sp))) + return (error); + sfsp += sizeof(*sp); + } + count++; + } + if (sfsp && count > maxcount) + *retval = maxcount; + else + *retval = count; + return (0); +} + +/* + * Change current working directory to a given file descriptor. + */ +/* ARGSUSED */ +sys_fchdir(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_fchdir_args /* { + syscallarg(int) fd; + } */ *uap = v; + register struct filedesc *fdp = p->p_fd; + struct vnode *vp, *tdp; + struct mount *mp; + struct file *fp; + int error; + + if (error = getvnode(fdp, SCARG(uap, fd), &fp)) + return (error); + vp = (struct vnode *)fp->f_data; + VREF(vp); + VOP_LOCK(vp); + if (vp->v_type != VDIR) + error = ENOTDIR; + else + error = VOP_ACCESS(vp, VEXEC, p->p_ucred, p); + while (!error && (mp = vp->v_mountedhere) != NULL) { + if (mp->mnt_flag & MNT_MLOCK) { + mp->mnt_flag |= MNT_MWAIT; + sleep((caddr_t)mp, PVFS); + continue; + } + if (error = VFS_ROOT(mp, &tdp)) + break; + vput(vp); + vp = tdp; + } + VOP_UNLOCK(vp); + if (error) { + vrele(vp); + return (error); + } + vrele(fdp->fd_cdir); + fdp->fd_cdir = vp; + return (0); +} + +/* + * Change current working directory (``.''). + */ +/* ARGSUSED */ +sys_chdir(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_chdir_args /* { + syscallarg(char *) path; + } */ *uap = v; + register struct filedesc *fdp = p->p_fd; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if (error = change_dir(&nd, p)) + return (error); + vrele(fdp->fd_cdir); + fdp->fd_cdir = nd.ni_vp; + return (0); +} + +/* + * Change notion of root (``/'') directory. + */ +/* ARGSUSED */ +sys_chroot(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_chroot_args /* { + syscallarg(char *) path; + } */ *uap = v; + register struct filedesc *fdp = p->p_fd; + int error; + struct nameidata nd; + + if (error = suser(p->p_ucred, &p->p_acflag)) + return (error); + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if (error = change_dir(&nd, p)) + return (error); + if (fdp->fd_rdir != NULL) + vrele(fdp->fd_rdir); + fdp->fd_rdir = nd.ni_vp; + return (0); +} + +/* + * Common routine for chroot and chdir. + */ +static int +change_dir(ndp, p) + register struct nameidata *ndp; + struct proc *p; +{ + struct vnode *vp; + int error; + + if (error = namei(ndp)) + return (error); + vp = ndp->ni_vp; + if (vp->v_type != VDIR) + error = ENOTDIR; + else + error = VOP_ACCESS(vp, VEXEC, p->p_ucred, p); + VOP_UNLOCK(vp); + if (error) + vrele(vp); + return (error); +} + +/* + * Check permissions, allocate an open file structure, + * and call the device open routine if any. + */ +sys_open(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_open_args /* { + syscallarg(char *) path; + syscallarg(int) flags; + syscallarg(int) mode; + } */ *uap = v; + register struct filedesc *fdp = p->p_fd; + register struct file *fp; + register struct vnode *vp; + int flags, cmode; + struct file *nfp; + int type, indx, error; + struct flock lf; + struct nameidata nd; + extern struct fileops vnops; + + if (error = falloc(p, &nfp, &indx)) + return (error); + fp = nfp; + flags = FFLAGS(SCARG(uap, flags)); + cmode = ((SCARG(uap, mode) &~ fdp->fd_cmask) & ALLPERMS) &~ S_ISTXT; + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + p->p_dupfd = -indx - 1; /* XXX check for fdopen */ + if (error = vn_open(&nd, flags, cmode)) { + ffree(fp); + if ((error == ENODEV || error == ENXIO) && + p->p_dupfd >= 0 && /* XXX from fdopen */ + (error = + dupfdopen(fdp, indx, p->p_dupfd, flags, error)) == 0) { + *retval = indx; + return (0); + } + if (error == ERESTART) + error = EINTR; + fdp->fd_ofiles[indx] = NULL; + return (error); + } + p->p_dupfd = 0; + vp = nd.ni_vp; + fp->f_flag = flags & FMASK; + fp->f_type = DTYPE_VNODE; + fp->f_ops = &vnops; + fp->f_data = (caddr_t)vp; + if (flags & (O_EXLOCK | O_SHLOCK)) { + lf.l_whence = SEEK_SET; + lf.l_start = 0; + lf.l_len = 0; + if (flags & O_EXLOCK) + lf.l_type = F_WRLCK; + else + lf.l_type = F_RDLCK; + type = F_FLOCK; + if ((flags & FNONBLOCK) == 0) + type |= F_WAIT; + VOP_UNLOCK(vp); + if (error = VOP_ADVLOCK(vp, (caddr_t)fp, F_SETLK, &lf, type)) { + (void) vn_close(vp, fp->f_flag, fp->f_cred, p); + ffree(fp); + fdp->fd_ofiles[indx] = NULL; + return (error); + } + VOP_LOCK(vp); + fp->f_flag |= FHASLOCK; + } + VOP_UNLOCK(vp); + *retval = indx; + return (0); +} + +/* + * Create a special file. + */ +/* ARGSUSED */ +sys_mknod(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_mknod_args /* { + syscallarg(char *) path; + syscallarg(int) mode; + syscallarg(int) dev; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + int whiteout; + struct nameidata nd; + + if (error = suser(p->p_ucred, &p->p_acflag)) + return (error); + NDINIT(&nd, CREATE, LOCKPARENT, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + if (vp != NULL) + error = EEXIST; + else { + VATTR_NULL(&vattr); + vattr.va_mode = (SCARG(uap, mode) & ALLPERMS) &~ p->p_fd->fd_cmask; + vattr.va_rdev = SCARG(uap, dev); + whiteout = 0; + + switch (SCARG(uap, mode) & S_IFMT) { + case S_IFMT: /* used by badsect to flag bad sectors */ + vattr.va_type = VBAD; + break; + case S_IFCHR: + vattr.va_type = VCHR; + break; + case S_IFBLK: + vattr.va_type = VBLK; + break; + case S_IFWHT: + whiteout = 1; + break; + default: + error = EINVAL; + break; + } + } + if (!error) { + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + if (whiteout) { + error = VOP_WHITEOUT(nd.ni_dvp, &nd.ni_cnd, CREATE); + if (error) + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + vput(nd.ni_dvp); + } else { + error = VOP_MKNOD(nd.ni_dvp, &nd.ni_vp, + &nd.ni_cnd, &vattr); + } + } else { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + if (vp) + vrele(vp); + } + return (error); +} + +/* + * Create a named pipe. + */ +/* ARGSUSED */ +sys_mkfifo(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_mkfifo_args /* { + syscallarg(char *) path; + syscallarg(int) mode; + } */ *uap = v; + struct vattr vattr; + int error; + struct nameidata nd; + +#ifndef FIFO + return (EOPNOTSUPP); +#else + NDINIT(&nd, CREATE, LOCKPARENT, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + if (nd.ni_vp != NULL) { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + vrele(nd.ni_vp); + return (EEXIST); + } + VATTR_NULL(&vattr); + vattr.va_type = VFIFO; + vattr.va_mode = (SCARG(uap, mode) & ALLPERMS) &~ p->p_fd->fd_cmask; + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + return (VOP_MKNOD(nd.ni_dvp, &nd.ni_vp, &nd.ni_cnd, &vattr)); +#endif /* FIFO */ +} + +/* + * Make a hard file link. + */ +/* ARGSUSED */ +sys_link(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_link_args /* { + syscallarg(char *) path; + syscallarg(char *) link; + } */ *uap = v; + register struct vnode *vp; + struct nameidata nd; + int error; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + if (vp->v_type != VDIR || + (error = suser(p->p_ucred, &p->p_acflag)) == 0) { + nd.ni_cnd.cn_nameiop = CREATE; + nd.ni_cnd.cn_flags = LOCKPARENT; + nd.ni_dirp = SCARG(uap, link); + if ((error = namei(&nd)) == 0) { + if (nd.ni_vp != NULL) + error = EEXIST; + if (!error) { + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, + LEASE_WRITE); + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + error = VOP_LINK(nd.ni_dvp, vp, &nd.ni_cnd); + } else { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + if (nd.ni_vp) + vrele(nd.ni_vp); + } + } + } + vrele(vp); + return (error); +} + +/* + * Make a symbolic link. + */ +/* ARGSUSED */ +sys_symlink(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_symlink_args /* { + syscallarg(char *) path; + syscallarg(char *) link; + } */ *uap = v; + struct vattr vattr; + char *path; + int error; + struct nameidata nd; + + MALLOC(path, char *, MAXPATHLEN, M_NAMEI, M_WAITOK); + if (error = copyinstr(SCARG(uap, path), path, MAXPATHLEN, (size_t *)0)) + goto out; + NDINIT(&nd, CREATE, LOCKPARENT, UIO_USERSPACE, SCARG(uap, link), p); + if (error = namei(&nd)) + goto out; + if (nd.ni_vp) { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + vrele(nd.ni_vp); + error = EEXIST; + goto out; + } + VATTR_NULL(&vattr); + vattr.va_mode = ACCESSPERMS &~ p->p_fd->fd_cmask; + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + error = VOP_SYMLINK(nd.ni_dvp, &nd.ni_vp, &nd.ni_cnd, &vattr, path); +out: + FREE(path, M_NAMEI); + return (error); +} + +/* + * Delete a whiteout from the filesystem. + */ +/* ARGSUSED */ +sys_undelete(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_undelete_args /* { + syscallarg(char *) path; + } */ *uap = v; + int error; + struct nameidata nd; + + NDINIT(&nd, DELETE, LOCKPARENT|DOWHITEOUT, UIO_USERSPACE, + SCARG(uap, path), p); + error = namei(&nd); + if (error) + return (error); + + if (nd.ni_vp != NULLVP || !(nd.ni_cnd.cn_flags & ISWHITEOUT)) { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + if (nd.ni_vp) + vrele(nd.ni_vp); + return (EEXIST); + } + + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + if (error = VOP_WHITEOUT(nd.ni_dvp, &nd.ni_cnd, DELETE)) + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + vput(nd.ni_dvp); + return (error); +} + +/* + * Delete a name from the filesystem. + */ +/* ARGSUSED */ +sys_unlink(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_unlink_args /* { + syscallarg(char *) path; + } */ *uap = v; + register struct vnode *vp; + int error; + struct nameidata nd; + + NDINIT(&nd, DELETE, LOCKPARENT, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + VOP_LOCK(vp); + + if (vp->v_type != VDIR || + (error = suser(p->p_ucred, &p->p_acflag)) == 0) { + /* + * The root of a mounted filesystem cannot be deleted. + */ + if (vp->v_flag & VROOT) + error = EBUSY; + else + (void)vnode_pager_uncache(vp); + } + + if (!error) { + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + error = VOP_REMOVE(nd.ni_dvp, nd.ni_vp, &nd.ni_cnd); + } else { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + if (vp != NULLVP) + vput(vp); + } + return (error); +} + +/* + * Reposition read/write file offset. + */ +sys_lseek(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_lseek_args /* { + syscallarg(int) fd; + syscallarg(int) pad; + syscallarg(off_t) offset; + syscallarg(int) whence; + } */ *uap = v; + struct ucred *cred = p->p_ucred; + register struct filedesc *fdp = p->p_fd; + register struct file *fp; + struct vattr vattr; + int error; + + if ((u_int)SCARG(uap, fd) >= fdp->fd_nfiles || + (fp = fdp->fd_ofiles[SCARG(uap, fd)]) == NULL) + return (EBADF); + if (fp->f_type != DTYPE_VNODE) + return (ESPIPE); + switch (SCARG(uap, whence)) { + case L_INCR: + fp->f_offset += SCARG(uap, offset); + break; + case L_XTND: + if (error = + VOP_GETATTR((struct vnode *)fp->f_data, &vattr, cred, p)) + return (error); + fp->f_offset = SCARG(uap, offset) + vattr.va_size; + break; + case L_SET: + fp->f_offset = SCARG(uap, offset); + break; + default: + return (EINVAL); + } + *(off_t *)retval = fp->f_offset; + return (0); +} + +/* + * Check access permissions. + */ +sys_access(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_access_args /* { + syscallarg(char *) path; + syscallarg(int) flags; + } */ *uap = v; + register struct ucred *cred = p->p_ucred; + register struct vnode *vp; + int error, flags, t_gid, t_uid; + struct nameidata nd; + + t_uid = cred->cr_uid; + t_gid = cred->cr_gid; + cred->cr_uid = p->p_cred->p_ruid; + cred->cr_gid = p->p_cred->p_rgid; + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if (error = namei(&nd)) + goto out1; + vp = nd.ni_vp; + + /* Flags == 0 means only check for existence. */ + if (SCARG(uap, flags)) { + flags = 0; + if (SCARG(uap, flags) & R_OK) + flags |= VREAD; + if (SCARG(uap, flags) & W_OK) + flags |= VWRITE; + if (SCARG(uap, flags) & X_OK) + flags |= VEXEC; + if ((flags & VWRITE) == 0 || (error = vn_writechk(vp)) == 0) + error = VOP_ACCESS(vp, flags, cred, p); + } + vput(vp); +out1: + cred->cr_uid = t_uid; + cred->cr_gid = t_gid; + return (error); +} + +/* + * Get file status; this version follows links. + */ +/* ARGSUSED */ +sys_stat(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_stat_args /* { + syscallarg(char *) path; + syscallarg(struct stat *) ub; + } */ *uap = v; + struct stat sb; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + error = vn_stat(nd.ni_vp, &sb, p); + vput(nd.ni_vp); + if (error) + return (error); + error = copyout((caddr_t)&sb, (caddr_t)SCARG(uap, ub), sizeof (sb)); + return (error); +} + +/* + * Get file status; this version does not follow links. + */ +/* ARGSUSED */ +sys_lstat(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_lstat_args /* { + syscallarg(char *) path; + syscallarg(struct stat *) ub; + } */ *uap = v; + int error; + struct vnode *vp, *dvp; + struct stat sb, sb1; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF | LOCKPARENT, UIO_USERSPACE, + SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + /* + * For symbolic links, always return the attributes of its + * containing directory, except for mode, size, and links. + */ + vp = nd.ni_vp; + dvp = nd.ni_dvp; + if (vp->v_type != VLNK) { + if (dvp == vp) + vrele(dvp); + else + vput(dvp); + error = vn_stat(vp, &sb, p); + vput(vp); + if (error) + return (error); + } else { + error = vn_stat(dvp, &sb, p); + vput(dvp); + if (error) { + vput(vp); + return (error); + } + error = vn_stat(vp, &sb1, p); + vput(vp); + if (error) + return (error); + sb.st_mode &= ~S_IFDIR; + sb.st_mode |= S_IFLNK; + sb.st_nlink = sb1.st_nlink; + sb.st_size = sb1.st_size; + sb.st_blocks = sb1.st_blocks; + } + error = copyout((caddr_t)&sb, (caddr_t)SCARG(uap, ub), sizeof (sb)); + return (error); +} + +/* + * Get configurable pathname variables. + */ +/* ARGSUSED */ +sys_pathconf(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_pathconf_args /* { + syscallarg(char *) path; + syscallarg(int) name; + } */ *uap = v; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + error = VOP_PATHCONF(nd.ni_vp, SCARG(uap, name), retval); + vput(nd.ni_vp); + return (error); +} + +/* + * Return target name of a symbolic link. + */ +/* ARGSUSED */ +sys_readlink(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_readlink_args /* { + syscallarg(char *) path; + syscallarg(char *) buf; + syscallarg(int) count; + } */ *uap = v; + register struct vnode *vp; + struct iovec aiov; + struct uio auio; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + if (vp->v_type != VLNK) + error = EINVAL; + else { + aiov.iov_base = SCARG(uap, buf); + aiov.iov_len = SCARG(uap, count); + auio.uio_iov = &aiov; + auio.uio_iovcnt = 1; + auio.uio_offset = 0; + auio.uio_rw = UIO_READ; + auio.uio_segflg = UIO_USERSPACE; + auio.uio_procp = p; + auio.uio_resid = SCARG(uap, count); + error = VOP_READLINK(vp, &auio, p->p_ucred); + } + vput(vp); + *retval = SCARG(uap, count) - auio.uio_resid; + return (error); +} + +/* + * Change flags of a file given a path name. + */ +/* ARGSUSED */ +sys_chflags(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_chflags_args /* { + syscallarg(char *) path; + syscallarg(int) flags; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + VOP_LOCK(vp); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + VATTR_NULL(&vattr); + vattr.va_flags = SCARG(uap, flags); + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + vput(vp); + return (error); +} + +/* + * Change flags of a file given a file descriptor. + */ +/* ARGSUSED */ +sys_fchflags(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_fchflags_args /* { + syscallarg(int) fd; + syscallarg(int) flags; + } */ *uap = v; + struct vattr vattr; + struct vnode *vp; + struct file *fp; + int error; + + if (error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) + return (error); + vp = (struct vnode *)fp->f_data; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + VOP_LOCK(vp); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + VATTR_NULL(&vattr); + vattr.va_flags = SCARG(uap, flags); + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + VOP_UNLOCK(vp); + return (error); +} + +/* + * Change mode of a file given path name. + */ +/* ARGSUSED */ +sys_chmod(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_chmod_args /* { + syscallarg(char *) path; + syscallarg(int) mode; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + VOP_LOCK(vp); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + VATTR_NULL(&vattr); + vattr.va_mode = SCARG(uap, mode) & ALLPERMS; + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + vput(vp); + return (error); +} + +/* + * Change mode of a file given a file descriptor. + */ +/* ARGSUSED */ +sys_fchmod(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_fchmod_args /* { + syscallarg(int) fd; + syscallarg(int) mode; + } */ *uap = v; + struct vattr vattr; + struct vnode *vp; + struct file *fp; + int error; + + if (error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) + return (error); + vp = (struct vnode *)fp->f_data; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + VOP_LOCK(vp); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + VATTR_NULL(&vattr); + vattr.va_mode = SCARG(uap, mode) & ALLPERMS; + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + VOP_UNLOCK(vp); + return (error); +} + +/* + * Set ownership given a path name. + */ +/* ARGSUSED */ +sys_chown(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_chown_args /* { + syscallarg(char *) path; + syscallarg(int) uid; + syscallarg(int) gid; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + VOP_LOCK(vp); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + VATTR_NULL(&vattr); + vattr.va_uid = SCARG(uap, uid); + vattr.va_gid = SCARG(uap, gid); + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + vput(vp); + return (error); +} + +/* + * Set ownership given a file descriptor. + */ +/* ARGSUSED */ +sys_fchown(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_fchown_args /* { + syscallarg(int) fd; + syscallarg(int) uid; + syscallarg(int) gid; + } */ *uap = v; + struct vattr vattr; + struct vnode *vp; + struct file *fp; + int error; + + if (error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) + return (error); + vp = (struct vnode *)fp->f_data; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + VOP_LOCK(vp); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + VATTR_NULL(&vattr); + vattr.va_uid = SCARG(uap, uid); + vattr.va_gid = SCARG(uap, gid); + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + VOP_UNLOCK(vp); + return (error); +} + +/* + * Set the access and modification times of a file. + */ +/* ARGSUSED */ +sys_utimes(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_utimes_args /* { + syscallarg(char *) path; + syscallarg(struct timeval *) tptr; + } */ *uap = v; + register struct vnode *vp; + struct timeval tv[2]; + struct vattr vattr; + int error; + struct nameidata nd; + + VATTR_NULL(&vattr); + if (SCARG(uap, tptr) == NULL) { + microtime(&tv[0]); + tv[1] = tv[0]; + vattr.va_vaflags |= VA_UTIMES_NULL; + } else if (error = copyin((caddr_t)SCARG(uap, tptr), (caddr_t)tv, + sizeof (tv))) + return (error); + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + VOP_LOCK(vp); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + vattr.va_atime.ts_sec = tv[0].tv_sec; + vattr.va_atime.ts_nsec = tv[0].tv_usec * 1000; + vattr.va_mtime.ts_sec = tv[1].tv_sec; + vattr.va_mtime.ts_nsec = tv[1].tv_usec * 1000; + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + vput(vp); + return (error); +} + +/* + * Truncate a file given its path name. + */ +/* ARGSUSED */ +sys_truncate(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_truncate_args /* { + syscallarg(char *) path; + syscallarg(int) pad; + syscallarg(off_t) length; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + VOP_LOCK(vp); + if (vp->v_type == VDIR) + error = EISDIR; + else if ((error = vn_writechk(vp)) == 0 && + (error = VOP_ACCESS(vp, VWRITE, p->p_ucred, p)) == 0) { + VATTR_NULL(&vattr); + vattr.va_size = SCARG(uap, length); + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + vput(vp); + return (error); +} + +/* + * Truncate a file given a file descriptor. + */ +/* ARGSUSED */ +sys_ftruncate(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_ftruncate_args /* { + syscallarg(int) fd; + syscallarg(int) pad; + syscallarg(off_t) length; + } */ *uap = v; + struct vattr vattr; + struct vnode *vp; + struct file *fp; + int error; + + if (error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) + return (error); + if ((fp->f_flag & FWRITE) == 0) + return (EINVAL); + vp = (struct vnode *)fp->f_data; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + VOP_LOCK(vp); + if (vp->v_type == VDIR) + error = EISDIR; + else if ((error = vn_writechk(vp)) == 0) { + VATTR_NULL(&vattr); + vattr.va_size = SCARG(uap, length); + error = VOP_SETATTR(vp, &vattr, fp->f_cred, p); + } + VOP_UNLOCK(vp); + return (error); +} + +/* + * Sync an open file. + */ +/* ARGSUSED */ +sys_fsync(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_fsync_args /* { + syscallarg(int) fd; + } */ *uap = v; + register struct vnode *vp; + struct file *fp; + int error; + + if (error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) + return (error); + vp = (struct vnode *)fp->f_data; + VOP_LOCK(vp); + error = VOP_FSYNC(vp, fp->f_cred, MNT_WAIT, p); + VOP_UNLOCK(vp); + return (error); +} + +/* + * Rename files. Source and destination must either both be directories, + * or both not be directories. If target is a directory, it must be empty. + */ +/* ARGSUSED */ +sys_rename(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_rename_args /* { + syscallarg(char *) from; + syscallarg(char *) to; + } */ *uap = v; + register struct vnode *tvp, *fvp, *tdvp; + struct nameidata fromnd, tond; + int error; + + NDINIT(&fromnd, DELETE, WANTPARENT | SAVESTART, UIO_USERSPACE, + SCARG(uap, from), p); + if (error = namei(&fromnd)) + return (error); + fvp = fromnd.ni_vp; + NDINIT(&tond, RENAME, LOCKPARENT | LOCKLEAF | NOCACHE | SAVESTART, + UIO_USERSPACE, SCARG(uap, to), p); + if (error = namei(&tond)) { + VOP_ABORTOP(fromnd.ni_dvp, &fromnd.ni_cnd); + vrele(fromnd.ni_dvp); + vrele(fvp); + goto out1; + } + tdvp = tond.ni_dvp; + tvp = tond.ni_vp; + if (tvp != NULL) { + if (fvp->v_type == VDIR && tvp->v_type != VDIR) { + error = ENOTDIR; + goto out; + } else if (fvp->v_type != VDIR && tvp->v_type == VDIR) { + error = EISDIR; + goto out; + } + } + if (fvp == tdvp) + error = EINVAL; + /* + * If source is the same as the destination (that is the + * same inode number with the same name in the same directory), + * then there is nothing to do. + */ + if (fvp == tvp && fromnd.ni_dvp == tdvp && + fromnd.ni_cnd.cn_namelen == tond.ni_cnd.cn_namelen && + !bcmp(fromnd.ni_cnd.cn_nameptr, tond.ni_cnd.cn_nameptr, + fromnd.ni_cnd.cn_namelen)) + error = -1; +out: + if (!error) { + VOP_LEASE(tdvp, p, p->p_ucred, LEASE_WRITE); + if (fromnd.ni_dvp != tdvp) + VOP_LEASE(fromnd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + if (tvp) + VOP_LEASE(tvp, p, p->p_ucred, LEASE_WRITE); + error = VOP_RENAME(fromnd.ni_dvp, fromnd.ni_vp, &fromnd.ni_cnd, + tond.ni_dvp, tond.ni_vp, &tond.ni_cnd); + } else { + VOP_ABORTOP(tond.ni_dvp, &tond.ni_cnd); + if (tdvp == tvp) + vrele(tdvp); + else + vput(tdvp); + if (tvp) + vput(tvp); + VOP_ABORTOP(fromnd.ni_dvp, &fromnd.ni_cnd); + vrele(fromnd.ni_dvp); + vrele(fvp); + } + vrele(tond.ni_startdir); + FREE(tond.ni_cnd.cn_pnbuf, M_NAMEI); +out1: + if (fromnd.ni_startdir) + vrele(fromnd.ni_startdir); + FREE(fromnd.ni_cnd.cn_pnbuf, M_NAMEI); + if (error == -1) + return (0); + return (error); +} + +/* + * Make a directory file. + */ +/* ARGSUSED */ +sys_mkdir(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_mkdir_args /* { + syscallarg(char *) path; + syscallarg(int) mode; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + + NDINIT(&nd, CREATE, LOCKPARENT, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + if (vp != NULL) { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + vrele(vp); + return (EEXIST); + } + VATTR_NULL(&vattr); + vattr.va_type = VDIR; + vattr.va_mode = (SCARG(uap, mode) & ACCESSPERMS) &~ p->p_fd->fd_cmask; + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + error = VOP_MKDIR(nd.ni_dvp, &nd.ni_vp, &nd.ni_cnd, &vattr); + if (!error) + vput(nd.ni_vp); + return (error); +} + +/* + * Remove a directory file. + */ +/* ARGSUSED */ +sys_rmdir(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_rmdir_args /* { + syscallarg(char *) path; + } */ *uap = v; + register struct vnode *vp; + int error; + struct nameidata nd; + + NDINIT(&nd, DELETE, LOCKPARENT | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + if (vp->v_type != VDIR) { + error = ENOTDIR; + goto out; + } + /* + * No rmdir "." please. + */ + if (nd.ni_dvp == vp) { + error = EINVAL; + goto out; + } + /* + * The root of a mounted filesystem cannot be deleted. + */ + if (vp->v_flag & VROOT) + error = EBUSY; +out: + if (!error) { + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + error = VOP_RMDIR(nd.ni_dvp, nd.ni_vp, &nd.ni_cnd); + } else { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + vput(vp); + } + return (error); +} + +/* + * Read a block of directory entries in a file system independent format. + */ +sys_getdirentries(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_getdirentries_args /* { + syscallarg(int) fd; + syscallarg(char *) buf; + syscallarg(u_int) count; + syscallarg(long *) basep; + } */ *uap = v; + register struct vnode *vp; + struct file *fp; + struct uio auio; + struct iovec aiov; + long loff; + int error, eofflag; + + if (error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) + return (error); + if ((fp->f_flag & FREAD) == 0) + return (EBADF); + vp = (struct vnode *)fp->f_data; +unionread: + if (vp->v_type != VDIR) + return (EINVAL); + aiov.iov_base = SCARG(uap, buf); + aiov.iov_len = SCARG(uap, count); + auio.uio_iov = &aiov; + auio.uio_iovcnt = 1; + auio.uio_rw = UIO_READ; + auio.uio_segflg = UIO_USERSPACE; + auio.uio_procp = p; + auio.uio_resid = SCARG(uap, count); + VOP_LOCK(vp); + loff = auio.uio_offset = fp->f_offset; + error = VOP_READDIR(vp, &auio, fp->f_cred, &eofflag, (u_long *)0, 0); + fp->f_offset = auio.uio_offset; + VOP_UNLOCK(vp); + if (error) + return (error); + +#ifdef UNION +{ + extern int (**union_vnodeop_p)(); + extern struct vnode *union_dircache __P((struct vnode *)); + + if ((SCARG(uap, count) == auio.uio_resid) && + (vp->v_op == union_vnodeop_p)) { + struct vnode *lvp; + + lvp = union_dircache(vp); + if (lvp != NULLVP) { + struct vattr va; + + /* + * If the directory is opaque, + * then don't show lower entries + */ + error = VOP_GETATTR(vp, &va, fp->f_cred, p); + if (va.va_flags & OPAQUE) { + vput(lvp); + lvp = NULL; + } + } + + if (lvp != NULLVP) { + error = VOP_OPEN(lvp, FREAD, fp->f_cred, p); + VOP_UNLOCK(lvp); + + if (error) { + vrele(lvp); + return (error); + } + fp->f_data = (caddr_t) lvp; + fp->f_offset = 0; + error = vn_close(vp, FREAD, fp->f_cred, p); + if (error) + return (error); + vp = lvp; + goto unionread; + } + } +} +#endif /* UNION */ + + if ((SCARG(uap, count) == auio.uio_resid) && + (vp->v_flag & VROOT) && + (vp->v_mount->mnt_flag & MNT_UNION)) { + struct vnode *tvp = vp; + vp = vp->v_mount->mnt_vnodecovered; + VREF(vp); + fp->f_data = (caddr_t) vp; + fp->f_offset = 0; + vrele(tvp); + goto unionread; + } + error = copyout((caddr_t)&loff, (caddr_t)SCARG(uap, basep), + sizeof(long)); + *retval = SCARG(uap, count) - auio.uio_resid; + return (error); +} + +/* + * Set the mode mask for creation of filesystem nodes. + */ +int +sys_umask(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_umask_args /* { + syscallarg(int) newmask; + } */ *uap = v; + register struct filedesc *fdp; + + fdp = p->p_fd; + *retval = fdp->fd_cmask; + fdp->fd_cmask = SCARG(uap, newmask) & ALLPERMS; + return (0); +} + +/* + * Void all references to file by ripping underlying filesystem + * away from vnode. + */ +/* ARGSUSED */ +sys_revoke(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_revoke_args /* { + syscallarg(char *) path; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if (error = namei(&nd)) + return (error); + vp = nd.ni_vp; + if (vp->v_type != VCHR && vp->v_type != VBLK) { + error = EINVAL; + goto out; + } + if (error = VOP_GETATTR(vp, &vattr, p->p_ucred, p)) + goto out; + if (p->p_ucred->cr_uid != vattr.va_uid && + (error = suser(p->p_ucred, &p->p_acflag))) + goto out; + if (vp->v_usecount > 1 || (vp->v_flag & VALIASED)) + vgoneall(vp); +out: + vrele(vp); + return (error); +} + +/* + * Convert a user file descriptor to a kernel file entry. + */ +getvnode(fdp, fd, fpp) + struct filedesc *fdp; + struct file **fpp; + int fd; +{ + struct file *fp; + + if ((u_int)fd >= fdp->fd_nfiles || + (fp = fdp->fd_ofiles[fd]) == NULL) + return (EBADF); + if (fp->f_type != DTYPE_VNODE) + return (EINVAL); + *fpp = fp; + return (0); +} diff --git a/src/regress/usr.bin/diff/t9.2 b/src/regress/usr.bin/diff/t9.2 new file mode 100644 index 000000000..caec40937 --- /dev/null +++ b/src/regress/usr.bin/diff/t9.2 @@ -0,0 +1,3225 @@ +/* $OpenBSD: t9.2,v 1.1 2003/07/17 21:04:04 otto Exp $ */ +/* $NetBSD: vfs_syscalls.c,v 1.71 1996/04/23 10:29:02 mycroft Exp $ */ + +/* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)vfs_syscalls.c 8.28 (Berkeley) 12/10/94 + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +extern int suid_clear; +int usermount = 0; /* sysctl: by default, users may not mount */ + +static int change_dir(struct nameidata *, struct proc *); + +void checkdirs(struct vnode *); + +/* + * Redirection info so we don't have to include the union fs routines in + * the kernel directly. This way, we can build unionfs as an LKM. The + * pointer gets filled in later, when we modload the LKM, or when the + * compiled-in unionfs code gets initialized. For now, we just set + * it to a stub routine. + */ + +int (*union_check_p)(struct proc *, struct vnode **, + struct file *, struct uio, int *) = NULL; + +/* + * Virtual File System System Calls + */ + +/* + * Mount a file system. + */ +/* ARGSUSED */ +int +sys_mount(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_mount_args /* { + syscallarg(char *) type; + syscallarg(char *) path; + syscallarg(int) flags; + syscallarg(void *) data; + } */ *uap = v; + register struct vnode *vp; + register struct mount *mp; + int error, flag = 0; +#ifdef COMPAT_43 + u_long fstypenum = 0; +#endif + char fstypename[MFSNAMELEN]; + char fspath[MNAMELEN]; + struct vattr va; + struct nameidata nd; + struct vfsconf *vfsp; + struct timeval tv; + + if (usermount == 0 && (error = suser(p->p_ucred, &p->p_acflag))) + return (error); + + /* + * Mount points must fit in MNAMELEN, not MAXPATHLEN. + */ + error = copyinstr(SCARG(uap, path), fspath, MNAMELEN, NULL); + if (error) + return(error); + + /* + * Get vnode to be covered + */ + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_SYSSPACE, fspath, p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + if (SCARG(uap, flags) & MNT_UPDATE) { + if ((vp->v_flag & VROOT) == 0) { + vput(vp); + return (EINVAL); + } + mp = vp->v_mount; + flag = mp->mnt_flag; + /* + * We only allow the filesystem to be reloaded if it + * is currently mounted read-only. + */ + if ((SCARG(uap, flags) & MNT_RELOAD) && + ((mp->mnt_flag & MNT_RDONLY) == 0)) { + vput(vp); + return (EOPNOTSUPP); /* Needs translation */ + } + mp->mnt_flag |= + SCARG(uap, flags) & (MNT_RELOAD | MNT_UPDATE); + /* + * Only root, or the user that did the original mount is + * permitted to update it. + */ + if (mp->mnt_stat.f_owner != p->p_ucred->cr_uid && + (error = suser(p->p_ucred, &p->p_acflag))) { + vput(vp); + return (error); + } + /* + * Do not allow NFS export by non-root users. Silently + * enforce MNT_NOSUID and MNT_NODEV for non-root users. + */ + if (p->p_ucred->cr_uid != 0) { + if (SCARG(uap, flags) & MNT_EXPORTED) { + vput(vp); + return (EPERM); + } + SCARG(uap, flags) |= MNT_NOSUID | MNT_NODEV; + } + if ((error = vfs_busy(mp, LK_NOWAIT, 0, p)) != 0) { + vput(vp); + return (error); + } + VOP_UNLOCK(vp, 0, p); + goto update; + } + /* + * If the user is not root, ensure that they own the directory + * onto which we are attempting to mount. + */ + if ((error = VOP_GETATTR(vp, &va, p->p_ucred, p)) || + (va.va_uid != p->p_ucred->cr_uid && + (error = suser(p->p_ucred, &p->p_acflag)))) { + vput(vp); + return (error); + } + /* + * Do not allow NFS export by non-root users. Silently + * enforce MNT_NOSUID and MNT_NODEV for non-root users. + */ + if (p->p_ucred->cr_uid != 0) { + if (SCARG(uap, flags) & MNT_EXPORTED) { + vput(vp); + return (EPERM); + } + SCARG(uap, flags) |= MNT_NOSUID | MNT_NODEV; + } + if ((error = vinvalbuf(vp, V_SAVE, p->p_ucred, p, 0, 0)) != 0) + return (error); + if (vp->v_type != VDIR) { + vput(vp); + return (ENOTDIR); + } + error = copyinstr(SCARG(uap, type), fstypename, MFSNAMELEN, NULL); + if (error) { +#ifdef COMPAT_43 + /* + * Historically filesystem types were identified by number. + * If we get an integer for the filesystem type instead of a + * string, we check to see if it matches one of the historic + * filesystem types. + */ + fstypenum = (u_long)SCARG(uap, type); + + for (vfsp = vfsconf; vfsp; vfsp = vfsp->vfc_next) + if (vfsp->vfc_typenum == fstypenum) + break; + if (vfsp == NULL) { + vput(vp); + return (ENODEV); + } + strncpy(fstypename, vfsp->vfc_name, MFSNAMELEN); + +#else + vput(vp); + return (error); +#endif + } + for (vfsp = vfsconf; vfsp; vfsp = vfsp->vfc_next) { + if (!strcmp(vfsp->vfc_name, fstypename)) + break; + } + + if (vfsp == NULL) { + vput(vp); + return (EOPNOTSUPP); + } + + if (vp->v_mountedhere != NULL) { + vput(vp); + return (EBUSY); + } + + /* + * Allocate and initialize the file system. + */ + mp = (struct mount *)malloc((u_long)sizeof(struct mount), + M_MOUNT, M_WAITOK); + bzero((char *)mp, (u_long)sizeof(struct mount)); + lockinit(&mp->mnt_lock, PVFS, "vfslock", 0, 0); + /* This error never happens, but it makes auditing easier */ + if ((error = vfs_busy(mp, LK_NOWAIT, 0, p))) + return (error); + mp->mnt_op = vfsp->vfc_vfsops; + mp->mnt_vfc = vfsp; + mp->mnt_flag |= (vfsp->vfc_flags & MNT_VISFLAGMASK); + strncpy(mp->mnt_stat.f_fstypename, vfsp->vfc_name, MFSNAMELEN); + mp->mnt_vnodecovered = vp; + mp->mnt_stat.f_owner = p->p_ucred->cr_uid; +update: + /* + * Set the mount level flags. + */ + if (SCARG(uap, flags) & MNT_RDONLY) + mp->mnt_flag |= MNT_RDONLY; + else if (mp->mnt_flag & MNT_RDONLY) + mp->mnt_flag |= MNT_WANTRDWR; + mp->mnt_flag &=~ (MNT_NOSUID | MNT_NOEXEC | MNT_NODEV | + MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | MNT_SOFTDEP | + MNT_NOATIME | MNT_FORCE); + mp->mnt_flag |= SCARG(uap, flags) & (MNT_NOSUID | MNT_NOEXEC | + MNT_NODEV | MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | + MNT_SOFTDEP | MNT_NOATIME | MNT_FORCE); + /* + * Mount the filesystem. + */ + error = VFS_MOUNT(mp, SCARG(uap, path), SCARG(uap, data), &nd, p); + if (!error) { + microtime(&tv); + mp->mnt_stat.f_ctime = tv.tv_sec; + } + if (mp->mnt_flag & MNT_UPDATE) { + vrele(vp); + if (mp->mnt_flag & MNT_WANTRDWR) + mp->mnt_flag &= ~MNT_RDONLY; + mp->mnt_flag &=~ + (MNT_UPDATE | MNT_RELOAD | MNT_FORCE | MNT_WANTRDWR); + if (error) + mp->mnt_flag = flag; + + if ((mp->mnt_flag & MNT_RDONLY) == 0) { + if (mp->mnt_syncer == NULL) + error = vfs_allocate_syncvnode(mp); + } else { + if (mp->mnt_syncer != NULL) + vgone(mp->mnt_syncer); + mp->mnt_syncer = NULL; + } + + vfs_unbusy(mp, p); + return (error); + } + + vp->v_mountedhere = mp; + + /* + * Put the new filesystem on the mount list after root. + */ + cache_purge(vp); + if (!error) { + vfsp->vfc_refcount++; + simple_lock(&mountlist_slock); + CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list); + simple_unlock(&mountlist_slock); + checkdirs(vp); + VOP_UNLOCK(vp, 0, p); + if ((mp->mnt_flag & MNT_RDONLY) == 0) + error = vfs_allocate_syncvnode(mp); + vfs_unbusy(mp, p); + (void) VFS_STATFS(mp, &mp->mnt_stat, p); + if ((error = VFS_START(mp, 0, p)) != 0) + vrele(vp); + } else { + mp->mnt_vnodecovered->v_mountedhere = (struct mount *)0; + vfs_unbusy(mp, p); + free((caddr_t)mp, M_MOUNT); + vput(vp); + } + return (error); +} + +/* + * Scan all active processes to see if any of them have a current + * or root directory onto which the new filesystem has just been + * mounted. If so, replace them with the new mount point. + */ +void +checkdirs(olddp) + struct vnode *olddp; +{ + struct filedesc *fdp; + struct vnode *newdp; + struct proc *p; + + if (olddp->v_usecount == 1) + return; + if (VFS_ROOT(olddp->v_mountedhere, &newdp)) + panic("mount: lost mount"); + for (p = LIST_FIRST(&allproc); p != 0; p = LIST_NEXT(p, p_list)) { + fdp = p->p_fd; + if (fdp->fd_cdir == olddp) { + vrele(fdp->fd_cdir); + VREF(newdp); + fdp->fd_cdir = newdp; + } + if (fdp->fd_rdir == olddp) { + vrele(fdp->fd_rdir); + VREF(newdp); + fdp->fd_rdir = newdp; + } + } + if (rootvnode == olddp) { + vrele(rootvnode); + VREF(newdp); + rootvnode = newdp; + } + vput(newdp); +} + +/* + * Unmount a file system. + * + * Note: unmount takes a path to the vnode mounted on as argument, + * not special file (as before). + */ +/* ARGSUSED */ +int +sys_unmount(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_unmount_args /* { + syscallarg(char *) path; + syscallarg(int) flags; + } */ *uap = v; + register struct vnode *vp; + struct mount *mp; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + mp = vp->v_mount; + + /* + * Only root, or the user that did the original mount is + * permitted to unmount this filesystem. + */ + if ((mp->mnt_stat.f_owner != p->p_ucred->cr_uid) && + (error = suser(p->p_ucred, &p->p_acflag))) { + vput(vp); + return (error); + } + + /* + * Don't allow unmounting the root file system. + */ + if (mp->mnt_flag & MNT_ROOTFS) { + vput(vp); + return (EINVAL); + } + + /* + * Must be the root of the filesystem + */ + if ((vp->v_flag & VROOT) == 0) { + vput(vp); + return (EINVAL); + } + vput(vp); + + if (vfs_busy(mp, LK_EXCLUSIVE, NULL, p)) + return (EBUSY); + + return (dounmount(mp, SCARG(uap, flags), p, vp)); +} + +/* + * Do the actual file system unmount. + */ +int +dounmount(struct mount *mp, int flags, struct proc *p, struct vnode *olddp) +{ + struct vnode *coveredvp; + struct proc *p2; + int error; + int hadsyncer = 0; + + mp->mnt_flag &=~ MNT_ASYNC; + cache_purgevfs(mp); /* remove cache entries for this file sys */ + if (mp->mnt_syncer != NULL) { + hadsyncer = 1; + vgone(mp->mnt_syncer); + mp->mnt_syncer = NULL; + } + if (((mp->mnt_flag & MNT_RDONLY) || + (error = VFS_SYNC(mp, MNT_WAIT, p->p_ucred, p)) == 0) || + (flags & MNT_FORCE)) + error = VFS_UNMOUNT(mp, flags, p); + simple_lock(&mountlist_slock); + if (error) { + if ((mp->mnt_flag & MNT_RDONLY) == 0 && hadsyncer) + (void) vfs_allocate_syncvnode(mp); + lockmgr(&mp->mnt_lock, LK_RELEASE | LK_INTERLOCK, + &mountlist_slock, p); + return (error); + } + CIRCLEQ_REMOVE(&mountlist, mp, mnt_list); + if ((coveredvp = mp->mnt_vnodecovered) != NULLVP) { + if (olddp) { + /* + * Try to put processes back in a real directory + * after a forced unmount. + * XXX We're not holding a ref on olddp, which may + * change, so compare id numbers. + */ + LIST_FOREACH(p2, &allproc, p_list) { + struct filedesc *fdp = p2->p_fd; + if (fdp->fd_cdir && + fdp->fd_cdir->v_id == olddp->v_id) { + vrele(fdp->fd_cdir); + vref(coveredvp); + fdp->fd_cdir = coveredvp; + } + if (fdp->fd_rdir && + fdp->fd_rdir->v_id == olddp->v_id) { + vrele(fdp->fd_rdir); + vref(coveredvp); + fdp->fd_rdir = coveredvp; + } + } + } + coveredvp->v_mountedhere = NULL; + vrele(coveredvp); + } + mp->mnt_vfc->vfc_refcount--; + if (mp->mnt_vnodelist.lh_first != NULL) + panic("unmount: dangling vnode"); + lockmgr(&mp->mnt_lock, LK_RELEASE | LK_INTERLOCK, &mountlist_slock, p); + free((caddr_t)mp, M_MOUNT); + return (0); +} + +/* + * Sync each mounted filesystem. + */ +#ifdef DEBUG +int syncprt = 0; +struct ctldebug debug0 = { "syncprt", &syncprt }; +#endif + +/* ARGSUSED */ +int +sys_sync(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct mount *mp, *nmp; + int asyncflag; + + simple_lock(&mountlist_slock); + for (mp = CIRCLEQ_LAST(&mountlist); mp != CIRCLEQ_END(&mountlist); + mp = nmp) { + if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock, p)) { + nmp = CIRCLEQ_PREV(mp, mnt_list); + continue; + } + if ((mp->mnt_flag & MNT_RDONLY) == 0) { + asyncflag = mp->mnt_flag & MNT_ASYNC; + mp->mnt_flag &= ~MNT_ASYNC; + uvm_vnp_sync(mp); + VFS_SYNC(mp, MNT_NOWAIT, p->p_ucred, p); + if (asyncflag) + mp->mnt_flag |= MNT_ASYNC; + } + simple_lock(&mountlist_slock); + nmp = CIRCLEQ_PREV(mp, mnt_list); + vfs_unbusy(mp, p); + } + simple_unlock(&mountlist_slock); + +#ifdef DEBUG + if (syncprt) + vfs_bufstats(); +#endif /* DEBUG */ + return (0); +} + +/* + * Change filesystem quotas. + */ +/* ARGSUSED */ +int +sys_quotactl(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_quotactl_args /* { + syscallarg(char *) path; + syscallarg(int) cmd; + syscallarg(int) uid; + syscallarg(caddr_t) arg; + } */ *uap = v; + register struct mount *mp; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + mp = nd.ni_vp->v_mount; + vrele(nd.ni_vp); + return (VFS_QUOTACTL(mp, SCARG(uap, cmd), SCARG(uap, uid), + SCARG(uap, arg), p)); +} + +/* + * Get filesystem statistics. + */ +/* ARGSUSED */ +int +sys_statfs(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_statfs_args /* { + syscallarg(char *) path; + syscallarg(struct statfs *) buf; + } */ *uap = v; + register struct mount *mp; + register struct statfs *sp; + int error; + struct nameidata nd; + struct statfs sb; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + mp = nd.ni_vp->v_mount; + sp = &mp->mnt_stat; + vrele(nd.ni_vp); + if ((error = VFS_STATFS(mp, sp, p)) != 0) + return (error); + sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; +#if notyet + if (mp->mnt_flag & MNT_SOFTDEP) + sp->f_eflags = STATFS_SOFTUPD; +#endif + /* Don't let non-root see filesystem id (for NFS security) */ + if (suser(p->p_ucred, &p->p_acflag)) { + bcopy((caddr_t)sp, (caddr_t)&sb, sizeof(sb)); + sb.f_fsid.val[0] = sb.f_fsid.val[1] = 0; + sp = &sb; + } + return (copyout((caddr_t)sp, (caddr_t)SCARG(uap, buf), sizeof(*sp))); +} + +/* + * Get filesystem statistics. + */ +/* ARGSUSED */ +int +sys_fstatfs(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_fstatfs_args /* { + syscallarg(int) fd; + syscallarg(struct statfs *) buf; + } */ *uap = v; + struct file *fp; + struct mount *mp; + struct statfs *sp; + int error; + struct statfs sb; + + if ((error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) != 0) + return (error); + mp = ((struct vnode *)fp->f_data)->v_mount; + sp = &mp->mnt_stat; + error = VFS_STATFS(mp, sp, p); + FRELE(fp); + if (error) + return (error); + sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; +#if notyet + if (mp->mnt_flag & MNT_SOFTDEP) + sp->f_eflags = STATFS_SOFTUPD; +#endif + /* Don't let non-root see filesystem id (for NFS security) */ + if (suser(p->p_ucred, &p->p_acflag)) { + bcopy((caddr_t)sp, (caddr_t)&sb, sizeof(sb)); + sb.f_fsid.val[0] = sb.f_fsid.val[1] = 0; + sp = &sb; + } + return (copyout((caddr_t)sp, (caddr_t)SCARG(uap, buf), sizeof(*sp))); +} + +/* + * Get statistics on all filesystems. + */ +int +sys_getfsstat(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_getfsstat_args /* { + syscallarg(struct statfs *) buf; + syscallarg(size_t) bufsize; + syscallarg(int) flags; + } */ *uap = v; + register struct mount *mp, *nmp; + register struct statfs *sp; + struct statfs sb; + caddr_t sfsp; + size_t count, maxcount; + int error, flags = SCARG(uap, flags); + + maxcount = SCARG(uap, bufsize) / sizeof(struct statfs); + sfsp = (caddr_t)SCARG(uap, buf); + count = 0; + simple_lock(&mountlist_slock); + for (mp = CIRCLEQ_FIRST(&mountlist); mp != CIRCLEQ_END(&mountlist); + mp = nmp) { + if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock, p)) { + nmp = CIRCLEQ_NEXT(mp, mnt_list); + continue; + } + if (sfsp && count < maxcount) { + sp = &mp->mnt_stat; + + /* Refresh stats unless MNT_NOWAIT is specified */ + if (flags != MNT_NOWAIT && + flags != MNT_LAZY && + (flags == MNT_WAIT || + flags == 0) && + (error = VFS_STATFS(mp, sp, p))) { + simple_lock(&mountlist_slock); + nmp = CIRCLEQ_NEXT(mp, mnt_list); + vfs_unbusy(mp, p); + continue; + } + + sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; +#if notyet + if (mp->mnt_flag & MNT_SOFTDEP) + sp->f_eflags = STATFS_SOFTUPD; +#endif + if (suser(p->p_ucred, &p->p_acflag)) { + bcopy((caddr_t)sp, (caddr_t)&sb, sizeof(sb)); + sb.f_fsid.val[0] = sb.f_fsid.val[1] = 0; + sp = &sb; + } + error = copyout((caddr_t)sp, sfsp, sizeof(*sp)); + if (error) { + vfs_unbusy(mp, p); + return (error); + } + sfsp += sizeof(*sp); + } + count++; + simple_lock(&mountlist_slock); + nmp = CIRCLEQ_NEXT(mp, mnt_list); + vfs_unbusy(mp, p); + } + simple_unlock(&mountlist_slock); + if (sfsp && count > maxcount) + *retval = maxcount; + else + *retval = count; + return (0); +} + +/* + * Change current working directory to a given file descriptor. + */ +/* ARGSUSED */ +int +sys_fchdir(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_fchdir_args /* { + syscallarg(int) fd; + } */ *uap = v; + struct filedesc *fdp = p->p_fd; + struct vnode *vp, *tdp; + struct mount *mp; + struct file *fp; + int error; + + if ((error = getvnode(fdp, SCARG(uap, fd), &fp)) != 0) + return (error); + vp = (struct vnode *)fp->f_data; + VREF(vp); + FRELE(fp); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + if (vp->v_type != VDIR) + error = ENOTDIR; + else + error = VOP_ACCESS(vp, VEXEC, p->p_ucred, p); + + while (!error && (mp = vp->v_mountedhere) != NULL) { + if (vfs_busy(mp, 0, 0, p)) + continue; + error = VFS_ROOT(mp, &tdp); + vfs_unbusy(mp, p); + if (error) + break; + vput(vp); + vp = tdp; + } + if (error) { + vput(vp); + return (error); + } + VOP_UNLOCK(vp, 0, p); + vrele(fdp->fd_cdir); + fdp->fd_cdir = vp; + return (0); +} + +/* + * Change current working directory (``.''). + */ +/* ARGSUSED */ +int +sys_chdir(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_chdir_args /* { + syscallarg(char *) path; + } */ *uap = v; + register struct filedesc *fdp = p->p_fd; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if ((error = change_dir(&nd, p)) != 0) + return (error); + vrele(fdp->fd_cdir); + fdp->fd_cdir = nd.ni_vp; + return (0); +} + +/* + * Change notion of root (``/'') directory. + */ +/* ARGSUSED */ +int +sys_chroot(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_chroot_args /* { + syscallarg(char *) path; + } */ *uap = v; + register struct filedesc *fdp = p->p_fd; + int error; + struct nameidata nd; + + if ((error = suser(p->p_ucred, &p->p_acflag)) != 0) + return (error); + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if ((error = change_dir(&nd, p)) != 0) + return (error); + if (fdp->fd_rdir != NULL) { + /* + * A chroot() done inside a changed root environment does + * an automatic chdir to avoid the out-of-tree experience. + */ + vrele(fdp->fd_rdir); + vrele(fdp->fd_cdir); + VREF(nd.ni_vp); + fdp->fd_cdir = nd.ni_vp; + } + fdp->fd_rdir = nd.ni_vp; + return (0); +} + +/* + * Common routine for chroot and chdir. + */ +static int +change_dir(ndp, p) + register struct nameidata *ndp; + struct proc *p; +{ + struct vnode *vp; + int error; + + if ((error = namei(ndp)) != 0) + return (error); + vp = ndp->ni_vp; + if (vp->v_type != VDIR) + error = ENOTDIR; + else + error = VOP_ACCESS(vp, VEXEC, p->p_ucred, p); + if (error) + vput(vp); + else + VOP_UNLOCK(vp, 0, p); + return (error); +} + +/* + * Check permissions, allocate an open file structure, + * and call the device open routine if any. + */ +int +sys_open(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_open_args /* { + syscallarg(char *) path; + syscallarg(int) flags; + syscallarg(int) mode; + } */ *uap = v; + struct filedesc *fdp = p->p_fd; + struct file *fp; + struct vnode *vp; + struct vattr vattr; + int flags, cmode; + int type, indx, error, localtrunc = 0; + struct flock lf; + struct nameidata nd; + + if ((error = falloc(p, &fp, &indx)) != 0) + return (error); + + flags = FFLAGS(SCARG(uap, flags)); + cmode = ((SCARG(uap, mode) &~ fdp->fd_cmask) & ALLPERMS) &~ S_ISTXT; + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + p->p_dupfd = -indx - 1; /* XXX check for fdopen */ + if ((flags & O_TRUNC) && (flags & (O_EXLOCK | O_SHLOCK))) { + localtrunc = 1; + flags &= ~O_TRUNC; /* Must do truncate ourselves */ + } + if ((error = vn_open(&nd, flags, cmode)) != 0) { + if ((error == ENODEV || error == ENXIO) && + p->p_dupfd >= 0 && /* XXX from fdopen */ + (error = + dupfdopen(fdp, indx, p->p_dupfd, flags, error)) == 0) { + closef(fp, p); + *retval = indx; + return (0); + } + if (error == ERESTART) + error = EINTR; + fdremove(fdp, indx); + closef(fp, p); + return (error); + } + p->p_dupfd = 0; + vp = nd.ni_vp; + fp->f_flag = flags & FMASK; + fp->f_type = DTYPE_VNODE; + fp->f_ops = &vnops; + fp->f_data = (caddr_t)vp; + if (flags & (O_EXLOCK | O_SHLOCK)) { + lf.l_whence = SEEK_SET; + lf.l_start = 0; + lf.l_len = 0; + if (flags & O_EXLOCK) + lf.l_type = F_WRLCK; + else + lf.l_type = F_RDLCK; + type = F_FLOCK; + if ((flags & FNONBLOCK) == 0) + type |= F_WAIT; + VOP_UNLOCK(vp, 0, p); + error = VOP_ADVLOCK(vp, (caddr_t)fp, F_SETLK, &lf, type); + if (error) { + /* closef will vn_close the file for us. */ + fdremove(fdp, indx); + closef(fp, p); + return (error); + } + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + fp->f_flag |= FHASLOCK; + } + if (localtrunc) { + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + if ((fp->f_flag & FWRITE) == 0) + error = EACCES; + else if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else if (vp->v_type == VDIR) + error = EISDIR; + else if ((error = vn_writechk(vp)) == 0) { + VATTR_NULL(&vattr); + vattr.va_size = 0; + error = VOP_SETATTR(vp, &vattr, fp->f_cred, p); + } + if (error) { + VOP_UNLOCK(vp, 0, p); + /* closef will close the file for us. */ + fdremove(fdp, indx); + closef(fp, p); + return (error); + } + } + VOP_UNLOCK(vp, 0, p); + *retval = indx; + FILE_SET_MATURE(fp); + return (0); +} + +/* + * Get file handle system call + */ +int +sys_getfh(p, v, retval) + struct proc *p; + register void *v; + register_t *retval; +{ + register struct sys_getfh_args /* { + syscallarg(char *) fname; + syscallarg(fhandle_t *) fhp; + } */ *uap = v; + register struct vnode *vp; + fhandle_t fh; + int error; + struct nameidata nd; + + /* + * Must be super user + */ + error = suser(p->p_ucred, &p->p_acflag); + if (error) + return (error); + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, fname), p); + error = namei(&nd); + if (error) + return (error); + vp = nd.ni_vp; + bzero((caddr_t)&fh, sizeof(fh)); + fh.fh_fsid = vp->v_mount->mnt_stat.f_fsid; + error = VFS_VPTOFH(vp, &fh.fh_fid); + vput(vp); + if (error) + return (error); + error = copyout((caddr_t)&fh, (caddr_t)SCARG(uap, fhp), sizeof (fh)); + return (error); +} + +/* + * Open a file given a file handle. + * + * Check permissions, allocate an open file structure, + * and call the device open routine if any. + */ +int +sys_fhopen(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_fhopen_args /* { + syscallarg(const fhandle_t *) fhp; + syscallarg(int) flags; + } */ *uap = v; + struct filedesc *fdp = p->p_fd; + struct file *fp; + struct vnode *vp = NULL; + struct mount *mp; + struct ucred *cred = p->p_ucred; + int flags; + int type, indx, error=0; + struct flock lf; + struct vattr va; + fhandle_t fh; + + /* + * Must be super user + */ + if ((error = suser(p->p_ucred, &p->p_acflag))) + return (error); + + flags = FFLAGS(SCARG(uap, flags)); + if ((flags & (FREAD | FWRITE)) == 0) + return (EINVAL); + if ((flags & O_CREAT)) + return (EINVAL); + + if ((error = falloc(p, &fp, &indx)) != 0) + return (error); + + if ((error = copyin(SCARG(uap, fhp), &fh, sizeof(fhandle_t))) != 0) + goto bad; + + if ((mp = vfs_getvfs(&fh.fh_fsid)) == NULL) { + error = ESTALE; + goto bad; + } + + if ((error = VFS_FHTOVP(mp, &fh.fh_fid, &vp)) != 0) { + vp = NULL; /* most likely unnecessary sanity for bad: */ + goto bad; + } + + /* Now do an effective vn_open */ + + if (vp->v_type == VSOCK) { + error = EOPNOTSUPP; + goto bad; + } + if (flags & FREAD) { + if ((error = VOP_ACCESS(vp, VREAD, cred, p)) != 0) + goto bad; + } + if (flags & (FWRITE | O_TRUNC)) { + if (vp->v_type == VDIR) { + error = EISDIR; + goto bad; + } + if ((error = vn_writechk(vp)) != 0 || + (error = VOP_ACCESS(vp, VWRITE, cred, p)) != 0) + goto bad; + } + if (flags & O_TRUNC) { + VOP_UNLOCK(vp, 0, p); /* XXX */ + VOP_LEASE(vp, p, cred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); /* XXX */ + VATTR_NULL(&va); + va.va_size = 0; + if ((error = VOP_SETATTR(vp, &va, cred, p)) != 0) + goto bad; + } + if ((error = VOP_OPEN(vp, flags, cred, p)) != 0) + goto bad; + if (flags & FWRITE) + vp->v_writecount++; + + /* done with modified vn_open, now finish what sys_open does. */ + + fp->f_flag = flags & FMASK; + fp->f_type = DTYPE_VNODE; + fp->f_ops = &vnops; + fp->f_data = (caddr_t)vp; + if (flags & (O_EXLOCK | O_SHLOCK)) { + lf.l_whence = SEEK_SET; + lf.l_start = 0; + lf.l_len = 0; + if (flags & O_EXLOCK) + lf.l_type = F_WRLCK; + else + lf.l_type = F_RDLCK; + type = F_FLOCK; + if ((flags & FNONBLOCK) == 0) + type |= F_WAIT; + VOP_UNLOCK(vp, 0, p); + error = VOP_ADVLOCK(vp, (caddr_t)fp, F_SETLK, &lf, type); + if (error) { + /* closef will vn_close the file for us. */ + fdremove(fdp, indx); + closef(fp, p); + return (error); + } + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + fp->f_flag |= FHASLOCK; + } + VOP_UNLOCK(vp, 0, p); + *retval = indx; + FILE_SET_MATURE(fp); + return (0); + +bad: + fdremove(fdp, indx); + closef(fp, p); + if (vp != NULL) + vput(vp); + return (error); +} + +/* ARGSUSED */ +int +sys_fhstat(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_fhstat_args /* { + syscallarg(const fhandle_t *) fhp; + syscallarg(struct stat *) sb; + } */ *uap = v; + struct stat sb; + int error; + fhandle_t fh; + struct mount *mp; + struct vnode *vp; + + /* + * Must be super user + */ + if ((error = suser(p->p_ucred, &p->p_acflag))) + return (error); + + if ((error = copyin(SCARG(uap, fhp), &fh, sizeof(fhandle_t))) != 0) + return (error); + + if ((mp = vfs_getvfs(&fh.fh_fsid)) == NULL) + return (ESTALE); + if ((error = VFS_FHTOVP(mp, &fh.fh_fid, &vp))) + return (error); + error = vn_stat(vp, &sb, p); + vput(vp); + if (error) + return (error); + error = copyout(&sb, SCARG(uap, sb), sizeof(sb)); + return (error); +} + +/* ARGSUSED */ +int +sys_fhstatfs(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_fhstatfs_args /* + syscallarg(const fhandle_t *) fhp; + syscallarg(struct statfs *) buf; + } */ *uap = v; + struct statfs sp; + fhandle_t fh; + struct mount *mp; + struct vnode *vp; + int error; + + /* + * Must be super user + */ + if ((error = suser(p->p_ucred, &p->p_acflag))) + return (error); + + if ((error = copyin(SCARG(uap, fhp), &fh, sizeof(fhandle_t))) != 0) + return (error); + + if ((mp = vfs_getvfs(&fh.fh_fsid)) == NULL) + return (ESTALE); + if ((error = VFS_FHTOVP(mp, &fh.fh_fid, &vp))) + return (error); + mp = vp->v_mount; + vput(vp); + if ((error = VFS_STATFS(mp, &sp, p)) != 0) + return (error); + sp.f_flags = mp->mnt_flag & MNT_VISFLAGMASK; + return (copyout(&sp, SCARG(uap, buf), sizeof(sp))); +} + +/* + * Create a special file. + */ +/* ARGSUSED */ +int +sys_mknod(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_mknod_args /* { + syscallarg(char *) path; + syscallarg(int) mode; + syscallarg(int) dev; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + int whiteout = 0; + struct nameidata nd; + + if ((error = suser(p->p_ucred, &p->p_acflag)) != 0) + return (error); + if (p->p_fd->fd_rdir) + return (EINVAL); + NDINIT(&nd, CREATE, LOCKPARENT, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + if (vp != NULL) + error = EEXIST; + else { + VATTR_NULL(&vattr); + vattr.va_mode = (SCARG(uap, mode) & ALLPERMS) &~ p->p_fd->fd_cmask; + vattr.va_rdev = SCARG(uap, dev); + whiteout = 0; + + switch (SCARG(uap, mode) & S_IFMT) { + case S_IFMT: /* used by badsect to flag bad sectors */ + vattr.va_type = VBAD; + break; + case S_IFCHR: + vattr.va_type = VCHR; + break; + case S_IFBLK: + vattr.va_type = VBLK; + break; + case S_IFWHT: + whiteout = 1; + break; + default: + error = EINVAL; + break; + } + } + if (!error) { + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + if (whiteout) { + error = VOP_WHITEOUT(nd.ni_dvp, &nd.ni_cnd, CREATE); + if (error) + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + vput(nd.ni_dvp); + } else { + error = VOP_MKNOD(nd.ni_dvp, &nd.ni_vp, + &nd.ni_cnd, &vattr); + } + } else { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + if (vp) + vrele(vp); + } + return (error); +} + +/* + * Create a named pipe. + */ +/* ARGSUSED */ +int +sys_mkfifo(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ +#ifndef FIFO + return (EOPNOTSUPP); +#else + register struct sys_mkfifo_args /* { + syscallarg(char *) path; + syscallarg(int) mode; + } */ *uap = v; + struct vattr vattr; + int error; + struct nameidata nd; + + NDINIT(&nd, CREATE, LOCKPARENT, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + if (nd.ni_vp != NULL) { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + vrele(nd.ni_vp); + return (EEXIST); + } + VATTR_NULL(&vattr); + vattr.va_type = VFIFO; + vattr.va_mode = (SCARG(uap, mode) & ALLPERMS) &~ p->p_fd->fd_cmask; + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + return (VOP_MKNOD(nd.ni_dvp, &nd.ni_vp, &nd.ni_cnd, &vattr)); +#endif /* FIFO */ +} + +/* + * Make a hard file link. + */ +/* ARGSUSED */ +int +sys_link(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_link_args /* { + syscallarg(char *) path; + syscallarg(char *) link; + } */ *uap = v; + register struct vnode *vp; + struct nameidata nd; + int error; + int flags; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + + flags = LOCKPARENT; + if (vp->v_type == VDIR) { + flags |= STRIPSLASHES; + } + + NDINIT(&nd, CREATE, flags, UIO_USERSPACE, SCARG(uap, link), p); + if ((error = namei(&nd)) != 0) + goto out; + if (nd.ni_vp) { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + vrele(nd.ni_vp); + error = EEXIST; + goto out; + } + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + error = VOP_LINK(nd.ni_dvp, vp, &nd.ni_cnd); +out: + vrele(vp); + return (error); +} + +/* + * Make a symbolic link. + */ +/* ARGSUSED */ +int +sys_symlink(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_symlink_args /* { + syscallarg(char *) path; + syscallarg(char *) link; + } */ *uap = v; + struct vattr vattr; + char *path; + int error; + struct nameidata nd; + + MALLOC(path, char *, MAXPATHLEN, M_NAMEI, M_WAITOK); + error = copyinstr(SCARG(uap, path), path, MAXPATHLEN, NULL); + if (error) + goto out; + NDINIT(&nd, CREATE, LOCKPARENT, UIO_USERSPACE, SCARG(uap, link), p); + if ((error = namei(&nd)) != 0) + goto out; + if (nd.ni_vp) { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + vrele(nd.ni_vp); + error = EEXIST; + goto out; + } + VATTR_NULL(&vattr); + vattr.va_mode = ACCESSPERMS &~ p->p_fd->fd_cmask; + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + error = VOP_SYMLINK(nd.ni_dvp, &nd.ni_vp, &nd.ni_cnd, &vattr, path); +out: + FREE(path, M_NAMEI); + return (error); +} + +/* + * Delete a whiteout from the filesystem. + */ +/* ARGSUSED */ +int +sys_undelete(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_undelete_args /* { + syscallarg(char *) path; + } */ *uap = v; + int error; + struct nameidata nd; + + NDINIT(&nd, DELETE, LOCKPARENT|DOWHITEOUT, UIO_USERSPACE, + SCARG(uap, path), p); + error = namei(&nd); + if (error) + return (error); + + if (nd.ni_vp != NULLVP || !(nd.ni_cnd.cn_flags & ISWHITEOUT)) { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + if (nd.ni_vp) + vrele(nd.ni_vp); + return (EEXIST); + } + + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + if ((error = VOP_WHITEOUT(nd.ni_dvp, &nd.ni_cnd, DELETE)) != 0) + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + vput(nd.ni_dvp); + return (error); +} + +/* + * Delete a name from the filesystem. + */ +/* ARGSUSED */ +int +sys_unlink(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_unlink_args /* { + syscallarg(char *) path; + } */ *uap = v; + register struct vnode *vp; + int error; + struct nameidata nd; + + NDINIT(&nd, DELETE, LOCKPARENT | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + + /* + * The root of a mounted filesystem cannot be deleted. + */ + if (vp->v_flag & VROOT) { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + vput(vp); + error = EBUSY; + goto out; + } + + (void)uvm_vnp_uncache(vp); + + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + error = VOP_REMOVE(nd.ni_dvp, nd.ni_vp, &nd.ni_cnd); +out: + return (error); +} + +/* + * Reposition read/write file offset. + */ +int +sys_lseek(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_lseek_args /* { + syscallarg(int) fd; + syscallarg(int) pad; + syscallarg(off_t) offset; + syscallarg(int) whence; + } */ *uap = v; + struct ucred *cred = p->p_ucred; + register struct filedesc *fdp = p->p_fd; + register struct file *fp; + struct vattr vattr; + struct vnode *vp; + int error, special; + + if ((fp = fd_getfile(fdp, SCARG(uap, fd))) == NULL) + return (EBADF); + if (fp->f_type != DTYPE_VNODE) + return (ESPIPE); + vp = (struct vnode *)fp->f_data; + if (vp->v_type == VFIFO) + return (ESPIPE); + if (vp->v_type == VCHR) + special = 1; + else + special = 0; + switch (SCARG(uap, whence)) { + case SEEK_CUR: + if (!special && fp->f_offset + SCARG(uap, offset) < 0) + return (EINVAL); + fp->f_offset += SCARG(uap, offset); + break; + case SEEK_END: + error = VOP_GETATTR((struct vnode *)fp->f_data, &vattr, + cred, p); + if (error) + return (error); + if (!special && (off_t)vattr.va_size + SCARG(uap, offset) < 0) + return (EINVAL); + fp->f_offset = SCARG(uap, offset) + vattr.va_size; + break; + case SEEK_SET: + if (!special && SCARG(uap, offset) < 0) + return (EINVAL); + fp->f_offset = SCARG(uap, offset); + break; + default: + return (EINVAL); + } + *(off_t *)retval = fp->f_offset; + return (0); +} + +/* + * Check access permissions. + */ +int +sys_access(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_access_args /* { + syscallarg(char *) path; + syscallarg(int) flags; + } */ *uap = v; + register struct ucred *cred = p->p_ucred; + register struct vnode *vp; + int error, flags, t_gid, t_uid; + struct nameidata nd; + + if (SCARG(uap, flags) & ~(R_OK | W_OK | X_OK)) + return (EINVAL); + t_uid = cred->cr_uid; + t_gid = cred->cr_gid; + cred->cr_uid = p->p_cred->p_ruid; + cred->cr_gid = p->p_cred->p_rgid; + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + goto out1; + vp = nd.ni_vp; + + /* Flags == 0 means only check for existence. */ + if (SCARG(uap, flags)) { + flags = 0; + if (SCARG(uap, flags) & R_OK) + flags |= VREAD; + if (SCARG(uap, flags) & W_OK) + flags |= VWRITE; + if (SCARG(uap, flags) & X_OK) + flags |= VEXEC; + if ((flags & VWRITE) == 0 || (error = vn_writechk(vp)) == 0) + error = VOP_ACCESS(vp, flags, cred, p); + } + vput(vp); +out1: + cred->cr_uid = t_uid; + cred->cr_gid = t_gid; + return (error); +} + +/* + * Get file status; this version follows links. + */ +/* ARGSUSED */ +int +sys_stat(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_stat_args /* { + syscallarg(char *) path; + syscallarg(struct stat *) ub; + } */ *uap = v; + struct stat sb; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + error = vn_stat(nd.ni_vp, &sb, p); + vput(nd.ni_vp); + if (error) + return (error); + /* Don't let non-root see generation numbers (for NFS security) */ + if (suser(p->p_ucred, &p->p_acflag)) + sb.st_gen = 0; + error = copyout((caddr_t)&sb, (caddr_t)SCARG(uap, ub), sizeof (sb)); + return (error); +} + +/* + * Get file status; this version does not follow links. + */ +/* ARGSUSED */ +int +sys_lstat(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_lstat_args /* { + syscallarg(char *) path; + syscallarg(struct stat *) ub; + } */ *uap = v; + struct stat sb; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + error = vn_stat(nd.ni_vp, &sb, p); + vput(nd.ni_vp); + if (error) + return (error); + /* Don't let non-root see generation numbers (for NFS security) */ + if (suser(p->p_ucred, &p->p_acflag)) + sb.st_gen = 0; + error = copyout((caddr_t)&sb, (caddr_t)SCARG(uap, ub), sizeof (sb)); + return (error); +} + +/* + * Get configurable pathname variables. + */ +/* ARGSUSED */ +int +sys_pathconf(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_pathconf_args /* { + syscallarg(char *) path; + syscallarg(int) name; + } */ *uap = v; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + error = VOP_PATHCONF(nd.ni_vp, SCARG(uap, name), retval); + vput(nd.ni_vp); + return (error); +} + +/* + * Return target name of a symbolic link. + */ +/* ARGSUSED */ +int +sys_readlink(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_readlink_args /* { + syscallarg(char *) path; + syscallarg(char *) buf; + syscallarg(size_t) count; + } */ *uap = v; + register struct vnode *vp; + struct iovec aiov; + struct uio auio; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + if (vp->v_type != VLNK) + error = EINVAL; + else { + aiov.iov_base = SCARG(uap, buf); + aiov.iov_len = SCARG(uap, count); + auio.uio_iov = &aiov; + auio.uio_iovcnt = 1; + auio.uio_offset = 0; + auio.uio_rw = UIO_READ; + auio.uio_segflg = UIO_USERSPACE; + auio.uio_procp = p; + auio.uio_resid = SCARG(uap, count); + error = VOP_READLINK(vp, &auio, p->p_ucred); + } + vput(vp); + *retval = SCARG(uap, count) - auio.uio_resid; + return (error); +} + +/* + * Change flags of a file given a path name. + */ +/* ARGSUSED */ +int +sys_chflags(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_chflags_args /* { + syscallarg(char *) path; + syscallarg(unsigned int) flags; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else if (SCARG(uap, flags) == VNOVAL) + error = EINVAL; + else { + if (suser(p->p_ucred, &p->p_acflag)) { + if ((error = VOP_GETATTR(vp, &vattr, p->p_ucred, p)) != 0) + goto out; + if (vattr.va_type == VCHR || vattr.va_type == VBLK) { + error = EINVAL; + goto out; + } + } + VATTR_NULL(&vattr); + vattr.va_flags = SCARG(uap, flags); + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } +out: + vput(vp); + return (error); +} + +/* + * Change flags of a file given a file descriptor. + */ +/* ARGSUSED */ +int +sys_fchflags(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_fchflags_args /* { + syscallarg(int) fd; + syscallarg(unsigned int) flags; + } */ *uap = v; + struct vattr vattr; + struct vnode *vp; + struct file *fp; + int error; + + if ((error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) != 0) + return (error); + vp = (struct vnode *)fp->f_data; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else if (SCARG(uap, flags) == VNOVAL) + error = EINVAL; + else { + if (suser(p->p_ucred, &p->p_acflag)) { + if ((error = VOP_GETATTR(vp, &vattr, p->p_ucred, p)) + != 0) + goto out; + if (vattr.va_type == VCHR || vattr.va_type == VBLK) { + error = EINVAL; + goto out; + } + } + VATTR_NULL(&vattr); + vattr.va_flags = SCARG(uap, flags); + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } +out: + VOP_UNLOCK(vp, 0, p); + FRELE(fp); + return (error); +} + +/* + * Change mode of a file given path name. + */ +/* ARGSUSED */ +int +sys_chmod(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_chmod_args /* { + syscallarg(char *) path; + syscallarg(int) mode; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + + if (SCARG(uap, mode) & ~(S_IFMT | ALLPERMS)) + return (EINVAL); + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + VATTR_NULL(&vattr); + vattr.va_mode = SCARG(uap, mode) & ALLPERMS; + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + vput(vp); + return (error); +} + +/* + * Change mode of a file given a file descriptor. + */ +/* ARGSUSED */ +int +sys_fchmod(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_fchmod_args /* { + syscallarg(int) fd; + syscallarg(int) mode; + } */ *uap = v; + struct vattr vattr; + struct vnode *vp; + struct file *fp; + int error; + + if (SCARG(uap, mode) & ~(S_IFMT | ALLPERMS)) + return (EINVAL); + + if ((error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) != 0) + return (error); + vp = (struct vnode *)fp->f_data; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + VATTR_NULL(&vattr); + vattr.va_mode = SCARG(uap, mode) & ALLPERMS; + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + VOP_UNLOCK(vp, 0, p); + FRELE(fp); + return (error); +} + +/* + * Set ownership given a path name. + */ +/* ARGSUSED */ +int +sys_chown(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_chown_args /* { + syscallarg(char *) path; + syscallarg(int) uid; + syscallarg(int) gid; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + u_short mode; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + if ((SCARG(uap, uid) != -1 || SCARG(uap, gid) != -1) && + (suser(p->p_ucred, &p->p_acflag) || suid_clear)) { + error = VOP_GETATTR(vp, &vattr, p->p_ucred, p); + if (error) + goto out; + mode = vattr.va_mode & ~(VSUID | VSGID); + if (mode == vattr.va_mode) + mode = VNOVAL; + } + else + mode = VNOVAL; + VATTR_NULL(&vattr); + vattr.va_uid = SCARG(uap, uid); + vattr.va_gid = SCARG(uap, gid); + vattr.va_mode = mode; + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } +out: + vput(vp); + return (error); +} + +/* + * Set ownership given a path name, without following links. + */ +/* ARGSUSED */ +int +sys_lchown(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_lchown_args /* { + syscallarg(char *) path; + syscallarg(int) uid; + syscallarg(int) gid; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + u_short mode; + + NDINIT(&nd, LOOKUP, NOFOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + if ((SCARG(uap, uid) != -1 || SCARG(uap, gid) != -1) && + (suser(p->p_ucred, &p->p_acflag) || suid_clear)) { + error = VOP_GETATTR(vp, &vattr, p->p_ucred, p); + if (error) + goto out; + mode = vattr.va_mode & ~(VSUID | VSGID); + if (mode == vattr.va_mode) + mode = VNOVAL; + } + else + mode = VNOVAL; + VATTR_NULL(&vattr); + vattr.va_uid = SCARG(uap, uid); + vattr.va_gid = SCARG(uap, gid); + vattr.va_mode = mode; + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } +out: + vput(vp); + return (error); +} + +/* + * Set ownership given a file descriptor. + */ +/* ARGSUSED */ +int +sys_fchown(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_fchown_args /* { + syscallarg(int) fd; + syscallarg(int) uid; + syscallarg(int) gid; + } */ *uap = v; + struct vnode *vp; + struct vattr vattr; + int error; + struct file *fp; + u_short mode; + + if ((error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) != 0) + return (error); + vp = (struct vnode *)fp->f_data; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + if ((SCARG(uap, uid) != -1 || SCARG(uap, gid) != -1) && + (suser(p->p_ucred, &p->p_acflag) || suid_clear)) { + error = VOP_GETATTR(vp, &vattr, p->p_ucred, p); + if (error) + goto out; + mode = vattr.va_mode & ~(VSUID | VSGID); + if (mode == vattr.va_mode) + mode = VNOVAL; + } else + mode = VNOVAL; + VATTR_NULL(&vattr); + vattr.va_uid = SCARG(uap, uid); + vattr.va_gid = SCARG(uap, gid); + vattr.va_mode = mode; + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } +out: + VOP_UNLOCK(vp, 0, p); + FRELE(fp); + return (error); +} + +/* + * Set the access and modification times given a path name. + */ +/* ARGSUSED */ +int +sys_utimes(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_utimes_args /* { + syscallarg(char *) path; + syscallarg(struct timeval *) tptr; + } */ *uap = v; + register struct vnode *vp; + struct timeval tv[2]; + struct vattr vattr; + int error; + struct nameidata nd; + + VATTR_NULL(&vattr); + if (SCARG(uap, tptr) == NULL) { + microtime(&tv[0]); + tv[1] = tv[0]; + vattr.va_vaflags |= VA_UTIMES_NULL; + } else { + error = copyin((caddr_t)SCARG(uap, tptr), (caddr_t)tv, + sizeof (tv)); + if (error) + return (error); + /* XXX workaround timeval matching the VFS constant VNOVAL */ + if (tv[0].tv_sec == VNOVAL) + tv[0].tv_sec = VNOVAL - 1; + if (tv[1].tv_sec == VNOVAL) + tv[1].tv_sec = VNOVAL - 1; + } + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + vattr.va_atime.tv_sec = tv[0].tv_sec; + vattr.va_atime.tv_nsec = tv[0].tv_usec * 1000; + vattr.va_mtime.tv_sec = tv[1].tv_sec; + vattr.va_mtime.tv_nsec = tv[1].tv_usec * 1000; + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + vput(vp); + return (error); +} + + +/* + * Set the access and modification times given a file descriptor. + */ +/* ARGSUSED */ +int +sys_futimes(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_futimes_args /* { + syscallarg(int) fd; + syscallarg(struct timeval *) tptr; + } */ *uap = v; + struct vnode *vp; + struct timeval tv[2]; + struct vattr vattr; + int error; + struct file *fp; + + VATTR_NULL(&vattr); + if (SCARG(uap, tptr) == NULL) { + microtime(&tv[0]); + tv[1] = tv[0]; + vattr.va_vaflags |= VA_UTIMES_NULL; + } else { + error = copyin((caddr_t)SCARG(uap, tptr), (caddr_t)tv, + sizeof (tv)); + if (error) + return (error); + /* XXX workaround timeval matching the VFS constant VNOVAL */ + if (tv[0].tv_sec == VNOVAL) + tv[0].tv_sec = VNOVAL - 1; + if (tv[1].tv_sec == VNOVAL) + tv[1].tv_sec = VNOVAL - 1; + } + if ((error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) != 0) + return (error); + vp = (struct vnode *)fp->f_data; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + if (vp->v_mount->mnt_flag & MNT_RDONLY) + error = EROFS; + else { + vattr.va_atime.tv_sec = tv[0].tv_sec; + vattr.va_atime.tv_nsec = tv[0].tv_usec * 1000; + vattr.va_mtime.tv_sec = tv[1].tv_sec; + vattr.va_mtime.tv_nsec = tv[1].tv_usec * 1000; + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + VOP_UNLOCK(vp, 0, p); + FRELE(fp); + return (error); +} + +/* + * Truncate a file given its path name. + */ +/* ARGSUSED */ +int +sys_truncate(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_truncate_args /* { + syscallarg(char *) path; + syscallarg(int) pad; + syscallarg(off_t) length; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + if (vp->v_type == VDIR) + error = EISDIR; + else if ((error = vn_writechk(vp)) == 0 && + (error = VOP_ACCESS(vp, VWRITE, p->p_ucred, p)) == 0) { + VATTR_NULL(&vattr); + vattr.va_size = SCARG(uap, length); + error = VOP_SETATTR(vp, &vattr, p->p_ucred, p); + } + vput(vp); + return (error); +} + +/* + * Truncate a file given a file descriptor. + */ +/* ARGSUSED */ +int +sys_ftruncate(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_ftruncate_args /* { + syscallarg(int) fd; + syscallarg(int) pad; + syscallarg(off_t) length; + } */ *uap = v; + struct vattr vattr; + struct vnode *vp; + struct file *fp; + int error; + + if ((error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) != 0) + return (error); + if ((fp->f_flag & FWRITE) == 0) { + error = EINVAL; + goto bad; + } + vp = (struct vnode *)fp->f_data; + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + if (vp->v_type == VDIR) + error = EISDIR; + else if ((error = vn_writechk(vp)) == 0) { + VATTR_NULL(&vattr); + vattr.va_size = SCARG(uap, length); + error = VOP_SETATTR(vp, &vattr, fp->f_cred, p); + } + VOP_UNLOCK(vp, 0, p); +bad: + FRELE(fp); + return (error); +} + +/* + * Sync an open file. + */ +/* ARGSUSED */ +int +sys_fsync(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_fsync_args /* { + syscallarg(int) fd; + } */ *uap = v; + struct vnode *vp; + struct file *fp; + int error; + + if ((error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) != 0) + return (error); + vp = (struct vnode *)fp->f_data; + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + error = VOP_FSYNC(vp, fp->f_cred, MNT_WAIT, p); +#ifdef FFS_SOFTUPDATES + if (error == 0 && vp->v_mount && (vp->v_mount->mnt_flag & MNT_SOFTDEP)) + error = softdep_fsync(vp); +#endif + + VOP_UNLOCK(vp, 0, p); + FRELE(fp); + return (error); +} + +/* + * Rename files. Source and destination must either both be directories, + * or both not be directories. If target is a directory, it must be empty. + */ +/* ARGSUSED */ +int +sys_rename(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_rename_args /* { + syscallarg(char *) from; + syscallarg(char *) to; + } */ *uap = v; + register struct vnode *tvp, *fvp, *tdvp; + struct nameidata fromnd, tond; + int error; + int flags; + + NDINIT(&fromnd, DELETE, WANTPARENT | SAVESTART, UIO_USERSPACE, + SCARG(uap, from), p); + if ((error = namei(&fromnd)) != 0) + return (error); + fvp = fromnd.ni_vp; + + flags = LOCKPARENT | LOCKLEAF | NOCACHE | SAVESTART; + /* + * rename("foo/", "bar/"); is OK + */ + if (fvp->v_type == VDIR) + flags |= STRIPSLASHES; + + NDINIT(&tond, RENAME, flags, + UIO_USERSPACE, SCARG(uap, to), p); + if ((error = namei(&tond)) != 0) { + VOP_ABORTOP(fromnd.ni_dvp, &fromnd.ni_cnd); + vrele(fromnd.ni_dvp); + vrele(fvp); + goto out1; + } + tdvp = tond.ni_dvp; + tvp = tond.ni_vp; + if (tvp != NULL) { + if (fvp->v_type == VDIR && tvp->v_type != VDIR) { + error = ENOTDIR; + goto out; + } else if (fvp->v_type != VDIR && tvp->v_type == VDIR) { + error = EISDIR; + goto out; + } + } + if (fvp == tdvp) + error = EINVAL; + /* + * If source is the same as the destination (that is the + * same inode number) + */ + if (fvp == tvp) + error = -1; +out: + if (!error) { + VOP_LEASE(tdvp, p, p->p_ucred, LEASE_WRITE); + if (fromnd.ni_dvp != tdvp) + VOP_LEASE(fromnd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + if (tvp) { + (void)uvm_vnp_uncache(tvp); + VOP_LEASE(tvp, p, p->p_ucred, LEASE_WRITE); + } + error = VOP_RENAME(fromnd.ni_dvp, fromnd.ni_vp, &fromnd.ni_cnd, + tond.ni_dvp, tond.ni_vp, &tond.ni_cnd); + } else { + VOP_ABORTOP(tond.ni_dvp, &tond.ni_cnd); + if (tdvp == tvp) + vrele(tdvp); + else + vput(tdvp); + if (tvp) + vput(tvp); + VOP_ABORTOP(fromnd.ni_dvp, &fromnd.ni_cnd); + vrele(fromnd.ni_dvp); + vrele(fvp); + } + vrele(tond.ni_startdir); + FREE(tond.ni_cnd.cn_pnbuf, M_NAMEI); +out1: + if (fromnd.ni_startdir) + vrele(fromnd.ni_startdir); + FREE(fromnd.ni_cnd.cn_pnbuf, M_NAMEI); + if (error == -1) + return (0); + return (error); +} + +/* + * Make a directory file. + */ +/* ARGSUSED */ +int +sys_mkdir(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_mkdir_args /* { + syscallarg(char *) path; + syscallarg(int) mode; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + + NDINIT(&nd, CREATE, LOCKPARENT | STRIPSLASHES, + UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + if (vp != NULL) { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + vrele(vp); + return (EEXIST); + } + VATTR_NULL(&vattr); + vattr.va_type = VDIR; + vattr.va_mode = (SCARG(uap, mode) & ACCESSPERMS) &~ p->p_fd->fd_cmask; + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + error = VOP_MKDIR(nd.ni_dvp, &nd.ni_vp, &nd.ni_cnd, &vattr); + if (!error) + vput(nd.ni_vp); + return (error); +} + +/* + * Remove a directory file. + */ +/* ARGSUSED */ +int +sys_rmdir(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_rmdir_args /* { + syscallarg(char *) path; + } */ *uap = v; + register struct vnode *vp; + int error; + struct nameidata nd; + + NDINIT(&nd, DELETE, LOCKPARENT | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + if (vp->v_type != VDIR) { + error = ENOTDIR; + goto out; + } + /* + * No rmdir "." please. + */ + if (nd.ni_dvp == vp) { + error = EBUSY; + goto out; + } + /* + * The root of a mounted filesystem cannot be deleted. + */ + if (vp->v_flag & VROOT) + error = EBUSY; +out: + if (!error) { + VOP_LEASE(nd.ni_dvp, p, p->p_ucred, LEASE_WRITE); + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + error = VOP_RMDIR(nd.ni_dvp, nd.ni_vp, &nd.ni_cnd); + } else { + VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); + if (nd.ni_dvp == vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + vput(vp); + } + return (error); +} + +/* + * Read a block of directory entries in a file system independent format. + */ +int +sys_getdirentries(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_getdirentries_args /* { + syscallarg(int) fd; + syscallarg(char *) buf; + syscallarg(int) count; + syscallarg(long *) basep; + } */ *uap = v; + struct vnode *vp; + struct file *fp; + struct uio auio; + struct iovec aiov; + long loff; + int error, eofflag; + + if (SCARG(uap, count) < 0) + return EINVAL; + if ((error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) != 0) + return (error); + if ((fp->f_flag & FREAD) == 0) { + error = EBADF; + goto bad; + } + vp = (struct vnode *)fp->f_data; +unionread: + if (vp->v_type != VDIR) { + error = EINVAL; + goto bad; + } + aiov.iov_base = SCARG(uap, buf); + aiov.iov_len = SCARG(uap, count); + auio.uio_iov = &aiov; + auio.uio_iovcnt = 1; + auio.uio_rw = UIO_READ; + auio.uio_segflg = UIO_USERSPACE; + auio.uio_procp = p; + auio.uio_resid = SCARG(uap, count); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + loff = auio.uio_offset = fp->f_offset; + error = VOP_READDIR(vp, &auio, fp->f_cred, &eofflag, 0, 0); + fp->f_offset = auio.uio_offset; + VOP_UNLOCK(vp, 0, p); + if (error) + goto bad; + if ((SCARG(uap, count) == auio.uio_resid) && + union_check_p && + (union_check_p(p, &vp, fp, auio, &error) != 0)) + goto unionread; + if (error) + goto bad; + + if ((SCARG(uap, count) == auio.uio_resid) && + (vp->v_flag & VROOT) && + (vp->v_mount->mnt_flag & MNT_UNION)) { + struct vnode *tvp = vp; + vp = vp->v_mount->mnt_vnodecovered; + VREF(vp); + fp->f_data = (caddr_t) vp; + fp->f_offset = 0; + vrele(tvp); + goto unionread; + } + error = copyout((caddr_t)&loff, (caddr_t)SCARG(uap, basep), + sizeof(long)); + *retval = SCARG(uap, count) - auio.uio_resid; +bad: + FRELE(fp); + return (error); +} + +/* + * Set the mode mask for creation of filesystem nodes. + */ +int +sys_umask(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_umask_args /* { + syscallarg(int) newmask; + } */ *uap = v; + register struct filedesc *fdp; + + fdp = p->p_fd; + *retval = fdp->fd_cmask; + fdp->fd_cmask = SCARG(uap, newmask) & ACCESSPERMS; + return (0); +} + +/* + * Void all references to file by ripping underlying filesystem + * away from vnode. + */ +/* ARGSUSED */ +int +sys_revoke(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + register struct sys_revoke_args /* { + syscallarg(char *) path; + } */ *uap = v; + register struct vnode *vp; + struct vattr vattr; + int error; + struct nameidata nd; + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + vp = nd.ni_vp; + if ((error = VOP_GETATTR(vp, &vattr, p->p_ucred, p)) != 0) + goto out; + if (p->p_ucred->cr_uid != vattr.va_uid && + (error = suser(p->p_ucred, &p->p_acflag))) + goto out; + if (vp->v_usecount > 1 || (vp->v_flag & (VALIASED | VLAYER))) + VOP_REVOKE(vp, REVOKEALL); +out: + vrele(vp); + return (error); +} + +/* + * Convert a user file descriptor to a kernel file entry. + * + * On return *fpp is FREF:ed. + */ +int +getvnode(fdp, fd, fpp) + struct filedesc *fdp; + struct file **fpp; + int fd; +{ + struct file *fp; + + if ((fp = fd_getfile(fdp, fd)) == NULL) + return (EBADF); + if (fp->f_type != DTYPE_VNODE) + return (EINVAL); + FREF(fp); + *fpp = fp; + + return (0); +} + +/* + * Positional read system call. + */ +int +sys_pread(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_pread_args /* { + syscallarg(int) fd; + syscallarg(void *) buf; + syscallarg(size_t) nbyte; + syscallarg(int) pad; + syscallarg(off_t) offset; + } */ *uap = v; + struct filedesc *fdp = p->p_fd; + struct file *fp; + struct vnode *vp; + off_t offset; + int fd = SCARG(uap, fd); + + if ((fp = fd_getfile(fdp, fd)) == NULL) + return (EBADF); + if ((fp->f_flag & FREAD) == 0) + return (EBADF); + + vp = (struct vnode *)fp->f_data; + if (fp->f_type != DTYPE_VNODE || vp->v_type == VFIFO) { + return (ESPIPE); + } + + offset = SCARG(uap, offset); + + FREF(fp); + + /* dofileread() will FRELE the descriptor for us */ + return (dofileread(p, fd, fp, SCARG(uap, buf), SCARG(uap, nbyte), + &offset, retval)); +} + +/* + * Positional scatter read system call. + */ +int +sys_preadv(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_preadv_args /* { + syscallarg(int) fd; + syscallarg(const struct iovec *) iovp; + syscallarg(int) iovcnt; + syscallarg(int) pad; + syscallarg(off_t) offset; + } */ *uap = v; + struct filedesc *fdp = p->p_fd; + struct file *fp; + struct vnode *vp; + off_t offset; + int fd = SCARG(uap, fd); + + if ((fp = fd_getfile(fdp, fd)) == NULL) + return (EBADF); + if ((fp->f_flag & FREAD) == 0) + return (EBADF); + + vp = (struct vnode *)fp->f_data; + if (fp->f_type != DTYPE_VNODE || vp->v_type == VFIFO) { + return (ESPIPE); + } + + FREF(fp); + + offset = SCARG(uap, offset); + + /* dofilereadv() will FRELE the descriptor for us */ + return (dofilereadv(p, fd, fp, SCARG(uap, iovp), SCARG(uap, iovcnt), + &offset, retval)); +} + +/* + * Positional write system call. + */ +int +sys_pwrite(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_pwrite_args /* { + syscallarg(int) fd; + syscallarg(const void *) buf; + syscallarg(size_t) nbyte; + syscallarg(int) pad; + syscallarg(off_t) offset; + } */ *uap = v; + struct filedesc *fdp = p->p_fd; + struct file *fp; + struct vnode *vp; + off_t offset; + int fd = SCARG(uap, fd); + + if ((fp = fd_getfile(fdp, fd)) == NULL) + return (EBADF); + if ((fp->f_flag & FWRITE) == 0) + return (EBADF); + + vp = (struct vnode *)fp->f_data; + if (fp->f_type != DTYPE_VNODE || vp->v_type == VFIFO) { + return (ESPIPE); + } + + FREF(fp); + + offset = SCARG(uap, offset); + + /* dofilewrite() will FRELE the descriptor for us */ + return (dofilewrite(p, fd, fp, SCARG(uap, buf), SCARG(uap, nbyte), + &offset, retval)); +} + + +/* + * Positional gather write system call. + */ +int +sys_pwritev(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_pwritev_args /* { + syscallarg(int) fd; + syscallarg(const struct iovec *) iovp; + syscallarg(int) iovcnt; + syscallarg(int) pad; + syscallarg(off_t) offset; + } */ *uap = v; + struct filedesc *fdp = p->p_fd; + struct file *fp; + struct vnode *vp; + off_t offset; + int fd = SCARG(uap, fd); + + if ((fp = fd_getfile(fdp, fd)) == NULL) + return (EBADF); + if ((fp->f_flag & FWRITE) == 0) + return (EBADF); + + vp = (struct vnode *)fp->f_data; + if (fp->f_type != DTYPE_VNODE || vp->v_type == VFIFO) { + return (ESPIPE); + } + + FREF(fp); + + offset = SCARG(uap, offset); + + /* dofilewritev() will FRELE the descriptor for us */ + return (dofilewritev(p, fd, fp, SCARG(uap, iovp), SCARG(uap, iovcnt), + &offset, retval)); +} + +#ifdef UFS_EXTATTR +/* + * Syscall to push extended attribute configuration information into the + * VFS. Accepts a path, which it converts to a mountpoint, as well as + * a command (int cmd), and attribute name and misc data. For now, the + * attribute name is left in userspace for consumption by the VFS_op. + * It will probably be changed to be copied into sysspace by the + * syscall in the future, once issues with various consumers of the + * attribute code have raised their hands. + * + * Currently this is used only by UFS Extended Attributes. + */ +int +sys_extattrctl(struct proc *p, void *v, register_t *reval) +{ + struct sys_extattrctl_args /* { + syscallarg(const char *) path; + syscallarg(int) cmd; + syscallarg(const char *) filename; + syscallarg(int) attrnamespace; + syscallarg(const char *) attrname; + } */ *uap = v; + struct vnode *filename_vp; + struct nameidata nd; + struct mount *mp; + char attrname[EXTATTR_MAXNAMELEN]; + int error; + + /* + * SCARG(uap, attrname) not always defined. We check again later + * when we invoke the VFS call so as to pass in NULL there if needed. + */ + if (SCARG(uap, attrname) != NULL) { + error = copyinstr(SCARG(uap, attrname), attrname, + EXTATTR_MAXNAMELEN, NULL); + if (error) + return (error); + } + + /* + * SCARG(uap, filename) not always defined. If it is, grab + * a vnode lock, which VFS_EXTATTRCTL() will later release. + */ + filename_vp = NULL; + if (SCARG(uap, filename) != NULL) { + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, + SCARG(uap, filename), p); + if ((error = namei(&nd)) != 0) + return (error); + filename_vp = nd.ni_vp; + } + + /* SCARG(uap, path) always defined. */ + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) { + if (filename_vp != NULL) + vput(filename_vp); + return (error); + } + + mp = nd.ni_vp->v_mount; + if (error) { + if (filename_vp != NULL) + vput(filename_vp); + return (error); + } + + if (SCARG(uap, attrname) != NULL) { + error = VFS_EXTATTRCTL(mp, SCARG(uap, cmd), filename_vp, + SCARG(uap, attrnamespace), attrname, p); + } else { + error = VFS_EXTATTRCTL(mp, SCARG(uap, cmd), filename_vp, + SCARG(uap, attrnamespace), NULL, p); + } + + /* + * VFS_EXTATTRCTL will have unlocked, but not de-ref'd, + * filename_vp, so vrele it if it is defined. + */ + if (filename_vp != NULL) + vrele(filename_vp); + + return (error); +} + +/*- + * Set a named extended attribute on a file or directory + * + * Arguments: unlocked vnode "vp", attribute namespace "attrnamespace", + * kernelspace string pointer "attrname", userspace buffer + * pointer "data", buffer length "nbytes", thread "td". + * Returns: 0 on success, an error number otherwise + * Locks: none + * References: vp must be a valid reference for the duration of the call + */ +static int +extattr_set_vp(struct vnode *vp, int attrnamespace, const char *attrname, + void *data, size_t nbytes, struct proc *p, register_t *retval) +{ + struct uio auio; + struct iovec aiov; + ssize_t cnt; + int error; + + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + + aiov.iov_base = data; + aiov.iov_len = nbytes; + auio.uio_iov = &aiov; + auio.uio_iovcnt = 1; + auio.uio_offset = 0; + if (nbytes > INT_MAX) { + error = EINVAL; + goto done; + } + auio.uio_resid = nbytes; + auio.uio_rw = UIO_WRITE; + auio.uio_segflg = UIO_USERSPACE; + auio.uio_procp = p; + cnt = nbytes; + + error = VOP_SETEXTATTR(vp, attrnamespace, attrname, &auio, + p->p_ucred, p); + cnt -= auio.uio_resid; + retval[0] = cnt; + +done: + VOP_UNLOCK(vp, 0, p); + return (error); +} + +int +sys_extattr_set_file(struct proc *p, void *v, register_t *retval) +{ + struct sys_extattr_set_file_args /* { + syscallarg(const char *) path; + syscallarg(int) attrnamespace; + syscallarg(const char *) attrname; + syscallarg(void *) data; + syscallarg(size_t) nbytes; + } */ *uap = v; + struct nameidata nd; + char attrname[EXTATTR_MAXNAMELEN]; + int error; + + error = copyinstr(SCARG(uap, attrname), attrname, EXTATTR_MAXNAMELEN, + NULL); + if (error) + return (error); + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + + error = extattr_set_vp(nd.ni_vp, SCARG(uap, attrnamespace), attrname, + SCARG(uap, data), SCARG(uap, nbytes), p, retval); + + vrele(nd.ni_vp); + return (error); +} + +int +sys_extattr_set_fd(struct proc *p, void *v, register_t *retval) +{ + struct sys_extattr_set_fd_args /* { + syscallarg(int) fd; + syscallarg(int) attrnamespace; + syscallarg(const char *) attrname; + syscallarg(struct iovec *) iovp; + syscallarg(int) iovcnt; + } */ *uap = v; + struct file *fp; + char attrname[EXTATTR_MAXNAMELEN]; + int error; + + error = copyinstr(SCARG(uap, attrname), attrname, EXTATTR_MAXNAMELEN, + NULL); + if (error) + return (error); + + if ((error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) != 0) + return (error); + + error = extattr_set_vp((struct vnode *)fp->f_data, + SCARG(uap, attrnamespace), attrname, SCARG(uap, data), + SCARG(uap, nbytes), p, retval); + FRELE(fp); + + return (error); +} + +/*- + * Get a named extended attribute on a file or directory + * + * Arguments: unlocked vnode "vp", attribute namespace "attrnamespace", + * kernelspace string pointer "attrname", userspace buffer + * pointer "data", buffer length "nbytes", thread "td". + * Returns: 0 on success, an error number otherwise + * Locks: none + * References: vp must be a valid reference for the duration of the call + */ +static int +extattr_get_vp(struct vnode *vp, int attrnamespace, const char *attrname, + void *data, size_t nbytes, struct proc *p, register_t *retval) +{ + struct uio auio; + struct iovec aiov; + ssize_t cnt; + size_t size; + int error; + + VOP_LEASE(vp, p, p->p_ucred, LEASE_READ); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + + /* + * Slightly unusual semantics: if the user provides a NULL data + * pointer, they don't want to receive the data, just the + * maximum read length. + */ + if (data != NULL) { + aiov.iov_base = data; + aiov.iov_len = nbytes; + auio.uio_iov = &aiov; + auio.uio_offset = 0; + if (nbytes > INT_MAX) { + error = EINVAL; + goto done; + } + auio.uio_resid = nbytes; + auio.uio_rw = UIO_READ; + auio.uio_segflg = UIO_USERSPACE; + auio.uio_procp = p; + cnt = nbytes; + error = VOP_GETEXTATTR(vp, attrnamespace, attrname, &auio, + NULL, p->p_ucred, p); + cnt -= auio.uio_resid; + retval[0] = cnt; + } else { + error = VOP_GETEXTATTR(vp, attrnamespace, attrname, NULL, + &size, p->p_ucred, p); + retval[0] = size; + } +done: + VOP_UNLOCK(vp, 0, p); + return (error); +} + +int +sys_extattr_get_file(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_extattr_get_file_args /* { + syscallarg(const char *) path; + syscallarg(int) attrnamespace; + syscallarg(const char *) attrname; + syscallarg(void *) data; + syscallarg(size_t) nbytes; + } */ *uap = v; + struct nameidata nd; + char attrname[EXTATTR_MAXNAMELEN]; + int error; + + error = copyinstr(SCARG(uap, attrname), attrname, EXTATTR_MAXNAMELEN, + NULL); + if (error) + return (error); + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return (error); + + error = extattr_get_vp(nd.ni_vp, SCARG(uap, attrnamespace), attrname, + SCARG(uap, data), SCARG(uap, nbytes), p, retval); + + vrele(nd.ni_vp); + return (error); +} + +int +sys_extattr_get_fd(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_extattr_get_fd_args /* { + syscallarg(int) fd; + syscallarg(int) attrnamespace; + syscallarg(const char *) attrname; + syscallarg(void *) data; + syscallarg(size_t) nbytes; + } */ *uap = v; + struct file *fp; + char attrname[EXTATTR_MAXNAMELEN]; + int error; + + error = copyinstr(SCARG(uap, attrname), attrname, EXTATTR_MAXNAMELEN, + NULL); + if (error) + return (error); + + if ((error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) != 0) + return (error); + + error = extattr_get_vp((struct vnode *)fp->f_data, + SCARG(uap, attrnamespace), attrname, SCARG(uap, data), + SCARG(uap, nbytes), p, retval); + FRELE(fp); + + return (error); +} + +/* + * extattr_delete_vp(): Delete a named extended attribute on a file or + * directory + * + * Arguments: unlocked vnode "vp", attribute namespace "attrnamespace", + * kernelspace string pointer "attrname", proc "p" + * Returns: 0 on success, an error number otherwise + * Locks: none + * References: vp must be a valid reference for the duration of the call + */ +static int +extattr_delete_vp(struct vnode *vp, int attrnamespace, const char *attrname, + struct proc *p) +{ + int error; + + VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + + error = VOP_SETEXTATTR(vp, attrnamespace, attrname, NULL, + p->p_ucred, p); + + VOP_UNLOCK(vp, 0, p); + return (error); +} + +int +sys_extattr_delete_file(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_extattr_delete_file_args /* { + syscallarg(int) fd; + syscallarg(int) attrnamespace; + syscallarg(const char *) attrname; + } */ *uap = v; + struct nameidata nd; + char attrname[EXTATTR_MAXNAMELEN]; + int error; + + error = copyinstr(SCARG(uap, attrname), attrname, EXTATTR_MAXNAMELEN, + NULL); + if (error) + return(error); + + NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p); + if ((error = namei(&nd)) != 0) + return(error); + + error = extattr_delete_vp(nd.ni_vp, SCARG(uap, attrnamespace), + attrname, p); + + vrele(nd.ni_vp); + return(error); +} + +int +sys_extattr_delete_fd(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct sys_extattr_delete_fd_args /* { + syscallarg(int) fd; + syscallarg(int) attrnamespace; + syscallarg(const char *) attrname; + } */ *uap = v; + struct file *fp; + char attrname[EXTATTR_MAXNAMELEN]; + int error; + + error = copyinstr(SCARG(uap, attrname), attrname, EXTATTR_MAXNAMELEN, + NULL); + if (error) + return (error); + + if ((error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) != 0) + return (error); + + error = extattr_delete_vp((struct vnode *)fp->f_data, + SCARG(uap, attrnamespace), attrname, p); + FRELE(fp); + + return (error); +} +#endif diff --git a/src/regress/usr.bin/diff/torture/CVS/Entries b/src/regress/usr.bin/diff/torture/CVS/Entries new file mode 100644 index 000000000..53c212cfd --- /dev/null +++ b/src/regress/usr.bin/diff/torture/CVS/Entries @@ -0,0 +1,2 @@ +/torture/1.1/Tue Jul 22 18:32:08 2003// +D diff --git a/src/regress/usr.bin/diff/torture/CVS/Repository b/src/regress/usr.bin/diff/torture/CVS/Repository new file mode 100644 index 000000000..af2562df5 --- /dev/null +++ b/src/regress/usr.bin/diff/torture/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/diff/torture diff --git a/src/regress/usr.bin/diff/torture/CVS/Root b/src/regress/usr.bin/diff/torture/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/diff/torture/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/diff/torture/torture b/src/regress/usr.bin/diff/torture/torture new file mode 100644 index 000000000..1ee533c76 --- /dev/null +++ b/src/regress/usr.bin/diff/torture/torture @@ -0,0 +1,130 @@ +#!/bin/ksh +# +# $OpenBSD: torture,v 1.1 2003/07/22 18:32:08 otto Exp $ +# +# Copyright (c) 2003 Otto Moerbeek +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +# Usage: torture file or directory +# +# Run a diff/patch/cmp regression on all available cvs revisisons of a +# file or recursively on all files in a cvs checkout directory. +# +# Run this script on a freshly checked out cvs dir. Local modifications +# should not be touched, but this is not tested. +# +# Make sure you have $CVSROOT setup properly, preferably on a local +# cvs mirror. This shell script puts a lot of stress on your cvs +# server. It also can take very long to run, since it compares all +# pairs of available revisions of a file. +# +# The program appends run and failure information to the file torture.log +# in the startup directory. This log can be used to rerun failing tests. +# + +DIFF=diff +DIFFOPTIONS=-au +PATCH=patch +PATCHOPTIONS=-s + +TMP=/tmp/torture$$ +trap 'rm -rf "$TMP"; exit 0' HUP INT QUIT PIPE TERM + +FAILLOG="$PWD/$(basename $0).log" + +revisions() { + cvs log "$1" | awk '/^revision/ { print $2 }' +} + +getrevs() { + BASE=$(basename "$1") + REVS=$(revisions "$1") + + for i in $REVS ; do + cvs up -pr $i "$1" > "$TMP/$BASE.$i" + done +} + +dodiffs() { + typeset pwd="$PWD" + cd $TMP + for i in $REVS ; do + print -n "$BASE.$i " + for j in $REVS ; do + $DIFF $DIFFOPTIONS "$BASE.$i" "$BASE.$j" > "diff-$i-$j" + cp "$BASE.$i" "$BASE.$i.copy" + $PATCH $PATCHOPTIONS "$BASE.$i.copy" < "diff-$i-$j" 2> /dev/null + cmp "$BASE.$i.copy" "$BASE.$j" + if [[ $? = 0 ]] ; then + print -n . + else + print " $j FAILED" + print "# $pwd/$BASE.$i vs $j failed" >> "$FAILLOG" + print "$0 $pwd/$BASE" >> "$FAILLOG" + fi + rm -f "$BASE.$i.copy" "diff-$i-$j" + done + print + done + cd "$pwd" +} + +dofile() { + typeset pwd="$PWD" + typeset arg=$(basename "$1") + + cd $(dirname "$1") + print $0 "$PWD/$arg" + mkdir -p "$TMP" + + getrevs "$arg" + dodiffs + + rm -rf "$TMP" + cd "$pwd" +} + +dodir() { + typeset pwd="$PWD" + cd "$1" + print $0 "$PWD" + list=$('ls' -A) + for i in $list ; do + if [[ "$i" != CVS ]] ; then + main "$i" + fi + done + cd $pwd +} + +print -n "# $0 $1: run started at " >> "$FAILLOG" +date >> "$FAILLOG" + +main() { + if [[ -f "$1" ]] ; then + dofile "$1" + elif [[ -d "$1" ]] ; then + dodir "$1" + fi +} + +if [[ $# != 1 ]] ; then + print Usage: $0 file or directory + exit 1 +fi + +main "$1" + +print -n "# $0 $1: run done at " >> "$FAILLOG" +date >> "$FAILLOG" diff --git a/src/regress/usr.bin/diff3/CVS/Entries b/src/regress/usr.bin/diff3/CVS/Entries new file mode 100644 index 000000000..582a27df4 --- /dev/null +++ b/src/regress/usr.bin/diff3/CVS/Entries @@ -0,0 +1,2 @@ +/Makefile/1.1/Tue Nov 22 15:59:28 2005// +D diff --git a/src/regress/usr.bin/diff3/CVS/Repository b/src/regress/usr.bin/diff3/CVS/Repository new file mode 100644 index 000000000..f1b187b9e --- /dev/null +++ b/src/regress/usr.bin/diff3/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/diff3 diff --git a/src/regress/usr.bin/diff3/CVS/Root b/src/regress/usr.bin/diff3/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/diff3/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/diff3/Makefile b/src/regress/usr.bin/diff3/Makefile new file mode 100644 index 000000000..2a4ff51e7 --- /dev/null +++ b/src/regress/usr.bin/diff3/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2005/11/22 15:59:28 markus Exp $ + +.PHONY: ${REGRESS_TARGETS} + +REGRESS_TARGETS+=t1 +t1: + merge -p /etc/motd /etc/motd /etc/motd | diff /etc/motd - + +.include diff --git a/src/regress/usr.bin/diff3/obj b/src/regress/usr.bin/diff3/obj new file mode 120000 index 000000000..34d76efec --- /dev/null +++ b/src/regress/usr.bin/diff3/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/diff3 \ No newline at end of file diff --git a/src/regress/usr.bin/dirname/CVS/Entries b/src/regress/usr.bin/dirname/CVS/Entries new file mode 100644 index 000000000..cc7ca0d1e --- /dev/null +++ b/src/regress/usr.bin/dirname/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Apr 7 07:25:16 2005// +/dirname.sh/1.1/Thu Apr 7 07:25:16 2005// +D diff --git a/src/regress/usr.bin/dirname/CVS/Repository b/src/regress/usr.bin/dirname/CVS/Repository new file mode 100644 index 000000000..86a679719 --- /dev/null +++ b/src/regress/usr.bin/dirname/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/dirname diff --git a/src/regress/usr.bin/dirname/CVS/Root b/src/regress/usr.bin/dirname/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/dirname/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/dirname/Makefile b/src/regress/usr.bin/dirname/Makefile new file mode 100644 index 000000000..03ae61425 --- /dev/null +++ b/src/regress/usr.bin/dirname/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.1 2005/04/07 07:25:16 otto Exp $ +# $NetBSD: Makefile,v 1.1 2005/04/04 16:48:45 peter Exp $ + +regress: + @sh ${.CURDIR}/dirname.sh + +.include diff --git a/src/regress/usr.bin/dirname/dirname.sh b/src/regress/usr.bin/dirname/dirname.sh new file mode 100644 index 000000000..425e583b9 --- /dev/null +++ b/src/regress/usr.bin/dirname/dirname.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# $OpenBSD: dirname.sh,v 1.1 2005/04/07 07:25:16 otto Exp $ +# $NetBSD: dirname.sh,v 1.1 2005/04/04 16:48:45 peter Exp $ + +test_dirname() +{ + echo "Testing \"$1\"" + result=`dirname "$1" 2>&1` + if [ "$result" != "$2" ]; then + echo "Expected \"$2\", but got \"$result\"" + exit 1 + fi +} + +test_dirname "/" "/" +test_dirname "//" "/" +test_dirname "/usr/bin/" "/usr" +test_dirname "//usr//bin//" "//usr" +test_dirname "usr" "." +test_dirname "\"\"" "." +test_dirname "/usr" "/" +test_dirname "/usr/bin" "/usr" +test_dirname "usr/bin" "usr" +test_dirname "" "." +test_dirname "/./" "/" +test_dirname "///usr//bin//" "///usr" diff --git a/src/regress/usr.bin/dirname/obj b/src/regress/usr.bin/dirname/obj new file mode 120000 index 000000000..404031582 --- /dev/null +++ b/src/regress/usr.bin/dirname/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/dirname \ No newline at end of file diff --git a/src/regress/usr.bin/file/CVS/Entries b/src/regress/usr.bin/file/CVS/Entries new file mode 100644 index 000000000..8ad42703d --- /dev/null +++ b/src/regress/usr.bin/file/CVS/Entries @@ -0,0 +1,40 @@ +/Makefile/1.1/Fri Jun 2 01:07:44 2006// +/t0.in/1.1/Fri Jun 2 01:07:44 2006// +/t0.out/1.1/Fri Jun 2 01:07:44 2006// +/t1.in/1.1/Fri Jun 2 01:07:44 2006// +/t1.out/1.1/Fri Jun 2 01:07:44 2006// +/t10.in/1.1/Fri Jun 2 01:07:44 2006/-kb/ +/t10.out/1.1/Fri Jun 2 01:07:44 2006// +/t15.in/1.1/Fri Jun 2 01:07:44 2006// +/t15.out/1.2/Thu May 8 01:54:38 2008// +/t17.in/1.1/Fri Jun 2 01:07:44 2006// +/t17.out/1.1/Fri Jun 2 01:07:44 2006// +/t18.in/1.1/Fri Jun 2 01:07:44 2006/-kb/ +/t18.out/1.2/Thu May 8 01:54:38 2008// +/t2.in/1.1/Fri Jun 2 01:07:44 2006// +/t2.out/1.1/Fri Jun 2 01:07:44 2006// +/t20.in/1.1/Fri Jun 2 01:07:44 2006// +/t20.out/1.1/Fri Jun 2 01:07:44 2006// +/t21.in/1.1/Fri Jun 2 01:07:44 2006// +/t21.out/1.1/Fri Jun 2 01:07:44 2006// +/t22.in/1.1/Fri Jun 2 01:07:44 2006// +/t22.out/1.2/Thu May 8 01:54:38 2008// +/t23.in/1.1/Fri Jun 2 01:07:44 2006// +/t23.out/1.1/Fri Jun 2 01:07:44 2006// +/t3.in/1.1/Fri Jun 2 01:07:44 2006/-kb/ +/t3.out/1.1/Fri Jun 2 01:07:44 2006// +/t30.in/1.1/Fri Jun 2 01:07:44 2006/-kb/ +/t30.out/1.1/Fri Jun 2 01:07:44 2006// +/t4.in/1.1/Fri Jun 2 01:07:44 2006// +/t4.out/1.1/Fri Jun 2 01:07:44 2006// +/t5.in/1.1/Fri Jun 2 01:07:44 2006// +/t5.out/1.1/Fri Jun 2 01:07:44 2006// +/t6.in/1.1/Fri Jun 2 01:07:44 2006// +/t6.out/1.1/Fri Jun 2 01:07:44 2006// +/t7.in/1.1/Fri Jun 2 01:07:44 2006// +/t7.out/1.1/Fri Jun 2 01:07:44 2006// +/t8.in/1.1/Fri Jun 2 01:07:44 2006// +/t8.out/1.1/Fri Jun 2 01:07:44 2006// +/t9.in/1.1/Fri Jun 2 01:07:44 2006/-kb/ +/t9.out/1.1/Fri Jun 2 01:07:44 2006// +D diff --git a/src/regress/usr.bin/file/CVS/Repository b/src/regress/usr.bin/file/CVS/Repository new file mode 100644 index 000000000..e7cc6a34c --- /dev/null +++ b/src/regress/usr.bin/file/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/file diff --git a/src/regress/usr.bin/file/CVS/Root b/src/regress/usr.bin/file/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/file/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/file/Makefile b/src/regress/usr.bin/file/Makefile new file mode 100644 index 000000000..a28f004b6 --- /dev/null +++ b/src/regress/usr.bin/file/Makefile @@ -0,0 +1,43 @@ +# $OpenBSD: Makefile,v 1.1 2006/06/02 01:07:44 ian Exp $ + +FILE=file + +# temporarily excluded - t23 +REGRESS_TARGETS=t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t15 t17 t18 t20 t21 t22 t30 + +# .in: input file +# .out: desired result + +# t0 empty +# t1 archive +# t2 ascii archive +# t3 ranlib +# t4 awk +# t5 awk +# t6 csh +# t7 awk +# t8 interpreter +# t9 java class +# t10 java serialized data +# t11 mach-o binary +# t15 tar archive +# t17 C program +# t20 HTML +# t21 SGML +# t22 XML +# t23 raw xml + +all: ${REGRESS_TARGET} + +.SUFFIXES: .in + +.in: + @echo ${*} + @${FILE} ${.CURDIR}/${*}.in | \ + sed -e "s@${.CURDIR}/@@" | \ + diff - ${.CURDIR}/${*}.out || \ + (echo "XXX ${*} failed" && false) + +clean: + +.include diff --git a/src/regress/usr.bin/file/t0.in b/src/regress/usr.bin/file/t0.in new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/usr.bin/file/t0.out b/src/regress/usr.bin/file/t0.out new file mode 100644 index 000000000..bdf3e234c --- /dev/null +++ b/src/regress/usr.bin/file/t0.out @@ -0,0 +1 @@ +t0.in: empty diff --git a/src/regress/usr.bin/file/t1.in b/src/regress/usr.bin/file/t1.in new file mode 100644 index 000000000..3987a87bf --- /dev/null +++ b/src/regress/usr.bin/file/t1.in @@ -0,0 +1 @@ + fake fake fake diff --git a/src/regress/usr.bin/file/t1.out b/src/regress/usr.bin/file/t1.out new file mode 100644 index 000000000..3dc2b99b1 --- /dev/null +++ b/src/regress/usr.bin/file/t1.out @@ -0,0 +1 @@ +t1.in: archive diff --git a/src/regress/usr.bin/file/t10.in b/src/regress/usr.bin/file/t10.in new file mode 100644 index 0000000000000000000000000000000000000000..9fa68329333d95204cad9524adbdb3a7bd80ced8 GIT binary patch literal 44 ycmZ4UmVvdjh(S2oCo8cmQ7s*$7a z=boBU>dK3EPTlriT2*hVA7{E+=P5Pg_T?C3y26Lc(uMG*bnIr& + +int main() { + printf("Hello"); +} diff --git a/src/regress/usr.bin/file/t17.out b/src/regress/usr.bin/file/t17.out new file mode 100644 index 000000000..151c1b7e4 --- /dev/null +++ b/src/regress/usr.bin/file/t17.out @@ -0,0 +1 @@ +t17.in: ASCII C program text diff --git a/src/regress/usr.bin/file/t18.in b/src/regress/usr.bin/file/t18.in new file mode 100644 index 0000000000000000000000000000000000000000..76af8b6699e01d17211e0c8739144b37179492d2 GIT binary patch literal 6540 zcmeHLU1(fI6rOaGHmym!Ns}6Nm8GU4qBl){u-d3iY@$M%q}?V^3%%K7Z@b$jyK(n! ze^hA8Ht2Q<2JKsYXl$W^AVm-niv$}?f{LN|P^d^B8n_{$q*O~4?D~B(cam+X74c2> zz_(}4oHJ);&dj}c&pF)K+*D9dAT%uy9zm(9Q25q?pD$CIb;2(eizmfHVue_UF6sc< z_&PCwC_-N$-~moR27JVF$OLuhmH;F9h!t>1aJ=xkdT>x3!6gtJuk{ts19ikXbQ4^c z){j6x;um$q)95C0_0nN2{1YIqU+Wh@uEuzvjyMIGpq^_WK88KuBdQ=1T8HL;qMBqP zUegolvJP6^H9a9C5fh>q9_gR)Ywfe54S~&a4#s*J@BpwBC;@Vb_O#(x?u&a^1kj(1 zH~3;;2~Y~$P4vkau)j=P&+Z4GMNBDsMTK~f4bT`+4m?8vbO4~dh5};j2P+emVlOz) z1PtT7;(72*&~ts%H-Pg@m0T*`fjqlf+h5OaflPV=8>9atK(2l}WbL2peG78un)&gq zkVy%E;|1c}jR+fSpEGKOxp_xR{g&5W7N(i7gWdbgL~k$=Hp9VasK<(nzNDRiYELp4 z4+$%}KN62cA@{{&d!oT!O9XA}V8j;YE6uG9_048$Q&XUEyScr-p}EoIxR_11aahQ< z6%7f~3I**TI=T`GS1IFFgu|IYoEG8mej-OeE|KG)ekSL^fSl6^#04R;>&MWWUG+VF z*`Hm-(P1{Hu4F;0=q1c!pPG;|y@heh#niBr={3x2JarCoVC%Nb=IWAx=3^BD+pE1> zx3xLEN`vj`$xNfSBalg!oaVV@9_znscc*5G_tpfQ6f9CB-u~g!Ji=rw{V4eme~xSr zUv|RYe(LD&Ce9Pv0$+2Bc1csF@N);9{lm#$TLyfx-IBVUwU?!D zW;`va>B8&;#N>^gyOfXgWFRnfRgU0~f#Tz@&^Df;3cx-SiLJMRFWE z!hUQf>__it5p`UE(~0dkXYn&ySnXXXd`|0aY<)r0Cye(+o%179@Q-Bk3c>G`3U4AkdHt<0{_nlylVCI#QXk{{Xhl4Jf1n@hZxWH32^3NOiWlK zApf_d^HYxd1^%u9w}GXoVc_3vmi?NueFqtdL%nveOBe||u6S6tB2n9l_X#5!vn?Zr zq`NB-G9n=>Y6~NbyigdSLs1M@+>Q$)ZuPKFHTrsB7l|SvG>{kKcQ*v6Vlv}1)UOpb zcgLAKa$K-C(k%?6iG9J)YS|D*w;hWopjAxiYK4Jx@s4fWPk01Mo*&P_t;xt(>oL@k z9tT((pq*RWkaZ1+l6d~4X93;;+VMUBq77}WCnsJ2cqeGbdjg1Av^kb@(uVh?5#U{+ z9q$zd-X~3Zea!t?tDqh44KP<1p)LLK{&WD^j`s`@e)Lh#er;!>P2ar7!>|Kn8=@qx zjr2O8?Z#jS$o)zse&~;|0By(m86a-4!zJ2~_5s?C`5kc2dEapDWDSMSBo@SHMiYGy zhg^6+Lbbs#u4+JLhlgK6UNrbM`*#`vQ8- z!+Dt;b03`??W!jzBZE!t=T;63@cZM%S3}kWTVSxL+pa4*E4| ze_GDve2yu5+*$d&Dp}1uJSVFe`1~oo8%5k>C96~A^Q2^+ym~(?nQsL3d?;C+2%iHb z^NCXRVkPryfc@cKE17QqNp<}7xHpq!9VM4aCGVq>RbflN(>=1fIbYNB$jIf&JQa0c z)OcCd6TBBn=2yi%e{hfd3ZcPsma_g@QKEi@YPi3ixeBN1@Zc14&!rGGMn+Jtmo-Q3 zVAh?VHBz2CX$;`%3<@A!BV9`Y>+yrJ2D%Y^*o|*FZe{~yJ~v?4y;rn=Z-PBflJFjX8Jbdi6Y^95xgAZkAinHKG-PzpMXr#HCH~*`h3gr zhW`liYRrEIoZ~+M&-MQqWW9dIhjGZQ$^HPD#4j4-a}l@&e~jx&R;F#EJGV5;I;yOl z{&SJmH01|4xAr<;x7D@Sx%%x~b#}fOEB_PCmv~_jiwF12mwHY4Q8#71n1x-poO|yI YFc+;V#Ae*u6G`Cjh5GtqmAhl&FM-B-#Q*>R literal 0 HcmV?d00001 diff --git a/src/regress/usr.bin/file/t18.out b/src/regress/usr.bin/file/t18.out new file mode 100644 index 000000000..c0521d65e --- /dev/null +++ b/src/regress/usr.bin/file/t18.out @@ -0,0 +1 @@ +t18.in: ELF 32-bit LSB executable, Intel 80386, version 1, for OpenBSD, dynamically linked (uses shared libs), not stripped diff --git a/src/regress/usr.bin/file/t2.in b/src/regress/usr.bin/file/t2.in new file mode 100644 index 000000000..db9726a18 --- /dev/null +++ b/src/regress/usr.bin/file/t2.in @@ -0,0 +1 @@ +070707 fake fake fake diff --git a/src/regress/usr.bin/file/t2.out b/src/regress/usr.bin/file/t2.out new file mode 100644 index 000000000..819f88ccd --- /dev/null +++ b/src/regress/usr.bin/file/t2.out @@ -0,0 +1 @@ +t2.in: ASCII cpio archive (pre-SVR4 or odc) diff --git a/src/regress/usr.bin/file/t20.in b/src/regress/usr.bin/file/t20.in new file mode 100644 index 000000000..163d2f09d --- /dev/null +++ b/src/regress/usr.bin/file/t20.in @@ -0,0 +1 @@ + diff --git a/src/regress/usr.bin/file/t20.out b/src/regress/usr.bin/file/t20.out new file mode 100644 index 000000000..d59e055bc --- /dev/null +++ b/src/regress/usr.bin/file/t20.out @@ -0,0 +1 @@ +t20.in: HTML document text diff --git a/src/regress/usr.bin/file/t21.in b/src/regress/usr.bin/file/t21.in new file mode 100644 index 000000000..c50eddd41 --- /dev/null +++ b/src/regress/usr.bin/file/t21.in @@ -0,0 +1 @@ + diff --git a/src/regress/usr.bin/file/t21.out b/src/regress/usr.bin/file/t21.out new file mode 100644 index 000000000..c9a2b765d --- /dev/null +++ b/src/regress/usr.bin/file/t21.out @@ -0,0 +1 @@ +t21.in: exported SGML document text diff --git a/src/regress/usr.bin/file/t22.in b/src/regress/usr.bin/file/t22.in new file mode 100644 index 000000000..2b5d41167 --- /dev/null +++ b/src/regress/usr.bin/file/t22.in @@ -0,0 +1 @@ + diff --git a/src/regress/usr.bin/file/t22.out b/src/regress/usr.bin/file/t22.out new file mode 100644 index 000000000..639561dd2 --- /dev/null +++ b/src/regress/usr.bin/file/t22.out @@ -0,0 +1 @@ +t22.in: XML diff --git a/src/regress/usr.bin/file/t23.in b/src/regress/usr.bin/file/t23.in new file mode 100644 index 000000000..bec851202 --- /dev/null +++ b/src/regress/usr.bin/file/t23.in @@ -0,0 +1 @@ + diff --git a/src/regress/usr.bin/file/t23.out b/src/regress/usr.bin/file/t23.out new file mode 100644 index 000000000..dc15bfcee --- /dev/null +++ b/src/regress/usr.bin/file/t23.out @@ -0,0 +1 @@ +t23.in: SGML/XML/HTML document text with no type declaration diff --git a/src/regress/usr.bin/file/t3.in b/src/regress/usr.bin/file/t3.in new file mode 100644 index 000000000..6e90894a0 --- /dev/null +++ b/src/regress/usr.bin/file/t3.in @@ -0,0 +1 @@ +!.__.SYMDEF fake fake fake diff --git a/src/regress/usr.bin/file/t3.out b/src/regress/usr.bin/file/t3.out new file mode 100644 index 000000000..87c53e45a --- /dev/null +++ b/src/regress/usr.bin/file/t3.out @@ -0,0 +1 @@ +t3.in: current ar archive random library diff --git a/src/regress/usr.bin/file/t30.in b/src/regress/usr.bin/file/t30.in new file mode 100644 index 0000000000000000000000000000000000000000..c6048085abf3b40a6f746f8bbed5728bca5cd0d1 GIT binary patch literal 4 LcmZQzU}OgX01W^M literal 0 HcmV?d00001 diff --git a/src/regress/usr.bin/file/t30.out b/src/regress/usr.bin/file/t30.out new file mode 100644 index 000000000..11cdac929 --- /dev/null +++ b/src/regress/usr.bin/file/t30.out @@ -0,0 +1 @@ +t30.in: OpenBSD big-endian object file diff --git a/src/regress/usr.bin/file/t4.in b/src/regress/usr.bin/file/t4.in new file mode 100644 index 000000000..1d5721ce5 --- /dev/null +++ b/src/regress/usr.bin/file/t4.in @@ -0,0 +1 @@ +#! /bin/awk diff --git a/src/regress/usr.bin/file/t4.out b/src/regress/usr.bin/file/t4.out new file mode 100644 index 000000000..913048b80 --- /dev/null +++ b/src/regress/usr.bin/file/t4.out @@ -0,0 +1 @@ +t4.in: awk script text executable diff --git a/src/regress/usr.bin/file/t5.in b/src/regress/usr.bin/file/t5.in new file mode 100644 index 000000000..fa4a51f8e --- /dev/null +++ b/src/regress/usr.bin/file/t5.in @@ -0,0 +1 @@ +#!/bin/awk diff --git a/src/regress/usr.bin/file/t5.out b/src/regress/usr.bin/file/t5.out new file mode 100644 index 000000000..3aed601fe --- /dev/null +++ b/src/regress/usr.bin/file/t5.out @@ -0,0 +1 @@ +t5.in: awk script text executable diff --git a/src/regress/usr.bin/file/t6.in b/src/regress/usr.bin/file/t6.in new file mode 100644 index 000000000..e6aa9664b --- /dev/null +++ b/src/regress/usr.bin/file/t6.in @@ -0,0 +1 @@ +#! /bin/csh diff --git a/src/regress/usr.bin/file/t6.out b/src/regress/usr.bin/file/t6.out new file mode 100644 index 000000000..f5dd85f73 --- /dev/null +++ b/src/regress/usr.bin/file/t6.out @@ -0,0 +1 @@ +t6.in: C shell script text executable diff --git a/src/regress/usr.bin/file/t7.in b/src/regress/usr.bin/file/t7.in new file mode 100644 index 000000000..3e39c0bc9 --- /dev/null +++ b/src/regress/usr.bin/file/t7.in @@ -0,0 +1 @@ +#!/bin/csh diff --git a/src/regress/usr.bin/file/t7.out b/src/regress/usr.bin/file/t7.out new file mode 100644 index 000000000..23c70efcc --- /dev/null +++ b/src/regress/usr.bin/file/t7.out @@ -0,0 +1 @@ +t7.in: C shell script text executable diff --git a/src/regress/usr.bin/file/t8.in b/src/regress/usr.bin/file/t8.in new file mode 100644 index 000000000..50d48845c --- /dev/null +++ b/src/regress/usr.bin/file/t8.in @@ -0,0 +1 @@ +#! /bin/sh diff --git a/src/regress/usr.bin/file/t8.out b/src/regress/usr.bin/file/t8.out new file mode 100644 index 000000000..3f4ed32bf --- /dev/null +++ b/src/regress/usr.bin/file/t8.out @@ -0,0 +1 @@ +t8.in: Bourne shell script text executable diff --git a/src/regress/usr.bin/file/t9.in b/src/regress/usr.bin/file/t9.in new file mode 100644 index 0000000000000000000000000000000000000000..e1c60c11ded8d5fb22646cc1e2d252b965af4c7f GIT binary patch literal 552 zcmZut%T5A85Ul34?79kq;9J2H8so;32aFdJ<6)yF7(93yV1h&TVU~f!&(eb?9{d15 z%Gk4-z=4^hI^8{8T~psbpI-n@aX_e!wMevzhTgRdg7_g$f`J7hlt*GJyg+d0wl|V} zZ6Ql2oU2Ib3qrPa*d^pHta@M8)16zt=n^Mc8&x zLDj}8)(CF;)8j_^*COg{!h#VC8wBgwa0INS)>x2el2F+jTRdv1q literal 0 HcmV?d00001 diff --git a/src/regress/usr.bin/file/t9.out b/src/regress/usr.bin/file/t9.out new file mode 100644 index 000000000..4c758bb60 --- /dev/null +++ b/src/regress/usr.bin/file/t9.out @@ -0,0 +1 @@ +t9.in: compiled Java class data, version 49.0 diff --git a/src/regress/usr.bin/grep/CVS/Entries b/src/regress/usr.bin/grep/CVS/Entries new file mode 100644 index 000000000..0438c0b81 --- /dev/null +++ b/src/regress/usr.bin/grep/CVS/Entries @@ -0,0 +1,23 @@ +/Makefile/1.13/Tue Feb 13 21:48:20 2007// +/in/1.1/Wed Jul 2 07:07:49 2003// +/t1.out/1.1/Wed Jul 2 07:07:49 2003// +/t11.out/1.1/Thu Jul 17 19:07:10 2003// +/t13.in/1.1/Sat Dec 6 20:19:12 2003// +/t13.out/1.1/Sat Dec 6 20:19:12 2003// +/t14.in/1.1/Mon Jan 19 02:27:10 2004// +/t15.in/1.1/Sun Jan 25 21:26:56 2004// +/t15.out/1.1/Sun Jan 25 21:26:56 2004// +/t17.in/1.1/Wed Feb 4 05:53:49 2004// +/t17.out/1.1/Wed Feb 4 05:53:49 2004// +/t19.in/1.1/Fri May 7 19:10:06 2004// +/t19.out/1.1/Fri May 7 19:10:06 2004// +/t21.out/1.1/Sun Oct 3 19:24:58 2004// +/t22.in/1.1/Sun Oct 3 19:24:58 2004// +/t23.in/1.1/Sun Apr 3 19:15:17 2005// +/t23.out/1.1/Sun Apr 3 19:15:17 2005// +/t3.out/1.1/Wed Jul 2 07:07:49 2003// +/t4.out/1.1/Wed Jul 2 07:07:49 2003// +/t5.out/1.1/Wed Jul 2 07:07:49 2003// +/t6.out/1.1/Wed Jul 2 07:07:49 2003// +/t7.out/1.1/Wed Jul 2 07:07:49 2003// +D diff --git a/src/regress/usr.bin/grep/CVS/Repository b/src/regress/usr.bin/grep/CVS/Repository new file mode 100644 index 000000000..72d12ee80 --- /dev/null +++ b/src/regress/usr.bin/grep/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/grep diff --git a/src/regress/usr.bin/grep/CVS/Root b/src/regress/usr.bin/grep/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/grep/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/grep/Makefile b/src/regress/usr.bin/grep/Makefile new file mode 100644 index 000000000..4785a837f --- /dev/null +++ b/src/regress/usr.bin/grep/Makefile @@ -0,0 +1,103 @@ +# $OpenBSD: Makefile,v 1.13 2007/02/13 21:48:20 kili Exp $ + +REGRESS_TARGETS=t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 \ + t18 t19 t20 t21 t22 t23 + +t1: + grep t.s ${.CURDIR}/in | diff - ${.CURDIR}/t1.out + +t2: + grep -w separated ${.CURDIR}/in | diff - ${.CURDIR}/t1.out + +t3: + grep ^Beginning ${.CURDIR}/in | diff - ${.CURDIR}/t3.out + +t4: + grep -i end$$ ${.CURDIR}/in | diff - ${.CURDIR}/t4.out + +t5: + egrep '\?|\*$$' ${.CURDIR}/in | diff - ${.CURDIR}/t5.out + +t6: + grep -v [l] ${.CURDIR}/in | diff - ${.CURDIR}/t6.out + +t7: + grep -x line ${.CURDIR}/in | diff - ${.CURDIR}/t7.out + +t8: + fgrep line. ${.CURDIR}/in | diff - /dev/null + +t9: + grep non.existent ${.CURDIR}/in | diff - /dev/null + +t10: + grep -s foo nonexistentfile | diff - /dev/null + +t11: + grep -C1 examples ${.CURDIR}/in | diff - ${.CURDIR}/t11.out + +t12: + egrep -f ${.CURDIR}/t1.out ${.CURDIR}/in | diff - ${.CURDIR}/t1.out + +t13: + grep 'abcd. abcd.' ${.CURDIR}/t13.in | diff - ${.CURDIR}/t13.out + +t14: + test X`grep -w -l u_int ${.CURDIR}/t14.in` = X${.CURDIR}/t14.in + +t15: + grep -w tu ${.CURDIR}/t15.in | diff - ${.CURDIR}/t15.out + +t16: + grep -w to ${.CURDIR}/t15.in | diff - ${.CURDIR}/t15.out + +t17: + grep -w '^foo' ${.CURDIR}/t17.in | diff - ${.CURDIR}/t17.out + +t18: + grep -w '^foo$$' ${.CURDIR}/t17.in | diff - ${.CURDIR}/t17.out + +t19: + grep -w 'a.' ${.CURDIR}/t19.in | diff - ${.CURDIR}/t19.out + fgrep -w -e 'aa' -e 'a_' ${.CURDIR}/t19.in | diff - ${.CURDIR}/t19.out + +t20: + echo '=' | grep -w '=' | diff - /dev/null + echo '=' | fgrep -w '=' | diff - /dev/null + echo 'a=' | grep -w 'a=' | diff - /dev/null + echo 'a=' | fgrep -w 'a=' | diff - /dev/null + echo '=b' | grep -w '=b' | diff - /dev/null + echo '=b' | fgrep -w '=b' | diff - /dev/null + echo 'a=b' | grep -qw 'a=b' + echo 'a=b' | fgrep -qw 'a=b' + echo '+' | grep -w '+' | diff - /dev/null + echo '+' | fgrep -w '+' | diff - /dev/null + echo 'a+' | grep -w 'a+' | diff - /dev/null + echo 'a+' | fgrep -w 'a+' | diff - /dev/null + echo '+b' | grep -w '+b' | diff - /dev/null + echo '+b' | fgrep -w '+b' | diff - /dev/null + echo 'a+b' | grep -qw 'a+b' + echo 'a+b' | fgrep -qw 'a+b' + +t21: + grep -l D.e ${.CURDIR}/in | diff - ${.CURDIR}/t21.out + egrep -l D.e ${.CURDIR}/in | diff - ${.CURDIR}/t21.out + grep -l '.*D.e' ${.CURDIR}/in | diff - ${.CURDIR}/t21.out + egrep -l '.*D.e' ${.CURDIR}/in | diff - ${.CURDIR}/t21.out + +t22: + grep -l 'a.*b' ${.CURDIR}/t22.in + +t23: + egrep -w 'word1|word2|word3' ${.CURDIR}/t23.in + +t24: + grep -e '' < in | diff - in + grep -x -e '' < in | diff - /dev/null + grep -f /dev/null < in | diff - /dev/null + + +.PHONY: t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 +.PHONY: t21 t22 t23 t24 + +.include diff --git a/src/regress/usr.bin/grep/in b/src/regress/usr.bin/grep/in new file mode 100644 index 000000000..015571c28 --- /dev/null +++ b/src/regress/usr.bin/grep/in @@ -0,0 +1,5 @@ +dot.separated@words +Beginning of a line +This line ends with EnD +examples of special characters are [, $, ^, * +line diff --git a/src/regress/usr.bin/grep/obj b/src/regress/usr.bin/grep/obj new file mode 120000 index 000000000..b87ce4ce9 --- /dev/null +++ b/src/regress/usr.bin/grep/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/grep \ No newline at end of file diff --git a/src/regress/usr.bin/grep/t1.out b/src/regress/usr.bin/grep/t1.out new file mode 100644 index 000000000..e6c4af4a7 --- /dev/null +++ b/src/regress/usr.bin/grep/t1.out @@ -0,0 +1 @@ +dot.separated@words diff --git a/src/regress/usr.bin/grep/t11.out b/src/regress/usr.bin/grep/t11.out new file mode 100644 index 000000000..4edc968db --- /dev/null +++ b/src/regress/usr.bin/grep/t11.out @@ -0,0 +1,3 @@ +This line ends with EnD +examples of special characters are [, $, ^, * +line diff --git a/src/regress/usr.bin/grep/t13.in b/src/regress/usr.bin/grep/t13.in new file mode 100644 index 000000000..48885a449 --- /dev/null +++ b/src/regress/usr.bin/grep/t13.in @@ -0,0 +1,24 @@ +abcd abcd +abcd abcd 1 +abcd abcd 22 +abcd abcd 333 +abcd abcd 4444 +abcd abcd 55555 +abcd abcd 666666 +abcd abcd 7777777 +abcd abcd 88888888 +abcd abcd 999999999 +abcd abcd 0000000000 +abcd abcd 11111111111 +abcd abcd 222222222222 +abcd abcd 3333333333333 +abcd abcd 44444444444444 +abcd abcd 555555555555555 +abcd abcd 6666666666666666 +abcd abcd 77777777777777777 +abcd abcd 888888888888888888 +abcd abcd 9999999999999999999 +abcd abcd 00000000000000000000 +abcd abcd 111111111111111111111 +abcd abcd 2222222222222222222222 +abcd abcd 33333333333333333333333 diff --git a/src/regress/usr.bin/grep/t13.out b/src/regress/usr.bin/grep/t13.out new file mode 100644 index 000000000..48885a449 --- /dev/null +++ b/src/regress/usr.bin/grep/t13.out @@ -0,0 +1,24 @@ +abcd abcd +abcd abcd 1 +abcd abcd 22 +abcd abcd 333 +abcd abcd 4444 +abcd abcd 55555 +abcd abcd 666666 +abcd abcd 7777777 +abcd abcd 88888888 +abcd abcd 999999999 +abcd abcd 0000000000 +abcd abcd 11111111111 +abcd abcd 222222222222 +abcd abcd 3333333333333 +abcd abcd 44444444444444 +abcd abcd 555555555555555 +abcd abcd 6666666666666666 +abcd abcd 77777777777777777 +abcd abcd 888888888888888888 +abcd abcd 9999999999999999999 +abcd abcd 00000000000000000000 +abcd abcd 111111111111111111111 +abcd abcd 2222222222222222222222 +abcd abcd 33333333333333333333333 diff --git a/src/regress/usr.bin/grep/t14.in b/src/regress/usr.bin/grep/t14.in new file mode 100644 index 000000000..b752bdc39 --- /dev/null +++ b/src/regress/usr.bin/grep/t14.in @@ -0,0 +1,51 @@ +typedef u_int32_t recno_t; + +/* Key/data structure -- a Data-Base Thang. */ +typedef struct { + void *data; /* data */ + size_t size; /* data length */ +} DBT; + +/* Routine flags. */ +#define R_CURSOR 1 /* del, put, seq */ +#define __R_UNUSED 2 /* UNUSED */ +#define R_FIRST 3 /* seq */ +#define R_IAFTER 4 /* put (RECNO) */ +#define R_IBEFORE 5 /* put (RECNO) */ +#define R_LAST 6 /* seq (BTREE, RECNO) */ +#define R_NEXT 7 /* seq */ +#define R_NOOVERWRITE 8 /* put */ +#define R_PREV 9 /* seq (BTREE, RECNO) */ +#define R_SETCURSOR 10 /* put (RECNO) */ +#define R_RECNOSYNC 11 /* sync (RECNO) */ + +typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE; + +/* + * !!! + * The following flags are included in the dbopen(3) call as part of the + * open(2) flags. In order to avoid conflicts with the open flags, start + * at the top of the 16 or 32-bit number space and work our way down. If + * the open flags were significantly expanded in the future, it could be + * a problem. Wish I'd left another flags word in the dbopen call. + * + * !!! + * None of this stuff is implemented yet. The only reason that it's here + * is so that the access methods can skip copying the key/data pair when + * the DB_LOCK flag isn't set. + */ +#if UINT_MAX > 65535 +#define DB_LOCK 0x20000000 /* Do locking. */ +#define DB_SHMEM 0x40000000 /* Use shared memory. */ +#define DB_TXN 0x80000000 /* Do transactions. */ +#else +#define DB_LOCK 0x2000 /* Do locking. */ +#define DB_SHMEM 0x4000 /* Use shared memory. */ +#define DB_TXN 0x8000 /* Do transactions. */ +#endif + +/* Access method description structure. */ +typedef struct __db { + DBTYPE type; /* Underlying db type. */ + int (*close)(struct __db *); + int (*del)(const struct __db *, const DBT *, u_int); diff --git a/src/regress/usr.bin/grep/t15.in b/src/regress/usr.bin/grep/t15.in new file mode 100644 index 000000000..0f7aa2c47 --- /dev/null +++ b/src/regress/usr.bin/grep/t15.in @@ -0,0 +1,4 @@ +tototutu tuto toto to tu ta +tototutu toto to tu ta + +totu diff --git a/src/regress/usr.bin/grep/t15.out b/src/regress/usr.bin/grep/t15.out new file mode 100644 index 000000000..7747b6148 --- /dev/null +++ b/src/regress/usr.bin/grep/t15.out @@ -0,0 +1,2 @@ +tototutu tuto toto to tu ta +tototutu toto to tu ta diff --git a/src/regress/usr.bin/grep/t17.in b/src/regress/usr.bin/grep/t17.in new file mode 100644 index 000000000..257cc5642 --- /dev/null +++ b/src/regress/usr.bin/grep/t17.in @@ -0,0 +1 @@ +foo diff --git a/src/regress/usr.bin/grep/t17.out b/src/regress/usr.bin/grep/t17.out new file mode 100644 index 000000000..257cc5642 --- /dev/null +++ b/src/regress/usr.bin/grep/t17.out @@ -0,0 +1 @@ +foo diff --git a/src/regress/usr.bin/grep/t19.in b/src/regress/usr.bin/grep/t19.in new file mode 100644 index 000000000..21d93d7af --- /dev/null +++ b/src/regress/usr.bin/grep/t19.in @@ -0,0 +1,6 @@ + +a +aa +a_ +a+ ++a diff --git a/src/regress/usr.bin/grep/t19.out b/src/regress/usr.bin/grep/t19.out new file mode 100644 index 000000000..c4b131541 --- /dev/null +++ b/src/regress/usr.bin/grep/t19.out @@ -0,0 +1,2 @@ +aa +a_ diff --git a/src/regress/usr.bin/grep/t21.out b/src/regress/usr.bin/grep/t21.out new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/usr.bin/grep/t22.in b/src/regress/usr.bin/grep/t22.in new file mode 100644 index 000000000..96d32ad74 --- /dev/null +++ b/src/regress/usr.bin/grep/t22.in @@ -0,0 +1,512 @@ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccccccb diff --git a/src/regress/usr.bin/grep/t23.in b/src/regress/usr.bin/grep/t23.in new file mode 100644 index 000000000..e75a4be9e --- /dev/null +++ b/src/regress/usr.bin/grep/t23.in @@ -0,0 +1,7 @@ +word1 +word1-hyphen +word1underscore +nomatch +word2| +|word2| +-word3- diff --git a/src/regress/usr.bin/grep/t23.out b/src/regress/usr.bin/grep/t23.out new file mode 100644 index 000000000..2a69739c2 --- /dev/null +++ b/src/regress/usr.bin/grep/t23.out @@ -0,0 +1,5 @@ +word1 +word1-hyphen +word2| +|word2| +-word3- diff --git a/src/regress/usr.bin/grep/t3.out b/src/regress/usr.bin/grep/t3.out new file mode 100644 index 000000000..fbab1395f --- /dev/null +++ b/src/regress/usr.bin/grep/t3.out @@ -0,0 +1 @@ +Beginning of a line diff --git a/src/regress/usr.bin/grep/t4.out b/src/regress/usr.bin/grep/t4.out new file mode 100644 index 000000000..02426769d --- /dev/null +++ b/src/regress/usr.bin/grep/t4.out @@ -0,0 +1 @@ +This line ends with EnD diff --git a/src/regress/usr.bin/grep/t5.out b/src/regress/usr.bin/grep/t5.out new file mode 100644 index 000000000..d41c4d964 --- /dev/null +++ b/src/regress/usr.bin/grep/t5.out @@ -0,0 +1 @@ +examples of special characters are [, $, ^, * diff --git a/src/regress/usr.bin/grep/t6.out b/src/regress/usr.bin/grep/t6.out new file mode 100644 index 000000000..e6c4af4a7 --- /dev/null +++ b/src/regress/usr.bin/grep/t6.out @@ -0,0 +1 @@ +dot.separated@words diff --git a/src/regress/usr.bin/grep/t7.out b/src/regress/usr.bin/grep/t7.out new file mode 100644 index 000000000..a999a0c21 --- /dev/null +++ b/src/regress/usr.bin/grep/t7.out @@ -0,0 +1 @@ +line diff --git a/src/regress/usr.bin/gzip/CVS/Entries b/src/regress/usr.bin/gzip/CVS/Entries new file mode 100644 index 000000000..ea7409953 --- /dev/null +++ b/src/regress/usr.bin/gzip/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Wed Aug 20 09:29:51 2008// +/t1.sh/1.1/Wed Aug 20 09:29:51 2008// +/t2.sh/1.1/Wed Aug 20 09:29:51 2008// +D diff --git a/src/regress/usr.bin/gzip/CVS/Repository b/src/regress/usr.bin/gzip/CVS/Repository new file mode 100644 index 000000000..d20cf70d4 --- /dev/null +++ b/src/regress/usr.bin/gzip/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/gzip diff --git a/src/regress/usr.bin/gzip/CVS/Root b/src/regress/usr.bin/gzip/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/gzip/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/gzip/Makefile b/src/regress/usr.bin/gzip/Makefile new file mode 100644 index 000000000..6a17ae885 --- /dev/null +++ b/src/regress/usr.bin/gzip/Makefile @@ -0,0 +1,17 @@ +# $OpenBSD: Makefile,v 1.1 2008/08/20 09:29:51 mpf Exp $ + +TESTSCRIPTS=t1 t2 + +.for t in ${TESTSCRIPTS} +REGRESS_TARGETS+=t-${t} +CLEANFILES+=${t}.gz + +t-${t}: + sh ${.CURDIR}/${t}.sh ${.CURDIR} ${.OBJDIR} +.endfor + +CLEANFILES+=*.test + +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/usr.bin/gzip/obj b/src/regress/usr.bin/gzip/obj new file mode 120000 index 000000000..4f3706b36 --- /dev/null +++ b/src/regress/usr.bin/gzip/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/gzip \ No newline at end of file diff --git a/src/regress/usr.bin/gzip/t1.sh b/src/regress/usr.bin/gzip/t1.sh new file mode 100644 index 000000000..8eb299319 --- /dev/null +++ b/src/regress/usr.bin/gzip/t1.sh @@ -0,0 +1,70 @@ +#!/bin/sh +# $OpenBSD: t1.sh,v 1.1 2008/08/20 09:29:51 mpf Exp $ + +# Test if gzip(1) detects truncated or corrupted files + +# Copyright (c) 2008 Marco Pfatschbacher +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +# truncate at 2k +gzip < /etc/rc | dd bs=1k count=2 of=t1.gz 2>/dev/null +if gzip -vt t1.gz; then + echo "=> ERROR: truncation not detected!" + exit 1 +else + echo "=> OK" +fi + +# truncate at 1k +gzip < /etc/rc | dd bs=1k count=1 of=t1.gz 2>/dev/null +if gzip -vt t1.gz; then + echo "=> ERROR: truncation not detected!" + exit 1 +else + echo "=> OK" +fi + +# skip some data in the middle +gzip < /etc/rc | dd bs=1k seek=1 >> t1.gz 2>/dev/null +if gzip -vt t1.gz; then + echo "=> ERROR: corruption not detected!" + exit 1 +else + echo "=> OK" +fi + +# simple fuzzer that modifies one random byte at a random offset + +gzip < /etc/rc > t1.gz +for i in `jot 100`; do + where=$((RANDOM % 2048 + 256)) # random offset (but skip the header) + orig=`dd if=t1.gz skip=$where bs=1 count=1 2>/dev/null |\ + hexdump -e '"%d"'` + fuzz=$((((orig + RANDOM) % 256) + 1)) + if [ $fuzz = $orig ]; then + fuzz=$(((fuzz + 1) % 256)) + fi + echo "$i/100: fuzzing byte @$where: $orig -> $fuzz" + + if (dd if=t1.gz bs=1 count=$where 2>/dev/null; \ + echo -n \\0`printf "%o" $fuzz`; \ + dd if=t1.gz bs=1 skip=$((where+1)) 2>/dev/null) | gzip -tv; then + echo "=> ERROR: corruption not detected!" + exit 1 + else + echo "=> OK" + fi +done + +exit 0 diff --git a/src/regress/usr.bin/gzip/t2.sh b/src/regress/usr.bin/gzip/t2.sh new file mode 100644 index 000000000..9d2d39f4c --- /dev/null +++ b/src/regress/usr.bin/gzip/t2.sh @@ -0,0 +1,39 @@ +#!/bin/sh +# $OpenBSD: t2.sh,v 1.1 2008/08/20 09:29:51 mpf Exp $ + +# test basic gzip functionality + +gzip -c /etc/rc > t1.gz +if ! gzip -vt t1.gz; then + echo "=> ERROR: could not gzip" + exit 1 +else + echo "=> OK" +fi + +if ! gunzip -c t1.gz | cmp -s - /etc/rc; then + echo "=> ERROR: uncompressed file does not match" + gunzip -c t1.gz | diff - /etc/rc + exit 1 +else + echo "=> OK" +fi + +gzip -c /etc/rc /etc/motd > t1.gz +if ! gzip -vt t1.gz; then + echo "=> ERROR: could not gzip multiple files" + exit 1 +else + echo "=> OK" +fi + +cat /etc/rc /etc/motd > rcmotd.test +if ! gunzip -c t1.gz | cmp -s - rcmotd.test; then + echo "=> ERROR: gunzipped files do not match" + gunzip -c t1.gz | diff - rcmotd.test + exit 1 +else + echo "=> OK" +fi + +exit 0 diff --git a/src/regress/usr.bin/gzsig/CVS/Entries b/src/regress/usr.bin/gzsig/CVS/Entries new file mode 100644 index 000000000..b06b886da --- /dev/null +++ b/src/regress/usr.bin/gzsig/CVS/Entries @@ -0,0 +1,28 @@ +/Makefile/1.4/Wed Jun 1 08:19:35 2005// +/file1/1.1.1.1/Sat May 28 01:58:12 2005// +/file2/1.1.1.1/Sat May 28 01:58:12 2005// +/file3/1.1.1.1/Sat May 28 01:58:12 2005// +/gzsig.sh/1.3/Sun May 29 08:54:59 2005// +/pass.ssh/1.1/Sun May 29 08:54:59 2005// +/pass.ssh2/1.1/Sun May 29 08:54:59 2005// +/ssh-rsa/1.1/Sun May 29 02:41:42 2005// +/ssh-rsa-pass/1.1/Sun May 29 02:41:42 2005// +/ssh-rsa-pass.pub/1.1/Sun May 29 02:41:42 2005// +/ssh-rsa.pub/1.1/Sun May 29 02:41:42 2005// +/ssh2-dsa/1.1.1.1/Sat May 28 01:58:12 2005// +/ssh2-dsa-pass/1.1.1.1/Sat May 28 01:58:12 2005// +/ssh2-dsa-pass.pub/1.1.1.1/Sat May 28 01:58:12 2005// +/ssh2-dsa.pub/1.1.1.1/Sat May 28 01:58:12 2005// +/ssh2-rsa/1.1.1.1/Sat May 28 01:58:12 2005// +/ssh2-rsa-pass/1.1.1.1/Sat May 28 01:58:12 2005// +/ssh2-rsa-pass.pub/1.1.1.1/Sat May 28 01:58:12 2005// +/ssh2-rsa.pub/1.1.1.1/Sat May 28 01:58:12 2005// +/x509-dsa/1.1.1.1/Sat May 28 01:58:12 2005// +/x509-dsa-pass/1.1.1.1/Sat May 28 01:58:12 2005// +/x509-dsa-pass.pub/1.1.1.1/Sat May 28 01:58:12 2005// +/x509-dsa.pub/1.1.1.1/Sat May 28 01:58:12 2005// +/x509-rsa/1.1.1.1/Sat May 28 01:58:12 2005// +/x509-rsa-pass/1.1.1.1/Sat May 28 01:58:12 2005// +/x509-rsa-pass.pub/1.1.1.1/Sat May 28 01:58:12 2005// +/x509-rsa.pub/1.1.1.1/Sat May 28 01:58:12 2005// +D diff --git a/src/regress/usr.bin/gzsig/CVS/Repository b/src/regress/usr.bin/gzsig/CVS/Repository new file mode 100644 index 000000000..1565584ca --- /dev/null +++ b/src/regress/usr.bin/gzsig/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/gzsig diff --git a/src/regress/usr.bin/gzsig/CVS/Root b/src/regress/usr.bin/gzsig/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/gzsig/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/gzsig/Makefile b/src/regress/usr.bin/gzsig/Makefile new file mode 100644 index 000000000..c7d2aca43 --- /dev/null +++ b/src/regress/usr.bin/gzsig/Makefile @@ -0,0 +1,8 @@ +# $OpenBSD: Makefile,v 1.4 2005/06/01 08:19:35 marius Exp $ + +do-regress: + @sh ${.CURDIR}/gzsig.sh ${.CURDIR} + +REGRESS_TARGETS=do-regress + +.include diff --git a/src/regress/usr.bin/gzsig/file1 b/src/regress/usr.bin/gzsig/file1 new file mode 100644 index 000000000..398e02245 --- /dev/null +++ b/src/regress/usr.bin/gzsig/file1 @@ -0,0 +1,4 @@ +Oh, I am a C programmer and I'm okay + I muck with indices and structs all day +And when it works, I shout hoo-ray + Oh, I am a C programmer and I'm okay diff --git a/src/regress/usr.bin/gzsig/file2 b/src/regress/usr.bin/gzsig/file2 new file mode 100644 index 000000000..9b39bb72d --- /dev/null +++ b/src/regress/usr.bin/gzsig/file2 @@ -0,0 +1,10 @@ + THE WOMBAT + +The wombat lives across the seas, +Among the far Antipodes. +He may exist on nuts and berries, +Or then again, on missionaries; +His distant habitat precludes +Conclusive knowledge of his moods. +But I would not engage the wombat +In any form of mortal combat. diff --git a/src/regress/usr.bin/gzsig/file3 b/src/regress/usr.bin/gzsig/file3 new file mode 100644 index 000000000..5c201ace4 --- /dev/null +++ b/src/regress/usr.bin/gzsig/file3 @@ -0,0 +1,6 @@ +#define BITCOUNT(x) (((BX_(x)+(BX_(x)>>4)) & 0x0F0F0F0F) % 255) +#define BX_(x) ((x) - (((x)>>1)&0x77777777) \ + - (((x)>>2)&0x33333333) \ + - (((x)>>3)&0x11111111)) + + -- really weird C code to count the number of bits in a word diff --git a/src/regress/usr.bin/gzsig/gzsig.sh b/src/regress/usr.bin/gzsig/gzsig.sh new file mode 100644 index 000000000..81dd879ae --- /dev/null +++ b/src/regress/usr.bin/gzsig/gzsig.sh @@ -0,0 +1,58 @@ +#!/bin/sh +# +# $OpenBSD: gzsig.sh,v 1.3 2005/05/29 08:54:59 djm Exp $ + +set -e + +# TODO: add ssh2 + +# Location of keys, etc for regress is passed in by make target usually +if [ -z "$1" ] ; then + SRCDIR="." +else + SRCDIR="$1" +fi + +KEYS="ssh-rsa ssh2-rsa ssh2-dsa x509-dsa x509-rsa" +KEYS_ENC="ssh-rsa-pass ssh2-rsa-pass ssh2-dsa-pass x509-dsa-pass x509-rsa-pass" + +# Clean up from last time. +gunzip *.gz >/dev/null 2>&1 || true + +for key in ${KEYS}; do + echo "===> $key" >&2 + for x in ${SRCDIR}/file*[0-9] ; do gzip -f < $x > `basename ${x}`-t.gz ; done + gzsig sign -v ${SRCDIR}/$key file*-t.gz + gzsig verify -v ${SRCDIR}/$key.pub file*-t.gz + gzcat file*-t.gz >/dev/null +done + +for key in ${KEYS_ENC}; do + echo "===> $key" >&2 + for x in ${SRCDIR}/file*[0-9] ; do gzip -f < $x > `basename ${x}`-t.gz ; done + # SSH2 keys require longer passwords + if [ "$key" != "${key#ssh2}" ]; then + pass=pass.ssh2 + else + pass=pass.ssh + fi + gzsig sign -v -f ${SRCDIR}/$pass ${SRCDIR}/$key file*-t.gz + gzsig verify -v ${SRCDIR}/$key.pub file*-t.gz + gzcat file*-t.gz >/dev/null +done + +echo -n "Generating random data..." +dd if=/dev/arandom of=masterrand bs=1024k count=2 > /dev/null 2>&1 +echo "done." + +for key in ${KEYS}; do + echo "===> $key" >&2 + cp masterrand rand + gzip -f rand + gzsig sign -v ${SRCDIR}/$key < rand.gz > rand2.gz + gzsig verify -v ${SRCDIR}/$key.pub < rand2.gz + gzcat rand*.gz > /dev/null + rm -f rand* +done + +rm -f masterrand rand file*-t* *.gz diff --git a/src/regress/usr.bin/gzsig/obj b/src/regress/usr.bin/gzsig/obj new file mode 120000 index 000000000..a3a52073a --- /dev/null +++ b/src/regress/usr.bin/gzsig/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/gzsig \ No newline at end of file diff --git a/src/regress/usr.bin/gzsig/pass.ssh b/src/regress/usr.bin/gzsig/pass.ssh new file mode 100644 index 000000000..8bd6648ed --- /dev/null +++ b/src/regress/usr.bin/gzsig/pass.ssh @@ -0,0 +1 @@ +asdf diff --git a/src/regress/usr.bin/gzsig/pass.ssh2 b/src/regress/usr.bin/gzsig/pass.ssh2 new file mode 100644 index 000000000..7452f42f7 --- /dev/null +++ b/src/regress/usr.bin/gzsig/pass.ssh2 @@ -0,0 +1 @@ +asdfg diff --git a/src/regress/usr.bin/gzsig/ssh-rsa b/src/regress/usr.bin/gzsig/ssh-rsa new file mode 100644 index 0000000000000000000000000000000000000000..a9e689d31ce48f1297da8c504bd3ce69a18f11ce GIT binary patch literal 528 zcmV+r0`L7(Q%E3CQb|@pR7D_5MOh$5NlZl`Mo&^rK~x|yE-?xK000000000400aQM z+g(T<(;w%is^~J&k{jUO2=X;8F6tT3w)Ot`fOny34Q7)`D3B~)J>6gpD7{biVYh;V z7A2$}ykr(4xq#Jo%e_WGEbzl*opw@kEcC;4O6fg9SqIGnQ^R$SL018&VHR#4_vt#j(2fz5lZKH$WOBy;%7*g@TZvp!Rp72{x4NvHDN#i!xzLalJAHYc;NeVlU37vXM zdX{;;&I+@X{*FTNr0{-X_?~@#@`s&Nf8pq2VZt;RY|BOh0NEqi+INM<;q9LH)(YG< zO%MI!-+*es3uiV;L){pFDlB`{m&`vB7eSs57?uWlA)7OmqnM*DfNp#HPz@(uHv$0O zr@Wf9f;R02ktc%*toB#ewl#Af+%8Hi<Azg8odb?(|nphPfB0=Rn5fpw4$P(WSv22@bS# z-ilk)C7Rk!(nsz+<#T%?{`T8~z)0gz9Xceik{X9mfZa?&>+r~1^7Js!;QX`wIV-Vm zX3o^BOJsPQZ?kZyVMdg|)Ck8}GL^9a1|t9f04FGQb7deWVRK|=Cm>;SAaG%Gb8u*K zVRL05W^ZyJVQg$5Yh`(JDT#^aAAm_|Wf8rM_S2M>f10M@y{pX;yNF!wceZax(Fo=@ z*YsycCXI&;?=UVL9!Te)#;=Vd`_XGEW>;*8a+a@c!|uJy`*TgT_IXv+h?LC{9>YUv zk?5kPIitm#p5Yt02g});m1fAZ!%*aP3kys7p5_E=$?B^@t z=BFi?$RukG94tk!p2R*=SkyK<_2N!(lN*3XSl?(4d~vAwib(0RK3}vo?L~kkP=Sh~ zP~*v0ukK_Zy{B=Z;fbIQVR!LzE69YJn?!BeGL5`Tr;wulkzz;!TICnRg-~a#s literal 0 HcmV?d00001 diff --git a/src/regress/usr.bin/gzsig/ssh-rsa-pass.pub b/src/regress/usr.bin/gzsig/ssh-rsa-pass.pub new file mode 100644 index 000000000..dfc1e18fb --- /dev/null +++ b/src/regress/usr.bin/gzsig/ssh-rsa-pass.pub @@ -0,0 +1 @@ +1024 35 134131917853284950391145510477172756045839931544982668619745188977366985918739186196269084001279916988917671298832133613111751388988020785476847872539560295837362386527382932025112142024418699606986500503972482158906680805540893182487385887819147394007225376724476121842176735012606751330596673366738622125489 (use 'asdf' as passphrase for all keys) diff --git a/src/regress/usr.bin/gzsig/ssh-rsa.pub b/src/regress/usr.bin/gzsig/ssh-rsa.pub new file mode 100644 index 000000000..55921769d --- /dev/null +++ b/src/regress/usr.bin/gzsig/ssh-rsa.pub @@ -0,0 +1 @@ +1024 35 132619819698483190965252096936372936063564863587959173340752083297150352336281017968800893509167567460516703451182980244937072694546894696518038520176959595891060993015773143100266382681289057905203926362103509966527322468864774548992251408662197860686388811637459339237436127793480475771781348805764793288321 dugsong@wacky diff --git a/src/regress/usr.bin/gzsig/ssh2-dsa b/src/regress/usr.bin/gzsig/ssh2-dsa new file mode 100644 index 000000000..d31ef5fb7 --- /dev/null +++ b/src/regress/usr.bin/gzsig/ssh2-dsa @@ -0,0 +1,12 @@ +-----BEGIN DSA PRIVATE KEY----- +MIIBugIBAAKBgQCciBbiWW+MH1sOqD9XjdXH2/6K681SrWSSUN57ATAjlD48pnfl +EyJS6+3kG+JcjlWB1VXkwQX9E7Um1808DMtQjUXVV02xVvb0gRGsHH47JW5UQYVp +TAb2Mua3L03FHHSPilCkQ0QpCZewoYunFdwbgKxWQyFonzYjOqagHPc5rQIVAMjo +bBODFDdpJd6Zpw4ZS2mkbSsJAoGAPn4WJRtpuH+zVP+V905KYbAdzDsLNoBso/Ym +RtPRpI0vVmw1ocw+aQQa4eaZi8YPab5nHA6XvaTrghwjOAe3ShSsGRRtO3UQ7+Do +8ZSVT7bETVR05OJnqr/+sqi+uHwuUroWNkSQoU6RsBSGfCF0hZsz7dUml7rocl0K +BNuC8LICgYApnQEQrtjTrGo3i3C09JAIkMTJqD39k90G94mFruwQXiNxriV90r8+ ++sm/HB6X4/OzeIQva54af/qZZrhhO5fMjJk96esfUuYnOyiMUb0rUwfCR8A7CyZj +XESPAKSJ7NTfm+p5vLA60/RAh8ZdsWfbz/5rU91ve8Z/rQ1qxHueZQIUTC6VYBZq +1KyrbdpGnsAEI138eIc= +-----END DSA PRIVATE KEY----- diff --git a/src/regress/usr.bin/gzsig/ssh2-dsa-pass b/src/regress/usr.bin/gzsig/ssh2-dsa-pass new file mode 100644 index 000000000..ebe3e310f --- /dev/null +++ b/src/regress/usr.bin/gzsig/ssh2-dsa-pass @@ -0,0 +1,15 @@ +-----BEGIN DSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,44626137B4E044E4 + +sS4Iv6hMSa7vDWoFKQrI2uPf9gGX4X7PW60RHNo2nLNCHVEezICB7I2oSf/cOiC3 +hNkqj7OYI04NFmvi4hJzZjx0OuCJ+fwLu00YEUvi2GMHytfzd2s0p/Qz4lQj+eEc +SMPDr80rpl5X5ki+BB00r+z2zlwpcswS1tqh6T1eGOaTw+xiR9Ocx9EQmTCrC6v0 +4szZ0vFij/nZkDZNSDMuThMH954okv/fR7J0tbSkbY1xkN1YnVdZ3ZESO51B/hxm +JJ0qKQGYtrB6CWaklNtfzQsXqSd0hxSA6caWQP8X2Bvi0/ZSm/1UzyIcnWhmWO8V +c0xgk+ONkPXwxGch+z7Ghnd8JUgC0sItQVIgx2Ig/YWe8z8VT9frrpQUHfB/IoZc +UjDLqJY46IZHehljGN19keiYoWjJ2SMULXdhk3jYch546A3dJiXbMCp1PZps8QSV +v0BjpHfWll1IFtzWE4RRmiRh8AhzaYthBsiBXg6ovMBiQAqIRnRv11YoOk0SFHw9 +UwnBDwr+LkAgJ0zUIVlHktul2xKGkv+AgThVFC+ofR7QTRR4SYg6e4M5/0YrZVim +6KCeWSdkzAyY7+af/frMkQ== +-----END DSA PRIVATE KEY----- diff --git a/src/regress/usr.bin/gzsig/ssh2-dsa-pass.pub b/src/regress/usr.bin/gzsig/ssh2-dsa-pass.pub new file mode 100644 index 000000000..541bf1956 --- /dev/null +++ b/src/regress/usr.bin/gzsig/ssh2-dsa-pass.pub @@ -0,0 +1 @@ +ssh-dss AAAAB3NzaC1kc3MAAACBALglIA7oDKJQ4R1qQsQqbsfv8DHOwZI5fsMMMc2WWPTopnIeAyUfyeK5/3FjbOUiJcPtK+gsPh/48bJhGTmY45xVjf55WWh2bMPfJujlCQg2SzWdeDVWckBasPJSvVkOU1+ImRh0vBi3TccE117kGEyiGL/Xy3Q7mFFiD6VIGVZXAAAAFQCYdaaMrldTqrKQnzqqmpPrNbk0sQAAAIEAmtM52S4JrrtM78nQaVA2uftZxBiQ2tcCQR0IXEvtwj0AX722psrzsrQiLVS6At44oHOWMX8tIN3dhgw1D8NGx+W0i5ikyq3Zi/f48DiLEXlbUmJA3YfFyVSKDs1md2sjlLlq5Zn3Kd+sN1wsz0DKoJI4QMH8Zwo9zEQ+8V7UfsAAAACAAdyJgFXuwjxL0FUve7hqiJDs7gu54bKPOn2aolnHViCQk5uBaRdn64wCCwgck8T2WYyF6ukRFPCgX9hZwnoaSkeVxlJP8h+RQUQnpUYSKj9Vd8k+DIFZ3Zjc/3zeIWihjvnccf+gFig7xnt4NNAzmRq8/dydvaCcYhyYtht8J48= marius@echo.crockster.org diff --git a/src/regress/usr.bin/gzsig/ssh2-dsa.pub b/src/regress/usr.bin/gzsig/ssh2-dsa.pub new file mode 100644 index 000000000..427e7bbdf --- /dev/null +++ b/src/regress/usr.bin/gzsig/ssh2-dsa.pub @@ -0,0 +1 @@ +ssh-dss AAAAB3NzaC1kc3MAAACBAJyIFuJZb4wfWw6oP1eN1cfb/orrzVKtZJJQ3nsBMCOUPjymd+UTIlLr7eQb4lyOVYHVVeTBBf0TtSbXzTwMy1CNRdVXTbFW9vSBEawcfjslblRBhWlMBvYy5rcvTcUcdI+KUKRDRCkJl7Chi6cV3BuArFZDIWifNiM6pqAc9zmtAAAAFQDI6GwTgxQ3aSXemacOGUtppG0rCQAAAIA+fhYlG2m4f7NU/5X3TkphsB3MOws2gGyj9iZG09GkjS9WbDWhzD5pBBrh5pmLxg9pvmccDpe9pOuCHCM4B7dKFKwZFG07dRDv4OjxlJVPtsRNVHTk4meqv/6yqL64fC5SuhY2RJChTpGwFIZ8IXSFmzPt1SaXuuhyXQoE24LwsgAAAIApnQEQrtjTrGo3i3C09JAIkMTJqD39k90G94mFruwQXiNxriV90r8++sm/HB6X4/OzeIQva54af/qZZrhhO5fMjJk96esfUuYnOyiMUb0rUwfCR8A7CyZjXESPAKSJ7NTfm+p5vLA60/RAh8ZdsWfbz/5rU91ve8Z/rQ1qxHueZQ== marius@echo.crockster.org diff --git a/src/regress/usr.bin/gzsig/ssh2-rsa b/src/regress/usr.bin/gzsig/ssh2-rsa new file mode 100644 index 000000000..87d56ad56 --- /dev/null +++ b/src/regress/usr.bin/gzsig/ssh2-rsa @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWgIBAAKBgQDEI4gjO9Ormd3RedJeFbUWqnvIANWXGHs5GJa0gL6BNmf5A+C0 +qEwjNkQChKQfvlquBMaphIFbVEFp/tgRYq1BNOrS6ihRL4ZUbnRFY4zR3/+hrSRR ++Njdaz8iN1uKUTRTfeXIE9akRsjPcnshWij0e9J0Qu40V5nzlWM0Hi+7twIBIwKB +gGTfEtBKp1+Q9bwwBcn8iQRXrV+LZog4eeLZchOv7PH+uSD6rhPERGnhZM4YVGgY +wOvH8SP7ALKgXCfiJfpQAVPT9WYrwct8x/cRpF/4Bc0eo/wrQ43H0gfrwTX5D9YL +0ntD+9PYEP+kdQ1Db9WQGvSnbVhPiE14cxKnk9d9dvpLAkEA/OV3Y5wG7t+hZjI/ +IQfFn18TJMKVObga4+Lf4Yg2sydo0okTGkUMQdFwp3088b2FeMXIpDj8pyHYnlEj +hyqoMQJBAMaLv4bMWwbo/UmCaBkkby+3B8J607qWlq6555w0iL/zpacr7mOpbgxM +qI75xSWMWmgp1TzzS7gKIVvkX1vzEGcCQF3u1JK2S7fPZ9WAYJc9ZqjozJigC4p3 +lPWOyC8yl/lmaMM6OkuV/T0Epi+U6sAwc2dfZ8f36NBdB1C/DTI0alsCQBaw4rBR +3oRyZhcHlt5NTokcO2au86BLuXMN7pWCWMV67lw/iPVycvoXY7iRkt+4RNi0UuJk +8rXyh3g3W1r3NRMCQQCMW+tjporzkndBUlMnFbnsl7j4cGk3Q7L3oK6MovQvpSMI +i2paM3tWug1ZkMkDUxaEKiAUGva8cb503/9i4gIN +-----END RSA PRIVATE KEY----- diff --git a/src/regress/usr.bin/gzsig/ssh2-rsa-pass b/src/regress/usr.bin/gzsig/ssh2-rsa-pass new file mode 100644 index 000000000..be944eb35 --- /dev/null +++ b/src/regress/usr.bin/gzsig/ssh2-rsa-pass @@ -0,0 +1,18 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,50B5F719BDFC6994 + +zqFlCxorA3kFcOkb7SaTuHC8UvkkPSDSSlhFcfdFDbDPnEHcgJGrPukUftEdVUQX +UzPit5JKRtcRdzMAvkzNYMvP05VpVSjMyvfArIOGF23FuiYuuD4tFwNxJPK2aWHx +FY7iSdLtyBd2M6LMPP6KkSESxZz0Hz/2N4mvo/i9rRXYP3E8yKWrbsuQrKe05bav +998Eh+4/FKOBITgaZcsKuSA0JHgiPVRx72no4K5SuQ1cyBfWH69f+py7QmYW9AXQ +f02L+qMhXUJNL+NyfTCBYYpJGX2aATCe3K2wMsx9cLQsnx7RfEuZ8BvqZCl6gRpr +p4c+WteNJWPh30ErpDkHJ7lMUA1k8jBVw1SszNWUUCBuu7dALmaFp1/YgB86UVG5 +8s0KTxcJiTfLHMMazEFhL+WyTQITQ3z5UxqDRj+LP5CPcgcMZliJnH8kXg6D/m6+ +bSRUAhT77nA7gb63buTksGCNgrbeBAEj69nv+y/elfkMilVducQLbP6EeT4dC5M7 +xb/00ckpDYhtl6r9FKA8casrGzQr62Qsvcesag9DehZvlzUk8jMd6/wOsOw21Hy8 +BR0oDhfZLiCBt6eHKdJCTWMuRJohZVfghxTJ+ol2QQDxZHGIN9r/TEJLUiI8C5ai +Wk95k9+9hiafUetaLb+qHRPmVtIDXSqNgSxhmM80h1r4iQQ93ruuexTt/YJDB+0u +jY9yyudnI4lJoAE6WMfUnIazlqkhD4idAEkfn/v6QTjRs6PkyO41x2byMK4DPZW5 +6HhgaCd/yyBRRFvO7FPJEj0X505BK+KetNyqIQI8v1o= +-----END RSA PRIVATE KEY----- diff --git a/src/regress/usr.bin/gzsig/ssh2-rsa-pass.pub b/src/regress/usr.bin/gzsig/ssh2-rsa-pass.pub new file mode 100644 index 000000000..a1fc5a17b --- /dev/null +++ b/src/regress/usr.bin/gzsig/ssh2-rsa-pass.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAu8X11x6Db5pDS7T7tgPnh4/lc1/pa7Dh8Mgxo7IEV7QzgEf2TjTlAmpvWHD4J1RLDYNELhzyE/cF78llNTUxgQwiTmK/dN216i+zJbb8RjBEB3AipiAnJVF4MDcMBFUsGSgFkeUArR2TUSH+e0lJ3GuzsgDfNUJBacYBGt/ecac= marius@echo.crockster.org diff --git a/src/regress/usr.bin/gzsig/ssh2-rsa.pub b/src/regress/usr.bin/gzsig/ssh2-rsa.pub new file mode 100644 index 000000000..ddbf367e9 --- /dev/null +++ b/src/regress/usr.bin/gzsig/ssh2-rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAxCOIIzvTq5nd0XnSXhW1Fqp7yADVlxh7ORiWtIC+gTZn+QPgtKhMIzZEAoSkH75argTGqYSBW1RBaf7YEWKtQTTq0uooUS+GVG50RWOM0d//oa0kUfjY3Ws/IjdbilE0U33lyBPWpEbIz3J7IVoo9HvSdELuNFeZ85VjNB4vu7c= marius@echo.crockster.org diff --git a/src/regress/usr.bin/gzsig/x509-dsa b/src/regress/usr.bin/gzsig/x509-dsa new file mode 100644 index 000000000..55cb05aa2 --- /dev/null +++ b/src/regress/usr.bin/gzsig/x509-dsa @@ -0,0 +1,12 @@ +-----BEGIN DSA PRIVATE KEY----- +MIIBuwIBAAKBgQDzr1+m+lDe1ZDznY8GJRcImVl0cfhk0G91K6l1r+3ftksv8YaT +dnKuz8ObSiqlsCNMfIybW3uIYx71IugxbjLonHE49PJRiKhdcJUvlrksLQzncwuV +I4kiElw4cq0AslpcPEJt8UDFM5SpfW9bX1TA95KRwBCPTNc8xoLD+JYBswIVAOIq +U0aSdFw4PYIeQhXZgk/hKEinAoGAfAdU59EBrer7YL348cLEZhSshWxL2RXA+6v7 +ac7rp0/Wb41uqfQMyNIyW5PJiRgT1pMhOsPb5jmcuBbty/05iSk5G8dW8wNCHk87 +4giD5o5u9pmnCxv07UOV+hmg9s9ycrFW0AHOVjDVnBkhfKvHH1Fw0xB6vIH8cxy9 +dCCPWGwCgYAyA+Vk5i2LXSMPb/k9NjM7TSCfxlcGKlAqlj1oHWV2BnsRFEq5BoZD +0c2uplWvrGNroRgNOQsYMPxp6h3+cbv1XwA064GrxwgwU6J/zVm2uYig+qoyYhSt +PUecFmwWpFIhCfwuuaAGopL2SpVAIE4geJcE0m2HCAAa74yIh16hZwIVANMEYw+o +mU9yKW0GZQZ/ow9fzo9i +-----END DSA PRIVATE KEY----- diff --git a/src/regress/usr.bin/gzsig/x509-dsa-pass b/src/regress/usr.bin/gzsig/x509-dsa-pass new file mode 100644 index 000000000..9de1b26fc --- /dev/null +++ b/src/regress/usr.bin/gzsig/x509-dsa-pass @@ -0,0 +1,15 @@ +-----BEGIN DSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,C0D4DFFF67A910A2 + +aPwJ2JdDm5ToSCgDgub+RCDXKJWIlc8f3Rpaf0mHdoqR7WokV1fnRtcWYNTuSodx +YnQSbMv9eOKJFf1JOqKrMG6xrNI/fU/GvcwE391PGuET+P7+7Ua+zjcnoSDU3x6P +PK0q11cCu3hZvpL3YcJy6vgfWUsWfO08/VDjOcbTUiGs4G7mO3R4yQptI3Y+fwOf +0OPH02DWxOxS9353OiuPvBXyJE0+bHKVFBxf/mV5WVNtOccvqKL4qq9cGJ3mB8so +wIdP58u4bzHrnVh7Z1pwgp/CS6O1LLIfYcw64HA7x1i9TA4KXQN2Z+06aWz844n9 +ERmFoQpBobD85hbp5lfTvKhg0fN1bec411LagiHOJJl6QYsycWPF2ar0ynlWBP43 +ni/0F9I96uQGT/xo944Qk9N6nvvscBl8yBdt0A4LNll7z25ctCCltgtM+0ksY/HG +h/Vmc+u7zUHda/umZkMqLgf7boPmrcpHyubekIB+Tj/TFr5XXzcdG+ne/uwHN72Q +lSl9+b1r8ZTwhDiCszWe37XfLE39LZlYcowFO8eTGXjJmJk5n9JH8B15pxW7v9h7 +BlWdImU/TkxzRPM1gvox4g== +-----END DSA PRIVATE KEY----- diff --git a/src/regress/usr.bin/gzsig/x509-dsa-pass.pub b/src/regress/usr.bin/gzsig/x509-dsa-pass.pub new file mode 100644 index 000000000..172351a20 --- /dev/null +++ b/src/regress/usr.bin/gzsig/x509-dsa-pass.pub @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICujCCAnigAwIBAgIBADALBgcqhkjOOAQDBQAwQjELMAkGA1UEBhMCVVMxCzAJ +BgNVBAgTAk1JMQswCQYDVQQHEwJBMjELMAkGA1UEChMCeW8xDDAKBgNVBAMTA2J5 +ZTAeFw0wMTA3MTAwNjMwNDBaFw0wMTA4MDkwNjMwNDBaMEIxCzAJBgNVBAYTAlVT +MQswCQYDVQQIEwJNSTELMAkGA1UEBxMCQTIxCzAJBgNVBAoTAnlvMQwwCgYDVQQD +EwNieWUwggG3MIIBKwYHKoZIzjgEATCCAR4CgYEAp9UP87glkj3vh4KVCGgySs+A +KSpHYN8EQH7aWKePutKQlVTTSB02lmYj92Vb1XFLpo1M3QdKjbCpJgU9v+WWPvf5 +U5kfQ9rpqyqoUtCdk88azyKQYZJK2A2gRAa6BMDGUWH0YcSF6q5/MboZ/B2Pzn/j +H9ykyv3rR0gpRh6v2McCFQCTj4NTYqeUWLsnK4XOrsZyEiFjrQKBgDTu/x8CRhVo +7V9ZhS11SU/PTzzTmJBFsXf33k45gb5To3L9hVqt7qfhSiEImsWxVUtXu1ckAUQW +svzahsSnGd4zo8tmKStRbNYqEXFCkDivB/CDdBweYclIs3rhB4zeezFu/x//xY6T +JyERnxVh17ZY9PGE0nE0mEbJmvtvKivjA4GFAAKBgQCGjriTb+54KiD8FXypZ09+ +PRDDm1eqNnC5mLAOweKQAmgeP8ZDlvBlhfH4WPwKnZZVqZv9eW5/GfUKCxM9oIdK +0qSl3yl4DCchl3yDzCAJtXTiSRUmI7wJZVdw/2+6Tcu+hXFx8lxFfxsOOKL2r6FE +wKoPfoMhHRBh1MZ6K/A2ODALBgcqhkjOOAQDBQADLwAwLAIUJdS9UrFn80FF5BIg +pdftVEKOleQCFDCMhVcHzhDNr1U5IPxJhw1rszih +-----END CERTIFICATE----- diff --git a/src/regress/usr.bin/gzsig/x509-dsa.pub b/src/regress/usr.bin/gzsig/x509-dsa.pub new file mode 100644 index 000000000..98f50585f --- /dev/null +++ b/src/regress/usr.bin/gzsig/x509-dsa.pub @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDBDCCAsGgAwIBAgIBADALBgcqhkjOOAQDBQAwZzELMAkGA1UEBhMCVVMxCzAJ +BgNVBAgTAk1JMRIwEAYDVQQHEwlBbm4gQXJib3IxKTAnBgNVBAoTIHNtYXNoIHlv +dXIgaGVhZCBvbiB0aGUgcHVuayByb2NrMQwwCgYDVQQDEwNmb28wHhcNMDEwNzEw +MDYxMTQ3WhcNMDEwODA5MDYxMTQ3WjBnMQswCQYDVQQGEwJVUzELMAkGA1UECBMC +TUkxEjAQBgNVBAcTCUFubiBBcmJvcjEpMCcGA1UEChMgc21hc2ggeW91ciBoZWFk +IG9uIHRoZSBwdW5rIHJvY2sxDDAKBgNVBAMTA2ZvbzCCAbYwggErBgcqhkjOOAQB +MIIBHgKBgQDzr1+m+lDe1ZDznY8GJRcImVl0cfhk0G91K6l1r+3ftksv8YaTdnKu +z8ObSiqlsCNMfIybW3uIYx71IugxbjLonHE49PJRiKhdcJUvlrksLQzncwuVI4ki +Elw4cq0AslpcPEJt8UDFM5SpfW9bX1TA95KRwBCPTNc8xoLD+JYBswIVAOIqU0aS +dFw4PYIeQhXZgk/hKEinAoGAfAdU59EBrer7YL348cLEZhSshWxL2RXA+6v7ac7r +p0/Wb41uqfQMyNIyW5PJiRgT1pMhOsPb5jmcuBbty/05iSk5G8dW8wNCHk874giD +5o5u9pmnCxv07UOV+hmg9s9ycrFW0AHOVjDVnBkhfKvHH1Fw0xB6vIH8cxy9dCCP +WGwDgYQAAoGAMgPlZOYti10jD2/5PTYzO00gn8ZXBipQKpY9aB1ldgZ7ERRKuQaG +Q9HNrqZVr6xja6EYDTkLGDD8aeod/nG79V8ANOuBq8cIMFOif81ZtrmIoPqqMmIU +rT1HnBZsFqRSIQn8LrmgBqKS9kqVQCBOIHiXBNJthwgAGu+MiIdeoWcwCwYHKoZI +zjgEAwUAAzAAMC0CFQDRnU8UsC1rZ39Au/q0ZfpFeRq55QIUYDXpNw4n1bMuJnMk +qJUYEBD6IRw= +-----END CERTIFICATE----- diff --git a/src/regress/usr.bin/gzsig/x509-rsa b/src/regress/usr.bin/gzsig/x509-rsa new file mode 100644 index 000000000..5c9b06865 --- /dev/null +++ b/src/regress/usr.bin/gzsig/x509-rsa @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCukvRHa6ILs2vVy7PeL6L96A0ejwvEQEAWb7tAor1vNqiNfkaw +hoSnsgmSU97/K5mA0h0HmqUsWi1lRrWWXOvNy3rdfzdB0UllU+Y9zzTe0YqoUmUe +rHM6cbkpUFm5Wb36o3me87h+FD8NA4phw513CF+gyRYnuXjZGx07ZwXztwIDAQAB +AoGACwvrfzV1XI4u7allKVMUWkK7yco9cV6rb4AEdlOV7xqjUcjCylrIvB/M8UBz +ZOwqW3dwNNH5T7QpGTZ/OROKLDGuOFVpN+yolhrqK3LL6YrvHo6W9Afk+7ee6DEJ +Z+V0mYftp4shKpkHCCteaNzgd3V3sRJ/SLaj8puV4JZpd7kCQQDnSbeXWxXSGI/5 +PEKVc0soo7jTY3SqdPrHmUM46N1quZWiOcW4UH9sfD4MmFGFea9Rq90Y23Jza/ZX +9Aw4MKNlAkEAwTn5iyrMAxwrAaFg1mh6PGYx/69WfqC/57GofLSFVUaCetlIm9k6 +FzV+Qco7f62bBjPyeBfwucF/GFH6Yn++6wJATkMDfJO1roHhNdTOMwPwSrAbumvM +7mDm+uNBe+BQC+0AVQR3gwa6F1tzI4/nBeNHD7u39NFMyQGfOeO6vsi2gQJATAF1 +AmQEOdjzpcGH6O7R3j5Ivo2G1Wp/8jB02RDdPaztmEst/3fUHNsC3fghrVhpmWgH +oWuxWjAdwUBF4EblnwJBAKA5V30pM15cHt70UbNMXrOy1PF9eza++xbpA8Ddvs97 +C4dJH1qZe4MlHC+E0Iy9lJoyEsUSg9Nmn9658NTjg0A= +-----END RSA PRIVATE KEY----- diff --git a/src/regress/usr.bin/gzsig/x509-rsa-pass b/src/regress/usr.bin/gzsig/x509-rsa-pass new file mode 100644 index 000000000..472360206 --- /dev/null +++ b/src/regress/usr.bin/gzsig/x509-rsa-pass @@ -0,0 +1,30 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,7AB82F33F528299F + +G3aWCID7RQCY7nlqk9XQlm9F7Re7ZMTcXOoPiG9sr5zhc3Ke8Npdz/at+4yn89Nl +8aD3T+mWysa9LrxG85EYUoupNx6faYq8ekwabhL/q5YDcWTDTrfhMG1sJfOLz/oD +6fmG7GO2Rj9Qpyl4TeYRGKWq+i1GAbXcfky2uAYznZUmXbaSPGFzlLqdn7fh9wku +9hwELKH1khBcmvPU8TWf+xQVgDcKwhVlg8pwMz3t60TLdSgOUtB/2KqQqRLehg7j +LfisF/0sByDeZBd8PTfHygHaz8un12MhObwLp+JLCytHznsV7GQku0PHw4Kp9Vb8 +75YF8oBNXb/E24uywv87k0XrtZtdNjJlLmcAOVPQroCZycd4gfBo4k8Hp/YXz+vf +ng3WbmFHPwNHUvmdzc5UbHl+N5iYLy0wYgFhdrOTyzodL0TcKp2kDwpnkaKRtiQv +Q0GPfg20YjQjgWkgyH5I4E6nCuCH8/HAxx0NziHwJmA+xQxMdrssYJAb8AMt9Ix5 +by1QMnRWNN6g6xdHp/zqm0l3H7IF3+MN7iW94czrSnsg/l72mkiq8O9W1sQkaBp7 +kqTcm9MHE8OZxOBV4ipEkyLW7IHi/3rguB9llBcGHc6WEhB6dZFTfqckGDyDQpQ3 +QxbaHQRCTV+LgN4nkCI5QUstJtF0Pgyym9DmXuk7XOwwnYouhijVSuOdwqPCgXOg +P08Swcn/gWIl8Ksa9Nb8i4KUkd3xL827fuYqzg8gs6f43fBRPPNarf1toK4fRV8T +cxk55r6aVwFgIDA6eys7pI0YyGW2TfFTDyPc7FtvCxtJfQPonPTN6pGSzqkmgbKe +QNJmAxmhqPiytTasUtzIAjiLXFhy/n43AItzqt8ffFOOouU3zS86fylG5EPeZCHo +zN4LpbzhlyMsWvDEBAgRTQsZm/LBY1lhYaxGqjboImFuR4NSflhRwUFY9TEMkiUd +c1qQmda/uzu1R/5prrEVr015xo2N97HfFNnqSvnR8Hp6keJLdmIJMPa7q3uN9A4F +LGh4P53KzAWXZ3LzDigRJ53nnbJrCfD80MIgAW+jonaygsd3wQdgr/v8iBn4TWNc +BKXJKggH5VrgWFDjhqeWwSUk0B4ZLCFiHnKxuzvsyVb1xdBp+alHTRhZDqU+Oyj1 +MKYWzF/eTlJ66DT66WBqQIgX4azhg91Afi+kjTtvtfF9EN0n12tV7kypQ9YRhE4U +WSddygaq/Vko4/ULwwHH/PeGsyaDtaOqwORGwqNw0zWeElJdkizI41YK6uWwvAja +Xtr7456+YgXYnovbG19360a/nTjwJ/IVly7MQOVuWumJoJ/WUC4XDXdIbCsQZdk6 +wLIUA6GXDAHrQJ/v0Ig6f/N4HYrX4QLSOkjgQvE0n/H12A2v56BQk0to6zCvN2Ey +b8gXEW507Zz8v24nk1P090oGwJWI90n5lmZI14xbUzInX89kopyT19fCgCg0g+o5 +TujY8fIMgDOoS5EETwjxMFtMVRyA3S7rPE0AQK9ESMl8xi1XWIODZ88wIonw91QR +/UaSBDyf+muG7QXQCQNpUxE1Ge1QBhz6K1sVVSILlKqe6Dwrw/g79g== +-----END RSA PRIVATE KEY----- diff --git a/src/regress/usr.bin/gzsig/x509-rsa-pass.pub b/src/regress/usr.bin/gzsig/x509-rsa-pass.pub new file mode 100644 index 000000000..18884894d --- /dev/null +++ b/src/regress/usr.bin/gzsig/x509-rsa-pass.pub @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIC/jCCAeYCAQAwDQYJKoZIhvcNAQEEBQAwRTELMAkGA1UEBhMCVVMxCzAJBgNV +BAgTAk1JMQswCQYDVQQHEwJBMjENMAsGA1UEChMEYXNkZjENMAsGA1UEAxMEYXNk +ZjAeFw0wMTA3MTAwNjMyNDFaFw0zMTA4MTMxNzQwMjVaMEUxCzAJBgNVBAYTAlVT +MQswCQYDVQQIEwJNSTELMAkGA1UEBxMCQTIxDTALBgNVBAoTBGFzZGYxDTALBgNV +BAMTBGFzZGYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFMXY/jafo +R2DhsLmmU+/bi6qHaXjL/VUZpYBkyWnoW7wys1LR7oT/ovAdoaPojpolbq5Zo3F2 +NkxWd2NGPsnKl2oxuNdnAoAmjwLzEmSzZ4ZAsn5FBZ8QDMuwFkur8ogr3JOBIo8k +h8y5bgCDNByQDKNNF6Oaf0/fveAzC2DAEH6NeOYQA3qof4AsFg+nvCduVlEKmErJ +zQk2ncCJ7gKi8R8Q4dgliL7D/BXxNqrhzBK5/dtxEBYVkT9MNZVj9cZNV8x7G+TQ +wdvtw57iTk1bK1PwdCcLIICy8GT2HfEW2CKZ/scvdsP9NGP0P5pgVsIenZcj2TfE +uEDDiXEdUrKVAgMBAAEwDQYJKoZIhvcNAQEEBQADggEBAG4AFAiCXFcI4iZF/TnY +xuoJyds7FojFMpu5vNAwgru5+kKUoEroZ1xVp8CSrC63EZEDypkj8fekKXvrb4nF +bnNZcaSFV0fWDfpNjk3rc7JcqM2mfhvrfH/ew+MtCTO9kpKOaZMiOurzLEuqza12 +PbllWzd79WRE8mac4nBcjCFHGF5dDjz3qtLWeG+QS/jJ/LXBcxUa3b0bnFToBuIr +FZywl7lPgMc5zTm9TEpa8unM5S98F3EXoJvrAL+pnktp/TO0gWhinD347/7Zj8Xc +9PB8PfHPKzdvnYWIWKNAsrurmNrCfiCnRFLyYuAGiZN9KW2gSD2SginDWIWRqs7y ++IM= +-----END CERTIFICATE----- diff --git a/src/regress/usr.bin/gzsig/x509-rsa.pub b/src/regress/usr.bin/gzsig/x509-rsa.pub new file mode 100644 index 000000000..a10fd213e --- /dev/null +++ b/src/regress/usr.bin/gzsig/x509-rsa.pub @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAYACAQAwDQYJKoZIhvcNAQEEBQAwVDELMAkGA1UEBhMCVVMxCzAJBgNV +BAgTAk1JMRIwEAYDVQQHEwlBaG0gTmFicm8xEzARBgNVBAoTCnlvdXIgbW9tbWEx +DzANBgNVBAMTBmRvbmtleTAeFw0wMTA3MTAwNjEzMjRaFw02MDA2MTgxMDQ4MzZa +MFQxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNSTESMBAGA1UEBxMJQWhtIE5hYnJv +MRMwEQYDVQQKEwp5b3VyIG1vbW1hMQ8wDQYDVQQDEwZkb25rZXkwgZ8wDQYJKoZI +hvcNAQEBBQADgY0AMIGJAoGBAK6S9Edroguza9XLs94vov3oDR6PC8RAQBZvu0Ci +vW82qI1+RrCGhKeyCZJT3v8rmYDSHQeapSxaLWVGtZZc683Let1/N0HRSWVT5j3P +NN7RiqhSZR6sczpxuSlQWblZvfqjeZ7zuH4UPw0DimHDnXcIX6DJFie5eNkbHTtn +BfO3AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAJ4SUU8qYRZRpLtuFW1k583gsKakl +tJxqTPHYr/QQzbsSGcDBGnEqlUaBV7jV4pSW/b85etQfBpujtR4z8GHI/TF282LX +nEvZ94WB1wEKnZoLr1BXSZ5gOd6UtgnT526j+ss+cf9IvU0czWBLsgihxzGWrwKx +nEQelOMIMoqEz10= +-----END CERTIFICATE----- diff --git a/src/regress/usr.bin/m4/CVS/Entries b/src/regress/usr.bin/m4/CVS/Entries new file mode 100644 index 000000000..81d52203e --- /dev/null +++ b/src/regress/usr.bin/m4/CVS/Entries @@ -0,0 +1,50 @@ +/args.m4/1.1/Wed Oct 10 23:23:59 2001// +/args.out/1.1/Wed Oct 10 23:23:59 2001// +/args2.m4/1.1/Sat Aug 16 09:57:12 2008// +/args2.out/1.1/Sat Aug 16 09:57:12 2008// +/comments.m4/1.1/Tue Sep 6 15:33:21 2005// +/comments.out/1.1/Tue Sep 6 15:33:21 2005// +/dumpdef.m4/1.1/Fri Jun 26 08:44:07 2009// +/esyscmd.m4/1.1/Sun Oct 14 09:41:55 2001// +/esyscmd.out/1.1/Sun Oct 14 09:41:55 2001// +/eval.m4/1.1/Wed May 12 21:24:37 2004// +/eval.out/1.1/Wed May 12 21:24:37 2004// +/ff_after_dnl.m4.uu/1.1.1.1/Sat Jul 1 00:31:01 2000// +/ff_after_dnl.out/1.1.1.1/Sat Jul 1 00:31:01 2000// +/fibo.m4/1.2/Sat Jul 1 14:18:39 2000// +/fibo.pl/1.2/Mon Jan 29 02:05:59 2001// +/gm4wrap3.out/1.1/Wed Mar 2 10:12:41 2005// +/gnuformat.m4/1.1/Mon Mar 20 20:27:45 2006// +/gnuformat.out/1.1/Mon Mar 20 20:27:45 2006// +/gnupatterns.m4/1.1/Sun Nov 7 10:25:59 2004// +/gnupatterns.out/1.1/Sun Nov 7 10:25:59 2004// +/gnupatterns2.m4/1.1/Tue May 17 20:37:11 2005// +/gnupatterns2.out/1.1/Tue May 17 20:37:11 2005// +/gnuprefix.m4/1.1/Wed Oct 14 17:22:15 2009// +/includes.aux/1.1/Sat Aug 16 10:02:32 2008// +/includes.m4/1.1/Sat Aug 16 10:02:32 2008// +/includes.out/1.1/Sat Aug 16 10:02:32 2008// +/m4wrap.m4/1.1.1.1/Sat Jul 1 00:31:01 2000// +/m4wrap.out/1.1.1.1/Sat Jul 1 00:31:01 2000// +/m4wrap2.m4/1.1/Sat Oct 6 10:59:11 2001// +/m4wrap3.m4/1.1/Wed Mar 2 10:12:41 2005// +/m4wrap3.out/1.1/Wed Mar 2 10:12:41 2005// +/patterns.m4/1.4/Sun Jun 8 20:11:45 2003// +/patterns.out/1.4/Sun Jun 8 20:11:45 2003// +/quotes.gnu.out/1.1/Sat Sep 29 15:49:18 2001// +/quotes.m4/1.2/Tue Sep 6 15:33:21 2005// +/quotes.out/1.2/Tue Sep 6 15:33:21 2005// +/reconstitute/1.1/Tue Sep 6 15:33:21 2005// +/redef.m4/1.2/Thu Sep 27 22:40:58 2001// +/redef.out/1.2/Thu Sep 27 22:40:58 2001// +/strangequotes.m4.uu/1.2/Wed Sep 19 19:15:08 2001// +/strangequotes.out/1.1/Mon Sep 17 15:46:02 2001// +/synch1.m4/1.1/Tue Sep 6 15:33:21 2005// +/synch1.out/1.1/Tue Sep 6 15:33:21 2005// +/synch1bis.out/1.1/Tue Sep 6 15:33:21 2005// +/weird,name.m4/1.1/Wed Oct 10 11:16:28 2001// +/Makefile/1.28/Mon Apr 5 23:11:51 2010// +/gnuprefix.out/1.2/Mon Apr 5 23:11:51 2010// +/translit.m4/1.1/Tue Mar 23 20:11:52 2010// +/translit.out/1.1/Tue Mar 23 20:11:52 2010// +D diff --git a/src/regress/usr.bin/m4/CVS/Repository b/src/regress/usr.bin/m4/CVS/Repository new file mode 100644 index 000000000..e0a9e9177 --- /dev/null +++ b/src/regress/usr.bin/m4/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/m4 diff --git a/src/regress/usr.bin/m4/CVS/Root b/src/regress/usr.bin/m4/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/m4/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/m4/Makefile b/src/regress/usr.bin/m4/Makefile new file mode 100644 index 000000000..fdd235e10 --- /dev/null +++ b/src/regress/usr.bin/m4/Makefile @@ -0,0 +1,108 @@ +# $OpenBSD: Makefile,v 1.28 2010/03/23 20:11:52 espie Exp $ + +FIBOMAX=25 +M4=m4 + +.SUFFIXES: .m4 .m4.uu +CLEANFILES+= ff_after_dnl.m4 strangequotes.m4 fibo.out + +REGRESS_TARGETS= test-ff_after_dnl test-m4wrap test-m4wrap2 \ + test-m4wrap3 test-gm4wrap3 test-fibo \ + test-patterns trip test-strangequotes test-redef test-quotes \ + test-weird test-args test-args2 test-esyscmd test-eval test-gnupatterns \ + test-gnupatterns2 test-comments test-synch1 test-synch1bis \ + test-gnuformat test-includes test-dumpdef test-gnuprefix \ + test-translit + +test-ff_after_dnl: ff_after_dnl.m4 + ${M4} ff_after_dnl.m4 | diff - ${.CURDIR}/ff_after_dnl.out + +.m4.uu.m4: + uudecode $< + +test-m4wrap: + ${M4} ${.CURDIR}/m4wrap.m4 | diff - ${.CURDIR}/m4wrap.out + +test-m4wrap2: + test `${M4} ${.CURDIR}/m4wrap2.m4 | wc -c` == 0 + +test-m4wrap3: + ${M4} ${.CURDIR}/m4wrap3.m4 | diff - ${.CURDIR}/m4wrap3.out + +test-gm4wrap3: + ${M4} -g ${.CURDIR}/m4wrap3.m4 | diff - ${.CURDIR}/gm4wrap3.out + +test-patterns: + ${M4} ${.CURDIR}/patterns.m4 | diff - ${.CURDIR}/patterns.out + +test-gnupatterns: + ${M4} -g ${.CURDIR}/gnupatterns.m4 | diff - ${.CURDIR}/gnupatterns.out + +test-gnupatterns2: + ${M4} -g ${.CURDIR}/gnupatterns2.m4 | diff - ${.CURDIR}/gnupatterns2.out + +test-gnuformat: + ${M4} -g ${.CURDIR}/gnuformat.m4 | diff - ${.CURDIR}/gnuformat.out + +test-translit: + ${M4} ${.CURDIR}/translit.m4 | diff - ${.CURDIR}/translit.out + +fibo.out: + perl ${.CURDIR}/fibo.pl ${FIBOMAX} >$@ + +test-fibo: fibo.out + ${M4} -DN=${FIBOMAX} ${.CURDIR}/fibo.m4| diff - fibo.out + +trip: + echo "undefine(\`errprint')"|MALLOC_OPTIONS=A ${M4} -Derrprint=a >/dev/null + +test-quotes: + ${M4} ${.CURDIR}/quotes.m4 2>&1| \ + sed -e 's,\( *\).*/quotes.m4,\1quotes.m4,' | \ + diff - ${.CURDIR}/quotes.out + +test-comments: + ${M4} ${.CURDIR}/comments.m4 | diff - ${.CURDIR}/comments.out +test-strangequotes: strangequotes.m4 + ${M4} strangequotes.m4| diff - ${.CURDIR}/strangequotes.out + +test-redef: + ${M4} ${.CURDIR}/redef.m4 | diff - ${.CURDIR}/redef.out + +test-weird: + test `${M4} ${.CURDIR}/weird,name.m4 | wc -c` == 0 + +test-args2: + ${M4} ${.CURDIR}/args2.m4 | diff - ${.CURDIR}/args2.out + +test-args: + ${M4} ${.CURDIR}/args.m4 | diff - ${.CURDIR}/args.out + +test-includes: + ${M4} -I${.CURDIR} ${.CURDIR}/includes.m4 | \ + diff - ${.CURDIR}/includes.out + +test-esyscmd: + ${M4} ${.CURDIR}/esyscmd.m4 | diff -u - ${.CURDIR}/esyscmd.out + +test-eval: + ${M4} ${.CURDIR}/eval.m4 | diff -u - ${.CURDIR}/eval.out + +test-synch1: + ${M4} -s ${.CURDIR}/synch1.m4|perl ${.CURDIR}/reconstitute|\ + grep MARK| diff - ${.CURDIR}/synch1.out + +test-synch1bis: + ${M4} -s <${.CURDIR}/synch1.m4|perl ${.CURDIR}/reconstitute|\ + grep MARK| diff - ${.CURDIR}/synch1bis.out + +test-dumpdef: + ${M4} ${.CURDIR}/dumpdef.m4 2>/dev/null + +test-gnuprefix: + ${M4} -P ${.CURDIR}/gnuprefix.m4 2>&1 | \ + diff -u - ${.CURDIR}/gnuprefix.out + +.PHONY: ${REGRESS_TARGETS} + +.include diff --git a/src/regress/usr.bin/m4/args.m4 b/src/regress/usr.bin/m4/args.m4 new file mode 100644 index 000000000..8d8710116 --- /dev/null +++ b/src/regress/usr.bin/m4/args.m4 @@ -0,0 +1,8 @@ +dnl $OpenBSD: args.m4,v 1.1 2001/10/10 23:23:59 espie Exp $ +dnl Expanding all arguments +define(`A', `first form: $@, second form $*')dnl +define(`B', `C')dnl +A(1,2,`B') +dnl indirection means macro can get called with argc == 2 ! +indir(`A',1,2,`B') +indir(`A') diff --git a/src/regress/usr.bin/m4/args.out b/src/regress/usr.bin/m4/args.out new file mode 100644 index 000000000..aaa890010 --- /dev/null +++ b/src/regress/usr.bin/m4/args.out @@ -0,0 +1,3 @@ +first form: 1,2,B, second form 1,2,C +first form: 1,2,B, second form 1,2,C +first form: , second form diff --git a/src/regress/usr.bin/m4/args2.m4 b/src/regress/usr.bin/m4/args2.m4 new file mode 100644 index 000000000..daac5f98b --- /dev/null +++ b/src/regress/usr.bin/m4/args2.m4 @@ -0,0 +1,4 @@ +dnl $OpenBSD: args2.m4,v 1.1 2008/08/16 09:57:12 espie Exp $ +dnl Preserving spaces within nested parentheses +define(`foo',`$1')dnl +foo(( check for embedded spaces)) diff --git a/src/regress/usr.bin/m4/args2.out b/src/regress/usr.bin/m4/args2.out new file mode 100644 index 000000000..74bdbd6e5 --- /dev/null +++ b/src/regress/usr.bin/m4/args2.out @@ -0,0 +1 @@ +( check for embedded spaces) diff --git a/src/regress/usr.bin/m4/comments.m4 b/src/regress/usr.bin/m4/comments.m4 new file mode 100644 index 000000000..f24d9e6ef --- /dev/null +++ b/src/regress/usr.bin/m4/comments.m4 @@ -0,0 +1,58 @@ +dnl $OpenBSD: comments.m4,v 1.1 2005/09/06 15:33:21 espie Exp $ +dnl checking the way changecom works. +1: normal +define(`comment', `COMMENT')dnl +define(`p', 'XXX')dnl +# this is a comment +>> this is a comment +p this is a comment +p this is a comment q comment too + +2: `changecom(>>)dnl' +changecom(>>)dnl +# this is a comment +>> this is a comment +p this is a comment +p this is a comment q comment too + +3: `changecom dnl' +changecom dnl +# this is a comment +>> this is a comment +p this is a comment +p this is a comment q comment too + +4: `changecom()dnl' +changecom()dnl +# this is a comment +>> this is a comment +p this is a comment +p this is a comment q comment too + +5: `changecom(,)dnl' +changecom(,)dnl +# this is a comment +>> this is a comment +p this is a comment +p this is a comment q comment too + +6: `changecom(`p',q)dnl' +changecom(`p',q)dnl +# this is a comment +>> this is a comment +p this is a comment +p this is a comment q comment too + +7: `changecom(`p')dnl' +changecom(`p')dnl +# this is a comment +>> this is a comment +p this is a comment +p this is a comment q comment too + +8: `changecom(#)dnl' +changecom(#)dnl +# this is a comment +>> this is a comment +p this is a comment +p this is a comment q comment too diff --git a/src/regress/usr.bin/m4/comments.out b/src/regress/usr.bin/m4/comments.out new file mode 100644 index 000000000..157f107a8 --- /dev/null +++ b/src/regress/usr.bin/m4/comments.out @@ -0,0 +1,47 @@ +1: normal +# this is a comment +>> this is a COMMENT +'XXX' this is a COMMENT +'XXX' this is a COMMENT q COMMENT too + +2: changecom(>>)dnl +# this is a COMMENT +>> this is a comment +'XXX' this is a COMMENT +'XXX' this is a COMMENT q COMMENT too + +3: changecom dnl + # this is a COMMENT +>> this is a COMMENT +'XXX' this is a COMMENT +'XXX' this is a COMMENT q COMMENT too + +4: changecom()dnl +# this is a COMMENT +>> this is a COMMENT +'XXX' this is a COMMENT +'XXX' this is a COMMENT q COMMENT too + +5: changecom(,)dnl +# this is a COMMENT +>> this is a COMMENT +'XXX' this is a COMMENT +'XXX' this is a COMMENT q COMMENT too + +6: changecom(`p',q)dnl +# this is a COMMENT +>> this is a COMMENT +p this is a comment +p this is a comment q COMMENT too + +7: changecom(`p')dnl +# this is a COMMENT +>> this is a COMMENT +p this is a comment +p this is a comment q comment too + +8: changecom(#)dnl +# this is a comment +>> this is a COMMENT +'XXX' this is a COMMENT +'XXX' this is a COMMENT q COMMENT too diff --git a/src/regress/usr.bin/m4/dumpdef.m4 b/src/regress/usr.bin/m4/dumpdef.m4 new file mode 100644 index 000000000..e4f5875f9 --- /dev/null +++ b/src/regress/usr.bin/m4/dumpdef.m4 @@ -0,0 +1,2 @@ +undefine(`unix')dnl +dumpdef()dnl diff --git a/src/regress/usr.bin/m4/esyscmd.m4 b/src/regress/usr.bin/m4/esyscmd.m4 new file mode 100644 index 000000000..a9b83c478 --- /dev/null +++ b/src/regress/usr.bin/m4/esyscmd.m4 @@ -0,0 +1,42 @@ +changequote(`{',`}')dnl +dnl +esyscmd({sh -c "m4<>>') +patsubst(`# This is a line to zap +# and a second line +keep this one', `^ *#.* +') +dnl Special case: empty regexp +patsubst(`empty regexp',`',`a ') diff --git a/src/regress/usr.bin/m4/patterns.out b/src/regress/usr.bin/m4/patterns.out new file mode 100644 index 000000000..c273b589d --- /dev/null +++ b/src/regress/usr.bin/m4/patterns.out @@ -0,0 +1,6 @@ +quote \s in \string +>>>check whether subst +>>>over several lines +>>>works as expected +keep this one +a ea ma pa ta ya a ra ea ga ea xa p diff --git a/src/regress/usr.bin/m4/quotes.gnu.out b/src/regress/usr.bin/m4/quotes.gnu.out new file mode 100644 index 000000000..db9585348 --- /dev/null +++ b/src/regress/usr.bin/m4/quotes.gnu.out @@ -0,0 +1,9 @@ +`No quotes left' +Quotes +No quotes left +`No quotes left' +# this is a comment +# this is a COMMENT + +# this is a COMMENT +# this is a comment diff --git a/src/regress/usr.bin/m4/quotes.m4 b/src/regress/usr.bin/m4/quotes.m4 new file mode 100644 index 000000000..891ddcef2 --- /dev/null +++ b/src/regress/usr.bin/m4/quotes.m4 @@ -0,0 +1,57 @@ +dnl $OpenBSD: quotes.m4,v 1.2 2005/09/06 15:33:21 espie Exp $ +dnl Checking the way changequote() is supposed to work +define(`string',`STRING')dnl +1: normal +`quoted string' +[quoted string] +normal string +`half quoted string +going up to that string' + +2: kill quotes +changequote()dnl +`quoted string' +[quoted string] +normal string +`half quoted string +going up to that string' + +3: normal changed quote +changequote([,])dnl +`quoted string' +[quoted string] +normal string +`half quoted string +going up to that string' + +4: empty quotes, kill them too +changequote(,)dnl +`quoted string' +[quoted string] +normal string +`half quoted string +going up to that string' + +5: start quote only +changequote(`)dnl +`quoted string' +[quoted string] +normal string +`half quoted string +going up to that string' + +6: normal quotes are back +changequote +`quoted string' +[quoted string] +normal string +`half quoted string +going up to that string' + +7: start quote+empty end quote +changequote([,)dnl +`quoted string' +[quoted string] +normal string +`half quoted string +going up to that string' diff --git a/src/regress/usr.bin/m4/quotes.out b/src/regress/usr.bin/m4/quotes.out new file mode 100644 index 000000000..cf34ba42a --- /dev/null +++ b/src/regress/usr.bin/m4/quotes.out @@ -0,0 +1,49 @@ +m4: unclosed quote: + quotes.m4 at line 54 +1: normal +quoted string +[quoted STRING] +normal STRING +half quoted string +going up to that string + +2: kill quotes +`quoted STRING' +[quoted STRING] +normal STRING +`half quoted STRING +going up to that STRING' + +3: normal changed quote +`quoted STRING' +quoted string +normal STRING +`half quoted STRING +going up to that STRING' + +4: empty quotes, kill them too +`quoted STRING' +[quoted STRING] +normal STRING +`half quoted STRING +going up to that STRING' + +5: start quote only +quoted string'[quoted STRING] +normal STRING +half quoted stringgoing up to that STRING' + +6: normal quotes are back + +quoted string +[quoted STRING] +normal STRING +half quoted string +going up to that string + +7: start quote+empty end quote +`quoted STRING' +quoted string] +normal string +`half quoted string +going up to that string' diff --git a/src/regress/usr.bin/m4/reconstitute b/src/regress/usr.bin/m4/reconstitute new file mode 100644 index 000000000..98554bc38 --- /dev/null +++ b/src/regress/usr.bin/m4/reconstitute @@ -0,0 +1,24 @@ +#! /usr/bin/perl +# $OpenBSD: reconstitute,v 1.1 2005/09/06 15:33:21 espie Exp $ + +# Written by Marc Espie, 2005 +# Public domain + +# This simple perl script puts back line numbers everywhere. +# This is suitable for testing synchronization, as we don't really +# care how many synchronization marks we emit, as long as the line +# numbers match + +use File::Basename; + +my ($lineno, $file) = (-1, ""); + +while (<>) { + if (m/^#line\s+(\d+)\s+\"(.*)\"/) { + ($lineno, $file) = ($1, $2); + $file=basename($file); + } else { + print "$file:$lineno:$_"; + $lineno++; + } +} diff --git a/src/regress/usr.bin/m4/redef.m4 b/src/regress/usr.bin/m4/redef.m4 new file mode 100644 index 000000000..5ae533602 --- /dev/null +++ b/src/regress/usr.bin/m4/redef.m4 @@ -0,0 +1,16 @@ +dnl $OpenBSD: redef.m4,v 1.2 2001/09/27 22:40:58 espie Exp $ +dnl check all properties of builtin are passed on, including args behavior +define(`mybuiltin',defn(`builtin'))dnl +builtin mybuiltin +define(`mydefine',defn(`define'))dnl +mydefine(`mydefn',defn(`defn'))dnl +mydefine(`myundefine',mydefn(`undefine'))dnl +myundefine(`defn')dnl +myundefine(`define')dnl +myundefine(`undefine')dnl +mydefine(`mydef2',mydefn(`mydefine'))dnl +mydefine(`mydef', mydefn(`define'))dnl +myundefine(`mydefine')dnl +mydef2(`A',`B')dnl +mydef(`C',`D')dnl +A C diff --git a/src/regress/usr.bin/m4/redef.out b/src/regress/usr.bin/m4/redef.out new file mode 100644 index 000000000..ee482f013 --- /dev/null +++ b/src/regress/usr.bin/m4/redef.out @@ -0,0 +1,2 @@ +builtin mybuiltin +B C diff --git a/src/regress/usr.bin/m4/strangequotes.m4.uu b/src/regress/usr.bin/m4/strangequotes.m4.uu new file mode 100644 index 000000000..a1c56a3e6 --- /dev/null +++ b/src/regress/usr.bin/m4/strangequotes.m4.uu @@ -0,0 +1,7 @@ +$OpenBSD: strangequotes.m4.uu,v 1.2 2001/09/19 19:15:08 espie Exp $ + +begin 644 strangequotes.m4 +M8VAA;F=E<75O=&4HJRR[*61N;`ID969I;F4HJT&[+""K)#$@=&\@)#*[*61N +*;`I!*#0L(#4I"F4H +` +end diff --git a/src/regress/usr.bin/m4/strangequotes.out b/src/regress/usr.bin/m4/strangequotes.out new file mode 100644 index 000000000..f19297b58 --- /dev/null +++ b/src/regress/usr.bin/m4/strangequotes.out @@ -0,0 +1 @@ +4 to 5 diff --git a/src/regress/usr.bin/m4/synch1.m4 b/src/regress/usr.bin/m4/synch1.m4 new file mode 100644 index 000000000..becd550d3 --- /dev/null +++ b/src/regress/usr.bin/m4/synch1.m4 @@ -0,0 +1,13 @@ +This is a test for multi MARK1 +line synchronization stuff MARK2 +# Let's include comments to see MARK3 +dnl +dnl +`quoted string' MARK4 +define(`A',`big string +with a newline embedded')dnl +Return to normal MARK5 +Let's try A +And let's see where we are now. MARK6 +Okay, some more input. +MARK7 diff --git a/src/regress/usr.bin/m4/synch1.out b/src/regress/usr.bin/m4/synch1.out new file mode 100644 index 000000000..3da7c42b5 --- /dev/null +++ b/src/regress/usr.bin/m4/synch1.out @@ -0,0 +1,7 @@ +synch1.m4:1:This is a test for multi MARK1 +synch1.m4:2:line synchronization stuff MARK2 +synch1.m4:3:# Let's include comments to see MARK3 +synch1.m4:4:quoted string MARK4 +synch1.m4:7:Return to normal MARK5 +synch1.m4:11:And let's see where we are now. MARK6 +synch1.m4:13:MARK7 diff --git a/src/regress/usr.bin/m4/synch1bis.out b/src/regress/usr.bin/m4/synch1bis.out new file mode 100644 index 000000000..aa765e4f6 --- /dev/null +++ b/src/regress/usr.bin/m4/synch1bis.out @@ -0,0 +1,7 @@ +stdin:1:This is a test for multi MARK1 +stdin:2:line synchronization stuff MARK2 +stdin:3:# Let's include comments to see MARK3 +stdin:4:quoted string MARK4 +stdin:7:Return to normal MARK5 +stdin:11:And let's see where we are now. MARK6 +stdin:13:MARK7 diff --git a/src/regress/usr.bin/m4/translit.m4 b/src/regress/usr.bin/m4/translit.m4 new file mode 100644 index 000000000..8c8fe06c0 --- /dev/null +++ b/src/regress/usr.bin/m4/translit.m4 @@ -0,0 +1,3 @@ +dnl $OpenBSD: translit.m4,v 1.1 2010/03/23 20:11:52 espie Exp $ +dnl first one should match, not second one +translit(`onk*', `**', `p_') diff --git a/src/regress/usr.bin/m4/translit.out b/src/regress/usr.bin/m4/translit.out new file mode 100644 index 000000000..54abdd3a6 --- /dev/null +++ b/src/regress/usr.bin/m4/translit.out @@ -0,0 +1 @@ +onkp diff --git a/src/regress/usr.bin/m4/weird,name.m4 b/src/regress/usr.bin/m4/weird,name.m4 new file mode 100644 index 000000000..d87adaa87 --- /dev/null +++ b/src/regress/usr.bin/m4/weird,name.m4 @@ -0,0 +1,4 @@ +dnl $OpenBSD: weird,name.m4,v 1.1 2001/10/10 11:16:28 espie Exp $ +dnl trip up m4 if it forgets to quote filenames +define(`A', `$2')dnl +A(__file__)dnl diff --git a/src/regress/usr.bin/make/CVS/Entries b/src/regress/usr.bin/make/CVS/Entries new file mode 100644 index 000000000..cde982492 --- /dev/null +++ b/src/regress/usr.bin/make/CVS/Entries @@ -0,0 +1,58 @@ +/mk1/1.2/Mon Jan 29 02:05:59 2001// +/mk10/1.1/Sun Dec 31 16:44:14 2000// +/mk11/1.2/Fri Sep 7 12:35:19 2001// +/mk12/1.1/Sat May 26 21:12:28 2001// +/mk13/1.1/Wed Jul 11 13:12:19 2001// +/mk14/1.1/Wed Nov 21 21:55:52 2001// +/mk15/1.1/Tue Feb 26 16:54:47 2002// +/mk16/1.1/Tue Apr 16 12:00:14 2002// +/mk17/1.1/Tue Apr 16 14:43:56 2002// +/mk18/1.1/Tue Apr 16 16:15:18 2002// +/mk19/1.1/Mon Sep 9 10:05:34 2002// +/mk2/1.3/Mon Jan 29 02:06:00 2001// +/mk20/1.1/Mon Sep 9 10:05:34 2002// +/mk21/1.1/Sun Nov 21 12:58:12 2004// +/mk22/1.1/Mon Nov 29 16:26:58 2004// +/mk23/1.1/Fri Jul 15 19:43:43 2005// +/mk24/1.1/Sun Sep 17 19:02:13 2006// +/mk25/1.1/Sun Aug 5 11:10:11 2007// +/mk26/1.1/Mon Aug 6 06:52:30 2007// +/mk27/1.1/Mon Sep 17 13:58:38 2007// +/mk28/1.1/Mon Nov 24 16:22:38 2008// +/mk2a/1.1/Tue Jul 18 20:14:06 2000// +/mk2b/1.2/Tue Jul 18 20:14:06 2000// +/mk3/1.2/Mon Jan 29 02:06:00 2001// +/mk3a/1.1.1.1/Mon Jul 17 21:40:09 2000// +/mk4/1.1.1.1/Mon Jul 17 21:40:09 2000// +/mk4a/1.1.1.1/Mon Jul 17 21:40:09 2000// +/mk6/1.2/Tue Jul 18 20:14:47 2000// +/mk7/1.2/Mon Jan 29 02:06:00 2001// +/mk8/1.1/Sun Jul 23 15:31:14 2000// +/mk9/1.2/Tue May 15 13:33:09 2001// +/mkfail/1.1.1.1/Mon Jul 17 21:40:09 2000// +/t10.out/1.3/Tue May 15 13:29:12 2001// +/t11.out/1.2/Fri Sep 7 12:35:19 2001// +/t11.out2/1.2/Fri Sep 7 12:35:19 2001// +/t12.out/1.1/Sat May 26 21:12:28 2001// +/t13.out/1.1/Wed Jul 11 13:12:19 2001// +/t19.out/1.1/Mon Sep 9 10:05:34 2002// +/t2.out/1.1.1.1/Mon Jul 17 21:40:09 2000// +/t20.out/1.1/Mon Sep 9 10:05:34 2002// +/t21.out/1.1/Sun Nov 21 12:58:12 2004// +/t22.out/1.1/Mon Nov 29 16:26:58 2004// +/t23.out/1.2/Thu Aug 2 17:30:59 2007// +/t29.out/1.1/Mon Aug 6 06:52:30 2007// +/t29.out2/1.1/Mon Aug 6 06:52:30 2007// +/t3.out/1.1.1.1/Mon Jul 17 21:40:09 2000// +/t30.out/1.1/Mon Sep 17 13:58:38 2007// +/t4.out/1.1.1.1/Mon Jul 17 21:40:09 2000// +/t6.out/1.2/Tue Jul 18 20:15:38 2000// +/t8.out/1.1/Sun Jul 23 15:31:14 2000// +/t9.out/1.2/Tue May 15 13:33:09 2001// +/Makefile/1.29/Fri Nov 13 18:06:57 2009// +/mk32/1.1/Wed Nov 11 00:16:47 2009// +/t32.out/1.1/Wed Nov 11 00:16:47 2009// +/t33.out/1.1/Wed Nov 11 00:16:47 2009// +/t34.out/1.1/Wed Nov 11 00:16:47 2009// +/t35.out/1.1/Wed Nov 11 00:16:47 2009// +D diff --git a/src/regress/usr.bin/make/CVS/Repository b/src/regress/usr.bin/make/CVS/Repository new file mode 100644 index 000000000..4e103ec55 --- /dev/null +++ b/src/regress/usr.bin/make/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/make diff --git a/src/regress/usr.bin/make/CVS/Root b/src/regress/usr.bin/make/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/make/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/make/Makefile b/src/regress/usr.bin/make/Makefile new file mode 100644 index 000000000..2897f8c15 --- /dev/null +++ b/src/regress/usr.bin/make/Makefile @@ -0,0 +1,156 @@ +# $OpenBSD: Makefile,v 1.29 2009/11/11 00:16:47 fgsch Exp $ + +# We don't pass t7, t13, t14, t17, t19, t20 t21 t26 +# and t16 yields piss poor performance +REGRESS_TARGETS=t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 + +MALLOC_OPTIONS?=AZJ +t1: t1.out + env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -e -r -f ${.CURDIR}/mk1 | diff - t1.out + + +# This is a POSIX test. pmake does not pass variables to submakes until +# after OpenBSD 2.7. +t2: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk2| diff - t2.out + +t3: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk3 -f mk3a|diff - t3.out + cd ${.CURDIR} && cat mk3a |env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk3 -f -|diff - t3.out + cd ${.CURDIR} && cat mk3 |env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f - -f mk3a|diff - t3.out + cd ${.CURDIR} && cat mk3 mk3a|env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f - |diff - t3.out + +t4: + cd ${.CURDIR} && cat mk4 mk4a|env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f - |diff - t4.out + # Splitting files along conditionals should not work + if cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk4 -f mk4a 2>/dev/null; then false; fi + +# Another POSIX test, checking that MAKEFLAGS does work +t5: + # first check that make does fail as expected + if cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mkfail 2>/dev/null; then false; fi + # first form of MAKEFLAGS + cd ${.CURDIR} && env -i PATH=${PATH} MAKEFLAGS=-n MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mkfail + # second form of MAKEFLAGS + cd ${.CURDIR} && env -i PATH=${PATH} MAKEFLAGS=n MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mkfail + +t6: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} A=good -r -f mk6 | diff - t6.out + +# This test currently fails, and will until the cond parser is rewritten. +t7: + if cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk7 2>/dev/null; then false; fi + +# check for existent/non existent files +t8: + touch goodfile phony + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk8 | diff - t8.out + +t9: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk9 2>&1 | diff - t9.out + +# verify that systemV extended variables work as expected +t10: z.a + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk10 |diff - t10.out + +# check for substitution parser in some confusing situations +t11: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk11 |diff - t11.out + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk11 A=t|diff - t11.out2 + +# Check for filename expansions. +t12: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk12 |diff - t12.out + +# Verify whitespace handling. Currently failing. +t13: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk13 |diff - t13.out + +t14: + if cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk14 2>/dev/null; then false; fi + +t15: + touch t15file + cd ${.CURDIR} && ulimit -t 2 && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk15 2>/dev/null + +t16: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk16 + +t17: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk17 + +t18: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk18 + +t19: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} SHELL=/bin/zsh ${MAKE} -r -f mk19 | diff - t19.out + +t20: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk20 | diff - t20.out + +t21: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk21 | diff - t21.out + +t22: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk22 b | diff - t22.out + +t23: + cd ${.CURDIR} && ulimit -t 60 && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk22 a 2>&1| diff - t23.out + +t24: + if cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk23 a 2>/dev/null; then false; fi + +t25: + touch ${.OBJDIR}/t25.1st + rm -f ${.OBJDIR}/t25.2nd + if cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk24 t25.2nd 2>/dev/null; then false; fi + +t26: + touch ${.OBJDIR}/f26.2nd + rm -f ${.OBJDIR}/f26 + if cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk24 f26 2>/dev/null; then false; fi + +t27: + touch ${.OBJDIR}/t27.2nd + rm -f ${.OBJDIR}/t27.3rd + if cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk24 t27.3rd 2>/dev/null; then false; fi + +t28: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk25 all >/dev/null + +t29: + rm -f t29dep t29.targ t29.targ2 libt29.a + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk26 all | diff - t29.out + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk26 all | diff - t29.out2 + +t30: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk27 all | diff - t30.out + +t31: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} ${MAKE} -r -f mk28 all + +t32: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} B="A" ${MAKE} -r -f mk32 all | diff - t32.out + +t33: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} B=0 ${MAKE} -r -f mk32 all | diff - t33.out + +t34: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} B=1 ${MAKE} -r -f mk32 all | diff - t34.out + +t35: + cd ${.CURDIR} && env -i PATH=${PATH} MALLOC_OPTIONS=${MALLOC_OPTIONS} B=2 ${MAKE} -r -f mk32 all | diff - t35.out + +z.a: + touch $@ + +t1.out: + echo MACHINE_ARCH=${MACHINE_ARCH} >$@ + +.PHONY: ${REGRESS_TARGETS} regress + +CLEANFILES+=t1.out z.a a.a a.b goodfile phony t15file \ + t25.1st t25.2nd f26.2nd f26 t27.2nd t27.3rd \ + libt29.a t29dep t29.targ t29.targ2 + +.include diff --git a/src/regress/usr.bin/make/mk1 b/src/regress/usr.bin/make/mk1 new file mode 100644 index 000000000..15622eec1 --- /dev/null +++ b/src/regress/usr.bin/make/mk1 @@ -0,0 +1,11 @@ +# $OpenBSD: mk1,v 1.2 2001/01/29 02:05:59 niklas Exp $ + +# invoke with make -r -e +# if it does NOT return the MACHINE_ARCH, it's buggy + +MYARCH:= ${MACHINE_ARCH} +.if ${MACHINE_ARCH} != "alpha" +.endif + +a: + @echo MACHINE_ARCH=${MACHINE_ARCH} diff --git a/src/regress/usr.bin/make/mk10 b/src/regress/usr.bin/make/mk10 new file mode 100644 index 000000000..a6078ed65 --- /dev/null +++ b/src/regress/usr.bin/make/mk10 @@ -0,0 +1,20 @@ +# $OpenBSD: mk10,v 1.1 2000/12/31 16:44:14 espie Exp $ + +all: a b/o/d.e z.b + +a: +# Regression test: this will parse as a recursive variable which +# does not exist, but should not be interpreted as a dynamic variable + # ${@D) abcd ${@F} +# And this is the real one + # ${@D} ${@F} + +b/o/d.e: + # ${@D} ${@F} + +.SUFFIXES: .a .b + +.a.b: + # ${*D} ${*F} + +.PHONY: a b/o/d.e diff --git a/src/regress/usr.bin/make/mk11 b/src/regress/usr.bin/make/mk11 new file mode 100644 index 000000000..b6f659eba --- /dev/null +++ b/src/regress/usr.bin/make/mk11 @@ -0,0 +1,25 @@ +# $OpenBSD: mk11,v 1.2 2001/09/07 12:35:19 espie Exp $ + + +V=text +A= +B=zoinx42->=hop + +a: +# we want empty substitutions to work correctly + @echo ${V:C/^$A//} + @echo ${V:C/$A$//} + @echo ${V:C/^${A}//} + @echo ${V:C/${A}$//} +# with replacement text too + @echo ${V:C/^$A/1/} + @echo ${V:C/$A$/1/} + @echo ${V:C/^${A}/1/} + @echo ${V:C/${A}$/1/} +# and with substituted text... + @echo ${V:C/^$A/1&/} + @echo ${V:C/$A$/1&/} + @echo ${V:C/^${A}/1&/} + @echo ${V:C/${A}$/1&/} +# Yet another check + @echo "${B:C/([a-z]*)/\1&/}" diff --git a/src/regress/usr.bin/make/mk12 b/src/regress/usr.bin/make/mk12 new file mode 100644 index 000000000..e82ef809b --- /dev/null +++ b/src/regress/usr.bin/make/mk12 @@ -0,0 +1,21 @@ +# Check out that brace expansion works +T1=mk{1,4a,11} + +# Now for funnier stuff +T2=m?{1,4*,11} + +# Recursive fun +T3=mk{1,4{,a},1{0,1}} + +all: a b c + +a: ${T1} + @echo ${>:T} + +b: ${T2} + @echo ${>:T} + +c: ${T3} + @echo ${>:T} + +.PHONY: a b c all diff --git a/src/regress/usr.bin/make/mk13 b/src/regress/usr.bin/make/mk13 new file mode 100644 index 000000000..25a051091 --- /dev/null +++ b/src/regress/usr.bin/make/mk13 @@ -0,0 +1,6 @@ +# $OpenBSD: mk13,v 1.1 2001/07/11 13:12:19 espie Exp $ +# Warning: the next line ends with a space !!! +A= ends with space + +a: + @echo "a$Aa" diff --git a/src/regress/usr.bin/make/mk14 b/src/regress/usr.bin/make/mk14 new file mode 100644 index 000000000..07bde4a4d --- /dev/null +++ b/src/regress/usr.bin/make/mk14 @@ -0,0 +1,12 @@ +# $OpenBSD: mk14,v 1.1 2001/11/21 21:55:52 espie Exp $ + +a.b: a.a + echo $< >$@ + +a.a: + touch $@ + +.SUFFIXES: .b .a + +.a.b: + @echo "something" >$@ diff --git a/src/regress/usr.bin/make/mk15 b/src/regress/usr.bin/make/mk15 new file mode 100644 index 000000000..f5ca17339 --- /dev/null +++ b/src/regress/usr.bin/make/mk15 @@ -0,0 +1,7 @@ +# $OpenBSD: mk15,v 1.1 2002/02/26 16:54:47 espie Exp $ +# See PR 2311 + +t15file.zoinx: ${@F:R} + echo $@ + +.PHONY: t15file.zoinx diff --git a/src/regress/usr.bin/make/mk16 b/src/regress/usr.bin/make/mk16 new file mode 100644 index 000000000..92518bfc9 --- /dev/null +++ b/src/regress/usr.bin/make/mk16 @@ -0,0 +1,214 @@ +# $OpenBSD: mk16,v 1.1 2002/04/16 12:00:14 espie Exp $ + +all: + @echo "That's all folks" + +# This kind of construction is very inefficient currently + +.for i in 1 2 3 4 5 + perlfork 1 pod/perlfork.pod \ + perlform 1 pod/perlform.pod \ + perlfunc 1 pod/perlfunc.pod \ + perlguts 1 pod/perlguts.pod \ + perlhack 1 pod/perlhack.pod \ + perlhist 1 pod/perlhist.pod \ + perlintern 1 pod/perlintern.pod \ + perlipc 1 pod/perlipc.pod \ + perllexwarn 1 pod/perllexwarn.pod \ + perllocale 1 pod/perllocale.pod \ + perllol 1 pod/perllol.pod \ + perlmod 1 pod/perlmod.pod \ + perlmodinstall 1 pod/perlmodinstall.pod \ + perlmodlib 1 pod/perlmodlib.pod \ + perlnewmod 1 pod/perlnewmod.pod \ + perlnumber 1 pod/perlnumber.pod \ + perlobj 1 pod/perlobj.pod \ + perlop 1 pod/perlop.pod \ + perlopentut 1 pod/perlopentut.pod \ + perlpod 1 pod/perlpod.pod \ + perlport 1 pod/perlport.pod \ + perlre 1 pod/perlre.pod \ + perlref 1 pod/perlref.pod \ + perlreftut 1 pod/perlreftut.pod \ + perlrequick 1 pod/perlrequick.pod \ + perlretut 1 pod/perlretut.pod \ + perlrun 1 pod/perlrun.pod \ + perlsec 1 pod/perlsec.pod \ + perlstyle 1 pod/perlstyle.pod \ + perlsub 1 pod/perlsub.pod \ + perlsyn 1 pod/perlsyn.pod \ + perlthrtut 1 pod/perlthrtut.pod \ + perltie 1 pod/perltie.pod \ + perltoc 1 pod/perltoc.pod \ + perltodo 1 pod/perltodo.pod \ + perltoot 1 pod/perltoot.pod \ + perltootc 1 pod/perltootc.pod \ + perltrap 1 pod/perltrap.pod \ + perlunicode 1 pod/perlunicode.pod \ + perlvar 1 pod/perlvar.pod \ + perlxs 1 pod/perlxs \ + perlxstut 1 pod/perlxstut \ + pl2pm 1 utils/pl2pm \ + pod2html 1 pod/pod2html \ + pod2man 1 pod/pod2man \ + pod2text 1 pod/pod2text \ + pod2usage 1 pod/pod2usage \ + podchecker 1 pod/podchecker \ + podselect 1 pod/podselect \ + pstruct 1 utils/pstruct \ + s2p 1 x2p/s2p \ + splain 1 utils/splain \ + xsubpp 1 lib/ExtUtils/xsubpp \ + AnyDBM_File 3p lib/AnyDBM_File.pm \ + AnyDBM_File 3p lib/AnyDBM_File.pm \ + AutoLoader 3p lib/AutoLoader.pm \ + AutoSplit 3p lib/AutoSplit.pm \ + B 3p ext/B/B.pm \ + B::Asmdata 3p ext/B/B/Asmdata.pm \ + B::Assembler 3p ext/B/B/Assembler.pm \ + B::Bblock 3p ext/B/B/Bblock.pm \ + B::Bytecode 3p ext/B/B/Bytecode.pm \ + B::C 3p ext/B/B/C.pm \ + B::CC 3p ext/B/B/CC.pm \ + B::Concise 3p ext/B/B/Concise.pm \ + B::Debug 3p ext/B/B/Debug.pm \ + B::Deparse 3p ext/B/B/Deparse.pm \ + B::Disassembler 3p ext/B/B/Disassembler.pm \ + B::Lint 3p ext/B/B/Lint.pm \ + B::Showlex 3p ext/B/B/Showlex.pm \ + B::Stackobj 3p ext/B/B/Stackobj.pm \ + B::Terse 3p ext/B/B/Terse.pm \ + B::Xref 3p ext/B/B/Xref.pm \ + Benchmark 3p lib/Benchmark.pm \ + ByteLoader 3p ext/ByteLoader/ByteLoader.pm \ + CGI 3p lib/CGI.pm \ + CGI::Apache 3p lib/CGI/Apache.pm \ + CGI::Carp 3p lib/CGI/Carp.pm \ + CGI::Cookie 3p lib/CGI/Cookie.pm \ + CGI::Fast 3p lib/CGI/Fast.pm \ + CGI::Pretty 3p lib/CGI/Pretty.pm \ + CGI::Push 3p lib/CGI/Push.pm \ + CGI::Switch 3p lib/CGI/Switch.pm \ + CGI::Util 3p lib/CGI/Util.pm \ + CPAN 3p lib/CPAN.pm \ + CPAN::FirstTime 3p lib/CPAN/FirstTime.pm \ + CPAN::Nox 3p lib/CPAN/Nox.pm \ + Carp 3p lib/Carp.pm \ + Carp::Heavy 3p lib/Carp/Heavy.pm \ + Class::Struct 3p lib/Class/Struct.pm \ + Config 3p lib/Config.pm \ + Cwd 3p lib/Cwd.pm \ + DB 3p lib/DB.pm \ + DB_File 3p ext/DB_File/DB_File.pm \ + Data::Dumper 3p ext/Data/Dumper/Dumper.pm \ + Devel::DProf 3p ext/Devel/DProf/DProf.pm \ + Devel::Peek 3p ext/Devel/Peek/Peek.pm \ + Devel::SelfStubber 3p lib/Devel/SelfStubber.pm \ + DirHandle 3p lib/DirHandle.pm \ + Dumpvalue 3p lib/Dumpvalue.pm \ + DynaLoader 3p ext/DynaLoader/XSLoader_pm.PL \ + English 3p lib/English.pm \ + Env 3p lib/Env.pm \ + Errno 3p ext/Errno/Errno_pm.PL \ + Exporter 3p lib/Exporter.pm \ + Exporter::Heavy 3p lib/Exporter/Heavy.pm \ + ExtUtils::Command 3p lib/ExtUtils/Command.pm \ + ExtUtils::Embed 3p lib/ExtUtils/Embed.pm \ + ExtUtils::Install 3p lib/ExtUtils/Install.pm \ + ExtUtils::Installed 3p lib/ExtUtils/Installed.pm \ + ExtUtils::Liblist 3p lib/ExtUtils/Liblist.pm \ + ExtUtils::MM_Unix 3p lib/ExtUtils/MM_Unix.pm \ + ExtUtils::MakeMaker 3p lib/ExtUtils/MakeMaker.pm \ + ExtUtils::Manifest 3p lib/ExtUtils/Manifest.pm \ + ExtUtils::Miniperl 3p lib/ExtUtils/Miniperl.pm \ + ExtUtils::Mkbootstrap 3p lib/ExtUtils/Mkbootstrap.pm \ + ExtUtils::Mksymlists 3p lib/ExtUtils/Mksymlists.pm \ + ExtUtils::Packlist 3p lib/ExtUtils/Packlist.pm \ + ExtUtils::testlib 3p lib/ExtUtils/testlib.pm \ + Fatal 3p lib/Fatal.pm \ + Fcntl 3p lib/Fcntl.pm \ + File::Basename 3p lib/File/Basename.pm \ + File::CheckTree 3p lib/File/CheckTree.pm \ + File::Compare 3p lib/File/Compare.pm \ + File::Copy 3p lib/File/Copy.pm \ + File::DosGlob 3p lib/File/DosGlob.pm \ + File::Find 3p lib/File/Find.pm \ + File::Glob 3p lib/File/Glob.pm \ + File::Path 3p lib/File/Path.pm \ + File::Spec 3p lib/File/Spec.pm \ + File::Spec::Functions 3p lib/File/Spec/Functions.pm \ + File::Spec::Unix 3p lib/File/Spec/Unix.pm \ + File::Temp 3p lib/File/Temp.pm \ + File::stat 3p lib/File/stat.pm \ + FileCache 3p lib/FileCache.pm \ + FileHandle 3p lib/FileHandle.pm \ + FindBin 3p lib/FindBin.pm \ + Getopt::Long 3p lib/Getopt/Long.pm \ + Getopt::Std 3p lib/Getopt/Std.pm \ + I18N::Collate 3p lib/I18N/Collate.pm \ + IO 3p lib/IO.pm \ + IO::Dir 3p lib/IO/Dir.pm \ + IO::File 3p lib/IO/File.pm \ + IO::Handle 3p lib/IO/Handle.pm \ + IO::Pipe 3p lib/IO/Pipe.pm \ + IO::Poll 3p lib/IO/Poll.pm \ + IO::Seekable 3p lib/IO/Seekable.pm \ + IO::Select 3p lib/IO/Select.pm \ + IO::Socket 3p lib/IO/Socket.pm \ + IO::Socket::INET 3p lib/IO/Socket/INET.pm \ + IO::Socket::UNIX 3p lib/IO/Socket/UNIX.pm \ + IPC::Msg 3p lib/IPC/Msg.pm \ + IPC::Open2 3p lib/IPC/Open2.pm \ + IPC::Open3 3p lib/IPC/Open3.pm \ + IPC::Semaphore 3p lib/IPC/Semaphore.pm \ + IPC::SysV 3p lib/IPC/SysV.pm \ + Math::BigFloat 3p lib/Math/BigFloat.pm \ + Math::BigInt 3p lib/Math/BigInt.pm \ + Math::Complex 3p lib/Math/Complex.pm \ + Math::Trig 3p lib/Math/Trig.pm \ + NDBM_File 3p lib/NDBM_File.pm \ + Net::Ping 3p lib/Net/Ping.pm \ + Net::hostent 3p lib/Net/hostent.pm \ + Net::netent 3p lib/Net/netent.pm \ + Net::protoent 3p lib/Net/protoent.pm \ + Net::servent 3p lib/Net/servent.pm \ + O 3p lib/O.pm \ + ODBM_File 3p lib/ODBM_File.pm \ + Opcode 3p lib/Opcode.pm \ + POSIX 3p lib/POSIX.pod \ + Pod::Checker 3p lib/Pod/Checker.pm \ + Pod::Find 3p lib/Pod/Find.pm \ + Pod::Html 3p lib/Pod/Html.pm \ + Pod::InputObjects 3p lib/Pod/InputObjects.pm \ + Pod::LaTeX 3p lib/Pod/LaTeX.pm \ + Pod::Man 3p lib/Pod/Man.pm \ + Pod::ParseUtils 3p lib/Pod/ParseUtils.pm \ + Pod::Parser 3p lib/Pod/Parser.pm \ + Pod::Plainer 3p lib/Pod/Plainer.pm \ + Pod::Select 3p lib/Pod/Select.pm \ + Pod::Text 3p lib/Pod/Text.pm \ + Pod::Text::Color 3p lib/Pod/Text/Color.pm \ + Pod::Text::Overstrike 3p lib/Pod/Text/Overstrike.pm \ + Pod::Text::Termcap 3p lib/Pod/Text/Termcap.pm \ + Pod::Usage 3p lib/Pod/Usage.pm \ + SDBM_File 3p lib/SDBM_File.pm \ + Safe 3p lib/Safe.pm \ + Search::Dict 3p lib/Search/Dict.pm \ + SelectSaver 3p lib/SelectSaver.pm \ + SelfLoader 3p lib/SelfLoader.pm \ + Shell 3p lib/Shell.pm \ + Socket 3p lib/Socket.pm \ + Symbol 3p lib/Symbol.pm \ + Sys::Hostname 3p lib/Sys/Hostname.pm \ + Sys::Syslog 3p lib/Sys/Syslog.pm \ + Term::ANSIColor 3p lib/Term/ANSIColor.pm \ + Term::Cap 3p lib/Term/Cap.pm \ + Term::Complete 3p lib/Term/Complete.pm \ + Term::ReadLine 3p lib/Term/ReadLine.pm \ + Test 3p lib/Test.pm \ + Test::Harness 3p lib/Test/Harness.pm \ + Text::Abbrev 3p lib/Text/Abbrev.pm \ + Text::ParseWords 3p lib/Text/ParseWords.pm \ + Text::Soundex 3p lib/Text/Soundex.pm + +.endfor diff --git a/src/regress/usr.bin/make/mk17 b/src/regress/usr.bin/make/mk17 new file mode 100644 index 000000000..af32be5b6 --- /dev/null +++ b/src/regress/usr.bin/make/mk17 @@ -0,0 +1,9 @@ +# $OpenBSD: mk17,v 1.1 2002/04/16 14:43:56 espie Exp $ +# Bug in the cond parsing code + +TEST=Yes +.for i in 0 1 2 3 4 5 6 7 +. for j in 0 1 2 3 4 5 6 +. if TEST +. endfor +.endfor diff --git a/src/regress/usr.bin/make/mk18 b/src/regress/usr.bin/make/mk18 new file mode 100644 index 000000000..59fecb5d0 --- /dev/null +++ b/src/regress/usr.bin/make/mk18 @@ -0,0 +1,14 @@ +# $OpenBSD: mk18,v 1.1 2002/04/16 16:15:18 espie Exp $ +# Bug in the cond parsing code + +TEST=Yes +.for i in 0 1 2 3 4 5 6 7 +. for j in 0 1 2 3 4 5 6 +. if TEST +. endfor +.endfor +.for i in 0 1 2 3 4 +. for j in 0 1 2 3 4 5 +. endif +. endfor +.endfor diff --git a/src/regress/usr.bin/make/mk19 b/src/regress/usr.bin/make/mk19 new file mode 100644 index 000000000..120220433 --- /dev/null +++ b/src/regress/usr.bin/make/mk19 @@ -0,0 +1,5 @@ +# $OpenBSD: mk19,v 1.1 2002/09/09 10:05:34 espie Exp $ +# Posix compliance test: variable SHELL shall not be taken from the environment + +a: + @echo ${SHELL} diff --git a/src/regress/usr.bin/make/mk2 b/src/regress/usr.bin/make/mk2 new file mode 100644 index 000000000..702d4d112 --- /dev/null +++ b/src/regress/usr.bin/make/mk2 @@ -0,0 +1,5 @@ +# $OpenBSD: mk2,v 1.3 2001/01/29 02:06:00 niklas Exp $ + +# Invoke with make -r +a: + @cd ${.CURDIR} && make -f mk2a COPTS='-g -O2' diff --git a/src/regress/usr.bin/make/mk20 b/src/regress/usr.bin/make/mk20 new file mode 100644 index 000000000..c502803f7 --- /dev/null +++ b/src/regress/usr.bin/make/mk20 @@ -0,0 +1,7 @@ +# $OpenBSD: mk20,v 1.1 2002/09/09 10:05:34 espie Exp $ + +# Posix compliance shell: variable SHELL is not placed into the environment + +SHELL=/bin/zsh +a: + @echo ${SHELL} $$SHELL diff --git a/src/regress/usr.bin/make/mk21 b/src/regress/usr.bin/make/mk21 new file mode 100644 index 000000000..a0f9c4137 --- /dev/null +++ b/src/regress/usr.bin/make/mk21 @@ -0,0 +1,14 @@ +# $OpenBSD: mk21,v 1.1 2004/11/21 12:58:12 espie Exp $ +TRUC= http://heanet.dl.sourceforge.net/sourceforge/%SUBDIR%/ + +.for _S in ${TRUC} +S?= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://} +.endfor + +_S= ${TRUC} +T?= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://} + +all: + @echo "S= $S" + @echo "T= $T" + diff --git a/src/regress/usr.bin/make/mk22 b/src/regress/usr.bin/make/mk22 new file mode 100644 index 000000000..f3dbde759 --- /dev/null +++ b/src/regress/usr.bin/make/mk22 @@ -0,0 +1,10 @@ +# Recursion on variables. +A=$B +B=$C +C=$A + +a: + echo $A + +b: + echo "business as usual" diff --git a/src/regress/usr.bin/make/mk23 b/src/regress/usr.bin/make/mk23 new file mode 100644 index 000000000..08fdd90cf --- /dev/null +++ b/src/regress/usr.bin/make/mk23 @@ -0,0 +1,4 @@ +FOO=foobar + +a: + @echo ${FOO:f%r=te%st diff --git a/src/regress/usr.bin/make/mk24 b/src/regress/usr.bin/make/mk24 new file mode 100644 index 000000000..8b1ac07cd --- /dev/null +++ b/src/regress/usr.bin/make/mk24 @@ -0,0 +1,20 @@ +# $OpenBSD: mk24,v 1.1 2006/09/17 19:02:13 espie Exp $ + +# .SUFFIXES should void suffixes rules + +.SUFFIXES: .1st .2nd .3rd + +# Two suffixes implicit rules +.1st.2nd: + cp $*.1st $@ + +# one suffix implicit rule +.2nd: + cp $*.2nd $@ + +.2nd.3rd: + cp $*.2nd $@ + +.SUFFIXES: + +.SUFFIXES: .3rd diff --git a/src/regress/usr.bin/make/mk25 b/src/regress/usr.bin/make/mk25 new file mode 100644 index 000000000..e520e49c7 --- /dev/null +++ b/src/regress/usr.bin/make/mk25 @@ -0,0 +1,9 @@ +# $OpenBSD: mk25,v 1.1 2007/08/05 11:10:11 espie Exp $ +# verify that curly targets work correctly + +.PHONY: a b c d all + +all: a b c d + +{a,b,c,d}: + @echo "Building $@" diff --git a/src/regress/usr.bin/make/mk26 b/src/regress/usr.bin/make/mk26 new file mode 100644 index 000000000..306582f1b --- /dev/null +++ b/src/regress/usr.bin/make/mk26 @@ -0,0 +1,23 @@ +# $OpenBSD: mk26,v 1.1 2007/08/06 06:52:30 espie Exp $ + +# Very bizarre make rule: names like -llib are expected to not correspond +# to normal files. + +all: t29.targ t29.targ2 + +# if there is no rules, we just silently accept the dependency +t29.targ: -lm + touch $@ + +# if there is a set of rules, we transparently go through the dependencies +t29.targ2: -lt29 + touch $@ + +-lt29: t29dep + touch libt29.a + +t29dep: + touch $@ + + +.PHONY: all diff --git a/src/regress/usr.bin/make/mk27 b/src/regress/usr.bin/make/mk27 new file mode 100644 index 000000000..c56d8a3bc --- /dev/null +++ b/src/regress/usr.bin/make/mk27 @@ -0,0 +1,29 @@ +# $OpenBSD: mk27,v 1.1 2007/09/17 13:58:38 espie Exp $ + +# test for .BEGIN/.END extensions + +.BEGIN: + @echo "begin" + + +.END: + @echo "end" + + +all: a b + +a: + @echo "a" + +b: + @echo "b" + +c: + sleep 10 + +.INTERRUPT: + @echo "Interrupted!!!" + +.PHONY: a b all c + + diff --git a/src/regress/usr.bin/make/mk28 b/src/regress/usr.bin/make/mk28 new file mode 100644 index 000000000..6d3b5a9f5 --- /dev/null +++ b/src/regress/usr.bin/make/mk28 @@ -0,0 +1,15 @@ +# $OpenBSD: mk28,v 1.1 2008/11/24 16:22:38 espie Exp $ +# checks that hex constants evaluate correctly +# (bug from NetBSD) + +B=222 +.if $B == 0xDE +A=0 +.else +A=1 +.endif + +all: + @exit $A + +.PHONY: all diff --git a/src/regress/usr.bin/make/mk2a b/src/regress/usr.bin/make/mk2a new file mode 100644 index 000000000..8c3e2039f --- /dev/null +++ b/src/regress/usr.bin/make/mk2a @@ -0,0 +1,2 @@ +a: + @cd ${.CURDIR} && make -f mk2b diff --git a/src/regress/usr.bin/make/mk2b b/src/regress/usr.bin/make/mk2b new file mode 100644 index 000000000..661099270 --- /dev/null +++ b/src/regress/usr.bin/make/mk2b @@ -0,0 +1,3 @@ +COPTS=to override +a: + @echo COPTS=${COPTS} diff --git a/src/regress/usr.bin/make/mk3 b/src/regress/usr.bin/make/mk3 new file mode 100644 index 000000000..7986c19d8 --- /dev/null +++ b/src/regress/usr.bin/make/mk3 @@ -0,0 +1,4 @@ +# $OpenBSD: mk3,v 1.2 2001/01/29 02:06:00 niklas Exp $ + +# Check that appending Makefiles work +A=3 diff --git a/src/regress/usr.bin/make/mk32 b/src/regress/usr.bin/make/mk32 new file mode 100644 index 000000000..9bb5ccb28 --- /dev/null +++ b/src/regress/usr.bin/make/mk32 @@ -0,0 +1,13 @@ +B ?= +.if ${B:C/[0-9]//} +A=0 +.elif ${B} == 0 +A=1 +.elif ${B} > 1 +A=2 +.else +A=3 +.endif + +all: + @echo ${A} diff --git a/src/regress/usr.bin/make/mk3a b/src/regress/usr.bin/make/mk3a new file mode 100644 index 000000000..82266b658 --- /dev/null +++ b/src/regress/usr.bin/make/mk3a @@ -0,0 +1,2 @@ +a: + @echo A=$A diff --git a/src/regress/usr.bin/make/mk4 b/src/regress/usr.bin/make/mk4 new file mode 100644 index 000000000..b17b5924d --- /dev/null +++ b/src/regress/usr.bin/make/mk4 @@ -0,0 +1,3 @@ +I=5 + +.if $I == "5" diff --git a/src/regress/usr.bin/make/mk4a b/src/regress/usr.bin/make/mk4a new file mode 100644 index 000000000..3ca523f53 --- /dev/null +++ b/src/regress/usr.bin/make/mk4a @@ -0,0 +1,4 @@ +.endif + +a: + @echo I=$I diff --git a/src/regress/usr.bin/make/mk6 b/src/regress/usr.bin/make/mk6 new file mode 100644 index 000000000..1b01fc4dc --- /dev/null +++ b/src/regress/usr.bin/make/mk6 @@ -0,0 +1,11 @@ +A=bad +# Value should be kept until after loop +I=to keep +a: +.for B in $A + @echo $B +.endfor +.for I in "check quotes" work + @echo $I +.endfor + @echo $I diff --git a/src/regress/usr.bin/make/mk7 b/src/regress/usr.bin/make/mk7 new file mode 100644 index 000000000..84b81f993 --- /dev/null +++ b/src/regress/usr.bin/make/mk7 @@ -0,0 +1,9 @@ +# $OpenBSD: mk7,v 1.2 2001/01/29 02:06:00 niklas Exp $ + +# This Makefile should fail, the syntax is bogus + +A=1 +.if defined anything goes (A) +a: + @true +.endif diff --git a/src/regress/usr.bin/make/mk8 b/src/regress/usr.bin/make/mk8 new file mode 100644 index 000000000..40a17a9e3 --- /dev/null +++ b/src/regress/usr.bin/make/mk8 @@ -0,0 +1,12 @@ +all: nofile goodfile phony + +nofile: + @echo 1 + +goodfile: + @echo 2 + +phony: + @echo 3 + +.PHONY: phony diff --git a/src/regress/usr.bin/make/mk9 b/src/regress/usr.bin/make/mk9 new file mode 100644 index 000000000..4a2dff9ab --- /dev/null +++ b/src/regress/usr.bin/make/mk9 @@ -0,0 +1,7 @@ +.undef A +B=echo zoinx +C:sh=echo yop +a: + @echo ${A:sh} + @echo ${B:sh} + @echo $C diff --git a/src/regress/usr.bin/make/mkfail b/src/regress/usr.bin/make/mkfail new file mode 100644 index 000000000..0c2c7b282 --- /dev/null +++ b/src/regress/usr.bin/make/mkfail @@ -0,0 +1,2 @@ +a: + @false diff --git a/src/regress/usr.bin/make/obj b/src/regress/usr.bin/make/obj new file mode 120000 index 000000000..d67e54bab --- /dev/null +++ b/src/regress/usr.bin/make/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/make \ No newline at end of file diff --git a/src/regress/usr.bin/make/t10.out b/src/regress/usr.bin/make/t10.out new file mode 100644 index 000000000..fac80afe7 --- /dev/null +++ b/src/regress/usr.bin/make/t10.out @@ -0,0 +1,4 @@ +# +# . a +# b/o d.e +# . z diff --git a/src/regress/usr.bin/make/t11.out b/src/regress/usr.bin/make/t11.out new file mode 100644 index 000000000..6407cb900 --- /dev/null +++ b/src/regress/usr.bin/make/t11.out @@ -0,0 +1,13 @@ +text +text +text +text +1text +text1 +1text +text1 +1text +text1 +1text +text1 +zoinxzoinx42->=hop diff --git a/src/regress/usr.bin/make/t11.out2 b/src/regress/usr.bin/make/t11.out2 new file mode 100644 index 000000000..d14246b7d --- /dev/null +++ b/src/regress/usr.bin/make/t11.out2 @@ -0,0 +1,13 @@ +ext +tex +ext +tex +1ext +tex1 +1ext +tex1 +1text +tex1t +1text +tex1t +zoinxzoinx42->=hop diff --git a/src/regress/usr.bin/make/t12.out b/src/regress/usr.bin/make/t12.out new file mode 100644 index 000000000..842b6a117 --- /dev/null +++ b/src/regress/usr.bin/make/t12.out @@ -0,0 +1,3 @@ +mk1 mk4a mk11 +mk1 mk4a mk4 mk11 +mk1 mk4 mk4a mk10 mk11 diff --git a/src/regress/usr.bin/make/t13.out b/src/regress/usr.bin/make/t13.out new file mode 100644 index 000000000..e69e4592a --- /dev/null +++ b/src/regress/usr.bin/make/t13.out @@ -0,0 +1 @@ +aends with space a diff --git a/src/regress/usr.bin/make/t19.out b/src/regress/usr.bin/make/t19.out new file mode 100644 index 000000000..c2cdaa0f2 --- /dev/null +++ b/src/regress/usr.bin/make/t19.out @@ -0,0 +1 @@ +/bin/sh diff --git a/src/regress/usr.bin/make/t2.out b/src/regress/usr.bin/make/t2.out new file mode 100644 index 000000000..7a5aafc8f --- /dev/null +++ b/src/regress/usr.bin/make/t2.out @@ -0,0 +1 @@ +COPTS=-g -O2 diff --git a/src/regress/usr.bin/make/t20.out b/src/regress/usr.bin/make/t20.out new file mode 100644 index 000000000..5897d0d8e --- /dev/null +++ b/src/regress/usr.bin/make/t20.out @@ -0,0 +1 @@ +/bin/zsh /bin/sh diff --git a/src/regress/usr.bin/make/t21.out b/src/regress/usr.bin/make/t21.out new file mode 100644 index 000000000..bdb258de0 --- /dev/null +++ b/src/regress/usr.bin/make/t21.out @@ -0,0 +1,3 @@ +S= http://heanet.dl.sourceforge.net/sourceforge/%SUBDIR%/ +T= http://heanet.dl.sourceforge.net/sourceforge/%SUBDIR%/ + diff --git a/src/regress/usr.bin/make/t22.out b/src/regress/usr.bin/make/t22.out new file mode 100644 index 000000000..d8e906f80 --- /dev/null +++ b/src/regress/usr.bin/make/t22.out @@ -0,0 +1,2 @@ +echo "business as usual" +business as usual diff --git a/src/regress/usr.bin/make/t23.out b/src/regress/usr.bin/make/t23.out new file mode 100644 index 000000000..8a40a4c49 --- /dev/null +++ b/src/regress/usr.bin/make/t23.out @@ -0,0 +1,2 @@ +Problem with variable expansion chain: A -> B -> C -> A + Variable A is recursive. diff --git a/src/regress/usr.bin/make/t29.out b/src/regress/usr.bin/make/t29.out new file mode 100644 index 000000000..f64de89f2 --- /dev/null +++ b/src/regress/usr.bin/make/t29.out @@ -0,0 +1,4 @@ +touch t29.targ +touch t29dep +touch libt29.a +touch t29.targ2 diff --git a/src/regress/usr.bin/make/t29.out2 b/src/regress/usr.bin/make/t29.out2 new file mode 100644 index 000000000..fd5c0e4b6 --- /dev/null +++ b/src/regress/usr.bin/make/t29.out2 @@ -0,0 +1,3 @@ +touch t29.targ +touch libt29.a +touch t29.targ2 diff --git a/src/regress/usr.bin/make/t3.out b/src/regress/usr.bin/make/t3.out new file mode 100644 index 000000000..8a0c176a2 --- /dev/null +++ b/src/regress/usr.bin/make/t3.out @@ -0,0 +1 @@ +A=3 diff --git a/src/regress/usr.bin/make/t30.out b/src/regress/usr.bin/make/t30.out new file mode 100644 index 000000000..48b2d47f4 --- /dev/null +++ b/src/regress/usr.bin/make/t30.out @@ -0,0 +1,4 @@ +begin +a +b +end diff --git a/src/regress/usr.bin/make/t32.out b/src/regress/usr.bin/make/t32.out new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/src/regress/usr.bin/make/t32.out @@ -0,0 +1 @@ +0 diff --git a/src/regress/usr.bin/make/t33.out b/src/regress/usr.bin/make/t33.out new file mode 100644 index 000000000..d00491fd7 --- /dev/null +++ b/src/regress/usr.bin/make/t33.out @@ -0,0 +1 @@ +1 diff --git a/src/regress/usr.bin/make/t34.out b/src/regress/usr.bin/make/t34.out new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/src/regress/usr.bin/make/t34.out @@ -0,0 +1 @@ +3 diff --git a/src/regress/usr.bin/make/t35.out b/src/regress/usr.bin/make/t35.out new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/src/regress/usr.bin/make/t35.out @@ -0,0 +1 @@ +2 diff --git a/src/regress/usr.bin/make/t4.out b/src/regress/usr.bin/make/t4.out new file mode 100644 index 000000000..ea88db4cf --- /dev/null +++ b/src/regress/usr.bin/make/t4.out @@ -0,0 +1 @@ +I=5 diff --git a/src/regress/usr.bin/make/t6.out b/src/regress/usr.bin/make/t6.out new file mode 100644 index 000000000..c89252829 --- /dev/null +++ b/src/regress/usr.bin/make/t6.out @@ -0,0 +1,4 @@ +good +check quotes +work +to keep diff --git a/src/regress/usr.bin/make/t8.out b/src/regress/usr.bin/make/t8.out new file mode 100644 index 000000000..2b2f2e1b9 --- /dev/null +++ b/src/regress/usr.bin/make/t8.out @@ -0,0 +1,2 @@ +1 +3 diff --git a/src/regress/usr.bin/make/t9.out b/src/regress/usr.bin/make/t9.out new file mode 100644 index 000000000..75c4a7a5f --- /dev/null +++ b/src/regress/usr.bin/make/t9.out @@ -0,0 +1,3 @@ + +zoinx +yop diff --git a/src/regress/usr.bin/mandoc/CVS/Entries b/src/regress/usr.bin/mandoc/CVS/Entries new file mode 100644 index 000000000..a49621ba7 --- /dev/null +++ b/src/regress/usr.bin/mandoc/CVS/Entries @@ -0,0 +1,5 @@ +D/mdoc//// +D/char//// +/Makefile/1.3/Mon May 31 05:18:56 2010// +/Makefile.inc/1.3/Mon May 31 05:18:56 2010// +D/roff//// diff --git a/src/regress/usr.bin/mandoc/CVS/Repository b/src/regress/usr.bin/mandoc/CVS/Repository new file mode 100644 index 000000000..df7a59748 --- /dev/null +++ b/src/regress/usr.bin/mandoc/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc diff --git a/src/regress/usr.bin/mandoc/CVS/Root b/src/regress/usr.bin/mandoc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/Makefile b/src/regress/usr.bin/mandoc/Makefile new file mode 100644 index 000000000..3849ac667 --- /dev/null +++ b/src/regress/usr.bin/mandoc/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.3 2010/04/25 17:35:31 schwarze Exp $ + +SUBDIR+= mdoc char roff + +groff groff-clean: _SUBDIRUSE + +.include diff --git a/src/regress/usr.bin/mandoc/Makefile.inc b/src/regress/usr.bin/mandoc/Makefile.inc new file mode 100644 index 000000000..90dfa0ce6 --- /dev/null +++ b/src/regress/usr.bin/mandoc/Makefile.inc @@ -0,0 +1,39 @@ +# $OpenBSD: Makefile.inc,v 1.3 2010/04/25 17:15:48 schwarze Exp $ + +DIFF=diff -au +MANDOC?=mandoc +#MANDOCOPTS=-fstrict -Wall +NROFF=nroff -mandoc +SED=sed +SH=/bin/sh + +all: clean + +groff: ${GROFF_TARGETS:C/$/.out_ascii/} + +.SUFFIXES: .in .out_ascii .sh + +.in: + @echo " -> ${*}" + @${MANDOC} ${MANDOCOPTS} ${.CURDIR}/${*}.in | ${SED} '$$d' \ + > ${*}.mandoc_ascii + @${DIFF} ${*}.out_ascii ${*}.mandoc_ascii + +.in.out_ascii: + @echo " -> ${*}" + @${NROFF} ${.CURDIR}/${<} | ${SED} '$$d' > ${@} + +.sh: + @echo " -> ${*}" + @MANDOC="${MANDOC}" MANDOCOPTS="${MANDOCOPTS}" \ + ${SH} ${.CURDIR}/${*}.sh + +clean: + rm -f *.mandoc_ascii *.core + +groff-clean: +.if defined(GROFF_TARGETS) + rm -f ${GROFF_TARGETS:C/$/.out_ascii/} +.endif + +cleandir: groff-clean clean diff --git a/src/regress/usr.bin/mandoc/char/CVS/Entries b/src/regress/usr.bin/mandoc/char/CVS/Entries new file mode 100644 index 000000000..31afc8566 --- /dev/null +++ b/src/regress/usr.bin/mandoc/char/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Dec 23 23:40:58 2009// +/Makefile.inc/1.1/Wed Dec 23 23:40:58 2009// +D/space//// diff --git a/src/regress/usr.bin/mandoc/char/CVS/Repository b/src/regress/usr.bin/mandoc/char/CVS/Repository new file mode 100644 index 000000000..8dddc3522 --- /dev/null +++ b/src/regress/usr.bin/mandoc/char/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/char diff --git a/src/regress/usr.bin/mandoc/char/CVS/Root b/src/regress/usr.bin/mandoc/char/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/char/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/char/Makefile b/src/regress/usr.bin/mandoc/char/Makefile new file mode 100644 index 000000000..bffdc8d2a --- /dev/null +++ b/src/regress/usr.bin/mandoc/char/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.1 2009/12/23 23:40:58 schwarze Exp $ + +SUBDIR+= space + +groff groff-clean: _SUBDIRUSE + +.include diff --git a/src/regress/usr.bin/mandoc/char/Makefile.inc b/src/regress/usr.bin/mandoc/char/Makefile.inc new file mode 100644 index 000000000..799b110a4 --- /dev/null +++ b/src/regress/usr.bin/mandoc/char/Makefile.inc @@ -0,0 +1,3 @@ +# $OpenBSD: Makefile.inc,v 1.1 2009/12/23 23:40:58 schwarze Exp $ + +.include "../Makefile.inc" diff --git a/src/regress/usr.bin/mandoc/char/space/CVS/Entries b/src/regress/usr.bin/mandoc/char/space/CVS/Entries new file mode 100644 index 000000000..68bb2a968 --- /dev/null +++ b/src/regress/usr.bin/mandoc/char/space/CVS/Entries @@ -0,0 +1,4 @@ +/nobreak.in/1.1/Wed Dec 23 23:40:58 2009// +/Makefile/1.2/Mon Apr 5 23:11:51 2010// +/tab.in/1.1/Fri Apr 23 00:34:08 2010// +D diff --git a/src/regress/usr.bin/mandoc/char/space/CVS/Repository b/src/regress/usr.bin/mandoc/char/space/CVS/Repository new file mode 100644 index 000000000..8a2364f6f --- /dev/null +++ b/src/regress/usr.bin/mandoc/char/space/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/char/space diff --git a/src/regress/usr.bin/mandoc/char/space/CVS/Root b/src/regress/usr.bin/mandoc/char/space/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/char/space/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/char/space/Makefile b/src/regress/usr.bin/mandoc/char/space/Makefile new file mode 100644 index 000000000..f8a25e34f --- /dev/null +++ b/src/regress/usr.bin/mandoc/char/space/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.2 2010/04/23 00:34:08 schwarze Exp $ + +REGRESS_TARGETS=nobreak tab +GROFF_TARGETS=nobreak tab + +.include diff --git a/src/regress/usr.bin/mandoc/char/space/nobreak.in b/src/regress/usr.bin/mandoc/char/space/nobreak.in new file mode 100644 index 000000000..e2ac46c40 --- /dev/null +++ b/src/regress/usr.bin/mandoc/char/space/nobreak.in @@ -0,0 +1,18 @@ +.Dd $Mdocdate: December 23 2009 $ +.Dt SPACE-NOBREAK 1 +.Os +.Sh NAME +.Nm space-nobreak +.Nd non-breaking, non-collapsing space +.Sh DESCRIPTION +The following line has 78 characters and fits: +.Pp +78 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x x +.Pp +The following line has 79 characters and breaks: +.Pp +79 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x x +.Pp +With a non-breaking space, it breaks earlier: +.Pp +79 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x\~x diff --git a/src/regress/usr.bin/mandoc/char/space/tab.in b/src/regress/usr.bin/mandoc/char/space/tab.in new file mode 100644 index 000000000..ba73801bc --- /dev/null +++ b/src/regress/usr.bin/mandoc/char/space/tab.in @@ -0,0 +1,104 @@ +.Dd $Mdocdate: April 23 2010 $ +.Dt SPACE-TAB 1 +.Os +.Sh NAME +.Nm space-tab +.Nd handling of literal space characters +.Sh DESCRIPTION +plain text +.br +1 x +.br +22 x +.br +333 x +.br +4444 x +.br +55555 x +.br +666666 x +.br +7777777 x +.br +88888888 x +.br +999999999 x +.br +aaaaaaaaaa x +.br +bbbbbbbbbbb x +.br +cccccccccccc x +.br +ddddddddddddd x +.br +tab space +.br +tab tab +.br +space tab +.br + tab +.br + tab +.br +ragged display +.Bd -ragged -offset 2n +1 x +.br +22 x +.br +333 x +.br +4444 x +.br +55555 x +.br +666666 x +.br +7777777 x +.br +88888888 x +.br +999999999 x +.br +aaaaaaaaaa x +.br +bbbbbbbbbbb x +.br +cccccccccccc x +.br +ddddddddddddd x +.br +tab space +.br +tab tab +.br +space tab +.br + tab +.br + tab +.Ed +literal display +.Bd -literal -offset 2n +1 x +22 x +333 x +4444 x +55555 x +666666 x +7777777 x +88888888 x +999999999 x +aaaaaaaaaa x +bbbbbbbbbbb x +cccccccccccc x +ddddddddddddd x +tab space +tab tab +space tab + tab + tab +.Ed diff --git a/src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Entries b/src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Entries new file mode 100644 index 000000000..96b3221b8 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Mon Apr 12 23:02:03 2010// +/blank.in/1.1/Mon Apr 12 23:02:03 2010// +D diff --git a/src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Repository b/src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Repository new file mode 100644 index 000000000..916042ca5 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/mdoc/Bd diff --git a/src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Root b/src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bd/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/mdoc/Bd/Makefile b/src/regress/usr.bin/mandoc/mdoc/Bd/Makefile new file mode 100644 index 000000000..58084d5b4 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bd/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2010/04/12 23:02:03 schwarze Exp $ + +REGRESS_TARGETS=blank +GROFF_TARGETS=blank + +.include diff --git a/src/regress/usr.bin/mandoc/mdoc/Bd/blank.in b/src/regress/usr.bin/mandoc/mdoc/Bd/blank.in new file mode 100644 index 000000000..c165b20c3 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bd/blank.in @@ -0,0 +1,17 @@ +.Dd $Mdocdate: April 12 2010 $ +.Dt BD-BLANK 1 +.Os +.Sh NAME +.Nm Bd-blank +.Nd handling of blank lines in literal displays +.Sh DESCRIPTION +.Bd -literal +one completely blank line: + +two blank lines: + + +finally, a trailing blank line: + +.Ed +end of test document diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Entries b/src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Entries new file mode 100644 index 000000000..11e7a5400 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Entries @@ -0,0 +1,11 @@ +/EMULTILIST.sh/1.1/Wed Oct 28 03:20:42 2009// +/ENOTYPE.sh/1.1/Wed Oct 28 03:20:42 2009// +/diag.in/1.1/Wed Oct 28 03:20:42 2009// +/hang.in/1.1/Wed Oct 28 03:20:42 2009// +/inset.in/1.1/Wed Oct 28 03:20:42 2009// +/tag.in/1.1/Wed Oct 28 03:20:42 2009// +/column.in/1.1/Thu Dec 24 23:29:44 2009// +/Makefile/1.4/Mon Apr 5 23:11:51 2010// +/multitag.in/1.1/Tue Apr 13 22:49:47 2010// +/nested.in/1.1/Mon Apr 12 22:57:05 2010// +D diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Repository b/src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Repository new file mode 100644 index 000000000..6a5bea242 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/mdoc/Bl diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Root b/src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/EMULTILIST.sh b/src/regress/usr.bin/mandoc/mdoc/Bl/EMULTILIST.sh new file mode 100755 index 000000000..b174e412a --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/EMULTILIST.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +trap 'rm -f *.*_tmp' EXIT + +ltypes="bullet dash enum hyphen item tag diag hang ohang inset column" + +for first in $ltypes; do + for second in $ltypes; do + ${MANDOC} > EMULTILIST.out_tmp 2> EMULTILIST.err_tmp << __EOF__; +.Dd \$Mdocdate: October 28 2009 $ +.Dt EMULTILIST 1 +.Os +.Sh NAME +.Nm EMULTILIST +.Nd list of multiple types +.Sh DESCRIPTION +.Bl -${first} -${second} +.El +__EOF__ + if [ $? -eq 0 ]; then + echo ".Bl -$first -$second failed to fail" + exit 1 + fi + if [ -s EMULTILIST.out_tmp ]; then + echo ".Bl -$first -$second produced output" + cat EMULTILIST.out_tmp + exit 1 + fi + if ! grep -q 'too many list types' EMULTILIST.err_tmp; then + echo ".Bl -$first -$second did not throw EMULTILIST" + exit 1 + fi + if grep -qv 'too many list types' EMULTILIST.err_tmp; then + echo ".Bl -$first -$second returned unexpected error" + cat EMULTILIST.err_tmp + fi + done +done + +exit 0 diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/ENOTYPE.sh b/src/regress/usr.bin/mandoc/mdoc/Bl/ENOTYPE.sh new file mode 100755 index 000000000..7d7aebde1 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/ENOTYPE.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +trap 'rm -f *.*_tmp' EXIT + +ltypes="bullet dash enum hyphen item tag diag hang ohang inset column" +atypes="compact width offset" +for list in $ltypes; do + for arg in $atypes; do + [ "X$arg" = "Xcompact" ] && arg2="" || arg2="Ds" + ${MANDOC} ${MANDOCOPTS} > ENOTYPE.out_tmp 2> ENOTYPE.err_tmp << __EOF__; +.Dd \$Mdocdate: October 28 2009 $ +.Dt ENOTYPE 1 +.Os +.Sh NAME +.Nm ENOTYPE +.Nd list argument before list type +.Sh DESCRIPTION +.Bl -${arg} ${arg2} -${list} +.El +__EOF__ + if [ $? -ne 0 ]; then + echo ".Bl -$arg -$list failed" + cat ENOTYPE.err_tmp + exit 1 + fi + if ! grep -q 'list arguments preceding type' ENOTYPE.err_tmp; then + echo ".Bl -$arg -$list did not throw ENOTYPE" + exit 1 + fi + done +done + +exit 0 diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/Makefile b/src/regress/usr.bin/mandoc/mdoc/Bl/Makefile new file mode 100644 index 000000000..7439062b8 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/Makefile @@ -0,0 +1,20 @@ +# $OpenBSD: Makefile,v 1.4 2010/04/13 22:49:47 schwarze Exp $ + +REGRESS_TARGETS=tag inset hang diag column multitag nested +GROFF_TARGETS=tag inset hang diag column multitag nested + +REGRESS_TARGETS+=EMULTILIST ENOTYPE +REGRESS_SLOW_TARGETS=EMULTILIST + +# broken: +# different rendering of bullet +# and different indentation +#REGRESS_TARGETS+=bullet +#GROFF_TARGETS+=bullet.out_ascii + +# broken: +# different indentation +#REGRESS_TARGETS+=enum +#GROFF_TARGETS+=enum.out_ascii + +.include diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/column.in b/src/regress/usr.bin/mandoc/mdoc/Bl/column.in new file mode 100644 index 000000000..83daeb670 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/column.in @@ -0,0 +1,55 @@ +.Dd $Mdocdate: December 24 2009 $ +.Dt BL-COLUMN 1 +.Os +.Sh NAME +.Nm Bl-column +.Nd lists with multiple columns +.Sh DESCRIPTION +.Bl -column "a" +.It a +.El +.Bl -column "a" "b" +.It a Ta b +.El +.\" avoid "c" which means "cm" +.Bl -column "a" "b" "cc" +.It a Ta b Ta cc +.El +.Bl -column "a" "b" "cc" "d" +.It a Ta b Ta cc Ta d +.El +.Bl -column "a" "b" "cc" "d" "e" +.It a Ta b Ta cc Ta d Ta e +.El +.\" Probing up to the utter limits of groff. +.\" With more than 5 columns or more than 78 characters per line, +.\" groff .Bl -column turns completely mad. +.\" mandoc can do more, but it's no use testing that. +.Bd -literal +5 + 35 + 4 + 34 = 78: +.Ed +.Bl -column "x35xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "x34xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +.It x35xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Ta x34xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +.It a Ta b +.El +.Bd -literal +5 + (22+4)*2 + 21 = 78: +.Ed +.Bl -column "x22xxxxxxxxxxxxxxxxxxx" "x22xxxxxxxxxxxxxxxxxxx" "x21xxxxxxxxxxxxxxxxxx" +.It x22xxxxxxxxxxxxxxxxxxx Ta x22xxxxxxxxxxxxxxxxxxx Ta x21xxxxxxxxxxxxxxxxxx +.It a Ta b Ta c +.El +.Bd -literal +5 + 16 + (4+15)*3 = 78: +.Ed +.Bl -column "x16xxxxxxxxxxxxx" "x15xxxxxxxxxxxx" "x15xxxxxxxxxxxx" "x15xxxxxxxxxxxx" +.It x16xxxxxxxxxxxxx Ta x15xxxxxxxxxxxx Ta x15xxxxxxxxxxxx Ta x15xxxxxxxxxxxx +.It a Ta b Ta c Ta d +.El +.Bd -literal +5 + 13 + (3+12)*4 = 78: +.Ed +.Bl -column "x13xxxxxxxxxx" "x12xxxxxxxxx" "x12xxxxxxxxx" "x12xxxxxxxxx" "x12xxxxxxxxx" +.It x13xxxxxxxxxx Ta x12xxxxxxxxx Ta x12xxxxxxxxx Ta x12xxxxxxxxx Ta x12xxxxxxxxx +.It a Ta b Ta c Ta d Ta e +.El diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/diag.in b/src/regress/usr.bin/mandoc/mdoc/Bl/diag.in new file mode 100644 index 000000000..a35dbe11d --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/diag.in @@ -0,0 +1,39 @@ +.Dd $Mdocdate: October 28 2009 $ +.Dt BL-DIAG 1 +.Os +.Sh NAME +.Nm Bl-diag +.Nd section 4 diagnostic lists +.Sh DESCRIPTION +.Bl -diag +.It tag +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -diag +.It four +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -diag +.It quint +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -diag +.It indent +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -diag +.It septime +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -diag +.It achtacht +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -diag +.It neun_neun +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -diag +.It zehn__zehn +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/hang.in b/src/regress/usr.bin/mandoc/mdoc/Bl/hang.in new file mode 100644 index 000000000..238c911ad --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/hang.in @@ -0,0 +1,47 @@ +.Dd $Mdocdate: October 28 2009 $ +.Dt BL-HANG 1 +.Os +.Sh NAME +.Nm Bl-hang +.Nd hanged lists +.Sh DESCRIPTION +.Bl -hang -width 5n +.It tag +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -hang -width 5n +.It four +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -hang -width 5n +.It quint +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -hang -width 5n +.It indent +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -hang -width 5n +.It septime +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -hang -width 5n +.It achtacht +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -hang -width 5n +.It neun_neun +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -hang -width 5n +.It zehn__zehn +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/inset.in b/src/regress/usr.bin/mandoc/mdoc/Bl/inset.in new file mode 100644 index 000000000..19e83cf5c --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/inset.in @@ -0,0 +1,39 @@ +.Dd $Mdocdate: October 28 2009 $ +.Dt BL-INSET 1 +.Os +.Sh NAME +.Nm Bl-inset +.Nd inset list labels +.Sh DESCRIPTION +.Bl -inset +.It tag +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -inset +.It four +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -inset +.It quint +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -inset +.It indent +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -inset +.It septime +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -inset +.It achtacht +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -inset +.It neun_neun +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -inset +.It zehn__zehn +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/multitag.in b/src/regress/usr.bin/mandoc/mdoc/Bl/multitag.in new file mode 100644 index 000000000..4a1daef5b --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/multitag.in @@ -0,0 +1,47 @@ +.Dd $Mdocdate: April 13 2010 $ +.Dt BL-MULTITAG 1 +.Os +.Sh NAME +.Nm Bl-multitag +.Nd lists with multiple successive tags +.Sh DESCRIPTION +inset: +.Bl -inset +.It first +.It second +.It third +some text +.It fourth +.It fifth +more text +.El +tag: +.Bl -tag -width Ds +.It first +.It second +.It third +some text +.It fourth +.It fifth +more text +.El +inset compact: +.Bl -inset -compact +.It first +.It second +.It third +some text +.It fourth +.It fifth +more text +.El +tag compact: +.Bl -tag -width Ds -compact +.It first +.It second +.It third +some text +.It fourth +.It fifth +more text +.El diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/nested.in b/src/regress/usr.bin/mandoc/mdoc/Bl/nested.in new file mode 100644 index 000000000..edc81795d --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/nested.in @@ -0,0 +1,44 @@ +.Dd $Mdocdate: April 12 2010 $ +.Dt BL-NESTED 1 +.Os +.Sh NAME +.Nm Bl-nested +.Nd nested lists +.Sh DESCRIPTION +inset: +.Bl -inset +.It outer +list +.Bl -inset +.It inner +list +.El +.El +inset compact: +.Bl -inset -compact +.It outer +list +.Bl -inset -compact +.It inner +list +.El +.El +dash: +.Bl -dash +.It +outer list +.Bl -dash +.It +inner list +.El +.El +dash compact: +.Bl -dash -compact +.It +outer list +.Bl -dash -compact +.It +inner list +.El +.El +final text diff --git a/src/regress/usr.bin/mandoc/mdoc/Bl/tag.in b/src/regress/usr.bin/mandoc/mdoc/Bl/tag.in new file mode 100644 index 000000000..a926e0da2 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Bl/tag.in @@ -0,0 +1,39 @@ +.Dd $Mdocdate: October 28 2009 $ +.Dt BL-TAG 1 +.Os +.Sh NAME +.Nm Bl-tag +.Nd tagged lists +.Sh DESCRIPTION +.Bl -tag -width 5n +.It tag +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -tag -width 5n +.It four +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -tag -width 5n +.It quint +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -tag -width 5n +.It indent +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -tag -width 5n +.It septime +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -tag -width 5n +.It achtacht +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -tag -width 5n +.It neun neun +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El +.Bl -tag -width 5n +.It zehn_ zehn +x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +.El diff --git a/src/regress/usr.bin/mandoc/mdoc/CVS/Entries b/src/regress/usr.bin/mandoc/mdoc/CVS/Entries new file mode 100644 index 000000000..94a8426e3 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/CVS/Entries @@ -0,0 +1,11 @@ +/Makefile.inc/1.1/Wed Oct 28 03:20:42 2009// +D/Bl//// +D/In//// +D/Rs//// +D/Fl//// +D/Pa//// +D/Sm//// +/Makefile/1.7/Mon Apr 5 23:11:51 2010// +D/Bd//// +D/Li//// +D/Xr//// diff --git a/src/regress/usr.bin/mandoc/mdoc/CVS/Repository b/src/regress/usr.bin/mandoc/mdoc/CVS/Repository new file mode 100644 index 000000000..77e2c2cc2 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/mdoc diff --git a/src/regress/usr.bin/mandoc/mdoc/CVS/Root b/src/regress/usr.bin/mandoc/mdoc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Entries b/src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Entries new file mode 100644 index 000000000..312a73555 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.2/Fri Jan 1 20:08:17 2010// +/multiarg.in/1.1/Thu Dec 24 19:18:20 2009// +/noarg.in/1.2/Mon Apr 5 23:11:51 2010// +D diff --git a/src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Repository b/src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Repository new file mode 100644 index 000000000..c0ec4dd2d --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/mdoc/Fl diff --git a/src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Root b/src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Fl/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/mdoc/Fl/Makefile b/src/regress/usr.bin/mandoc/mdoc/Fl/Makefile new file mode 100644 index 000000000..4f09297db --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Fl/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.2 2010/01/01 20:08:17 schwarze Exp $ + +REGRESS_TARGETS=noarg multiarg +GROFF_TARGETS=noarg multiarg + +.include diff --git a/src/regress/usr.bin/mandoc/mdoc/Fl/multiarg.in b/src/regress/usr.bin/mandoc/mdoc/Fl/multiarg.in new file mode 100644 index 000000000..6e53e1824 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Fl/multiarg.in @@ -0,0 +1,14 @@ +.Dd $Mdocdate: December 24 2009 $ +.Dt FL-MULTIARG 1 +.Os +.Sh NAME +.Nm Fl-multiarg +.Nd multiple arguments to a Fl macro +.Sh DESCRIPTION +Each group of flags in +.Fl a b c def +gets its own dash. +.Pp +Punctuation characters like in +.Op Fl a | b +get no dash. diff --git a/src/regress/usr.bin/mandoc/mdoc/Fl/noarg.in b/src/regress/usr.bin/mandoc/mdoc/Fl/noarg.in new file mode 100644 index 000000000..decae8817 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Fl/noarg.in @@ -0,0 +1,17 @@ +.Dd $Mdocdate: April 7 2010 $ +.Dt FL-NOARG 1 +.Os +.Sh NAME +.Nm Fl-noarg +.Nd Fl macro without arguments +.Sh DESCRIPTION +Without an argument, it yields +.Fl +a dash. +.Pp +This is true even before punctuation +.Fl . +.Pp +Following macros +.Fl Op flag +follow without white space. diff --git a/src/regress/usr.bin/mandoc/mdoc/In/CVS/Entries b/src/regress/usr.bin/mandoc/mdoc/In/CVS/Entries new file mode 100644 index 000000000..e76af0d3c --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/In/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Oct 28 03:20:42 2009// +/break.in/1.2/Sun Jun 27 18:30:05 2010// +D diff --git a/src/regress/usr.bin/mandoc/mdoc/In/CVS/Repository b/src/regress/usr.bin/mandoc/mdoc/In/CVS/Repository new file mode 100644 index 000000000..70cb9d2fc --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/In/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/mdoc/In diff --git a/src/regress/usr.bin/mandoc/mdoc/In/CVS/Root b/src/regress/usr.bin/mandoc/mdoc/In/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/In/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/mdoc/In/Makefile b/src/regress/usr.bin/mandoc/mdoc/In/Makefile new file mode 100644 index 000000000..0fe06d4ac --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/In/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2009/10/28 03:20:42 schwarze Exp $ + +REGRESS_TARGETS=break +GROFF_TARGETS=break + +.include diff --git a/src/regress/usr.bin/mandoc/mdoc/In/break.in b/src/regress/usr.bin/mandoc/mdoc/In/break.in new file mode 100644 index 000000000..5847a53c4 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/In/break.in @@ -0,0 +1,16 @@ +.Dd $Mdocdate: June 6 2010 $ +.Dt IN-BREAK 2 +.Os +.Sh NAME +.Nm In-break +.Nd line break before header include file +.Sh SYNOPSIS +.In fcntl.h +.Ft int +.Fn open "const char *path" "int flags" "mode_t mode" +.In sys/types.h +.In unistd.h +.Ft int +.Fn dup "int oldd" +.Ft ssize_t +.Fn write "int d" "const void *buf" "size_t nbytes" diff --git a/src/regress/usr.bin/mandoc/mdoc/Li/CVS/Entries b/src/regress/usr.bin/mandoc/mdoc/Li/CVS/Entries new file mode 100644 index 000000000..25a56914c --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Li/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Thu Apr 8 00:29:28 2010// +/punct.in/1.1/Thu Apr 8 00:29:28 2010// +D diff --git a/src/regress/usr.bin/mandoc/mdoc/Li/CVS/Repository b/src/regress/usr.bin/mandoc/mdoc/Li/CVS/Repository new file mode 100644 index 000000000..d6d1b28e4 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Li/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/mdoc/Li diff --git a/src/regress/usr.bin/mandoc/mdoc/Li/CVS/Root b/src/regress/usr.bin/mandoc/mdoc/Li/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Li/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/mdoc/Li/Makefile b/src/regress/usr.bin/mandoc/mdoc/Li/Makefile new file mode 100644 index 000000000..cacf7d702 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Li/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2010/04/08 00:29:28 schwarze Exp $ + +REGRESS_TARGETS=punct +GROFF_TARGETS=punct + +.include diff --git a/src/regress/usr.bin/mandoc/mdoc/Li/punct.in b/src/regress/usr.bin/mandoc/mdoc/Li/punct.in new file mode 100644 index 000000000..5dfa44b5c --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Li/punct.in @@ -0,0 +1,18 @@ +.Dd $Mdocdate: April 8 2010 $ +.Dt LI-PUNCT 1 +.Os +.Sh NAME +.Nm Li-punct +.Nd punctuation following a literal macro +.Sh DESCRIPTION +.Li before . after Nm +.Pp +.Li "before . after Nm" +.Pp +.Li . after Nm +.Pp +.Li ". after Nm" +.Pp +.Li . +.Pp +.Li "." diff --git a/src/regress/usr.bin/mandoc/mdoc/Makefile b/src/regress/usr.bin/mandoc/mdoc/Makefile new file mode 100644 index 000000000..80e4898dd --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.7 2010/04/12 23:02:03 schwarze Exp $ + +SUBDIR+= Bd Bl Fl In Li Pa Rs Sm Xr + +groff groff-clean: _SUBDIRUSE + +.include diff --git a/src/regress/usr.bin/mandoc/mdoc/Makefile.inc b/src/regress/usr.bin/mandoc/mdoc/Makefile.inc new file mode 100644 index 000000000..3c6f23849 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Makefile.inc @@ -0,0 +1,3 @@ +# $OpenBSD: Makefile.inc,v 1.1 2009/10/28 03:20:42 schwarze Exp $ + +.include "../Makefile.inc" diff --git a/src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Entries b/src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Entries new file mode 100644 index 000000000..9d42cd64d --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Entries @@ -0,0 +1,3 @@ +/FILES.in/1.1/Fri Dec 25 02:00:46 2009// +/Makefile/1.1/Fri Dec 25 02:00:46 2009// +D diff --git a/src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Repository b/src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Repository new file mode 100644 index 000000000..b225dbb06 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/mdoc/Pa diff --git a/src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Root b/src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Pa/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/mdoc/Pa/FILES.in b/src/regress/usr.bin/mandoc/mdoc/Pa/FILES.in new file mode 100644 index 000000000..c20e2b3d1 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Pa/FILES.in @@ -0,0 +1,92 @@ +.Dd $Mdocdate: December 25 2009 $ +.Dt PA-FILES 1 +.Os +.Sh NAME +.Nm Pa-FILES +.Nd pathnames in the FILES section +.Sh DESCRIPTION +Usually, a +.Pa pathname +will be underlined, even in lists: +.Bl -item +.It +.Pa item +.El +.Bl -dash +.It +.Pa dash +.El +.Bl -bullet +.It +.Pa bullet +.El +.Bl -enum +.It +.Pa enum +.El +.Bl -inset +.It inset Pa key +inset +.Pa text +.El +.Bl -hang +.It hang Pa key +hang +.Pa text +.El +.Bl -ohang +.It ohang Pa key +ohang +.Pa text +.El +.Bl -tag -width Ds +.It tag Pa key +tag +.Pa text +.El +.Bl -column "one" "two" +.It Pa one Ta Pa two +.El +.Sh FILES +Even in the FILES section, a +.Pa pathname +will still be underlined, but not in all list contexts: +.Bl -item +.It +.Pa item +.El +.Bl -dash +.It +.Pa dash +.El +.Bl -bullet +.It +.Pa bullet +.El +.Bl -enum +.It +.Pa enum +.El +.Bl -inset +.It inset Pa key +inset +.Pa text +.El +.Bl -hang +.It hang Pa key +hang +.Pa text +.El +.Bl -ohang +.It ohang Pa key +ohang +.Pa text +.El +.Bl -tag -width Ds +.It tag Pa key +tag +.Pa text +.El +.Bl -column "one" "two" +.It Pa one Ta Pa two +.El diff --git a/src/regress/usr.bin/mandoc/mdoc/Pa/Makefile b/src/regress/usr.bin/mandoc/mdoc/Pa/Makefile new file mode 100644 index 000000000..b8c2f2cc9 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Pa/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2009/12/25 02:00:46 schwarze Exp $ + +REGRESS_TARGETS=FILES +GROFF_TARGETS=FILES + +.include diff --git a/src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Entries b/src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Entries new file mode 100644 index 000000000..fb55208fd --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Oct 28 03:20:42 2009// +/break.in/1.1/Wed Oct 28 03:20:42 2009// +D diff --git a/src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Repository b/src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Repository new file mode 100644 index 000000000..606b13935 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/mdoc/Rs diff --git a/src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Root b/src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Rs/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/mdoc/Rs/Makefile b/src/regress/usr.bin/mandoc/mdoc/Rs/Makefile new file mode 100644 index 000000000..0fe06d4ac --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Rs/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2009/10/28 03:20:42 schwarze Exp $ + +REGRESS_TARGETS=break +GROFF_TARGETS=break + +.include diff --git a/src/regress/usr.bin/mandoc/mdoc/Rs/break.in b/src/regress/usr.bin/mandoc/mdoc/Rs/break.in new file mode 100644 index 000000000..cee12deb3 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Rs/break.in @@ -0,0 +1,20 @@ +.Dd $Mdocdate: October 28 2009 $ +.Dt RS-BREAK 1 +.Os +.Sh NAME +.Nm Rs-break +.Nd line break before reference start +.Sh DESCRIPTION +reference on the same line: +.Rs +.%A author +.%J journal +.%N 42 +.Re +.Sh SEE ALSO +reference after a blank line: +.Rs +.%A author +.%J journal +.%N 42 +.Re diff --git a/src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Entries b/src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Entries new file mode 100644 index 000000000..4e4897a04 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sat Jan 2 02:35:53 2010// +/scope.in/1.1/Sat Jan 2 02:35:53 2010// +D diff --git a/src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Repository b/src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Repository new file mode 100644 index 000000000..9cd8e1fee --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/mdoc/Sm diff --git a/src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Root b/src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Sm/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/mdoc/Sm/Makefile b/src/regress/usr.bin/mandoc/mdoc/Sm/Makefile new file mode 100644 index 000000000..b90637afe --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Sm/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2010/01/02 02:35:53 schwarze Exp $ + +REGRESS_TARGETS=scope +GROFF_TARGETS=scope + +.include diff --git a/src/regress/usr.bin/mandoc/mdoc/Sm/scope.in b/src/regress/usr.bin/mandoc/mdoc/Sm/scope.in new file mode 100644 index 000000000..04da8dee7 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Sm/scope.in @@ -0,0 +1,30 @@ +.Dd $Mdocdate: January 2 2010 $ +.Dt SM-SCOPE 1 +.Os +.Sh NAME +.Nm Sm-scope +.Nd scope of the spacing macro +.Sh DESCRIPTION +Using an abbreviated example from the +.Xr ksh 1 +manual. +.Pp +Modifiers can be applied to the +.Pf ${ Ns Ar name Ns } +form of parameter substitution: +.Bl -tag -width Ds +.Sm off +.It ${ Ar name No :- Ar word No } +.Sm on +If +.Ar name +is set and not +.Dv NULL , +it is substituted; otherwise, +.Ar word +is substituted. +.El +.Pp +In the above modifiers, the +.Ql \&: +can be omitted, ... diff --git a/src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Entries b/src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Entries new file mode 100644 index 000000000..3abc91cc2 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Wed Feb 17 22:35:17 2010// +/args.in/1.2/Fri Apr 23 00:38:16 2010// +D diff --git a/src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Repository b/src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Repository new file mode 100644 index 000000000..f32d1d363 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/mdoc/Xr diff --git a/src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Root b/src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Xr/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/mdoc/Xr/Makefile b/src/regress/usr.bin/mandoc/mdoc/Xr/Makefile new file mode 100644 index 000000000..bf244d524 --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Xr/Makefile @@ -0,0 +1,6 @@ +# $OpenBSD: Makefile,v 1.1 2010/02/17 22:35:17 schwarze Exp $ + +REGRESS_TARGETS=args +GROFF_TARGETS=args + +.include diff --git a/src/regress/usr.bin/mandoc/mdoc/Xr/args.in b/src/regress/usr.bin/mandoc/mdoc/Xr/args.in new file mode 100644 index 000000000..10e71508e --- /dev/null +++ b/src/regress/usr.bin/mandoc/mdoc/Xr/args.in @@ -0,0 +1,25 @@ +.Dd $Mdocdate: April 23 2010 $ +.Dt XR-ARGS 1 +.Os +.Sh NAME +.Nm Xr-args +.Nd additional arguments to cross references +.Sh DESCRIPTION +One single +.Xr echo 1 +is fine. +.Pp +But listen for multiple +.Xr echo 1 s . +.Pp +Listen for those +.Xr echo 1 s really hard . +.Pp +A call, an +.Xr echo 1 , and +another +.Xr echo 1 . +.Pp +Finally, no +.Xr +echo at all. diff --git a/src/regress/usr.bin/mandoc/roff/CVS/Entries b/src/regress/usr.bin/mandoc/roff/CVS/Entries new file mode 100644 index 000000000..871fed179 --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Sun Apr 25 17:35:31 2010// +/Makefile.inc/1.1/Sun Apr 25 17:35:31 2010// +D/cond//// diff --git a/src/regress/usr.bin/mandoc/roff/CVS/Repository b/src/regress/usr.bin/mandoc/roff/CVS/Repository new file mode 100644 index 000000000..c06d94bf2 --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/roff diff --git a/src/regress/usr.bin/mandoc/roff/CVS/Root b/src/regress/usr.bin/mandoc/roff/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/roff/Makefile b/src/regress/usr.bin/mandoc/roff/Makefile new file mode 100644 index 000000000..f332351a5 --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/Makefile @@ -0,0 +1,7 @@ +# $OpenBSD: Makefile,v 1.1 2010/04/25 17:35:31 schwarze Exp $ + +SUBDIR+= cond + +groff groff-clean: _SUBDIRUSE + +.include diff --git a/src/regress/usr.bin/mandoc/roff/Makefile.inc b/src/regress/usr.bin/mandoc/roff/Makefile.inc new file mode 100644 index 000000000..c829b503e --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/Makefile.inc @@ -0,0 +1,3 @@ +# $OpenBSD: Makefile.inc,v 1.1 2010/04/25 17:35:31 schwarze Exp $ + +.include "../Makefile.inc" diff --git a/src/regress/usr.bin/mandoc/roff/cond/CVS/Entries b/src/regress/usr.bin/mandoc/roff/cond/CVS/Entries new file mode 100644 index 000000000..dfe2c05ec --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/cond/CVS/Entries @@ -0,0 +1,6 @@ +/Makefile/1.1/Sun Apr 25 17:35:31 2010// +/ie.in/1.1/Sun Apr 25 17:35:31 2010// +/ie.out_ascii/1.1/Sun Apr 25 17:35:31 2010// +/if.in/1.1/Sun Apr 25 17:35:31 2010// +/if.out_ascii/1.1/Sun Apr 25 17:35:31 2010// +D diff --git a/src/regress/usr.bin/mandoc/roff/cond/CVS/Repository b/src/regress/usr.bin/mandoc/roff/cond/CVS/Repository new file mode 100644 index 000000000..7c669faff --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/cond/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mandoc/roff/cond diff --git a/src/regress/usr.bin/mandoc/roff/cond/CVS/Root b/src/regress/usr.bin/mandoc/roff/cond/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/cond/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mandoc/roff/cond/Makefile b/src/regress/usr.bin/mandoc/roff/cond/Makefile new file mode 100644 index 000000000..2a778f4ab --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/cond/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2010/04/25 17:35:31 schwarze Exp $ + +REGRESS_TARGETS=if ie + +.include diff --git a/src/regress/usr.bin/mandoc/roff/cond/ie.in b/src/regress/usr.bin/mandoc/roff/cond/ie.in new file mode 100644 index 000000000..18bddf31e --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/cond/ie.in @@ -0,0 +1,18 @@ +.TH IE 1 +.SH NAME +if \- the roff conditional instruction with else-clause +.SH DESCRIPTION +.el Initially, else is ignored. +.ie n One-line true condition. +.br +Text following the true condition. +.el One-line else after true. +.el Another else after true. +.br +.ie t One-line false condition. +Text following the false condition. +.br +.el \{Two-line else +after false.\} +.br +.el Another else after false. diff --git a/src/regress/usr.bin/mandoc/roff/cond/ie.out_ascii b/src/regress/usr.bin/mandoc/roff/cond/ie.out_ascii new file mode 100644 index 000000000..1e67390e7 --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/cond/ie.out_ascii @@ -0,0 +1,11 @@ +IE(1) IE(1) + +NNAAMMEE + if - the roff conditional instruction with else-clause + +DDEESSCCRRIIPPTTIIOONN + One-line true condition. + Text following the true condition. + Text following the false condition. + Two-line else after false. + diff --git a/src/regress/usr.bin/mandoc/roff/cond/if.in b/src/regress/usr.bin/mandoc/roff/cond/if.in new file mode 100644 index 000000000..9ee1bdbcd --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/cond/if.in @@ -0,0 +1,44 @@ +.TH IF 1 +.SH NAME +if \- the roff conditional instruction +.SH DESCRIPTION +.if n One-line true condition. +.if t One-line false condition. +.br +.if n \{Two-line true condition +without continuation and macros.\} +.if t \{Two-line false condition +without continuation and macros.\} +.br +.if n \{\ +Two-line true condition +with continuation and macros. +.\} +.if t \{\ +Two-line false condition +with continuation and macros. +.\} +.br +.if n \{Outer true condition. +.br +.if n Inner one-line true condition. +.if t Inner one-line false condition. +.br +.if n \{Inner two-line true condition +without continuation and macros.\} +.if t \{Inner two-line false condition +without continuation and macros.\} +.br +Back to the outer true condition.\} +.br +.if t \{Outer false condition. +.br +.if n Inner one-line true condition. +.if t Inner one-line false condition. +.br +.if n \{Inner two-line true condition +without continuation and macros.\} +.if t \{Inner two-line false condition +without continuation and macros.\} +.br +Back to the outer false condition.\} diff --git a/src/regress/usr.bin/mandoc/roff/cond/if.out_ascii b/src/regress/usr.bin/mandoc/roff/cond/if.out_ascii new file mode 100644 index 000000000..638d0da15 --- /dev/null +++ b/src/regress/usr.bin/mandoc/roff/cond/if.out_ascii @@ -0,0 +1,15 @@ +IF(1) IF(1) + +NNAAMMEE + if - the roff conditional instruction + +DDEESSCCRRIIPPTTIIOONN + One-line true condition. + Two-line true condition without continuation and macros. + Two-line true condition with continuation and macros. + Outer true condition. + Inner one-line true condition. + Inner two-line true condition without continuation and + macros. + Back to the outer true condition. + diff --git a/src/regress/usr.bin/mdoclint/CVS/Entries b/src/regress/usr.bin/mdoclint/CVS/Entries new file mode 100644 index 000000000..6160e0fcb --- /dev/null +++ b/src/regress/usr.bin/mdoclint/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Fri Oct 31 14:11:04 2008// +/mdoclint.1/1.7/Mon Apr 13 19:06:38 2009// +/mdoclint/1.16/Fri Feb 12 07:49:44 2010// +D diff --git a/src/regress/usr.bin/mdoclint/CVS/Repository b/src/regress/usr.bin/mdoclint/CVS/Repository new file mode 100644 index 000000000..dcb864ac5 --- /dev/null +++ b/src/regress/usr.bin/mdoclint/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/mdoclint diff --git a/src/regress/usr.bin/mdoclint/CVS/Root b/src/regress/usr.bin/mdoclint/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/mdoclint/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/mdoclint/Makefile b/src/regress/usr.bin/mdoclint/Makefile new file mode 100644 index 000000000..bc2c96ea3 --- /dev/null +++ b/src/regress/usr.bin/mdoclint/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2008/10/31 14:11:04 jmc Exp $ + +MAN= mdoclint.1 + +afterinstall: + install -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ + ${.CURDIR}/mdoclint ${DESTDIR}/usr/bin/mdoclint + +.include diff --git a/src/regress/usr.bin/mdoclint/mdoclint b/src/regress/usr.bin/mdoclint/mdoclint new file mode 100644 index 000000000..7e908b2f2 --- /dev/null +++ b/src/regress/usr.bin/mdoclint/mdoclint @@ -0,0 +1,597 @@ +#!/usr/bin/perl +# +# $OpenBSD: mdoclint,v 1.16 2010/02/10 08:36:33 jmc Exp $ +# $NetBSD: mdoclint,v 1.26 2008/11/22 14:47:28 wiz Exp $ +# +# Copyright (c) 2001-2008 Thomas Klausner +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR, THOMAS KLAUSNER, +# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +use strict; +use warnings; + +$| = 1; + +package Parser; +use Getopt::Std; + +use constant { + OPENBSD => 1, + NETBSD => 0 +}; + +use vars qw( + $opt_a $opt_D $opt_d $opt_e $opt_F $opt_f $opt_H $opt_h $opt_m + $opt_n $opt_o $opt_P $opt_p $opt_r $opt_S $opt_s $opt_v $opt_w + $opt_X $opt_x +); + + +my $arch=`uname -m`; +chomp($arch); +my $options="aDdeFfHhmnoPprSsvwXx"; + +sub usage + { + my $default = OPENBSD ? "-aDdfHmnoPprSsXx" : "-aDdefHmnoPprSsXx"; + + print STDERR <<"EOF"; +mdoclint: verify man page correctness +usage: mdoclint [-$options] file ... + -a warn about SEE ALSO section problems + -D warn about bad casing and archs in .Dt + -d warn about bad date strings (in .Dd only) + -e warn about unsorted errors (for functions) + -F fix whitespace problems (asks before overwriting) + -f warn about possible incorrect .Fn syntax + -H warn about characters that produce problems in HTML output + -h display this help text + -m warn about man pages that are not in mdoc(7) format + -n warn about .Nd's ending in '.' + -o warn about non-empty .Os strings + -P warn about paragraph problems + -p warn about punctuation problems + -r warn about missing RCS Id + -S warn about any .Sh weirdness + -s warn about whitespace problems + -v verbose output + -w show section header in warnings + -X warn about explicit mentions of FreeBSD, NetBSD, or OpenBSD + -x warn about cross-references with missing targets +Default is $default if no flag is specified. +EOF + exit(0); +} + + +my %short = ( + "Free" => ".Fx", + "Net" => ".Nx", + "Open" => ".Ox" +); + +# constants to build +my %sections; +my $arches_re; +my $sections_re; +my $esections_re; +my $valid_date_re; +# and the code that builds them +{ + my @sections = ( + "NAME", + NETBSD ? "LIBRARY" : undef, + "SYNOPSIS", + "DESCRIPTION", + NETBSD ? "EXIT STATUS" : undef, + "RETURN VALUES", + "ENVIRONMENT", + "FILES", + "EXAMPLES", + "DIAGNOSTICS", + "ERRORS", + "SEE ALSO", + "STANDARDS", + "HISTORY", + "AUTHORS", + "CAVEATS", + "BUGS", + NETBSD ? "SECURITY CONSIDERATIONS" : undef + ); + + my $i = 1; + for my $sh (@sections) { + if (defined $sh) { + $sections{$sh} = $i++; + } + } + my @arches; + if (OPENBSD) { + @arches = + (qw(alpha amd64 arm armish aviion cats hp300 hppa + hppa64 i386 landisk loongson luna88k mac68k macppc + mvme68k mvme88k sgi socppc sparc sparc64 vax zaurus)); + } + if (NETBSD) { + @arches = + (qw(acorn26 acorn32 algor alpha amiga arc atari + bebox cats cesfic cobalt dreamcast evbarm evbmips evbppc + evbsh3 evbsh5 hp300 hp700 hpcarm hpcmips hpcsh + i386 ibmnws luna68k mac68k macppc mipsco mmeye + mvme68k mvmeppc netwinder news68k newsmips next68k + pc532 playstation2 pmax pmppc prep sandpoint sbmips + sgimips shark sparc sparc64 sun2 sun3 vax walnut + x68k x86_64)); + } + my $a = join('|', @arches); + $arches_re = qr{(?:$a)}o; + if (OPENBSD) { + $sections_re = qr{(?:3p|[1-9])}o; + $esections_re = qr{(?:3p|[0-9])}o; + } + if (NETBSD) { + $sections_re = qr{[1-9]}o; + $esections_re = qr{[0-9]}o; + } + if (OPENBSD) { + $valid_date_re = qr{\$Mdocdate\b}; + } + if (NETBSD) { + $valid_date_re = qr{(?:January|February|March|April|May|June|July|August|September|October|November|December)\s*[1-9][0-9]*,\s*(?:198[0-9]|199[0-9]|200[012345678])$}o; + } +} + +sub debug +{ + my $self = shift; + print STDOUT "debug: $self->{fn}:$self->{ln}: @_\n" if $opt_v; +} + +sub warning +{ + my $self = shift; + my $extra = ""; + if ($opt_w) { + $extra = $self->{current_section_header}.":"; + } + print STDOUT "$self->{fn}:$extra$self->{ln}: ", join('', @_), "\n"; +} + +sub handle_options +{ + getopts($options); + $opt_h and usage(); + + # default to all warnings if no flag is set + unless ($opt_a or $opt_D or $opt_d or $opt_e or $opt_f or $opt_H + or $opt_m or $opt_n or $opt_o or $opt_P or $opt_p or $opt_r + or $opt_S or $opt_s or $opt_X or $opt_x) { + $opt_a = $opt_D = $opt_d = $opt_f = $opt_H = $opt_m = + $opt_n = $opt_o = $opt_P = $opt_p = $opt_r = $opt_S = + $opt_s = $opt_X = $opt_x = 1; + $opt_e = 1 if NETBSD; + } +} + + +sub verify_xref +{ + my ($self, $page, $section, $pre, $post) = @_; + if ("$page.$section" eq $self->{fn}) { + $self->warning("Xref to itself (use .Nm instead)") if $opt_x; + } + # try to find corresponding man page + for my $dir ("/usr/share/man", + OPENBSD ? "/usr/X11R6/man" : "/usr/X11R7/man") { + for my $a ("", $arch) { + for my $page ("cat$section/$a/$page.0", + "man$section/$a/$page.$section") { + return 1 if -f "$dir/$page"; + } + } + } + return 1 if -f "./$page.$section"; + + $self->warning($pre."trailing Xref to $page($section)$post") if $opt_x; + return 0; +} + +sub new +{ + my ($class, $fn) = @_; + + my $o = { + mandoc_p => 1, + all => [], + lastline => '', + changes => 0, + oxrcsidseen => 0, + nxrcsidseen => 0, + lastsh => 0, + sasection => 0, + saname => '', + sarest => ',', + insa => 0, + inliteral => 0, + shseen => {}, + last_error_name => '', + current_section_header => '', + fn => $fn + }; + open my $input, '<', $fn or die "can't open input file $fn"; + $o->{file} = $input; + $o->{ln} = 0; + bless $o, $class; +} + +sub next_line +{ + my ($self) = @_; + + my $l = readline($self->{file}); + if (defined $l) { + $self->{ln}++; + } + return $l; +} + +sub close +{ + my ($self) = @_; + + close($self->{file}); +} + +sub parse_macro_args +{ + my ($s, $string) = @_; + my $_ = $string; + my @params = (); + while (!/^$/) { + if (s/^\"(.*?)\"\s*//) { + push(@params, $1); + } elsif (s/^(\S+)\s*//) { + push(@params, $1); + } + } + if (@params > 9 and OPENBSD) { + $s->warning("$string holds >9 parameters"); + } + return @params; +} + +sub set_section_header +{ + my ($s, $section_header) = @_; + $section_header = join(' ', $s->parse_macro_args($section_header)); + + if ($section_header eq 'SEE ALSO') { + $s->{insa} = 1; + } elsif ($s->{insa} == 1) { + if (not $s->{sarest} eq "") { + $s->warning("unneeded characters at end of ", + "SEE ALSO: ", "`$s->{sarest}'") if $opt_a; + # to avoid a second warning at EOF + $s->{sarest} = ""; + } + # finished SEE ALSO section + $s->{insa} = 2; + } + + if (not $sections{$section_header}) { + $s->warning("unknown section header: ", + "`$section_header'") if $opt_S; + } else { + if ($s->{lastsh} >= $sections{$section_header}) { + $s->warning("section header ", + "`$section_header' in wrong order") if $opt_S; + } + $s->{shseen}->{$section_header} = 1; + $s->{lastsh} = $sections{$section_header}; + } + + if ($s->{lastline} =~ /^\.Pp/o) { + $s->warning("Paragraph problem: section header after .Pp") + if $opt_P; + } + + $s->{current_section_header} = $section_header; +} + +sub process_and_save_line +{ + my ($s, $_) = @_; + my $result = $s->process_line($_); + # note that process_line chomps \n, then re-adds it, + # so we detect a change on last lines without a \n. + if ($result ne $_) { + $s->{changes} = 1; + } + push(@{$s->{all}}, $result); +} + +sub process_line +{ + my ($s, $_) = @_; + chomp; + # always cut trailing spaces + if (/\s+$/o) { + $s->warning("trailing space: `$_'") if $opt_s; + s/\s+$//o; + } + if (/\$OpenBSD\b.*\$/o) { + $s->{oxrcsidseen} = 1; + # nothing else to do + return "$_\n"; + } + if (/\$NetBSD\b.*\$/o) { + $s->{nxrcsidseen} = 1; + # nothing else to do + return "$_\n"; + } + # comments + if (/^\.\\\"/) { + return "$_\n"; + } + if (/^\.TH\s+/o) { + $s->warning("not mandoc") if $opt_m; + $s->{mandoc_p} = 0; +# /^.TH\s*[\w-_".]+\s*([1-9])/; +# $section = $1; + return "$_\n"; + } +# if (/^.Dt\s*[\w-_".]+\s*([1-9])/) { +# $section = $1; +# } + if (/^\.Dt\s+/o) { + if (! /^\.Dt\s+(?:[A-Z\d._-]+)\s+$sections_re(?:\s+$arches_re)?$/o) { + $s->warning("bad .Dt: `$_'") if $opt_D; + } + } + + if ($s->{mandoc_p}) { + if (/^\.Sh\s+(.*)$/o) { + $s->set_section_header($1); + return "$_\n"; + } + } else { + if (/^\.SH\s+(.*)$/o) { + $s->set_section_header($1); + return "$_\n"; + } + } + + if ($s->{insa} == 1) { + if (/^\.Xr\s+(\S+)\s+($sections_re)\s?(.*)?$/o) { + my ($saname, $sasection, $sarest) = ($1, $2, $3); + $saname =~ s/^\\&//o; + if ($s->{sasection} gt $sasection + or ($s->{sasection} eq $sasection and + (lc($s->{saname}) gt lc($saname)))) { + $s->warning("SEE ALSO: `.Xr $s->{saname} ", + "$s->{sasection}' should be after ", + "`.Xr $saname $sasection'") if $opt_a; + } + if ($s->{sarest} ne ",") { + $s->warning("SEE ALSO: .Xr not separated ", + "by comma, but `$s->{sarest}'") if $opt_a; + } + $s->{saname} = $saname; + $s->{sasection} = $sasection; + $s->{sarest} = $sarest; + } + if (/^\.Rs(?:\s+|$)/o) { + if ($s->{sarest} ne "") { + $s->warning("SEE ALSO: Not necessary to ", + "separate .Xr from .Rs by ", + "`$s->{sarest}'") if $opt_a; + } + $s->{sarest} = ""; + } + } + + if (/^\.Fn.*,.+/o) { + $s->warning("possible .Fn misuse: `$_'") if $opt_f; + } + if (OPENBSD) { + if (/^(?:[<>])/o or /[^\\][<>]/o) { + $s->warning("use \*(Lt \*(Gt (or .Aq) ", + "instead of < >: `$_'") if $opt_H; + } + } + if (NETBSD) { + if (/^(?:[<>&])/o or /[^\\][<>&]/o) { + $s->warning("use \*[Lt] \*[Gt] (or .Aq) \*[Am] ", + "instead of < > &: `$_'") if $opt_H; + } + } + + if (/\b(Free|Net|Open)BSD\b/o + and not /\b(?:www|ftp)\.(?:Free|Net|Open)BSD\.org\b/o + and not /\bOpenBSD\::.*3p\b/o + and not /\/pub\/OpenBSD\//o + and not /\@(?:Free|Net|Open)BSD\.(?i:org)\b/o) { + $s->warning("verbose mention of `$1BSD' instead of " + . "`$short{$1}': `$_'") if $opt_X; + } + if (/^\./o and (/Bx (Open)/o or /Bx (Free)/o or /Bx (Net)/o)) { + $s->warning("`.Bx $1' found -- use $short{$1} instead") + if $opt_X; + } + if (/^\.Os\s+(.+)/o) { + $s->warning(".Os used with argument `$1'") if $opt_o; + } + + if (/^\.Nd.*\.$/o) { + $s->warning(".Nd ends with a dot: `$_'") if $opt_n; + } + + if (/\w\w\.\s+[A-Z]/o) { + $s->warning("new sentence, new line: `$_'") if $opt_p; + } + if (/^\... .*[^\s][\.();,\[\]\{\}:]$/o + and not /\s\.\.\.$/o and not /\\&.$/o) { + $s->warning("punctuation in format string ", + "without space: `$_'") if $opt_p; + } + if (/^\./o and /Ns [\.();,\[\]\{\}:]/o) { + $s->warning("possible Ns abuse: `$_'") if $opt_p; + } + if (/(\w+)\(\)/o) { + $s->warning("use .Fn or .Xr for functions: `$1()'") if $opt_p; + } + + my $destruct = $_; + if ($s->{mandoc_p}) { + $destruct =~ s/\\\&([\w\.])/$1/o; + if ($destruct =~ /^\.Xr\s+([\w\:\.\-\+\/]+)\s+($esections_re)(.*)/o) { + $s->debug("Xref to $1($2) found: `$_'"); + $s->verify_xref($1, $2, "", ""); + if ($3 =~ /^\S/o) { + $s->warning("No space after section number in Xref: `$_'") if $opt_x; + } + } elsif ($destruct =~ /^\.Xr/o) { + $s->warning("Weird Xref found: `$_'") if $opt_x; + } + } else { + $destruct =~ s/\\f.//go; + if ($destruct !~ /^\.\\\"/o) { + while ($destruct =~ s/([-\w.]+)\s*\(($esections_re)\)//o) { + $s->debug("possible Xref to $1($2) found: `$_'"); + $s->verify_xref($1, $2, "possible ", ": `$_'"); + # so that we have a chance to find more than one + # per line + $destruct =~ s/(\w+)\s*\(($sections_re)\)//o; + } + } + } + + if (/^\.Dd/o and not /^\.Dd\s+$valid_date_re/o) { + $s->warning("Invalid date found: `$_'") if $opt_d; + } + + if (/^\.Bd\b.*-literal\b/o) { + $s->{inliteral} = 1; + } + if ($s->{inliteral} == 1) { + if (/^\.Ed\b/o) { + $s->{inliteral} = 0; + } + } elsif (/^$/o) { + $s->warning("Paragraph problem: empty line -- ", + "use .Pp for paragraphs") if $opt_P; + } + if ($s->{lastline} =~ /^\.Pp/o and /^(\.Ss|\.Pp)/o) { + $s->warning("Paragraph problem: $1 after .Pp") if $opt_P; + } + if (/^\.Pp/o and $s->{lastline} =~ /^(\.S[Ssh])/o) { + $s->warning("Paragraph problem: .Pp after $1") if $opt_P; + } + + # Check whether the list of possible errors for a function is + # sorted alphabetically. + # + # Error names should not be sorted across different lists. + # (see bind(2) for an example.) + # + /^\.Bl\s+/o and $s->{last_error_name} = ""; + + if ($s->{current_section_header} eq "ERRORS" and + /^\.It\s+Bq\s+Er\s+(E[\w_]+)$/o) { + my $current_error_name = $1; + + if ($s->{last_error_name} eq $current_error_name) { + $s->warning("Duplicate item for ", + $current_error_name, ".") if $opt_e; + } elsif ($current_error_name lt $s->{last_error_name}) { + $s->warning("$s->{last_error_name} and ", + "$current_error_name are not in ", + "alphabetical order.") if $opt_e; + } + $s->{last_error_name} = $current_error_name; + } + + $s->{lastline} = $_; + return "$_\n"; +} + +sub finish +{ + my ($s) = @_; + + if (NETBSD and not $s->{nxrcsidseen}) { + $s->warning("Missing RCS Id") if $opt_r; + } + if (OPENBSD and not $s->{oxrcsidseen}) { + $s->warning("Missing RCS Id") if $opt_r; + } + + if ($s->{lastline} =~ /^\.Pp/o) { + $s->warning("Paragraph problem: .Pp at EOF") if $opt_P; + } + + if ($s->{insa} > 0 and not $s->{sarest} eq "") { + $s->warning("unneeded characters at end of SEE ALSO: ", + "`$s->{sarest}'") if $opt_a; + } + +# if (not ($fn =~ /$section$/)) { +# $s->warning("section doesn't match (internal value: $section)"); +# } + if ($s->{mandoc_p}) { + foreach my $i (qw(NAME SYNOPSIS DESCRIPTION)) { + if (not ($s->{shseen}{$i})) { + $s->warning("missing $i section") if $opt_S; + } + } + } +} + +package main; + +sub handle_file +{ + my $parser = Parser->new($_[0]); + + while (my $_ = $parser->next_line) { + $parser->process_and_save_line($_); + } + + $parser->finish; + $parser->close; + if ($Parser::opt_F and $parser->{changes}) { + open OUT, ">$_[0].new" or + die "can't open output file `$_[0].new'"; + for my $l (@{$parser->{all}}) { + print OUT $l + } + close OUT; + system("mv -i $_[0].new $_[0]"); + } +} + +Parser->handle_options; +foreach my $file (@ARGV) { + handle_file($file); +} diff --git a/src/regress/usr.bin/mdoclint/mdoclint.1 b/src/regress/usr.bin/mdoclint/mdoclint.1 new file mode 100644 index 000000000..7bf94dea3 --- /dev/null +++ b/src/regress/usr.bin/mdoclint/mdoclint.1 @@ -0,0 +1,170 @@ +.\" $OpenBSD: mdoclint.1,v 1.7 2009/04/13 19:06:38 jmc Exp $ +.\" $NetBSD: mdoclint.1,v 1.3 2003/05/09 09:22:05 wiz Exp $ +.\" +.\" Copyright (c) 2001-2008 Thomas Klausner +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR, THOMAS KLAUSNER, +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd $Mdocdate: April 13 2009 $ +.Os +.Dt MDOCLINT 1 +.Sh NAME +.Nm mdoclint +.Nd man page verifier +.Sh SYNOPSIS +.Nm +.Op Fl aDdeFfHhmnoPprSsvwXx +.Ar +.Sh DESCRIPTION +.Nm +is a man page verifier. +It tries to automatically find as many common +errors that occur when writing man pages as possible. +If no flags are given, +.Fl aDdfHmnoPprSsXx +is assumed (that is, everything except +.Fl eFhvw ) . +.Pp +The options are as follows: +.Bl -tag -width Ds +.It Fl a +Warn about some possible problems in the +.Sx SEE ALSO +section, like incorrect order (correct order: first by section +numbers, then by name), or incorrect or superfluous punctuation +between or after the cross-references. +.It Fl D +Warn about bad casing and architectures in the .Dt macro. +.It Fl d +Warn about .Dd strings +that don't start +.Dq .Dd $\&Mdocdate . +.It Fl e +Warn about unsorted errors (for functions). +.It Fl F +Fix whitespace problems (see also +.Fl s ) . +.It Fl f +Warn about possible .Fn abuse; its arguments should be put in +.Sq \&" +separately, not together and separated by commas. +Those will be automatically added by mdoc. +.It Fl H +Show warnings for characters that might generate problems in +HTML output: +.Sq \*(Lt +and +.Sq \*(Gt . +Replace a pair of angle quotes with the .Aq macro. +Otherwise, the replacements are +.Dq \e*(Lt +and +.Dq \e*(Gt . +.It Fl h +Display usage. +.It Fl m +Warn if man page is not in +.Xr mdoc 7 +format. +.It Fl n +Warn when the .Nd macro's argument ends in a dot, that is +.Sq \&. . +.It Fl o +Warn when the .Os macro has an argument (it shouldn't have one at +least in the base system, because on +.Ox +the current version is default). +.It Fl P +Warn about paragraph problems, like empty lines or .Pp macros before +section macros like .Ss and .Sh. +.It Fl p +Warn about possible punctuation problems at the end of macro arguments, +abuse of .Ns to get punctuation directly next to a word, +and sentences not starting on a new line. +.It Fl r +Warn about missing RCS Id. +.It Fl S +Warn about any unknown sections or about a section that comes in the +wrong order (see +.Xr mdoc 7 ) . +.It Fl s +Warn about superfluous whitespace at the end of line. +.It Fl v +Verbose output. +.It Fl w +Display the section name, +in addition to the relevant line number, +in warnings. +.It Fl X +Warn about explicit mentions of the words +.Dq FreeBSD , +.Dq NetBSD , +and +.Dq OpenBSD , +which should be replaced by .Fx, .Nx, and .Ox respectively. +Also notices occurrences of +.Dq \&.Bx Free , +.Dq \&.Bx Net , +and +.Dq \&.Bx Open , +for which the same applies. +.It Fl x +Warn about cross-references whose target is missing, cross-references +to itself, or plain bogus cross-references. +.Pp +For +.Dq .Xr name X , +the following files are checked: +.Pa /usr/share/man/catX/name.0 , +.Pa /usr/share/man/catX/`uname -m`/name.0 , +.Pa ./name.X , +.Pa /usr/X11R6/man/catX/name.0 , +and +.Pa /usr/X11R6/man/manX/name.X . +.El +.Sh SEE ALSO +.Xr mdoc 7 , +.Xr mdoc.samples 7 +.Sh HISTORY +The +.Nm +utility first appeared in +.Ox 4.5 . +.Sh AUTHORS +.An Thomas Klausner +.Aq wiz@netbsd.org +.An Marc Espie +.Aq espie@openbsd.org +.Sh BUGS +The +.Fl o +and +.Fl p +flags currently produce too many bogus warnings. +.Pp +The +.Fl x +flag sometimes erroneously warns about xrefs to man pages for +machine-dependent drivers that are not for the architecture +.Nm +is running on. diff --git a/src/regress/usr.bin/patch/CVS/Entries b/src/regress/usr.bin/patch/CVS/Entries new file mode 100644 index 000000000..812146dc2 --- /dev/null +++ b/src/regress/usr.bin/patch/CVS/Entries @@ -0,0 +1,40 @@ +/Makefile/1.7/Wed Aug 20 18:29:37 2008// +/t1.diff/1.1/Tue Jul 22 19:31:51 2003// +/t1.in/1.1/Tue Jul 22 19:31:51 2003// +/t1.out/1.1/Tue Jul 22 19:31:51 2003// +/t10.diff/1.1/Sun Jun 20 19:25:23 2004// +/t10.in/1.1/Sun Jun 20 19:25:23 2004// +/t10.out/1.1/Sun Jun 20 19:25:23 2004// +/t11.diff/1.1/Sun Jun 20 19:25:23 2004// +/t11.in/1.1/Sun Jun 20 19:25:23 2004// +/t11.out/1.1/Sun Jun 20 19:25:23 2004// +/t12.diff/1.1/Sun Jun 20 19:25:23 2004// +/t12.in/1.1/Sun Jun 20 19:25:23 2004// +/t12.out/1.1/Sun Jun 20 19:25:23 2004// +/t13.diff/1.1/Sun Jun 20 19:25:23 2004// +/t13.in/1.1/Sun Jun 20 19:25:23 2004// +/t13.out/1.1/Sun Jun 20 19:25:23 2004// +/t2.diff/1.1/Tue Jul 22 19:31:51 2003// +/t2.in/1.1/Tue Jul 22 19:31:51 2003// +/t2.out/1.1/Tue Jul 22 19:31:51 2003// +/t3.diff/1.1/Thu Aug 7 21:01:29 2003// +/t3.in/1.1/Thu Aug 7 21:01:29 2003// +/t3.out/1.2/Mon Jun 14 18:40:23 2004// +/t4.diff/1.1/Thu Aug 7 21:01:29 2003// +/t4.in/1.1/Thu Aug 7 21:01:29 2003// +/t4.out/1.1/Thu Aug 7 21:01:29 2003// +/t5.diff/1.1/Sun Aug 10 18:30:33 2003// +/t5.out/1.1/Sun Aug 10 18:30:33 2003// +/t6.diff/1.1/Sun Jun 20 19:25:23 2004// +/t6.in/1.1/Sun Jun 20 19:25:23 2004// +/t6.out/1.1/Sun Jun 20 19:25:23 2004// +/t7.diff/1.1/Sun Jun 20 19:25:23 2004// +/t7.in/1.1/Sun Jun 20 19:25:23 2004// +/t7.out/1.1/Sun Jun 20 19:25:23 2004// +/t8.diff/1.1/Sun Jun 20 19:25:23 2004// +/t8.in/1.1/Sun Jun 20 19:25:23 2004// +/t8.out/1.1/Sun Jun 20 19:25:23 2004// +/t9.diff/1.1/Sun Jun 20 19:25:23 2004// +/t9.in/1.1/Sun Jun 20 19:25:23 2004// +/t9.out/1.1/Sun Jun 20 19:25:23 2004// +D diff --git a/src/regress/usr.bin/patch/CVS/Repository b/src/regress/usr.bin/patch/CVS/Repository new file mode 100644 index 000000000..3ad72f279 --- /dev/null +++ b/src/regress/usr.bin/patch/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/patch diff --git a/src/regress/usr.bin/patch/CVS/Root b/src/regress/usr.bin/patch/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/patch/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/patch/Makefile b/src/regress/usr.bin/patch/Makefile new file mode 100644 index 000000000..3fc6a9c5e --- /dev/null +++ b/src/regress/usr.bin/patch/Makefile @@ -0,0 +1,67 @@ +# $OpenBSD: Makefile,v 1.7 2008/08/20 18:29:37 otto Exp $ + +PATCH=patch +PATCHOPTIONS=-sN + +REGRESS_TARGETS=t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 + +# .in: input file +# .diff: patch +# .out: desired result after patching + +# t1: diff contains invalid line number 0. +# t2: diff contains invalid line numbers beyond end of input file. +# t3: a case where it patch should detect a previously applied patch. +# Diff transform an empty file into a single line one. Currently fails. +# t4: a case where patch has to detect a previously applied patch. +# Diff transform a file with a single line with an eol into a single +# line without eol. +# t5: both files in diff do not exist. t5.in should be missing. +# t6-t12: various cases of no eol at end of file handling. +# t13: a case where patch has to detect a previously applied patch. +# Diff transform a file ending with no eol into a file ending with eol. + +all: clean ${REGRESS_TARGET} + +.SUFFIXES: .in + +.in: + @echo ${*} + @cp ${.CURDIR}/${*}.in ${*}.copy + @${PATCH} ${PATCHOPTIONS} ${*}.copy ${.CURDIR}/${*}.diff + @cmp -s ${*}.copy ${.CURDIR}/${*}.out || \ + (echo "XXX ${*} failed" && false) + +t3: + @echo ${*} + @cp ${.CURDIR}/${*}.in ${*}.copy + @(! ${PATCH} ${PATCHOPTIONS} ${*}.copy ${.CURDIR}/${*}.diff) + @cmp -s ${*}.copy ${.CURDIR}/${*}.out || \ + (echo "XXX ${*} failed" && false) +t4: + @echo ${*} + @cp ${.CURDIR}/${*}.in ${*}.copy + @(! ${PATCH} ${PATCHOPTIONS} ${*}.copy ${.CURDIR}/${*}.diff) + @cmp -s ${*}.copy ${.CURDIR}/${*}.out || \ + (echo "XXX ${*} failed" && false) + +t5: + @echo ${*} + @rm -f ${*} + @${PATCH} ${PATCHOPTIONS} < ${.CURDIR}/${*}.diff + @cmp -s ${*} ${.CURDIR}/${*}.out || (echo "XXX ${*} failed" && false) + +t13: + @echo ${*} + @cp ${.CURDIR}/${*}.in ${*}.copy + @(! ${PATCH} ${PATCHOPTIONS} ${*}.copy ${.CURDIR}/${*}.diff) + @cmp -s ${*}.copy ${.CURDIR}/${*}.out || \ + (echo "XXX ${*} failed" && false) + +# Clean all files generated +clean: + rm -f *.copy *.orig *.rej t5 + +.PHONY: t5 + +.include diff --git a/src/regress/usr.bin/patch/obj b/src/regress/usr.bin/patch/obj new file mode 120000 index 000000000..a755c789f --- /dev/null +++ b/src/regress/usr.bin/patch/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/patch \ No newline at end of file diff --git a/src/regress/usr.bin/patch/t1.diff b/src/regress/usr.bin/patch/t1.diff new file mode 100644 index 000000000..c1fadf0c5 --- /dev/null +++ b/src/regress/usr.bin/patch/t1.diff @@ -0,0 +1,4 @@ +--- empty Sun Jul 13 22:37:41 2003 ++++ full Sun Jul 13 22:37:49 2003 +@@ -1,0 +1,1 @@ ++a line of text diff --git a/src/regress/usr.bin/patch/t1.in b/src/regress/usr.bin/patch/t1.in new file mode 100644 index 000000000..e69de29bb diff --git a/src/regress/usr.bin/patch/t1.out b/src/regress/usr.bin/patch/t1.out new file mode 100644 index 000000000..5a9296e18 --- /dev/null +++ b/src/regress/usr.bin/patch/t1.out @@ -0,0 +1 @@ +a line of text diff --git a/src/regress/usr.bin/patch/t10.diff b/src/regress/usr.bin/patch/t10.diff new file mode 100644 index 000000000..bd2dbcc8d --- /dev/null +++ b/src/regress/usr.bin/patch/t10.diff @@ -0,0 +1,7 @@ +--- t10.in Sat Jun 19 13:31:32 2004 ++++ t10.out Sat Jun 19 13:31:34 2004 +@@ -1,3 +1,2 @@ + +- + a +\ No newline at end of file diff --git a/src/regress/usr.bin/patch/t10.in b/src/regress/usr.bin/patch/t10.in new file mode 100644 index 000000000..82e3debc5 --- /dev/null +++ b/src/regress/usr.bin/patch/t10.in @@ -0,0 +1,3 @@ + + +a \ No newline at end of file diff --git a/src/regress/usr.bin/patch/t10.out b/src/regress/usr.bin/patch/t10.out new file mode 100644 index 000000000..9fe188c32 --- /dev/null +++ b/src/regress/usr.bin/patch/t10.out @@ -0,0 +1,2 @@ + +a \ No newline at end of file diff --git a/src/regress/usr.bin/patch/t11.diff b/src/regress/usr.bin/patch/t11.diff new file mode 100644 index 000000000..6803451c9 --- /dev/null +++ b/src/regress/usr.bin/patch/t11.diff @@ -0,0 +1,6 @@ +--- t11.in Sat Jun 19 13:34:21 2004 ++++ t11.out Sat Jun 19 13:34:29 2004 +@@ -1,3 +1,2 @@ + +- + a diff --git a/src/regress/usr.bin/patch/t11.in b/src/regress/usr.bin/patch/t11.in new file mode 100644 index 000000000..d3f21bac7 --- /dev/null +++ b/src/regress/usr.bin/patch/t11.in @@ -0,0 +1,3 @@ + + +a diff --git a/src/regress/usr.bin/patch/t11.out b/src/regress/usr.bin/patch/t11.out new file mode 100644 index 000000000..6b673e884 --- /dev/null +++ b/src/regress/usr.bin/patch/t11.out @@ -0,0 +1,2 @@ + +a diff --git a/src/regress/usr.bin/patch/t12.diff b/src/regress/usr.bin/patch/t12.diff new file mode 100644 index 000000000..966f4adc6 --- /dev/null +++ b/src/regress/usr.bin/patch/t12.diff @@ -0,0 +1,6 @@ +--- t12.in Sat Jun 19 19:48:40 2004 ++++ t12.out Sat Jun 19 13:54:54 2004 +@@ -1,2 +1 @@ +-A line + 012345678 +\ No newline at end of file diff --git a/src/regress/usr.bin/patch/t12.in b/src/regress/usr.bin/patch/t12.in new file mode 100644 index 000000000..3c0d5acdb --- /dev/null +++ b/src/regress/usr.bin/patch/t12.in @@ -0,0 +1,2 @@ +A line +012345678 \ No newline at end of file diff --git a/src/regress/usr.bin/patch/t12.out b/src/regress/usr.bin/patch/t12.out new file mode 100644 index 000000000..3a332e6bb --- /dev/null +++ b/src/regress/usr.bin/patch/t12.out @@ -0,0 +1 @@ +012345678 \ No newline at end of file diff --git a/src/regress/usr.bin/patch/t13.diff b/src/regress/usr.bin/patch/t13.diff new file mode 100644 index 000000000..183f011de --- /dev/null +++ b/src/regress/usr.bin/patch/t13.diff @@ -0,0 +1,9 @@ +--- t13.in Sat Jun 19 19:53:25 2004 ++++ t13.out Sat Jun 19 19:53:40 2004 +@@ -1,4 +1,4 @@ + A line of text 1 + A line of text 2 + A line of text 3 +-A line of text 4 +\ No newline at end of file ++A line of text 4 diff --git a/src/regress/usr.bin/patch/t13.in b/src/regress/usr.bin/patch/t13.in new file mode 100644 index 000000000..a354dc958 --- /dev/null +++ b/src/regress/usr.bin/patch/t13.in @@ -0,0 +1,4 @@ +A line of text 1 +A line of text 2 +A line of text 3 +A line of text 4 diff --git a/src/regress/usr.bin/patch/t13.out b/src/regress/usr.bin/patch/t13.out new file mode 100644 index 000000000..a354dc958 --- /dev/null +++ b/src/regress/usr.bin/patch/t13.out @@ -0,0 +1,4 @@ +A line of text 1 +A line of text 2 +A line of text 3 +A line of text 4 diff --git a/src/regress/usr.bin/patch/t2.diff b/src/regress/usr.bin/patch/t2.diff new file mode 100644 index 000000000..7b77e4e12 --- /dev/null +++ b/src/regress/usr.bin/patch/t2.diff @@ -0,0 +1,12 @@ +$OpenBSD: t2.diff,v 1.1 2003/07/22 19:31:51 otto Exp $ +--- Makefile.in.orig Tue Jan 16 16:08:48 2001 ++++ Makefile.in Tue Jan 16 16:10:06 2001 +@@ -521,7 +521,7 @@ installdirs mostlyclean-generic distclea + maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + install-exec-am: +- chmod u+s $(sbindir)/mtr ++ chmod u+s $(DESTDIR)$(sbindir)/mtr + distclean-local: + cp Makefile.dist Makefile + rm -f *.orig diff --git a/src/regress/usr.bin/patch/t2.in b/src/regress/usr.bin/patch/t2.in new file mode 100644 index 000000000..91e66a486 --- /dev/null +++ b/src/regress/usr.bin/patch/t2.in @@ -0,0 +1,494 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +CC = @CC@ +CPP = @CPP@ +CURSES_OBJ = @CURSES_OBJ@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_CONFIG = @GTK_CONFIG@ +GTK_LIBS = @GTK_LIBS@ +GTK_OBJ = @GTK_OBJ@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ + +SUBDIRS = img + +sbin_PROGRAMS = mtr +man_MANS = mtr.8 + +mtr_SOURCES = mtr.c net.c net.h dns.c dns.h raw.c raw.h split.c split.h display.c display.h report.c report.h getopt.c getopt1.c getopt.h select.c select.h mtr-curses.h mtr-gtk.h + +EXTRA_mtr_SOURCES = curses.c gtk.c + +mtr_DEPENDENCIES = $(GTK_OBJ) $(CURSES_OBJ) +mtr_LDFLAGS = $(GTK_OBJ) $(CURSES_OBJ) + +EXTRA_DIST = SECURITY mtr.8 Makefile Makefile.dist + +DISTCLEANFILES = *~ +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(sbin_PROGRAMS) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +mtr_OBJECTS = mtr.o net.o dns.o raw.o split.o display.o report.o \ +getopt.o getopt1.o select.o +mtr_LDADD = $(LDADD) +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +man8dir = $(mandir)/man8 +MANS = $(man_MANS) + +NROFF = nroff +DIST_COMMON = README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \ +Makefile.am Makefile.in NEWS TODO acconfig.h aclocal.m4 config.h.in \ +configure configure.in install-sh missing mkinstalldirs + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(mtr_SOURCES) $(EXTRA_mtr_SOURCES) +OBJECTS = $(mtr_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): configure.in + cd $(srcdir) && $(ACLOCAL) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +config.h: stamp-h + @if test ! -f $@; then \ + rm -f stamp-h; \ + $(MAKE) stamp-h; \ + else :; fi +stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES= CONFIG_HEADERS=config.h \ + $(SHELL) ./config.status + @echo timestamp > stamp-h 2> /dev/null +$(srcdir)/config.h.in: $(srcdir)/stamp-h.in + @if test ! -f $@; then \ + rm -f $(srcdir)/stamp-h.in; \ + $(MAKE) $(srcdir)/stamp-h.in; \ + else :; fi +$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h + cd $(top_srcdir) && $(AUTOHEADER) + @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null + +mostlyclean-hdr: + +clean-hdr: + +distclean-hdr: + -rm -f config.h + +maintainer-clean-hdr: + +mostlyclean-sbinPROGRAMS: + +clean-sbinPROGRAMS: + -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS) + +distclean-sbinPROGRAMS: + +maintainer-clean-sbinPROGRAMS: + +install-sbinPROGRAMS: $(sbin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(sbindir) + @list='$(sbin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + else :; fi; \ + done + +uninstall-sbinPROGRAMS: + @$(NORMAL_UNINSTALL) + list='$(sbin_PROGRAMS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + done + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +mtr: $(mtr_OBJECTS) $(mtr_DEPENDENCIES) + @rm -f mtr + $(LINK) $(mtr_LDFLAGS) $(mtr_OBJECTS) $(mtr_LDADD) $(LIBS) + +install-man8: + $(mkinstalldirs) $(DESTDIR)$(man8dir) + @list='$(man8_MANS)'; \ + l2='$(man_MANS)'; for i in $$l2; do \ + case "$$i" in \ + *.8*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ + else file=$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \ + $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \ + done + +uninstall-man8: + @list='$(man8_MANS)'; \ + l2='$(man_MANS)'; for i in $$l2; do \ + case "$$i" in \ + *.8*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \ + rm -f $(DESTDIR)$(man8dir)/$$inst; \ + done +install-man: $(MANS) + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-man8 +uninstall-man: + @$(NORMAL_UNINSTALL) + $(MAKE) $(AM_MAKEFLAGS) uninstall-man8 + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: all-am +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +all-recursive-am: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +install-exec-am: install-sbinPROGRAMS +install-exec: install-exec-recursive + +install-data-am: install-man +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: uninstall-sbinPROGRAMS uninstall-man +uninstall: uninstall-recursive +all-am: Makefile $(PROGRAMS) $(MANS) config.h +all-redirect: all-recursive-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8 + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-hdr mostlyclean-sbinPROGRAMS \ + mostlyclean-compile mostlyclean-tags \ + mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-hdr clean-sbinPROGRAMS clean-compile clean-tags \ + clean-generic mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-hdr distclean-sbinPROGRAMS distclean-compile \ + distclean-tags distclean-generic clean-am \ + distclean-local + +distclean: distclean-recursive + -rm -f config.status + +maintainer-clean-am: maintainer-clean-hdr maintainer-clean-sbinPROGRAMS \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + -rm -f config.status + +.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ +mostlyclean-sbinPROGRAMS distclean-sbinPROGRAMS clean-sbinPROGRAMS \ +maintainer-clean-sbinPROGRAMS uninstall-sbinPROGRAMS \ +install-sbinPROGRAMS mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile install-man8 uninstall-man8 \ +install-man uninstall-man install-data-recursive \ +uninstall-data-recursive install-exec-recursive \ +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ +all-recursive check-recursive installcheck-recursive info-recursive \ +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs-am \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + +install-exec-am: + chmod u+s $(sbindir)/mtr +distclean-local: + cp Makefile.dist Makefile + rm -f *.orig + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/regress/usr.bin/patch/t2.out b/src/regress/usr.bin/patch/t2.out new file mode 100644 index 000000000..ddef93300 --- /dev/null +++ b/src/regress/usr.bin/patch/t2.out @@ -0,0 +1,494 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +CC = @CC@ +CPP = @CPP@ +CURSES_OBJ = @CURSES_OBJ@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_CONFIG = @GTK_CONFIG@ +GTK_LIBS = @GTK_LIBS@ +GTK_OBJ = @GTK_OBJ@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ + +SUBDIRS = img + +sbin_PROGRAMS = mtr +man_MANS = mtr.8 + +mtr_SOURCES = mtr.c net.c net.h dns.c dns.h raw.c raw.h split.c split.h display.c display.h report.c report.h getopt.c getopt1.c getopt.h select.c select.h mtr-curses.h mtr-gtk.h + +EXTRA_mtr_SOURCES = curses.c gtk.c + +mtr_DEPENDENCIES = $(GTK_OBJ) $(CURSES_OBJ) +mtr_LDFLAGS = $(GTK_OBJ) $(CURSES_OBJ) + +EXTRA_DIST = SECURITY mtr.8 Makefile Makefile.dist + +DISTCLEANFILES = *~ +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(sbin_PROGRAMS) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +mtr_OBJECTS = mtr.o net.o dns.o raw.o split.o display.o report.o \ +getopt.o getopt1.o select.o +mtr_LDADD = $(LDADD) +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +man8dir = $(mandir)/man8 +MANS = $(man_MANS) + +NROFF = nroff +DIST_COMMON = README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \ +Makefile.am Makefile.in NEWS TODO acconfig.h aclocal.m4 config.h.in \ +configure configure.in install-sh missing mkinstalldirs + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(mtr_SOURCES) $(EXTRA_mtr_SOURCES) +OBJECTS = $(mtr_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): configure.in + cd $(srcdir) && $(ACLOCAL) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +config.h: stamp-h + @if test ! -f $@; then \ + rm -f stamp-h; \ + $(MAKE) stamp-h; \ + else :; fi +stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES= CONFIG_HEADERS=config.h \ + $(SHELL) ./config.status + @echo timestamp > stamp-h 2> /dev/null +$(srcdir)/config.h.in: $(srcdir)/stamp-h.in + @if test ! -f $@; then \ + rm -f $(srcdir)/stamp-h.in; \ + $(MAKE) $(srcdir)/stamp-h.in; \ + else :; fi +$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h + cd $(top_srcdir) && $(AUTOHEADER) + @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null + +mostlyclean-hdr: + +clean-hdr: + +distclean-hdr: + -rm -f config.h + +maintainer-clean-hdr: + +mostlyclean-sbinPROGRAMS: + +clean-sbinPROGRAMS: + -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS) + +distclean-sbinPROGRAMS: + +maintainer-clean-sbinPROGRAMS: + +install-sbinPROGRAMS: $(sbin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(sbindir) + @list='$(sbin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + else :; fi; \ + done + +uninstall-sbinPROGRAMS: + @$(NORMAL_UNINSTALL) + list='$(sbin_PROGRAMS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + done + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +mtr: $(mtr_OBJECTS) $(mtr_DEPENDENCIES) + @rm -f mtr + $(LINK) $(mtr_LDFLAGS) $(mtr_OBJECTS) $(mtr_LDADD) $(LIBS) + +install-man8: + $(mkinstalldirs) $(DESTDIR)$(man8dir) + @list='$(man8_MANS)'; \ + l2='$(man_MANS)'; for i in $$l2; do \ + case "$$i" in \ + *.8*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ + else file=$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \ + $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \ + done + +uninstall-man8: + @list='$(man8_MANS)'; \ + l2='$(man_MANS)'; for i in $$l2; do \ + case "$$i" in \ + *.8*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \ + rm -f $(DESTDIR)$(man8dir)/$$inst; \ + done +install-man: $(MANS) + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-man8 +uninstall-man: + @$(NORMAL_UNINSTALL) + $(MAKE) $(AM_MAKEFLAGS) uninstall-man8 + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: all-am +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +all-recursive-am: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +install-exec-am: install-sbinPROGRAMS +install-exec: install-exec-recursive + +install-data-am: install-man +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: uninstall-sbinPROGRAMS uninstall-man +uninstall: uninstall-recursive +all-am: Makefile $(PROGRAMS) $(MANS) config.h +all-redirect: all-recursive-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8 + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-hdr mostlyclean-sbinPROGRAMS \ + mostlyclean-compile mostlyclean-tags \ + mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-hdr clean-sbinPROGRAMS clean-compile clean-tags \ + clean-generic mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-hdr distclean-sbinPROGRAMS distclean-compile \ + distclean-tags distclean-generic clean-am \ + distclean-local + +distclean: distclean-recursive + -rm -f config.status + +maintainer-clean-am: maintainer-clean-hdr maintainer-clean-sbinPROGRAMS \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + -rm -f config.status + +.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ +mostlyclean-sbinPROGRAMS distclean-sbinPROGRAMS clean-sbinPROGRAMS \ +maintainer-clean-sbinPROGRAMS uninstall-sbinPROGRAMS \ +install-sbinPROGRAMS mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile install-man8 uninstall-man8 \ +install-man uninstall-man install-data-recursive \ +uninstall-data-recursive install-exec-recursive \ +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ +all-recursive check-recursive installcheck-recursive info-recursive \ +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs-am \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + +install-exec-am: + chmod u+s $(DESTDIR)$(sbindir)/mtr +distclean-local: + cp Makefile.dist Makefile + rm -f *.orig + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/regress/usr.bin/patch/t3.diff b/src/regress/usr.bin/patch/t3.diff new file mode 100644 index 000000000..b3b005d9c --- /dev/null +++ b/src/regress/usr.bin/patch/t3.diff @@ -0,0 +1,4 @@ +--- t3.in Mon Aug 4 10:04:58 2003 ++++ t3.out Mon Aug 4 10:05:11 2003 +@@ -0,0 +1 @@ ++A line of text diff --git a/src/regress/usr.bin/patch/t3.in b/src/regress/usr.bin/patch/t3.in new file mode 100644 index 000000000..0f24bc045 --- /dev/null +++ b/src/regress/usr.bin/patch/t3.in @@ -0,0 +1 @@ +A line of text diff --git a/src/regress/usr.bin/patch/t3.out b/src/regress/usr.bin/patch/t3.out new file mode 100644 index 000000000..0f24bc045 --- /dev/null +++ b/src/regress/usr.bin/patch/t3.out @@ -0,0 +1 @@ +A line of text diff --git a/src/regress/usr.bin/patch/t4.diff b/src/regress/usr.bin/patch/t4.diff new file mode 100644 index 000000000..83d480eec --- /dev/null +++ b/src/regress/usr.bin/patch/t4.diff @@ -0,0 +1,6 @@ +--- t4.in Thu Aug 7 16:05:20 2003 ++++ t4.out Thu Aug 7 16:05:37 2003 +@@ -1 +1 @@ +-A line of text ++A line of text +\ No newline at end of file diff --git a/src/regress/usr.bin/patch/t4.in b/src/regress/usr.bin/patch/t4.in new file mode 100644 index 000000000..c58537538 --- /dev/null +++ b/src/regress/usr.bin/patch/t4.in @@ -0,0 +1 @@ +A line of text \ No newline at end of file diff --git a/src/regress/usr.bin/patch/t4.out b/src/regress/usr.bin/patch/t4.out new file mode 100644 index 000000000..c58537538 --- /dev/null +++ b/src/regress/usr.bin/patch/t4.out @@ -0,0 +1 @@ +A line of text \ No newline at end of file diff --git a/src/regress/usr.bin/patch/t5.diff b/src/regress/usr.bin/patch/t5.diff new file mode 100644 index 000000000..3aa947fbb --- /dev/null +++ b/src/regress/usr.bin/patch/t5.diff @@ -0,0 +1,5 @@ +--- t5.orig Mon Mar 25 03:27:03 2002 ++++ t5 Mon Mar 25 03:28:04 2002 +@@ -0,0 +1,2 @@ ++aa ++bb diff --git a/src/regress/usr.bin/patch/t5.out b/src/regress/usr.bin/patch/t5.out new file mode 100644 index 000000000..6ad467388 --- /dev/null +++ b/src/regress/usr.bin/patch/t5.out @@ -0,0 +1,2 @@ +aa +bb diff --git a/src/regress/usr.bin/patch/t6.diff b/src/regress/usr.bin/patch/t6.diff new file mode 100644 index 000000000..e8a3fa8d9 --- /dev/null +++ b/src/regress/usr.bin/patch/t6.diff @@ -0,0 +1,6 @@ +--- t6.in Sat Jun 19 14:22:27 2004 ++++ t6.out Sat Jun 19 12:57:07 2004 +@@ -1 +1 @@ +-A line of text +\ No newline at end of file ++A line of text diff --git a/src/regress/usr.bin/patch/t6.in b/src/regress/usr.bin/patch/t6.in new file mode 100644 index 000000000..c58537538 --- /dev/null +++ b/src/regress/usr.bin/patch/t6.in @@ -0,0 +1 @@ +A line of text \ No newline at end of file diff --git a/src/regress/usr.bin/patch/t6.out b/src/regress/usr.bin/patch/t6.out new file mode 100644 index 000000000..0f24bc045 --- /dev/null +++ b/src/regress/usr.bin/patch/t6.out @@ -0,0 +1 @@ +A line of text diff --git a/src/regress/usr.bin/patch/t7.diff b/src/regress/usr.bin/patch/t7.diff new file mode 100644 index 000000000..c4cae106c --- /dev/null +++ b/src/regress/usr.bin/patch/t7.diff @@ -0,0 +1,7 @@ +--- t7.in Sat Jun 19 12:59:35 2004 ++++ t7.out Sat Jun 19 12:59:47 2004 +@@ -1 +1 @@ +-A line of text with no eol +\ No newline at end of file ++A line of text with no eol and a change +\ No newline at end of file diff --git a/src/regress/usr.bin/patch/t7.in b/src/regress/usr.bin/patch/t7.in new file mode 100644 index 000000000..77203f01f --- /dev/null +++ b/src/regress/usr.bin/patch/t7.in @@ -0,0 +1 @@ +A line of text with no eol \ No newline at end of file diff --git a/src/regress/usr.bin/patch/t7.out b/src/regress/usr.bin/patch/t7.out new file mode 100644 index 000000000..b42df8e34 --- /dev/null +++ b/src/regress/usr.bin/patch/t7.out @@ -0,0 +1 @@ +A line of text with no eol and a change \ No newline at end of file diff --git a/src/regress/usr.bin/patch/t8.diff b/src/regress/usr.bin/patch/t8.diff new file mode 100644 index 000000000..2be751354 --- /dev/null +++ b/src/regress/usr.bin/patch/t8.diff @@ -0,0 +1,9 @@ +--- t8.in Sat Jun 19 13:01:41 2004 ++++ t8.out Sat Jun 19 13:01:46 2004 +@@ -1,4 +1,4 @@ +-Line 1 ++Line 1 with a change + Line 2 + Line 3 + Line 4 (no eol) +\ No newline at end of file diff --git a/src/regress/usr.bin/patch/t8.in b/src/regress/usr.bin/patch/t8.in new file mode 100644 index 000000000..1dd730e3c --- /dev/null +++ b/src/regress/usr.bin/patch/t8.in @@ -0,0 +1,4 @@ +Line 1 +Line 2 +Line 3 +Line 4 (no eol) \ No newline at end of file diff --git a/src/regress/usr.bin/patch/t8.out b/src/regress/usr.bin/patch/t8.out new file mode 100644 index 000000000..6d8b9c361 --- /dev/null +++ b/src/regress/usr.bin/patch/t8.out @@ -0,0 +1,4 @@ +Line 1 with a change +Line 2 +Line 3 +Line 4 (no eol) \ No newline at end of file diff --git a/src/regress/usr.bin/patch/t9.diff b/src/regress/usr.bin/patch/t9.diff new file mode 100644 index 000000000..acd022daa --- /dev/null +++ b/src/regress/usr.bin/patch/t9.diff @@ -0,0 +1,8 @@ +--- t9.in Sat Jun 19 13:03:57 2004 ++++ t9.out Sat Jun 19 13:05:43 2004 +@@ -1,2 +1,3 @@ + A line of text +- ++Another ++x +\ No newline at end of file diff --git a/src/regress/usr.bin/patch/t9.in b/src/regress/usr.bin/patch/t9.in new file mode 100644 index 000000000..f20b89805 --- /dev/null +++ b/src/regress/usr.bin/patch/t9.in @@ -0,0 +1,2 @@ +A line of text + diff --git a/src/regress/usr.bin/patch/t9.out b/src/regress/usr.bin/patch/t9.out new file mode 100644 index 000000000..5bab938eb --- /dev/null +++ b/src/regress/usr.bin/patch/t9.out @@ -0,0 +1,3 @@ +A line of text +Another +x \ No newline at end of file diff --git a/src/regress/usr.bin/pcc/CVS/Entries b/src/regress/usr.bin/pcc/CVS/Entries new file mode 100644 index 000000000..6bc5b8aeb --- /dev/null +++ b/src/regress/usr.bin/pcc/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Sun Oct 7 18:12:43 2007// +D/ccom//// +D/cpp//// diff --git a/src/regress/usr.bin/pcc/CVS/Repository b/src/regress/usr.bin/pcc/CVS/Repository new file mode 100644 index 000000000..efad5fd9d --- /dev/null +++ b/src/regress/usr.bin/pcc/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/pcc diff --git a/src/regress/usr.bin/pcc/CVS/Root b/src/regress/usr.bin/pcc/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/pcc/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/pcc/Makefile b/src/regress/usr.bin/pcc/Makefile new file mode 100644 index 000000000..299d9b5e6 --- /dev/null +++ b/src/regress/usr.bin/pcc/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2007/10/07 18:12:43 otto Exp $ + +SUBDIR= cpp ccom + +.include diff --git a/src/regress/usr.bin/pcc/ccom/CVS/Entries b/src/regress/usr.bin/pcc/ccom/CVS/Entries new file mode 100644 index 000000000..6461a1da2 --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/CVS/Entries @@ -0,0 +1,17 @@ +/Makefile/1.5/Thu Jan 24 18:16:47 2008// +/arith001.c/1.2/Tue Oct 16 12:55:36 2007// +/const001.c/1.1/Sun Oct 7 18:12:43 2007// +/darray001.c/1.1/Sun Oct 7 18:12:43 2007// +/enum001.c/1.1/Sun Oct 7 18:12:43 2007// +/init001.c/1.1/Sun Oct 7 18:12:43 2007// +/init002.c/1.1/Sun Oct 7 18:12:43 2007// +/init003.c/1.1/Sun Oct 7 18:12:43 2007// +/init004.c/1.1/Sun Oct 7 18:12:43 2007// +/mustfail0000.c/1.1/Thu Jan 24 18:16:47 2008// +/mustpass0000.c/1.1/Thu Jan 24 18:16:47 2008// +/mustpass0001.c/1.1/Thu Jan 24 18:16:47 2008// +/switch001.c/1.1/Tue Nov 6 14:59:45 2007// +/switch002.c/1.1/Tue Nov 6 14:59:45 2007// +/switch003.c/1.1/Tue Nov 6 14:59:45 2007// +/tmpalloc001.c/1.1/Sun Oct 7 18:12:43 2007// +D diff --git a/src/regress/usr.bin/pcc/ccom/CVS/Repository b/src/regress/usr.bin/pcc/ccom/CVS/Repository new file mode 100644 index 000000000..82ab1d1ca --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/pcc/ccom diff --git a/src/regress/usr.bin/pcc/ccom/CVS/Root b/src/regress/usr.bin/pcc/ccom/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/pcc/ccom/Makefile b/src/regress/usr.bin/pcc/ccom/Makefile new file mode 100644 index 000000000..0ebf3d914 --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/Makefile @@ -0,0 +1,31 @@ +# $OpenBSD: Makefile,v 1.5 2008/01/24 18:16:47 stefan Exp $ + +CC=/usr/local/bin/cc + +REGRESS_TARGETS=\ + arith001 \ + const001 \ + darray001 \ + enum001 \ + init001 init004 \ + mustpass0000 mustpass0001 \ + switch003 \ + tmpalloc001 \ + shouldfail + +.c: + @echo ${*} + ${CC} ${.CURDIR}/${*}.c -o ${*}.out && ${.CURDIR}/${*}.out + +shouldfail: + @echo ${*} + if ${CC} ${.CURDIR}/init002.c; then false; else true; fi + if ${CC} ${.CURDIR}/init003.c; then false; else true; fi + if ${CC} ${.CURDIR}/switch001.c; then false; else true; fi + if ${CC} ${.CURDIR}/switch002.c; then false; else true; fi + if ${CC} ${.CURDIR}/mustfail0000.c; then false; else true; fi + +clean: + rm -f *.out + +.include diff --git a/src/regress/usr.bin/pcc/ccom/arith001.c b/src/regress/usr.bin/pcc/ccom/arith001.c new file mode 100644 index 000000000..2310882ad --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/arith001.c @@ -0,0 +1,14 @@ +main() +{ + long long foo = 10; + unsigned int d = 0xffffffffUL; + + if (foo + d != 0x100000009LL) + return 1; + + foo += d; + if (foo != 0x100000009LL) + return 1; + return 0; +} + diff --git a/src/regress/usr.bin/pcc/ccom/const001.c b/src/regress/usr.bin/pcc/ccom/const001.c new file mode 100644 index 000000000..5bb68f6e1 --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/const001.c @@ -0,0 +1,23 @@ +main() +{ + char c = 0x7f; + short s = 0x7fff; + int i = 0x7fffffff; + long long ll = 0x7fffffffffffffffLL; + + if (c > i) + exit(1); + if (s > i) + exit(1); + if (i > ll) + exit(1); + + if (c > 0x7fff) + exit(1); + if (s > 0x7fffffff) + exit(1); + if (i > 0x7fffffffffffffffLL) + exit(1); + exit(0); +} + diff --git a/src/regress/usr.bin/pcc/ccom/darray001.c b/src/regress/usr.bin/pcc/ccom/darray001.c new file mode 100644 index 000000000..973371b74 --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/darray001.c @@ -0,0 +1,9 @@ +/* should not issue: darray001.c, line 6: compiler error: bad conversion */ +/* From TAKAHASHI Tamotsu */ +int main(void) { + int n=1; + int a[1][n]; + a[0][0]=1; /* this line */ + return 0; +} + diff --git a/src/regress/usr.bin/pcc/ccom/enum001.c b/src/regress/usr.bin/pcc/ccom/enum001.c new file mode 100644 index 000000000..debeb7a77 --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/enum001.c @@ -0,0 +1,26 @@ +/* code should produce exactly one warning */ + +enum foo { bar }; +enum footoo { bar1 }; + +enum foo f(void) { return bar; } +double g(void) { return 0.0; } + +struct baz { + enum foo (*ff)(void); +}; + +struct baz a[] = { {f}, + {g} }; + + +static int h(enum foo *); +static int h(enum foo *arg) +{ + return 0; +} + +int main() +{ + return 0; +} diff --git a/src/regress/usr.bin/pcc/ccom/init001.c b/src/regress/usr.bin/pcc/ccom/init001.c new file mode 100644 index 000000000..70bb3826f --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/init001.c @@ -0,0 +1,16 @@ +/* Based on OpenBSD PR 5586 from TAKAHASHI Tamotsu */ + +struct s { + int f; + int g[1][1]; +}; + +struct s v = { 0x99, {{0x100}} }; + +int +main() +{ + if (v.f != 0x99) + errx(1, "wrong"); + return 0; +} diff --git a/src/regress/usr.bin/pcc/ccom/init002.c b/src/regress/usr.bin/pcc/ccom/init002.c new file mode 100644 index 000000000..79d94a220 --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/init002.c @@ -0,0 +1,6 @@ +/* should not compile, but should not crash pcc either */ +struct a { + struct x { + int b; + } c[2]; +} p[2] = { { { 1 }, { 2 } } }; diff --git a/src/regress/usr.bin/pcc/ccom/init003.c b/src/regress/usr.bin/pcc/ccom/init003.c new file mode 100644 index 000000000..d477b96a0 --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/init003.c @@ -0,0 +1,4 @@ +/* extra braces, should not cause internal compiler error */ +struct a { + int i; +} *p = { { 0 } }; diff --git a/src/regress/usr.bin/pcc/ccom/init004.c b/src/regress/usr.bin/pcc/ccom/init004.c new file mode 100644 index 000000000..9dba1c647 --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/init004.c @@ -0,0 +1,17 @@ + +enum foo {aap}; + +enum foo eval_table(void) { return aap; } + +static const struct ops { + enum foo (*afrunc)(void); +} eval_ops[] = { + { eval_table }, +}; + +main() +{ + return 0; +} + + diff --git a/src/regress/usr.bin/pcc/ccom/mustfail0000.c b/src/regress/usr.bin/pcc/ccom/mustfail0000.c new file mode 100644 index 000000000..b9f223478 --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/mustfail0000.c @@ -0,0 +1,6 @@ +int a(typedef int a); +int b(extern int b); +int c(auto int c); +int d(static int d); + +int main(void) { return 1; } diff --git a/src/regress/usr.bin/pcc/ccom/mustpass0000.c b/src/regress/usr.bin/pcc/ccom/mustpass0000.c new file mode 100644 index 000000000..e7ff1688d --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/mustpass0000.c @@ -0,0 +1,10 @@ +typedef int a; +typedef int b; + +int +main(void) +{ + enum a { a = 1, b = a + 2, c = a + b + 3 }; + + return 0; +} diff --git a/src/regress/usr.bin/pcc/ccom/mustpass0001.c b/src/regress/usr.bin/pcc/ccom/mustpass0001.c new file mode 100644 index 000000000..01383ca23 --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/mustpass0001.c @@ -0,0 +1,9 @@ +typedef int a; + +int +main(void) +{ + struct x { int a; } a; + + return 0; +} diff --git a/src/regress/usr.bin/pcc/ccom/switch001.c b/src/regress/usr.bin/pcc/ccom/switch001.c new file mode 100644 index 000000000..dfa75eaa1 --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/switch001.c @@ -0,0 +1,11 @@ +/* Should not compile. */ +int +main(int argc, char **argv) +{ + double d = 0.0; + + switch (d) { + } + + return 0; +} diff --git a/src/regress/usr.bin/pcc/ccom/switch002.c b/src/regress/usr.bin/pcc/ccom/switch002.c new file mode 100644 index 000000000..b0c9037f0 --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/switch002.c @@ -0,0 +1,11 @@ +/* Should not compile. */ +int +main(int argc, char **argv) +{ + int *p = 0; + + switch (p) { + } + + return 0; +} diff --git a/src/regress/usr.bin/pcc/ccom/switch003.c b/src/regress/usr.bin/pcc/ccom/switch003.c new file mode 100644 index 000000000..c6bcf90cf --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/switch003.c @@ -0,0 +1,16 @@ +/* + * Returns 1 if sizeof(unsigned long) < sizeof(unsigned long long), but + * should return 0. + */ +int +main(int argc, char **argv) +{ + unsigned long long i = (unsigned long)~0 + (unsigned long long)2; + + switch (i) { + case 1: + return 1; + } + + return 0; +} diff --git a/src/regress/usr.bin/pcc/ccom/tmpalloc001.c b/src/regress/usr.bin/pcc/ccom/tmpalloc001.c new file mode 100644 index 000000000..87679108b --- /dev/null +++ b/src/regress/usr.bin/pcc/ccom/tmpalloc001.c @@ -0,0 +1,19 @@ +/* From Ted Unangst */ +int a() { return 1; } + +int f() +{ + int b = 0; + a() + ++b; + return 0; +} + +int main() +{ + int b = 0; + a() + ++b; + if (b == 1) + exit(0); + else + exit(1); +} diff --git a/src/regress/usr.bin/pcc/cpp/CVS/Entries b/src/regress/usr.bin/pcc/cpp/CVS/Entries new file mode 100644 index 000000000..42076efaa --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/CVS/Entries @@ -0,0 +1,22 @@ +/Makefile/1.1/Sun Oct 7 18:12:43 2007// +/res1/1.1/Sun Oct 7 18:12:43 2007// +/res2/1.1/Sun Oct 7 18:12:43 2007// +/res3/1.1/Sun Oct 7 18:12:43 2007// +/res4/1.1/Sun Oct 7 18:12:43 2007// +/res5/1.1/Sun Oct 7 18:12:43 2007// +/res6/1.1/Sun Oct 7 18:12:43 2007// +/res7/1.1/Sun Oct 7 18:12:43 2007// +/res8/1.1/Sun Oct 7 18:12:43 2007// +/res9/1.1/Sun Oct 7 18:12:43 2007// +/skip001.c/1.1/Sun Oct 7 18:12:43 2007// +/skip001.out/1.1/Sun Oct 7 18:12:43 2007// +/test1/1.1/Sun Oct 7 18:12:43 2007// +/test2/1.1/Sun Oct 7 18:12:43 2007// +/test3/1.1/Sun Oct 7 18:12:43 2007// +/test4/1.1/Sun Oct 7 18:12:43 2007// +/test5/1.1/Sun Oct 7 18:12:43 2007// +/test6/1.1/Sun Oct 7 18:12:43 2007// +/test7/1.1/Sun Oct 7 18:12:43 2007// +/test8/1.1/Sun Oct 7 18:12:43 2007// +/test9/1.1/Sun Oct 7 18:12:43 2007// +D/subdir//// diff --git a/src/regress/usr.bin/pcc/cpp/CVS/Repository b/src/regress/usr.bin/pcc/cpp/CVS/Repository new file mode 100644 index 000000000..879dd845a --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/pcc/cpp diff --git a/src/regress/usr.bin/pcc/cpp/CVS/Root b/src/regress/usr.bin/pcc/cpp/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/pcc/cpp/Makefile b/src/regress/usr.bin/pcc/cpp/Makefile new file mode 100644 index 000000000..36d74871b --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2007/10/07 18:12:43 otto Exp $ + +CC=/usr/local/bin/cc + +regress: + @echo skip001.c + ${CC} -E -I ${.CURDIR}/subdir ${.CURDIR}/skip001.c | cmp - ${.CURDIR}/skip001.out + +.include diff --git a/src/regress/usr.bin/pcc/cpp/res1 b/src/regress/usr.bin/pcc/cpp/res1 new file mode 100644 index 000000000..c0bb48019 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/res1 @@ -0,0 +1,7 @@ +# 1 "" + + + + +char p[] = "x ## y"; + diff --git a/src/regress/usr.bin/pcc/cpp/res2 b/src/regress/usr.bin/pcc/cpp/res2 new file mode 100644 index 000000000..1eb808aac --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/res2 @@ -0,0 +1,26 @@ +# 1 "" + + + + + + + + + + + + + + +f(2 * (y+1)) + f(2 * (f(2 * (z[0])))) % f(2 * (0)) + t (1); +f(2 * (2+(3,4)-0,1)) | f(2 * (~ 5)) & +f(2 * (0,1))^m (0,1); +int i[] = { 1, 23, 4, 5, }; +char c[2][6] = { "hello", "" }; + + + + + + diff --git a/src/regress/usr.bin/pcc/cpp/res3 b/src/regress/usr.bin/pcc/cpp/res3 new file mode 100644 index 000000000..4219319dd --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/res3 @@ -0,0 +1,16 @@ +# 1 "" + + + + + + + + + +printf("x" "1" "= %d, x" "2" "= %s", x1, x2); +fputs( +"strncmp(\"abc\\0d\", \"abc\", '\\4') == 0" ": @\n", s); +\#include "vers2.h" +"hello"; +"hello" ", world" diff --git a/src/regress/usr.bin/pcc/cpp/res4 b/src/regress/usr.bin/pcc/cpp/res4 new file mode 100644 index 000000000..d7046a015 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/res4 @@ -0,0 +1,5 @@ +# 1 "" + + + +(1) diff --git a/src/regress/usr.bin/pcc/cpp/res5 b/src/regress/usr.bin/pcc/cpp/res5 new file mode 100644 index 000000000..291405dcf --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/res5 @@ -0,0 +1,4 @@ +# 1 "" + +int j[] = { 123, 45, 67, 89, + 10, 11, 12, }; diff --git a/src/regress/usr.bin/pcc/cpp/res6 b/src/regress/usr.bin/pcc/cpp/res6 new file mode 100644 index 000000000..0bb0f9a1d --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/res6 @@ -0,0 +1,6 @@ +# 1 "" + + + + +foo diff --git a/src/regress/usr.bin/pcc/cpp/res7 b/src/regress/usr.bin/pcc/cpp/res7 new file mode 100644 index 000000000..18c492bda --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/res7 @@ -0,0 +1,5 @@ +# 1 "" + + + +a YES diff --git a/src/regress/usr.bin/pcc/cpp/res8 b/src/regress/usr.bin/pcc/cpp/res8 new file mode 100644 index 000000000..e7de0945f --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/res8 @@ -0,0 +1,8 @@ +# 1 "" + + + + + +(hej.s_s.s_pos) + diff --git a/src/regress/usr.bin/pcc/cpp/res9 b/src/regress/usr.bin/pcc/cpp/res9 new file mode 100644 index 000000000..aea239fc9 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/res9 @@ -0,0 +1,5 @@ +# 1 "" + + + +ao diff --git a/src/regress/usr.bin/pcc/cpp/skip001.c b/src/regress/usr.bin/pcc/cpp/skip001.c new file mode 100644 index 000000000..2b6b4c440 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/skip001.c @@ -0,0 +1,3 @@ +#include "include.h" /* line which is bound to trash +yytext */ + diff --git a/src/regress/usr.bin/pcc/cpp/skip001.out b/src/regress/usr.bin/pcc/cpp/skip001.out new file mode 100644 index 000000000..0fd118a03 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/skip001.out @@ -0,0 +1,16 @@ +# 1 "/usr/src/regress/usr.bin/pcc/cpp/skip001.c" + + + + + + + + +# 1 "/usr/src/regress/usr.bin/pcc/cpp/skip001.c" + + +# 1 "/usr/src/regress/usr.bin/pcc/cpp/subdir/include.h" +line from include.h +# 3 "/usr/src/regress/usr.bin/pcc/cpp/skip001.c" + diff --git a/src/regress/usr.bin/pcc/cpp/subdir/CVS/Entries b/src/regress/usr.bin/pcc/cpp/subdir/CVS/Entries new file mode 100644 index 000000000..5385c1df9 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/subdir/CVS/Entries @@ -0,0 +1,2 @@ +/include.h/1.1/Sun Oct 7 18:12:43 2007// +D diff --git a/src/regress/usr.bin/pcc/cpp/subdir/CVS/Repository b/src/regress/usr.bin/pcc/cpp/subdir/CVS/Repository new file mode 100644 index 000000000..a8f79f805 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/subdir/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/pcc/cpp/subdir diff --git a/src/regress/usr.bin/pcc/cpp/subdir/CVS/Root b/src/regress/usr.bin/pcc/cpp/subdir/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/subdir/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/pcc/cpp/subdir/include.h b/src/regress/usr.bin/pcc/cpp/subdir/include.h new file mode 100644 index 000000000..da14e47f9 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/subdir/include.h @@ -0,0 +1 @@ +line from include.h diff --git a/src/regress/usr.bin/pcc/cpp/test1 b/src/regress/usr.bin/pcc/cpp/test1 new file mode 100644 index 000000000..79a3c5dc5 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/test1 @@ -0,0 +1,6 @@ +#define hash_hash # ## # +#define mkstr(a) # a +#define in_between(a) mkstr(a) +#define join(c, d) in_between(c hash_hash d) +char p[] = join(x, y); // equivalent to + // char p[] = "x ## y"; diff --git a/src/regress/usr.bin/pcc/cpp/test2 b/src/regress/usr.bin/pcc/cpp/test2 new file mode 100644 index 000000000..283d4fbc1 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/test2 @@ -0,0 +1,25 @@ +#define x 3 +#define f(a) f(x * (a)) +#undef x +#define x 2 +#define g f +#define z z[0] +#define h g(~ +#define m(a) a(w) +#define w 0,1 +#define t(a) a +#define p() int +#define q(x) x +#define r(x,y) x ## y +#define str(x) # x +f(y+1) + f(f(z)) % t(t(g)(0) + t)(1); +g(x+(3,4)-w) | h 5) & m +(f)^m(m); +p() i[q()] = { q(1), r(2,3), r(4,), r(,5), r(,) }; +char c[2][6] = { str(hello), str() }; +/* + * f(2 * (y+1)) + f(2 * (f(2 * (z[0])))) % f(2 * (0)) + t(1); + * f(2 * (2+(3,4)-0,1)) | f(2 * (~ 5)) & f(2 * (0,1))^m(0,1); + * int i[] = { 1, 23, 4, 5, }; + * char c[2][6] = { "hello", "" }; + */ diff --git a/src/regress/usr.bin/pcc/cpp/test3 b/src/regress/usr.bin/pcc/cpp/test3 new file mode 100644 index 000000000..a659245ec --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/test3 @@ -0,0 +1,15 @@ +#define str(s) # s +#define xstr(s) str(s) +#define debug(s, t) printf("x" # s "= %d, x" # t "= %s", \ + x ## s, x ## t) +#define INCFILE(n) vers ## n +#define glue(a, b) a ## b +#define xglue(a, b) glue(a, b) +#define HIGHLOW "hello" +#define LOW LOW ", world" +debug(1, 2); +fputs(str(strncmp("abc\0d", "abc", '\4') // this goes away + == 0) str(: @\n), s); +\#include xstr(INCFILE(2).h) +glue(HIGH, LOW); +xglue(HIGH, LOW) diff --git a/src/regress/usr.bin/pcc/cpp/test4 b/src/regress/usr.bin/pcc/cpp/test4 new file mode 100644 index 000000000..0068f3751 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/test4 @@ -0,0 +1,4 @@ +#define foobar 1 +#define C(x,y) x##y +#define D(x) (C(x,bar)) +D(foo) diff --git a/src/regress/usr.bin/pcc/cpp/test5 b/src/regress/usr.bin/pcc/cpp/test5 new file mode 100644 index 000000000..3ca0bb6c9 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/test5 @@ -0,0 +1,3 @@ +#define t(x,y,z) x ## y ## z +int j[] = { t(1,2,3), t(,4,5), t(6,,7), t(8,9,), + t(10,,), t(,11,), t(,,12), t(,,) }; diff --git a/src/regress/usr.bin/pcc/cpp/test6 b/src/regress/usr.bin/pcc/cpp/test6 new file mode 100644 index 000000000..28cfddece --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/test6 @@ -0,0 +1,5 @@ +#define X(a,b, \ + c,d) \ + foo + +X(1,2,3,4) diff --git a/src/regress/usr.bin/pcc/cpp/test7 b/src/regress/usr.bin/pcc/cpp/test7 new file mode 100644 index 000000000..b22b22bbc --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/test7 @@ -0,0 +1,4 @@ +#define a() YES +#define b() a +b() +b()() diff --git a/src/regress/usr.bin/pcc/cpp/test8 b/src/regress/usr.bin/pcc/cpp/test8 new file mode 100644 index 000000000..c5d2f9a14 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/test8 @@ -0,0 +1,7 @@ +// test macro expansion in arguments +#define s_pos s_s.s_pos +#define foo(x) (x) + +//hej.s_pos +foo(hej.s_pos) + diff --git a/src/regress/usr.bin/pcc/cpp/test9 b/src/regress/usr.bin/pcc/cpp/test9 new file mode 100644 index 000000000..4d4368d56 --- /dev/null +++ b/src/regress/usr.bin/pcc/cpp/test9 @@ -0,0 +1,4 @@ +#define C(a,b,c) a##b##c +#define N(x,y) C(x,_,y) +#define A_O ao +N(A,O) diff --git a/src/regress/usr.bin/rcs/CVS/Entries b/src/regress/usr.bin/rcs/CVS/Entries new file mode 100644 index 000000000..2a003caeb --- /dev/null +++ b/src/regress/usr.bin/rcs/CVS/Entries @@ -0,0 +1,25 @@ +/Makefile/1.41/Sat Feb 2 16:23:44 2008// +/keywords.in/1.4/Fri Jul 28 06:29:09 2006// +/keywords.out/1.4/Fri Jul 28 06:29:09 2006// +/merge-eflag.out/1.1/Fri Aug 11 08:15:44 2006// +/rcs-Aflag.out/1.1/Fri Mar 24 15:26:22 2006// +/rcs-aflag.out/1.1/Tue Mar 21 08:32:10 2006// +/rcs-eflag.out/1.1/Tue Mar 21 08:32:10 2006// +/rcsdiff-rflag.out/1.1/Sat Mar 11 06:22:47 2006// +/rcsdiff-uflag.out/1.1/Sat Mar 11 06:22:47 2006// +/rcsdiff.out/1.2/Sun Mar 12 00:36:00 2006// +/rcsmerge.out/1.3/Wed Mar 15 02:36:46 2006// +/rev1/1.2/Sun Mar 12 00:36:00 2006// +/rev2/1.2/Sun Mar 12 00:36:00 2006// +/rev3/1.2/Sun Mar 12 00:36:00 2006// +/rlog-rflag1.out/1.1/Thu Apr 20 17:17:22 2006// +/rlog-rflag2.out/1.1/Thu Apr 20 17:17:22 2006// +/rlog-rflag3.out/1.1/Thu Apr 20 17:17:22 2006// +/rlog-rflag4.out/1.1/Thu Apr 20 17:17:22 2006// +/rlog-zflag1.out/1.1/Fri Apr 28 20:11:45 2006// +/rlog-zflag2.out/1.1/Fri Apr 28 20:11:45 2006// +/rlog-zflag3.out/1.1/Fri Apr 28 20:11:45 2006// +/rlog-zflag4.out/1.1/Fri Apr 28 20:11:45 2006// +/rlog-zflag5.out/1.1/Fri Apr 28 20:24:20 2006// +/test-truncated,v/1.1/Wed Aug 23 16:26:17 2006// +D diff --git a/src/regress/usr.bin/rcs/CVS/Repository b/src/regress/usr.bin/rcs/CVS/Repository new file mode 100644 index 000000000..1b5caeca4 --- /dev/null +++ b/src/regress/usr.bin/rcs/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/rcs diff --git a/src/regress/usr.bin/rcs/CVS/Root b/src/regress/usr.bin/rcs/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/rcs/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/rcs/Makefile b/src/regress/usr.bin/rcs/Makefile new file mode 100644 index 000000000..b52f5f5e8 --- /dev/null +++ b/src/regress/usr.bin/rcs/Makefile @@ -0,0 +1,611 @@ +# $OpenBSD: Makefile,v 1.41 2008/02/02 16:23:44 xsa Exp $ + +# Regression tests by Niall O'Higgins . +# ksh -> Makefile by Ray Lai . + +CI?= ci +CO?= co +MERGE?= merge +RCS?= rcs +RCSCLEAN?= rcsclean +RCSDIFF?= rcsdiff +RCSMERGE?= rcsmerge +RLOG?= rlog + +DIFF= diff -u + +CLEANFILES= RCS blah.c blah.c,v description file1 file2 file3 \ + file file,v newfile newfile,v test test,v \ + test-truncated truncated.out foo foo,v bar bar,v + +# XXX - These may need to be done in order. +# (At least start with ci-initial.) +LTESTS= ci-initial \ + ci-mflag \ + ci-lflag \ + ci-rflag \ + co-lflag \ + ci-rev \ + co-perm \ + co-perm2 \ + ci-perm \ + ci-perm2 \ + ci-dinvalid \ + ci-dold \ + ci-wflag \ + rcsdiff-uflag \ + rcsdiff-rflag \ + rcs-mflag \ + rcs-mflag2 \ + co-RCSINIT \ + ci-nflag \ + ci-Nflag \ + ci-sflag \ + co-lflag2 \ + rcsclean \ + rcsdiff \ + rcsdiff-symbols \ + merge-eflag \ + rcsmerge \ + rcsmerge-symbols \ + ci-dflag \ + ci-xflag \ + comma \ + rcs-aflag \ + rcs-eflag \ + rcs-Aflag \ + rcs-tflag-stdin \ + rcs-tflag-stdin2 \ + rcs-tflag-stdin3 \ + rcs-tflag-inline \ + rcs-tflag-file \ + rcs-oflag \ + rcs-lock-unlock \ + co-lock-filemodes \ + co-unlock-filemodes \ + ci-filemodes \ + rcs-iflag \ + rlog-lflag \ + rlog-rflag \ + ci-nofile \ + ci-revert \ + ci-keywords \ + ci-keywords2 \ + ci-parse-keywords \ + ci-parse-keywords2 \ + co-parse-truncated \ + ci-2files \ + +.for t in ${LTESTS} +REGRESS_TARGETS+=test-${t} +.endfor + +test-ci-initial: clean + @echo 'this is a test file' > test + @echo "a test file" | ${CI} -q -l test + @grep -q 'this is a test file' test,v + +# Testing 'ci test' with non-interactive log message +test-ci-mflag: + @echo 'another revision' >> test + @${CI} -q -m'a second revision' test + @test ! -e test + @grep -q 'another revision' test,v + +# Testing 'co -l test' +test-ci-lflag: + @${CO} -q -l test + @test -e test + +# Testing 'ci -r1.30 test' with non-interactive log message +test-ci-rflag: + @echo "new stuff" >> test + @${CI} -q -r1.30 -m'bumped rev' test + @test ! -e test + +# Testing 'co -l test' +test-co-lflag: + @${CO} -q -l test + @test -e test + +# Testing 'ci test' (should be rev 1.31) with non-interactive log message +test-ci-rev: + @echo "a third revision" >> test + @${CI} -q -m'this should be rev 1.31' test + @grep -q '1.31' test,v + +# Testing 'co -u test' - ensuring permissions are 0444 +test-co-perm: + @${CO} -q -u test + @eval 'test `stat -f%p test` = 100444' + +# Testing 'co -l test' - ensuring permissions are 0644 +test-co-perm2: + @rm -rf test + @${CO} -q -l test + @eval 'test `stat -f%p test` = 100644' + +# Testing 'ci -u' - ensuring permissions are 0444 +test-ci-perm: + @echo "a line for ci -u" >> test + @${CI} -q -m'message for ci -u' -u test + @eval 'test `stat -f%p test` = 100444' + +# Testing 'ci -l' - ensuring permissions are 0644 +test-ci-perm2: + @rm -rf test + @${CO} -q -l test + @echo "a line for ci -l" >> test + @${CI} -q -m'message for ci -l' -l test + @eval 'test `stat -f%p test` = 100644' + +# Testing ci with an invalid date +test-ci-dinvalid: + @echo 'some text for invalid date text' >> test + @if @${CI} -q -d'an invalid date' -m'invalid date' -l test 2>/dev/null; then false; fi + @if grep 'some text for invalid date text' test,v; then false; fi + +# Testing ci with a date older than previous revision +test-ci-dold: + @echo 'some text for old date test' >> test + @if ${CI} -q -d'1990-01-12 04:00:00+00' -m'old dated revision' -l test 2>/dev/null; then false; fi + @if grep 'some text for old date test' test,v; then false; fi + +# Testing ci -wtestuser +test-ci-wflag: + @rm -rf test + @${CO} -q -l test + @echo "blah blah" >> test + @echo "output for ci -w" >> test + @${CI} -q -wtestuser -mcomment -l test + @grep -q 'author testuser' test,v + +# Testing 'rcsdiff -u test' after adding another line +test-rcsdiff-uflag: + @echo "a line for rcsdiff test" >> test + @${RCSDIFF} -q -u test | tail -n 5 | \ + ${DIFF} ${.CURDIR}/rcsdiff-uflag.out - + +# Testing 'rcsdiff -u -r1.2 test' +test-rcsdiff-rflag: + @${RCSDIFF} -q -u -r1.2 test | tail -n +3 | \ + ${DIFF} ${.CURDIR}/rcsdiff-rflag.out - + +# Testing 'rcs -m1.2:logmessage' +test-rcs-mflag: + @${RCS} -q -m1.2:logmessage test + @grep -q 'logmessage' test,v + +# Testing 'rcs -m'1.2:a new log message'' +test-rcs-mflag2: + @${RCS} -q -m1.1:'a new log message, one which is quite long and set by rcsprog' test + @grep -q 'a new log message, one which is quite long and set by rcsprog' test,v + +# Testing RCSINIT environment variable +test-co-RCSINIT: + @rm -rf test + @RCSINIT=-l ${CO} -q test + @eval 'test `stat -f%p test` = 100644' + +# Testing check-in with symbol +test-ci-nflag: + @echo "something to check in with a symbol" >> test + @${CI} -q -n'symbolname' -m'test symbols' -l test + @grep -q 'symbolname' test,v + +# Testing check-in, forcing symbol +test-ci-Nflag: + @echo "something to check in with a forced symbol" >> test + @${CI} -q -N'symbolname' -m'test force symbol' -l test + @grep -q 'test force symbol' test,v + +# Trying some jiggerypokery with state +test-ci-sflag: + @echo "blahblah" >> test + @if ${CI} -q -l -s'SPACE S' -m"state with a space" test; then false; fi + @if grep -q 'SPACE S' test,v; then false; fi + +# Trying to check it out +test-co-lflag2: + @rm -rf test + @${CO} -q -l test + @test -e test + +test-rcsclean: clean + @touch file + @${RCSCLEAN} -q file + @${RCSCLEAN} -q1.1 file + @${RCSCLEAN} -qsym file + @test -f file + + @echo . | ${CI} -q -nsym file + @${CO} -q file + @${RCSCLEAN} -q file + @test ! -f file + @${CO} -q file + @${RCSCLEAN} -q1.1 file + @test ! -f file + @${CO} -q file + @${RCSCLEAN} -qsym file + @test ! -f file + + @${CO} -q -l file + @${RCSCLEAN} -q file + @test -f file + @${RCSCLEAN} -q -u file + @test ! -f file + @${CO} -q -l file + @echo change >> file + @${RCSCLEAN} -q file + @${RCSCLEAN} -q -u file + @test -f file + +test-merge-eflag: clean + @echo "line1\nline2\nfile1new" > file1 + @echo "line1\nline2" > file2 + @echo "line1\nfile3new\nline2" > file3 + @${MERGE} -p -q -e file1 file2 file3 | \ + ${DIFF} ${.CURDIR}/merge-eflag.out - + +test-rcsmerge: + @cp -f ${.CURDIR}/rev1 blah.c + @echo "descr" | ${CI} -q -l -m"first rev" blah.c + @cp -f ${.CURDIR}/rev2 blah.c + @${CI} -q -l -m"second rev" blah.c + @cp -f ${.CURDIR}/rev3 blah.c + @${CI} -q -l -m"third rev" blah.c + + @${RCSMERGE} -q -r1.1 -r1.3 -p blah.c | \ + ${DIFF} ${.CURDIR}/rcsmerge.out - + +test-rcsmerge-symbols: clean + @mkdir RCS + @cp -f ${.CURDIR}/rev1 blah.c + @echo "descr" | ${CI} -q -l -nsym1 -m"first rev" blah.c + @cp -f ${.CURDIR}/rev2 blah.c + @${CI} -q -l -nsym2 -m"second rev" blah.c + @cp -f ${.CURDIR}/rev3 blah.c + @${CI} -q -l -nsym3 -m"third rev" blah.c + + @${RCSMERGE} -q -rsym1 -rsym3 -p blah.c | \ + ${DIFF} ${.CURDIR}/rcsmerge.out - + +test-rcsdiff: + @rm -rf blah.c,v + + @cp -f ${.CURDIR}/rev1 blah.c + @echo "descr" | ${CI} -q -l -m"first rev" blah.c + @cp -f ${.CURDIR}/rev2 blah.c + @${CI} -q -l -m"second rev" blah.c + @cp -f ${.CURDIR}/rev3 blah.c + @${CI} -q -l -m"third rev" blah.c + + @${RCSDIFF} -q -r1.1 -r1.3 -u blah.c | tail -n +3 | \ + ${DIFF} ${.CURDIR}/rcsdiff.out - + +test-rcsdiff-symbols: clean + @mkdir RCS + @cp -f ${.CURDIR}/rev1 blah.c + @echo "descr" | ${CI} -q -l -nsym1 -m"first rev" blah.c + @cp -f ${.CURDIR}/rev2 blah.c + @${CI} -q -l -nsym2 -m"second rev" blah.c + @cp -f ${.CURDIR}/rev3 blah.c + @${CI} -q -l -nsym3 -m"third rev" blah.c + + @${RCSDIFF} -q -rsym1 -rsym3 -u blah.c | tail -n +3 | \ + ${DIFF} ${.CURDIR}/rcsdiff.out - + +# Testing 'ci -d'2037-01-12 04:00:00+00' -l test +test-ci-dflag: clean + @echo "some text for date test" >> test + @echo . | ${CI} -q -d'2037-01-12 04:00:00+00' -m'dated revision' -l test + @grep -q 'dated revision' test,v + +test-ci-xflag: + @mkdir -p RCS + @rm -rf RCS/file* + @touch file + @echo . | ${CI} -q -x,abcd/,v file + @test -e RCS/file,abcd + @test ! -e RCS/file,v + + @mv -f RCS/file,abcd RCS/file,v + @${CO} -q -l file + @echo revision >> file + @echo . | ${CI} -q -x,abcd/,v/xyz file + @test ! -e RCS/file,abcd + @fgrep -q revision RCS/file,v + @test ! -e RCS/filexyz + + @touch file + @echo more >> file + @echo . | ${CI} -q -x file + @fgrep -q more RCS/file + +test-comma: + @rm -rf RCS + @mkdir -p RCS + @touch file,notext + @echo . | ${CI} -q file,notext + @test -e RCS/file,notext,v + @test ! -e RCS/file,v + +# Testing 'rcs -afoo,bar,baz' +test-rcs-aflag: clean + @echo "." | ${RCS} -q -i test + @${RCS} -q -afoo,bar,baz test + @${RLOG} test | ${DIFF} ${.CURDIR}/rcs-aflag.out - + +# Testing 'rcs -efoo,bar,baz' +test-rcs-eflag: test-rcs-aflag + @${RCS} -q -efoo,bar,baz test + @${RLOG} test | ${DIFF} ${.CURDIR}/rcs-eflag.out - + +# Testing 'rcs -Atest newfile' +test-rcs-Aflag: test-rcs-aflag + @echo "." | ${RCS} -q -i newfile + @${RCS} -q -Atest newfile + @${RLOG} newfile | ${DIFF} ${.CURDIR}/rcs-Aflag.out - + +test-rcs-tflag-stdin: clean + @echo 'This is a description.' | ${RCS} -q -i -t file + @fgrep -q 'This is a description.' file,v + +test-rcs-tflag-stdin2: clean + @echo '.This is not the description end.' | ${RCS} -q -i -t file + @fgrep -q '.This is not the description end.' file,v + +test-rcs-tflag-stdin3: clean + @echo "This is the description end.\n.\nThis should not be here." | \ + ${RCS} -q -i -t file + @fgrep -q 'This should not be here.' file,v || \ + case "$$?" in 1) exit 0;; esac && exit 1 + +test-rcs-tflag-inline: clean + @${RCS} -q -i '-t-This is a description.' file + @fgrep -q 'This is a description.' file,v + +test-rcs-tflag-file: clean + @echo 'This is a description.' > description + @${RCS} -q -i -tdescription file + @fgrep -q 'This is a description.' file,v + +# Testing deletion of ranges +test-rcs-oflag: clean + @cp ${.CURDIR}/rev3 blah.c + @echo "blah" | ${CI} -q blah.c + @${CO} -q -l blah.c + @echo "blah2" >> blah.c + @echo "blah2" | ${CI} -q blah.c + @${CO} -q -l blah.c + @echo "blah3" >> blah.c + @echo "blah3" | ${CI} -q blah.c + @${CO} -q -l blah.c + @echo "blah4" >> blah.c + @echo "blah4" | ${CI} -q blah.c + @${CO} -q -l blah.c + @echo "blah5" >> blah.c + @echo "blah5" | ${CI} -q blah.c + @${CO} -q -l blah.c + @echo "blah6" >> blah.c + @echo "blah6" | ${CI} -q blah.c + @${CO} -q -l blah.c + @${RCS} -q -o1.3:1.5 blah.c + @tr '\n' ' ' < blah.c,v | grep -q '[[:space:]]1.3[[:space:]]' || \ + case "$$?" in 1) exit 0;; esac && exit 1 + @tr '\n' ' ' < blah.c,v | grep -q '[[:space:]]1.4[[:space:]]' || \ + case "$$?" in 1) exit 0;; esac && exit 1 + @tr '\n' ' ' < blah.c,v | grep -q '[[:space:]]1.5[[:space:]]' || \ + case "$$?" in 1) exit 0;; esac && exit 1 + +test-rcs-lock-unlock: clean + @touch file + @mkdir -p RCS + @echo . | ${CI} -q -l file + @echo sometext > file + @echo . | ${CI} -q file + + @${RCS} -q -l file + @${RLOG} file | fgrep -x -A 1 'locks: strict' | head -n 2 | fgrep -q 1.2 + @${RCS} -q -u file + @${RLOG} file | fgrep -x -A 1 'locks: strict' | head -n 2 | fgrep -q 1.2 || \ + case "$$?" in 1) exit 0;; esac && exit 1 + + @${RCS} -q -l1.1 file + @${RLOG} file | fgrep -x -A 1 'locks: strict' | head -n 2 | fgrep -q 1.1 + @${RCS} -q -u1.1 file + @${RLOG} file | fgrep -x -A 1 'locks: strict' | head -n 2 | fgrep -q 1.1 || \ + case "$$?" in 1) exit 0;; esac && exit 1 + + @${RCS} -q -l1.2 file + @${RLOG} file | fgrep -x -A 1 'locks: strict' | head -n 2 | fgrep -q 1.2 + @${RCS} -q -u1.2 file + @${RLOG} file | fgrep -x -A 1 'locks: strict' | head -n 2 | fgrep -q 1.2 || \ + case "$$?" in 1) exit 0;; esac && exit 1 + + @${RCS} -q -u file + @${RCS} -q -l file + @${RCS} -q -l file + @${RCS} -q -l1.3 file || case "$$?" in 1) exit 0;; esac && exit 1 + @${RCS} -q -u1.3 file || case "$$?" in 1) exit 0;; esac && exit 1 + +# Testing 'co -l blah.c' for permissions inheritance +test-co-lock-filemodes: + @rm -rf RCS/blah.c,v blah.c + @mkdir -p RCS + @cp ${.CURDIR}/rev3 blah.c + @chmod 444 blah.c + @echo "blah" | ${CI} -q blah.c + @chmod 755 RCS/blah.c,v + @${CO} -q -l blah.c + @eval 'test `stat -f%p blah.c` = 100755' + @rm -rf blah.c + @chmod 666 RCS/blah.c,v + @${CO} -q -l blah.c + @eval 'test `stat -f%p blah.c` = 100644' + @rm -rf blah.c + @chmod 600 RCS/blah.c,v + @${CO} -q -l blah.c + @eval 'test `stat -f%p blah.c` = 100600' + @rm -rf blah.c + @chmod 604 RCS/blah.c,v + @${CO} -q -l blah.c + @eval 'test `stat -f%p blah.c` = 100604' + @rm -rf blah.c + @chmod 754 RCS/blah.c,v + @${CO} -q -l blah.c + @eval 'test `stat -f%p blah.c` = 100754' + + +# Testing 'co -u blah.c' for permissions inheritance +test-co-unlock-filemodes: test-co-lock-filemodes + @rm -rf RCS/blah.c,v blah.c + @mkdir -p RCS + @cp ${.CURDIR}/rev3 blah.c + @echo "blah" | ${CI} -q blah.c + @chmod 755 RCS/blah.c,v + @${CO} -q -u blah.c + @eval 'test `stat -f%p blah.c` = 100555' + @rm -rf blah.c + @chmod 666 RCS/blah.c,v + @${CO} -q -u blah.c + @eval 'test `stat -f%p blah.c` = 100444' + @rm -rf blah.c + @chmod 600 RCS/blah.c,v + @${CO} -q -u blah.c + @eval 'test `stat -f%p blah.c` = 100400' + @rm -rf blah.c + @chmod 604 RCS/blah.c,v + @${CO} -q -u blah.c + @eval 'test `stat -f%p blah.c` = 100404' + @rm -rf blah.c + @chmod 754 RCS/blah.c,v + @${CO} -q -u blah.c + @eval 'test `stat -f%p blah.c` = 100554' + +# Testing 'ci blah.c' for permissions inheritance +test-ci-filemodes: test-co-unlock-filemodes + @rm -rf RCS/blah.c,v blah.c + @mkdir -p RCS + @cp ${.CURDIR}/rev3 blah.c + @chmod 755 blah.c + @echo "blah" | ${CI} -q blah.c + @eval 'test `stat -f%p RCS/blah.c,v` = 100555' + @rm -rf RCS/blah.c,v blah.c + @cp ${.CURDIR}/rev3 blah.c + @chmod 666 blah.c + @echo "blah" | ${CI} -q blah.c + @eval 'test `stat -f%p RCS/blah.c,v` = 100444' + @rm -rf RCS/blah.c,v blah.c + @cp ${.CURDIR}/rev3 blah.c + @chmod 700 blah.c + @echo "blah" | ${CI} -q blah.c + @eval 'test `stat -f%p RCS/blah.c,v` = 100500' + @rm -rf RCS/blah.c,v blah.c + @cp ${.CURDIR}/rev3 blah.c + @chmod 606 blah.c + @echo "blah" | ${CI} -q blah.c + @eval 'test `stat -f%p RCS/blah.c,v` = 100404' + +# Test various operations on a file with no revisions. +test-rcs-iflag: clean + @mkdir -p RCS + @echo . | ${RCS} -i -q file + @test -f RCS/file,v + @${CO} -q file + @test -f file + @test ! -s file + @rm -f file + @${CO} -q -l file + @echo text >> file + @${CI} -q file + @fgrep -q 1.1 RCS/file,v + +test-rlog-lflag: clean + @mkdir RCS + @touch file + @echo rev1 | ${CI} -q -l file + @${RLOG} -l file | fgrep -q 'revision 1.1' + @echo line >> file + @echo rev2 | ${CI} -q file + @${RLOG} -l file | fgrep -q 'revision 1.2' || \ + case "$$?" in 1) exit 0;; esac && exit 1 + +# Test various cases for the -r flag +test-rlog-rflag: clean + @touch file + @echo "foo" > file + @echo "descr" | ${CI} -q -m"first rev" -d'2006-01-01 00:00:00+00' \ + -wfoo file + @${CO} -q -l file + @echo "foo" >> file + @${CI} -q -m"second rev" -d'2006-01-01 00:00:00+00' -wfoo file + @${CO} -q -l file + @echo "foo" >> file + @${CI} -q -m"third rev" -d'2006-01-01 00:00:00+00' -wfoo file + + @${RLOG} -r1.1 file | ${DIFF} ${.CURDIR}/rlog-rflag1.out - + @${RLOG} -r1.1:1.3 file | ${DIFF} ${.CURDIR}/rlog-rflag2.out - + @${RLOG} -r1.2: file | ${DIFF} ${.CURDIR}/rlog-rflag3.out - + @${RLOG} -r:1.1 file | ${DIFF} ${.CURDIR}/rlog-rflag4.out - + +test-rlog-zflag: clean + @touch file + @echo "descr" | ${CI} -q -m"first rev" -d'2006-01-01 00:00:00+00' \ + -wfoo file + @${RLOG} -zLT file | ${DIFF} ${.CURDIR}/rlog-zflag1.out - + @${RLOG} -z+03:14:23 file | ${DIFF} ${.CURDIR}/rlog-zflag2.out - + @${RLOG} -z+03:14 file | ${DIFF} ${.CURDIR}/rlog-zflag3.out - + @${RLOG} -z+0314 file | ${DIFF} ${.CURDIR}/rlog-zflag4.out - + @${RLOG} -z-03:14:23 file | ${DIFF} ${.CURDIR}/rlog-zflag5.out - + +test-ci-nofile: + @${CI} -q nonexistent || case "$$?" in 1) exit 0;; esac && exit 1 + +test-ci-revert: clean + @mkdir RCS + @touch file + @echo . | ${CI} -q -l file + @${CI} -q -mm -l file + @# Make sure reverting doesn't unlock file. + @${CI} -q -mm -l file + +test-ci-keywords: clean + @mkdir RCS + @sed 's/.*/$$&$$/' ${.CURDIR}/keywords.in > file + @sed 's/^[A-Z][A-Z]*[a-z][a-z]*: .*/$$&$$/' ${.CURDIR}/keywords.out > newfile + @echo . | ${CI} -q -u file + @sed -e 's,${USER},USER,' -e "s/\($$[A-Z][a-z]*: \).*file,v/\1file,v/" \ + -e 's,[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9],YYYY/MM/DD HH:MI:SS,' \ + file | ${DIFF} newfile - + +# Lots of expansion. +test-ci-keywords2: clean + @perl -e 'print "\$$Id\$$\n" x 10000;' > file + @echo . | ${CI} -l -q file + +test-ci-parse-keywords: clean + @echo '$Id' > test + @echo . | ${CI} -q -k test + +test-ci-parse-keywords2: clean + @echo '$Id: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah' > test + @echo . | ${CI} -q -k test + +# Check for correct EOF handling in rcs parser +test-co-parse-truncated: clean + @sh -c 'ulimit -d 5000 && ${CO} -q ${.CURDIR}/test-truncated > truncated.out 2>&1' || \ + case "$$?" in 1) exit 0;; esac && exit 1 + @grep -q 'co: problem parsing deltatexts' truncated.out + +test-ci-2files: clean + @touch foo bar + @${CI} -q -t-first -l foo + @test -f foo,v -a ! -f bar,v + @${CI} -q -t-second -l foo bar + @test -f foo,v -a -f bar,v + +clean: + @rm -rf ${CLEANFILES} + +.include diff --git a/src/regress/usr.bin/rcs/keywords.in b/src/regress/usr.bin/rcs/keywords.in new file mode 100644 index 000000000..61bc43a98 --- /dev/null +++ b/src/regress/usr.bin/rcs/keywords.in @@ -0,0 +1,9 @@ +Author +Date +Header +Id +Name +RCSfile +Revision +Source +State diff --git a/src/regress/usr.bin/rcs/keywords.out b/src/regress/usr.bin/rcs/keywords.out new file mode 100644 index 000000000..c2aa20723 --- /dev/null +++ b/src/regress/usr.bin/rcs/keywords.out @@ -0,0 +1,9 @@ +Author: USER +Date: YYYY/MM/DD HH:MI:SS +Header: file,v 1.1 YYYY/MM/DD HH:MI:SS USER Exp +Id: file,v 1.1 YYYY/MM/DD HH:MI:SS USER Exp +Name: +RCSfile: file,v +Revision: 1.1 +Source: file,v +State: Exp diff --git a/src/regress/usr.bin/rcs/merge-eflag.out b/src/regress/usr.bin/rcs/merge-eflag.out new file mode 100644 index 000000000..4c05eb38a --- /dev/null +++ b/src/regress/usr.bin/rcs/merge-eflag.out @@ -0,0 +1,4 @@ +line1 +file3new +line2 +file1new diff --git a/src/regress/usr.bin/rcs/obj b/src/regress/usr.bin/rcs/obj new file mode 120000 index 000000000..18424352f --- /dev/null +++ b/src/regress/usr.bin/rcs/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/rcs \ No newline at end of file diff --git a/src/regress/usr.bin/rcs/rcs-aflag.out b/src/regress/usr.bin/rcs/rcs-aflag.out new file mode 100644 index 000000000..74fb36003 --- /dev/null +++ b/src/regress/usr.bin/rcs/rcs-aflag.out @@ -0,0 +1,15 @@ + +RCS file: test,v +Working file: test +head: +branch: +locks: strict +access list: + foo + bar + baz +symbolic names: +keyword substitution: kv +total revisions: 0 +description: +============================================================================= diff --git a/src/regress/usr.bin/rcs/rcs-eflag.out b/src/regress/usr.bin/rcs/rcs-eflag.out new file mode 100644 index 000000000..9bf34f410 --- /dev/null +++ b/src/regress/usr.bin/rcs/rcs-eflag.out @@ -0,0 +1,12 @@ + +RCS file: test,v +Working file: test +head: +branch: +locks: strict +access list: +symbolic names: +keyword substitution: kv +total revisions: 0 +description: +============================================================================= diff --git a/src/regress/usr.bin/rcs/rcsdiff-rflag.out b/src/regress/usr.bin/rcs/rcsdiff-rflag.out new file mode 100644 index 000000000..b09e570d0 --- /dev/null +++ b/src/regress/usr.bin/rcs/rcsdiff-rflag.out @@ -0,0 +1,10 @@ +@@ -1,2 +1,9 @@ + this is a test file + another revision ++new stuff ++a third revision ++a line for ci -u ++a line for ci -l ++blah blah ++output for ci -w ++a line for rcsdiff test diff --git a/src/regress/usr.bin/rcs/rcsdiff-uflag.out b/src/regress/usr.bin/rcs/rcsdiff-uflag.out new file mode 100644 index 000000000..2bdb687f2 --- /dev/null +++ b/src/regress/usr.bin/rcs/rcsdiff-uflag.out @@ -0,0 +1,5 @@ +@@ -6,3 +6,4 @@ + a line for ci -l + blah blah + output for ci -w ++a line for rcsdiff test diff --git a/src/regress/usr.bin/rcs/rcsdiff.out b/src/regress/usr.bin/rcs/rcsdiff.out new file mode 100644 index 000000000..c15c1f7e1 --- /dev/null +++ b/src/regress/usr.bin/rcs/rcsdiff.out @@ -0,0 +1,16 @@ +@@ -1 +1,14 @@ +-blah(); ++#include ++#include ++#include ++ ++/* a comment */ ++ ++/* main function */ ++int ++main(int argc, char **argv) ++{ ++ printf("foo bar\n"); ++ ++ return (0); ++} diff --git a/src/regress/usr.bin/rcs/rcsmerge.out b/src/regress/usr.bin/rcs/rcsmerge.out new file mode 100644 index 000000000..71ace5fc4 --- /dev/null +++ b/src/regress/usr.bin/rcs/rcsmerge.out @@ -0,0 +1,14 @@ +#include +#include +#include + +/* a comment */ + +/* main function */ +int +main(int argc, char **argv) +{ + printf("foo bar\n"); + + return (0); +} diff --git a/src/regress/usr.bin/rcs/rev1 b/src/regress/usr.bin/rcs/rev1 new file mode 100644 index 000000000..2eec0afbb --- /dev/null +++ b/src/regress/usr.bin/rcs/rev1 @@ -0,0 +1 @@ +blah(); diff --git a/src/regress/usr.bin/rcs/rev2 b/src/regress/usr.bin/rcs/rev2 new file mode 100644 index 000000000..7f0a01d74 --- /dev/null +++ b/src/regress/usr.bin/rcs/rev2 @@ -0,0 +1,5 @@ +#include + +blah(); + +/* a comment */ diff --git a/src/regress/usr.bin/rcs/rev3 b/src/regress/usr.bin/rcs/rev3 new file mode 100644 index 000000000..71ace5fc4 --- /dev/null +++ b/src/regress/usr.bin/rcs/rev3 @@ -0,0 +1,14 @@ +#include +#include +#include + +/* a comment */ + +/* main function */ +int +main(int argc, char **argv) +{ + printf("foo bar\n"); + + return (0); +} diff --git a/src/regress/usr.bin/rcs/rlog-rflag1.out b/src/regress/usr.bin/rcs/rlog-rflag1.out new file mode 100644 index 000000000..4195ad3fe --- /dev/null +++ b/src/regress/usr.bin/rcs/rlog-rflag1.out @@ -0,0 +1,17 @@ + +RCS file: file,v +Working file: file +head: 1.3 +branch: +locks: strict +access list: +symbolic names: +keyword substitution: kv +total revisions: 3; selected revisions: 1 +description: +descr +---------------------------- +revision 1.1 +date: 2006/01/01 00:00:00; author: foo; state: Exp; +first rev +============================================================================= diff --git a/src/regress/usr.bin/rcs/rlog-rflag2.out b/src/regress/usr.bin/rcs/rlog-rflag2.out new file mode 100644 index 000000000..9d86e6071 --- /dev/null +++ b/src/regress/usr.bin/rcs/rlog-rflag2.out @@ -0,0 +1,25 @@ + +RCS file: file,v +Working file: file +head: 1.3 +branch: +locks: strict +access list: +symbolic names: +keyword substitution: kv +total revisions: 3; selected revisions: 3 +description: +descr +---------------------------- +revision 1.3 +date: 2006/01/01 00:00:00; author: foo; state: Exp; lines: +1 -0 +third rev +---------------------------- +revision 1.2 +date: 2006/01/01 00:00:00; author: foo; state: Exp; lines: +1 -0 +second rev +---------------------------- +revision 1.1 +date: 2006/01/01 00:00:00; author: foo; state: Exp; +first rev +============================================================================= diff --git a/src/regress/usr.bin/rcs/rlog-rflag3.out b/src/regress/usr.bin/rcs/rlog-rflag3.out new file mode 100644 index 000000000..e5c448edc --- /dev/null +++ b/src/regress/usr.bin/rcs/rlog-rflag3.out @@ -0,0 +1,21 @@ + +RCS file: file,v +Working file: file +head: 1.3 +branch: +locks: strict +access list: +symbolic names: +keyword substitution: kv +total revisions: 3; selected revisions: 2 +description: +descr +---------------------------- +revision 1.3 +date: 2006/01/01 00:00:00; author: foo; state: Exp; lines: +1 -0 +third rev +---------------------------- +revision 1.2 +date: 2006/01/01 00:00:00; author: foo; state: Exp; lines: +1 -0 +second rev +============================================================================= diff --git a/src/regress/usr.bin/rcs/rlog-rflag4.out b/src/regress/usr.bin/rcs/rlog-rflag4.out new file mode 100644 index 000000000..4195ad3fe --- /dev/null +++ b/src/regress/usr.bin/rcs/rlog-rflag4.out @@ -0,0 +1,17 @@ + +RCS file: file,v +Working file: file +head: 1.3 +branch: +locks: strict +access list: +symbolic names: +keyword substitution: kv +total revisions: 3; selected revisions: 1 +description: +descr +---------------------------- +revision 1.1 +date: 2006/01/01 00:00:00; author: foo; state: Exp; +first rev +============================================================================= diff --git a/src/regress/usr.bin/rcs/rlog-zflag1.out b/src/regress/usr.bin/rcs/rlog-zflag1.out new file mode 100644 index 000000000..776827860 --- /dev/null +++ b/src/regress/usr.bin/rcs/rlog-zflag1.out @@ -0,0 +1,17 @@ + +RCS file: file,v +Working file: file +head: 1.1 +branch: +locks: strict +access list: +symbolic names: +keyword substitution: kv +total revisions: 1; selected revisions: 1 +description: +descr +---------------------------- +revision 1.1 +date: 2006-01-01 01:00:00+01; author: foo; state: Exp; +first rev +============================================================================= diff --git a/src/regress/usr.bin/rcs/rlog-zflag2.out b/src/regress/usr.bin/rcs/rlog-zflag2.out new file mode 100644 index 000000000..984b98883 --- /dev/null +++ b/src/regress/usr.bin/rcs/rlog-zflag2.out @@ -0,0 +1,17 @@ + +RCS file: file,v +Working file: file +head: 1.1 +branch: +locks: strict +access list: +symbolic names: +keyword substitution: kv +total revisions: 1; selected revisions: 1 +description: +descr +---------------------------- +revision 1.1 +date: 2006-01-01 03:14:23+03:14:23; author: foo; state: Exp; +first rev +============================================================================= diff --git a/src/regress/usr.bin/rcs/rlog-zflag3.out b/src/regress/usr.bin/rcs/rlog-zflag3.out new file mode 100644 index 000000000..16feac0c3 --- /dev/null +++ b/src/regress/usr.bin/rcs/rlog-zflag3.out @@ -0,0 +1,17 @@ + +RCS file: file,v +Working file: file +head: 1.1 +branch: +locks: strict +access list: +symbolic names: +keyword substitution: kv +total revisions: 1; selected revisions: 1 +description: +descr +---------------------------- +revision 1.1 +date: 2006-01-01 03:14:00+03:14; author: foo; state: Exp; +first rev +============================================================================= diff --git a/src/regress/usr.bin/rcs/rlog-zflag4.out b/src/regress/usr.bin/rcs/rlog-zflag4.out new file mode 100644 index 000000000..16feac0c3 --- /dev/null +++ b/src/regress/usr.bin/rcs/rlog-zflag4.out @@ -0,0 +1,17 @@ + +RCS file: file,v +Working file: file +head: 1.1 +branch: +locks: strict +access list: +symbolic names: +keyword substitution: kv +total revisions: 1; selected revisions: 1 +description: +descr +---------------------------- +revision 1.1 +date: 2006-01-01 03:14:00+03:14; author: foo; state: Exp; +first rev +============================================================================= diff --git a/src/regress/usr.bin/rcs/rlog-zflag5.out b/src/regress/usr.bin/rcs/rlog-zflag5.out new file mode 100644 index 000000000..a2b45ea51 --- /dev/null +++ b/src/regress/usr.bin/rcs/rlog-zflag5.out @@ -0,0 +1,17 @@ + +RCS file: file,v +Working file: file +head: 1.1 +branch: +locks: strict +access list: +symbolic names: +keyword substitution: kv +total revisions: 1; selected revisions: 1 +description: +descr +---------------------------- +revision 1.1 +date: 2005-12-31 20:45:37-03:14:23; author: foo; state: Exp; +first rev +============================================================================= diff --git a/src/regress/usr.bin/rcs/test-truncated,v b/src/regress/usr.bin/rcs/test-truncated,v new file mode 100644 index 000000000..2ffe0a276 --- /dev/null +++ b/src/regress/usr.bin/rcs/test-truncated,v @@ -0,0 +1,23 @@ +head 1.1; +access; +symbols; +locks; strict; +comment @# @; + + +1.1 +date 2006.08.01.18.51.11; author niallo; state Exp; +branches; +next ; + + +desc +@@ + + +1.1 +log +@Initial revision +@ +text +@d: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah diff --git a/src/regress/usr.bin/sdiff/CVS/Entries b/src/regress/usr.bin/sdiff/CVS/Entries new file mode 100644 index 000000000..5e50c8ff4 --- /dev/null +++ b/src/regress/usr.bin/sdiff/CVS/Entries @@ -0,0 +1,26 @@ +/Iflag12.out/1.1/Tue Feb 21 09:07:52 2006// +/Iflag21.out/1.1/Tue Feb 21 09:07:52 2006// +/Ilflag12.out/1.1/Tue Feb 21 09:07:52 2006// +/Ilflag21.out/1.1/Tue Feb 21 09:07:52 2006// +/Ilsflag12.out/1.1/Tue Feb 21 09:07:52 2006// +/Ilsflag21.out/1.1/Tue Feb 21 09:07:52 2006// +/Isflag12.out/1.1/Tue Feb 21 09:07:52 2006// +/Isflag21.out/1.1/Tue Feb 21 09:07:52 2006// +/Makefile/1.2/Sun Mar 5 07:13:11 2006// +/dot.in/1.1/Tue Feb 21 09:07:52 2006// +/file1/1.1/Tue Feb 21 09:07:52 2006// +/file2/1.1/Tue Feb 21 09:07:52 2006// +/lflag.out/1.1/Tue Feb 21 09:07:52 2006// +/oneline.in/1.1/Tue Feb 21 09:07:52 2006// +/same.out/1.1/Tue Feb 21 09:07:52 2006// +/sflag.out/1.1/Tue Feb 21 09:07:52 2006// +/short.out/1.1/Tue Feb 21 09:07:52 2006// +/tabends/1.1/Tue Feb 21 09:07:52 2006// +/tabends.out/1.1/Tue Feb 21 09:07:52 2006// +/tabends2.out/1.1/Tue Feb 21 09:07:52 2006// +/tabends3.out/1.1/Tue Feb 21 09:07:52 2006// +/tabs.out/1.1/Tue Feb 21 09:07:52 2006// +/tabs1/1.1/Tue Feb 21 09:07:52 2006// +/tabs2/1.1/Tue Feb 21 09:07:52 2006// +/wflag.out/1.1/Tue Feb 21 09:07:52 2006// +D diff --git a/src/regress/usr.bin/sdiff/CVS/Repository b/src/regress/usr.bin/sdiff/CVS/Repository new file mode 100644 index 000000000..8dfe2ca74 --- /dev/null +++ b/src/regress/usr.bin/sdiff/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/sdiff diff --git a/src/regress/usr.bin/sdiff/CVS/Root b/src/regress/usr.bin/sdiff/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/sdiff/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/sdiff/Iflag12.out b/src/regress/usr.bin/sdiff/Iflag12.out new file mode 100644 index 000000000..2a0f5328a --- /dev/null +++ b/src/regress/usr.bin/sdiff/Iflag12.out @@ -0,0 +1,100 @@ +Policy: /usr/bin/lynx, Emulation: native Policy: /usr/bin/lynx, Emulation: native + > native-issetugid: permit + > native-mprotect: permit + > native-mmap: permit + native-__sysctl: permit native-__sysctl: permit + > native-fsread: filename eq "/var/run/ld.so.hints" then pe + > native-fstat: permit + native-close: permit native-close: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe | native-fsread: filename match "/usr/lib/libssl.so.*" then + native-connect: sockaddr match "inet-\\\[*\\\]:80" then p | native-read: permit + native-exit: permit | native-fsread: filename match "/usr/lib/libcrypto.so.*" t + native-fcntl: cmd eq "F_SETFD" then permit | native-fsread: filename match "/usr/lib/libncurses.so.*" + native-fsread: filename eq "/" then permit | native-fsread: filename match "/usr/lib/libc.so.*" then p + native-fsread: filename match "/: | native-munmap: permit + native-fsread: filename eq "/etc/lynx.cfg" then permit | native-sigprocmask: permit + native-fsread: filename eq "/etc/malloc.conf" then permit native-fsread: filename eq "/etc/malloc.conf" then permit + native-fsread: filename eq "/etc/resolv.conf" then permit | native-getpid: permit + native-fsread: filename eq "/etc/utmp" then permit < + native-fsread: filename eq "/home" then permit < + native-fsread: filename eq "$HOME" then permit < + native-fsread: filename eq "$HOME/.lynx-keymaps" then per < + native-fsread: filename eq "$HOME/.lynxrc" then permit < + native-fsread: filename eq "$HOME/.mailcap" then permit < + native-fsread: filename eq "$HOME/.mime.types" then permi < + native-fsread: filename eq "$HOME/.terminfo" then permit < + native-fsread: filename eq "$HOME/.terminfo.db" then perm < + native-fsread: filename eq "/obj" then permit < + native-fsread: filename eq "/tmp" then permit native-fsread: filename eq "/tmp" then permit + native-fsread: filename match "/tmp/lynx-*/." then permit native-fswrite: filename match "/tmp/lynx-*" then permit + ) native-fsread: filename match "/tmp/lynx-*/." then permit + > native-fsread: filename eq "$HOME" then permit + > native-fsread: filename eq "/etc/lynx.cfg" then permit + > native-fsread: filename eq "/" then permit + > native-fsread: filename eq "/usr/obj/bin/systrace/." then + > native-fsread: filename eq "/usr/obj/bin" then permit + > native-fcntl: permit + > native-getdirentries: permit + > native-lseek: permit + > native-fsread: filename eq "/usr/obj" then permit + native-fsread: filename eq "/usr" then permit native-fsread: filename eq "/usr" then permit + native-fsread: filename eq "/usr/bin" then permit native-fsread: filename eq "/usr/bin" then permit + native-fsread: filename eq "/usr/games" then permit native-fsread: filename eq "/usr/games" then permit + native-fsread: filename eq "/usr/include" then permit native-fsread: filename eq "/usr/include" then permit + native-fsread: filename eq "/usr/lib" then permit native-fsread: filename eq "/usr/lib" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then p native-fsread: filename eq "/usr/libdata" then permit + native-fsread: filename match "/usr/lib/libcrypto.so.*" t native-fsread: filename eq "/usr/libexec" then permit + native-fsread: filename match "/usr/lib/libncurses.so.*" native-fsread: filename eq "/usr/lkm" then permit + native-fsread: filename match "/usr/lib/libssl.so.*" then native-fsread: filename eq "/usr/local" then permit + native-fsread: filename eq "/usr/libdata" then permit native-fsread: filename eq "/usr/mdec" then permit + native-fsread: filename eq "/usr/libexec" then permit native-fsread: filename eq "/home" then permit + native-fsread: filename eq "/usr/lkm" then permit native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "/usr/local" then permit native-fsread: filename eq "$HOME/.lynxrc" then permit + native-fsread: filename eq "/usr/mdec" then permit native-fsread: filename match "/: + native-fsread: filename eq "/usr/obj" then permit native-fsread: filename eq "/usr/obj/bin/systrace/.mailca + native-fsread: filename eq "/usr/obj/bin" then permit native-fsread: filename eq "$HOME/.mailcap" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/." then native-fsread: filename eq "/usr/obj/bin/systrace/.mime.t + native-fsread: filename eq "/usr/obj/bin/systrace/.mailca ( + native-fsread: filename eq "/usr/obj/bin/systrace/.mime.t ( + > native-fsread: filename eq "$HOME/.mime.types" then permi + > native-sigaction: permit + > native-ioctl: permit + > native-fsread: filename eq "$HOME/.terminfo.db" then perm + > native-fsread: filename eq "$HOME/.terminfo" then permit + native-fsread: filename eq "/usr/share/misc/terminfo.db" native-fsread: filename eq "/usr/share/misc/terminfo.db" + > native-pread: permit + > native-write: permit + > native-fsread: filename eq "$HOME/.lynx-keymaps" then per + native-fsread: filename eq "/var/run/dev.db" then permit native-fsread: filename eq "/var/run/dev.db" then permit + native-fsread: filename eq "/var/run/ld.so.hints" then pe | native-fsread: filename eq "/etc/utmp" then permit + native-fstat: permit < + native-fswrite: filename match "/tmp/lynx-*" then permit < + native-getdirentries: permit < + native-getpid: permit < + native-gettimeofday: permit < + native-ioctl: permit < + native-issetugid: permit < + native-lseek: permit < + native-mmap: permit < + native-mprotect: prot eq "PROT_READ" then permit < + native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permi < + native-mprotect: prot eq "PROT_READ|PROT_WRITE" then perm < + native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" < + native-munmap: permit < + native-nanosleep: permit < + native-poll: permit native-poll: permit + native-pread: permit | native-nanosleep: permit + native-read: permit | native-gettimeofday: permit + native-recvfrom: permit | native-fsread: filename eq "/etc/resolv.conf" then permit + native-select: permit < + native-sendto: true then permit < + native-sigaction: permit < + native-sigprocmask: permit < + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK native-socket: sockdom eq "AF_INET" and socktype eq "SOCK + > native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe + > native-sendto: true then permit + > native-select: permit + > native-recvfrom: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK native-socket: sockdom eq "AF_INET" and socktype eq "SOCK + native-write: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then p + > native-exit: permit diff --git a/src/regress/usr.bin/sdiff/Iflag21.out b/src/regress/usr.bin/sdiff/Iflag21.out new file mode 100644 index 000000000..4e0d349b7 --- /dev/null +++ b/src/regress/usr.bin/sdiff/Iflag21.out @@ -0,0 +1,96 @@ +Policy: /usr/bin/lynx, Emulation: native Policy: /usr/bin/lynx, Emulation: native + native-issetugid: permit < + native-mprotect: permit < + native-mmap: permit < + native-__sysctl: permit native-__sysctl: permit + native-fsread: filename eq "/var/run/ld.so.hints" then pe < + native-fstat: permit < + native-close: permit native-close: permit + native-fsread: filename match "/usr/lib/libssl.so.*" then | native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe + native-read: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then p + native-fsread: filename match "/usr/lib/libcrypto.so.*" t | native-exit: permit + native-fsread: filename match "/usr/lib/libncurses.so.*" | native-fcntl: cmd eq "F_SETFD" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then p | native-fsread: filename eq "/" then permit + native-munmap: permit | native-fsread: filename match "/: + native-sigprocmask: permit | native-fsread: filename eq "/etc/lynx.cfg" then permit + native-fsread: filename eq "/etc/malloc.conf" then permit native-fsread: filename eq "/etc/malloc.conf" then permit + native-getpid: permit | native-fsread: filename eq "/etc/resolv.conf" then permit + > native-fsread: filename eq "/etc/utmp" then permit + > native-fsread: filename eq "/home" then permit + > native-fsread: filename eq "$HOME" then permit + > native-fsread: filename eq "$HOME/.lynx-keymaps" then per + > native-fsread: filename eq "$HOME/.lynxrc" then permit + > native-fsread: filename eq "$HOME/.mailcap" then permit + > native-fsread: filename eq "$HOME/.mime.types" then permi + > native-fsread: filename eq "$HOME/.terminfo" then permit + > native-fsread: filename eq "$HOME/.terminfo.db" then perm + > native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "/tmp" then permit native-fsread: filename eq "/tmp" then permit + native-fswrite: filename match "/tmp/lynx-*" then permit native-fsread: filename match "/tmp/lynx-*/." then permit + native-fsread: filename match "/tmp/lynx-*/." then permit ( + native-fsread: filename eq "$HOME" then permit < + native-fsread: filename eq "/etc/lynx.cfg" then permit < + native-fsread: filename eq "/" then permit < + native-fsread: filename eq "/usr/obj/bin/systrace/." then < + native-fsread: filename eq "/usr/obj/bin" then permit < + native-fcntl: permit < + native-getdirentries: permit < + native-lseek: permit < + native-fsread: filename eq "/usr/obj" then permit < + native-fsread: filename eq "/usr" then permit native-fsread: filename eq "/usr" then permit + native-fsread: filename eq "/usr/bin" then permit native-fsread: filename eq "/usr/bin" then permit + native-fsread: filename eq "/usr/games" then permit native-fsread: filename eq "/usr/games" then permit + native-fsread: filename eq "/usr/include" then permit native-fsread: filename eq "/usr/include" then permit + native-fsread: filename eq "/usr/lib" then permit native-fsread: filename eq "/usr/lib" then permit + native-fsread: filename eq "/usr/libdata" then permit native-fsread: filename match "/usr/lib/libc.so.*" then p + native-fsread: filename eq "/usr/libexec" then permit native-fsread: filename match "/usr/lib/libcrypto.so.*" t + native-fsread: filename eq "/usr/lkm" then permit native-fsread: filename match "/usr/lib/libncurses.so.*" + native-fsread: filename eq "/usr/local" then permit native-fsread: filename match "/usr/lib/libssl.so.*" then + native-fsread: filename eq "/usr/mdec" then permit native-fsread: filename eq "/usr/libdata" then permit + native-fsread: filename eq "/home" then permit native-fsread: filename eq "/usr/libexec" then permit + native-fsread: filename eq "/obj" then permit native-fsread: filename eq "/usr/lkm" then permit + native-fsread: filename eq "$HOME/.lynxrc" then permit native-fsread: filename eq "/usr/local" then permit + native-fsread: filename match "/: native-fsread: filename eq "/usr/mdec" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mailca native-fsread: filename eq "/usr/obj" then permit + native-fsread: filename eq "$HOME/.mailcap" then permit native-fsread: filename eq "/usr/obj/bin" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mime.t native-fsread: filename eq "/usr/obj/bin/systrace/." then + ) native-fsread: filename eq "/usr/obj/bin/systrace/.mailca + ) native-fsread: filename eq "/usr/obj/bin/systrace/.mime.t + native-fsread: filename eq "$HOME/.mime.types" then permi < + native-sigaction: permit < + native-ioctl: permit < + native-fsread: filename eq "$HOME/.terminfo.db" then perm < + native-fsread: filename eq "$HOME/.terminfo" then permit < + native-fsread: filename eq "/usr/share/misc/terminfo.db" native-fsread: filename eq "/usr/share/misc/terminfo.db" + native-pread: permit < + native-write: permit < + native-fsread: filename eq "$HOME/.lynx-keymaps" then per < + native-fsread: filename eq "/var/run/dev.db" then permit native-fsread: filename eq "/var/run/dev.db" then permit + native-fsread: filename eq "/etc/utmp" then permit | native-fsread: filename eq "/var/run/ld.so.hints" then pe + native-poll: permit | native-fstat: permit + native-nanosleep: permit | native-fswrite: filename match "/tmp/lynx-*" then permit + > native-getdirentries: permit + > native-getpid: permit + native-gettimeofday: permit native-gettimeofday: permit + native-fsread: filename eq "/etc/resolv.conf" then permit | native-ioctl: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK | native-issetugid: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe | native-lseek: permit + native-sendto: true then permit | native-mmap: permit + native-select: permit | native-mprotect: prot eq "PROT_READ" then permit + > native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permi + > native-mprotect: prot eq "PROT_READ|PROT_WRITE" then perm + > native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" + > native-munmap: permit + > native-nanosleep: permit + > native-poll: permit + > native-pread: permit + > native-read: permit + native-recvfrom: permit native-recvfrom: permit + > native-select: permit + > native-sendto: true then permit + > native-sigaction: permit + > native-sigprocmask: permit + > native-socket: sockdom eq "AF_INET" and socktype eq "SOCK + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK native-socket: sockdom eq "AF_INET" and socktype eq "SOCK + native-connect: sockaddr match "inet-\\\[*\\\]:80" then p | native-write: permit + native-exit: permit < diff --git a/src/regress/usr.bin/sdiff/Ilflag12.out b/src/regress/usr.bin/sdiff/Ilflag12.out new file mode 100644 index 000000000..e9ac88e54 --- /dev/null +++ b/src/regress/usr.bin/sdiff/Ilflag12.out @@ -0,0 +1,99 @@ +Policy: /usr/bin/lynx, Emulation: native ( + > native-issetugid: permit + > native-mprotect: permit + > native-mmap: permit + native-__sysctl: permit ( + > native-fsread: filename eq "/var/run/ld.so.hints" then pe + > native-fstat: permit + native-close: permit ( + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe | native-fsread: filename match "/usr/lib/libssl.so.*" then + native-connect: sockaddr match "inet-\\\[*\\\]:80" then p | native-read: permit + native-exit: permit | native-fsread: filename match "/usr/lib/libcrypto.so.*" t + native-fcntl: cmd eq "F_SETFD" then permit | native-fsread: filename match "/usr/lib/libncurses.so.*" + native-fsread: filename eq "/" then permit | native-fsread: filename match "/usr/lib/libc.so.*" then p + native-fsread: filename match "/: | native-munmap: permit + native-fsread: filename eq "/etc/lynx.cfg" then permit | native-sigprocmask: permit + native-fsread: filename eq "/etc/malloc.conf" then permit ( + native-fsread: filename eq "/etc/resolv.conf" then permit | native-getpid: permit + native-fsread: filename eq "/etc/utmp" then permit < + native-fsread: filename eq "/home" then permit < + native-fsread: filename eq "$HOME" then permit < + native-fsread: filename eq "$HOME/.lynx-keymaps" then per < + native-fsread: filename eq "$HOME/.lynxrc" then permit < + native-fsread: filename eq "$HOME/.mailcap" then permit < + native-fsread: filename eq "$HOME/.mime.types" then permi < + native-fsread: filename eq "$HOME/.terminfo" then permit < + native-fsread: filename eq "$HOME/.terminfo.db" then perm < + native-fsread: filename eq "/obj" then permit < + native-fsread: filename eq "/tmp" then permit ( + native-fsread: filename match "/tmp/lynx-*/." then permit ( + > native-fsread: filename eq "$HOME" then permit + > native-fsread: filename eq "/etc/lynx.cfg" then permit + > native-fsread: filename eq "/" then permit + > native-fsread: filename eq "/usr/obj/bin/systrace/." then + > native-fsread: filename eq "/usr/obj/bin" then permit + > native-fcntl: permit + > native-getdirentries: permit + > native-lseek: permit + > native-fsread: filename eq "/usr/obj" then permit + native-fsread: filename eq "/usr" then permit ( + native-fsread: filename eq "/usr/bin" then permit ( + native-fsread: filename eq "/usr/games" then permit ( + native-fsread: filename eq "/usr/include" then permit ( + native-fsread: filename eq "/usr/lib" then permit ( + native-fsread: filename match "/usr/lib/libc.so.*" then p ( + native-fsread: filename match "/usr/lib/libcrypto.so.*" t ( + native-fsread: filename match "/usr/lib/libncurses.so.*" ( + native-fsread: filename match "/usr/lib/libssl.so.*" then ( + native-fsread: filename eq "/usr/libdata" then permit ( + native-fsread: filename eq "/usr/libexec" then permit ( + native-fsread: filename eq "/usr/lkm" then permit ( + native-fsread: filename eq "/usr/local" then permit ( + native-fsread: filename eq "/usr/mdec" then permit ( + native-fsread: filename eq "/usr/obj" then permit ( + native-fsread: filename eq "/usr/obj/bin" then permit ( + native-fsread: filename eq "/usr/obj/bin/systrace/." then ( + native-fsread: filename eq "/usr/obj/bin/systrace/.mailca ( + native-fsread: filename eq "/usr/obj/bin/systrace/.mime.t ( + > native-fsread: filename eq "$HOME/.mime.types" then permi + > native-sigaction: permit + > native-ioctl: permit + > native-fsread: filename eq "$HOME/.terminfo.db" then perm + > native-fsread: filename eq "$HOME/.terminfo" then permit + native-fsread: filename eq "/usr/share/misc/terminfo.db" ( + > native-pread: permit + > native-write: permit + > native-fsread: filename eq "$HOME/.lynx-keymaps" then per + native-fsread: filename eq "/var/run/dev.db" then permit ( + native-fsread: filename eq "/var/run/ld.so.hints" then pe | native-fsread: filename eq "/etc/utmp" then permit + native-fstat: permit < + native-fswrite: filename match "/tmp/lynx-*" then permit < + native-getdirentries: permit < + native-getpid: permit < + native-gettimeofday: permit < + native-ioctl: permit < + native-issetugid: permit < + native-lseek: permit < + native-mmap: permit < + native-mprotect: prot eq "PROT_READ" then permit < + native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permi < + native-mprotect: prot eq "PROT_READ|PROT_WRITE" then perm < + native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" < + native-munmap: permit < + native-nanosleep: permit < + native-poll: permit ( + native-pread: permit | native-nanosleep: permit + native-read: permit | native-gettimeofday: permit + native-recvfrom: permit | native-fsread: filename eq "/etc/resolv.conf" then permit + native-select: permit < + native-sendto: true then permit < + native-sigaction: permit < + native-sigprocmask: permit < + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK ( + > native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe + > native-sendto: true then permit + > native-select: permit + > native-recvfrom: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK ( + native-write: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then p + > native-exit: permit diff --git a/src/regress/usr.bin/sdiff/Ilflag21.out b/src/regress/usr.bin/sdiff/Ilflag21.out new file mode 100644 index 000000000..fe7af0ebe --- /dev/null +++ b/src/regress/usr.bin/sdiff/Ilflag21.out @@ -0,0 +1,94 @@ +Policy: /usr/bin/lynx, Emulation: native ( + native-issetugid: permit < + native-mprotect: permit < + native-mmap: permit < + native-__sysctl: permit ( + native-fsread: filename eq "/var/run/ld.so.hints" then pe < + native-fstat: permit < + native-close: permit ( + native-fsread: filename match "/usr/lib/libssl.so.*" then | native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe + native-read: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then p + native-fsread: filename match "/usr/lib/libcrypto.so.*" t | native-exit: permit + native-fsread: filename match "/usr/lib/libncurses.so.*" | native-fcntl: cmd eq "F_SETFD" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then p | native-fsread: filename eq "/" then permit + native-munmap: permit | native-fsread: filename match "/: + native-sigprocmask: permit | native-fsread: filename eq "/etc/lynx.cfg" then permit + native-fsread: filename eq "/etc/malloc.conf" then permit ( + native-getpid: permit | native-fsread: filename eq "/etc/resolv.conf" then permit + > native-fsread: filename eq "/etc/utmp" then permit + > native-fsread: filename eq "/home" then permit + > native-fsread: filename eq "$HOME" then permit + > native-fsread: filename eq "$HOME/.lynx-keymaps" then per + > native-fsread: filename eq "$HOME/.lynxrc" then permit + > native-fsread: filename eq "$HOME/.mailcap" then permit + > native-fsread: filename eq "$HOME/.mime.types" then permi + > native-fsread: filename eq "$HOME/.terminfo" then permit + > native-fsread: filename eq "$HOME/.terminfo.db" then perm + > native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "/tmp" then permit ( + native-fswrite: filename match "/tmp/lynx-*" then permit ( + native-fsread: filename match "/tmp/lynx-*/." then permit ( + native-fsread: filename eq "$HOME" then permit < + native-fsread: filename eq "/etc/lynx.cfg" then permit < + native-fsread: filename eq "/" then permit < + native-fsread: filename eq "/usr/obj/bin/systrace/." then < + native-fsread: filename eq "/usr/obj/bin" then permit < + native-fcntl: permit < + native-getdirentries: permit < + native-lseek: permit < + native-fsread: filename eq "/usr/obj" then permit < + native-fsread: filename eq "/usr" then permit ( + native-fsread: filename eq "/usr/bin" then permit ( + native-fsread: filename eq "/usr/games" then permit ( + native-fsread: filename eq "/usr/include" then permit ( + native-fsread: filename eq "/usr/lib" then permit ( + native-fsread: filename eq "/usr/libdata" then permit ( + native-fsread: filename eq "/usr/libexec" then permit ( + native-fsread: filename eq "/usr/lkm" then permit ( + native-fsread: filename eq "/usr/local" then permit ( + native-fsread: filename eq "/usr/mdec" then permit ( + native-fsread: filename eq "/home" then permit ( + native-fsread: filename eq "/obj" then permit ( + native-fsread: filename eq "$HOME/.lynxrc" then permit ( + native-fsread: filename match "/: ( + native-fsread: filename eq "/usr/obj/bin/systrace/.mailca ( + native-fsread: filename eq "$HOME/.mailcap" then permit ( + native-fsread: filename eq "/usr/obj/bin/systrace/.mime.t ( + native-fsread: filename eq "$HOME/.mime.types" then permi < + native-sigaction: permit < + native-ioctl: permit < + native-fsread: filename eq "$HOME/.terminfo.db" then perm < + native-fsread: filename eq "$HOME/.terminfo" then permit < + native-fsread: filename eq "/usr/share/misc/terminfo.db" ( + native-pread: permit < + native-write: permit < + native-fsread: filename eq "$HOME/.lynx-keymaps" then per < + native-fsread: filename eq "/var/run/dev.db" then permit ( + native-fsread: filename eq "/etc/utmp" then permit | native-fsread: filename eq "/var/run/ld.so.hints" then pe + native-poll: permit | native-fstat: permit + native-nanosleep: permit | native-fswrite: filename match "/tmp/lynx-*" then permit + > native-getdirentries: permit + > native-getpid: permit + native-gettimeofday: permit ( + native-fsread: filename eq "/etc/resolv.conf" then permit | native-ioctl: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK | native-issetugid: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe | native-lseek: permit + native-sendto: true then permit | native-mmap: permit + native-select: permit | native-mprotect: prot eq "PROT_READ" then permit + > native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permi + > native-mprotect: prot eq "PROT_READ|PROT_WRITE" then perm + > native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" + > native-munmap: permit + > native-nanosleep: permit + > native-poll: permit + > native-pread: permit + > native-read: permit + native-recvfrom: permit ( + > native-select: permit + > native-sendto: true then permit + > native-sigaction: permit + > native-sigprocmask: permit + > native-socket: sockdom eq "AF_INET" and socktype eq "SOCK + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK ( + native-connect: sockaddr match "inet-\\\[*\\\]:80" then p | native-write: permit + native-exit: permit < diff --git a/src/regress/usr.bin/sdiff/Ilsflag12.out b/src/regress/usr.bin/sdiff/Ilsflag12.out new file mode 100644 index 000000000..3e548b693 --- /dev/null +++ b/src/regress/usr.bin/sdiff/Ilsflag12.out @@ -0,0 +1,69 @@ + > native-issetugid: permit + > native-mprotect: permit + > native-mmap: permit + > native-fsread: filename eq "/var/run/ld.so.hints" then pe + > native-fstat: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe | native-fsread: filename match "/usr/lib/libssl.so.*" then + native-connect: sockaddr match "inet-\\\[*\\\]:80" then p | native-read: permit + native-exit: permit | native-fsread: filename match "/usr/lib/libcrypto.so.*" t + native-fcntl: cmd eq "F_SETFD" then permit | native-fsread: filename match "/usr/lib/libncurses.so.*" + native-fsread: filename eq "/" then permit | native-fsread: filename match "/usr/lib/libc.so.*" then p + native-fsread: filename match "/: | native-munmap: permit + native-fsread: filename eq "/etc/lynx.cfg" then permit | native-sigprocmask: permit + native-fsread: filename eq "/etc/resolv.conf" then permit | native-getpid: permit + native-fsread: filename eq "/etc/utmp" then permit < + native-fsread: filename eq "/home" then permit < + native-fsread: filename eq "$HOME" then permit < + native-fsread: filename eq "$HOME/.lynx-keymaps" then per < + native-fsread: filename eq "$HOME/.lynxrc" then permit < + native-fsread: filename eq "$HOME/.mailcap" then permit < + native-fsread: filename eq "$HOME/.mime.types" then permi < + native-fsread: filename eq "$HOME/.terminfo" then permit < + native-fsread: filename eq "$HOME/.terminfo.db" then perm < + native-fsread: filename eq "/obj" then permit < + > native-fsread: filename eq "$HOME" then permit + > native-fsread: filename eq "/etc/lynx.cfg" then permit + > native-fsread: filename eq "/" then permit + > native-fsread: filename eq "/usr/obj/bin/systrace/." then + > native-fsread: filename eq "/usr/obj/bin" then permit + > native-fcntl: permit + > native-getdirentries: permit + > native-lseek: permit + > native-fsread: filename eq "/usr/obj" then permit + > native-fsread: filename eq "$HOME/.mime.types" then permi + > native-sigaction: permit + > native-ioctl: permit + > native-fsread: filename eq "$HOME/.terminfo.db" then perm + > native-fsread: filename eq "$HOME/.terminfo" then permit + > native-pread: permit + > native-write: permit + > native-fsread: filename eq "$HOME/.lynx-keymaps" then per + native-fsread: filename eq "/var/run/ld.so.hints" then pe | native-fsread: filename eq "/etc/utmp" then permit + native-fstat: permit < + native-fswrite: filename match "/tmp/lynx-*" then permit < + native-getdirentries: permit < + native-getpid: permit < + native-gettimeofday: permit < + native-ioctl: permit < + native-issetugid: permit < + native-lseek: permit < + native-mmap: permit < + native-mprotect: prot eq "PROT_READ" then permit < + native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permi < + native-mprotect: prot eq "PROT_READ|PROT_WRITE" then perm < + native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" < + native-munmap: permit < + native-nanosleep: permit < + native-pread: permit | native-nanosleep: permit + native-read: permit | native-gettimeofday: permit + native-recvfrom: permit | native-fsread: filename eq "/etc/resolv.conf" then permit + native-select: permit < + native-sendto: true then permit < + native-sigaction: permit < + native-sigprocmask: permit < + > native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe + > native-sendto: true then permit + > native-select: permit + > native-recvfrom: permit + native-write: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then p + > native-exit: permit diff --git a/src/regress/usr.bin/sdiff/Ilsflag21.out b/src/regress/usr.bin/sdiff/Ilsflag21.out new file mode 100644 index 000000000..4504c36ec --- /dev/null +++ b/src/regress/usr.bin/sdiff/Ilsflag21.out @@ -0,0 +1,65 @@ + native-issetugid: permit < + native-mprotect: permit < + native-mmap: permit < + native-fsread: filename eq "/var/run/ld.so.hints" then pe < + native-fstat: permit < + native-fsread: filename match "/usr/lib/libssl.so.*" then | native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe + native-read: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then p + native-fsread: filename match "/usr/lib/libcrypto.so.*" t | native-exit: permit + native-fsread: filename match "/usr/lib/libncurses.so.*" | native-fcntl: cmd eq "F_SETFD" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then p | native-fsread: filename eq "/" then permit + native-munmap: permit | native-fsread: filename match "/: + native-sigprocmask: permit | native-fsread: filename eq "/etc/lynx.cfg" then permit + native-getpid: permit | native-fsread: filename eq "/etc/resolv.conf" then permit + > native-fsread: filename eq "/etc/utmp" then permit + > native-fsread: filename eq "/home" then permit + > native-fsread: filename eq "$HOME" then permit + > native-fsread: filename eq "$HOME/.lynx-keymaps" then per + > native-fsread: filename eq "$HOME/.lynxrc" then permit + > native-fsread: filename eq "$HOME/.mailcap" then permit + > native-fsread: filename eq "$HOME/.mime.types" then permi + > native-fsread: filename eq "$HOME/.terminfo" then permit + > native-fsread: filename eq "$HOME/.terminfo.db" then perm + > native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "$HOME" then permit < + native-fsread: filename eq "/etc/lynx.cfg" then permit < + native-fsread: filename eq "/" then permit < + native-fsread: filename eq "/usr/obj/bin/systrace/." then < + native-fsread: filename eq "/usr/obj/bin" then permit < + native-fcntl: permit < + native-getdirentries: permit < + native-lseek: permit < + native-fsread: filename eq "/usr/obj" then permit < + native-fsread: filename eq "$HOME/.mime.types" then permi < + native-sigaction: permit < + native-ioctl: permit < + native-fsread: filename eq "$HOME/.terminfo.db" then perm < + native-fsread: filename eq "$HOME/.terminfo" then permit < + native-pread: permit < + native-write: permit < + native-fsread: filename eq "$HOME/.lynx-keymaps" then per < + native-fsread: filename eq "/etc/utmp" then permit | native-fsread: filename eq "/var/run/ld.so.hints" then pe + native-poll: permit | native-fstat: permit + native-nanosleep: permit | native-fswrite: filename match "/tmp/lynx-*" then permit + > native-getdirentries: permit + > native-getpid: permit + native-fsread: filename eq "/etc/resolv.conf" then permit | native-ioctl: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK | native-issetugid: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe | native-lseek: permit + native-sendto: true then permit | native-mmap: permit + native-select: permit | native-mprotect: prot eq "PROT_READ" then permit + > native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permi + > native-mprotect: prot eq "PROT_READ|PROT_WRITE" then perm + > native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" + > native-munmap: permit + > native-nanosleep: permit + > native-poll: permit + > native-pread: permit + > native-read: permit + > native-select: permit + > native-sendto: true then permit + > native-sigaction: permit + > native-sigprocmask: permit + > native-socket: sockdom eq "AF_INET" and socktype eq "SOCK + native-connect: sockaddr match "inet-\\\[*\\\]:80" then p | native-write: permit + native-exit: permit < diff --git a/src/regress/usr.bin/sdiff/Isflag12.out b/src/regress/usr.bin/sdiff/Isflag12.out new file mode 100644 index 000000000..3e548b693 --- /dev/null +++ b/src/regress/usr.bin/sdiff/Isflag12.out @@ -0,0 +1,69 @@ + > native-issetugid: permit + > native-mprotect: permit + > native-mmap: permit + > native-fsread: filename eq "/var/run/ld.so.hints" then pe + > native-fstat: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe | native-fsread: filename match "/usr/lib/libssl.so.*" then + native-connect: sockaddr match "inet-\\\[*\\\]:80" then p | native-read: permit + native-exit: permit | native-fsread: filename match "/usr/lib/libcrypto.so.*" t + native-fcntl: cmd eq "F_SETFD" then permit | native-fsread: filename match "/usr/lib/libncurses.so.*" + native-fsread: filename eq "/" then permit | native-fsread: filename match "/usr/lib/libc.so.*" then p + native-fsread: filename match "/: | native-munmap: permit + native-fsread: filename eq "/etc/lynx.cfg" then permit | native-sigprocmask: permit + native-fsread: filename eq "/etc/resolv.conf" then permit | native-getpid: permit + native-fsread: filename eq "/etc/utmp" then permit < + native-fsread: filename eq "/home" then permit < + native-fsread: filename eq "$HOME" then permit < + native-fsread: filename eq "$HOME/.lynx-keymaps" then per < + native-fsread: filename eq "$HOME/.lynxrc" then permit < + native-fsread: filename eq "$HOME/.mailcap" then permit < + native-fsread: filename eq "$HOME/.mime.types" then permi < + native-fsread: filename eq "$HOME/.terminfo" then permit < + native-fsread: filename eq "$HOME/.terminfo.db" then perm < + native-fsread: filename eq "/obj" then permit < + > native-fsread: filename eq "$HOME" then permit + > native-fsread: filename eq "/etc/lynx.cfg" then permit + > native-fsread: filename eq "/" then permit + > native-fsread: filename eq "/usr/obj/bin/systrace/." then + > native-fsread: filename eq "/usr/obj/bin" then permit + > native-fcntl: permit + > native-getdirentries: permit + > native-lseek: permit + > native-fsread: filename eq "/usr/obj" then permit + > native-fsread: filename eq "$HOME/.mime.types" then permi + > native-sigaction: permit + > native-ioctl: permit + > native-fsread: filename eq "$HOME/.terminfo.db" then perm + > native-fsread: filename eq "$HOME/.terminfo" then permit + > native-pread: permit + > native-write: permit + > native-fsread: filename eq "$HOME/.lynx-keymaps" then per + native-fsread: filename eq "/var/run/ld.so.hints" then pe | native-fsread: filename eq "/etc/utmp" then permit + native-fstat: permit < + native-fswrite: filename match "/tmp/lynx-*" then permit < + native-getdirentries: permit < + native-getpid: permit < + native-gettimeofday: permit < + native-ioctl: permit < + native-issetugid: permit < + native-lseek: permit < + native-mmap: permit < + native-mprotect: prot eq "PROT_READ" then permit < + native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permi < + native-mprotect: prot eq "PROT_READ|PROT_WRITE" then perm < + native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" < + native-munmap: permit < + native-nanosleep: permit < + native-pread: permit | native-nanosleep: permit + native-read: permit | native-gettimeofday: permit + native-recvfrom: permit | native-fsread: filename eq "/etc/resolv.conf" then permit + native-select: permit < + native-sendto: true then permit < + native-sigaction: permit < + native-sigprocmask: permit < + > native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe + > native-sendto: true then permit + > native-select: permit + > native-recvfrom: permit + native-write: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then p + > native-exit: permit diff --git a/src/regress/usr.bin/sdiff/Isflag21.out b/src/regress/usr.bin/sdiff/Isflag21.out new file mode 100644 index 000000000..4504c36ec --- /dev/null +++ b/src/regress/usr.bin/sdiff/Isflag21.out @@ -0,0 +1,65 @@ + native-issetugid: permit < + native-mprotect: permit < + native-mmap: permit < + native-fsread: filename eq "/var/run/ld.so.hints" then pe < + native-fstat: permit < + native-fsread: filename match "/usr/lib/libssl.so.*" then | native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe + native-read: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then p + native-fsread: filename match "/usr/lib/libcrypto.so.*" t | native-exit: permit + native-fsread: filename match "/usr/lib/libncurses.so.*" | native-fcntl: cmd eq "F_SETFD" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then p | native-fsread: filename eq "/" then permit + native-munmap: permit | native-fsread: filename match "/: + native-sigprocmask: permit | native-fsread: filename eq "/etc/lynx.cfg" then permit + native-getpid: permit | native-fsread: filename eq "/etc/resolv.conf" then permit + > native-fsread: filename eq "/etc/utmp" then permit + > native-fsread: filename eq "/home" then permit + > native-fsread: filename eq "$HOME" then permit + > native-fsread: filename eq "$HOME/.lynx-keymaps" then per + > native-fsread: filename eq "$HOME/.lynxrc" then permit + > native-fsread: filename eq "$HOME/.mailcap" then permit + > native-fsread: filename eq "$HOME/.mime.types" then permi + > native-fsread: filename eq "$HOME/.terminfo" then permit + > native-fsread: filename eq "$HOME/.terminfo.db" then perm + > native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "$HOME" then permit < + native-fsread: filename eq "/etc/lynx.cfg" then permit < + native-fsread: filename eq "/" then permit < + native-fsread: filename eq "/usr/obj/bin/systrace/." then < + native-fsread: filename eq "/usr/obj/bin" then permit < + native-fcntl: permit < + native-getdirentries: permit < + native-lseek: permit < + native-fsread: filename eq "/usr/obj" then permit < + native-fsread: filename eq "$HOME/.mime.types" then permi < + native-sigaction: permit < + native-ioctl: permit < + native-fsread: filename eq "$HOME/.terminfo.db" then perm < + native-fsread: filename eq "$HOME/.terminfo" then permit < + native-pread: permit < + native-write: permit < + native-fsread: filename eq "$HOME/.lynx-keymaps" then per < + native-fsread: filename eq "/etc/utmp" then permit | native-fsread: filename eq "/var/run/ld.so.hints" then pe + native-poll: permit | native-fstat: permit + native-nanosleep: permit | native-fswrite: filename match "/tmp/lynx-*" then permit + > native-getdirentries: permit + > native-getpid: permit + native-fsread: filename eq "/etc/resolv.conf" then permit | native-ioctl: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK | native-issetugid: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe | native-lseek: permit + native-sendto: true then permit | native-mmap: permit + native-select: permit | native-mprotect: prot eq "PROT_READ" then permit + > native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permi + > native-mprotect: prot eq "PROT_READ|PROT_WRITE" then perm + > native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" + > native-munmap: permit + > native-nanosleep: permit + > native-poll: permit + > native-pread: permit + > native-read: permit + > native-select: permit + > native-sendto: true then permit + > native-sigaction: permit + > native-sigprocmask: permit + > native-socket: sockdom eq "AF_INET" and socktype eq "SOCK + native-connect: sockaddr match "inet-\\\[*\\\]:80" then p | native-write: permit + native-exit: permit < diff --git a/src/regress/usr.bin/sdiff/Makefile b/src/regress/usr.bin/sdiff/Makefile new file mode 100644 index 000000000..567f1f26e --- /dev/null +++ b/src/regress/usr.bin/sdiff/Makefile @@ -0,0 +1,145 @@ +# $OpenBSD: Makefile,v 1.2 2006/03/05 07:13:11 otto Exp $ + +SDIFF?=sdiff +REGRESS_TARGETS=test-lflag test-sflag test-wflag \ + test-tabs test-tabends test-tabends2 test-tabends3 \ + test-merge test-merge2 test-merge3 test-merge4 test-merge5 \ + test-merge6 test-merge7 test-merge8 test-merge9 test-merge10 \ + test-merge11 test-merge12 test-same test-oneline test-oneline2 \ + test-dot test-dot2 test-short test-stdin test-stdin2 \ + test-Iflag12 test-Iflag21 test-Isflag12 test-Isflag21 \ + test-Ilflag12 test-Ilflag21 test-Ilsflag12 test-Ilsflag21 + +test-Iflag12: file1 file2 Iflag12.out + ${SDIFF} -w 125 -I '.*filename.*' ${.CURDIR}/file1 ${.CURDIR}/file2 | \ + diff -u - ${.CURDIR}/Iflag12.out + +test-Iflag21: file1 file2 Iflag21.out + ${SDIFF} -w 125 -I '.*filename.*' ${.CURDIR}/file2 ${.CURDIR}/file1 | \ + diff -u - ${.CURDIR}/Iflag21.out + +test-Isflag12: file1 file2 Isflag12.out + ${SDIFF} -sw 125 -I '.*filename.*' ${.CURDIR}/file1 ${.CURDIR}/file2 | \ + diff -u - ${.CURDIR}/Isflag12.out + +test-Isflag21: file1 file2 Isflag21.out + ${SDIFF} -sw 125 -I '.*filename.*' ${.CURDIR}/file2 ${.CURDIR}/file1 | \ + diff -u - ${.CURDIR}/Isflag21.out + +test-Ilflag12: file1 file2 Ilflag12.out + ${SDIFF} -lw 125 -I '.*filename.*' ${.CURDIR}/file1 ${.CURDIR}/file2 | \ + diff -u - ${.CURDIR}/Ilflag12.out + +test-Ilflag21: file1 file2 Ilflag21.out + ${SDIFF} -lw 125 -I '.*filename.*' ${.CURDIR}/file2 ${.CURDIR}/file1 | \ + diff -u - ${.CURDIR}/Ilflag21.out + +test-Ilsflag12: file1 file2 Ilsflag12.out + ${SDIFF} -sw 125 -I '.*filename.*' ${.CURDIR}/file1 ${.CURDIR}/file2 | \ + diff -u - ${.CURDIR}/Ilsflag12.out + +test-Ilsflag21: file1 file2 Ilsflag21.out + ${SDIFF} -sw 125 -I '.*filename.*' ${.CURDIR}/file2 ${.CURDIR}/file1 | \ + diff -u - ${.CURDIR}/Ilsflag21.out + +test-lflag: file1 file2 lflag.out + ${SDIFF} -l ${.CURDIR}/file1 ${.CURDIR}/file2 | diff -u ${.CURDIR}/lflag.out - + +test-sflag: file1 file2 sflag.out + ${SDIFF} -s ${.CURDIR}/file1 ${.CURDIR}/file2 | diff -u ${.CURDIR}/sflag.out - + +test-wflag: file1 file2 wflag.out + ${SDIFF} -w 125 ${.CURDIR}/file1 ${.CURDIR}/file2 | diff -u ${.CURDIR}/wflag.out - + +test-tabs: tabs1 tabs2 tabs.out + ${SDIFF} ${.CURDIR}/tabs1 ${.CURDIR}/tabs2 | diff -u ${.CURDIR}/tabs.out - + +test-tabends: tabends tabends.out + ${SDIFF} -w30 ${.CURDIR}/tabends /dev/null | diff -u ${.CURDIR}/tabends.out - + +test-tabends2: tabends tabends2.out + ${SDIFF} -w30 /dev/null ${.CURDIR}/tabends | diff -u ${.CURDIR}/tabends2.out - + +test-tabends3: tabends tabends3.out + ${SDIFF} -w19 ${.CURDIR}/tabends /dev/null | diff -u ${.CURDIR}/tabends3.out - + +test-merge: file1 file2 + yes l | ${SDIFF} -o merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 >/dev/null || true + diff -u ${.CURDIR}/file1 merge.out + +test-merge2: file1 file2 + yes r | ${SDIFF} -o merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 >/dev/null || true + diff -u ${.CURDIR}/file2 merge.out + +test-merge3: file1 file2 + yes el | VISUAL=cat ${SDIFF} -o merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 >/dev/null || true + diff -u ${.CURDIR}/file1 merge.out + +test-merge4: file1 file2 + yes er | VISUAL=cat ${SDIFF} -o merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 >/dev/null || true + diff -u ${.CURDIR}/file2 merge.out + +test-merge5: file1 file2 + yes l | ${SDIFF} -so merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 >/dev/null || true + diff -u ${.CURDIR}/file1 merge.out + +test-merge6: file1 file2 + yes r | ${SDIFF} -so merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 >/dev/null || true + diff -u ${.CURDIR}/file2 merge.out + +test-merge7: file1 file2 + yes l | ${SDIFF} -lo merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 >/dev/null || true + diff -u ${.CURDIR}/file1 merge.out + +test-merge8: file1 file2 + yes r | ${SDIFF} -lo merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 >/dev/null || true + diff -u ${.CURDIR}/file2 merge.out + +test-merge9: file1 file2 + yes l | ${SDIFF} -lso merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 >/dev/null || true + diff -u ${.CURDIR}/file1 merge.out + +test-merge10: file1 file2 + yes r | ${SDIFF} -lso merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 >/dev/null || true + diff -u ${.CURDIR}/file2 merge.out + +test-merge11: file1 file2 + { while :; do echo s;echo l;echo v;echo l;done; } | \ + ${SDIFF} -o merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 >/dev/null || true + diff -u ${.CURDIR}/file1 merge.out + +test-merge12: file1 file2 + { while :; do echo s;echo r;echo v;echo r;done; } | \ + ${SDIFF} -o merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 >/dev/null || true + diff -u ${.CURDIR}/file2 merge.out + +test-same: file1 + ${SDIFF} ${.CURDIR}/file1 ${.CURDIR}/file1 | diff -u ${.CURDIR}/same.out - + +test-oneline: oneline.in + ${SDIFF} /dev/null ${.CURDIR}/oneline.in | fgrep -q abcd + +test-oneline2: oneline.in + ${SDIFF} ${.CURDIR}/oneline.in /dev/null | fgrep -q abcd + +test-dot: + ${SDIFF} /dev/null ${.CURDIR}/dot.in | fgrep -q '> .' + +test-dot2: + ${SDIFF} ${.CURDIR}/dot.in /dev/null | fgrep -q . + +test-stdin: + echo stdin | ${SDIFF} /dev/null /dev/stdin | fgrep -q '> stdin' + +test-stdin2: + echo stdin | ${SDIFF} /dev/stdin /dev/null | fgrep -q stdin + +test-short: short.out + echo "r\nl\nr\nl" | ${SDIFF} -o merge.out ${.CURDIR}/file1 ${.CURDIR}/file2 \ + >/dev/null || true + diff -u ${.CURDIR}/short.out merge.out + +clean: + rm -f merge.out + +.include diff --git a/src/regress/usr.bin/sdiff/dot.in b/src/regress/usr.bin/sdiff/dot.in new file mode 100644 index 000000000..9c558e357 --- /dev/null +++ b/src/regress/usr.bin/sdiff/dot.in @@ -0,0 +1 @@ +. diff --git a/src/regress/usr.bin/sdiff/file1 b/src/regress/usr.bin/sdiff/file1 new file mode 100644 index 000000000..686e8ea22 --- /dev/null +++ b/src/regress/usr.bin/sdiff/file1 @@ -0,0 +1,72 @@ +Policy: /usr/bin/lynx, Emulation: native + native-__sysctl: permit + native-close: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then permit + native-connect: sockaddr match "inet-\\\[*\\\]:80" then permit + native-exit: permit + native-fcntl: cmd eq "F_SETFD" then permit + native-fsread: filename eq "/" then permit + native-fsread: filename match "/: *" then permit + native-fsread: filename eq "/etc/lynx.cfg" then permit + native-fsread: filename eq "/etc/malloc.conf" then permit + native-fsread: filename eq "/etc/resolv.conf" then permit + native-fsread: filename eq "/etc/utmp" then permit + native-fsread: filename eq "/home" then permit + native-fsread: filename eq "$HOME" then permit + native-fsread: filename eq "$HOME/.lynx-keymaps" then permit + native-fsread: filename eq "$HOME/.lynxrc" then permit + native-fsread: filename eq "$HOME/.mailcap" then permit + native-fsread: filename eq "$HOME/.mime.types" then permit + native-fsread: filename eq "$HOME/.terminfo" then permit + native-fsread: filename eq "$HOME/.terminfo.db" then permit + native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "/tmp" then permit + native-fsread: filename match "/tmp/lynx-*/." then permit + native-fsread: filename eq "/usr" then permit + native-fsread: filename eq "/usr/bin" then permit + native-fsread: filename eq "/usr/games" then permit + native-fsread: filename eq "/usr/include" then permit + native-fsread: filename eq "/usr/lib" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then permit + native-fsread: filename match "/usr/lib/libcrypto.so.*" then permit + native-fsread: filename match "/usr/lib/libncurses.so.*" then permit + native-fsread: filename match "/usr/lib/libssl.so.*" then permit + native-fsread: filename eq "/usr/libdata" then permit + native-fsread: filename eq "/usr/libexec" then permit + native-fsread: filename eq "/usr/lkm" then permit + native-fsread: filename eq "/usr/local" then permit + native-fsread: filename eq "/usr/mdec" then permit + native-fsread: filename eq "/usr/obj" then permit + native-fsread: filename eq "/usr/obj/bin" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/." then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mailcap" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mime.types" then permit + native-fsread: filename eq "/usr/share/misc/terminfo.db" then permit + native-fsread: filename eq "/var/run/dev.db" then permit + native-fsread: filename eq "/var/run/ld.so.hints" then permit + native-fstat: permit + native-fswrite: filename match "/tmp/lynx-*" then permit + native-getdirentries: permit + native-getpid: permit + native-gettimeofday: permit + native-ioctl: permit + native-issetugid: permit + native-lseek: permit + native-mmap: permit + native-mprotect: prot eq "PROT_READ" then permit + native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permit + native-mprotect: prot eq "PROT_READ|PROT_WRITE" then permit + native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" then permit + native-munmap: permit + native-nanosleep: permit + native-poll: permit + native-pread: permit + native-read: permit + native-recvfrom: permit + native-select: permit + native-sendto: true then permit + native-sigaction: permit + native-sigprocmask: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_DGRAM" then permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_STREAM" then permit + native-write: permit diff --git a/src/regress/usr.bin/sdiff/file2 b/src/regress/usr.bin/sdiff/file2 new file mode 100644 index 000000000..70e1b57f5 --- /dev/null +++ b/src/regress/usr.bin/sdiff/file2 @@ -0,0 +1,69 @@ +Policy: /usr/bin/lynx, Emulation: native + native-issetugid: permit + native-mprotect: permit + native-mmap: permit + native-__sysctl: permit + native-fsread: filename eq "/var/run/ld.so.hints" then permit + native-fstat: permit + native-close: permit + native-fsread: filename match "/usr/lib/libssl.so.*" then permit + native-read: permit + native-fsread: filename match "/usr/lib/libcrypto.so.*" then permit + native-fsread: filename match "/usr/lib/libncurses.so.*" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then permit + native-munmap: permit + native-sigprocmask: permit + native-fsread: filename eq "/etc/malloc.conf" then permit + native-getpid: permit + native-fsread: filename eq "/tmp" then permit + native-fswrite: filename match "/tmp/lynx-*" then permit + native-fsread: filename match "/tmp/lynx-*/." then permit + native-fsread: filename eq "$HOME" then permit + native-fsread: filename eq "/etc/lynx.cfg" then permit + native-fsread: filename eq "/" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/." then permit + native-fsread: filename eq "/usr/obj/bin" then permit + native-fcntl: permit + native-getdirentries: permit + native-lseek: permit + native-fsread: filename eq "/usr/obj" then permit + native-fsread: filename eq "/usr" then permit + native-fsread: filename eq "/usr/bin" then permit + native-fsread: filename eq "/usr/games" then permit + native-fsread: filename eq "/usr/include" then permit + native-fsread: filename eq "/usr/lib" then permit + native-fsread: filename eq "/usr/libdata" then permit + native-fsread: filename eq "/usr/libexec" then permit + native-fsread: filename eq "/usr/lkm" then permit + native-fsread: filename eq "/usr/local" then permit + native-fsread: filename eq "/usr/mdec" then permit + native-fsread: filename eq "/home" then permit + native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "$HOME/.lynxrc" then permit + native-fsread: filename match "/: *" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mailcap" then permit + native-fsread: filename eq "$HOME/.mailcap" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mime.types" then permit + native-fsread: filename eq "$HOME/.mime.types" then permit + native-sigaction: permit + native-ioctl: permit + native-fsread: filename eq "$HOME/.terminfo.db" then permit + native-fsread: filename eq "$HOME/.terminfo" then permit + native-fsread: filename eq "/usr/share/misc/terminfo.db" then permit + native-pread: permit + native-write: permit + native-fsread: filename eq "$HOME/.lynx-keymaps" then permit + native-fsread: filename eq "/var/run/dev.db" then permit + native-fsread: filename eq "/etc/utmp" then permit + native-poll: permit + native-nanosleep: permit + native-gettimeofday: permit + native-fsread: filename eq "/etc/resolv.conf" then permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_DGRAM" then permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then permit + native-sendto: true then permit + native-select: permit + native-recvfrom: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_STREAM" then permit + native-connect: sockaddr match "inet-\\\[*\\\]:80" then permit + native-exit: permit diff --git a/src/regress/usr.bin/sdiff/lflag.out b/src/regress/usr.bin/sdiff/lflag.out new file mode 100644 index 000000000..c7afce0d9 --- /dev/null +++ b/src/regress/usr.bin/sdiff/lflag.out @@ -0,0 +1,102 @@ +Policy: /usr/bin/lynx, Emulation: native + > native-issetugid: permit + > native-mprotect: permit + > native-mmap: permit + native-__sysctl: permit + > native-fsread: filename eq "/var/run/ld.so.hints" then perm + > native-fstat: permit + native-close: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then perm | native-fsread: filename match "/usr/lib/libssl.so.*" then p + native-connect: sockaddr match "inet-\\\[*\\\]:80" then per | native-read: permit + native-exit: permit | native-fsread: filename match "/usr/lib/libcrypto.so.*" the + native-fcntl: cmd eq "F_SETFD" then permit | native-fsread: filename match "/usr/lib/libncurses.so.*" th + native-fsread: filename eq "/" then permit | native-fsread: filename match "/usr/lib/libc.so.*" then per + native-fsread: filename match "/: *" | native-munmap: permit + native-fsread: filename eq "/etc/lynx.cfg" then permit | native-sigprocmask: permit + native-fsread: filename eq "/etc/malloc.conf" then permit + native-fsread: filename eq "/etc/resolv.conf" then permit | native-getpid: permit + native-fsread: filename eq "/etc/utmp" then permit < + native-fsread: filename eq "/home" then permit < + native-fsread: filename eq "$HOME" then permit < + native-fsread: filename eq "$HOME/.lynx-keymaps" then permi < + native-fsread: filename eq "$HOME/.lynxrc" then permit < + native-fsread: filename eq "$HOME/.mailcap" then permit < + native-fsread: filename eq "$HOME/.mime.types" then permit < + native-fsread: filename eq "$HOME/.terminfo" then permit < + native-fsread: filename eq "$HOME/.terminfo.db" then permit < + native-fsread: filename eq "/obj" then permit < + native-fsread: filename eq "/tmp" then permit + > native-fswrite: filename match "/tmp/lynx-*" then permit + native-fsread: filename match "/tmp/lynx-*/." then permit + > native-fsread: filename eq "$HOME" then permit + > native-fsread: filename eq "/etc/lynx.cfg" then permit + > native-fsread: filename eq "/" then permit + > native-fsread: filename eq "/usr/obj/bin/systrace/." then p + > native-fsread: filename eq "/usr/obj/bin" then permit + > native-fcntl: permit + > native-getdirentries: permit + > native-lseek: permit + > native-fsread: filename eq "/usr/obj" then permit + native-fsread: filename eq "/usr" then permit + native-fsread: filename eq "/usr/bin" then permit + native-fsread: filename eq "/usr/games" then permit + native-fsread: filename eq "/usr/include" then permit + native-fsread: filename eq "/usr/lib" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then per < + native-fsread: filename match "/usr/lib/libcrypto.so.*" the < + native-fsread: filename match "/usr/lib/libncurses.so.*" th < + native-fsread: filename match "/usr/lib/libssl.so.*" then p < + native-fsread: filename eq "/usr/libdata" then permit + native-fsread: filename eq "/usr/libexec" then permit + native-fsread: filename eq "/usr/lkm" then permit + native-fsread: filename eq "/usr/local" then permit + native-fsread: filename eq "/usr/mdec" then permit + native-fsread: filename eq "/usr/obj" then permit | native-fsread: filename eq "/home" then permit + native-fsread: filename eq "/usr/obj/bin" then permit | native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/." then p | native-fsread: filename eq "$HOME/.lynxrc" then permit + > native-fsread: filename match "/: *" + native-fsread: filename eq "/usr/obj/bin/systrace/.mailcap" + > native-fsread: filename eq "$HOME/.mailcap" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mime.typ + > native-fsread: filename eq "$HOME/.mime.types" then permit + > native-sigaction: permit + > native-ioctl: permit + > native-fsread: filename eq "$HOME/.terminfo.db" then permit + > native-fsread: filename eq "$HOME/.terminfo" then permit + native-fsread: filename eq "/usr/share/misc/terminfo.db" th + > native-pread: permit + > native-write: permit + > native-fsread: filename eq "$HOME/.lynx-keymaps" then permi + native-fsread: filename eq "/var/run/dev.db" then permit + native-fsread: filename eq "/var/run/ld.so.hints" then perm | native-fsread: filename eq "/etc/utmp" then permit + native-fstat: permit < + native-fswrite: filename match "/tmp/lynx-*" then permit < + native-getdirentries: permit < + native-getpid: permit < + native-gettimeofday: permit < + native-ioctl: permit < + native-issetugid: permit < + native-lseek: permit < + native-mmap: permit < + native-mprotect: prot eq "PROT_READ" then permit < + native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permit < + native-mprotect: prot eq "PROT_READ|PROT_WRITE" then permit < + native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" t < + native-munmap: permit < + native-nanosleep: permit < + native-poll: permit + native-pread: permit | native-nanosleep: permit + native-read: permit | native-gettimeofday: permit + native-recvfrom: permit | native-fsread: filename eq "/etc/resolv.conf" then permit + native-select: permit < + native-sendto: true then permit < + native-sigaction: permit < + native-sigprocmask: permit < + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_D + > native-connect: sockaddr eq "inet-[127.0.0.1]:53" then perm + > native-sendto: true then permit + > native-select: permit + > native-recvfrom: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_S + native-write: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then per + > native-exit: permit diff --git a/src/regress/usr.bin/sdiff/obj b/src/regress/usr.bin/sdiff/obj new file mode 120000 index 000000000..2e624eca9 --- /dev/null +++ b/src/regress/usr.bin/sdiff/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/sdiff \ No newline at end of file diff --git a/src/regress/usr.bin/sdiff/oneline.in b/src/regress/usr.bin/sdiff/oneline.in new file mode 100644 index 000000000..acbe86c7c --- /dev/null +++ b/src/regress/usr.bin/sdiff/oneline.in @@ -0,0 +1 @@ +abcd diff --git a/src/regress/usr.bin/sdiff/same.out b/src/regress/usr.bin/sdiff/same.out new file mode 100644 index 000000000..bce894420 --- /dev/null +++ b/src/regress/usr.bin/sdiff/same.out @@ -0,0 +1,72 @@ +Policy: /usr/bin/lynx, Emulation: native Policy: /usr/bin/lynx, Emulation: native + native-__sysctl: permit native-__sysctl: permit + native-close: permit native-close: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then perm native-connect: sockaddr eq "inet-[127.0.0.1]:53" then perm + native-connect: sockaddr match "inet-\\\[*\\\]:80" then per native-connect: sockaddr match "inet-\\\[*\\\]:80" then per + native-exit: permit native-exit: permit + native-fcntl: cmd eq "F_SETFD" then permit native-fcntl: cmd eq "F_SETFD" then permit + native-fsread: filename eq "/" then permit native-fsread: filename eq "/" then permit + native-fsread: filename match "/: *" native-fsread: filename match "/: *" + native-fsread: filename eq "/etc/lynx.cfg" then permit native-fsread: filename eq "/etc/lynx.cfg" then permit + native-fsread: filename eq "/etc/malloc.conf" then permit native-fsread: filename eq "/etc/malloc.conf" then permit + native-fsread: filename eq "/etc/resolv.conf" then permit native-fsread: filename eq "/etc/resolv.conf" then permit + native-fsread: filename eq "/etc/utmp" then permit native-fsread: filename eq "/etc/utmp" then permit + native-fsread: filename eq "/home" then permit native-fsread: filename eq "/home" then permit + native-fsread: filename eq "$HOME" then permit native-fsread: filename eq "$HOME" then permit + native-fsread: filename eq "$HOME/.lynx-keymaps" then permi native-fsread: filename eq "$HOME/.lynx-keymaps" then permi + native-fsread: filename eq "$HOME/.lynxrc" then permit native-fsread: filename eq "$HOME/.lynxrc" then permit + native-fsread: filename eq "$HOME/.mailcap" then permit native-fsread: filename eq "$HOME/.mailcap" then permit + native-fsread: filename eq "$HOME/.mime.types" then permit native-fsread: filename eq "$HOME/.mime.types" then permit + native-fsread: filename eq "$HOME/.terminfo" then permit native-fsread: filename eq "$HOME/.terminfo" then permit + native-fsread: filename eq "$HOME/.terminfo.db" then permit native-fsread: filename eq "$HOME/.terminfo.db" then permit + native-fsread: filename eq "/obj" then permit native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "/tmp" then permit native-fsread: filename eq "/tmp" then permit + native-fsread: filename match "/tmp/lynx-*/." then permit native-fsread: filename match "/tmp/lynx-*/." then permit + native-fsread: filename eq "/usr" then permit native-fsread: filename eq "/usr" then permit + native-fsread: filename eq "/usr/bin" then permit native-fsread: filename eq "/usr/bin" then permit + native-fsread: filename eq "/usr/games" then permit native-fsread: filename eq "/usr/games" then permit + native-fsread: filename eq "/usr/include" then permit native-fsread: filename eq "/usr/include" then permit + native-fsread: filename eq "/usr/lib" then permit native-fsread: filename eq "/usr/lib" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then per native-fsread: filename match "/usr/lib/libc.so.*" then per + native-fsread: filename match "/usr/lib/libcrypto.so.*" the native-fsread: filename match "/usr/lib/libcrypto.so.*" the + native-fsread: filename match "/usr/lib/libncurses.so.*" th native-fsread: filename match "/usr/lib/libncurses.so.*" th + native-fsread: filename match "/usr/lib/libssl.so.*" then p native-fsread: filename match "/usr/lib/libssl.so.*" then p + native-fsread: filename eq "/usr/libdata" then permit native-fsread: filename eq "/usr/libdata" then permit + native-fsread: filename eq "/usr/libexec" then permit native-fsread: filename eq "/usr/libexec" then permit + native-fsread: filename eq "/usr/lkm" then permit native-fsread: filename eq "/usr/lkm" then permit + native-fsread: filename eq "/usr/local" then permit native-fsread: filename eq "/usr/local" then permit + native-fsread: filename eq "/usr/mdec" then permit native-fsread: filename eq "/usr/mdec" then permit + native-fsread: filename eq "/usr/obj" then permit native-fsread: filename eq "/usr/obj" then permit + native-fsread: filename eq "/usr/obj/bin" then permit native-fsread: filename eq "/usr/obj/bin" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/." then p native-fsread: filename eq "/usr/obj/bin/systrace/." then p + native-fsread: filename eq "/usr/obj/bin/systrace/.mailcap" native-fsread: filename eq "/usr/obj/bin/systrace/.mailcap" + native-fsread: filename eq "/usr/obj/bin/systrace/.mime.typ native-fsread: filename eq "/usr/obj/bin/systrace/.mime.typ + native-fsread: filename eq "/usr/share/misc/terminfo.db" th native-fsread: filename eq "/usr/share/misc/terminfo.db" th + native-fsread: filename eq "/var/run/dev.db" then permit native-fsread: filename eq "/var/run/dev.db" then permit + native-fsread: filename eq "/var/run/ld.so.hints" then perm native-fsread: filename eq "/var/run/ld.so.hints" then perm + native-fstat: permit native-fstat: permit + native-fswrite: filename match "/tmp/lynx-*" then permit native-fswrite: filename match "/tmp/lynx-*" then permit + native-getdirentries: permit native-getdirentries: permit + native-getpid: permit native-getpid: permit + native-gettimeofday: permit native-gettimeofday: permit + native-ioctl: permit native-ioctl: permit + native-issetugid: permit native-issetugid: permit + native-lseek: permit native-lseek: permit + native-mmap: permit native-mmap: permit + native-mprotect: prot eq "PROT_READ" then permit native-mprotect: prot eq "PROT_READ" then permit + native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permit native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permit + native-mprotect: prot eq "PROT_READ|PROT_WRITE" then permit native-mprotect: prot eq "PROT_READ|PROT_WRITE" then permit + native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" t native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" t + native-munmap: permit native-munmap: permit + native-nanosleep: permit native-nanosleep: permit + native-poll: permit native-poll: permit + native-pread: permit native-pread: permit + native-read: permit native-read: permit + native-recvfrom: permit native-recvfrom: permit + native-select: permit native-select: permit + native-sendto: true then permit native-sendto: true then permit + native-sigaction: permit native-sigaction: permit + native-sigprocmask: permit native-sigprocmask: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_D native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_D + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_S native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_S + native-write: permit native-write: permit diff --git a/src/regress/usr.bin/sdiff/sflag.out b/src/regress/usr.bin/sdiff/sflag.out new file mode 100644 index 000000000..19179fe51 --- /dev/null +++ b/src/regress/usr.bin/sdiff/sflag.out @@ -0,0 +1,79 @@ + > native-issetugid: permit + > native-mprotect: permit + > native-mmap: permit + > native-fsread: filename eq "/var/run/ld.so.hints" then perm + > native-fstat: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then perm | native-fsread: filename match "/usr/lib/libssl.so.*" then p + native-connect: sockaddr match "inet-\\\[*\\\]:80" then per | native-read: permit + native-exit: permit | native-fsread: filename match "/usr/lib/libcrypto.so.*" the + native-fcntl: cmd eq "F_SETFD" then permit | native-fsread: filename match "/usr/lib/libncurses.so.*" th + native-fsread: filename eq "/" then permit | native-fsread: filename match "/usr/lib/libc.so.*" then per + native-fsread: filename match "/: *" | native-munmap: permit + native-fsread: filename eq "/etc/lynx.cfg" then permit | native-sigprocmask: permit + native-fsread: filename eq "/etc/resolv.conf" then permit | native-getpid: permit + native-fsread: filename eq "/etc/utmp" then permit < + native-fsread: filename eq "/home" then permit < + native-fsread: filename eq "$HOME" then permit < + native-fsread: filename eq "$HOME/.lynx-keymaps" then permi < + native-fsread: filename eq "$HOME/.lynxrc" then permit < + native-fsread: filename eq "$HOME/.mailcap" then permit < + native-fsread: filename eq "$HOME/.mime.types" then permit < + native-fsread: filename eq "$HOME/.terminfo" then permit < + native-fsread: filename eq "$HOME/.terminfo.db" then permit < + native-fsread: filename eq "/obj" then permit < + > native-fswrite: filename match "/tmp/lynx-*" then permit + > native-fsread: filename eq "$HOME" then permit + > native-fsread: filename eq "/etc/lynx.cfg" then permit + > native-fsread: filename eq "/" then permit + > native-fsread: filename eq "/usr/obj/bin/systrace/." then p + > native-fsread: filename eq "/usr/obj/bin" then permit + > native-fcntl: permit + > native-getdirentries: permit + > native-lseek: permit + > native-fsread: filename eq "/usr/obj" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then per < + native-fsread: filename match "/usr/lib/libcrypto.so.*" the < + native-fsread: filename match "/usr/lib/libncurses.so.*" th < + native-fsread: filename match "/usr/lib/libssl.so.*" then p < + native-fsread: filename eq "/usr/obj" then permit | native-fsread: filename eq "/home" then permit + native-fsread: filename eq "/usr/obj/bin" then permit | native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/." then p | native-fsread: filename eq "$HOME/.lynxrc" then permit + > native-fsread: filename match "/: *" + > native-fsread: filename eq "$HOME/.mailcap" then permit + > native-fsread: filename eq "$HOME/.mime.types" then permit + > native-sigaction: permit + > native-ioctl: permit + > native-fsread: filename eq "$HOME/.terminfo.db" then permit + > native-fsread: filename eq "$HOME/.terminfo" then permit + > native-pread: permit + > native-write: permit + > native-fsread: filename eq "$HOME/.lynx-keymaps" then permi + native-fsread: filename eq "/var/run/ld.so.hints" then perm | native-fsread: filename eq "/etc/utmp" then permit + native-fstat: permit < + native-fswrite: filename match "/tmp/lynx-*" then permit < + native-getdirentries: permit < + native-getpid: permit < + native-gettimeofday: permit < + native-ioctl: permit < + native-issetugid: permit < + native-lseek: permit < + native-mmap: permit < + native-mprotect: prot eq "PROT_READ" then permit < + native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permit < + native-mprotect: prot eq "PROT_READ|PROT_WRITE" then permit < + native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" t < + native-munmap: permit < + native-nanosleep: permit < + native-pread: permit | native-nanosleep: permit + native-read: permit | native-gettimeofday: permit + native-recvfrom: permit | native-fsread: filename eq "/etc/resolv.conf" then permit + native-select: permit < + native-sendto: true then permit < + native-sigaction: permit < + native-sigprocmask: permit < + > native-connect: sockaddr eq "inet-[127.0.0.1]:53" then perm + > native-sendto: true then permit + > native-select: permit + > native-recvfrom: permit + native-write: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then per + > native-exit: permit diff --git a/src/regress/usr.bin/sdiff/short.out b/src/regress/usr.bin/sdiff/short.out new file mode 100644 index 000000000..7a3346017 --- /dev/null +++ b/src/regress/usr.bin/sdiff/short.out @@ -0,0 +1,15 @@ +Policy: /usr/bin/lynx, Emulation: native + native-issetugid: permit + native-mprotect: permit + native-mmap: permit + native-__sysctl: permit + native-close: permit + native-fsread: filename match "/usr/lib/libssl.so.*" then permit + native-read: permit + native-fsread: filename match "/usr/lib/libcrypto.so.*" then permit + native-fsread: filename match "/usr/lib/libncurses.so.*" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then permit + native-munmap: permit + native-sigprocmask: permit + native-fsread: filename eq "/etc/malloc.conf" then permit + native-fsread: filename eq "/etc/resolv.conf" then permit diff --git a/src/regress/usr.bin/sdiff/tabends b/src/regress/usr.bin/sdiff/tabends new file mode 100644 index 000000000..0547049d4 --- /dev/null +++ b/src/regress/usr.bin/sdiff/tabends @@ -0,0 +1,17 @@ + +0 +01 +012 +0123 +01234 +012345 +0123456 +01234567 +012345670 +0123456701 +01234567012 +012345670123 +0123456701234 +01234567012345 +012345670123456 +0123456701234567 diff --git a/src/regress/usr.bin/sdiff/tabends.out b/src/regress/usr.bin/sdiff/tabends.out new file mode 100644 index 000000000..423bd02ce --- /dev/null +++ b/src/regress/usr.bin/sdiff/tabends.out @@ -0,0 +1,17 @@ + < +0 < +01 < +012 < +0123 < +01234 < +012345 < +0123456 < +01234567 < +012345670 < +0123456701 < +01234567012 < +012345670123 < +0123456701234 < +0123456701234 < +0123456701234 < +0123456701234 < diff --git a/src/regress/usr.bin/sdiff/tabends2.out b/src/regress/usr.bin/sdiff/tabends2.out new file mode 100644 index 000000000..b18070545 --- /dev/null +++ b/src/regress/usr.bin/sdiff/tabends2.out @@ -0,0 +1,17 @@ + > + > 0 + > 01 + > 012 + > 0123 + > 01234 + > 012345 + > 0123456 + > 01234567 + > 012345670 + > 0123456701 + > 01234567012 + > 012345670123 + > 0123456701234 + > 0123456701234 + > 0123456701234 + > 0123456701234 diff --git a/src/regress/usr.bin/sdiff/tabends3.out b/src/regress/usr.bin/sdiff/tabends3.out new file mode 100644 index 000000000..c3013824a --- /dev/null +++ b/src/regress/usr.bin/sdiff/tabends3.out @@ -0,0 +1,17 @@ + < +0 < +01 < +012 < +0123 < +01234 < +012345 < +0123456 < +01234567 < +01234567 < +01234567 < +01234567 < +01234567 < +01234567 < +01234567 < +01234567 < +01234567 < diff --git a/src/regress/usr.bin/sdiff/tabs.out b/src/regress/usr.bin/sdiff/tabs.out new file mode 100644 index 000000000..eb34bace6 --- /dev/null +++ b/src/regress/usr.bin/sdiff/tabs.out @@ -0,0 +1,102 @@ +Policy: /usr/bin/lynx, Emulation: native Policy: /usr/bin/lynx, Emulation: native + > native-issetugid: permit + > native-mprotect: permit + > native-mmap: permit + native-__sysctl: permit native-__sysctl: permit + > native-fsread: filename eq "/var/run/ld.so.hints" then pe + > native-fstat: permit + native-close: permit native-close: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then | native-fsread: filename match "/usr/lib/libssl.so.*" then + native-connect: sockaddr match "inet-\\\[*\\\]:80" then | native-read: permit + native-exit: permit | native-fsread: filename match "/usr/lib/libcrypto.so.*" t + native-fcntl: cmd eq "F_SETFD" then permit | native-fsread: filename match "/usr/lib/libncurses.so.*" + native-fsread: filename eq "/" then permit | native-fsread: filename match "/usr/lib/libc.so.*" then p + native-fsread: filename match "/ | native-munmap: permit + native-fsread: filename eq "/etc/lynx.cfg" then permit | native-sigprocmask: permit + native-fsread: filename eq "/etc/malloc.conf" then perm native-fsread: filename eq "/etc/malloc.conf" then permit + native-fsread: filename eq "/etc/resolv.conf" then perm | native-getpid: permit + native-fsread: filename eq "/etc/utmp" then permit < + native-fsread: filename eq "/home" then permit < + native-fsread: filename eq "$HOME" then permit < + native-fsread: filename eq "$HOME/.lynx-keymaps" then p < + native-fsread: filename eq "$HOME/.lynxrc" then permit < + native-fsread: filename eq "$HOME/.mailcap" then permit < + native-fsread: filename eq "$HOME/.mime.types" then per < + native-fsread: filename eq "$HOME/.terminfo" then permi < + native-fsread: filename eq "$HOME/.terminfo.db" then pe < + native-fsread: filename eq "/obj" then permit < + native-fsread: filename eq "/tmp" then permit native-fsread: filename eq "/tmp" then permit + > native-fswrite: filename match "/tmp/lynx-*" then permit + native-fsread: filename match "/tmp/lynx-*/." then perm native-fsread: filename match "/tmp/lynx-*/." then permit + > native-fsread: filename eq "$HOME" then permit + > native-fsread: filename eq "/etc/lynx.cfg" then permit + > native-fsread: filename eq "/" then permit + > native-fsread: filename eq "/usr/obj/bin/systrace/." then + > native-fsread: filename eq "/usr/obj/bin" then permit + > native-fcntl: permit + > native-getdirentries: permit + > native-lseek: permit + > native-fsread: filename eq "/usr/obj" then permit + native-fsread: filename eq "/usr" then permit native-fsread: filename eq "/usr" then permit + native-fsread: filename eq "/usr/bin" then permit native-fsread: filename eq "/usr/bin" then permit + native-fsread: filename eq "/usr/games" then permit native-fsread: filename eq "/usr/games" then permit + native-fsread: filename eq "/usr/include" then permit native-fsread: filename eq "/usr/include" then permit + native-fsread: filename eq "/usr/lib" then permit native-fsread: filename eq "/usr/lib" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then < + native-fsread: filename match "/usr/lib/libcrypto.so.*" < + native-fsread: filename match "/usr/lib/libncurses.so.* < + native-fsread: filename match "/usr/lib/libssl.so.*" th < + native-fsread: filename eq "/usr/libdata" then permit native-fsread: filename eq "/usr/libdata" then permit + native-fsread: filename eq "/usr/libexec" then permit native-fsread: filename eq "/usr/libexec" then permit + native-fsread: filename eq "/usr/lkm" then permit native-fsread: filename eq "/usr/lkm" then permit + native-fsread: filename eq "/usr/local" then permit native-fsread: filename eq "/usr/local" then permit + native-fsread: filename eq "/usr/mdec" then permit native-fsread: filename eq "/usr/mdec" then permit + native-fsread: filename eq "/usr/obj" then permit | native-fsread: filename eq "/home" then permit + native-fsread: filename eq "/usr/obj/bin" then permit | native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/." th | native-fsread: filename eq "$HOME/.lynxrc" then permit + > native-fsread: filename match "/: + native-fsread: filename eq "/usr/obj/bin/systrace/.mail native-fsread: filename eq "/usr/obj/bin/systrace/.mailca + > native-fsread: filename eq "$HOME/.mailcap" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mime native-fsread: filename eq "/usr/obj/bin/systrace/.mime.t + > native-fsread: filename eq "$HOME/.mime.types" then permi + > native-sigaction: permit + > native-ioctl: permit + > native-fsread: filename eq "$HOME/.terminfo.db" then perm + > native-fsread: filename eq "$HOME/.terminfo" then permit + native-fsread: filename eq "/usr/share/misc/terminfo.db native-fsread: filename eq "/usr/share/misc/terminfo.db" + > native-pread: permit + > native-write: permit + > native-fsread: filename eq "$HOME/.lynx-keymaps" then per + native-fsread: filename eq "/var/run/dev.db" then permi native-fsread: filename eq "/var/run/dev.db" then permit + native-fsread: filename eq "/var/run/ld.so.hints" then | native-fsread: filename eq "/etc/utmp" then permit + native-fstat: permit < + native-fswrite: filename match "/tmp/lynx-*" then permi < + native-getdirentries: permit < + native-getpid: permit < + native-gettimeofday: permit < + native-ioctl: permit < + native-issetugid: permit < + native-lseek: permit < + native-mmap: permit < + native-mprotect: prot eq "PROT_READ" then permit < + native-mprotect: prot eq "PROT_READ|PROT_EXEC" then per < + native-mprotect: prot eq "PROT_READ|PROT_WRITE" then pe < + native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXE < + native-munmap: permit < + native-nanosleep: permit < + native-poll: permit native-poll: permit + native-pread: permit | native-nanosleep: permit + native-read: permit | native-gettimeofday: permit + native-recvfrom: permit | native-fsread: filename eq "/etc/resolv.conf" then permit + native-select: permit < + native-sendto: true then permit < + native-sigaction: permit < + native-sigprocmask: permit < + native-socket: sockdom eq "AF_INET" and socktype eq "SO native-socket: sockdom eq "AF_INET" and socktype eq "SOCK + > native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe + > native-sendto: true then permit + > native-select: permit + > native-recvfrom: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SO native-socket: sockdom eq "AF_INET" and socktype eq "SOCK + native-write: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then p + > native-exit: permit diff --git a/src/regress/usr.bin/sdiff/tabs1 b/src/regress/usr.bin/sdiff/tabs1 new file mode 100644 index 000000000..b5a1834a3 --- /dev/null +++ b/src/regress/usr.bin/sdiff/tabs1 @@ -0,0 +1,72 @@ +Policy: /usr/bin/lynx, Emulation: native + native-__sysctl: permit + native-close: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then permit + native-connect: sockaddr match "inet-\\\[*\\\]:80" then permit + native-exit: permit + native-fcntl: cmd eq "F_SETFD" then permit + native-fsread: filename eq "/" then permit + native-fsread: filename match "/: *" then permit + native-fsread: filename eq "/etc/lynx.cfg" then permit + native-fsread: filename eq "/etc/malloc.conf" then permit + native-fsread: filename eq "/etc/resolv.conf" then permit + native-fsread: filename eq "/etc/utmp" then permit + native-fsread: filename eq "/home" then permit + native-fsread: filename eq "$HOME" then permit + native-fsread: filename eq "$HOME/.lynx-keymaps" then permit + native-fsread: filename eq "$HOME/.lynxrc" then permit + native-fsread: filename eq "$HOME/.mailcap" then permit + native-fsread: filename eq "$HOME/.mime.types" then permit + native-fsread: filename eq "$HOME/.terminfo" then permit + native-fsread: filename eq "$HOME/.terminfo.db" then permit + native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "/tmp" then permit + native-fsread: filename match "/tmp/lynx-*/." then permit + native-fsread: filename eq "/usr" then permit + native-fsread: filename eq "/usr/bin" then permit + native-fsread: filename eq "/usr/games" then permit + native-fsread: filename eq "/usr/include" then permit + native-fsread: filename eq "/usr/lib" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then permit + native-fsread: filename match "/usr/lib/libcrypto.so.*" then permit + native-fsread: filename match "/usr/lib/libncurses.so.*" then permit + native-fsread: filename match "/usr/lib/libssl.so.*" then permit + native-fsread: filename eq "/usr/libdata" then permit + native-fsread: filename eq "/usr/libexec" then permit + native-fsread: filename eq "/usr/lkm" then permit + native-fsread: filename eq "/usr/local" then permit + native-fsread: filename eq "/usr/mdec" then permit + native-fsread: filename eq "/usr/obj" then permit + native-fsread: filename eq "/usr/obj/bin" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/." then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mailcap" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mime.types" then permit + native-fsread: filename eq "/usr/share/misc/terminfo.db" then permit + native-fsread: filename eq "/var/run/dev.db" then permit + native-fsread: filename eq "/var/run/ld.so.hints" then permit + native-fstat: permit + native-fswrite: filename match "/tmp/lynx-*" then permit + native-getdirentries: permit + native-getpid: permit + native-gettimeofday: permit + native-ioctl: permit + native-issetugid: permit + native-lseek: permit + native-mmap: permit + native-mprotect: prot eq "PROT_READ" then permit + native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permit + native-mprotect: prot eq "PROT_READ|PROT_WRITE" then permit + native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" then permit + native-munmap: permit + native-nanosleep: permit + native-poll: permit + native-pread: permit + native-read: permit + native-recvfrom: permit + native-select: permit + native-sendto: true then permit + native-sigaction: permit + native-sigprocmask: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_DGRAM" then permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_STREAM" then permit + native-write: permit diff --git a/src/regress/usr.bin/sdiff/tabs2 b/src/regress/usr.bin/sdiff/tabs2 new file mode 100644 index 000000000..d00f4155d --- /dev/null +++ b/src/regress/usr.bin/sdiff/tabs2 @@ -0,0 +1,69 @@ +Policy: /usr/bin/lynx, Emulation: native + native-issetugid: permit + native-mprotect: permit + native-mmap: permit + native-__sysctl: permit + native-fsread: filename eq "/var/run/ld.so.hints" then permit + native-fstat: permit + native-close: permit + native-fsread: filename match "/usr/lib/libssl.so.*" then permit + native-read: permit + native-fsread: filename match "/usr/lib/libcrypto.so.*" then permit + native-fsread: filename match "/usr/lib/libncurses.so.*" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then permit + native-munmap: permit + native-sigprocmask: permit + native-fsread: filename eq "/etc/malloc.conf" then permit + native-getpid: permit + native-fsread: filename eq "/tmp" then permit + native-fswrite: filename match "/tmp/lynx-*" then permit + native-fsread: filename match "/tmp/lynx-*/." then permit + native-fsread: filename eq "$HOME" then permit + native-fsread: filename eq "/etc/lynx.cfg" then permit + native-fsread: filename eq "/" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/." then permit + native-fsread: filename eq "/usr/obj/bin" then permit + native-fcntl: permit + native-getdirentries: permit + native-lseek: permit + native-fsread: filename eq "/usr/obj" then permit + native-fsread: filename eq "/usr" then permit + native-fsread: filename eq "/usr/bin" then permit + native-fsread: filename eq "/usr/games" then permit + native-fsread: filename eq "/usr/include" then permit + native-fsread: filename eq "/usr/lib" then permit + native-fsread: filename eq "/usr/libdata" then permit + native-fsread: filename eq "/usr/libexec" then permit + native-fsread: filename eq "/usr/lkm" then permit + native-fsread: filename eq "/usr/local" then permit + native-fsread: filename eq "/usr/mdec" then permit + native-fsread: filename eq "/home" then permit + native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "$HOME/.lynxrc" then permit + native-fsread: filename match "/: *" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mailcap" then permit + native-fsread: filename eq "$HOME/.mailcap" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mime.types" then permit + native-fsread: filename eq "$HOME/.mime.types" then permit + native-sigaction: permit + native-ioctl: permit + native-fsread: filename eq "$HOME/.terminfo.db" then permit + native-fsread: filename eq "$HOME/.terminfo" then permit + native-fsread: filename eq "/usr/share/misc/terminfo.db" then permit + native-pread: permit + native-write: permit + native-fsread: filename eq "$HOME/.lynx-keymaps" then permit + native-fsread: filename eq "/var/run/dev.db" then permit + native-fsread: filename eq "/etc/utmp" then permit + native-poll: permit + native-nanosleep: permit + native-gettimeofday: permit + native-fsread: filename eq "/etc/resolv.conf" then permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_DGRAM" then permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then permit + native-sendto: true then permit + native-select: permit + native-recvfrom: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_STREAM" then permit + native-connect: sockaddr match "inet-\\\[*\\\]:80" then permit + native-exit: permit diff --git a/src/regress/usr.bin/sdiff/wflag.out b/src/regress/usr.bin/sdiff/wflag.out new file mode 100644 index 000000000..19ea79bf6 --- /dev/null +++ b/src/regress/usr.bin/sdiff/wflag.out @@ -0,0 +1,102 @@ +Policy: /usr/bin/lynx, Emulation: native Policy: /usr/bin/lynx, Emulation: native + > native-issetugid: permit + > native-mprotect: permit + > native-mmap: permit + native-__sysctl: permit native-__sysctl: permit + > native-fsread: filename eq "/var/run/ld.so.hints" then pe + > native-fstat: permit + native-close: permit native-close: permit + native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe | native-fsread: filename match "/usr/lib/libssl.so.*" then + native-connect: sockaddr match "inet-\\\[*\\\]:80" then p | native-read: permit + native-exit: permit | native-fsread: filename match "/usr/lib/libcrypto.so.*" t + native-fcntl: cmd eq "F_SETFD" then permit | native-fsread: filename match "/usr/lib/libncurses.so.*" + native-fsread: filename eq "/" then permit | native-fsread: filename match "/usr/lib/libc.so.*" then p + native-fsread: filename match "/: | native-munmap: permit + native-fsread: filename eq "/etc/lynx.cfg" then permit | native-sigprocmask: permit + native-fsread: filename eq "/etc/malloc.conf" then permit native-fsread: filename eq "/etc/malloc.conf" then permit + native-fsread: filename eq "/etc/resolv.conf" then permit | native-getpid: permit + native-fsread: filename eq "/etc/utmp" then permit < + native-fsread: filename eq "/home" then permit < + native-fsread: filename eq "$HOME" then permit < + native-fsread: filename eq "$HOME/.lynx-keymaps" then per < + native-fsread: filename eq "$HOME/.lynxrc" then permit < + native-fsread: filename eq "$HOME/.mailcap" then permit < + native-fsread: filename eq "$HOME/.mime.types" then permi < + native-fsread: filename eq "$HOME/.terminfo" then permit < + native-fsread: filename eq "$HOME/.terminfo.db" then perm < + native-fsread: filename eq "/obj" then permit < + native-fsread: filename eq "/tmp" then permit native-fsread: filename eq "/tmp" then permit + > native-fswrite: filename match "/tmp/lynx-*" then permit + native-fsread: filename match "/tmp/lynx-*/." then permit native-fsread: filename match "/tmp/lynx-*/." then permit + > native-fsread: filename eq "$HOME" then permit + > native-fsread: filename eq "/etc/lynx.cfg" then permit + > native-fsread: filename eq "/" then permit + > native-fsread: filename eq "/usr/obj/bin/systrace/." then + > native-fsread: filename eq "/usr/obj/bin" then permit + > native-fcntl: permit + > native-getdirentries: permit + > native-lseek: permit + > native-fsread: filename eq "/usr/obj" then permit + native-fsread: filename eq "/usr" then permit native-fsread: filename eq "/usr" then permit + native-fsread: filename eq "/usr/bin" then permit native-fsread: filename eq "/usr/bin" then permit + native-fsread: filename eq "/usr/games" then permit native-fsread: filename eq "/usr/games" then permit + native-fsread: filename eq "/usr/include" then permit native-fsread: filename eq "/usr/include" then permit + native-fsread: filename eq "/usr/lib" then permit native-fsread: filename eq "/usr/lib" then permit + native-fsread: filename match "/usr/lib/libc.so.*" then p < + native-fsread: filename match "/usr/lib/libcrypto.so.*" t < + native-fsread: filename match "/usr/lib/libncurses.so.*" < + native-fsread: filename match "/usr/lib/libssl.so.*" then < + native-fsread: filename eq "/usr/libdata" then permit native-fsread: filename eq "/usr/libdata" then permit + native-fsread: filename eq "/usr/libexec" then permit native-fsread: filename eq "/usr/libexec" then permit + native-fsread: filename eq "/usr/lkm" then permit native-fsread: filename eq "/usr/lkm" then permit + native-fsread: filename eq "/usr/local" then permit native-fsread: filename eq "/usr/local" then permit + native-fsread: filename eq "/usr/mdec" then permit native-fsread: filename eq "/usr/mdec" then permit + native-fsread: filename eq "/usr/obj" then permit | native-fsread: filename eq "/home" then permit + native-fsread: filename eq "/usr/obj/bin" then permit | native-fsread: filename eq "/obj" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/." then | native-fsread: filename eq "$HOME/.lynxrc" then permit + > native-fsread: filename match "/: + native-fsread: filename eq "/usr/obj/bin/systrace/.mailca native-fsread: filename eq "/usr/obj/bin/systrace/.mailca + > native-fsread: filename eq "$HOME/.mailcap" then permit + native-fsread: filename eq "/usr/obj/bin/systrace/.mime.t native-fsread: filename eq "/usr/obj/bin/systrace/.mime.t + > native-fsread: filename eq "$HOME/.mime.types" then permi + > native-sigaction: permit + > native-ioctl: permit + > native-fsread: filename eq "$HOME/.terminfo.db" then perm + > native-fsread: filename eq "$HOME/.terminfo" then permit + native-fsread: filename eq "/usr/share/misc/terminfo.db" native-fsread: filename eq "/usr/share/misc/terminfo.db" + > native-pread: permit + > native-write: permit + > native-fsread: filename eq "$HOME/.lynx-keymaps" then per + native-fsread: filename eq "/var/run/dev.db" then permit native-fsread: filename eq "/var/run/dev.db" then permit + native-fsread: filename eq "/var/run/ld.so.hints" then pe | native-fsread: filename eq "/etc/utmp" then permit + native-fstat: permit < + native-fswrite: filename match "/tmp/lynx-*" then permit < + native-getdirentries: permit < + native-getpid: permit < + native-gettimeofday: permit < + native-ioctl: permit < + native-issetugid: permit < + native-lseek: permit < + native-mmap: permit < + native-mprotect: prot eq "PROT_READ" then permit < + native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permi < + native-mprotect: prot eq "PROT_READ|PROT_WRITE" then perm < + native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" < + native-munmap: permit < + native-nanosleep: permit < + native-poll: permit native-poll: permit + native-pread: permit | native-nanosleep: permit + native-read: permit | native-gettimeofday: permit + native-recvfrom: permit | native-fsread: filename eq "/etc/resolv.conf" then permit + native-select: permit < + native-sendto: true then permit < + native-sigaction: permit < + native-sigprocmask: permit < + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK native-socket: sockdom eq "AF_INET" and socktype eq "SOCK + > native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe + > native-sendto: true then permit + > native-select: permit + > native-recvfrom: permit + native-socket: sockdom eq "AF_INET" and socktype eq "SOCK native-socket: sockdom eq "AF_INET" and socktype eq "SOCK + native-write: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then p + > native-exit: permit diff --git a/src/regress/usr.bin/sed/CVS/Entries b/src/regress/usr.bin/sed/CVS/Entries new file mode 100644 index 000000000..9a69b024d --- /dev/null +++ b/src/regress/usr.bin/sed/CVS/Entries @@ -0,0 +1,16 @@ +/Makefile/1.2/Mon Oct 13 13:27:33 2008// +/dc.expected/1.1/Mon Oct 13 13:22:10 2008// +/dc.in/1.1/Mon Oct 13 13:22:10 2008// +/dc.sed/1.1/Mon Oct 13 13:22:10 2008// +/hanoi.expected/1.1/Fri Oct 10 14:33:34 2008// +/hanoi.in/1.1/Thu Oct 22 17:34:03 2009// +/hanoi.sed/1.1/Fri Oct 10 14:33:34 2008// +/math.expected/1.1/Fri Oct 10 14:33:34 2008// +/math.in/1.1/Fri Oct 10 14:33:34 2008// +/math.sed/1.1/Fri Oct 10 14:33:34 2008// +/sedtest.expected/1.1/Fri Oct 10 14:33:34 2008// +/sedtest.sh/1.1/Fri Oct 10 14:33:34 2008// +/sierpinski.expected/1.1/Fri Oct 10 14:33:34 2008// +/sierpinski.in/1.1/Thu Oct 22 17:34:03 2009// +/sierpinski.sed/1.1/Fri Oct 10 14:33:34 2008// +D diff --git a/src/regress/usr.bin/sed/CVS/Repository b/src/regress/usr.bin/sed/CVS/Repository new file mode 100644 index 000000000..fb7d6782d --- /dev/null +++ b/src/regress/usr.bin/sed/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/sed diff --git a/src/regress/usr.bin/sed/CVS/Root b/src/regress/usr.bin/sed/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/sed/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/sed/Makefile b/src/regress/usr.bin/sed/Makefile new file mode 100644 index 000000000..2b73e5e06 --- /dev/null +++ b/src/regress/usr.bin/sed/Makefile @@ -0,0 +1,26 @@ +# $OpenBSD: Makefile,v 1.2 2008/10/13 13:27:33 millert Exp $ +# $NetBSD: Makefile,v 1.1 2005/04/04 16:48:45 peter Exp $ + +SED= /usr/bin/sed + +REGRESS_TARGETS= sedtest hanoi math sierpinski + +sedtest: + sh ${.CURDIR}/$@.sh ${SED} $@.out + diff ${.CURDIR}/$@.expected $@.out + +hanoi: + ${SED} -f ${.CURDIR}/$@.sed ${.CURDIR}/$@.in > $@.out + diff ${.CURDIR}/$@.expected $@.out + +math: + ${SED} -f ${.CURDIR}/$@.sed ${.CURDIR}/$@.in > $@.out + diff ${.CURDIR}/$@.expected $@.out + +sierpinski: + ${SED} -nf ${.CURDIR}/$@.sed ${.CURDIR}/$@.in > $@.out + diff ${.CURDIR}/$@.expected $@.out + +CLEANFILES+=*.out lines* script* + +.include diff --git a/src/regress/usr.bin/sed/dc.expected b/src/regress/usr.bin/sed/dc.expected new file mode 100644 index 000000000..5b74afb72 --- /dev/null +++ b/src/regress/usr.bin/sed/dc.expected @@ -0,0 +1,3 @@ +0 +99 +100 diff --git a/src/regress/usr.bin/sed/dc.in b/src/regress/usr.bin/sed/dc.in new file mode 100644 index 000000000..38a9e3f29 --- /dev/null +++ b/src/regress/usr.bin/sed/dc.in @@ -0,0 +1,7 @@ +0;ap +100;a; +99 0:a +100 100:a +0;ap +100;ap + diff --git a/src/regress/usr.bin/sed/dc.sed b/src/regress/usr.bin/sed/dc.sed new file mode 100644 index 000000000..b346d9177 --- /dev/null +++ b/src/regress/usr.bin/sed/dc.sed @@ -0,0 +1,327 @@ +#! /bin/sed -nf +# +# dc.sed - an arbitrary precision RPN calculator +# Created by Greg Ubben early 1995, late 1996 +# +# Dedicated to MAC's memory of the IBM 1620 ("CADET") computer. +# @(#)GSU dc.sed 1.1 06-Mar-1999 [non-explanatory] +# $OpenBSD: dc.sed,v 1.1 2008/10/13 13:22:10 millert Exp $ +# +# From http://sed.sourceforge.net/grabbag/scripts/ +# Public Domain +# +# Examples: +# sqrt(2) to 10 digits: echo "10k 2vp" | dc.sed +# 20 factorial: echo "[d1-d1 != fractional-bases +# SunOS limits: 199/199 commands (though could pack in 10-20 more) +# Limitations: scale <= 999; |obase| >= 1; input digits in [0..F] +# Completed: 1am Feb 4, 1997 + +s/^/|P|K0|I10|O10|?~/ + +:next +s/|?./|?/ +s/|?#[ -}]*/|?/ +/|?!*[lLsS;:<>=]\{0,1\}$/N +/|?!*[-+*/%^<>=]/b binop +/^|.*|?[dpPfQXZvxkiosStT;:]/b binop +/|?[_0-9A-F.]/b number +/|?\[/b string +/|?l/b load +/|?L/b Load +/|?[sS]/b save +/|?c/ s/[^|]*// +/|?d/ s/[^~]*~/&&/ +/|?f/ s//&[pSbz0}s\1L\1l{xS\1]dS{xL}/ +/|?:/ s/|?:\([^{}]\)/|?~[s}L{s}L{s}L}s\1q]S}S}S{[L}1-d0>}S}l\1s\1L\1l{xS\1]dS{x/ +/|?[ ~ cdfxKIOT]/b next +/|?\n/b next +/|?[pP]/b print +/|?k/ s/^\([0-9]\{1,3\}\)\([.~].*|K\)[^|]*/\2\1/ +/|?i/ s/^\(-\{0,1\}[0-9]*\.\{0,1\}[0-9]\{1,\}\)\(~.*|I\)[^|]*/\2\1/ +/|?o/ s/^\(-\{0,1\}[1-9][0-9]*\.\{0,1\}[0-9]*\)\(~.*|O\)[^|]*/\2\1/ +/|?[kio]/b pop +/|?t/b trunc +/|??/b input +/|?Q/b break +/|?q/b quit +h +/|?[XZz]/b count +/|?v/b sqrt +s/.*|?\([^Y]\).*/\1 is unimplemented/ +s/\n/\\n/g +l +g +b next + +:print +/^-\{0,1\}[0-9]*\.\{0,1\}[0-9]\{1,\}~.*|?p/!b Print +/|O10|/b Print + +# Print a number in a non-decimal output base. Uses registers a,b,c,d. +# Handles fractional output bases (O<-1 or O>=1), unlike other dc's. +# Converts the fraction correctly on negative output bases, unlike +# UNIX dc. Also scales the fraction more accurately than UNIX dc. +# +s,|?p,&KSa0kd[[-]Psa0la-]Sad0>a[0P]sad0=a[A*2+]saOtd0>a1-ZSd[[[[ ]P]sclb1\ +!=cSbLdlbtZ[[[-]P0lb-sb]sclb0>c1+]sclb0!c]scdld>cscSdLbP]q]Sb\ +[t[1P1-d0bO1!c[A]sbdA=c[B]sbd\ +B=c[C]sbdC=c[D]sbdD=c[E]sbdE=c[F]sb]xscLbP]~Sd[dtdZOZ+k1O/Tdsb[.5]*[.1]O\ +X^*dZkdXK-1+ktsc0kdSb-[Lbdlb*lc+tdSbO*-lb0!=aldx]dsaxLbsb]sad1!>a[[.]POX\ ++sb1[SbO*dtdldx-LbO*dZlb!]\)/0\1/ +/^[^~]*~-\{0,1\}[0-9]*\.\{0,1\}[0-9]\{1,\}~/ !s/~[^~]*\(.*|?!*[^!=<>]\)/~0\1/ +h +/|?\*/b mul +/|?\//b div +/|?%/b rem +/|?^/b exp + +/|?[+-]/ s/^\(-*\)\([^~]*~\)\(-*\)\([^~]*~\).*|?\(-\{0,1\}\).*/\2\4s\3o\1\3\5/ +s/\([^.~]*\)\([^~]*~[^.~]*\)\(.*\)/<\1,\2,\3|=-~.0,123456789<>/ +/|?/{ + s/^\([<>]\)\(-[^~]*~-.*\1\)\(.\)/\3\2/ + s/^\(.\)\(.*|?!*\)\1/\2!\1/ + s/|?![^!]\(.\)/&l\1x/ + s/[^~]*~[^~]*~\(.*|?\)!*.\(.*\)|=.*/\1\2/ + b next +} +s/\(-*\)\1|=.*/;9876543210;9876543210/ +/o-/ s/;9876543210/;0123456789/ +s/^>\([^~]*~\)\([^~]*~\)s\(-*\)\(-*o\3\(-*\)\)/>\2\1s\5\4/ + +s/,\([0-9]*\)\.*\([^,]*\),\([0-9]*\)\.*\([0-9]*\)/\1,\2\3.,\4;0/ +:right1 + s/,\([0-9]\)\([^,]*\),;*\([0-9]\)\([0-9]*\);*0*/\1,\2\3,\4;0/ +t right1 +s/.\([^,]*\),~\(.*\);0~s\(-*\)o-*/\1~\30\2~/ + +:addsub1 + s/\(.\{0,1\}\)\(~[^,]*\)\([0-9]\)\(\.*\),\([^;]*\)\(;\([^;]*\(\3[^;]*\)\).*X*\1\(.*\)\)/\2,\4\5\9\8\7\6/ + s/,\([^~]*~\).\{10\}\(.\)[^;]\{0,9\}\([^;]\{0,1\}\)[^;]*/,\2\1\3/ +# could be done in one s/// if we could have >9 back-refs... +/^~.*~;/!b addsub1 + +:endbin +s/.\([^,]*\),\([0-9.]*\).*/\1\2/ +G +s/\n[^~]*~[^~]*// + +:normal +s/^\(-*\)0*\([0-9.]*[0-9]\)[^~]*/\1\2/ +s/^[^1-9~]*~/0~/ +b next + +:mul +s/\(-*\)\([0-9]*\)\.*\([0-9]*\)~\(-*\)\([0-9]*\)\.*\([0-9]*\).*|K\([^|]*\).*/\1\4\2\5.!\3\6,|\2<\3~\5>\6:\7;9876543210009909/ + +:mul1 + s/![0-9]\([^<]*\)<\([0-9]\{0,1\}\)\([^>]*\)>\([0-9]\{0,1\}\)/0!\1\2<\3\4>/ + /![0-9]/ s/\(:[^;]*\)\([1-9]\)\(0*\)\([^0]*\2\(.\).*X*\3\(9*\)\)/\1\5\6\4/ +/<~[^>]*>:0*;/!t mul1 + +s/\(-*\)\1\([^>]*\).*/;\2^>:9876543210aaaaaaaaa/ + +:mul2 + s/\([0-9]~*\)^/^\1/ + s/<\([0-9]*\)\(.*[~^]\)\([0-9]*\)>/\1<\2>\3/ + + :mul3 + s/>\([0-9]\)\(.*\1.\{9\}\(a*\)\)/\1>\2;9\38\37\36\35\34\33\32\31\30/ + s/\(;[^<]*\)\([0-9]\)<\([^;]*\).*\2[0-9]*\(.*\)/\4\1<\2\3/ + s/a[0-9]/a/g + s/a\{10\}/b/g + s/b\{10\}/c/g + /|0*[1-9][^>]*>0*[1-9]/b mul3 + + s/;/a9876543210;/ + s/a.\{9\}\(.\)[^;]*\([^,]*\)[0-9]\([.!]*\),/\2,\1\3/ + y/cb/ba/ +/|<^/!b mul2 +b endbin + +:div +# CDDET +/^[-.0]*[1-9]/ !i\ +divide by 0 +//!b pop +s/\(-*\)\([0-9]*\)\.*\([^~]*~-*\)\([0-9]*\)\.*\([^~]*\)/\2.\3\1;0\4.\5;0/ +:div1 + s/^\.0\([^.]*\)\.;*\([0-9]\)\([0-9]*\);*0*/.\1\2.\3;0/ + s/^\([^.]*\)\([0-9]\)\.\([^;]*;\)0*\([0-9]*\)\([0-9]\)\./\1.\2\30\4.\5/ +t div1 +s/~\(-*\)\1\(-*\);0*\([^;]*[0-9]\)[^~]*/~123456789743222111~\2\3/ +s/\(.\(.\)[^~]*\)[^9]*\2.\{8\}\(.\)[^~]*/\3~\1/ +s,|?.,&SaSadSaKdlaZ+LaX-1+[sb1]Sbd1>bkLatsbLa[dSa2lbla*-*dLa!=a]dSaxsakLasbLb*t, +b next + +:rem +s,|?%,&Sadla/LaKSa[999]k*Lak-, +b next + +:exp +# This decimal method is just a little faster than the binary method done +# totally in dc: 1LaKLb [kdSb*LbK]Sb [[.5]*d0ktdSaa[dk]sadKa]dsaxsasaLbsaLatLbk K1-kt, +b next + +# END OF GSU dc.sed diff --git a/src/regress/usr.bin/sed/hanoi.expected b/src/regress/usr.bin/sed/hanoi.expected new file mode 100644 index 000000000..ec39ea263 --- /dev/null +++ b/src/regress/usr.bin/sed/hanoi.expected @@ -0,0 +1,17 @@ +:abcd: : : +:abc : :d : +:ab :c :d : +:ab :cd : : +:a :cd :b : +:ad :c :b : +:ad : :bc : +:a : :bcd : +: :a :bcd : +: :ad :bc : +:c :ad :b : +:cd :a :b : +:cd :ab : : +:c :ab :d : +: :abc :d : +: :abcd: : +Done! Try another, or end with ^D. diff --git a/src/regress/usr.bin/sed/hanoi.in b/src/regress/usr.bin/sed/hanoi.in new file mode 100644 index 000000000..b24c6a6cf --- /dev/null +++ b/src/regress/usr.bin/sed/hanoi.in @@ -0,0 +1,2 @@ +:abcd: : : + diff --git a/src/regress/usr.bin/sed/hanoi.sed b/src/regress/usr.bin/sed/hanoi.sed new file mode 100644 index 000000000..d646788f1 --- /dev/null +++ b/src/regress/usr.bin/sed/hanoi.sed @@ -0,0 +1,103 @@ +# $OpenBSD: hanoi.sed,v 1.1 2008/10/10 14:33:34 millert Exp $ +# Towers of Hanoi in sed. +# +# from: @(#)hanoi.sed 8.1 (Berkeley) 6/6/93 +# +# +# Ex: +# Run "sed -f hanoi.sed", and enter: +# +# :abcd: : : +# +# note -- TWO carriage returns, a peculiarity of sed), this will output the +# sequence of states involved in moving 4 rings, the largest called "a" and +# the smallest called "d", from the first to the second of three towers, so +# that the rings on any tower at any time are in descending order of size. +# You can start with a different arrangement and a different number of rings, +# say :ce:b:ax: and it will give the shortest procedure for moving them all +# to the middle tower. The rules are: the names of the rings must all be +# lower-case letters, they must be input within 3 fields (representing the +# towers) and delimited by 4 colons, such that the letters within each field +# are in alphabetical order (i.e. rings are in descending order of size). +# +# For the benefit of anyone who wants to figure out the script, an "internal" +# line of the form +# b:0abx:1a2b3 :2 :3x2 +# has the following meaning: the material after the three markers :1, :2, +# and :3 represents the three towers; in this case the current set-up is +# ":ab : :x :". The numbers after a, b and x in these fields indicate +# that the next time it gets a chance, it will move a to tower 2, move b +# to tower 3, and move x to tower 2. The string after :0 just keeps track +# of the alphabetical order of the names of the rings. The b at the +# beginning means that it is now dealing with ring b (either about to move +# it, or re-evaluating where it should next be moved to). +# +# Although this version is "limited" to 26 rings because of the size of the +# alphabet, one could write a script using the same idea in which the rings +# were represented by arbitrary [strings][within][brackets], and in place of +# the built-in line of the script giving the order of the letters of the +# alphabet, it would accept from the user a line giving the ordering to be +# assumed, e.g. [ucbvax][decvax][hplabs][foo][bar]. +# +# George Bergman +# Math, UC Berkeley 94720 USA + +# cleaning, diagnostics +s/ *//g +/^$/d +/[^a-z:]/{a\ +Illegal characters: use only a-z and ":". Try again. +d +} +/^:[a-z]*:[a-z]*:[a-z]*:$/!{a\ +Incorrect format: use\ +\ : string1 : string2 : string3 :\ +Try again. +d +} +/\([a-z]\).*\1/{a\ +Repeated letters not allowed. Try again. +d +} +# initial formatting +h +s/[a-z]/ /g +G +s/^:\( *\):\( *\):\( *\):\n:\([a-z]*\):\([a-z]*\):\([a-z]*\):$/:1\4\2\3:2\5\1\3:3\6\1\2:0/ +s/[a-z]/&2/g +s/^/abcdefghijklmnopqrstuvwxyz/ +:a +s/^\(.\).*\1.*/&\1/ +s/.// +/^[^:]/ba +s/\([^0]*\)\(:0.*\)/\2\1:/ +s/^[^0]*0\(.\)/\1&/ +:b +# outputting current state without markers +h +s/.*:1/:/ +s/[123]//gp +g +:c +# establishing destinations +/^\(.\).*\1:1/td +/^\(.\).*:1[^:]*\11/s/^\(.\)\(.*\1\([a-z]\).*\)\3./\3\2\31/ +/^\(.\).*:1[^:]*\12/s/^\(.\)\(.*\1\([a-z]\).*\)\3./\3\2\33/ +/^\(.\).*:1[^:]*\13/s/^\(.\)\(.*\1\([a-z]\).*\)\3./\3\2\32/ +/^\(.\).*:2[^:]*\11/s/^\(.\)\(.*\1\([a-z]\).*\)\3./\3\2\33/ +/^\(.\).*:2[^:]*\12/s/^\(.\)\(.*\1\([a-z]\).*\)\3./\3\2\32/ +/^\(.\).*:2[^:]*\13/s/^\(.\)\(.*\1\([a-z]\).*\)\3./\3\2\31/ +/^\(.\).*:3[^:]*\11/s/^\(.\)\(.*\1\([a-z]\).*\)\3./\3\2\32/ +/^\(.\).*:3[^:]*\12/s/^\(.\)\(.*\1\([a-z]\).*\)\3./\3\2\31/ +/^\(.\).*:3[^:]*\13/s/^\(.\)\(.*\1\([a-z]\).*\)\3./\3\2\33/ +bc +# iterate back to find smallest out-of-place ring +:d +s/^\(.\)\(:0[^:]*\([^:]\)\1.*:\([123]\)[^:]*\1\)\4/\3\2\4/ +td +# move said ring (right, resp. left) +s/^\(.\)\(.*\)\1\([23]\)\(.*:\3[^ ]*\) /\1\2 \4\1\3/ +s/^\(.\)\(.*:\([12]\)[^ ]*\) \(.*\)\1\3/\1\2\1\3\4 / +tb +s/.*/Done! Try another, or end with ^D./p +d diff --git a/src/regress/usr.bin/sed/math.expected b/src/regress/usr.bin/sed/math.expected new file mode 100644 index 000000000..4cbffde44 --- /dev/null +++ b/src/regress/usr.bin/sed/math.expected @@ -0,0 +1,2 @@ +25 +24 diff --git a/src/regress/usr.bin/sed/math.in b/src/regress/usr.bin/sed/math.in new file mode 100644 index 000000000..f5c9ef578 --- /dev/null +++ b/src/regress/usr.bin/sed/math.in @@ -0,0 +1,2 @@ +4+7*3 +(4+8)*2 diff --git a/src/regress/usr.bin/sed/math.sed b/src/regress/usr.bin/sed/math.sed new file mode 100644 index 000000000..4c8fb4ee0 --- /dev/null +++ b/src/regress/usr.bin/sed/math.sed @@ -0,0 +1,164 @@ +# $OpenBSD: math.sed,v 1.1 2008/10/10 14:33:34 millert Exp $ +# +# from: @(#)math.sed 8.1 (Berkeley) 6/6/93 +# +# Addition and multiplication in sed. +# ++ for a limited time only do (expr) too!!! +# +# Kevin S Braunsdorf, PUCC UNIX Group, ksb@cc.purdue.edu. +# +# Ex: +# echo "4+7*3" | sed -f %f + +# make sure the expression is well formed +s/[ ]//g +/[+*\/-]$/{ + a\ + poorly formed expression, operator on the end + q +} +/^[+*\/]/{ + a\ + poorly formed expression, leading operator + q +} + +# fill hold space with done token +x +s/^.*/done/ +x + +# main loop, process operators (*, + and () ) +: loop +/^\+/{ + s/// + b loop +} +/^\(.*\)(\([^)]*\))\(.*\)$/{ + H + s//\2/ + x + s/^\(.*\)\n\(.*\)(\([^()]*\))\(.*\)$/()\2@\4@\1/ + x + b loop +} +/^[0-9]*\*/b mul +/^\([0-9]*\)\+\([0-9+*]*\*[0-9]*\)$/{ + s//\2+\1/ + b loop +} +/^[0-9]*\+/{ + s/$/=/ + b add +} +x +/^done$/{ + x + p + d +} +/^()/{ + s/// + x + G + s/\(.*\)\n\([^@]*\)@\([^@]*\)@\(.*\)/\2\1\3/ + x + s/[^@]*@[^@]*@\(.*\)/\1/ + x + b loop +} +i\ +help, stack problem +p +x +p +q + +# turn mul into add until 1*x -> x +: mul +/^0*1\*/{ + s/// + b loop +} +/^\([0-9]*\)0\*/{ + s/^\([0-9]*\)0\*\([0-9]*\)/\1*\20/ + b mul +} +s/^\([0-9]*\)1\*/\10*/ +s/^\([0-9]*\)2\*/\11*/ +s/^\([0-9]*\)3\*/\12*/ +s/^\([0-9]*\)4\*/\13*/ +s/^\([0-9]*\)5\*/\14*/ +s/^\([0-9]*\)6\*/\15*/ +s/^\([0-9]*\)7\*/\16*/ +s/^\([0-9]*\)8\*/\17*/ +s/^\([0-9]*\)9\*/\18*/ +s/\*\([0-9*]*\)/*\1+\1/ +b mul + +# get rid of a plus term until 0+x -> x +: add +/^\+\([0-9+*]*\)=/{ + s//\1/ + b loop +} +/^\([0-9*]*\)\+=/{ + s//\1/ + b loop +} +/^\([0-9]*\)\+\([0-9*+]*\)\+=/{ + s//\2+\1/ + b loop +} +/^\([0-9]*\)0\+\([0-9]*\)\([0-9]\)=/{ + s//\1+\2=\3/ + b add +} +/^\([0-9]*\)\([0-9]\)\+\([0-9]*\)0=/{ + s//\1+\3=\2/ + b add +} +/^\([0-9]*\)0\+\([0-9*+]*\)\+\([0-9]*\)\([0-9]\)=/{ + s//\1+\2+\3=\4/ + b add +} +/^\([0-9]*\)\([0-9]\)\+\([0-9*+]*\)\+\([0-9]*\)0=/{ + s//\1+\3+\4=\2/ + b add +} +s/^\([0-9]*\)1\+/\10+/ +s/^\([0-9]*\)2\+/\11+/ +s/^\([0-9]*\)3\+/\12+/ +s/^\([0-9]*\)4\+/\13+/ +s/^\([0-9]*\)5\+/\14+/ +s/^\([0-9]*\)6\+/\15+/ +s/^\([0-9]*\)7\+/\16+/ +s/^\([0-9]*\)8\+/\17+/ +s/^\([0-9]*\)9\+/\18+/ + +s/9=\([0-9]*\)$/_=\1/ +s/8=\([0-9]*\)$/9=\1/ +s/7=\([0-9]*\)$/8=\1/ +s/6=\([0-9]*\)$/7=\1/ +s/5=\([0-9]*\)$/6=\1/ +s/4=\([0-9]*\)$/5=\1/ +s/3=\([0-9]*\)$/4=\1/ +s/2=\([0-9]*\)$/3=\1/ +s/1=\([0-9]*\)$/2=\1/ +/_/{ + s//_0/ + : inc + s/9_/_0/ + s/8_/9/ + s/7_/8/ + s/6_/7/ + s/5_/6/ + s/4_/5/ + s/3_/4/ + s/2_/3/ + s/1_/2/ + s/0_/1/ + s/\+_/+1/ + /_/b inc +} +b add diff --git a/src/regress/usr.bin/sed/obj b/src/regress/usr.bin/sed/obj new file mode 120000 index 000000000..68a59ccd4 --- /dev/null +++ b/src/regress/usr.bin/sed/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/sed \ No newline at end of file diff --git a/src/regress/usr.bin/sed/sedtest.expected b/src/regress/usr.bin/sed/sedtest.expected new file mode 100644 index 000000000..744527154 --- /dev/null +++ b/src/regress/usr.bin/sed/sedtest.expected @@ -0,0 +1,4508 @@ +============ +Test 1.1:101 +============ +Testing argument parsing +First type +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 + +============ +Test 1.2:102 +============ +e1_l1_1 +e1_l1_2 +e1_l1_3 +e1_l1_4 +e1_l1_5 +e1_l1_6 +e1_l1_7 +e1_l1_8 +e1_l1_9 +e1_l1_10 +e1_l1_11 +e1_l1_12 +e1_l1_13 +e1_l1_14 + +============ +Test 1.3:103 +============ +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 + +============ +Test 1.4:104 +============ +e1_l1_1 +e1_l1_2 +e1_l1_3 +e1_l1_4 +e1_l1_5 +e1_l1_6 +e1_l1_7 +e1_l1_8 +e1_l1_9 +e1_l1_10 +e1_l1_11 +e1_l1_12 +e1_l1_13 +e1_l1_14 +Second type + +============== +Test 1.4.1:105 +============== +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 + +============ +Test 1.5:106 +============ +s1_l1_1 +s1_l1_1 +s1_l1_2 +s1_l1_2 +s1_l1_3 +s1_l1_3 +s1_l1_4 +s1_l1_4 +s1_l1_5 +s1_l1_5 +s1_l1_6 +s1_l1_6 +s1_l1_7 +s1_l1_7 +s1_l1_8 +s1_l1_8 +s1_l1_9 +s1_l1_9 +s1_l1_10 +s1_l1_10 +s1_l1_11 +s1_l1_11 +s1_l1_12 +s1_l1_12 +s1_l1_13 +s1_l1_13 +s1_l1_14 +s1_l1_14 + +============ +Test 1.6:107 +============ +s1_l1_1 +s1_l1_1 +s1_l1_2 +s1_l1_2 +s1_l1_3 +s1_l1_3 +s1_l1_4 +s1_l1_4 +s1_l1_5 +s1_l1_5 +s1_l1_6 +s1_l1_6 +s1_l1_7 +s1_l1_7 +s1_l1_8 +s1_l1_8 +s1_l1_9 +s1_l1_9 +s1_l1_10 +s1_l1_10 +s1_l1_11 +s1_l1_11 +s1_l1_12 +s1_l1_12 +s1_l1_13 +s1_l1_13 +s1_l1_14 +s1_l1_14 + +============ +Test 1.7:108 +============ +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 + +============ +Test 1.8:109 +============ +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 + +============ +Test 1.9:110 +============ +s1_l1_1 +s1_l1_2 +s1_l1_3 +s1_l1_4 +s1_l1_5 +s1_l1_6 +s1_l1_7 +s1_l1_8 +s1_l1_9 +s1_l1_10 +s1_l1_11 +s1_l1_12 +s1_l1_13 +s1_l1_14 + +============= +Test 1.10:111 +============= +s1_l1_1 +s1_l1_2 +s1_l1_3 +s1_l1_4 +s1_l1_5 +s1_l1_6 +s1_l1_7 +s1_l1_8 +s1_l1_9 +s1_l1_10 +s1_l1_11 +s1_l1_12 +s1_l1_13 +s1_l1_14 + +============= +Test 1.11:112 +============= +e1_l1_1 +e1_l1_2 +e1_l1_3 +e1_l1_4 +e1_l1_5 +e1_l1_6 +e1_l1_7 +e1_l1_8 +e1_l1_9 +e1_l1_10 +e1_l1_11 +e1_l1_12 +e1_l1_13 +e1_l1_14 + +============= +Test 1.12:113 +============= +e1_l1_1 +e1_l1_2 +e1_l1_3 +e1_l1_4 +e1_l1_5 +e1_l1_6 +e1_l1_7 +e1_l1_8 +e1_l1_9 +e1_l1_10 +e1_l1_11 +e1_l1_12 +e1_l1_13 +e1_l1_14 + +============= +Test 1.13:114 +============= +e1_l1_1 +e2_e1_l1_1 +e2_e1_l1_1 +e1_l1_2 +e2_e1_l1_2 +e2_e1_l1_2 +e1_l1_3 +e2_e1_l1_3 +e2_e1_l1_3 +e1_l1_4 +e2_e1_l1_4 +e2_e1_l1_4 +e1_l1_5 +e2_e1_l1_5 +e2_e1_l1_5 +e1_l1_6 +e2_e1_l1_6 +e2_e1_l1_6 +e1_l1_7 +e2_e1_l1_7 +e2_e1_l1_7 +e1_l1_8 +e2_e1_l1_8 +e2_e1_l1_8 +e1_l1_9 +e2_e1_l1_9 +e2_e1_l1_9 +e1_l1_10 +e2_e1_l1_10 +e2_e1_l1_10 +e1_l1_11 +e2_e1_l1_11 +e2_e1_l1_11 +e1_l1_12 +e2_e1_l1_12 +e2_e1_l1_12 +e1_l1_13 +e2_e1_l1_13 +e2_e1_l1_13 +e1_l1_14 +e2_e1_l1_14 +e2_e1_l1_14 + +============= +Test 1.14:115 +============= +s1_l1_1 +s2_s1_l1_1 +s2_s1_l1_1 +s1_l1_2 +s2_s1_l1_2 +s2_s1_l1_2 +s1_l1_3 +s2_s1_l1_3 +s2_s1_l1_3 +s1_l1_4 +s2_s1_l1_4 +s2_s1_l1_4 +s1_l1_5 +s2_s1_l1_5 +s2_s1_l1_5 +s1_l1_6 +s2_s1_l1_6 +s2_s1_l1_6 +s1_l1_7 +s2_s1_l1_7 +s2_s1_l1_7 +s1_l1_8 +s2_s1_l1_8 +s2_s1_l1_8 +s1_l1_9 +s2_s1_l1_9 +s2_s1_l1_9 +s1_l1_10 +s2_s1_l1_10 +s2_s1_l1_10 +s1_l1_11 +s2_s1_l1_11 +s2_s1_l1_11 +s1_l1_12 +s2_s1_l1_12 +s2_s1_l1_12 +s1_l1_13 +s2_s1_l1_13 +s2_s1_l1_13 +s1_l1_14 +s2_s1_l1_14 +s2_s1_l1_14 + +============= +Test 1.15:116 +============= +e1_l1_1 +s1_e1_l1_1 +s1_e1_l1_1 +e1_l1_2 +s1_e1_l1_2 +s1_e1_l1_2 +e1_l1_3 +s1_e1_l1_3 +s1_e1_l1_3 +e1_l1_4 +s1_e1_l1_4 +s1_e1_l1_4 +e1_l1_5 +s1_e1_l1_5 +s1_e1_l1_5 +e1_l1_6 +s1_e1_l1_6 +s1_e1_l1_6 +e1_l1_7 +s1_e1_l1_7 +s1_e1_l1_7 +e1_l1_8 +s1_e1_l1_8 +s1_e1_l1_8 +e1_l1_9 +s1_e1_l1_9 +s1_e1_l1_9 +e1_l1_10 +s1_e1_l1_10 +s1_e1_l1_10 +e1_l1_11 +s1_e1_l1_11 +s1_e1_l1_11 +e1_l1_12 +s1_e1_l1_12 +s1_e1_l1_12 +e1_l1_13 +s1_e1_l1_13 +s1_e1_l1_13 +e1_l1_14 +s1_e1_l1_14 +s1_e1_l1_14 + +============= +Test 1.16:117 +============= +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 + +============= +Test 1.17:118 +============= +l1_1 +l1_1 +l1_2 +l1_2 +l1_3 +l1_3 +l1_4 +l1_4 +l1_5 +l1_5 +l1_6 +l1_6 +l1_7 +l1_7 +l1_8 +l1_8 +l1_9 +l1_9 +l1_10 +l1_10 +l1_11 +l1_11 +l1_12 +l1_12 +l1_13 +l1_13 +l1_14 +l1_14 + +============= +Test 1.18:119 +============= +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 +Testing address ranges + +============ +Test 2.1:120 +============ +l1_4 + +============ +Test 2.2:121 +============ +l2_6 + +============ +Test 2.3:122 +============ +l1_14 + +============ +Test 2.4:123 +============ +l2_9 + +============ +Test 2.5:124 +============ + +============ +Test 2.6:125 +============ +l2_9 + +============ +Test 2.7:126 +============ + +============ +Test 2.8:127 +============ + +============ +Test 2.9:128 +============ +l1_7 + +============= +Test 2.10:129 +============= +l1_7 + +============= +Test 2.11:130 +============= +l1_7 + +============= +Test 2.12:131 +============= +l1_1 +l1_2 +l1_3 +l1_4 + +============= +Test 2.13:132 +============= +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 +l2_1 +l2_2 +l2_3 +l2_4 +l2_5 +l2_6 +l2_7 +l2_8 +l2_9 + +============= +Test 2.14:133 +============= +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 +l2_1 +l2_2 +l2_3 +l2_4 +l2_5 +l2_6 +l2_7 +l2_8 +l2_9 + +============= +Test 2.15:134 +============= +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 +l2_1 +l2_2 +l2_3 +l2_4 +l2_5 +l2_6 +l2_7 +l2_8 +l2_9 + +============= +Test 2.16:135 +============= +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 +l2_1 +l2_2 +l2_3 +l2_4 +l2_5 +l2_6 + +============= +Test 2.17:136 +============= +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_14 +l2_1 +l2_2 +l2_3 +l2_4 +l2_5 +l2_6 +l2_7 +l2_8 +l2_9 + +============= +Test 2.18:137 +============= +l2_3 +l2_4 +l2_5 +l2_6 +l2_7 +l2_8 +l2_9 + +============= +Test 2.19:138 +============= +l1_12 + +============= +Test 2.20:139 +============= +l1_7 +Testing commands +Brace and other grouping + +============ +Test 3.1:140 +============ +l1_1 +l1_2 +l1_3 +^l1T4$ +^l1T5$ +^l1T6$ +^l1T7$ +^l1T8$ +^l1T9$ +^l1T10$ +^l1T11$ +^l1T12$ +l1_13 +l1_14 + +============ +Test 3.2:141 +============ +l1_1 +l1_2 +l1_3 +^l1_4 +^l1_5 +^l1_6$ +^l1_7$ +^l1T8$ +^l1_9$ +^l1_10$ +^l1_11 +^l1_12 +l1_13 +l1_14 + +============ +Test 3.3:142 +============ +^l1T1$ +^l1T2$ +^l1T3$ +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +^l1T13$ +^l1T14$ + +============ +Test 3.4:143 +============ +^l1_1 +^l1_2 +^l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +^l1_13 +^l1_14 +Testing a c d and i commands + +============ +Test 4.1:144 +============ +before_il1_1 +after_ibefore_il1_1 +before_il1_2 +after_ibefore_il1_2 +before_il1_3 +after_ibefore_il1_3 +before_il1_4 +after_ibefore_il1_4 +before_il1_5 +after_ibefore_il1_5 +before_il1_6 +after_ibefore_il1_6 +before_il1_7 +after_ibefore_il1_7 +before_il1_8 +after_ibefore_il1_8 +before_il1_9 +after_ibefore_il1_9 +before_il1_10 +after_ibefore_il1_10 +before_il1_11 +after_ibefore_il1_11 +before_il1_12 +after_ibefore_il1_12 +before_il1_13 +after_ibefore_il1_13 +before_il1_14 +after_ibefore_il1_14 +before_il2_1 +after_ibefore_il2_1 +before_il2_2 +after_ibefore_il2_2 +before_il2_3 +after_ibefore_il2_3 +before_il2_4 +after_ibefore_il2_4 +before_il2_5 +after_ibefore_il2_5 +before_il2_6 +inserted +after_ibefore_il2_6 +before_il2_7 +after_ibefore_il2_7 +before_il2_8 +after_ibefore_il2_8 +before_il2_9 +after_ibefore_il2_9 + +============ +Test 4.2:145 +============ +before_al1_1 +after_abefore_al1_1 +before_al1_2 +after_abefore_al1_2 +before_al1_3 +after_abefore_al1_3 +before_al1_4 +after_abefore_al1_4 +before_a5-12l1_5 +after_abefore_a5-12l1_5 +appended +before_a5-12l1_6 +after_abefore_a5-12l1_6 +appended +before_a5-12l1_7 +after_abefore_a5-12l1_7 +appended +before_a5-12l1_8 +after_abefore_a5-12l1_8 +appended +before_a5-12l1_9 +after_abefore_a5-12l1_9 +appended +before_a5-12l1_10 +after_abefore_a5-12l1_10 +appended +before_a5-12l1_11 +after_abefore_a5-12l1_11 +appended +before_a5-12l1_12 +after_abefore_a5-12l1_12 +appended +before_al1_13 +after_abefore_al1_13 +before_al1_14 +after_abefore_al1_14 +before_al2_1 +after_abefore_al2_1 +before_al2_2 +after_abefore_al2_2 +before_al2_3 +after_abefore_al2_3 +before_al2_4 +after_abefore_al2_4 +before_al2_5 +after_abefore_al2_5 +before_al2_6 +after_abefore_al2_6 +before_al2_7 +after_abefore_al2_7 +before_al2_8 +after_abefore_al2_8 +before_al2_9 +after_abefore_al2_9 + +============ +Test 4.3:146 +============ +^l1_1 +^l1_1$ +appended +^l1_2 +^l1_2$ +appended +^l1_3 +^l1_3$ +appended +^l1_4 +^l1_4$ +appended +^l1_5 +^l1_5$ +appended +^l1_6 +^l1_6$ +appended +^l1_7 +^l1_7$ +appended +^l1_8 +appended +^l1_8 +l1_9$ +^l1_10 +appended +^l1_10 +l1_11$ +^l1_12 +^l1_12$ +appended +^l1_13 +^l1_13$ +appended +^l1_14 +^l1_14$ +appended +^l2_1 +^l2_1$ +^l2_2 +^l2_2$ +^l2_3 +^l2_3$ +^l2_4 +^l2_4$ +^l2_5 +^l2_5$ +^l2_6 +^l2_6$ +^l2_7 +^l2_7$ +^l2_8 +^l2_8$ +^l2_9 +^l2_9$ + +============ +Test 4.4:147 +============ +hello +hello +hello +hello +hello +hello +hello +hello +hello +hello +hello +hello +hello +hello + +============ +Test 4.5:148 +============ +hello + +============ +Test 4.6:149 +============ +hello + +============ +Test 4.8:150 +============ +Testing labels and branching + +============ +Test 5.1:151 +============ +label2_l1_1 +label3_label2_l1_1 +label1_l1_2 +label1_l1_3 +label1_l1_4 +label1_l1_5 +label1_l1_6 +label1_l1_7 +label1_l1_8 +label1_l1_9 +label1_l1_10 +label1_l1_11 +label1_l1_12 +label2_l1_13 +label3_label2_l1_13 +label2_l1_14 +label3_label2_l1_14 + +============ +Test 5.2:152 +============ +tested l2_1 +tested l2_2 +tested l2_3 +tested l2_4 +tested l2_5 +tested l2_6 +tested l2_7 +tested l2_8 +tested l2_9 +tested l2_10 +tested l2_11 +tested l2_12 +tested l2_13 +tested l2_14 + +============ +Test 5.4:153 +============ +^l1_1$ +^l1_2$ +^l1_3$ +^l1_4$ +^l1_5$ +^l1_6$ +^l1_7$ +^l1_8$ +l1_9$ +l1_10$ +l1_11$ +l1_12$ +l1_13$ +l1_14$ + +============ +Test 5.5:154 +============ +^l1_1 +^l1_2 +^l1_4 +^l1_6 +^l1_8 + +============ +Test 5.6:155 +============ +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 + +============ +Test 5.7:156 +============ +l1_1 +l1_2 +l1_3 +l1_4 +hello +l1_5 + +============ +Test 5.8:157 +============ +m1_1 +m1_2 +m1_3 +m1_4 +m1_5 +m1_6 +m1_7 +m1_8 +m1_9 +m1_10 +m1_11 +m1_12 +m1_13 +m1_14 +Pattern space commands + +============ +Test 6.1:158 +============ +changed +changed +changed +changed +changed +changed +changed +changed +changed +changed +changed +changed +changed +changed + +============ +Test 6.2:159 +============ +l1_1 +l1_2 +l1_3 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 + +============ +Test 6.4:160 +============ +l1_1 +l1_2 +l1_3 +l1_2 +l1_3 +l1_5 +l1_2 +l1_3 +l1_2 +l1_3 +l1_6 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 + +============ +Test 6.5:161 +============ +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 + +============ +Test 6.6:162 +============ +Testing print and file routines + +============ +Test 7.1:163 +============ +\001\002\003\004\005\006\a\b\t$ +\v\f\r\016\017\020\021\022\023\024\025\026\027\030\031\032\033\ +\034\035\036\037 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK\ +LMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\177\200\ +\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\ +\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\ +\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\ +\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\ +\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\ +\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\ +\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\ +\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\ +\371\372\373\374\375\376\377$ +$ + +============ +Test 7.2:164 +============ +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 +15 +l2_1 +16 +l2_2 +17 +l2_3 +18 +l2_4 +19 +l2_5 +20 +l2_6 +21 +l2_7 +22 +l2_8 +23 +l2_9 + +============ +Test 7.3:165 +============ +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 +w results +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 + +============ +Test 7.4:166 +============ +l1_1 +l1_2 +l1_3 +l1_4 +l2_1 +l2_2 +l2_3 +l2_4 +l2_5 +l2_6 +l2_7 +l2_8 +l2_9 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 + +============ +Test 7.5:167 +============ +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 + +============ +Test 7.6:168 +============ +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 + +============ +Test 7.7:169 +============ +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +Al1_1 +Al1_2 +Al1_3 +Al1_4 +Al1_5 +Al1_6 +Al1_7 +Al1_8 +Al1_9 +Al1_10 +Al1_11 +Al1_12 +Al1_13 +Al1_14 +AaniaamaaliiaalaaaAl1_1 +AaniaamaaliiaalaaaAl1_2 +AaniaamaaliiaalaaaAl1_3 +AaniaamaaliiaalaaaAl1_4 +AaniaamaaliiaalaaaAl1_5 +AaniaamaaliiaalaaaAl1_6 +AaniaamaaliiaalaaaAl1_7 +AaniaamaaliiaalaaaAl1_8 +AaniaamaaliiaalaaaAl1_9 +AaniaamaaliiaalaaaAl1_10 +AaniaamaaliiaalaaaAl1_11 +AaniaamaaliiaalaaaAl1_12 +AaniaamaaliiaalaaaAl1_13 +AaniaamaaliiaalaaaAl1_14 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +aAl1_1 +aAl1_2 +aAl1_3 +aAl1_4 +aAl1_5 +aAl1_6 +aAl1_7 +aAl1_8 +aAl1_9 +aAl1_10 +aAl1_11 +aAl1_12 +aAl1_13 +aAl1_14 +aaaAl1_1 +aaaAl1_2 +aaaAl1_3 +aaaAl1_4 +aaaAl1_5 +aaaAl1_6 +aaaAl1_7 +aaaAl1_8 +aaaAl1_9 +aaaAl1_10 +aaaAl1_11 +aaaAl1_12 +aaaAl1_13 +aaaAl1_14 +aalaaaAl1_1 +aalaaaAl1_2 +aalaaaAl1_3 +aalaaaAl1_4 +aalaaaAl1_5 +aalaaaAl1_6 +aalaaaAl1_7 +aalaaaAl1_8 +aalaaaAl1_9 +aalaaaAl1_10 +aalaaaAl1_11 +aalaaaAl1_12 +aalaaaAl1_13 +aalaaaAl1_14 +aaliiaalaaaAl1_1 +aaliiaalaaaAl1_2 +aaliiaalaaaAl1_3 +aaliiaalaaaAl1_4 +aaliiaalaaaAl1_5 +aaliiaalaaaAl1_6 +aaliiaalaaaAl1_7 +aaliiaalaaaAl1_8 +aaliiaalaaaAl1_9 +aaliiaalaaaAl1_10 +aaliiaalaaaAl1_11 +aaliiaalaaaAl1_12 +aaliiaalaaaAl1_13 +aaliiaalaaaAl1_14 +aamaaliiaalaaaAl1_1 +aamaaliiaalaaaAl1_2 +aamaaliiaalaaaAl1_3 +aamaaliiaalaaaAl1_4 +aamaaliiaalaaaAl1_5 +aamaaliiaalaaaAl1_6 +aamaaliiaalaaaAl1_7 +aamaaliiaalaaaAl1_8 +aamaaliiaalaaaAl1_9 +aamaaliiaalaaaAl1_10 +aamaaliiaalaaaAl1_11 +aamaaliiaalaaaAl1_12 +aamaaliiaalaaaAl1_13 +aamaaliiaalaaaAl1_14 +aardvarkAaniaamaaliiaalaaaAl1_1 +aardvarkAaniaamaaliiaalaaaAl1_2 +aardvarkAaniaamaaliiaalaaaAl1_3 +aardvarkAaniaamaaliiaalaaaAl1_4 +aardvarkAaniaamaaliiaalaaaAl1_5 +aardvarkAaniaamaaliiaalaaaAl1_6 +aardvarkAaniaamaaliiaalaaaAl1_7 +aardvarkAaniaamaaliiaalaaaAl1_8 +aardvarkAaniaamaaliiaalaaaAl1_9 +aardvarkAaniaamaaliiaalaaaAl1_10 +aardvarkAaniaamaaliiaalaaaAl1_11 +aardvarkAaniaamaaliiaalaaaAl1_12 +aardvarkAaniaamaaliiaalaaaAl1_13 +aardvarkAaniaamaaliiaalaaaAl1_14 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +aardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 +abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 + +============ +Test 7.8:170 +============ + +Testing substitution commands + +============ +Test 8.1:171 +============ +XXXX +XXXX +XXXX +XXXX +XXXX +XXXX +XXXX +XXXX +XXXX +XXXXX +XXXXX +XXXXX +XXXXX +XXXXX + +============ +Test 8.2:172 +============ +XXXX +XXXX +XXXX +XXXX +XXXX +XXXX +XXXX +XXXX +XXXX +XXXXX +XXXXX +XXXXX +XXXXX +XXXXX + +============ +Test 8.4:173 +============ +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 + +============ +Test 8.5:174 +============ +l1X1 +l1X2 +l1X3 +l1X4 +l1X5 +l1X6 +l1X7 +l1X8 +l1X9 +l1X10 +l1X11 +l1X12 +l1X13 +l1X14 + +============ +Test 8.6:175 +============ +(l)(1)(_)(1) +(l)(1)(_)(2) +(l)(1)(_)(3) +(l)(1)(_)(4) +(l)(1)(_)(5) +(l)(1)(_)(6) +(l)(1)(_)(7) +(l)(1)(_)(8) +(l)(1)(_)(9) +(l)(1)(_)(1)(0) +(l)(1)(_)(1)(1) +(l)(1)(_)(1)(2) +(l)(1)(_)(1)(3) +(l)(1)(_)(1)(4) + +============ +Test 8.7:176 +============ +(&)(&)(&)(&) +(&)(&)(&)(&) +(&)(&)(&)(&) +(&)(&)(&)(&) +(&)(&)(&)(&) +(&)(&)(&)(&) +(&)(&)(&)(&) +(&)(&)(&)(&) +(&)(&)(&)(&) +(&)(&)(&)(&)(&) +(&)(&)(&)(&)(&) +(&)(&)(&)(&)(&) +(&)(&)(&)(&)(&) +(&)(&)(&)(&)(&) + +============ +Test 8.8:177 +============ +x_x1xl1 +x_x1xl2 +x_x1xl3 +x_x1xl4 +x_x1xl5 +x_x1xl6 +x_x1xl7 +x_x1xl8 +x_x1xl9 +x_x1xl10 +x_x1xl11 +x_x1xl12 +x_x1xl13 +x_x1xl14 + +============ +Test 8.9:178 +============ +l1u0 +u1 +u21 +l1u0 +u1 +u22 +l1u0 +u1 +u23 +l1u0 +u1 +u24 +l1u0 +u1 +u25 +l1u0 +u1 +u26 +l1u0 +u1 +u27 +l1u0 +u1 +u28 +l1u0 +u1 +u29 +l1u0 +u1 +u210 +l1u0 +u1 +u211 +l1u0 +u1 +u212 +l1u0 +u1 +u213 +l1u0 +u1 +u214 + +============= +Test 8.10:179 +============= +l1_X +l1_X +l1_X +l1_X +l1_X +l1_X +l1_X +l1_X +l1_X +l1_X0 +l1_X1 +l1_X2 +l1_X3 +l1_X4 + +============= +Test 8.11:180 +============= +lX_1 +lX_2 +lX_3 +lX_4 +lX_5 +lX_6 +lX_7 +lX_8 +lX_9 +lX_10 +lX_11 +lX_12 +lX_13 +lX_14 +s wfile results +lX_1 +lX_2 +lX_3 +lX_4 +lX_5 +lX_6 +lX_7 +lX_8 +lX_9 +lX_10 +lX_11 +lX_12 +lX_13 +lX_14 + +============= +Test 8.12:181 +============= +lX_X +lX_X +lX_X +lX_4 +lX_5 +lX_6 +lX_7 +lX_8 +lX_9 +lX_X0 +lX_XX +lX_XX +lX_XX +lX_X4 + +============= +Test 8.13:182 +============= +l8_8 +l8_7 +l8_6 +l8_5 +l8_4 +l8_3 +l8_2 +l8_1 +l8_0 +l8_89 +l8_88 +l8_87 +l8_86 +l8_85 + +============= +Test 8.14:183 +============= +l8_8 +l8_7 +l8_6 +l8_5 +l8_4 +l8_3 +l8_2 +l8_1 +l8_0 +l8_89 +l8_88 +l8_87 +l8_86 +l8_85 + +============= +Test 8.15:184 +============= +l1_1Xl1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 + +============= +Test 8.16:185 +============= +eeefff +Xeefff +XYefff +XYeYff +XYeYYf +XYeYYY +XYeYYY diff --git a/src/regress/usr.bin/sed/sedtest.sh b/src/regress/usr.bin/sed/sedtest.sh new file mode 100644 index 000000000..669ad7596 --- /dev/null +++ b/src/regress/usr.bin/sed/sedtest.sh @@ -0,0 +1,448 @@ +#!/bin/sh - +# $OpenBSD: sedtest.sh,v 1.1 2008/10/10 14:33:34 millert Exp $ +# +# Copyright (c) 1992 Diomidis Spinellis. +# Copyright (c) 1992, 1993 +# The Regents of the University of California. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the University nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# from: @(#)sed.test 8.1 (Berkeley) 6/6/93 +# + +# sed Regression Tests +# +# The following files are created: +# lines[1-4], script1, script2 +# Test results are stored in sed.out + +main() +{ + TEST=${1-sed} + TESTLOG=${2-sed.out} + DICT=${3-/usr/share/dict/words} + + rm -f lines1 lines2 + i=1 + while [ $i -lt 15 ]; do + echo "l1_$i" >> lines1 + if [ $i -lt 10 ]; then + echo "l2_$i" >> lines2 + fi + i=$((i + 1)) + done + + tests $TEST $TESTLOG +} + +tests() +{ + SED=$1 + LOG=$2 + rm -f $LOG + MARK=100 + + exec 3>&0 4>&1 5>&2 + exec 0/dev/null 2>/dev/null + test_error + exec 0>&3 1>&4 2>&5 + + exec 4>&1 5>&2 + test_args + test_addr + echo Testing commands + test_group + test_acid + test_branch + test_pattern + test_print + test_subst + exec 1>&4 2>&5 +} + +mark() +{ + exec 2>&1 >>$LOG + test $MARK -ne 100 && echo "" + MARK=$((MARK + 1)) + echo "Test $1:$MARK" | sed 's/./=/g' + echo "Test $1:$MARK" + echo "Test $1:$MARK" | sed 's/./=/g' +} + +test_args() +{ + mark '1.1' + echo Testing argument parsing + echo First type + $SED 's/^/e1_/p' lines1 + mark '1.2' ; $SED -n 's/^/e1_/p' lines1 + mark '1.3' + $SED 's/^/e1_/p' script1 + echo 's/^/s2_/p' >script2 + mark '1.5' + $SED -f script1 lines1 + mark '1.6' + $SED -f script1 script1 <lines3 + # GNU and SunOS sed behave differently here + mark '7.1' + $SED -n l lines3 + mark '7.2' ; $SED -e '/l2_/=' lines1 lines2 + rm -f lines4 + mark '7.3' ; $SED -e '3,12w lines4' lines1 + echo w results + cat lines4 + mark '7.4' ; $SED -e '4r lines2' lines1 + mark '7.5' ; $SED -e '5r /dev/dds' lines1 + mark '7.6' ; $SED -e '6r /dev/null' lines1 + mark '7.7' + sed '200q' $DICT | sed 's$.*$s/^/&/w tmpdir/&$' >script1 + rm -rf tmpdir + mkdir tmpdir + $SED -f script1 lines1 + cat tmpdir/* + rm -rf tmpdir + mark '7.8' + echo line1 > lines3 + echo "" >> lines3 + $SED -n -e '$p' lines3 /dev/null +} + +test_subst() +{ + echo Testing substitution commands + mark '8.1' ; $SED -e 's/./X/g' lines1 + mark '8.2' ; $SED -e 's,.,X,g' lines1 +# GNU and SunOS sed thinks we are escaping . as wildcard, not as separator +# mark '8.3' ; $SED -e 's.\..X.g' lines1 +# POSIX does not say that this should work +# mark '8.4' ; $SED -e 's/[/]/Q/' lines1 + mark '8.4' ; $SED -e 's/[\/]/Q/' lines1 + mark '8.5' ; $SED -e 's_\__X_' lines1 + mark '8.6' ; $SED -e 's/./(&)/g' lines1 + mark '8.7' ; $SED -e 's/./(\&)/g' lines1 + mark '8.8' ; $SED -e 's/\(.\)\(.\)\(.\)/x\3x\2x\1/g' lines1 + mark '8.9' ; $SED -e 's/_/u0\ +u1\ +u2/g' lines1 + mark '8.10' + $SED -e 's/./X/4' lines1 + rm -f lines4 + mark '8.11' ; $SED -e 's/1/X/w lines4' lines1 + echo s wfile results + cat lines4 + mark '8.12' ; $SED -e 's/[123]/X/g' lines1 + mark '8.13' ; $SED -e 'y/0123456789/9876543210/' lines1 + mark '8.14' ; + $SED -e 'y10\123456789198765432\101' lines1 + mark '8.15' ; $SED -e '1N;2y/\n/X/' lines1 + mark '8.16' + echo 'eeefff' | $SED -e 'p' -e 's/e/X/p' -e ':x' -e 's//Y/p' -e '/f/bx' +} + +test_error() +{ + set -x + $SED -x && exit 1 + $SED -f && exit 1 + $SED -e && exit 1 + $SED -f /dev/dds && exit 1 + $SED p /dev/dds && exit 1 + $SED -f /bin/sh && exit 1 + $SED '{' && exit 1 + $SED '{' && exit 1 + $SED '/hello/' && exit 1 + $SED '1,/hello/' && exit 1 + $SED -e '-5p' && exit 1 + $SED '/jj' && exit 1 + $SED 'a hello' && exit 1 + $SED 'a \ hello' && exit 1 + $SED 'b foo' && exit 1 + $SED 'd hello' && exit 1 + $SED 's/aa' && exit 1 + $SED 's/aa/' && exit 1 + $SED 's/a/b' && exit 1 + $SED 's/a/b/c/d' && exit 1 + $SED 's/a/b/ 1 2' && exit 1 + $SED 's/a/b/ 1 g' && exit 1 + $SED 's/a/b/w' && exit 1 + $SED 'y/aa' && exit 1 + $SED 'y/aa/b/' && exit 1 + $SED 'y/aa/' && exit 1 + $SED 'y/a/b' && exit 1 + $SED 'y/a/b/c/d' && exit 1 + $SED '!' && exit 1 + $SED supercalifrangolisticexprialidociussupercalifrangolisticexcius + set +x +} + +main "$@" diff --git a/src/regress/usr.bin/sed/sierpinski.expected b/src/regress/usr.bin/sed/sierpinski.expected new file mode 100644 index 000000000..103d48d9b --- /dev/null +++ b/src/regress/usr.bin/sed/sierpinski.expected @@ -0,0 +1,25 @@ +________________________X________________________ +_______________________X_X_______________________ +______________________X___X______________________ +_____________________X_X_X_X_____________________ +____________________X_______X____________________ +___________________X_X_____X_X___________________ +__________________X___X___X___X__________________ +_________________X_X_X_X_X_X_X_X_________________ +________________X_______________X________________ +_______________X_X_____________X_X_______________ +______________X___X___________X___X______________ +_____________X_X_X_X_________X_X_X_X_____________ +____________X_______X_______X_______X____________ +___________X_X_____X_X_____X_X_____X_X___________ +__________X___X___X___X___X___X___X___X__________ +_________X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_________ +________X_______________________________X________ +_______X_X_____________________________X_X_______ +______X___X___________________________X___X______ +_____X_X_X_X_________________________X_X_X_X_____ +____X_______X_______________________X_______X____ +___X_X_____X_X_____________________X_X_____X_X___ +__X___X___X___X___________________X___X___X___X__ +_X_X_X_X_X_X_X_X_________________X_X_X_X_X_X_X_X_ +X_______________X_______________X_______________X diff --git a/src/regress/usr.bin/sed/sierpinski.in b/src/regress/usr.bin/sed/sierpinski.in new file mode 100644 index 000000000..3f6427624 --- /dev/null +++ b/src/regress/usr.bin/sed/sierpinski.in @@ -0,0 +1 @@ +________________________X___ diff --git a/src/regress/usr.bin/sed/sierpinski.sed b/src/regress/usr.bin/sed/sierpinski.sed new file mode 100644 index 000000000..060e5c83c --- /dev/null +++ b/src/regress/usr.bin/sed/sierpinski.sed @@ -0,0 +1,35 @@ +#! /bin/sed -nf + +# $OpenBSD: sierpinski.sed,v 1.1 2008/10/10 14:33:34 millert Exp $ +# From http://sed.sourceforge.net/grabbag/scripts +# Public Domain + +# Sierpinski triangle in 10 commands + 2 labels. +# Start with a line like this +# _______________________________X_____________________________ + +# Put an equal number of underscores on both sides. +s/^\(_*\).*/\1X\1/p + +# Construct the last three lines of the triangle +:start +/^X/!s/_X_/X_X/gp +/^X/!s/_X_X_/X___X/gp +/^X/!s/_X___X_/X_X_X_X/gp +/^X/ d + +# Now replace the consecutive X's with an X and many colons +# X_X_X_X ---> +# X:::::: +:loop +s/\(X:*\)_X/\1::/g +tloop + +# And now create two new "seeds", one to the left and one to the right +# _X::::::_ ---> +# X:::::::X ---> +# X_______X + +s/_X\(::*\)_/X:\1X/g +s/:/_/gp +bstart diff --git a/src/regress/usr.bin/sort/CVS/Entries b/src/regress/usr.bin/sort/CVS/Entries new file mode 100644 index 000000000..49525c72a --- /dev/null +++ b/src/regress/usr.bin/sort/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.4/Sun Mar 9 06:00:58 2003// +/stests/1.4/Fri Dec 12 15:45:51 2008// +D diff --git a/src/regress/usr.bin/sort/CVS/Repository b/src/regress/usr.bin/sort/CVS/Repository new file mode 100644 index 000000000..6e78e9aac --- /dev/null +++ b/src/regress/usr.bin/sort/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/sort diff --git a/src/regress/usr.bin/sort/CVS/Root b/src/regress/usr.bin/sort/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/sort/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/sort/Makefile b/src/regress/usr.bin/sort/Makefile new file mode 100644 index 000000000..b175db255 --- /dev/null +++ b/src/regress/usr.bin/sort/Makefile @@ -0,0 +1,12 @@ +# $OpenBSD: Makefile,v 1.4 2003/03/09 06:00:58 david Exp $ + +CLEANFILES+= in in1 out xx -k xsort linecount fields + +REGRESS_TARGETS=do-stests + +# XXX - should be split up in this makefile, not in the script. +# XXX - script doesn't return non-0 on failure. +do-stests: ${.CURDIR}/stests + sh ${.CURDIR}/stests + +.include diff --git a/src/regress/usr.bin/sort/obj b/src/regress/usr.bin/sort/obj new file mode 120000 index 000000000..6a06371f6 --- /dev/null +++ b/src/regress/usr.bin/sort/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/sort \ No newline at end of file diff --git a/src/regress/usr.bin/sort/stests b/src/regress/usr.bin/sort/stests new file mode 100644 index 000000000..b2726bb1c --- /dev/null +++ b/src/regress/usr.bin/sort/stests @@ -0,0 +1,969 @@ +#!/bin/sh - +# $OpenBSD: stests,v 1.4 2008/12/12 15:45:51 otto Exp $ +# from: @(#)stests 8.1 (Berkeley) 6/6/93 + +#Latest version. My sort passes all tests because I wrote it. +#We differ only on 25E and 25H. +#(I found at least one bug in constructing test 25, and was driven +#to rewrite field parsing to clarify it.) +# +#In 25E, -k2.3,2.1b, the fields are not necessarily out of order. +#Even if they were, it would be legal (11752-3), although certainly +#justification for warning. +# +#On 25H, your answer is as defensible as mine. (Our suggestion +#*1 backs mine.) + + +# Tests for the Unix sort utility +# Test Posix features except for locale. +# Test some nonstandard features if present. + +# Other tests should be made for files too big to fit in memory. + + +# Initialize switches for nonstandard features. +# Use parenthesized settings for supported features. + +o=: # officially obsolescent features: +1 -2, misplaced -o (o=) +g=: # -g numeric sort including e-format numbers (g=) +M=: # -M sort by month names (M=) +s=: # -s stable, do not compare raw bytes on equal keys (s=) +y= # -y user-specified memory size (y=-y10000) + +# Detect what features are supported, assuming bad options cause +# errors. Set switches accordingly. + +echo obsolescent and nonstandard features recognized, if any: +if sort +0 /dev/null; then o= + echo ' +1 -2'; fi +if sort /dev/null -o xx 2>/dev/null; then o= + echo ' displaced -o'; fi +if sort -g /dev/null; then g= + echo ' -g g-format numbers'; fi +if sort -M /dev/null; then M= + echo ' -M months'; fi +if sort -s /dev/null; then s= + echo ' -s stable'; fi +if sort -y10000 /dev/null; then y=-y10000 + echo ' -y space'; fi +if sort -z10000 /dev/null; then + echo ' -z size (not exercised)'; fi +if sort -T. /dev/null; then + echo ' -T tempdir (not exercised)'; fi + + +export TEST # major sequence number of test + +trap "rm -f -- -k in in1 out xx -k xsort linecount fields; exit" 0 1 2 13 15 + +# xsort testno options +# Sort file "in" with specified options. +# Compare with file "out" if that is supplied, +# otherwise make plausibility checks on output + +# "sum" must be dumb; insensitive to the +# order of lines within a file. +# System V sum is suitable; sum -5 is the v10 equivalent. + +PATH=.:$PATH +export PATH +cat <<'!' >xsort; chmod +x xsort + + X=$1; shift + + if sort "$@" in >xx && sort -c "$@" xx + then + if test -f out + then + cmp xx out >/dev/null && exit 0 + echo $TEST$X comparison failed + else + test "`cksum -o2 linecount; chmod +x linecount +awk 'END{ if(NR!='$3') print "'$TEST$1' failed" }' $2 +! + +rm -f out + +#--------------------------------------------------------------- +TEST=01; echo $TEST # -c status, checksum + # obsolescent features go together +cat <in +b +a +! +rm -f out -o + +sort -c in 2>/dev/null && echo ${TEST}A failed + +xsort B || '"cksum"' is probably unsuitable - see comments + +$o sort +0 in -o in || echo ${TEST}c failed + +#--------------------------------------------------------------- +TEST=02; echo $TEST # output from -c +cat <in +x +y +! + +sort -cr in >out 2>xx && echo ${TEST}A failed +test -s out && echo ${TEST}B failed +test -s xx && echo option -c is noisy "(probably legal)" +test -s xx || echo option -c is quiet "(legal, not classical)" + +#--------------------------------------------------------------- +TEST=03; echo $TEST # -n +cat <in +-99.0 +-99.1 +-.0002 +-10 +2 +0010.000000000000000000000000000000000001 +10 +3x +x +! +cat <out +-99.1 +-99.0 +-10 +-.0002 +x +2 +3x +10 +0010.000000000000000000000000000000000001 +! + +xsort "" -n + +#--------------------------------------------------------------- +TEST=04; echo $TEST # -b without fields, piping, -c status return +cat <in + b + a +! +cp in out + +xsort A -b + +cat in | sort | cat >xx +cmp xx out >/dev/null || echo ${TEST}B failed + +sort in | sort -cr 2>/dev/null && echo ${TEST}C failed + +#--------------------------------------------------------------- +TEST=05; echo $TEST # fields, reverse fields, -c status return +cat <in +b b p +a b q +x a +! +cat <out +x a +a b q +b b p +! + +$o xsort A +1 -2 + +$o xsort B +1 -2 +2r + +xsort C -k 2,2 + +xsort D -k 2,2 -k 3r + +xsort E -k 2,2.0 + +xsort F -k 2,2 -k 1,1 -k 3 + +sort -c -k 2 in 2>/dev/null && echo ${TEST}G failed + +#--------------------------------------------------------------- +TEST=06; echo $TEST # -t +cat <in +a: +a! +! +cp in out + +$o xsort A -t : -r +0 + +$o xsort B -t : +0 -1 + +xsort C -t : -r -k 1 + +xsort D -t : -k 1,1 + +#--------------------------------------------------------------- +TEST=07; echo $TEST # -t, character positions in fields + # -t: as 1 arg is not strictly conforming, but classical +cat <in +: ab +:bac +! +cat <out +:bac +: ab +! + +$o xsort A -b -t: +1.1 + +$o xsort B -t: +1.1r + +xsort C -b -t: -k 2.2 + +xsort D -t: -k 2.2r + +#--------------------------------------------------------------- +TEST=08; echo $TEST # space and tab as -t characters +cat <in + b c + b c + b c +! +cp in out + +xsort A -t ' ' -k2,2 + +xsort B -t ' ' -k2.1,2.0 + +cat <out + b c + b c + b c +! + +xsort C -t ' ' -k2,2 + +xsort D -t ' ' -k2.1,2.0 + +cat <out + b c + b c + b c +! + +xsort E -k2 + +cat <out + b c + b c + b c +! + +xsort F -k2b + +#--------------------------------------------------------------- +TEST=09; echo $TEST # alphabetic as -t character +cat <in +zXa +yXa +zXb +! +cp in out + +xsort "" -tX -k2 -k1r,1 + +#--------------------------------------------------------------- +TEST=10; echo $TEST # -m +cat <in +a +ab +ab +bc +ca +! +cat <in1 +Z +a +aa +ac +c +! +cat <out +Z +a +a +aa +ab +ab +ac +bc +c +ca +! + +sort -m in in1 >xx +cmp xx out >/dev/null || echo $TEST failed + +#--------------------------------------------------------------- +TEST=11; echo $TEST # multiple files, -o overwites input, -m, -mu +cat <in +a +b +c +d +! + +sort -o xx in in in in in in in in in in in in in in in in in +linecount A xx 68 +sort -o in -mu in in in in in in in in in in in in in in in in in +linecount B in 4 +sort -o in -m in in in in in in in in in in in in in in in in in + +cmp in xx >/dev/null || echo ${TEST}C failed + +#--------------------------------------------------------------- +TEST=12; echo $TEST # does -mu pick the first among equals? +cat <in +3B +3b +3B2 +~3B2 +4.1 +41 +5 +5. +! +cat <out +3B +3B2 +4.1 +5 +! + +xsort A -mudf || echo "(other behavior is legal, not classical)" + +xsort B -mudf -k1 || echo "(other behavior is legal, not classical)" + +#--------------------------------------------------------------- +TEST=13; echo $TEST # long records (>8000 bytes, keys >16000), -r +awk ' +BEGIN { x="x" + for(i=1; i<=12; i++) x = x x + for(i=15; i<=25; i++) print x i +}' >in +awk ' +BEGIN { x="x" + for(i=1; i<=12; i++) x = x x + for(i=25; i>=15; i--) print x i +}' >out + +xsort A -r + +xsort B -k 1,1r -k 1 + +#--------------------------------------------------------------- +TEST=14; echo $TEST "(3 long parts)" +awk 'BEGIN { for(i=0; i<100000; i++) print rand() }' | grep -v e >in +rm -f out + +xsort A; echo $TEST "(part A done)" + +xsort B -n; echo $TEST "(part B done)" + +# next test is unclean: xx is a hidden side-effect of xsort + +awk ' + $0 < x { print "test '${TEST}C' failed"; exit } + $0 "" != x { print >"out"; x = $0 } +' xx + +xsort C -n -u + +#--------------------------------------------------------------- +TEST=15; echo $TEST "(long)" # force intermediate files if possible +awk 'BEGIN { for(i=0; i<20000; i++) print rand() }' >in +rm -f out + +xsort A -r $y + +sort -r in | awk '$0 "x" != x { print ; x = $0 "x" }' >out + +xsort B -u -r $y + +#--------------------------------------------------------------- +TEST=16; echo $TEST # -nr, -nm, file name - +awk 'BEGIN { for(i=-100; i<=100; i+=2) printf "%.10d\n", i }' >in + +awk 'BEGIN { for(i=-99; i<=100; i+=2) print i }' | sort -nr in - >xx +awk '$0+0 != 101-NR { print "'${TEST}A' failed"; exit }' xx + +awk 'BEGIN { for(i=-99; i<=100; i+=2) print i }' | sort -mn in - >xx +awk '$0+0 != -101+NR { print "'${TEST}B' failed"; exit }' xx + +#--------------------------------------------------------------- +TEST=17; echo $TEST # -d, fields without end, modifier override +cat <in +a-B +a+b +a b +A+b +a b +! +cat <out +a b +a b +A+b +a-B +a+b +! + +$o xsort A -df +0 +0d + +xsort B -df -k 1 -k 1d + +#--------------------------------------------------------------- +TEST=18; echo $TEST # -u on key only +cat <in +12 y +13 z +12 x +! +cat <out +12 x +12 y +13 z +! + +$o xsort A +0 -1 + +xsort B -k 1,1 + +sort -u -k 1,1 in >xx +linecount C xx 2 + +#--------------------------------------------------------------- +TEST=19; echo $TEST # -i, -d, -f +cat <xx.c +run(i,j){ for( ; i<=j; i++) printf("%.3o %c\n",i,i); } +main(){ run(0, 011); /* 012=='\n' */ + run(013, 0377); } +! +cc xx.c +a.out >in +cat <xx.c +run(i,j){ for( ; i<=j; i++) printf("%.3o %c\n",i,i); } +main(){ run(0, 011); + run(013, ' '-1); + run(0177, 0377); + run(' ', 0176); } +! +cc xx.c +a.out >out + +xsort A -i -k 2 + +cat <xx.c +run(i,j){ for( ; i<=j; i++) printf("%.3o %c\n",i,i); } +main(){ run(0, 010); /* 011=='\t', 012=='\n' */ + run(013, ' '-1); + run(' '+1, '0'-1); + run('9'+1, 'A'-1); + run('Z'+1, 'a'-1); + run('z'+1, 0377); + run('\t', '\t'); + run(' ', ' '); + run('0', '9'); + run('A', 'Z'); + run('a', 'z'); } +! +cc xx.c +a.out >out + +xsort B -d -k 2 + +cat <xx.c +run(i,j){ for( ; i<=j; i++) printf("%.3o %c\n",i,i); } +main(){ int i; + run(0, 011); + run(013, 'A'-1); + for(i='A'; i<='Z'; i++) + printf("%.3o %c\n%.3o %c\n",i,i,i+040,i+040); + run('Z'+1, 'a'-1); + run('z'+1, 0377); } +! +cc xx.c +a.out >out +rm xx.c + +xsort C -f -k 2 + +#--------------------------------------------------------------- +TEST=20; echo $TEST # -d, -f, -b applies only to fields +cat <in + b +'C +a +! +cp in out + +xsort A -d + +xsort B -f + +cat <out + b +a +'C +! + +xsort C -dfb + +#--------------------------------------------------------------- +TEST=21; echo $TEST # behavior of null bytes +cat <<'!' >xx.c +main() { printf("%cb\n%ca\n",0,0); } +! +cc xx.c +a.out >in +sort in >xx +cmp in xx >/dev/null && echo ${TEST}A failed +test "`wc -c in +a 2 +a 1 +b 2 +b 1 +! +cat <out +b 1 +b 2 +a 1 +a 2 +! + +xsort "" -r -k1,1 -k2n + +#--------------------------------------------------------------- +TEST=23; echo $TEST # empty file + +sort -o xx /dev/null || echo ${TEST}A failed + +sort -c in +0:2:3:4:5:6:7:8:9 +1:1:3:4:5:6:7:8:9 +1:2:2:4:5:6:7:8:9 +1:2:3:3:5:6:7:8:9 +1:2:3:4:4:6:7:8:9 +1:2:3:4:5:5:7:8:9 +1:2:3:4:5:6:6:8:9 +1:2:3:4:5:6:7:7:9 +1:2:3:4:5:6:7:8:8 +! +cat <out +1:2:3:4:5:6:7:8:8 +1:2:3:4:5:6:7:7:9 +1:2:3:4:5:6:6:8:9 +1:2:3:4:5:5:7:8:9 +1:2:3:4:4:6:7:8:9 +1:2:3:3:5:6:7:8:9 +1:2:2:4:5:6:7:8:9 +1:1:3:4:5:6:7:8:9 +0:2:3:4:5:6:7:8:9 +! + +xsort "" -t: -k9 -k8 -k7 -k6 -k5 -k4 -k3 -k2 -k1 + +#--------------------------------------------------------------- +TEST=25; echo $TEST # variously specified alpha fields + # numbers give the correct orderings +cat <in +01:04:19:01:16:01:21:01 a +02:03:13:15:13:19:15:02 a +03:02:07:09:07:13:09:03 a +04:01:01:03:01:07:03:04 a +05:08:20:16:17:02:20:05 aa +06:07:14:18:14:20:14:06 aa +07:06:08:10:08:14:08:07 aa +08:05:02:04:02:08:02:08 aa +09:16:22:02:22:04:24:13 b +10:15:16:20:19:22:18:14 b +11:14:10:12:10:16:12:15 b +12:13:04:06:04:10:06:16 b +13:24:24:22:24:06:22:21 bb +14:23:18:24:21:24:16:22 bb +15:22:12:14:12:18:10:23 bb +16:21:06:08:06:12:04:24 bb +17:12:21:21:18:03:19:09 ab +18:11:15:19:15:21:13:10 ab +19:10:09:11:09:15:07:11 ab +20:09:03:05:03:09:01:12 ab +21:20:23:17:23:05:23:17 ba +22:19:17:23:20:23:17:18 ba +23:18:11:13:11:17:11:19 ba +24:17:05:07:05:11:05:20 ba +! +sort -k2b -k2 in >xx && + sort -c -t: -k2n xx 2>/dev/null || echo ${TEST}A failed +sort -k2,2.1b -k2 in >xx && + sort -c -t: -k3n xx 2>/dev/null || echo ${TEST}B failed +sort -k2.3 -k2 in >xx && + sort -c -t: -k4n xx 2>/dev/null || echo ${TEST}C failed +sort -k2b,2.3 -k2 in >xx && + sort -c -t: -k5n xx 2>/dev/null || echo ${TEST}D failed +sort -k2.3,2.1b -k2 in >xx && + sort -c -t: -k6n xx 2>/dev/null || echo ${TEST}E failed +sort -k2,2.1b -k2r in >xx && + sort -c -t: -k7n xx 2>/dev/null || echo ${TEST}F failed +sort -b -k2,2 -k2 in >xx && + sort -c -t: -k8n xx 2>/dev/null || echo ${TEST}G failed +sort -b -k2,2b -k2 in >xx && # perhaps same as G + sort -c -t: -k3n xx 2>/dev/null || echo ${TEST}H failed\ + "(standard is not clear on this)" + +#--------------------------------------------------------------- +TEST=26; echo $TEST # empty fields, out of bounds fields +cat <in +0 5 +1 4 +2 3 +3 2 +4 1 +5 0 +! +cp in out + +xsort "" -k2.2,2.1 -k2.3,2.4 + +#--------------------------------------------------------------- +TEST=27; echo $TEST # displaced -o +rm -f out + +$o sort /dev/null -o out || $o echo ${TEST}B failed +$o test -f out || $o echo ${TEST}C failed + +#--------------------------------------------------------------- +TEST=28; echo $TEST # apparently nonmonotone field specs +cat <in +aaaa c +x a +0 b +! +cp in out + +$o xsort A +1 -0.3 +1.4 -1.5 + +xsort B -k2,1.3 -k2.5,2.5 + +#--------------------------------------------------------------- +TEST=29; echo $TEST # determination of end of option list +cat >-k <xx || echo ${TEST}A argument failed +cmp xx -k || echo ${TEST}A comparison failed + +sort - -c /dev/null && echo ${TEST}B failed +rm -- -k + +#--------------------------------------------------------------- +TEST=30; echo $TEST # missing newline +awk 'BEGIN{ printf "%s", "x"}' | sort >xx +wc -c in +jan 10 1900 +Feb 26 1900 +feb 25 1900 +January xx 1900 +August 11 1900 +jan 15 1990 +feb 22 1990 +mar 15 1990 +apr 1 1990 +may 45 1990 +jun 14 1990 +jul 4 1990 +aug 1~ 1990 +aug 11 1990 +sep 1 1990 +oct 12 1990 +nov 24 1990 +dec 25 1990 +never 3 1990 + Dec 25 1990 +! +cat <out +January xx 1900 +jan 10 1900 +feb 25 1900 +Feb 26 1900 +August 11 1900 +never 3 1990 +jan 15 1990 +feb 22 1990 +mar 15 1990 +apr 1 1990 +may 45 1990 +jun 14 1990 +jul 4 1990 +aug 1~ 1990 +aug 11 1990 +sep 1 1990 +oct 12 1990 +nov 24 1990 + Dec 25 1990 +dec 25 1990 +! + +$M xsort "" -k3n -k1M -k2n + +#--------------------------------------------------------------- +TEST=32; echo $TEST # -M case insensitivity, -r +cat <in +x +june +january +december +! +cat <out +december +june +january +x +! + +$M xsort "" -Mr + +#--------------------------------------------------------------- +TEST=33; echo $TEST # -g +cat <in +2 +1 +10 +.2 +1e +1E1 +1e. +! +cat <out +.2 +1 +1e +1e. +2 +10 +1E1 +! + +$g xsort "" -g + +#--------------------------------------------------------------- +TEST=34; echo $TEST # -g wide operands +cat <in +.99999999999999999999 +099999999999999999999e-21 +099999999999999999999e-19 +.1e1 +! +cat <out +099999999999999999999e-21 +.99999999999999999999 +.1e1 +099999999999999999999e-19 +! + +$g xsort A -g + +cat <out +.1e1 +.99999999999999999999 +099999999999999999999e-19 +099999999999999999999e-21 +! + +xsort B -n + +#--------------------------------------------------------------- +TEST=35; echo $TEST #-g, -u with different fp reps +cat <in ++0 +-0 +0.10 ++.1 +-.1 +-100e-3 +x +! +cat <out +-.1 +-100e-3 ++0 +-0 +x ++.1 +0.10 +! + +$g xsort A -g + +$g sort -gu in >xx && $g sort -c -gu xx || echo ${TEST}B failed +$g linecount C xx 3 + +#--------------------------------------------------------------- +TEST=36; echo $TEST # -s +cat <in +a 2 +b 1 +c 2 +a 1 +b 2 +c 1 +! +cat <out +a 2 +a 1 +b 1 +b 2 +c 2 +c 1 +! + +$s xsort "" -s -k1,1 + +#--------------------------------------------------------------- +TEST=37; echo $TEST # -s, multiple files +cat <in +c 2 +a 2 +! +cat <in1 +c 1 +b 1 +a 1 +! +cat <out +c 2 +b 1 +a 2 +! + +$s sort -smru -k1,1 in in in1 in1 >xx +$s cmp xx out >/dev/null || echo $TEST failed + +#--------------------------------------------------------------- +TEST=38; echo $TEST # -s +$s awk ' + BEGIN { + for(i=1; i<50; i++) + for(j=1; j<=i; j++) { + print i, 2 >"in" + print i, 1 >"in1" + } + }' + +$s sort -m -s -k1,1n in in1 >out + +$s awk ' + func stop() { print "'$TEST' failed"; exit } + $1!=last1 { if(count!=last1 || $2!=2) stop(); + count = 0} + $1==last1 && $2!=last2 { if(count!=last1 || $2!=1) stop(); + count = 0 } + { count++; last1 = $1; last2 = $2 } + ' out + +#--------------------------------------------------------------- +TEST=39; echo $TEST # sort already sorted dictionary + +dict=/usr/share/dict/words + +sort -f $dict > out + +cmp -s out $dict || echo $TEST failed - sort -f $dict + +#--------------------------------------------------------------- +TEST=40; echo "$TEST (long)" # long lines test + +line1="abcdefghijklmnopqrstabcdefghijklmnopqrstabcdefghijklmnopqrstabcdefghij" +line2="bcdefghijklmnopqrstabcdefghijklmnopqrstabcdefghijklmnopqrstabcdefghijk" + +rm -f in out + +# generate two out-of-order long lines (roughly 70 KB each), and try sort +# them +awk ' +BEGIN { + line1 = "'"${line1}"'" + line2 = "'"${line2}"'" + for(i=0; i<10; i++) { + line1 = line1 line1 + line2 = line2 line2 + } + print line2 > "in" + print line1 > "in" + + print line1 > "out" + print line2 > "out" +}' + +xsort "A" + +# generate already sorted file using $dict, only append space and +# long string to each line to make lines longer than usual +# use only first 200 lines (sort file approx. 14MB) +cat $dict | awk ' +BEGIN { + line = "'"$line1"'" + for(i=0; i<10; i++) + line = line line + idx = 0 +} +{ print $1 " " line; if (idx++ > 200) exit 0 }' > in +ln -sf in out +xsort "B" -f +rm -f in out +#--------------------------------------------------------------- +TEST=41; echo "$TEST" + +# sort okay at reps=87381, broken at 87382 +# on 64-bit platforms, it's already broken at 87382/2 + +awk ' +BEGIN { + reps=87382 + i=0 + while (i++ < reps) { + print "lo0" > "in" + print "ce0" > "in" + print "ce1" > "in" + } + print "ce0" > "out" + print "ce1" > "out" + print "lo0" > "out" + +}' + +xsort A -u diff --git a/src/regress/usr.bin/ssh/CVS/Entries b/src/regress/usr.bin/ssh/CVS/Entries new file mode 100644 index 000000000..85bac4852 --- /dev/null +++ b/src/regress/usr.bin/ssh/CVS/Entries @@ -0,0 +1,66 @@ +/agent-getpeereid.sh/1.4/Sun Nov 25 15:35:09 2007// +/agent-ptrace.sh/1.1/Mon Dec 9 15:38:30 2002// +/agent-timeout.sh/1.1/Thu Jun 6 00:38:40 2002// +/agent.sh/1.7/Sun Nov 25 15:35:09 2007// +/banner.sh/1.2/Sat Oct 11 11:49:49 2003// +/broken-pipe.sh/1.4/Fri Mar 15 13:08:56 2002// +/brokenkeys.sh/1.1/Fri Oct 29 23:59:22 2004// +/cfgmatch.sh/1.4/Wed Dec 13 08:36:36 2006// +/cipher-speed.sh/1.3/Thu Jun 7 19:41:46 2007// +/conch-ciphers.sh/1.2/Mon Jun 30 10:43:03 2008// +/connect-privsep.sh/1.1/Thu Mar 21 21:45:07 2002// +/connect.sh/1.4/Fri Mar 15 13:08:56 2002// +/dsa_ssh2.prv/1.1/Thu Jan 17 13:21:28 2002// +/dsa_ssh2.pub/1.1/Thu Jan 17 13:21:28 2002// +/dynamic-forward.sh/1.4/Tue Jun 22 22:55:56 2004// +/envpass.sh/1.4/Fri Mar 4 08:48:46 2005// +/exit-status.sh/1.6/Fri Mar 15 13:08:56 2002// +/forcecommand.sh/1.1/Wed Jul 19 13:09:28 2006// +/key-options.sh/1.2/Mon Jun 30 08:07:34 2008// +/keygen-change.sh/1.2/Tue Jul 16 09:15:55 2002// +/keyscan.sh/1.3/Fri Mar 15 13:08:56 2002// +/localcommand.sh/1.1/Mon Oct 29 06:57:13 2007// +/login-timeout.sh/1.4/Sun Feb 27 23:13:36 2005// +/multiplex.sh/1.12/Tue May 5 07:51:36 2009// +/portnum.sh/1.1/Thu Aug 13 00:57:17 2009// +/proto-mismatch.sh/1.3/Fri Mar 15 13:08:56 2002// +/proto-version.sh/1.3/Fri Mar 15 13:08:56 2002// +/proxy-connect.sh/1.5/Mon Dec 9 15:28:46 2002// +/putty-ciphers.sh/1.3/Mon Nov 10 02:06:35 2008// +/putty-kex.sh/1.2/Mon Jun 30 10:31:11 2008// +/putty-transfer.sh/1.2/Mon Jun 30 10:31:11 2008// +/reconfigure.sh/1.2/Sat Jun 21 09:14:05 2003// +/reexec.sh/1.5/Fri Oct 8 02:01:50 2004// +/rekey.sh/1.1/Fri Mar 28 13:58:28 2003// +/rsa_openssh.prv/1.1/Thu Jan 17 13:21:28 2002// +/rsa_openssh.pub/1.1/Thu Jan 17 13:21:28 2002// +/rsa_ssh2.prv/1.1/Thu Jan 17 13:21:28 2002// +/scp-ssh-wrapper.sh/1.2/Wed Dec 14 04:36:39 2005// +/scp.sh/1.7/Tue Jan 31 10:36:33 2006// +/sftp-badcmds.sh/1.4/Thu Aug 13 01:11:55 2009// +/sftp-batch.sh/1.4/Thu Aug 13 01:11:55 2009// +/sftp-cmds.sh/1.10/Thu Aug 13 01:11:55 2009// +/sftp-glob.sh/1.4/Thu Aug 13 01:11:55 2009// +/sftp.sh/1.3/Thu Aug 13 01:11:55 2009// +/ssh-com-client.sh/1.6/Tue Feb 24 17:06:52 2004// +/ssh-com-keygen.sh/1.4/Tue Feb 24 17:06:52 2004// +/ssh-com-sftp.sh/1.6/Thu Aug 20 18:43:07 2009// +/ssh-com.sh/1.7/Tue Feb 24 17:06:52 2004// +/ssh2putty.sh/1.2/Tue Oct 6 23:51:49 2009// +/sshd-log-wrapper.sh/1.2/Sun Feb 27 11:40:30 2005// +/stderr-after-eof.sh/1.1/Sat Mar 23 16:38:09 2002// +/stderr-data.sh/1.2/Wed Mar 27 22:39:52 2002// +/t4.ok/1.1/Thu Jan 17 13:21:28 2002// +/t5.ok/1.1/Thu Jan 17 13:21:28 2002// +/transfer.sh/1.1/Wed Mar 27 00:03:37 2002// +/try-ciphers.sh/1.11/Thu Jun 7 19:41:46 2007// +/yes-head.sh/1.4/Fri Mar 15 13:08:56 2002// +/keygen-convert.sh/1.1/Mon Nov 9 04:20:04 2009// +/forwarding.sh/1.7/Sat Feb 6 00:59:57 2010// +/addrmatch.sh/1.3/Fri Feb 12 07:49:44 2010// +/agent-pkcs11.sh/1.1/Mon Feb 8 10:52:47 2010// +/cert-hostkey.sh/1.4/Fri Apr 16 01:58:45 2010// +/test-exec.sh/1.37/Mon Apr 5 23:11:52 2010// +/Makefile/1.53/Mon May 31 05:18:56 2010// +/cert-userkey.sh/1.5/Mon May 31 05:18:56 2010// +D diff --git a/src/regress/usr.bin/ssh/CVS/Repository b/src/regress/usr.bin/ssh/CVS/Repository new file mode 100644 index 000000000..cbc7dc034 --- /dev/null +++ b/src/regress/usr.bin/ssh/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/ssh diff --git a/src/regress/usr.bin/ssh/CVS/Root b/src/regress/usr.bin/ssh/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/ssh/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/ssh/Makefile b/src/regress/usr.bin/ssh/Makefile new file mode 100644 index 000000000..9c7f98974 --- /dev/null +++ b/src/regress/usr.bin/ssh/Makefile @@ -0,0 +1,128 @@ +# $OpenBSD: Makefile,v 1.53 2010/05/07 11:31:26 djm Exp $ + +REGRESS_TARGETS= t1 t2 t3 t4 t5 t6 t7 + +CLEANFILES+= t2.out t6.out1 t6.out2 t7.out t7.out.pub copy.1 copy.2 + +LTESTS= connect \ + proxy-connect \ + connect-privsep \ + proto-version \ + proto-mismatch \ + exit-status \ + envpass \ + transfer \ + banner \ + rekey \ + stderr-data \ + stderr-after-eof \ + broken-pipe \ + try-ciphers \ + yes-head \ + login-timeout \ + agent \ + agent-getpeereid \ + agent-timeout \ + agent-ptrace \ + keyscan \ + keygen-change \ + keygen-convert \ + key-options \ + scp \ + sftp \ + sftp-cmds \ + sftp-badcmds \ + sftp-batch \ + sftp-glob \ + reconfigure \ + dynamic-forward \ + forwarding \ + multiplex \ + reexec \ + brokenkeys \ + cfgmatch \ + addrmatch \ + localcommand \ + forcecommand \ + portnum \ + cert-hostkey \ + cert-userkey + +INTEROP_TESTS= putty-transfer putty-ciphers putty-kex conch-ciphers +#INTEROP_TESTS+=ssh-com ssh-com-client ssh-com-keygen ssh-com-sftp + + +USER!= id -un +CLEANFILES+= authorized_keys_${USER} known_hosts pidfile \ + ssh_config sshd_config.orig ssh_proxy sshd_config sshd_proxy \ + rsa.pub rsa rsa1.pub rsa1 host.rsa host.rsa1 \ + rsa-agent rsa-agent.pub rsa1-agent rsa1-agent.pub \ + ls.copy banner.in banner.out empty.in \ + scp-ssh-wrapper.exe ssh_proxy_envpass remote_pid \ + sshd_proxy_bak rsa_ssh2_cr.prv rsa_ssh2_crnl.prv \ + known_hosts-cert host_ca_key* cert_host_key* \ + authorized_principals_${USER} + +# Enable all malloc(3) randomisations and checks +TEST_ENV= "MALLOC_OPTIONS=AFGJPRX" + +t1: + ssh-keygen -if ${.CURDIR}/rsa_ssh2.prv | diff - ${.CURDIR}/rsa_openssh.prv + tr '\n' '\r' <${.CURDIR}/rsa_ssh2.prv > ${.OBJDIR}/rsa_ssh2_cr.prv + ssh-keygen -if ${.OBJDIR}/rsa_ssh2_cr.prv | diff - ${.CURDIR}/rsa_openssh.prv + awk '{print $$0 "\r"}' ${.CURDIR}/rsa_ssh2.prv > ${.OBJDIR}/rsa_ssh2_crnl.prv + ssh-keygen -if ${.OBJDIR}/rsa_ssh2_crnl.prv | diff - ${.CURDIR}/rsa_openssh.prv + +t2: + cat ${.CURDIR}/rsa_openssh.prv > t2.out + chmod 600 t2.out + ssh-keygen -yf t2.out | diff - ${.CURDIR}/rsa_openssh.pub + +t3: + ssh-keygen -ef ${.CURDIR}/rsa_openssh.pub |\ + ssh-keygen -if /dev/stdin |\ + diff - ${.CURDIR}/rsa_openssh.pub + +t4: + ssh-keygen -lf ${.CURDIR}/rsa_openssh.pub |\ + awk '{print $$2}' | diff - ${.CURDIR}/t4.ok + +t5: + ssh-keygen -Bf ${.CURDIR}/rsa_openssh.pub |\ + awk '{print $$2}' | diff - ${.CURDIR}/t5.ok + +t6: + ssh-keygen -if ${.CURDIR}/dsa_ssh2.prv > t6.out1 + ssh-keygen -if ${.CURDIR}/dsa_ssh2.pub > t6.out2 + chmod 600 t6.out1 + ssh-keygen -yf t6.out1 | diff - t6.out2 + +t7.out: + ssh-keygen -q -t rsa -N '' -f $@ + +t7: t7.out + ssh-keygen -lf t7.out > /dev/null + ssh-keygen -Bf t7.out > /dev/null + +.for t in ${LTESTS} ${INTEROP_TESTS} +t-${t}: + env SUDO=${SUDO} ${TEST_ENV} \ + sh ${.CURDIR}/test-exec.sh ${.OBJDIR} ${.CURDIR}/${t}.sh +.endfor + +.for t in ${LTESTS} +REGRESS_TARGETS+=t-${t} +.endfor + +.for t in ${INTEROP_TESTS} +INTEROP_TARGETS+=t-${t} +.endfor + +# Not run by default +interop: ${INTEROP_TARGETS} + +clean: + rm -f ${CLEANFILES} + rm -rf .putty + +.include diff --git a/src/regress/usr.bin/ssh/addrmatch.sh b/src/regress/usr.bin/ssh/addrmatch.sh new file mode 100644 index 000000000..f9d613baf --- /dev/null +++ b/src/regress/usr.bin/ssh/addrmatch.sh @@ -0,0 +1,44 @@ +# $OpenBSD: addrmatch.sh,v 1.3 2010/02/09 04:57:36 djm Exp $ +# Placed in the Public Domain. + +tid="address match" + +mv $OBJ/sshd_proxy $OBJ/sshd_proxy_bak + +run_trial() +{ + user="$1"; addr="$2"; host="$3"; expected="$4"; descr="$5" + + verbose "test $descr for $user $addr $host" + result=`${SSHD} -f $OBJ/sshd_proxy -T \ + -C user=${user},addr=${addr},host=${host} | \ + awk '/^passwordauthentication/ {print $2}'` + if [ "$result" != "$expected" ]; then + fail "failed for $user $addr $host: expected $expected, got $result" + fi +} + +cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy +cat >>$OBJ/sshd_proxy < /dev/null +r=$? +if [ $r -ne 0 ]; then + fail "could not start ssh-agent: exit code $r" +else + chmod 644 ${SSH_AUTH_SOCK} + + ssh-add -l > /dev/null 2>&1 + r=$? + if [ $r -ne 1 ]; then + fail "ssh-add failed with $r != 1" + fi + + < /dev/null ${SUDO} -S -u ${UNPRIV} ssh-add -l > /dev/null 2>&1 + r=$? + if [ $r -lt 2 ]; then + fail "ssh-add did not fail for ${UNPRIV}: $r < 2" + fi + + trace "kill agent" + ${SSHAGENT} -k > /dev/null +fi + +rm -f ${OBJ}/agent diff --git a/src/regress/usr.bin/ssh/agent-pkcs11.sh b/src/regress/usr.bin/ssh/agent-pkcs11.sh new file mode 100644 index 000000000..db33ab37e --- /dev/null +++ b/src/regress/usr.bin/ssh/agent-pkcs11.sh @@ -0,0 +1,69 @@ +# $OpenBSD: agent-pkcs11.sh,v 1.1 2010/02/08 10:52:47 markus Exp $ +# Placed in the Public Domain. + +tid="pkcs11 agent test" + +TEST_SSH_PIN="" +TEST_SSH_PKCS11=/usr/local/lib/soft-pkcs11.so.0.0 + +# setup environment for soft-pkcs11 token +SOFTPKCS11RC=$OBJ/pkcs11.info +export SOFTPKCS11RC +# prevent ssh-agent from calling ssh-askpass +SSH_ASKPASS=/usr/bin/true +export SSH_ASKPASS +unset DISPLAY + +# start command w/o tty, so ssh-add accepts pin from stdin +notty() { + perl -e 'use POSIX; POSIX::setsid(); + if (fork) { wait; exit($? >> 8); } else { exec(@ARGV) }' "$@" +} + +trace "start agent" +eval `${SSHAGENT} -s` > /dev/null +r=$? +if [ $r -ne 0 ]; then + fail "could not start ssh-agent: exit code $r" +else + trace "generating key/cert" + rm -f $OBJ/pkcs11.key $OBJ/pkcs11.crt + openssl genrsa -out $OBJ/pkcs11.key 2048 > /dev/null 2>&1 + chmod 600 $OBJ/pkcs11.key + openssl req -key $OBJ/pkcs11.key -new -x509 \ + -out $OBJ/pkcs11.crt -text -subj '/CN=pkcs11 test' > /dev/null + printf "a\ta\t$OBJ/pkcs11.crt\t$OBJ/pkcs11.key" > $SOFTPKCS11RC + # add to authorized keys + ${SSHKEYGEN} -y -f $OBJ/pkcs11.key > $OBJ/authorized_keys_$USER + + trace "add pkcs11 key to agent" + echo ${TEST_SSH_PIN} | notty ${SSHADD} -s ${TEST_SSH_PKCS11} > /dev/null 2>&1 + r=$? + if [ $r -ne 0 ]; then + fail "ssh-add -s failed: exit code $r" + fi + + trace "pkcs11 list via agent" + ${SSHADD} -l > /dev/null 2>&1 + r=$? + if [ $r -ne 0 ]; then + fail "ssh-add -l failed: exit code $r" + fi + + trace "pkcs11 connect via agent" + ${SSH} -2 -F $OBJ/ssh_proxy somehost exit 5 + r=$? + if [ $r -ne 5 ]; then + fail "ssh connect failed (exit code $r)" + fi + + trace "remove pkcs11 keys" + echo ${TEST_SSH_PIN} | notty ${SSHADD} -e ${TEST_SSH_PKCS11} > /dev/null 2>&1 + r=$? + if [ $r -ne 0 ]; then + fail "ssh-add -e failed: exit code $r" + fi + + trace "kill agent" + ${SSHAGENT} -k > /dev/null +fi diff --git a/src/regress/usr.bin/ssh/agent-ptrace.sh b/src/regress/usr.bin/ssh/agent-ptrace.sh new file mode 100644 index 000000000..9f9c99960 --- /dev/null +++ b/src/regress/usr.bin/ssh/agent-ptrace.sh @@ -0,0 +1,28 @@ +# $OpenBSD: agent-ptrace.sh,v 1.1 2002/12/09 15:38:30 markus Exp $ +# Placed in the Public Domain. + +tid="disallow agent ptrace attach" + +trace "start agent" +eval `${SSHAGENT} -s` > /dev/null +r=$? +if [ $r -ne 0 ]; then + fail "could not start ssh-agent: exit code $r" +else + # ls -l ${SSH_AUTH_SOCK} + gdb ${SSHAGENT} ${SSH_AGENT_PID} > ${OBJ}/gdb.out 2>&1 << EOF + quit +EOF + if [ $? -ne 0 ]; then + fail "gdb failed: exit code $?" + fi + grep -q 'ptrace: Operation not permitted.' ${OBJ}/gdb.out + r=$? + rm -f ${OBJ}/gdb.out + if [ $r -ne 0 ]; then + fail "ptrace succeeded?: exit code $r" + fi + + trace "kill agent" + ${SSHAGENT} -k > /dev/null +fi diff --git a/src/regress/usr.bin/ssh/agent-timeout.sh b/src/regress/usr.bin/ssh/agent-timeout.sh new file mode 100644 index 000000000..28b1be028 --- /dev/null +++ b/src/regress/usr.bin/ssh/agent-timeout.sh @@ -0,0 +1,36 @@ +# $OpenBSD: agent-timeout.sh,v 1.1 2002/06/06 00:38:40 markus Exp $ +# Placed in the Public Domain. + +tid="agent timeout test" + +TIMEOUT=5 + +trace "start agent" +eval `${SSHAGENT} -s` > /dev/null +r=$? +if [ $r -ne 0 ]; then + fail "could not start ssh-agent: exit code $r" +else + trace "add keys with timeout" + for t in rsa rsa1; do + ${SSHADD} -t ${TIMEOUT} $OBJ/$t > /dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "ssh-add did succeed exit code 0" + fi + done + n=`${SSHADD} -l 2> /dev/null | wc -l` + trace "agent has $n keys" + if [ $n -ne 2 ]; then + fail "ssh-add -l did not return 2 keys: $n" + fi + trace "sleeping 2*${TIMEOUT} seconds" + sleep ${TIMEOUT} + sleep ${TIMEOUT} + ${SSHADD} -l 2> /dev/null | grep -q 'The agent has no identities.' + if [ $? -ne 0 ]; then + fail "ssh-add -l still returns keys after timeout" + fi + + trace "kill agent" + ${SSHAGENT} -k > /dev/null +fi diff --git a/src/regress/usr.bin/ssh/agent.sh b/src/regress/usr.bin/ssh/agent.sh new file mode 100644 index 000000000..f17fde42e --- /dev/null +++ b/src/regress/usr.bin/ssh/agent.sh @@ -0,0 +1,75 @@ +# $OpenBSD: agent.sh,v 1.7 2007/11/25 15:35:09 jmc Exp $ +# Placed in the Public Domain. + +tid="simple agent test" + +SSH_AUTH_SOCK=/nonexistent ${SSHADD} -l > /dev/null 2>&1 +if [ $? -ne 2 ]; then + fail "ssh-add -l did not fail with exit code 2" +fi + +trace "start agent" +eval `${SSHAGENT} -s` > /dev/null +r=$? +if [ $r -ne 0 ]; then + fail "could not start ssh-agent: exit code $r" +else + ${SSHADD} -l > /dev/null 2>&1 + if [ $? -ne 1 ]; then + fail "ssh-add -l did not fail with exit code 1" + fi + trace "overwrite authorized keys" + echo -n > $OBJ/authorized_keys_$USER + for t in rsa rsa1; do + # generate user key for agent + rm -f $OBJ/$t-agent + ${SSHKEYGEN} -q -N '' -t $t -f $OBJ/$t-agent ||\ + fail "ssh-keygen for $t-agent failed" + # add to authorized keys + cat $OBJ/$t-agent.pub >> $OBJ/authorized_keys_$USER + # add privat key to agent + ${SSHADD} $OBJ/$t-agent > /dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "ssh-add did succeed exit code 0" + fi + done + ${SSHADD} -l > /dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "ssh-add -l failed: exit code $?" + fi + # the same for full pubkey output + ${SSHADD} -L > /dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "ssh-add -L failed: exit code $?" + fi + + trace "simple connect via agent" + for p in 1 2; do + ${SSH} -$p -F $OBJ/ssh_proxy somehost exit 5$p + if [ $? -ne 5$p ]; then + fail "ssh connect with protocol $p failed (exit code $?)" + fi + done + + trace "agent forwarding" + for p in 1 2; do + ${SSH} -A -$p -F $OBJ/ssh_proxy somehost ${SSHADD} -l > /dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "ssh-add -l via agent fwd proto $p failed (exit code $?)" + fi + ${SSH} -A -$p -F $OBJ/ssh_proxy somehost \ + "${SSH} -$p -F $OBJ/ssh_proxy somehost exit 5$p" + if [ $? -ne 5$p ]; then + fail "agent fwd proto $p failed (exit code $?)" + fi + done + + trace "delete all agent keys" + ${SSHADD} -D > /dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "ssh-add -D failed: exit code $?" + fi + + trace "kill agent" + ${SSHAGENT} -k > /dev/null +fi diff --git a/src/regress/usr.bin/ssh/banner.sh b/src/regress/usr.bin/ssh/banner.sh new file mode 100644 index 000000000..0b9c95007 --- /dev/null +++ b/src/regress/usr.bin/ssh/banner.sh @@ -0,0 +1,44 @@ +# $OpenBSD: banner.sh,v 1.2 2003/10/11 11:49:49 dtucker Exp $ +# Placed in the Public Domain. + +tid="banner" +echo "Banner $OBJ/banner.in" >> $OBJ/sshd_proxy + +rm -f $OBJ/banner.out $OBJ/banner.in $OBJ/empty.in +touch $OBJ/empty.in + +trace "test missing banner file" +verbose "test $tid: missing banner file" +( ${SSH} -2 -F $OBJ/ssh_proxy otherhost true 2>$OBJ/banner.out && \ + cmp $OBJ/empty.in $OBJ/banner.out ) || \ + fail "missing banner file" + +for s in 0 10 100 1000 10000 100000 ; do + if [ "$s" = "0" ]; then + # create empty banner + touch $OBJ/banner.in + elif [ "$s" = "10" ]; then + # create 10-byte banner file + echo "abcdefghi" >$OBJ/banner.in + else + # increase size 10x + cp $OBJ/banner.in $OBJ/banner.out + for i in 0 1 2 3 4 5 6 7 8 ; do + cat $OBJ/banner.out >> $OBJ/banner.in + done + fi + + trace "test banner size $s" + verbose "test $tid: size $s" + ( ${SSH} -2 -F $OBJ/ssh_proxy otherhost true 2>$OBJ/banner.out && \ + cmp $OBJ/banner.in $OBJ/banner.out ) || \ + fail "banner size $s mismatch" +done + +trace "test suppress banner (-q)" +verbose "test $tid: suppress banner (-q)" +( ${SSH} -q -2 -F $OBJ/ssh_proxy otherhost true 2>$OBJ/banner.out && \ + cmp $OBJ/empty.in $OBJ/banner.out ) || \ + fail "suppress banner (-q)" + +rm -f $OBJ/banner.out $OBJ/banner.in $OBJ/empty.in diff --git a/src/regress/usr.bin/ssh/broken-pipe.sh b/src/regress/usr.bin/ssh/broken-pipe.sh new file mode 100644 index 000000000..c08c849a7 --- /dev/null +++ b/src/regress/usr.bin/ssh/broken-pipe.sh @@ -0,0 +1,15 @@ +# $OpenBSD: broken-pipe.sh,v 1.4 2002/03/15 13:08:56 markus Exp $ +# Placed in the Public Domain. + +tid="broken pipe test" + +for p in 1 2; do + trace "protocol $p" + for i in 1 2 3 4; do + ${SSH} -$p -F $OBJ/ssh_config_config nexthost echo $i 2> /dev/null | true + r=$? + if [ $r -ne 0 ]; then + fail "broken pipe returns $r for protocol $p" + fi + done +done diff --git a/src/regress/usr.bin/ssh/brokenkeys.sh b/src/regress/usr.bin/ssh/brokenkeys.sh new file mode 100644 index 000000000..3e70c348a --- /dev/null +++ b/src/regress/usr.bin/ssh/brokenkeys.sh @@ -0,0 +1,23 @@ +# $OpenBSD: brokenkeys.sh,v 1.1 2004/10/29 23:59:22 djm Exp $ +# Placed in the Public Domain. + +tid="broken keys" + +KEYS="$OBJ/authorized_keys_${USER}" + +start_sshd + +mv ${KEYS} ${KEYS}.bak + +# Truncated key +echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEABTM= bad key" > $KEYS +cat ${KEYS}.bak >> ${KEYS} +cat $OBJ/$t.pub >> $OBJ/authorized_keys_$USER + +${SSH} -2 -F $OBJ/ssh_config somehost true +if [ $? -ne 0 ]; then + fail "ssh connect with protocol $p failed" +fi + +mv ${KEYS}.bak ${KEYS} + diff --git a/src/regress/usr.bin/ssh/cert-hostkey.sh b/src/regress/usr.bin/ssh/cert-hostkey.sh new file mode 100644 index 000000000..1fa2b2304 --- /dev/null +++ b/src/regress/usr.bin/ssh/cert-hostkey.sh @@ -0,0 +1,239 @@ +# $OpenBSD: cert-hostkey.sh,v 1.4 2010/04/16 01:58:45 djm Exp $ +# Placed in the Public Domain. + +tid="certified host keys" + +rm -f $OBJ/known_hosts-cert $OBJ/host_ca_key* $OBJ/cert_host_key* +cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak + +HOSTS='localhost-with-alias,127.0.0.1,::1' + +# Create a CA key and add it to known hosts +${SSHKEYGEN} -q -N '' -t rsa -f $OBJ/host_ca_key ||\ + fail "ssh-keygen of host_ca_key failed" +( + echo -n '@cert-authority ' + echo -n "$HOSTS " + cat $OBJ/host_ca_key.pub +) > $OBJ/known_hosts-cert + +# Generate and sign host keys +for ktype in rsa dsa ; do + verbose "$tid: sign host ${ktype} cert" + # Generate and sign a host key + ${SSHKEYGEN} -q -N '' -t ${ktype} \ + -f $OBJ/cert_host_key_${ktype} || \ + fail "ssh-keygen of cert_host_key_${ktype} failed" + ${SSHKEYGEN} -h -q -s $OBJ/host_ca_key \ + -I "regress host key for $USER" \ + -n $HOSTS $OBJ/cert_host_key_${ktype} || + fail "couldn't sign cert_host_key_${ktype}" + cp $OBJ/cert_host_key_${ktype} $OBJ/cert_host_key_${ktype}_v00 + cp $OBJ/cert_host_key_${ktype}.pub $OBJ/cert_host_key_${ktype}_v00.pub + ${SSHKEYGEN} -t v00 -h -q -s $OBJ/host_ca_key \ + -I "regress host key for $USER" \ + -n $HOSTS $OBJ/cert_host_key_${ktype}_v00 || + fail "couldn't sign cert_host_key_${ktype}_v00" +done + +# Basic connect tests +for privsep in yes no ; do + for ktype in rsa dsa rsa_v00 dsa_v00; do + verbose "$tid: host ${ktype} cert connect privsep $privsep" + ( + cat $OBJ/sshd_proxy_bak + echo HostKey $OBJ/cert_host_key_${ktype} + echo HostCertificate $OBJ/cert_host_key_${ktype}-cert.pub + echo UsePrivilegeSeparation $privsep + ) > $OBJ/sshd_proxy + + ${SSH} -2 -oUserKnownHostsFile=$OBJ/known_hosts-cert \ + -oGlobalKnownHostsFile=$OBJ/known_hosts-cert \ + -F $OBJ/ssh_proxy somehost true + if [ $? -ne 0 ]; then + fail "ssh cert connect failed" + fi + done +done + +# Revoked certificates with key present +( + echo -n '@cert-authority ' + echo -n "$HOSTS " + cat $OBJ/host_ca_key.pub + echo -n '@revoked ' + echo -n "* " + cat $OBJ/cert_host_key_rsa.pub + echo -n '@revoked ' + echo -n "* " + cat $OBJ/cert_host_key_dsa.pub + echo -n '@revoked ' + echo -n "* " + cat $OBJ/cert_host_key_rsa_v00.pub + echo -n '@revoked ' + echo -n "* " + cat $OBJ/cert_host_key_dsa_v00.pub +) > $OBJ/known_hosts-cert +for privsep in yes no ; do + for ktype in rsa dsa rsa_v00 dsa_v00; do + verbose "$tid: host ${ktype} revoked cert privsep $privsep" + ( + cat $OBJ/sshd_proxy_bak + echo HostKey $OBJ/cert_host_key_${ktype} + echo HostCertificate $OBJ/cert_host_key_${ktype}-cert.pub + echo UsePrivilegeSeparation $privsep + ) > $OBJ/sshd_proxy + + ${SSH} -2 -oUserKnownHostsFile=$OBJ/known_hosts-cert \ + -oGlobalKnownHostsFile=$OBJ/known_hosts-cert \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi + done +done + +# Revoked CA +( + echo -n '@cert-authority ' + echo -n "$HOSTS " + cat $OBJ/host_ca_key.pub + echo -n '@revoked ' + echo -n "* " + cat $OBJ/host_ca_key.pub +) > $OBJ/known_hosts-cert +for ktype in rsa dsa rsa_v00 dsa_v00 ; do + verbose "$tid: host ${ktype} revoked cert" + ( + cat $OBJ/sshd_proxy_bak + echo HostKey $OBJ/cert_host_key_${ktype} + echo HostCertificate $OBJ/cert_host_key_${ktype}-cert.pub + ) > $OBJ/sshd_proxy + ${SSH} -2 -oUserKnownHostsFile=$OBJ/known_hosts-cert \ + -oGlobalKnownHostsFile=$OBJ/known_hosts-cert \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi +done + +# Create a CA key and add it to known hosts +( + echo -n '@cert-authority ' + echo -n "$HOSTS " + cat $OBJ/host_ca_key.pub +) > $OBJ/known_hosts-cert + +test_one() { + ident=$1 + result=$2 + sign_opts=$3 + + for kt in rsa rsa_v00 ; do + case $kt in + *_v00) args="-t v00" ;; + *) args="" ;; + esac + + verbose "$tid: host cert connect $ident $kt expect $result" + ${SSHKEYGEN} -q -s $OBJ/host_ca_key \ + -I "regress host key for $USER" \ + $sign_opts $args \ + $OBJ/cert_host_key_${kt} || + fail "couldn't sign cert_host_key_${kt}" + ( + cat $OBJ/sshd_proxy_bak + echo HostKey $OBJ/cert_host_key_${kt} + echo HostCertificate $OBJ/cert_host_key_${kt}-cert.pub + ) > $OBJ/sshd_proxy + + ${SSH} -2 -oUserKnownHostsFile=$OBJ/known_hosts-cert \ + -oGlobalKnownHostsFile=$OBJ/known_hosts-cert \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + rc=$? + if [ "x$result" = "xsuccess" ] ; then + if [ $rc -ne 0 ]; then + fail "ssh cert connect $ident failed unexpectedly" + fi + else + if [ $rc -eq 0 ]; then + fail "ssh cert connect $ident succeeded unexpectedly" + fi + fi + done +} + +test_one "user-certificate" failure "-n $HOSTS" +test_one "empty principals" success "-h" +test_one "wrong principals" failure "-h -n foo" +test_one "cert not yet valid" failure "-h -V20200101:20300101" +test_one "cert expired" failure "-h -V19800101:19900101" +test_one "cert valid interval" success "-h -V-1w:+2w" +test_one "cert has constraints" failure "-h -Oforce-command=false" + +# Check downgrade of cert to raw key when no CA found +for v in v01 v00 ; do + for ktype in rsa dsa ; do + rm -f $OBJ/known_hosts-cert $OBJ/cert_host_key* + verbose "$tid: host ${ktype} ${v} cert downgrade to raw key" + # Generate and sign a host key + ${SSHKEYGEN} -q -N '' -t ${ktype} \ + -f $OBJ/cert_host_key_${ktype} || \ + fail "ssh-keygen of cert_host_key_${ktype} failed" + ${SSHKEYGEN} -t ${v} -h -q -s $OBJ/host_ca_key \ + -I "regress host key for $USER" \ + -n $HOSTS $OBJ/cert_host_key_${ktype} || + fail "couldn't sign cert_host_key_${ktype}" + ( + echo -n "$HOSTS " + cat $OBJ/cert_host_key_${ktype}.pub + ) > $OBJ/known_hosts-cert + ( + cat $OBJ/sshd_proxy_bak + echo HostKey $OBJ/cert_host_key_${ktype} + echo HostCertificate $OBJ/cert_host_key_${ktype}-cert.pub + ) > $OBJ/sshd_proxy + + ${SSH} -2 -oUserKnownHostsFile=$OBJ/known_hosts-cert \ + -oGlobalKnownHostsFile=$OBJ/known_hosts-cert \ + -F $OBJ/ssh_proxy somehost true + if [ $? -ne 0 ]; then + fail "ssh cert connect failed" + fi + done +done + +# Wrong certificate +( + echo -n '@cert-authority ' + echo -n "$HOSTS " + cat $OBJ/host_ca_key.pub +) > $OBJ/known_hosts-cert +for v in v01 v00 ; do + for kt in rsa dsa ; do + rm -f $OBJ/cert_host_key* + # Self-sign key + ${SSHKEYGEN} -q -N '' -t ${kt} \ + -f $OBJ/cert_host_key_${kt} || \ + fail "ssh-keygen of cert_host_key_${kt} failed" + ${SSHKEYGEN} -t ${v} -h -q -s $OBJ/cert_host_key_${kt} \ + -I "regress host key for $USER" \ + -n $HOSTS $OBJ/cert_host_key_${kt} || + fail "couldn't sign cert_host_key_${kt}" + verbose "$tid: host ${kt} connect wrong cert" + ( + cat $OBJ/sshd_proxy_bak + echo HostKey $OBJ/cert_host_key_${kt} + echo HostCertificate $OBJ/cert_host_key_${kt}-cert.pub + ) > $OBJ/sshd_proxy + + ${SSH} -2 -oUserKnownHostsFile=$OBJ/known_hosts-cert \ + -oGlobalKnownHostsFile=$OBJ/known_hosts-cert \ + -F $OBJ/ssh_proxy -q somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect $ident succeeded unexpectedly" + fi + done +done + +rm -f $OBJ/known_hosts-cert $OBJ/host_ca_key* $OBJ/cert_host_key* diff --git a/src/regress/usr.bin/ssh/cert-userkey.sh b/src/regress/usr.bin/ssh/cert-userkey.sh new file mode 100644 index 000000000..102b13ab3 --- /dev/null +++ b/src/regress/usr.bin/ssh/cert-userkey.sh @@ -0,0 +1,295 @@ +# $OpenBSD: cert-userkey.sh,v 1.5 2010/05/07 11:31:26 djm Exp $ +# Placed in the Public Domain. + +tid="certified user keys" + +rm -f $OBJ/authorized_keys_$USER $OBJ/user_ca_key* $OBJ/cert_user_key* +cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak + +# Create a CA key +${SSHKEYGEN} -q -N '' -t rsa -f $OBJ/user_ca_key ||\ + fail "ssh-keygen of user_ca_key failed" + +# Generate and sign user keys +for ktype in rsa dsa ; do + verbose "$tid: sign user ${ktype} cert" + ${SSHKEYGEN} -q -N '' -t ${ktype} \ + -f $OBJ/cert_user_key_${ktype} || \ + fail "ssh-keygen of cert_user_key_${ktype} failed" + ${SSHKEYGEN} -q -s $OBJ/user_ca_key -I \ + "regress user key for $USER" \ + -n ${USER},mekmitasdigoat $OBJ/cert_user_key_${ktype} || + fail "couldn't sign cert_user_key_${ktype}" + cp $OBJ/cert_user_key_${ktype} $OBJ/cert_user_key_${ktype}_v00 + cp $OBJ/cert_user_key_${ktype}.pub $OBJ/cert_user_key_${ktype}_v00.pub + ${SSHKEYGEN} -q -t v00 -s $OBJ/user_ca_key -I \ + "regress user key for $USER" \ + -n ${USER},mekmitasdigoat $OBJ/cert_user_key_${ktype}_v00 || + fail "couldn't sign cert_user_key_${ktype}_v00" +done + +# Test explicitly-specified principals +for ktype in rsa dsa rsa_v00 dsa_v00 ; do + for privsep in yes no ; do + _prefix="${ktype} privsep $privsep" + + # Setup for AuthorizedPrincipalsFile + rm -f $OBJ/authorized_keys_$USER + ( + cat $OBJ/sshd_proxy_bak + echo "UsePrivilegeSeparation $privsep" + echo "AuthorizedPrincipalsFile " \ + "$OBJ/authorized_principals_%u" + echo "TrustedUserCAKeys $OBJ/user_ca_key.pub" + ) > $OBJ/sshd_proxy + + # Missing authorized_principals + verbose "$tid: ${_prefix} missing authorized_principals" + rm -f $OBJ/authorized_principals_$USER + ${SSH} -2i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi + + # Empty authorized_principals + verbose "$tid: ${_prefix} empty authorized_principals" + echo > $OBJ/authorized_principals_$USER + ${SSH} -2i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi + + # Wrong authorized_principals + verbose "$tid: ${_prefix} wrong authorized_principals" + echo gregorsamsa > $OBJ/authorized_principals_$USER + ${SSH} -2i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi + + # Correct authorized_principals + verbose "$tid: ${_prefix} correct authorized_principals" + echo mekmitasdigoat > $OBJ/authorized_principals_$USER + ${SSH} -2i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "ssh cert connect failed" + fi + + # Setup for principals= key option + rm -f $OBJ/authorized_principals_$USER + ( + cat $OBJ/sshd_proxy_bak + echo "UsePrivilegeSeparation $privsep" + ) > $OBJ/sshd_proxy + + # Wrong principals list + verbose "$tid: ${_prefix} wrong principals key option" + ( + echo -n 'cert-authority,principals="gregorsamsa" ' + cat $OBJ/user_ca_key.pub + ) > $OBJ/authorized_keys_$USER + ${SSH} -2i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi + + # Correct principals list + verbose "$tid: ${_prefix} correct principals key option" + ( + echo -n 'cert-authority,principals="mekmitasdigoat" ' + cat $OBJ/user_ca_key.pub + ) > $OBJ/authorized_keys_$USER + ${SSH} -2i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "ssh cert connect failed" + fi + done +done + +basic_tests() { + auth=$1 + if test "x$auth" = "xauthorized_keys" ; then + # Add CA to authorized_keys + ( + echo -n 'cert-authority ' + cat $OBJ/user_ca_key.pub + ) > $OBJ/authorized_keys_$USER + else + echo > $OBJ/authorized_keys_$USER + extra_sshd="TrustedUserCAKeys $OBJ/user_ca_key.pub" + fi + + for ktype in rsa dsa rsa_v00 dsa_v00 ; do + for privsep in yes no ; do + _prefix="${ktype} privsep $privsep $auth" + # Simple connect + verbose "$tid: ${_prefix} connect" + ( + cat $OBJ/sshd_proxy_bak + echo "UsePrivilegeSeparation $privsep" + echo "$extra_sshd" + ) > $OBJ/sshd_proxy + + ${SSH} -2i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true + if [ $? -ne 0 ]; then + fail "ssh cert connect failed" + fi + + # Revoked keys + verbose "$tid: ${_prefix} revoked key" + ( + cat $OBJ/sshd_proxy_bak + echo "UsePrivilegeSeparation $privsep" + echo "RevokedKeys $OBJ/cert_user_key_${ktype}.pub" + echo "$extra_sshd" + ) > $OBJ/sshd_proxy + ${SSH} -2i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpecedly" + fi + done + + # Revoked CA + verbose "$tid: ${ktype} $auth revoked CA key" + ( + cat $OBJ/sshd_proxy_bak + echo "RevokedKeys $OBJ/user_ca_key.pub" + echo "$extra_sshd" + ) > $OBJ/sshd_proxy + ${SSH} -2i $OBJ/cert_user_key_${ktype} -F $OBJ/ssh_proxy \ + somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpecedly" + fi + done + + verbose "$tid: $auth CA does not authenticate" + ( + cat $OBJ/sshd_proxy_bak + echo "$extra_sshd" + ) > $OBJ/sshd_proxy + verbose "$tid: ensure CA key does not authenticate user" + ${SSH} -2i $OBJ/user_ca_key \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect with CA key succeeded unexpectedly" + fi +} + +basic_tests authorized_keys +basic_tests TrustedUserCAKeys + +test_one() { + ident=$1 + result=$2 + sign_opts=$3 + auth_choice=$4 + auth_opt=$5 + + if test "x$auth_choice" = "x" ; then + auth_choice="authorized_keys TrustedUserCAKeys" + fi + + for auth in $auth_choice ; do + for ktype in rsa rsa_v00 ; do + cat $OBJ/sshd_proxy_bak > $OBJ/sshd_proxy + if test "x$auth" = "xauthorized_keys" ; then + # Add CA to authorized_keys + ( + echo -n "cert-authority${auth_opt} " + cat $OBJ/user_ca_key.pub + ) > $OBJ/authorized_keys_$USER + else + echo > $OBJ/authorized_keys_$USER + echo "TrustedUserCAKeys $OBJ/user_ca_key.pub" \ + >> $OBJ/sshd_proxy + if test "x$auth_opt" != "x" ; then + echo $auth_opt >> $OBJ/sshd_proxy + fi + fi + + verbose "$tid: $ident auth $auth expect $result $ktype" + ${SSHKEYGEN} -q -s $OBJ/user_ca_key \ + -I "regress user key for $USER" \ + $sign_opts \ + $OBJ/cert_user_key_${ktype} || + fail "couldn't sign cert_user_key_${ktype}" + + ${SSH} -2i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + rc=$? + if [ "x$result" = "xsuccess" ] ; then + if [ $rc -ne 0 ]; then + fail "$ident failed unexpectedly" + fi + else + if [ $rc -eq 0 ]; then + fail "$ident succeeded unexpectedly" + fi + fi + done + done +} + +test_one "correct principal" success "-n ${USER}" +test_one "host-certificate" failure "-n ${USER} -h" +test_one "wrong principals" failure "-n foo" +test_one "cert not yet valid" failure "-n ${USER} -V20200101:20300101" +test_one "cert expired" failure "-n ${USER} -V19800101:19900101" +test_one "cert valid interval" success "-n ${USER} -V-1w:+2w" +test_one "wrong source-address" failure "-n ${USER} -Osource-address=10.0.0.0/8" +test_one "force-command" failure "-n ${USER} -Oforce-command=false" + +# Behaviour is different here: TrustedUserCAKeys doesn't allow empty principals +test_one "empty principals" success "" authorized_keys +test_one "empty principals" failure "" TrustedUserCAKeys + +# Check explicitly-specified principals: an empty principals list in the cert +# should always be refused. + +# AuthorizedPrincipalsFile +rm -f $OBJ/authorized_keys_$USER +echo mekmitasdigoat > $OBJ/authorized_principals_$USER +test_one "AuthorizedPrincipalsFile principals" success "-n mekmitasdigoat" \ + TrustedUserCAKeys "AuthorizedPrincipalsFile $OBJ/authorized_principals_%u" +test_one "AuthorizedPrincipalsFile no principals" failure "" \ + TrustedUserCAKeys "AuthorizedPrincipalsFile $OBJ/authorized_principals_%u" + +# principals= key option +rm -f $OBJ/authorized_principals_$USER +test_one "principals key option principals" success "-n mekmitasdigoat" \ + authorized_keys ',principals="mekmitasdigoat"' +test_one "principals key option no principals" failure "" \ + authorized_keys ',principals="mekmitasdigoat"' + +# Wrong certificate +cat $OBJ/sshd_proxy_bak > $OBJ/sshd_proxy +for ktype in rsa dsa rsa_v00 dsa_v00 ; do + case $ktype in + *_v00) args="-t v00" ;; + *) args="" ;; + esac + # Self-sign + ${SSHKEYGEN} $args -q -s $OBJ/cert_user_key_${ktype} -I \ + "regress user key for $USER" \ + -n $USER $OBJ/cert_user_key_${ktype} || + fail "couldn't sign cert_user_key_${ktype}" + verbose "$tid: user ${ktype} connect wrong cert" + ${SSH} -2i $OBJ/cert_user_key_${ktype} -F $OBJ/ssh_proxy \ + somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect $ident succeeded unexpectedly" + fi +done + +rm -f $OBJ/authorized_keys_$USER $OBJ/user_ca_key* $OBJ/cert_user_key* +rm -f $OBJ/authorized_principals_$USER + diff --git a/src/regress/usr.bin/ssh/cfgmatch.sh b/src/regress/usr.bin/ssh/cfgmatch.sh new file mode 100644 index 000000000..2819b4f62 --- /dev/null +++ b/src/regress/usr.bin/ssh/cfgmatch.sh @@ -0,0 +1,124 @@ +# $OpenBSD: cfgmatch.sh,v 1.4 2006/12/13 08:36:36 dtucker Exp $ +# Placed in the Public Domain. + +tid="sshd_config match" + +pidfile=$OBJ/remote_pid +fwdport=3301 +fwd="-L $fwdport:127.0.0.1:$PORT" + +stop_client() +{ + pid=`cat $pidfile` + if [ ! -z "$pid" ]; then + kill $pid + fi +} + +cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak + +echo "PermitOpen 127.0.0.1:1" >>$OBJ/sshd_config +echo "Match Address 127.0.0.1" >>$OBJ/sshd_config +echo "PermitOpen 127.0.0.1:$PORT" >>$OBJ/sshd_config + +echo "PermitOpen 127.0.0.1:1" >>$OBJ/sshd_proxy +echo "Match Address 127.0.0.1" >>$OBJ/sshd_proxy +echo "PermitOpen 127.0.0.1:$PORT" >>$OBJ/sshd_proxy + +start_sshd + +#set -x + +# Test Match + PermitOpen in sshd_config. This should be permitted +for p in 1 2; do + rm -f $pidfile + trace "match permitopen localhost proto $p" + ${SSH} -$p $fwd -F $OBJ/ssh_config -f somehost \ + exec sh -c \'"echo \$\$ > $pidfile; exec sleep 100"\' >>$TEST_SSH_LOGFILE 2>&1 ||\ + fail "match permitopen proto $p sshd failed" + sleep 1; + ${SSH} -q -$p -p $fwdport -F $OBJ/ssh_config somehost true || \ + fail "match permitopen permit proto $p" + stop_client +done + +# Same but from different source. This should not be permitted +for p in 1 2; do + rm -f $pidfile + trace "match permitopen proxy proto $p" + ${SSH} -q -$p $fwd -F $OBJ/ssh_proxy -f somehost \ + exec sh -c \'"echo \$\$ > $pidfile; exec sleep 100"\' >>$TEST_SSH_LOGFILE 2>&1 ||\ + fail "match permitopen proxy proto $p sshd failed" + sleep 1; + ${SSH} -q -$p -p $fwdport -F $OBJ/ssh_config somehost true && \ + fail "match permitopen deny proto $p" + stop_client +done + +# Retry previous with key option, should also be denied. +echo -n 'permitopen="127.0.0.1:'$PORT'" ' >$OBJ/authorized_keys_$USER +cat $OBJ/rsa.pub >> $OBJ/authorized_keys_$USER +echo -n 'permitopen="127.0.0.1:'$PORT'" ' >>$OBJ/authorized_keys_$USER +cat $OBJ/rsa1.pub >> $OBJ/authorized_keys_$USER +for p in 1 2; do + rm -f $pidfile + trace "match permitopen proxy w/key opts proto $p" + ${SSH} -q -$p $fwd -F $OBJ/ssh_proxy -f somehost \ + exec sh -c \'"echo \$\$ > $pidfile; exec sleep 100"\' >>$TEST_SSH_LOGFILE 2>&1 ||\ + fail "match permitopen w/key opt proto $p sshd failed" + sleep 1; + ${SSH} -q -$p -p $fwdport -F $OBJ/ssh_config somehost true && \ + fail "match permitopen deny w/key opt proto $p" + stop_client +done + +# Test both sshd_config and key options permitting the same dst/port pair. +# Should be permitted. +for p in 1 2; do + rm -f $pidfile + trace "match permitopen localhost proto $p" + ${SSH} -$p $fwd -F $OBJ/ssh_config -f somehost \ + exec sh -c \'"echo \$\$ > $pidfile; exec sleep 100"\' >>$TEST_SSH_LOGFILE 2>&1 ||\ + fail "match permitopen proto $p sshd failed" + sleep 1; + ${SSH} -q -$p -p $fwdport -F $OBJ/ssh_config somehost true || \ + fail "match permitopen permit proto $p" + stop_client +done + +cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy +echo "PermitOpen 127.0.0.1:1 127.0.0.1:$PORT 127.0.0.2:2" >>$OBJ/sshd_proxy +echo "Match User $USER" >>$OBJ/sshd_proxy +echo "PermitOpen 127.0.0.1:1 127.0.0.1:2" >>$OBJ/sshd_proxy + +# Test that a Match overrides a PermitOpen in the global section +for p in 1 2; do + rm -f $pidfile + trace "match permitopen proxy w/key opts proto $p" + ${SSH} -q -$p $fwd -F $OBJ/ssh_proxy -f somehost \ + exec sh -c \'"echo \$\$ > $pidfile; exec sleep 100"\' >>$TEST_SSH_LOGFILE 2>&1 ||\ + fail "match override permitopen proto $p sshd failed" + sleep 1; + ${SSH} -q -$p -p $fwdport -F $OBJ/ssh_config somehost true && \ + fail "match override permitopen proto $p" + stop_client +done + +cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy +echo "PermitOpen 127.0.0.1:1 127.0.0.1:$PORT 127.0.0.2:2" >>$OBJ/sshd_proxy +echo "Match User NoSuchUser" >>$OBJ/sshd_proxy +echo "PermitOpen 127.0.0.1:1 127.0.0.1:2" >>$OBJ/sshd_proxy + +# Test that a rule that doesn't match doesn't override, plus test a +# PermitOpen entry that's not at the start of the list +for p in 1 2; do + rm -f $pidfile + trace "nomatch permitopen proxy w/key opts proto $p" + ${SSH} -q -$p $fwd -F $OBJ/ssh_proxy -f somehost \ + exec sh -c \'"echo \$\$ > $pidfile; exec sleep 100"\' >>$TEST_SSH_LOGFILE 2>&1 ||\ + fail "nomatch override permitopen proto $p sshd failed" + sleep 1; + ${SSH} -q -$p -p $fwdport -F $OBJ/ssh_config somehost true || \ + fail "nomatch override permitopen proto $p" + stop_client +done diff --git a/src/regress/usr.bin/ssh/cipher-speed.sh b/src/regress/usr.bin/ssh/cipher-speed.sh new file mode 100644 index 000000000..d39a829d4 --- /dev/null +++ b/src/regress/usr.bin/ssh/cipher-speed.sh @@ -0,0 +1,47 @@ +# $OpenBSD: cipher-speed.sh,v 1.3 2007/06/07 19:41:46 pvalchev Exp $ +# Placed in the Public Domain. + +tid="cipher speed" + +getbytes () +{ + sed -n '/transferred/s/.*secs (\(.* bytes.sec\).*/\1/p' +} + +tries="1 2" +DATA=/bin/ls +DATA=/bsd + +macs="hmac-sha1 hmac-md5 umac-64@openssh.com hmac-sha1-96 hmac-md5-96" +ciphers="aes128-cbc 3des-cbc blowfish-cbc cast128-cbc + arcfour128 arcfour256 arcfour aes192-cbc aes256-cbc aes128-ctr" + +for c in $ciphers; do for m in $macs; do + trace "proto 2 cipher $c mac $m" + for x in $tries; do + echo -n "$c/$m:\t" + ( ${SSH} -o 'compression no' \ + -F $OBJ/ssh_proxy -2 -m $m -c $c somehost \ + exec sh -c \'"dd of=/dev/null obs=32k"\' \ + < ${DATA} ) 2>&1 | getbytes + + if [ $? -ne 0 ]; then + fail "ssh -2 failed with mac $m cipher $c" + fi + done +done; done + +ciphers="3des blowfish" +for c in $ciphers; do + trace "proto 1 cipher $c" + for x in $tries; do + echo -n "$c:\t" + ( ${SSH} -o 'compression no' \ + -F $OBJ/ssh_proxy -1 -c $c somehost \ + exec sh -c \'"dd of=/dev/null obs=32k"\' \ + < ${DATA} ) 2>&1 | getbytes + if [ $? -ne 0 ]; then + fail "ssh -1 failed with cipher $c" + fi + done +done diff --git a/src/regress/usr.bin/ssh/conch-ciphers.sh b/src/regress/usr.bin/ssh/conch-ciphers.sh new file mode 100644 index 000000000..84b190618 --- /dev/null +++ b/src/regress/usr.bin/ssh/conch-ciphers.sh @@ -0,0 +1,30 @@ +# $OpenBSD: conch-ciphers.sh,v 1.2 2008/06/30 10:43:03 djm Exp $ +# Placed in the Public Domain. + +tid="conch ciphers" + +DATA=/bin/ls +COPY=${OBJ}/copy + +if test "x$REGRESS_INTEROP_CONCH" != "xyes" ; then + fatal "conch interop tests not enabled" +fi + +start_sshd + +for c in aes256-ctr aes256-cbc aes192-ctr aes192-cbc aes128-ctr aes128-cbc \ + cast128-cbc blowfish 3des-cbc ; do + verbose "$tid: cipher $c" + rm -f ${COPY} + # XXX the 2nd "cat" seems to be needed because of buggy FD handling + # in conch + ${CONCH} --identity $OBJ/rsa --port $PORT --user $USER -e none \ + --known-hosts $OBJ/known_hosts --notty --noagent --nox11 -n \ + 127.0.0.1 "cat ${DATA}" 2>/dev/null | cat > ${COPY} + if [ $? -ne 0 ]; then + fail "ssh cat $DATA failed" + fi + cmp ${DATA} ${COPY} || fail "corrupted copy" +done +rm -f ${COPY} + diff --git a/src/regress/usr.bin/ssh/connect-privsep.sh b/src/regress/usr.bin/ssh/connect-privsep.sh new file mode 100644 index 000000000..d23cadba5 --- /dev/null +++ b/src/regress/usr.bin/ssh/connect-privsep.sh @@ -0,0 +1,13 @@ +# $OpenBSD: connect-privsep.sh,v 1.1 2002/03/21 21:45:07 markus Exp $ +# Placed in the Public Domain. + +tid="proxy connect with privsep" + +echo 'UsePrivilegeSeparation yes' >> $OBJ/sshd_proxy + +for p in 1 2; do + ${SSH} -$p -F $OBJ/ssh_proxy 999.999.999.999 true + if [ $? -ne 0 ]; then + fail "ssh privsep+proxyconnect protocol $p failed" + fi +done diff --git a/src/regress/usr.bin/ssh/connect.sh b/src/regress/usr.bin/ssh/connect.sh new file mode 100644 index 000000000..2186fa6e7 --- /dev/null +++ b/src/regress/usr.bin/ssh/connect.sh @@ -0,0 +1,13 @@ +# $OpenBSD: connect.sh,v 1.4 2002/03/15 13:08:56 markus Exp $ +# Placed in the Public Domain. + +tid="simple connect" + +start_sshd + +for p in 1 2; do + ${SSH} -o "Protocol=$p" -F $OBJ/ssh_config somehost true + if [ $? -ne 0 ]; then + fail "ssh connect with protocol $p failed" + fi +done diff --git a/src/regress/usr.bin/ssh/dsa_ssh2.prv b/src/regress/usr.bin/ssh/dsa_ssh2.prv new file mode 100644 index 000000000..c93b40371 --- /dev/null +++ b/src/regress/usr.bin/ssh/dsa_ssh2.prv @@ -0,0 +1,14 @@ +---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ---- +Subject: ssh-keygen test +Comment: "1024-bit dsa, Tue Jan 08 2002 22:00:23 +0100" +P2/56wAAAgIAAAAmZGwtbW9kcHtzaWdue2RzYS1uaXN0LXNoYTF9LGRoe3BsYWlufX0AAA +AEbm9uZQAAAcQAAAHAAAAAAAAABACwUfm3AxZTut3icBmwCcD48nY64HzuELlQ+vEqjIcR +Lo49es/DQTeLNQ+kdKRCfouosGNv0WqxRtF0tUsWdXxS37oHGa4QPugBdHRd7YlZGZv8kg +x7FsoepY7v7E683/97dv2zxL3AGagTEzWr7fl0yPexAaZoDvtQrrjX44BLmwAABACWQkvv +MxnD8eFkS1konFfMJ1CkuRfTN34CBZ6dY7VTSGemy4QwtFdMKmoufD0eKgy3p5WOeWCYKt +F4FhjHKZk/aaxFjjIbtkrnlvXg64QI11dSZyBN6/ViQkHPSkUDF+A6AAEhrNbQbAFSvao1 +kTvNtPCtL0AkUIduEMzGQfLCTAAAAKDeC043YVo9Zo0zAEeIA4uZh4LBCQAAA/9aj7Y5ik +ehygJ4qTDSlVypsPuV+n59tMS0e2pfrSG87yf5r94AKBmJeho5OO6wYaXCxsVB7AFbSUD6 +75AK8mHF4v1/+7SWKk5f8xlMCMSPZ9K0+j/W1d/q2qkhnnDZolOHDomLA+U00i5ya/jnTV +zyDPWLFpWK8u3xGBPAYX324gAAAKDHFvooRnaXdZbeWGTTqmgHB1GU9A== +---- END SSH2 ENCRYPTED PRIVATE KEY ---- diff --git a/src/regress/usr.bin/ssh/dsa_ssh2.pub b/src/regress/usr.bin/ssh/dsa_ssh2.pub new file mode 100644 index 000000000..215d73bae --- /dev/null +++ b/src/regress/usr.bin/ssh/dsa_ssh2.pub @@ -0,0 +1,13 @@ +---- BEGIN SSH2 PUBLIC KEY ---- +Subject: ssh-keygen test +Comment: "1024-bit dsa, Tue Jan 08 2002 22:00:23 +0100" +AAAAB3NzaC1kc3MAAACBALBR+bcDFlO63eJwGbAJwPjydjrgfO4QuVD68SqMhxEujj16z8 +NBN4s1D6R0pEJ+i6iwY2/RarFG0XS1SxZ1fFLfugcZrhA+6AF0dF3tiVkZm/ySDHsWyh6l +ju/sTrzf/3t2/bPEvcAZqBMTNavt+XTI97EBpmgO+1CuuNfjgEubAAAAFQDeC043YVo9Zo +0zAEeIA4uZh4LBCQAAAIEAlkJL7zMZw/HhZEtZKJxXzCdQpLkX0zd+AgWenWO1U0hnpsuE +MLRXTCpqLnw9HioMt6eVjnlgmCrReBYYxymZP2msRY4yG7ZK55b14OuECNdXUmcgTev1Yk +JBz0pFAxfgOgABIazW0GwBUr2qNZE7zbTwrS9AJFCHbhDMxkHywkwAAACAWo+2OYpHocoC +eKkw0pVcqbD7lfp+fbTEtHtqX60hvO8n+a/eACgZiXoaOTjusGGlwsbFQewBW0lA+u+QCv +JhxeL9f/u0lipOX/MZTAjEj2fStPo/1tXf6tqpIZ5w2aJThw6JiwPlNNIucmv4501c8gz1 +ixaVivLt8RgTwGF99uI= +---- END SSH2 PUBLIC KEY ---- diff --git a/src/regress/usr.bin/ssh/dynamic-forward.sh b/src/regress/usr.bin/ssh/dynamic-forward.sh new file mode 100644 index 000000000..7d93f5367 --- /dev/null +++ b/src/regress/usr.bin/ssh/dynamic-forward.sh @@ -0,0 +1,45 @@ +# $OpenBSD: dynamic-forward.sh,v 1.4 2004/06/22 22:55:56 dtucker Exp $ +# Placed in the Public Domain. + +tid="dynamic forwarding" + +FWDPORT=`expr $PORT + 1` + +if [ -x "`which nc`" ] && nc -h 2>&1 | grep "proxy address" >/dev/null; then + proxycmd="nc -x 127.0.0.1:$FWDPORT -X" +elif [ -x "`which connect`" ]; then + proxycmd="connect -S 127.0.0.1:$FWDPORT -" +else + echo "skipped (no suitable ProxyCommand found)" + exit 0 +fi +trace "will use ProxyCommand $proxycmd" + +start_sshd + +for p in 1 2; do + trace "start dynamic forwarding, fork to background" + ${SSH} -$p -F $OBJ/ssh_config -f -D $FWDPORT -q somehost \ + exec sh -c \'"echo \$\$ > $OBJ/remote_pid; exec sleep 444"\' + + for s in 4 5; do + for h in 127.0.0.1 localhost; do + trace "testing ssh protocol $p socks version $s host $h" + ${SSH} -F $OBJ/ssh_config \ + -o "ProxyCommand ${proxycmd}${s} $h $PORT" \ + somehost cat /bin/ls > $OBJ/ls.copy + test -f $OBJ/ls.copy || fail "failed copy /bin/ls" + cmp /bin/ls $OBJ/ls.copy || fail "corrupted copy of /bin/ls" + done + done + + if [ -f $OBJ/remote_pid ]; then + remote=`cat $OBJ/remote_pid` + trace "terminate remote shell, pid $remote" + if [ $remote -gt 1 ]; then + kill -HUP $remote + fi + else + fail "no pid file: $OBJ/remote_pid" + fi +done diff --git a/src/regress/usr.bin/ssh/envpass.sh b/src/regress/usr.bin/ssh/envpass.sh new file mode 100644 index 000000000..af7eafe3d --- /dev/null +++ b/src/regress/usr.bin/ssh/envpass.sh @@ -0,0 +1,60 @@ +# $OpenBSD: envpass.sh,v 1.4 2005/03/04 08:48:46 djm Exp $ +# Placed in the Public Domain. + +tid="environment passing" + +# NB accepted env vars are in test-exec.sh (_XXX_TEST_* and _XXX_TEST) + +# Prepare a custom config to test for a configuration parsing bug fixed in 4.0 +cat << EOF > $OBJ/ssh_proxy_envpass +Host test-sendenv-confparse-bug + SendEnv * +EOF +cat $OBJ/ssh_proxy >> $OBJ/ssh_proxy_envpass + +trace "pass env, don't accept" +verbose "test $tid: pass env, don't accept" +_TEST_ENV=blah ${SSH} -oSendEnv="*" -F $OBJ/ssh_proxy_envpass otherhost \ + sh << 'EOF' + test -z "$_TEST_ENV" +EOF +r=$? +if [ $r -ne 0 ]; then + fail "environment found" +fi + +trace "don't pass env, accept" +verbose "test $tid: don't pass env, accept" +_XXX_TEST_A=1 _XXX_TEST_B=2 ${SSH} -F $OBJ/ssh_proxy_envpass otherhost \ + sh << 'EOF' + test -z "$_XXX_TEST_A" && test -z "$_XXX_TEST_B" +EOF +r=$? +if [ $r -ne 0 ]; then + fail "environment found" +fi + +trace "pass single env, accept single env" +verbose "test $tid: pass single env, accept single env" +_XXX_TEST=blah ${SSH} -oSendEnv="_XXX_TEST" -F $OBJ/ssh_proxy_envpass \ + otherhost sh << 'EOF' + test X"$_XXX_TEST" = X"blah" +EOF +r=$? +if [ $r -ne 0 ]; then + fail "environment not found" +fi + +trace "pass multiple env, accept multiple env" +verbose "test $tid: pass multiple env, accept multiple env" +_XXX_TEST_A=1 _XXX_TEST_B=2 ${SSH} -oSendEnv="_XXX_TEST_*" \ + -F $OBJ/ssh_proxy_envpass otherhost \ + sh << 'EOF' + test X"$_XXX_TEST_A" = X"1" -a X"$_XXX_TEST_B" = X"2" +EOF +r=$? +if [ $r -ne 0 ]; then + fail "environment not found" +fi + +rm -f $OBJ/ssh_proxy_envpass diff --git a/src/regress/usr.bin/ssh/exit-status.sh b/src/regress/usr.bin/ssh/exit-status.sh new file mode 100644 index 000000000..56b78a622 --- /dev/null +++ b/src/regress/usr.bin/ssh/exit-status.sh @@ -0,0 +1,24 @@ +# $OpenBSD: exit-status.sh,v 1.6 2002/03/15 13:08:56 markus Exp $ +# Placed in the Public Domain. + +tid="remote exit status" + +for p in 1 2; do + for s in 0 1 4 5 44; do + trace "proto $p status $s" + verbose "test $tid: proto $p status $s" + ${SSH} -$p -F $OBJ/ssh_proxy otherhost exit $s + r=$? + if [ $r -ne $s ]; then + fail "exit code mismatch for protocol $p: $r != $s" + fi + + # same with early close of stdout/err + ${SSH} -$p -F $OBJ/ssh_proxy -n otherhost \ + exec sh -c \'"sleep 2; exec > /dev/null 2>&1; sleep 3; exit $s"\' + r=$? + if [ $r -ne $s ]; then + fail "exit code (with sleep) mismatch for protocol $p: $r != $s" + fi + done +done diff --git a/src/regress/usr.bin/ssh/forcecommand.sh b/src/regress/usr.bin/ssh/forcecommand.sh new file mode 100644 index 000000000..796e7c2c0 --- /dev/null +++ b/src/regress/usr.bin/ssh/forcecommand.sh @@ -0,0 +1,42 @@ +# $OpenBSD: forcecommand.sh,v 1.1 2006/07/19 13:09:28 dtucker Exp $ +# Placed in the Public Domain. + +tid="forced command" + +cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak + +echo -n 'command="true" ' >$OBJ/authorized_keys_$USER +cat $OBJ/rsa.pub >> $OBJ/authorized_keys_$USER +echo -n 'command="true" ' >>$OBJ/authorized_keys_$USER +cat $OBJ/rsa1.pub >> $OBJ/authorized_keys_$USER + +for p in 1 2; do + trace "forced command in key option proto $p" + ${SSH} -$p -F $OBJ/ssh_proxy somehost false \ || + fail "forced command in key proto $p" +done + +echo -n 'command="false" ' >$OBJ/authorized_keys_$USER +cat $OBJ/rsa.pub >> $OBJ/authorized_keys_$USER +echo -n 'command="false" ' >>$OBJ/authorized_keys_$USER +cat $OBJ/rsa1.pub >> $OBJ/authorized_keys_$USER + +cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy +echo "ForceCommand true" >> $OBJ/sshd_proxy + +for p in 1 2; do + trace "forced command in sshd_config overrides key option proto $p" + ${SSH} -$p -F $OBJ/ssh_proxy somehost false \ || + fail "forced command in key proto $p" +done + +cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy +echo "ForceCommand false" >> $OBJ/sshd_proxy +echo "Match User $USER" >> $OBJ/sshd_proxy +echo " ForceCommand true" >> $OBJ/sshd_proxy + +for p in 1 2; do + trace "forced command with match proto $p" + ${SSH} -$p -F $OBJ/ssh_proxy somehost false \ || + fail "forced command in key proto $p" +done diff --git a/src/regress/usr.bin/ssh/forwarding.sh b/src/regress/usr.bin/ssh/forwarding.sh new file mode 100644 index 000000000..adcd100f2 --- /dev/null +++ b/src/regress/usr.bin/ssh/forwarding.sh @@ -0,0 +1,104 @@ +# $OpenBSD: forwarding.sh,v 1.7 2010/01/11 02:53:44 dtucker Exp $ +# Placed in the Public Domain. + +tid="local and remote forwarding" + +start_sshd + +base=33 +last=$PORT +fwd="" +for j in 0 1 2; do + for i in 0 1 2; do + a=$base$j$i + b=`expr $a + 50` + c=$last + # fwd chain: $a -> $b -> $c + fwd="$fwd -L$a:127.0.0.1:$b -R$b:127.0.0.1:$c" + last=$a + done +done +for p in 1 2; do + q=`expr 3 - $p` + trace "start forwarding, fork to background" + ${SSH} -$p -F $OBJ/ssh_config -f $fwd somehost sleep 10 + + trace "transfer over forwarded channels and check result" + ${SSH} -$q -F $OBJ/ssh_config -p$last -o 'ConnectionAttempts=4' \ + somehost cat /bin/ls > $OBJ/ls.copy + test -f $OBJ/ls.copy || fail "failed copy /bin/ls" + cmp /bin/ls $OBJ/ls.copy || fail "corrupted copy of /bin/ls" + + sleep 10 +done + +for p in 1 2; do +for d in L R; do + trace "exit on -$d forward failure, proto $p" + + # this one should succeed + ${SSH} -$p -F $OBJ/ssh_config \ + -$d ${base}01:127.0.0.1:$PORT \ + -$d ${base}02:127.0.0.1:$PORT \ + -$d ${base}03:127.0.0.1:$PORT \ + -$d ${base}04:127.0.0.1:$PORT \ + -oExitOnForwardFailure=yes somehost true + if [ $? != 0 ]; then + fail "connection failed, should not" + else + # this one should fail + ${SSH} -q -$p -F $OBJ/ssh_config \ + -$d ${base}01:127.0.0.1:$PORT \ + -$d ${base}02:127.0.0.1:$PORT \ + -$d ${base}03:127.0.0.1:$PORT \ + -$d ${base}01:127.0.0.1:$PORT \ + -$d ${base}04:127.0.0.1:$PORT \ + -oExitOnForwardFailure=yes somehost true + r=$? + if [ $r != 255 ]; then + fail "connection not termintated, but should ($r)" + fi + fi +done +done + +for p in 1 2; do + trace "simple clear forwarding proto $p" + ${SSH} -$p -F $OBJ/ssh_config -oClearAllForwardings=yes somehost true + + trace "clear local forward proto $p" + ${SSH} -$p -f -F $OBJ/ssh_config -L ${base}01:127.0.0.1:$PORT \ + -oClearAllForwardings=yes somehost sleep 10 + if [ $? != 0 ]; then + fail "connection failed with cleared local forwarding" + else + # this one should fail + ${SSH} -$p -F $OBJ/ssh_config -p ${base}01 true \ + 2>${TEST_SSH_LOGFILE} && \ + fail "local forwarding not cleared" + fi + sleep 10 + + trace "clear remote forward proto $p" + ${SSH} -$p -f -F $OBJ/ssh_config -R ${base}01:127.0.0.1:$PORT \ + -oClearAllForwardings=yes somehost sleep 10 + if [ $? != 0 ]; then + fail "connection failed with cleared remote forwarding" + else + # this one should fail + ${SSH} -$p -F $OBJ/ssh_config -p ${base}01 true \ + 2>${TEST_SSH_LOGFILE} && \ + fail "remote forwarding not cleared" + fi + sleep 10 +done + +for p in 2; do + trace "stdio forwarding proto $p" + cmd="${SSH} -$p -F $OBJ/ssh_config" + $cmd -o "ProxyCommand $cmd -q -W localhost:$PORT somehost" \ + somehost true + if [ $? != 0 ]; then + fail "stdio forwarding proto $p" + fi +done diff --git a/src/regress/usr.bin/ssh/key-options.sh b/src/regress/usr.bin/ssh/key-options.sh new file mode 100644 index 000000000..f98d78b30 --- /dev/null +++ b/src/regress/usr.bin/ssh/key-options.sh @@ -0,0 +1,71 @@ +# $OpenBSD: key-options.sh,v 1.2 2008/06/30 08:07:34 djm Exp $ +# Placed in the Public Domain. + +tid="key options" + +origkeys="$OBJ/authkeys_orig" +authkeys="$OBJ/authorized_keys_${USER}" +cp $authkeys $origkeys + +# Test command= forced command +for p in 1 2; do + for c in 'command="echo bar"' 'no-pty,command="echo bar"'; do + sed "s/.*/$c &/" $origkeys >$authkeys + verbose "key option proto $p $c" + r=`${SSH} -$p -q -F $OBJ/ssh_proxy somehost echo foo` + if [ "$r" = "foo" ]; then + fail "key option forced command not restricted" + fi + if [ "$r" != "bar" ]; then + fail "key option forced command not executed" + fi + done +done + +# Test no-pty +sed 's/.*/no-pty &/' $origkeys >$authkeys +for p in 1 2; do + verbose "key option proto $p no-pty" + r=`${SSH} -$p -q -F $OBJ/ssh_proxy somehost tty` + if [ -f "$r" ]; then + fail "key option failed proto $p no-pty (pty $r)" + fi +done + +# Test environment= +echo 'PermitUserEnvironment yes' >> $OBJ/sshd_proxy +sed 's/.*/environment="FOO=bar" &/' $origkeys >$authkeys +for p in 1 2; do + verbose "key option proto $p environment" + r=`${SSH} -$p -q -F $OBJ/ssh_proxy somehost 'echo $FOO'` + if [ "$r" != "bar" ]; then + fail "key option environment not set" + fi +done + +# Test from= restriction +start_sshd +for p in 1 2; do + for f in 127.0.0.1 '127.0.0.0\/8'; do + cat $origkeys >$authkeys + ${SSH} -$p -q -F $OBJ/ssh_proxy somehost true + if [ $? -ne 0 ]; then + fail "key option proto $p failed without restriction" + fi + + sed 's/.*/from="'"$f"'" &/' $origkeys >$authkeys + from=`head -1 $authkeys | cut -f1 -d ' '` + verbose "key option proto $p $from" + r=`${SSH} -$p -q -F $OBJ/ssh_proxy somehost 'echo true'` + if [ "$r" = "true" ]; then + fail "key option proto $p $from not restricted" + fi + + r=`${SSH} -$p -q -F $OBJ/ssh_config somehost 'echo true'` + if [ "$r" != "true" ]; then + fail "key option proto $p $from not allowed but should be" + fi + done +done + +rm -f "$origkeys" diff --git a/src/regress/usr.bin/ssh/keygen-change.sh b/src/regress/usr.bin/ssh/keygen-change.sh new file mode 100644 index 000000000..08d359023 --- /dev/null +++ b/src/regress/usr.bin/ssh/keygen-change.sh @@ -0,0 +1,23 @@ +# $OpenBSD: keygen-change.sh,v 1.2 2002/07/16 09:15:55 markus Exp $ +# Placed in the Public Domain. + +tid="change passphrase for key" + +S1="secret1" +S2="2secret" + +for t in rsa dsa rsa1; do + # generate user key for agent + trace "generating $t key" + rm -f $OBJ/$t-key + ${SSHKEYGEN} -q -N ${S1} -t $t -f $OBJ/$t-key + if [ $? -eq 0 ]; then + ${SSHKEYGEN} -p -P ${S1} -N ${S2} -f $OBJ/$t-key > /dev/null + if [ $? -ne 0 ]; then + fail "ssh-keygen -p failed for $t-key" + fi + else + fail "ssh-keygen for $t-key failed" + fi + rm -f $OBJ/$t-key $OBJ/$t-key.pub +done diff --git a/src/regress/usr.bin/ssh/keygen-convert.sh b/src/regress/usr.bin/ssh/keygen-convert.sh new file mode 100644 index 000000000..ad0e9c637 --- /dev/null +++ b/src/regress/usr.bin/ssh/keygen-convert.sh @@ -0,0 +1,33 @@ +# $OpenBSD: keygen-convert.sh,v 1.1 2009/11/09 04:20:04 dtucker Exp $ +# Placed in the Public Domain. + +tid="convert keys" + +for t in rsa dsa; do + # generate user key for agent + trace "generating $t key" + rm -f $OBJ/$t-key + ${SSHKEYGEN} -q -N "" -t $t -f $OBJ/$t-key + + trace "export $t private to rfc4716 public" + ${SSHKEYGEN} -q -e -f $OBJ/$t-key >$OBJ/$t-key-rfc || \ + fail "export $t private to rfc4716 public" + + trace "export $t public to rfc4716 public" + ${SSHKEYGEN} -q -e -f $OBJ/$t-key.pub >$OBJ/$t-key-rfc.pub || \ + fail "$t public to rfc4716 public" + + cmp $OBJ/$t-key-rfc $OBJ/$t-key-rfc.pub || \ + fail "$t rfc4716 exports differ between public and private" + + trace "import $t rfc4716 public" + ${SSHKEYGEN} -q -i -f $OBJ/$t-key-rfc >$OBJ/$t-rfc-imported || \ + fail "$t import rfc4716 public" + + cut -f1,2 -d " " $OBJ/$t-key.pub >$OBJ/$t-key-nocomment.pub + cmp $OBJ/$t-key-nocomment.pub $OBJ/$t-rfc-imported || \ + fail "$t imported differs from original" + + rm -f $OBJ/$t-key $OBJ/$t-key.pub $OBJ/$t-key-rfc $OBJ/$t-key-rfc.pub \ + $OBJ/$t-rfc-imported $OBJ/$t-key-nocomment.pub +done diff --git a/src/regress/usr.bin/ssh/keyscan.sh b/src/regress/usr.bin/ssh/keyscan.sh new file mode 100644 index 000000000..33f14f0fc --- /dev/null +++ b/src/regress/usr.bin/ssh/keyscan.sh @@ -0,0 +1,19 @@ +# $OpenBSD: keyscan.sh,v 1.3 2002/03/15 13:08:56 markus Exp $ +# Placed in the Public Domain. + +tid="keyscan" + +# remove DSA hostkey +rm -f ${OBJ}/host.dsa + +start_sshd + +for t in rsa1 rsa dsa; do + trace "keyscan type $t" + ${SSHKEYSCAN} -t $t -p $PORT 127.0.0.1 127.0.0.1 127.0.0.1 \ + > /dev/null 2>&1 + r=$? + if [ $r -ne 0 ]; then + fail "ssh-keyscan -t $t failed with: $r" + fi +done diff --git a/src/regress/usr.bin/ssh/localcommand.sh b/src/regress/usr.bin/ssh/localcommand.sh new file mode 100644 index 000000000..a23e5c678 --- /dev/null +++ b/src/regress/usr.bin/ssh/localcommand.sh @@ -0,0 +1,15 @@ +# $OpenBSD: localcommand.sh,v 1.1 2007/10/29 06:57:13 dtucker Exp $ +# Placed in the Public Domain. + +tid="localcommand" + +echo 'PermitLocalCommand yes' >> $OBJ/ssh_proxy +echo 'LocalCommand echo foo' >> $OBJ/ssh_proxy + +for p in 1 2; do + verbose "test $tid: proto $p localcommand" + a=$(${SSH} -F $OBJ/ssh_proxy -$p somehost true) + if [ "$a" != "foo" ] ; then + fail "$tid proto $p" + fi +done diff --git a/src/regress/usr.bin/ssh/login-timeout.sh b/src/regress/usr.bin/ssh/login-timeout.sh new file mode 100644 index 000000000..15a887f74 --- /dev/null +++ b/src/regress/usr.bin/ssh/login-timeout.sh @@ -0,0 +1,29 @@ +# $OpenBSD: login-timeout.sh,v 1.4 2005/02/27 23:13:36 djm Exp $ +# Placed in the Public Domain. + +tid="connect after login grace timeout" + +trace "test login grace with privsep" +echo "LoginGraceTime 10s" >> $OBJ/sshd_config +echo "MaxStartups 1" >> $OBJ/sshd_config +start_sshd + +(echo SSH-2.0-fake; sleep 60) | telnet 127.0.0.1 ${PORT} >/dev/null 2>&1 & +sleep 15 +${SSH} -F $OBJ/ssh_config somehost true +if [ $? -ne 0 ]; then + fail "ssh connect after login grace timeout failed with privsep" +fi + +$SUDO kill `cat $PIDFILE` + +trace "test login grace without privsep" +echo "UsePrivilegeSeparation no" >> $OBJ/sshd_config +start_sshd + +(echo SSH-2.0-fake; sleep 60) | telnet 127.0.0.1 ${PORT} >/dev/null 2>&1 & +sleep 15 +${SSH} -F $OBJ/ssh_config somehost true +if [ $? -ne 0 ]; then + fail "ssh connect after login grace timeout failed without privsep" +fi diff --git a/src/regress/usr.bin/ssh/multiplex.sh b/src/regress/usr.bin/ssh/multiplex.sh new file mode 100644 index 000000000..15e3074cc --- /dev/null +++ b/src/regress/usr.bin/ssh/multiplex.sh @@ -0,0 +1,86 @@ +# $OpenBSD: multiplex.sh,v 1.12 2009/05/05 07:51:36 dtucker Exp $ +# Placed in the Public Domain. + +CTL=$OBJ/ctl-sock + +tid="connection multiplexing" + +DATA=/bin/ls +COPY=$OBJ/ls.copy +LOG=$TEST_SSH_LOGFILE + +start_sshd + +trace "start master, fork to background" +${SSH} -Nn2 -MS$CTL -F $OBJ/ssh_config -oSendEnv="_XXX_TEST" somehost & +MASTER_PID=$! + +# Wait for master to start and authenticate +sleep 5 + +verbose "test $tid: envpass" +trace "env passing over multiplexed connection" +_XXX_TEST=blah ${SSH} -F $OBJ/ssh_config -oSendEnv="_XXX_TEST" -S$CTL otherhost sh << 'EOF' + test X"$_XXX_TEST" = X"blah" +EOF +if [ $? -ne 0 ]; then + fail "environment not found" +fi + +verbose "test $tid: transfer" +rm -f ${COPY} +trace "ssh transfer over multiplexed connection and check result" +${SSH} -F $OBJ/ssh_config -S$CTL otherhost cat ${DATA} > ${COPY} +test -f ${COPY} || fail "ssh -Sctl: failed copy ${DATA}" +cmp ${DATA} ${COPY} || fail "ssh -Sctl: corrupted copy of ${DATA}" + +rm -f ${COPY} +trace "ssh transfer over multiplexed connection and check result" +${SSH} -F $OBJ/ssh_config -S $CTL otherhost cat ${DATA} > ${COPY} +test -f ${COPY} || fail "ssh -S ctl: failed copy ${DATA}" +cmp ${DATA} ${COPY} || fail "ssh -S ctl: corrupted copy of ${DATA}" + +rm -f ${COPY} +trace "sftp transfer over multiplexed connection and check result" +echo "get ${DATA} ${COPY}" | \ + ${SFTP} -S ${SSH} -F $OBJ/ssh_config -oControlPath=$CTL otherhost >$LOG 2>&1 +test -f ${COPY} || fail "sftp: failed copy ${DATA}" +cmp ${DATA} ${COPY} || fail "sftp: corrupted copy of ${DATA}" + +rm -f ${COPY} +trace "scp transfer over multiplexed connection and check result" +${SCP} -S ${SSH} -F $OBJ/ssh_config -oControlPath=$CTL otherhost:${DATA} ${COPY} >$LOG 2>&1 +test -f ${COPY} || fail "scp: failed copy ${DATA}" +cmp ${DATA} ${COPY} || fail "scp: corrupted copy of ${DATA}" + +rm -f ${COPY} + +for s in 0 1 4 5 44; do + trace "exit status $s over multiplexed connection" + verbose "test $tid: status $s" + ${SSH} -F $OBJ/ssh_config -S $CTL otherhost exit $s + r=$? + if [ $r -ne $s ]; then + fail "exit code mismatch for protocol $p: $r != $s" + fi + + # same with early close of stdout/err + trace "exit status $s with early close over multiplexed connection" + ${SSH} -F $OBJ/ssh_config -S $CTL -n otherhost \ + exec sh -c \'"sleep 2; exec > /dev/null 2>&1; sleep 3; exit $s"\' + r=$? + if [ $r -ne $s ]; then + fail "exit code (with sleep) mismatch for protocol $p: $r != $s" + fi +done + +trace "test check command" +${SSH} -F $OBJ/ssh_config -S $CTL -Ocheck otherhost || fail "check command failed" + +trace "test exit command" +${SSH} -F $OBJ/ssh_config -S $CTL -Oexit otherhost || fail "send exit command failed" + +# Wait for master to exit +sleep 2 + +ps -p $MASTER_PID >/dev/null && fail "exit command failed" diff --git a/src/regress/usr.bin/ssh/obj b/src/regress/usr.bin/ssh/obj new file mode 120000 index 000000000..7492408a5 --- /dev/null +++ b/src/regress/usr.bin/ssh/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/ssh \ No newline at end of file diff --git a/src/regress/usr.bin/ssh/portnum.sh b/src/regress/usr.bin/ssh/portnum.sh new file mode 100644 index 000000000..82abbc9f0 --- /dev/null +++ b/src/regress/usr.bin/ssh/portnum.sh @@ -0,0 +1,32 @@ +# $OpenBSD: portnum.sh,v 1.1 2009/08/13 00:57:17 djm Exp $ +# Placed in the Public Domain. + +tid="port number parsing" + +badport() { + port=$1 + verbose "$tid: invalid port $port" + if ${SSH} -F $OBJ/ssh_proxy -p $port somehost true 2>/dev/null ; then + fail "$tid accepted invalid port $port" + fi +} +goodport() { + port=$1 + verbose "$tid: valid port $port" + if ! ${SSH} -F $OBJ/ssh_proxy -p $port somehost true 2>/dev/null ; then + fail "$tid rejected valid port $port" + fi +} + +badport 0 +badport 65536 +badport 131073 +badport 2000blah +badport blah2000 + +goodport 1 +goodport 22 +goodport 2222 +goodport 22222 +goodport 65535 + diff --git a/src/regress/usr.bin/ssh/proto-mismatch.sh b/src/regress/usr.bin/ssh/proto-mismatch.sh new file mode 100644 index 000000000..fb521f214 --- /dev/null +++ b/src/regress/usr.bin/ssh/proto-mismatch.sh @@ -0,0 +1,19 @@ +# $OpenBSD: proto-mismatch.sh,v 1.3 2002/03/15 13:08:56 markus Exp $ +# Placed in the Public Domain. + +tid="protocol version mismatch" + +mismatch () +{ + server=$1 + client=$2 + banner=`echo ${client} | ${SSHD} -o "Protocol=${server}" -i -f ${OBJ}/sshd_proxy` + r=$? + trace "sshd prints ${banner}" + if [ $r -ne 255 ]; then + fail "sshd prints ${banner} and accepts connect with version ${client}" + fi +} + +mismatch 2 SSH-1.5-HALLO +mismatch 1 SSH-2.0-HALLO diff --git a/src/regress/usr.bin/ssh/proto-version.sh b/src/regress/usr.bin/ssh/proto-version.sh new file mode 100644 index 000000000..7dc616f5f --- /dev/null +++ b/src/regress/usr.bin/ssh/proto-version.sh @@ -0,0 +1,34 @@ +# $OpenBSD: proto-version.sh,v 1.3 2002/03/15 13:08:56 markus Exp $ +# Placed in the Public Domain. + +tid="sshd version with different protocol combinations" + +# we just start sshd in inetd mode and check the banner +check_version () +{ + version=$1 + expect=$2 + banner=`echo -n | ${SSHD} -o "Protocol=${version}" -i -f ${OBJ}/sshd_proxy` + case ${banner} in + SSH-1.99-*) + proto=199 + ;; + SSH-2.0-*) + proto=20 + ;; + SSH-1.5-*) + proto=15 + ;; + *) + proto=0 + ;; + esac + if [ ${expect} -ne ${proto} ]; then + fail "wrong protocol version ${banner} for ${version}" + fi +} + +check_version 2,1 199 +check_version 1,2 199 +check_version 2 20 +check_version 1 15 diff --git a/src/regress/usr.bin/ssh/proxy-connect.sh b/src/regress/usr.bin/ssh/proxy-connect.sh new file mode 100644 index 000000000..6a36b2513 --- /dev/null +++ b/src/regress/usr.bin/ssh/proxy-connect.sh @@ -0,0 +1,18 @@ +# $OpenBSD: proxy-connect.sh,v 1.5 2002/12/09 15:28:46 markus Exp $ +# Placed in the Public Domain. + +tid="proxy connect" + +for p in 1 2; do + ${SSH} -$p -F $OBJ/ssh_proxy 999.999.999.999 true + if [ $? -ne 0 ]; then + fail "ssh proxyconnect protocol $p failed" + fi + SSH_CONNECTION=`${SSH} -$p -F $OBJ/ssh_proxy 999.999.999.999 'echo $SSH_CONNECTION'` + if [ $? -ne 0 ]; then + fail "ssh proxyconnect protocol $p failed" + fi + if [ "$SSH_CONNECTION" != "UNKNOWN 65535 UNKNOWN 65535" ]; then + fail "bad SSH_CONNECTION" + fi +done diff --git a/src/regress/usr.bin/ssh/putty-ciphers.sh b/src/regress/usr.bin/ssh/putty-ciphers.sh new file mode 100644 index 000000000..441053627 --- /dev/null +++ b/src/regress/usr.bin/ssh/putty-ciphers.sh @@ -0,0 +1,28 @@ +# $OpenBSD: putty-ciphers.sh,v 1.3 2008/11/10 02:06:35 djm Exp $ +# Placed in the Public Domain. + +tid="putty ciphers" + +DATA=/bin/ls +COPY=${OBJ}/copy + +if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then + fatal "putty interop tests not enabled" +fi + +for c in aes blowfish 3des arcfour aes128-ctr aes192-ctr aes256-ctr ; do + verbose "$tid: cipher $c" + cp ${OBJ}/.putty/sessions/localhost_proxy \ + ${OBJ}/.putty/sessions/cipher_$c + echo "Cipher=$c" >> ${OBJ}/.putty/sessions/cipher_$c + + rm -f ${COPY} + env HOME=$PWD ${PLINK} -load cipher_$c -batch -i putty.rsa2 \ + 127.0.0.1 cat ${DATA} > ${COPY} + if [ $? -ne 0 ]; then + fail "ssh cat $DATA failed" + fi + cmp ${DATA} ${COPY} || fail "corrupted copy" +done +rm -f ${COPY} + diff --git a/src/regress/usr.bin/ssh/putty-kex.sh b/src/regress/usr.bin/ssh/putty-kex.sh new file mode 100644 index 000000000..2534b8575 --- /dev/null +++ b/src/regress/usr.bin/ssh/putty-kex.sh @@ -0,0 +1,25 @@ +# $OpenBSD: putty-kex.sh,v 1.2 2008/06/30 10:31:11 djm Exp $ +# Placed in the Public Domain. + +tid="putty KEX" + +DATA=/bin/ls +COPY=${OBJ}/copy + +if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then + fatal "putty interop tests not enabled" +fi + +for k in dh-gex-sha1 dh-group1-sha1 dh-group14-sha1 ; do + verbose "$tid: kex $k" + cp ${OBJ}/.putty/sessions/localhost_proxy \ + ${OBJ}/.putty/sessions/kex_$k + echo "KEX=$k" >> ${OBJ}/.putty/sessions/kex_$k + + env HOME=$PWD ${PLINK} -load kex_$k -batch -i putty.rsa2 \ + 127.0.0.1 true + if [ $? -ne 0 ]; then + fail "KEX $k failed" + fi +done + diff --git a/src/regress/usr.bin/ssh/putty-transfer.sh b/src/regress/usr.bin/ssh/putty-transfer.sh new file mode 100644 index 000000000..6b21f3be7 --- /dev/null +++ b/src/regress/usr.bin/ssh/putty-transfer.sh @@ -0,0 +1,43 @@ +# $OpenBSD: putty-transfer.sh,v 1.2 2008/06/30 10:31:11 djm Exp $ +# Placed in the Public Domain. + +tid="putty transfer data" + +DATA=/bin/ls +COPY=${OBJ}/copy + +if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then + fatal "putty interop tests not enabled" +fi + +# XXX support protocol 1 too +for p in 2; do + for c in 0 1 ; do + verbose "$tid: proto $p compression $c" + rm -f ${COPY} + cp ${OBJ}/.putty/sessions/localhost_proxy \ + ${OBJ}/.putty/sessions/compression_$c + echo "Compression=$c" >> ${OBJ}/.putty/sessions/kex_$k + env HOME=$PWD ${PLINK} -load compression_$c -batch \ + -i putty.rsa$p 127.0.0.1 cat ${DATA} > ${COPY} + if [ $? -ne 0 ]; then + fail "ssh cat $DATA failed" + fi + cmp ${DATA} ${COPY} || fail "corrupted copy" + + for s in 10 100 1k 32k 64k 128k 256k; do + trace "proto $p compression $c dd-size ${s}" + rm -f ${COPY} + dd if=$DATA obs=${s} 2> /dev/null | \ + env HOME=$PWD ${PLINK} -load compression_$c \ + -batch -i putty.rsa$p 127.0.0.1 \ + "cat > ${COPY}" + if [ $? -ne 0 ]; then + fail "ssh cat $DATA failed" + fi + cmp $DATA ${COPY} || fail "corrupted copy" + done + done +done +rm -f ${COPY} + diff --git a/src/regress/usr.bin/ssh/reconfigure.sh b/src/regress/usr.bin/ssh/reconfigure.sh new file mode 100644 index 000000000..4315f0a40 --- /dev/null +++ b/src/regress/usr.bin/ssh/reconfigure.sh @@ -0,0 +1,28 @@ +# $OpenBSD: reconfigure.sh,v 1.2 2003/06/21 09:14:05 markus Exp $ +# Placed in the Public Domain. + +tid="simple connect after reconfigure" + +# we need the full path to sshd for -HUP +SSHD=/usr/sbin/sshd + +start_sshd + +$SUDO kill -HUP `cat $PIDFILE` +sleep 1 + +trace "wait for sshd to restart" +i=0; +while [ ! -f $PIDFILE -a $i -lt 10 ]; do + i=`expr $i + 1` + sleep $i +done + +test -f $PIDFILE || fatal "sshd did not restart" + +for p in 1 2; do + ${SSH} -o "Protocol=$p" -F $OBJ/ssh_config somehost true + if [ $? -ne 0 ]; then + fail "ssh connect with protocol $p failed after reconfigure" + fi +done diff --git a/src/regress/usr.bin/ssh/reexec.sh b/src/regress/usr.bin/ssh/reexec.sh new file mode 100644 index 000000000..d69b8c577 --- /dev/null +++ b/src/regress/usr.bin/ssh/reexec.sh @@ -0,0 +1,72 @@ +# $OpenBSD: reexec.sh,v 1.5 2004/10/08 02:01:50 djm Exp $ +# Placed in the Public Domain. + +tid="reexec tests" + +DATA=/bin/ls +COPY=${OBJ}/copy +SSHD_ORIG=$SSHD +SSHD_COPY=$OBJ/sshd + +# Start a sshd and then delete it +start_sshd_copy () +{ + cp $SSHD_ORIG $SSHD_COPY + SSHD=$SSHD_COPY + start_sshd + SSHD=$SSHD_ORIG +} + +# Do basic copy tests +copy_tests () +{ + rm -f ${COPY} + for p in 1 2; do + verbose "$tid: proto $p" + ${SSH} -nqo "Protocol=$p" -F $OBJ/ssh_config somehost \ + cat ${DATA} > ${COPY} + if [ $? -ne 0 ]; then + fail "ssh cat $DATA failed" + fi + cmp ${DATA} ${COPY} || fail "corrupted copy" + rm -f ${COPY} + done +} + +verbose "test config passing" + +cp $OBJ/sshd_config $OBJ/sshd_config.orig +start_sshd +echo "InvalidXXX=no" >> $OBJ/sshd_config + +copy_tests + +$SUDO kill `cat $PIDFILE` +rm -f $PIDFILE + +cp $OBJ/sshd_config.orig $OBJ/sshd_config + +verbose "test reexec fallback" + +start_sshd_copy +rm -f $SSHD_COPY + +copy_tests + +$SUDO kill `cat $PIDFILE` +rm -f $PIDFILE + +verbose "test reexec fallback without privsep" + +cp $OBJ/sshd_config.orig $OBJ/sshd_config +echo "UsePrivilegeSeparation=no" >> $OBJ/sshd_config + +start_sshd_copy +rm -f $SSHD_COPY + +copy_tests + +$SUDO kill `cat $PIDFILE` +rm -f $PIDFILE + + diff --git a/src/regress/usr.bin/ssh/rekey.sh b/src/regress/usr.bin/ssh/rekey.sh new file mode 100644 index 000000000..26848d27b --- /dev/null +++ b/src/regress/usr.bin/ssh/rekey.sh @@ -0,0 +1,31 @@ +# $OpenBSD: rekey.sh,v 1.1 2003/03/28 13:58:28 markus Exp $ +# Placed in the Public Domain. + +tid="rekey during transfer data" + +DATA=${OBJ}/data +COPY=${OBJ}/copy +LOG=${OBJ}/log + +rm -f ${COPY} ${LOG} ${DATA} +dd if=/dev/zero of=${DATA} bs=1k count=512 > /dev/null 2>&1 + +for s in 16 1k 128k 256k; do + trace "rekeylimit ${s}" + rm -f ${COPY} + cat $DATA | \ + ${SSH} -oCompression=no -oRekeyLimit=$s \ + -v -F $OBJ/ssh_proxy somehost "cat > ${COPY}" \ + 2> ${LOG} + if [ $? -ne 0 ]; then + fail "ssh failed" + fi + cmp $DATA ${COPY} || fail "corrupted copy" + n=`grep 'NEWKEYS sent' ${LOG} | wc -l` + n=`expr $n - 1` + trace "$n rekeying(s)" + if [ $n -lt 1 ]; then + fail "no rekeying occured" + fi +done +rm -f ${COPY} ${LOG} ${DATA} diff --git a/src/regress/usr.bin/ssh/rsa_openssh.prv b/src/regress/usr.bin/ssh/rsa_openssh.prv new file mode 100644 index 000000000..267555572 --- /dev/null +++ b/src/regress/usr.bin/ssh/rsa_openssh.prv @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWgIBAAKBgQDsilwKcaKN6wSMNd1WgQ9+HRqQEkD0kCTVttrazGu0OhBU3Uko ++dFD1Ip0CxdXmN25JQWxOYF7h/Ocu8P3jzv3RTX87xKR0YzlXTLX+SLtF/ySebS3 +xWPrlfRUDhh03hR5V+8xxvvy9widPYKw/oItwGSueOsEq1LTczCDv2dAjQIDAQAB +An8nH5VzvHkMbSqJ6eOYDsVwomRvYbH5IEaYl1x6VATITNvAu9kUdQ4NsSpuMc+7 +Jj9gKZvmO1y2YCKc0P/iO+i/eV0L+yQh1Rw18jQZll+12T+LZrKRav03YNvMx0gN +wqWY48Kt6hv2/N/ebQzKRe79+D0t2cTh92hT7xENFLIBAkEBGnoGKFjAUkJCwO1V +mzpUqMHpRZVOrqP9hUmPjzNJ5oBPFGe4+h1hoSRFOAzaNuZt8ssbqaLCkzB8bfzj +qhZqAQJBANZekuUpp8iBLeLSagw5FkcPwPzq6zfExbhvsZXb8Bo/4SflNs4JHXwI +7SD9Z8aJLvM4uQ/5M70lblDMQ40i3o0CQQDIJvBYBFL5tlOgakq/O7yi+wt0L5BZ +9H79w5rCSAA0IHRoK/qI1urHiHC3f3vbbLk5UStfrqEaND/mm0shyNIBAkBLsYdC +/ctt5Bc0wUGK4Vl5bBmj9LtrrMJ4FpBpLwj/69BwCuKoK9XKZ0h73p6XHveCEGRg +PIlFX4MtaoLrwgU9AkBV2k4dgIws+X8YX65EsyyFjnlDqX4x0nSOjQB1msIKfHBr +dh5XLDBTTCxnKhMJ0Yx/opgOvf09XHBFwaQntR5i +-----END RSA PRIVATE KEY----- diff --git a/src/regress/usr.bin/ssh/rsa_openssh.pub b/src/regress/usr.bin/ssh/rsa_openssh.pub new file mode 100644 index 000000000..b504730f3 --- /dev/null +++ b/src/regress/usr.bin/ssh/rsa_openssh.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDsilwKcaKN6wSMNd1WgQ9+HRqQEkD0kCTVttrazGu0OhBU3Uko+dFD1Ip0CxdXmN25JQWxOYF7h/Ocu8P3jzv3RTX87xKR0YzlXTLX+SLtF/ySebS3xWPrlfRUDhh03hR5V+8xxvvy9widPYKw/oItwGSueOsEq1LTczCDv2dAjQ== diff --git a/src/regress/usr.bin/ssh/rsa_ssh2.prv b/src/regress/usr.bin/ssh/rsa_ssh2.prv new file mode 100644 index 000000000..1ece3d7de --- /dev/null +++ b/src/regress/usr.bin/ssh/rsa_ssh2.prv @@ -0,0 +1,16 @@ +---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ---- +Subject: ssh-keygen test +Comment: "1024-bit rsa, Sat Jun 23 2001 12:21:26 -0400" +P2/56wAAAi4AAAA3aWYtbW9kbntzaWdue3JzYS1wa2NzMS1zaGExfSxlbmNyeXB0e3JzYS +1wa2NzMXYyLW9hZXB9fQAAAARub25lAAAB3wAAAdsAAAARAQABAAAD9icflXO8eQxtKonp +45gOxXCiZG9hsfkgRpiXXHpUBMhM28C72RR1Dg2xKm4xz7smP2Apm+Y7XLZgIpzQ/+I76L +95XQv7JCHVHDXyNBmWX7XZP4tmspFq/Tdg28zHSA3CpZjjwq3qG/b8395tDMpF7v34PS3Z +xOH3aFPvEQ0UsgEAAAQA7IpcCnGijesEjDXdVoEPfh0akBJA9JAk1bba2sxrtDoQVN1JKP +nRQ9SKdAsXV5jduSUFsTmBe4fznLvD948790U1/O8SkdGM5V0y1/ki7Rf8knm0t8Vj65X0 +VA4YdN4UeVfvMcb78vcInT2CsP6CLcBkrnjrBKtS03Mwg79nQI0AAAH/VdpOHYCMLPl/GF ++uRLMshY55Q6l+MdJ0jo0AdZrCCnxwa3YeVywwU0wsZyoTCdGMf6KYDr39PVxwRcGkJ7Ue +YgAAAgDWXpLlKafIgS3i0moMORZHD8D86us3xMW4b7GV2/AaP+En5TbOCR18CO0g/WfGiS +7zOLkP+TO9JW5QzEONIt6NAAACAQEaegYoWMBSQkLA7VWbOlSowelFlU6uo/2FSY+PM0nm +gE8UZ7j6HWGhJEU4DNo25m3yyxuposKTMHxt/OOqFmoB +---- END SSH2 ENCRYPTED PRIVATE KEY ---- +--- diff --git a/src/regress/usr.bin/ssh/scp-ssh-wrapper.sh b/src/regress/usr.bin/ssh/scp-ssh-wrapper.sh new file mode 100644 index 000000000..d1005a995 --- /dev/null +++ b/src/regress/usr.bin/ssh/scp-ssh-wrapper.sh @@ -0,0 +1,57 @@ +#!/bin/sh +# $OpenBSD: scp-ssh-wrapper.sh,v 1.2 2005/12/14 04:36:39 dtucker Exp $ +# Placed in the Public Domain. + +printname () { + NAME=$1 + save_IFS=$IFS + IFS=/ + set -- `echo "$NAME"` + IFS="$save_IFS" + while [ $# -ge 1 ] ; do + if [ "x$1" != "x" ]; then + echo "D0755 0 $1" + fi + shift; + done +} + +# Discard all but last argument. We use arg later. +while test "$1" != ""; do + arg="$1" + shift +done + +BAD="../../../../../../../../../../../../../${DIR}/dotpathdir" + +case "$SCPTESTMODE" in +badserver_0) + echo "D0755 0 /${DIR}/rootpathdir" + echo "C755 2 rootpathfile" + echo "X" + ;; +badserver_1) + echo "D0755 0 $BAD" + echo "C755 2 file" + echo "X" + ;; +badserver_2) + echo "D0755 0 $BAD" + echo "C755 2 file" + echo "X" + ;; +badserver_3) + printname $BAD + echo "C755 2 file" + echo "X" + ;; +badserver_4) + printname $BAD + echo "D0755 0 .." + echo "C755 2 file" + echo "X" + ;; +*) + exec $arg + ;; +esac diff --git a/src/regress/usr.bin/ssh/scp.sh b/src/regress/usr.bin/ssh/scp.sh new file mode 100644 index 000000000..5e6531584 --- /dev/null +++ b/src/regress/usr.bin/ssh/scp.sh @@ -0,0 +1,120 @@ +# $OpenBSD: scp.sh,v 1.7 2006/01/31 10:36:33 djm Exp $ +# Placed in the Public Domain. + +tid="scp" + +#set -x + +DATA=/bin/ls +COPY=${OBJ}/copy +COPY2=${OBJ}/copy2 +DIR=${COPY}.dd +DIR2=${COPY}.dd2 + +SRC=`dirname ${SCRIPT}` +cp ${SRC}/scp-ssh-wrapper.sh ${OBJ}/scp-ssh-wrapper.exe +chmod 755 ${OBJ}/scp-ssh-wrapper.exe +scpopts="-q -S ${OBJ}/scp-ssh-wrapper.exe" + +scpclean() { + rm -rf ${COPY} ${COPY2} ${DIR} ${DIR2} + mkdir ${DIR} ${DIR2} +} + +verbose "$tid: simple copy local file to local file" +scpclean +$SCP $scpopts ${DATA} ${COPY} || fail "copy failed" +cmp ${DATA} ${COPY} || fail "corrupted copy" + +verbose "$tid: simple copy local file to remote file" +scpclean +$SCP $scpopts ${DATA} somehost:${COPY} || fail "copy failed" +cmp ${DATA} ${COPY} || fail "corrupted copy" + +verbose "$tid: simple copy remote file to local file" +scpclean +$SCP $scpopts somehost:${DATA} ${COPY} || fail "copy failed" +cmp ${DATA} ${COPY} || fail "corrupted copy" + +verbose "$tid: simple copy local file to remote dir" +scpclean +cp ${DATA} ${COPY} +$SCP $scpopts ${COPY} somehost:${DIR} || fail "copy failed" +cmp ${COPY} ${DIR}/copy || fail "corrupted copy" + +verbose "$tid: simple copy local file to local dir" +scpclean +cp ${DATA} ${COPY} +$SCP $scpopts ${COPY} ${DIR} || fail "copy failed" +cmp ${COPY} ${DIR}/copy || fail "corrupted copy" + +verbose "$tid: simple copy remote file to local dir" +scpclean +cp ${DATA} ${COPY} +$SCP $scpopts somehost:${COPY} ${DIR} || fail "copy failed" +cmp ${COPY} ${DIR}/copy || fail "corrupted copy" + +verbose "$tid: recursive local dir to remote dir" +scpclean +rm -rf ${DIR2} +cp ${DATA} ${DIR}/copy +$SCP $scpopts -r ${DIR} somehost:${DIR2} || fail "copy failed" +diff -rN ${DIR} ${DIR2} || fail "corrupted copy" + +verbose "$tid: recursive local dir to local dir" +scpclean +rm -rf ${DIR2} +cp ${DATA} ${DIR}/copy +$SCP $scpopts -r ${DIR} ${DIR2} || fail "copy failed" +diff -rN ${DIR} ${DIR2} || fail "corrupted copy" + +verbose "$tid: recursive remote dir to local dir" +scpclean +rm -rf ${DIR2} +cp ${DATA} ${DIR}/copy +$SCP $scpopts -r somehost:${DIR} ${DIR2} || fail "copy failed" +diff -rN ${DIR} ${DIR2} || fail "corrupted copy" + +verbose "$tid: shell metacharacters" +scpclean +(cd ${DIR} && \ + touch '`touch metachartest`' && \ + $SCP $scpopts *metachar* ${DIR2} 2>/dev/null; \ + [ ! -f metachartest ] ) || fail "shell metacharacters" + +if [ ! -z "$SUDO" ]; then + verbose "$tid: skipped file after scp -p with failed chown+utimes" + scpclean + cp -p ${DATA} ${DIR}/copy + cp -p ${DATA} ${DIR}/copy2 + cp ${DATA} ${DIR2}/copy + chmod 660 ${DIR2}/copy + $SUDO chown root ${DIR2}/copy + $SCP -p $scpopts somehost:${DIR}/\* ${DIR2} >/dev/null 2>&1 + $SUDO diff -rN ${DIR} ${DIR2} || fail "corrupted copy" + $SUDO rm ${DIR2}/copy +fi + +for i in 0 1 2 3 4; do + verbose "$tid: disallow bad server #$i" + SCPTESTMODE=badserver_$i + export DIR SCPTESTMODE + scpclean + $SCP $scpopts somehost:${DATA} ${DIR} >/dev/null 2>/dev/null + [ -d {$DIR}/rootpathdir ] && fail "allows dir relative to root dir" + [ -d ${DIR}/dotpathdir ] && fail "allows dir creation in non-recursive mode" + + scpclean + $SCP -r $scpopts somehost:${DATA} ${DIR2} >/dev/null 2>/dev/null + [ -d ${DIR}/dotpathdir ] && fail "allows dir creation outside of subdir" +done + +verbose "$tid: detect non-directory target" +scpclean +echo a > ${COPY} +echo b > ${COPY2} +$SCP $scpopts ${DATA} ${COPY} ${COPY2} +cmp ${COPY} ${COPY2} >/dev/null && fail "corrupt target" + +scpclean +rm -f ${OBJ}/scp-ssh-wrapper.exe diff --git a/src/regress/usr.bin/ssh/sftp-badcmds.sh b/src/regress/usr.bin/ssh/sftp-badcmds.sh new file mode 100644 index 000000000..3d46b48f1 --- /dev/null +++ b/src/regress/usr.bin/ssh/sftp-badcmds.sh @@ -0,0 +1,67 @@ +# $OpenBSD: sftp-badcmds.sh,v 1.4 2009/08/13 01:11:55 djm Exp $ +# Placed in the Public Domain. + +tid="sftp invalid commands" + +DATA=/bin/ls +DATA2=/bin/cat +NONEXIST=/NONEXIST.$$ +COPY=${OBJ}/copy +GLOBFILES=`(cd /bin;echo l*)` + +rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${BATCH}.* + +rm -f ${COPY} +verbose "$tid: get nonexistent" +echo "get $NONEXIST $COPY" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "get nonexistent failed" +test -f ${COPY} && fail "existing copy after get nonexistent" + +rm -f ${COPY}.dd/* +verbose "$tid: glob get to nonexistent directory" +echo "get /bin/l* $NONEXIST" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "get nonexistent failed" +for x in $GLOBFILES; do + test -f ${COPY}.dd/$x && fail "existing copy after get nonexistent" +done + +rm -f ${COPY} +verbose "$tid: put nonexistent" +echo "put $NONEXIST $COPY" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "put nonexistent failed" +test -f ${COPY} && fail "existing copy after put nonexistent" + +rm -f ${COPY}.dd/* +verbose "$tid: glob put to nonexistent directory" +echo "put /bin/l* ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "put nonexistent failed" +for x in $GLOBFILES; do + test -f ${COPY}.dd/$x && fail "existing copy after nonexistent" +done + +rm -f ${COPY} +verbose "$tid: rename nonexistent" +echo "rename $NONEXIST ${COPY}.1" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "rename nonexist failed" +test -f ${COPY}.1 && fail "file exists after rename nonexistent" + +rm -rf ${COPY} ${COPY}.dd +cp $DATA $COPY +mkdir ${COPY}.dd +verbose "$tid: rename target exists (directory)" +echo "rename $COPY ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "rename target exists (directory) failed" +test -f ${COPY} || fail "oldname missing after rename target exists (directory)" +test -d ${COPY}.dd || fail "newname missing after rename target exists (directory)" +cmp $DATA ${COPY} >/dev/null 2>&1 || fail "corrupted oldname after rename target exists (directory)" + +rm -f ${COPY}.dd/* +rm -rf ${COPY} +cp ${DATA2} ${COPY} +verbose "$tid: glob put files to local file" +echo "put /bin/l* $COPY" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 +cmp ${DATA2} ${COPY} || fail "put successed when it should have failed" + +rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${BATCH}.* + + diff --git a/src/regress/usr.bin/ssh/sftp-batch.sh b/src/regress/usr.bin/ssh/sftp-batch.sh new file mode 100644 index 000000000..2a251507c --- /dev/null +++ b/src/regress/usr.bin/ssh/sftp-batch.sh @@ -0,0 +1,57 @@ +# $OpenBSD: sftp-batch.sh,v 1.4 2009/08/13 01:11:55 djm Exp $ +# Placed in the Public Domain. + +tid="sftp batchfile" + +DATA=/bin/ls +COPY=${OBJ}/copy +BATCH=${OBJ}/sftp.bb + +rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${BATCH}.* + +cat << EOF > ${BATCH}.pass.1 + get $DATA $COPY + put ${COPY} ${COPY}.1 + rm ${COPY} + -put ${COPY} ${COPY}.2 +EOF + +cat << EOF > ${BATCH}.pass.2 + # This is a comment + + # That was a blank line + ls +EOF + +cat << EOF > ${BATCH}.fail.1 + get $DATA $COPY + put ${COPY} ${COPY}.3 + rm ${COPY}.* + # The next command should fail + put ${COPY}.3 ${COPY}.4 +EOF + +cat << EOF > ${BATCH}.fail.2 + # The next command should fail + jajajajaja +EOF + +verbose "$tid: good commands" +${SFTP} -b ${BATCH}.pass.1 -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "good commands failed" + +verbose "$tid: bad commands" +${SFTP} -b ${BATCH}.fail.1 -D ${SFTPSERVER} >/dev/null 2>&1 \ + && fail "bad commands succeeded" + +verbose "$tid: comments and blanks" +${SFTP} -b ${BATCH}.pass.2 -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "comments & blanks failed" + +verbose "$tid: junk command" +${SFTP} -b ${BATCH}.fail.2 -D ${SFTPSERVER} >/dev/null 2>&1 \ + && fail "junk command succeeded" + +rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${BATCH}.* + + diff --git a/src/regress/usr.bin/ssh/sftp-cmds.sh b/src/regress/usr.bin/ssh/sftp-cmds.sh new file mode 100644 index 000000000..d61e298cd --- /dev/null +++ b/src/regress/usr.bin/ssh/sftp-cmds.sh @@ -0,0 +1,218 @@ +# $OpenBSD: sftp-cmds.sh,v 1.10 2009/08/13 01:11:55 djm Exp $ +# Placed in the Public Domain. + +# XXX - TODO: +# - chmod / chown / chgrp +# - -p flag for get & put + +tid="sftp commands" + +DATA=/bin/ls +COPY=${OBJ}/copy +GLOBFILES=`(cd /bin;echo l*)` + +# Path with embedded quote +QUOTECOPY=${COPY}".\"blah\"" +QUOTECOPY_ARG=${COPY}'.\"blah\"' +# File with spaces +SPACECOPY="${COPY} this has spaces.txt" +SPACECOPY_ARG="${COPY}\ this\ has\ spaces.txt" +# File with glob metacharacters +GLOBMETACOPY="${COPY} [metachar].txt" + +rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${COPY}.dd2 ${BATCH}.* +mkdir ${COPY}.dd + +verbose "$tid: lls" +echo "cd ${OBJ}\nlls" | ${SFTP} -D ${SFTPSERVER} 2>&1 | \ + grep -q copy.dd || fail "lls failed" + +verbose "$tid: lls w/path" +echo "lls ${OBJ}" | ${SFTP} -D ${SFTPSERVER} 2>&1 | \ + grep -q copy.dd || fail "lls w/path failed" + +verbose "$tid: ls" +echo "ls ${OBJ}" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "ls failed" +# XXX always successful + +verbose "$tid: shell" +echo "!echo hi there" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "shell failed" +# XXX always successful + +verbose "$tid: pwd" +echo "pwd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "pwd failed" +# XXX always successful + +verbose "$tid: lpwd" +echo "lpwd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "lpwd failed" +# XXX always successful + +verbose "$tid: quit" +echo "quit" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "quit failed" +# XXX always successful + +verbose "$tid: help" +echo "help" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "help failed" +# XXX always successful + +rm -f ${COPY} +verbose "$tid: get" +echo "get $DATA $COPY" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "get failed" +cmp $DATA ${COPY} || fail "corrupted copy after get" + +rm -f ${COPY} +verbose "$tid: get quoted" +echo "get \"$DATA\" $COPY" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "get failed" +cmp $DATA ${COPY} || fail "corrupted copy after get" + +rm -f ${QUOTECOPY} +cp $DATA ${QUOTECOPY} +verbose "$tid: get filename with quotes" +echo "get \"$QUOTECOPY_ARG\" ${COPY}" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "get failed" +cmp ${COPY} ${QUOTECOPY} || fail "corrupted copy after get with quotes" +rm -f ${QUOTECOPY} ${COPY} + +rm -f "$SPACECOPY" ${COPY} +cp $DATA "$SPACECOPY" +verbose "$tid: get filename with spaces" +echo "get ${SPACECOPY_ARG} ${COPY}" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "get failed" +cmp ${COPY} "$SPACECOPY" || fail "corrupted copy after get with spaces" + +rm -f "$GLOBMETACOPY" ${COPY} +cp $DATA "$GLOBMETACOPY" +verbose "$tid: get filename with glob metacharacters" +echo "get \"${GLOBMETACOPY}\" ${COPY}" | \ + ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 || fail "get failed" +cmp ${COPY} "$GLOBMETACOPY" || \ + fail "corrupted copy after get with glob metacharacters" + +rm -f ${COPY}.dd/* +verbose "$tid: get to directory" +echo "get $DATA ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "get failed" +cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after get" + +rm -f ${COPY}.dd/* +verbose "$tid: glob get to directory" +echo "get /bin/l* ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "get failed" +for x in $GLOBFILES; do + cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after get" +done + +rm -f ${COPY}.dd/* +verbose "$tid: get to local dir" +echo "lcd ${COPY}.dd\nget $DATA" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "get failed" +cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after get" + +rm -f ${COPY}.dd/* +verbose "$tid: glob get to local dir" +echo "lcd ${COPY}.dd\nget /bin/l*" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "get failed" +for x in $GLOBFILES; do + cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after get" +done + +rm -f ${COPY} +verbose "$tid: put" +echo "put $DATA $COPY" | \ + ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 || fail "put failed" +cmp $DATA ${COPY} || fail "corrupted copy after put" + +rm -f ${QUOTECOPY} +verbose "$tid: put filename with quotes" +echo "put $DATA \"$QUOTECOPY_ARG\"" | \ + ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 || fail "put failed" +cmp $DATA ${QUOTECOPY} || fail "corrupted copy after put with quotes" + +rm -f "$SPACECOPY" +verbose "$tid: put filename with spaces" +echo "put $DATA ${SPACECOPY_ARG}" | \ + ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 || fail "put failed" +cmp $DATA "$SPACECOPY" || fail "corrupted copy after put with spaces" + +rm -f ${COPY}.dd/* +verbose "$tid: put to directory" +echo "put $DATA ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "put failed" +cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after put" + +rm -f ${COPY}.dd/* +verbose "$tid: glob put to directory" +echo "put /bin/l* ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "put failed" +for x in $GLOBFILES; do + cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after put" +done + +rm -f ${COPY}.dd/* +verbose "$tid: put to local dir" +echo "cd ${COPY}.dd\nput $DATA" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "put failed" +cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after put" + +rm -f ${COPY}.dd/* +verbose "$tid: glob put to local dir" +echo "cd ${COPY}.dd\nput /bin/l*" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "put failed" +for x in $GLOBFILES; do + cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after put" +done + +verbose "$tid: rename" +echo "rename $COPY ${COPY}.1" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "rename failed" +test -f ${COPY}.1 || fail "missing file after rename" +cmp $DATA ${COPY}.1 >/dev/null 2>&1 || fail "corrupted copy after rename" + +verbose "$tid: rename directory" +echo "rename ${COPY}.dd ${COPY}.dd2" | \ + ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 || \ + fail "rename directory failed" +test -d ${COPY}.dd && fail "oldname exists after rename directory" +test -d ${COPY}.dd2 || fail "missing newname after rename directory" + +verbose "$tid: ln" +echo "ln ${COPY}.1 ${COPY}.2" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 || fail "ln failed" +test -L ${COPY}.2 || fail "missing file after ln" + +verbose "$tid: mkdir" +echo "mkdir ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "mkdir failed" +test -d ${COPY}.dd || fail "missing directory after mkdir" + +# XXX do more here +verbose "$tid: chdir" +echo "chdir ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "chdir failed" + +verbose "$tid: rmdir" +echo "rmdir ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "rmdir failed" +test -d ${COPY}.1 && fail "present directory after rmdir" + +verbose "$tid: lmkdir" +echo "lmkdir ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "lmkdir failed" +test -d ${COPY}.dd || fail "missing directory after lmkdir" + +# XXX do more here +verbose "$tid: lchdir" +echo "lchdir ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ + || fail "lchdir failed" + +rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${COPY}.dd2 ${BATCH}.* +rm -rf ${QUOTECOPY} "$SPACECOPY" "$GLOBMETACOPY" + + diff --git a/src/regress/usr.bin/ssh/sftp-glob.sh b/src/regress/usr.bin/ssh/sftp-glob.sh new file mode 100644 index 000000000..fcaae3441 --- /dev/null +++ b/src/regress/usr.bin/ssh/sftp-glob.sh @@ -0,0 +1,65 @@ +# $OpenBSD: sftp-glob.sh,v 1.4 2009/08/13 01:11:55 djm Exp $ +# Placed in the Public Domain. + +tid="sftp glob" + +sftp_ls() { + target=$1 + errtag=$2 + expected=$3 + unexpected=$4 + verbose "$tid: $errtag" + printf "ls -l %s" "${target}" | \ + ${SFTP} -b - -D ${SFTPSERVER} 2>/dev/null | \ + grep -v "^sftp>" > ${RESULTS} + if [ $? -ne 0 ]; then + fail "$errtag failed" + fi + if test "x$expected" != "x" && \ + ! fgrep "$expected" ${RESULTS} >/dev/null 2>&1 ; then + fail "$expected missing from $errtag results" + fi + if test "x$unexpected" != "x" && \ + fgrep "$unexpected" ${RESULTS} >/dev/null 2>&1 ; then + fail "$unexpected present in $errtag results" + fi + rm -f ${RESULTS} +} + +BASE=${OBJ}/glob +RESULTS=${OBJ}/results +DIR=${BASE}/dir +DATA=${DIR}/file + +GLOB1="${DIR}/g-wild*" +GLOB2="${DIR}/g-wildx" +QUOTE="${DIR}/g-quote\"" +SLASH="${DIR}/g-sl\\ash" +ESLASH="${DIR}/g-slash\\" +QSLASH="${DIR}/g-qs\\\"" +SPACE="${DIR}/g-q space" + +rm -rf ${BASE} +mkdir -p ${DIR} +touch "${DATA}" "${GLOB1}" "${GLOB2}" "${QUOTE}" +touch "${QSLASH}" "${ESLASH}" "${SLASH}" "${SPACE}" + +# target message expected unexpected +sftp_ls "${DIR}/fil*" "file glob" "${DATA}" "" +sftp_ls "${BASE}/d*" "dir glob" "`basename ${DATA}`" "" +sftp_ls "${DIR}/g-wild\"*\"" "quoted glob" "g-wild*" "g-wildx" +sftp_ls "${DIR}/g-wild\*" "escaped glob" "g-wild*" "g-wildx" +sftp_ls "${DIR}/g-quote\\\"" "escaped quote" "g-quote\"" "" +sftp_ls "\"${DIR}/g-quote\\\"\"" "quoted quote" "g-quote\"" "" +sftp_ls "'${DIR}/g-quote\"'" "single-quoted quote" "g-quote\"" "" +sftp_ls "${DIR}/g-sl\\\\ash" "escaped slash" "g-sl\\ash" "" +sftp_ls "'${DIR}/g-sl\\\\ash'" "quoted slash" "g-sl\\ash" "" +sftp_ls "${DIR}/g-slash\\\\" "escaped slash at EOL" "g-slash\\" "" +sftp_ls "'${DIR}/g-slash\\\\'" "quoted slash at EOL" "g-slash\\" "" +sftp_ls "${DIR}/g-qs\\\\\\\"" "escaped slash+quote" "g-qs\\\"" "" +sftp_ls "'${DIR}/g-qs\\\\\"'" "quoted slash+quote" "g-qs\\\"" "" +sftp_ls "${DIR}/g-q\\ space" "escaped space" "g-q space" "" +sftp_ls "'${DIR}/g-q space'" "quoted space" "g-q space" "" + +rm -rf ${BASE} + diff --git a/src/regress/usr.bin/ssh/sftp.sh b/src/regress/usr.bin/ssh/sftp.sh new file mode 100644 index 000000000..08c365fba --- /dev/null +++ b/src/regress/usr.bin/ssh/sftp.sh @@ -0,0 +1,29 @@ +# $OpenBSD: sftp.sh,v 1.3 2009/08/13 01:11:55 djm Exp $ +# Placed in the Public Domain. + +tid="basic sftp put/get" + +DATA=/bin/ls +COPY=${OBJ}/copy + +BUFFERSIZE="5 1000 32000 64000" +REQUESTS="1 2 10" + +for B in ${BUFFERSIZE}; do + for R in ${REQUESTS}; do + verbose "test $tid: buffer_size $B num_requests $R" + rm -f ${COPY}.1 ${COPY}.2 + ${SFTP} -D ${SFTPSERVER} -B $B -R $R -b /dev/stdin \ + > /dev/null 2>&1 << EOF + version + get $DATA ${COPY}.1 + put $DATA ${COPY}.2 +EOF + r=$? + if [ $r -ne 0 ]; then + fail "sftp failed with $r" + fi + cmp $DATA ${COPY}.1 || fail "corrupted copy after get" + cmp $DATA ${COPY}.2 || fail "corrupted copy after put" + done +done diff --git a/src/regress/usr.bin/ssh/ssh-com-client.sh b/src/regress/usr.bin/ssh/ssh-com-client.sh new file mode 100644 index 000000000..7dbe18de8 --- /dev/null +++ b/src/regress/usr.bin/ssh/ssh-com-client.sh @@ -0,0 +1,134 @@ +# $OpenBSD: ssh-com-client.sh,v 1.6 2004/02/24 17:06:52 markus Exp $ +# Placed in the Public Domain. + +tid="connect with ssh.com client" + +#TEST_COMBASE=/path/to/ssh/com/binaries +if [ "X${TEST_COMBASE}" = "X" ]; then + fatal '$TEST_COMBASE is not set' +fi + +VERSIONS=" + 2.1.0 + 2.2.0 + 2.3.0 + 2.3.1 + 2.4.0 + 3.0.0 + 3.1.0 + 3.2.0 + 3.2.2 + 3.2.3 + 3.2.5 + 3.2.9 + 3.2.9.1 + 3.3.0" + +# 2.0.10 2.0.12 2.0.13 don't like the test setup + +# setup authorized keys +SRC=`dirname ${SCRIPT}` +cp ${SRC}/dsa_ssh2.prv ${OBJ}/id.com +chmod 600 ${OBJ}/id.com +${SSHKEYGEN} -i -f ${OBJ}/id.com > $OBJ/id.openssh +chmod 600 ${OBJ}/id.openssh +${SSHKEYGEN} -y -f ${OBJ}/id.openssh > $OBJ/authorized_keys_$USER +${SSHKEYGEN} -e -f ${OBJ}/id.openssh > $OBJ/id.com.pub +echo IdKey ${OBJ}/id.com > ${OBJ}/id.list + +# we need a DSA host key +t=dsa +rm -f ${OBJ}/$t ${OBJ}/$t.pub +${SSHKEYGEN} -q -N '' -t $t -f ${OBJ}/$t +$SUDO cp $OBJ/$t $OBJ/host.$t +echo HostKey $OBJ/host.$t >> $OBJ/sshd_config + +# add hostkeys to known hosts +mkdir -p ${OBJ}/${USER}/hostkeys +HK=${OBJ}/${USER}/hostkeys/key_${PORT}_127.0.0.1 +${SSHKEYGEN} -e -f ${OBJ}/rsa.pub > ${HK}.ssh-rsa.pub +${SSHKEYGEN} -e -f ${OBJ}/dsa.pub > ${HK}.ssh-dss.pub + +cat > ${OBJ}/ssh2_config << EOF +*: + QuietMode yes + StrictHostKeyChecking yes + Port ${PORT} + User ${USER} + Host 127.0.0.1 + IdentityFile ${OBJ}/id.list + RandomSeedFile ${OBJ}/random_seed + UserConfigDirectory ${OBJ}/%U + AuthenticationSuccessMsg no + BatchMode yes + ForwardX11 no +EOF + +# we need a real server (no ProxyConnect option) +start_sshd + +DATA=/bin/ls +COPY=${OBJ}/copy +rm -f ${COPY} + +# go for it +for v in ${VERSIONS}; do + ssh2=${TEST_COMBASE}/${v}/ssh2 + if [ ! -x ${ssh2} ]; then + continue + fi + verbose "ssh2 ${v}" + key=ssh-dss + skipcat=0 + case $v in + 2.1.*|2.3.0) + skipcat=1 + ;; + 3.0.*) + key=ssh-rsa + ;; + esac + cp ${HK}.$key.pub ${HK}.pub + + # check exit status + ${ssh2} -q -F ${OBJ}/ssh2_config somehost exit 42 + r=$? + if [ $r -ne 42 ]; then + fail "ssh2 ${v} exit code test failed (got $r, expected 42)" + fi + + # data transfer + rm -f ${COPY} + ${ssh2} -F ${OBJ}/ssh2_config somehost cat ${DATA} > ${COPY} + if [ $? -ne 0 ]; then + fail "ssh2 ${v} cat test (receive) failed" + fi + cmp ${DATA} ${COPY} || fail "ssh2 ${v} cat test (receive) data mismatch" + + # data transfer, again + if [ $skipcat -eq 0 ]; then + rm -f ${COPY} + cat ${DATA} | \ + ${ssh2} -F ${OBJ}/ssh2_config host "cat > ${COPY}" + if [ $? -ne 0 ]; then + fail "ssh2 ${v} cat test (send) failed" + fi + cmp ${DATA} ${COPY} || \ + fail "ssh2 ${v} cat test (send) data mismatch" + fi + + # no stderr after eof + rm -f ${COPY} + ${ssh2} -F ${OBJ}/ssh2_config somehost \ + exec sh -c \'"exec > /dev/null; sleep 1; echo bla 1>&2; exit 0"\' \ + 2> /dev/null + if [ $? -ne 0 ]; then + fail "ssh2 ${v} stderr test failed" + fi +done + +rm -rf ${OBJ}/${USER} +for i in ssh2_config random_seed dsa.pub dsa host.dsa \ + id.list id.com id.com.pub id.openssh; do + rm -f ${OBJ}/$i +done diff --git a/src/regress/usr.bin/ssh/ssh-com-keygen.sh b/src/regress/usr.bin/ssh/ssh-com-keygen.sh new file mode 100644 index 000000000..29b02d946 --- /dev/null +++ b/src/regress/usr.bin/ssh/ssh-com-keygen.sh @@ -0,0 +1,74 @@ +# $OpenBSD: ssh-com-keygen.sh,v 1.4 2004/02/24 17:06:52 markus Exp $ +# Placed in the Public Domain. + +tid="ssh.com key import" + +#TEST_COMBASE=/path/to/ssh/com/binaries +if [ "X${TEST_COMBASE}" = "X" ]; then + fatal '$TEST_COMBASE is not set' +fi + +VERSIONS=" + 2.0.10 + 2.0.12 + 2.0.13 + 2.1.0 + 2.2.0 + 2.3.0 + 2.3.1 + 2.4.0 + 3.0.0 + 3.1.0 + 3.2.0 + 3.2.2 + 3.2.3 + 3.2.5 + 3.2.9 + 3.2.9.1 + 3.3.0" + +COMPRV=${OBJ}/comkey +COMPUB=${COMPRV}.pub +OPENSSHPRV=${OBJ}/opensshkey +OPENSSHPUB=${OPENSSHPRV}.pub + +# go for it +for v in ${VERSIONS}; do + keygen=${TEST_COMBASE}/${v}/ssh-keygen2 + if [ ! -x ${keygen} ]; then + continue + fi + types="dss" + case $v in + 2.3.1|3.*) + types="$types rsa" + ;; + esac + for t in $types; do + verbose "ssh-keygen $v/$t" + rm -f $COMPRV $COMPUB $OPENSSHPRV $OPENSSHPUB + ${keygen} -q -P -t $t ${COMPRV} > /dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "${keygen} -t $t failed" + continue + fi + ${SSHKEYGEN} -if ${COMPUB} > ${OPENSSHPUB} + if [ $? -ne 0 ]; then + fail "import public key ($v/$t) failed" + continue + fi + ${SSHKEYGEN} -if ${COMPRV} > ${OPENSSHPRV} + if [ $? -ne 0 ]; then + fail "import private key ($v/$t) failed" + continue + fi + chmod 600 ${OPENSSHPRV} + ${SSHKEYGEN} -yf ${OPENSSHPRV} |\ + diff - ${OPENSSHPUB} + if [ $? -ne 0 ]; then + fail "public keys ($v/$t) differ" + fi + done +done + +rm -f $COMPRV $COMPUB $OPENSSHPRV $OPENSSHPUB diff --git a/src/regress/usr.bin/ssh/ssh-com-sftp.sh b/src/regress/usr.bin/ssh/ssh-com-sftp.sh new file mode 100644 index 000000000..d2ddf3485 --- /dev/null +++ b/src/regress/usr.bin/ssh/ssh-com-sftp.sh @@ -0,0 +1,61 @@ +# $OpenBSD: ssh-com-sftp.sh,v 1.6 2009/08/20 18:43:07 djm Exp $ +# Placed in the Public Domain. + +tid="basic sftp put/get with ssh.com server" + +DATA=/bin/ls +COPY=${OBJ}/copy + +BUFFERSIZE="5 1000 32000 64000" +REQUESTS="1 2 10" + +#TEST_COMBASE=/path/to/ssh/com/binaries +if [ "X${TEST_COMBASE}" = "X" ]; then + fatal '$TEST_COMBASE is not set' +fi + +VERSIONS=" + 2.0.10 + 2.0.12 + 2.0.13 + 2.1.0 + 2.2.0 + 2.3.0 + 2.3.1 + 2.4.0 + 3.0.0 + 3.1.0 + 3.2.0 + 3.2.2 + 3.2.3 + 3.2.5 + 3.2.9 + 3.2.9.1 + 3.3.0" + +# go for it +for v in ${VERSIONS}; do + server=${TEST_COMBASE}/${v}/sftp-server2 + if [ ! -x ${server} ]; then + continue + fi + verbose "sftp-server $v" + for B in ${BUFFERSIZE}; do + for R in ${REQUESTS}; do + verbose "test $tid: buffer_size $B num_requests $R" + rm -f ${COPY}.1 ${COPY}.2 + ${SFTP} -D ${server} -B $B -R $R -b /dev/stdin \ + > /dev/null 2>&1 << EOF + version + get $DATA ${COPY}.1 + put $DATA ${COPY}.2 +EOF + r=$? + if [ $r -ne 0 ]; then + fail "sftp failed with $r" + fi + cmp $DATA ${COPY}.1 || fail "corrupted copy after get" + cmp $DATA ${COPY}.2 || fail "corrupted copy after put" + done + done +done diff --git a/src/regress/usr.bin/ssh/ssh-com.sh b/src/regress/usr.bin/ssh/ssh-com.sh new file mode 100644 index 000000000..a293fc6a5 --- /dev/null +++ b/src/regress/usr.bin/ssh/ssh-com.sh @@ -0,0 +1,119 @@ +# $OpenBSD: ssh-com.sh,v 1.7 2004/02/24 17:06:52 markus Exp $ +# Placed in the Public Domain. + +tid="connect to ssh.com server" + +#TEST_COMBASE=/path/to/ssh/com/binaries +if [ "X${TEST_COMBASE}" = "X" ]; then + fatal '$TEST_COMBASE is not set' +fi + +VERSIONS=" + 2.0.12 + 2.0.13 + 2.1.0 + 2.2.0 + 2.3.0 + 2.4.0 + 3.0.0 + 3.1.0 + 3.2.0 + 3.2.2 + 3.2.3 + 3.2.5 + 3.2.9 + 3.2.9.1 + 3.3.0" +# 2.0.10 does not support UserConfigDirectory +# 2.3.1 requires a config in $HOME/.ssh2 + +SRC=`dirname ${SCRIPT}` + +# ssh.com +cat << EOF > $OBJ/sshd2_config +#*: + # Port and ListenAddress are not used. + QuietMode yes + Port 4343 + ListenAddress 127.0.0.1 + UserConfigDirectory ${OBJ}/%U + Ciphers AnyCipher + PubKeyAuthentication yes + #AllowedAuthentications publickey + AuthorizationFile authorization + HostKeyFile ${SRC}/dsa_ssh2.prv + PublicHostKeyFile ${SRC}/dsa_ssh2.pub + RandomSeedFile ${OBJ}/random_seed + MaxConnections 0 + PermitRootLogin yes + VerboseMode no + CheckMail no + Ssh1Compatibility no +EOF + +# create client config +sed "s/HostKeyAlias.*/HostKeyAlias ssh2-localhost-with-alias/" \ + < $OBJ/ssh_config > $OBJ/ssh_config_com + +# we need a DSA key for +rm -f ${OBJ}/dsa ${OBJ}/dsa.pub +${SSHKEYGEN} -q -N '' -t dsa -f ${OBJ}/dsa + +# setup userdir, try rsa first +mkdir -p ${OBJ}/${USER} +cp /dev/null ${OBJ}/${USER}/authorization +for t in rsa dsa; do + ${SSHKEYGEN} -e -f ${OBJ}/$t.pub > ${OBJ}/${USER}/$t.com + echo Key $t.com >> ${OBJ}/${USER}/authorization + echo IdentityFile ${OBJ}/$t >> ${OBJ}/ssh_config_com +done + +# convert and append DSA hostkey +( + echo -n 'ssh2-localhost-with-alias,127.0.0.1,::1 ' + ${SSHKEYGEN} -if ${SRC}/dsa_ssh2.pub +) >> $OBJ/known_hosts + +# go for it +for v in ${VERSIONS}; do + sshd2=${TEST_COMBASE}/${v}/sshd2 + if [ ! -x ${sshd2} ]; then + continue + fi + trace "sshd2 ${v}" + PROXY="proxycommand ${sshd2} -qif ${OBJ}/sshd2_config 2> /dev/null" + ${SSH} -qF ${OBJ}/ssh_config_com -o "${PROXY}" dummy exit 0 + if [ $? -ne 0 ]; then + fail "ssh connect to sshd2 ${v} failed" + fi + + ciphers="3des-cbc blowfish-cbc arcfour" + macs="hmac-md5" + case $v in + 2.4.*) + ciphers="$ciphers cast128-cbc" + macs="$macs hmac-sha1 hmac-sha1-96 hmac-md5-96" + ;; + 3.*) + ciphers="$ciphers aes128-cbc cast128-cbc" + macs="$macs hmac-sha1 hmac-sha1-96 hmac-md5-96" + ;; + esac + #ciphers="3des-cbc" + for m in $macs; do + for c in $ciphers; do + trace "sshd2 ${v} cipher $c mac $m" + verbose "test ${tid}: sshd2 ${v} cipher $c mac $m" + ${SSH} -c $c -m $m -qF ${OBJ}/ssh_config_com -o "${PROXY}" dummy exit 0 + if [ $? -ne 0 ]; then + fail "ssh connect to sshd2 ${v} with $c/$m failed" + fi + done + done +done + +rm -rf ${OBJ}/${USER} +for i in sshd_config_proxy ssh_config_proxy random_seed \ + sshd2_config dsa.pub dsa ssh_config_com; do + rm -f ${OBJ}/$i +done diff --git a/src/regress/usr.bin/ssh/ssh2putty.sh b/src/regress/usr.bin/ssh/ssh2putty.sh new file mode 100755 index 000000000..796839f59 --- /dev/null +++ b/src/regress/usr.bin/ssh/ssh2putty.sh @@ -0,0 +1,32 @@ +#!/bin/sh +# $OpenBSD: ssh2putty.sh,v 1.2 2009/10/06 23:51:49 dtucker Exp $ + +if test "x$1" = "x" -o "x$2" = "x" -o "x$3" = "x" ; then + echo "Usage: ssh2putty hostname port ssh-private-key" + exit 1 +fi + +HOST=$1 +PORT=$2 +KEYFILE=$3 + +# XXX - support DSA keys too +if ! grep -q "BEGIN RSA PRIVATE KEY" $KEYFILE ; then + echo "Unsupported private key format" + exit 1 +fi + +public_exponent=` + openssl rsa -noout -text -in $KEYFILE | grep ^publicExponent | + sed 's/.*(//;s/).*//' +` +test $? -ne 0 && exit 1 + +modulus=` + openssl rsa -noout -modulus -in $KEYFILE | grep ^Modulus= | + sed 's/^Modulus=/0x/' | tr A-Z a-z +` +test $? -ne 0 && exit 1 + +echo "rsa2@$PORT:$HOST $public_exponent,$modulus" + diff --git a/src/regress/usr.bin/ssh/sshd-log-wrapper.sh b/src/regress/usr.bin/ssh/sshd-log-wrapper.sh new file mode 100644 index 000000000..c7a5ef3a6 --- /dev/null +++ b/src/regress/usr.bin/ssh/sshd-log-wrapper.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# $OpenBSD: sshd-log-wrapper.sh,v 1.2 2005/02/27 11:40:30 dtucker Exp $ +# Placed in the Public Domain. +# +# simple wrapper for sshd proxy mode to catch stderr output +# sh sshd-log-wrapper.sh /path/to/sshd /path/to/logfile + +sshd=$1 +log=$2 +shift +shift + +exec $sshd $@ -e 2>>$log diff --git a/src/regress/usr.bin/ssh/stderr-after-eof.sh b/src/regress/usr.bin/ssh/stderr-after-eof.sh new file mode 100644 index 000000000..cd1e66d57 --- /dev/null +++ b/src/regress/usr.bin/ssh/stderr-after-eof.sh @@ -0,0 +1,28 @@ +# $OpenBSD: stderr-after-eof.sh,v 1.1 2002/03/23 16:38:09 markus Exp $ +# Placed in the Public Domain. + +tid="stderr data after eof" + +DATA=/etc/motd +DATA=${OBJ}/data +COPY=${OBJ}/copy + +# setup data +rm -f ${DATA} ${COPY} +cp /dev/null ${DATA} +for i in 1 2 3 4 5 6; do + (date;echo $i) | md5 >> ${DATA} +done + +${SSH} -2 -F $OBJ/ssh_proxy otherhost \ + exec sh -c \'"exec > /dev/null; sleep 2; cat ${DATA} 1>&2 $s"\' \ + 2> ${COPY} +r=$? +if [ $r -ne 0 ]; then + fail "ssh failed with exit code $r" +fi +egrep 'Disconnecting: Received extended_data after EOF' ${COPY} && + fail "ext data received after eof" +cmp ${DATA} ${COPY} || fail "stderr corrupt" + +rm -f ${DATA} ${COPY} diff --git a/src/regress/usr.bin/ssh/stderr-data.sh b/src/regress/usr.bin/ssh/stderr-data.sh new file mode 100644 index 000000000..0157690b0 --- /dev/null +++ b/src/regress/usr.bin/ssh/stderr-data.sh @@ -0,0 +1,33 @@ +# $OpenBSD: stderr-data.sh,v 1.2 2002/03/27 22:39:52 markus Exp $ +# Placed in the Public Domain. + +tid="stderr data transfer" + +DATA=/bin/ls +COPY=${OBJ}/copy +rm -f ${COPY} + +for n in '' -n; do +for p in 1 2; do + verbose "test $tid: proto $p ($n)" + ${SSH} $n -$p -F $OBJ/ssh_proxy otherhost \ + exec sh -c \'"exec > /dev/null; sleep 3; cat ${DATA} 1>&2 $s"\' \ + 2> ${COPY} + r=$? + if [ $r -ne 0 ]; then + fail "ssh failed with exit code $r" + fi + cmp ${DATA} ${COPY} || fail "stderr corrupt" + rm -f ${COPY} + + ${SSH} $n -$p -F $OBJ/ssh_proxy otherhost \ + exec sh -c \'"echo a; exec > /dev/null; sleep 3; cat ${DATA} 1>&2 $s"\' \ + > /dev/null 2> ${COPY} + r=$? + if [ $r -ne 0 ]; then + fail "ssh failed with exit code $r" + fi + cmp ${DATA} ${COPY} || fail "stderr corrupt" + rm -f ${COPY} +done +done diff --git a/src/regress/usr.bin/ssh/t4.ok b/src/regress/usr.bin/ssh/t4.ok new file mode 100644 index 000000000..8c4942bf1 --- /dev/null +++ b/src/regress/usr.bin/ssh/t4.ok @@ -0,0 +1 @@ +3b:dd:44:e9:49:18:84:95:f1:e7:33:6b:9d:93:b1:36 diff --git a/src/regress/usr.bin/ssh/t5.ok b/src/regress/usr.bin/ssh/t5.ok new file mode 100644 index 000000000..bd622f300 --- /dev/null +++ b/src/regress/usr.bin/ssh/t5.ok @@ -0,0 +1 @@ +xokes-lylis-byleh-zebib-kalus-bihas-tevah-haroz-suhar-foved-noxex diff --git a/src/regress/usr.bin/ssh/test-exec.sh b/src/regress/usr.bin/ssh/test-exec.sh new file mode 100644 index 000000000..4c7c6e657 --- /dev/null +++ b/src/regress/usr.bin/ssh/test-exec.sh @@ -0,0 +1,327 @@ +# $OpenBSD: test-exec.sh,v 1.37 2010/02/24 06:21:56 djm Exp $ +# Placed in the Public Domain. + +USER=`id -un` +#SUDO=sudo + +if [ ! -z "$TEST_SSH_PORT" ]; then + PORT="$TEST_SSH_PORT" +else + PORT=4242 +fi + +OBJ=$1 +if [ "x$OBJ" = "x" ]; then + echo '$OBJ not defined' + exit 2 +fi +if [ ! -d $OBJ ]; then + echo "not a directory: $OBJ" + exit 2 +fi +SCRIPT=$2 +if [ "x$SCRIPT" = "x" ]; then + echo '$SCRIPT not defined' + exit 2 +fi +if [ ! -f $SCRIPT ]; then + echo "not a file: $SCRIPT" + exit 2 +fi +if sh -n $SCRIPT; then + true +else + echo "syntax error in $SCRIPT" + exit 2 +fi +unset SSH_AUTH_SOCK + +SRC=`dirname ${SCRIPT}` + +# defaults +SSH=ssh +SSHD=sshd +SSHAGENT=ssh-agent +SSHADD=ssh-add +SSHKEYGEN=ssh-keygen +SSHKEYSCAN=ssh-keyscan +SFTP=sftp +SFTPSERVER=/usr/libexec/sftp-server +SCP=scp + +# Interop testing +PLINK=/usr/local/bin/plink +PUTTYGEN=/usr/local/bin/puttygen +CONCH=/usr/local/bin/conch + +if [ "x$TEST_SSH_SSH" != "x" ]; then + SSH="${TEST_SSH_SSH}" +fi +if [ "x$TEST_SSH_SSHD" != "x" ]; then + SSHD="${TEST_SSH_SSHD}" +fi +if [ "x$TEST_SSH_SSHAGENT" != "x" ]; then + SSHAGENT="${TEST_SSH_SSHAGENT}" +fi +if [ "x$TEST_SSH_SSHADD" != "x" ]; then + SSHADD="${TEST_SSH_SSHADD}" +fi +if [ "x$TEST_SSH_SSHKEYGEN" != "x" ]; then + SSHKEYGEN="${TEST_SSH_SSHKEYGEN}" +fi +if [ "x$TEST_SSH_SSHKEYSCAN" != "x" ]; then + SSHKEYSCAN="${TEST_SSH_SSHKEYSCAN}" +fi +if [ "x$TEST_SSH_SFTP" != "x" ]; then + SFTP="${TEST_SSH_SFTP}" +fi +if [ "x$TEST_SSH_SFTPSERVER" != "x" ]; then + SFTPSERVER="${TEST_SSH_SFTPSERVER}" +fi +if [ "x$TEST_SSH_SCP" != "x" ]; then + SCP="${TEST_SSH_SCP}" +fi +if [ "x$TEST_SSH_PLINK" != "x" ]; then + PLINK="${TEST_SSH_PLINK}" +fi +if [ "x$TEST_SSH_PUTTYGEN" != "x" ]; then + PUTTYGEN="${TEST_SSH_PUTTYGEN}" +fi +if [ "x$TEST_SSH_CONCH" != "x" ]; then + CONCH="${TEST_SSH_CONCH}" +fi + +# Path to sshd must be absolute for rexec +if [ ! -x /$SSHD ]; then + SSHD=`which sshd` +fi + +if [ "x$TEST_SSH_LOGFILE" = "x" ]; then + TEST_SSH_LOGFILE=/dev/null +fi + +# these should be used in tests +export SSH SSHD SSHAGENT SSHADD SSHKEYGEN SSHKEYSCAN SFTP SFTPSERVER SCP +#echo $SSH $SSHD $SSHAGENT $SSHADD $SSHKEYGEN $SSHKEYSCAN $SFTP $SFTPSERVER $SCP + +# helper +cleanup () +{ + if [ -f $PIDFILE ]; then + pid=`cat $PIDFILE` + if [ "X$pid" = "X" ]; then + echo no sshd running + else + if [ $pid -lt 2 ]; then + echo bad pid for ssh: $pid + else + $SUDO kill $pid + trace "wait for sshd to exit" + i=0; + while [ -f $PIDFILE -a $i -lt 5 ]; do + i=`expr $i + 1` + sleep $i + done + test -f $PIDFILE && \ + fatal "sshd didn't exit port $PORT pid $pid" + fi + fi + fi +} + +trace () +{ + echo "trace: $@" >>$TEST_SSH_LOGFILE + if [ "X$TEST_SSH_TRACE" = "Xyes" ]; then + echo "$@" + fi +} + +verbose () +{ + echo "verbose: $@" >>$TEST_SSH_LOGFILE + if [ "X$TEST_SSH_QUIET" != "Xyes" ]; then + echo "$@" + fi +} + + +fail () +{ + echo "FAIL: $@" >>$TEST_SSH_LOGFILE + RESULT=1 + echo "$@" +} + +fatal () +{ + echo "FATAL: $@" >>$TEST_SSH_LOGFILE + echo -n "FATAL: " + fail "$@" + cleanup + exit $RESULT +} + +RESULT=0 +PIDFILE=$OBJ/pidfile + +trap fatal 3 2 + +# create server config +cat << EOF > $OBJ/sshd_config + Port $PORT + Protocol 2,1 + AddressFamily inet + ListenAddress 127.0.0.1 + #ListenAddress ::1 + PidFile $PIDFILE + AuthorizedKeysFile $OBJ/authorized_keys_%u + LogLevel DEBUG + AcceptEnv _XXX_TEST_* + AcceptEnv _XXX_TEST + Subsystem sftp $SFTPSERVER +EOF + +if [ ! -z "$TEST_SSH_SSHD_CONFOPTS" ]; then + trace "adding sshd_config option $TEST_SSH_SSHD_CONFOPTS" + echo "$TEST_SSH_SSHD_CONFOPTS" >> $OBJ/sshd_config +fi + +# server config for proxy connects +cp $OBJ/sshd_config $OBJ/sshd_proxy + +# allow group-writable directories in proxy-mode +echo 'StrictModes no' >> $OBJ/sshd_proxy + +# create client config +cat << EOF > $OBJ/ssh_config +Host * + Protocol 2,1 + Hostname 127.0.0.1 + HostKeyAlias localhost-with-alias + Port $PORT + User $USER + GlobalKnownHostsFile $OBJ/known_hosts + UserKnownHostsFile $OBJ/known_hosts + RSAAuthentication yes + PubkeyAuthentication yes + ChallengeResponseAuthentication no + HostbasedAuthentication no + PasswordAuthentication no + RhostsRSAAuthentication no + BatchMode yes + StrictHostKeyChecking yes +EOF + +if [ ! -z "$TEST_SSH_SSH_CONFOPTS" ]; then + trace "adding ssh_config option $TEST_SSH_SSHD_CONFOPTS" + echo "$TEST_SSH_SSH_CONFOPTS" >> $OBJ/ssh_config +fi + +rm -f $OBJ/known_hosts $OBJ/authorized_keys_$USER + +trace "generate keys" +for t in rsa rsa1; do + # generate user key + rm -f $OBJ/$t + ${SSHKEYGEN} -q -N '' -t $t -f $OBJ/$t ||\ + fail "ssh-keygen for $t failed" + + # known hosts file for client + ( + echo -n 'localhost-with-alias,127.0.0.1,::1 ' + cat $OBJ/$t.pub + ) >> $OBJ/known_hosts + + # setup authorized keys + cat $OBJ/$t.pub >> $OBJ/authorized_keys_$USER + echo IdentityFile $OBJ/$t >> $OBJ/ssh_config + + # use key as host key, too + $SUDO cp $OBJ/$t $OBJ/host.$t + echo HostKey $OBJ/host.$t >> $OBJ/sshd_config + + # don't use SUDO for proxy connect + echo HostKey $OBJ/$t >> $OBJ/sshd_proxy +done +chmod 644 $OBJ/authorized_keys_$USER + +# Activate Twisted Conch tests if the binary is present +REGRESS_INTEROP_CONCH=no +if test -x "$CONCH" ; then + REGRESS_INTEROP_CONCH=yes +fi + +# If PuTTY is present and we are running a PuTTY test, prepare keys and +# configuration +REGRESS_INTEROP_PUTTY=no +if test -x "$PUTTYGEN" -a -x "$PLINK" ; then + REGRESS_INTEROP_PUTTY=yes +fi +case "$SCRIPT" in +*putty*) ;; +*) REGRESS_INTEROP_PUTTY=no ;; +esac + +if test "$REGRESS_INTEROP_PUTTY" = "yes" ; then + mkdir -p ${OBJ}/.putty + + # Add a PuTTY key to authorized_keys + rm -f ${OBJ}/putty.rsa2 + puttygen -t rsa -o ${OBJ}/putty.rsa2 < /dev/null > /dev/null + puttygen -O public-openssh ${OBJ}/putty.rsa2 \ + >> $OBJ/authorized_keys_$USER + + # Convert rsa2 host key to PuTTY format + ${SRC}/ssh2putty.sh 127.0.0.1 $PORT $OBJ/rsa > \ + ${OBJ}/.putty/sshhostkeys + ${SRC}/ssh2putty.sh 127.0.0.1 22 $OBJ/rsa >> \ + ${OBJ}/.putty/sshhostkeys + + # Setup proxied session + mkdir -p ${OBJ}/.putty/sessions + rm -f ${OBJ}/.putty/sessions/localhost_proxy + echo "Hostname=127.0.0.1" >> ${OBJ}/.putty/sessions/localhost_proxy + echo "PortNumber=$PORT" >> ${OBJ}/.putty/sessions/localhost_proxy + echo "ProxyMethod=5" >> ${OBJ}/.putty/sessions/localhost_proxy + echo "ProxyTelnetCommand=sh ${SRC}/sshd-log-wrapper.sh ${SSHD} ${TEST_SSH_LOGFILE} -i -f $OBJ/sshd_proxy" >> ${OBJ}/.putty/sessions/localhost_proxy + + REGRESS_INTEROP_PUTTY=yes +fi + +# create a proxy version of the client config +( + cat $OBJ/ssh_config + echo proxycommand sh ${SRC}/sshd-log-wrapper.sh ${SSHD} ${TEST_SSH_LOGFILE} -i -f $OBJ/sshd_proxy +) > $OBJ/ssh_proxy + +# check proxy config +${SSHD} -t -f $OBJ/sshd_proxy || fatal "sshd_proxy broken" + +start_sshd () +{ + # start sshd + $SUDO ${SSHD} -f $OBJ/sshd_config "$@" -t || fatal "sshd_config broken" + $SUDO ${SSHD} -f $OBJ/sshd_config -e "$@" >>$TEST_SSH_LOGFILE 2>&1 + + trace "wait for sshd" + i=0; + while [ ! -f $PIDFILE -a $i -lt 5 ]; do + i=`expr $i + 1` + sleep $i + done + + test -f $PIDFILE || fatal "no sshd running on port $PORT" +} + +# source test body +. $SCRIPT + +# kill sshd +cleanup +if [ $RESULT -eq 0 ]; then + verbose ok $tid +else + echo failed $tid +fi +exit $RESULT diff --git a/src/regress/usr.bin/ssh/transfer.sh b/src/regress/usr.bin/ssh/transfer.sh new file mode 100644 index 000000000..31cdc0ce3 --- /dev/null +++ b/src/regress/usr.bin/ssh/transfer.sh @@ -0,0 +1,29 @@ +# $OpenBSD: transfer.sh,v 1.1 2002/03/27 00:03:37 markus Exp $ +# Placed in the Public Domain. + +tid="transfer data" + +DATA=/bin/ls +COPY=${OBJ}/copy + +for p in 1 2; do + verbose "$tid: proto $p" + rm -f ${COPY} + ${SSH} -n -q -$p -F $OBJ/ssh_proxy somehost cat ${DATA} > ${COPY} + if [ $? -ne 0 ]; then + fail "ssh cat $DATA failed" + fi + cmp ${DATA} ${COPY} || fail "corrupted copy" + + for s in 10 100 1k 32k 64k 128k 256k; do + trace "proto $p dd-size ${s}" + rm -f ${COPY} + dd if=$DATA obs=${s} 2> /dev/null | \ + ${SSH} -q -$p -F $OBJ/ssh_proxy somehost "cat > ${COPY}" + if [ $? -ne 0 ]; then + fail "ssh cat $DATA failed" + fi + cmp $DATA ${COPY} || fail "corrupted copy" + done +done +rm -f ${COPY} diff --git a/src/regress/usr.bin/ssh/try-ciphers.sh b/src/regress/usr.bin/ssh/try-ciphers.sh new file mode 100644 index 000000000..d1e8eeae7 --- /dev/null +++ b/src/regress/usr.bin/ssh/try-ciphers.sh @@ -0,0 +1,42 @@ +# $OpenBSD: try-ciphers.sh,v 1.11 2007/06/07 19:41:46 pvalchev Exp $ +# Placed in the Public Domain. + +tid="try ciphers" + +ciphers="aes128-cbc 3des-cbc blowfish-cbc cast128-cbc + arcfour128 arcfour256 arcfour + aes192-cbc aes256-cbc rijndael-cbc@lysator.liu.se + aes128-ctr aes192-ctr aes256-ctr" +macs="hmac-sha1 hmac-md5 umac-64@openssh.com hmac-sha1-96 hmac-md5-96" + +for c in $ciphers; do + for m in $macs; do + trace "proto 2 cipher $c mac $m" + verbose "test $tid: proto 2 cipher $c mac $m" + ${SSH} -F $OBJ/ssh_proxy -2 -m $m -c $c somehost true + if [ $? -ne 0 ]; then + fail "ssh -2 failed with mac $m cipher $c" + fi + done +done + +ciphers="3des blowfish" +for c in $ciphers; do + trace "proto 1 cipher $c" + verbose "test $tid: proto 1 cipher $c" + ${SSH} -F $OBJ/ssh_proxy -1 -c $c somehost true + if [ $? -ne 0 ]; then + fail "ssh -1 failed with cipher $c" + fi +done + +echo "Ciphers acss@openssh.org" >> $OBJ/sshd_proxy +c=acss@openssh.org +for m in $macs; do + trace "proto 2 $c mac $m" + verbose "test $tid: proto 2 cipher $c mac $m" + ${SSH} -F $OBJ/ssh_proxy -2 -m $m -c $c somehost true + if [ $? -ne 0 ]; then + fail "ssh -2 failed with mac $m cipher $c" + fi +done diff --git a/src/regress/usr.bin/ssh/yes-head.sh b/src/regress/usr.bin/ssh/yes-head.sh new file mode 100644 index 000000000..f213f6863 --- /dev/null +++ b/src/regress/usr.bin/ssh/yes-head.sh @@ -0,0 +1,15 @@ +# $OpenBSD: yes-head.sh,v 1.4 2002/03/15 13:08:56 markus Exp $ +# Placed in the Public Domain. + +tid="yes pipe head" + +for p in 1 2; do + lines=`${SSH} -$p -F $OBJ/ssh_proxy thishost 'yes | head -2000' | (sleep 3 ; wc -l)` + if [ $? -ne 0 ]; then + fail "yes|head test failed" + lines = 0; + fi + if [ $lines -ne 2000 ]; then + fail "yes|head returns $lines lines instead of 2000" + fi +done diff --git a/src/regress/usr.bin/tsort/CVS/Entries b/src/regress/usr.bin/tsort/CVS/Entries new file mode 100644 index 000000000..b865ed2bc --- /dev/null +++ b/src/regress/usr.bin/tsort/CVS/Entries @@ -0,0 +1,10 @@ +/Makefile/1.7/Mon Sep 2 20:01:44 2002// +/build-tree/1.1.1.1/Thu Feb 22 18:12:42 2001// +/normalize-cycles/1.1.1.1/Thu Feb 22 18:12:40 2001// +/pairs1/1.1.1.1/Thu Feb 22 18:12:42 2001// +/pairs2/1.1.1.1/Thu Feb 22 18:12:42 2001// +/pairs5/1.1/Thu Jul 12 14:06:03 2001// +/pairs6/1.2/Mon Jul 9 11:52:44 2001// +/t2.canonical/1.2/Wed Mar 7 16:20:43 2001// +/tsort-check/1.4/Thu Jul 12 14:06:04 2001// +D diff --git a/src/regress/usr.bin/tsort/CVS/Repository b/src/regress/usr.bin/tsort/CVS/Repository new file mode 100644 index 000000000..4a1bc7259 --- /dev/null +++ b/src/regress/usr.bin/tsort/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/tsort diff --git a/src/regress/usr.bin/tsort/CVS/Root b/src/regress/usr.bin/tsort/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/tsort/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/tsort/Makefile b/src/regress/usr.bin/tsort/Makefile new file mode 100644 index 000000000..2b7da1ccf --- /dev/null +++ b/src/regress/usr.bin/tsort/Makefile @@ -0,0 +1,52 @@ +# $OpenBSD: Makefile,v 1.7 2002/09/02 20:01:44 avsm Exp $ + +REGRESS_TARGETS=t1 t2 t3 t4 t5 t6 +REGRESS_SLOW_TARGETS=t4 + +t1: t1.out + perl ${.CURDIR}/tsort-check t1.out ${.CURDIR}/pairs1 + +t2: t2.out + perl ${.CURDIR}/normalize-cycles $@ 2>&1 + +t2.out: + cat ${.CURDIR}/pairs1 ${.CURDIR}/pairs2 |tsort -l >/dev/null 2>$@ + +t3.out: pairs3 + tsort $@ 2>&1 + +t4.out: pairs4 + tsort $@ 2>&1 + +t5.out: pairs5 + tsort <${.CURDIR}/pairs5 >$@ 2>&1 + +t6.out: pairs6 + tsort <${.CURDIR}/pairs6 >$@ 2>&1 + +pairs3: + perl ${.CURDIR}/build-tree 4 8 >$@ + +pairs4: + perl ${.CURDIR}/build-tree 5 10 >$@ + +.PHONY: t1 t2 +CLEANFILES+=t1.out t2.out t3.out t4.out t5.out t6.out pairs3 pairs4 + +.include + diff --git a/src/regress/usr.bin/tsort/build-tree b/src/regress/usr.bin/tsort/build-tree new file mode 100644 index 000000000..c38ab10db --- /dev/null +++ b/src/regress/usr.bin/tsort/build-tree @@ -0,0 +1,28 @@ +#!/usr/bin/perl + +# Written by Marc Espie, 2001 +# Public domain + +# This does build tree of a given depth and breadth, to check on tsort's +# efficiency + +$depth=shift; +$breadth=shift; + + +sub build_tree +{ + my $root = shift; + my $depth = shift; + + my $leaf = 'a'; + my $i; + + for ($i = 0; $i < $breadth; $i++) { + print "$root $root$leaf\n"; + build_tree($root.$leaf, $depth-1) if $depth > 0; + $leaf++; + } +} + +build_tree('a', $depth) if $depth > 0; diff --git a/src/regress/usr.bin/tsort/normalize-cycles b/src/regress/usr.bin/tsort/normalize-cycles new file mode 100644 index 000000000..1188ba785 --- /dev/null +++ b/src/regress/usr.bin/tsort/normalize-cycles @@ -0,0 +1,37 @@ +#!/usr/bin/perl + +# Written by Marc Espie, 2001. +# Public domain + +@cycle = (); + +sub show_cycle() +{ + return if @cycle == 0; + $min = 'zzzzz'; + for ($i = 0; $i < @cycle; $i++) { + if ($cycle[$i] lt $min) { + $minindex = $i; + $min = $cycle[$i]; + } + } + @ordered=(); + for ($i = $minindex; $i <@cycle; $i++) { + push(@ordered, $cycle[$i]); + } + for ($i = 0; $i < $minindex; $i++) { + push(@ordered, $cycle[$i]); + } + print join(',', @ordered), "\n"; +} + +while (<>) { + chomp; + if ($_ eq 'tsort: cycle in data') { + show_cycle(); + @cycle = (); + } else { + m/^tsort:\s+/ and push(@cycle, $'); + } +} +show_cycle(); diff --git a/src/regress/usr.bin/tsort/obj b/src/regress/usr.bin/tsort/obj new file mode 120000 index 000000000..842ca7e9b --- /dev/null +++ b/src/regress/usr.bin/tsort/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.bin/tsort \ No newline at end of file diff --git a/src/regress/usr.bin/tsort/pairs1 b/src/regress/usr.bin/tsort/pairs1 new file mode 100644 index 000000000..c281d23b5 --- /dev/null +++ b/src/regress/usr.bin/tsort/pairs1 @@ -0,0 +1,2956 @@ +accept.o accept.o +access.o access.o +acct.o acct.o +adjtime.o adjtime.o +bind.o bind.o +chdir.o chdir.o +chflags.o chflags.o +chmod.o chmod.o +chown.o chown.o +chroot.o chroot.o +clock_gettime.o clock_gettime.o +clock_settime.o clock_settime.o +clock_getres.o clock_getres.o +close.o close.o +connect.o connect.o +dup.o dup.o +dup2.o dup2.o +execve.o execve.o +fchdir.o fchdir.o +fchflags.o fchflags.o +fchmod.o fchmod.o +fchown.o fchown.o +fcntl.o fcntl.o +fhopen.o fhopen.o +fhstat.o fhstat.o +fhstatfs.o fhstatfs.o +flock.o flock.o +fpathconf.o fpathconf.o +fstat.o fstat.o +fstatfs.o fstatfs.o +fsync.o fsync.o +futimes.o futimes.o +getdirentries.o getdirentries.o +getegid.o getegid.o +geteuid.o geteuid.o +getfh.o getfh.o +getfsstat.o getfsstat.o +getgid.o getgid.o +getgroups.o getgroups.o +getitimer.o getitimer.o +getpeername.o getpeername.o +getpgid.o getpgid.o +getpgrp.o getpgrp.o +getpid.o getpid.o +getppid.o getppid.o +getpriority.o getpriority.o +getrlimit.o getrlimit.o +getrusage.o getrusage.o +getsid.o getsid.o +getsockname.o getsockname.o +getsockopt.o getsockopt.o +gettimeofday.o gettimeofday.o +getuid.o getuid.o +issetugid.o issetugid.o +ioctl.o ioctl.o +kill.o kill.o +kevent.o kevent.o +kqueue.o kqueue.o +ktrace.o ktrace.o +lchown.o lchown.o +lfs_bmapv.o lfs_bmapv.o +lfs_markv.o lfs_markv.o +lfs_segclean.o lfs_segclean.o +lfs_segwait.o lfs_segwait.o +link.o link.o +listen.o listen.o +lstat.o lstat.o +madvise.o madvise.o +mincore.o mincore.o +minherit.o minherit.o +mkdir.o mkdir.o +mkfifo.o mkfifo.o +mknod.o mknod.o +mlock.o mlock.o +mount.o mount.o +mprotect.o mprotect.o +msgctl.o msgctl.o +msgget.o msgget.o +msgrcv.o msgrcv.o +msgsnd.o msgsnd.o +msync.o msync.o +munlock.o munlock.o +munmap.o munmap.o +nanosleep.o nanosleep.o +nfssvc.o nfssvc.o +ntp_gettime.o ntp_gettime.o +ntp_adjtime.o ntp_adjtime.o +open.o open.o +pathconf.o pathconf.o +pipe.o pipe.o +poll.o poll.o +profil.o profil.o +quotactl.o quotactl.o +read.o read.o +readlink.o readlink.o +readv.o readv.o +reboot.o reboot.o +recvfrom.o recvfrom.o +recvmsg.o recvmsg.o +rename.o rename.o +revoke.o revoke.o +rfork.o rfork.o +rmdir.o rmdir.o +select.o select.o +semget.o semget.o +semop.o semop.o +sendmsg.o sendmsg.o +sendto.o sendto.o +setegid.o setegid.o +seteuid.o seteuid.o +setgid.o setgid.o +setgroups.o setgroups.o +setitimer.o setitimer.o +setpgid.o setpgid.o +setpriority.o setpriority.o +setrlimit.o setrlimit.o +setsid.o setsid.o +setsockopt.o setsockopt.o +settimeofday.o settimeofday.o +setuid.o setuid.o +shmat.o shmat.o +shmctl.o shmctl.o +shmdt.o shmdt.o +shmget.o shmget.o +shutdown.o shutdown.o +sigaction.o sigaction.o +sigaltstack.o sigaltstack.o +socket.o socket.o +socketpair.o socketpair.o +stat.o stat.o +statfs.o statfs.o +swapon.o swapon.o +swapctl.o swapctl.o +symlink.o symlink.o +sync.o sync.o +sysarch.o sysarch.o +umask.o umask.o +undelete.o undelete.o +unlink.o unlink.o +unmount.o unmount.o +utimes.o utimes.o +vadvise.o vadvise.o +wait4.o wait4.o +write.o write.o +writev.o writev.o +xfspioctl.o xfspioctl.o +__semctl.o __semctl.o +__syscall.o __syscall.o +__sysctl.o __sysctl.o +_exit.o _exit.o +_getlogin.o _getlogin.o +_setlogin.o _setlogin.o +_ptrace.o _ptrace.o +bt_close.o bt_close.o +bt_conv.o bt_conv.o +bt_debug.o bt_debug.o +bt_delete.o bt_delete.o +bt_get.o bt_get.o +bt_open.o bt_open.o +bt_overflow.o bt_overflow.o +bt_page.o bt_page.o +bt_put.o bt_put.o +bt_search.o bt_search.o +bt_seq.o bt_seq.o +bt_split.o bt_split.o +bt_utils.o bt_utils.o +db.o db.o +hash.o hash.o +hash_bigkey.o hash_bigkey.o +hash_buf.o hash_buf.o +hash_func.o hash_func.o +hash_log2.o hash_log2.o +hash_page.o hash_page.o +hsearch.o hsearch.o +ndbm.o ndbm.o +mpool.o mpool.o +rec_close.o rec_close.o +rec_delete.o rec_delete.o +rec_get.o rec_get.o +rec_open.o rec_open.o +rec_put.o rec_put.o +rec_search.o rec_search.o +rec_seq.o rec_seq.o +rec_utils.o rec_utils.o +__setreuid.o __setreuid.o +__setregid.o __setregid.o +creat.o creat.o +getdtablesize.o getdtablesize.o +gethostid.o gethostid.o +getwd.o getwd.o +killpg.o killpg.o +sethostid.o sethostid.o +setpgrp.o setpgrp.o +setregid.o setregid.o +setreuid.o setreuid.o +setrgid.o setrgid.o +setruid.o setruid.o +sigcompat.o sigcompat.o +alarm.o alarm.o +assert.o assert.o +auth_subr.o auth_subr.o +authenticate.o authenticate.o +login_cap.o login_cap.o +basename.o basename.o +clock.o clock.o +closedir.o closedir.o +confstr.o confstr.o +ctermid.o ctermid.o +ctype_.o ctype_.o +daemon.o daemon.o +devname.o devname.o +dirname.o dirname.o +disklabel.o disklabel.o +elf_hash.o elf_hash.o +err.o err.o +errx.o errx.o +errlist.o errlist.o +errno.o errno.o +exec.o exec.o +fnmatch.o fnmatch.o +fstab.o fstab.o +ftok.o ftok.o +fts.o fts.o +getbsize.o getbsize.o +getcap.o getcap.o +getcwd.o getcwd.o +getdomainname.o getdomainname.o +getgrent.o getgrent.o +getgrouplist.o getgrouplist.o +gethostname.o gethostname.o +getloadavg.o getloadavg.o +getlogin.o getlogin.o +getmntinfo.o getmntinfo.o +getnetgrent.o getnetgrent.o +getpagesize.o getpagesize.o +getpwent.o getpwent.o +getttyent.o getttyent.o +getusershell.o getusershell.o +glob.o glob.o +initgroups.o initgroups.o +isatty.o isatty.o +isctype.o isctype.o +lockf.o lockf.o +login_cap.o login_cap.o +nice.o nice.o +nlist.o nlist.o +opendir.o opendir.o +pause.o pause.o +popen.o popen.o +psignal.o psignal.o +pw_dup.o pw_dup.o +pwcache.o pwcache.o +raise.o raise.o +readdir.o readdir.o +readpassphrase.o readpassphrase.o +rewinddir.o rewinddir.o +scandir.o scandir.o +seekdir.o seekdir.o +setdomainname.o setdomainname.o +sethostname.o sethostname.o +setjmperr.o setjmperr.o +setmode.o setmode.o +setproctitle.o setproctitle.o +siginterrupt.o siginterrupt.o +siglist.o siglist.o +signal.o signal.o +signame.o signame.o +sigsetops.o sigsetops.o +sleep.o sleep.o +strtofflags.o strtofflags.o +sysconf.o sysconf.o +sysctl.o sysctl.o +syslog.o syslog.o +telldir.o telldir.o +time.o time.o +times.o times.o +timezone.o timezone.o +tolower_.o tolower_.o +ttyname.o ttyname.o +ttyslot.o ttyslot.o +toupper_.o toupper_.o +ualarm.o ualarm.o +uname.o uname.o +unvis.o unvis.o +usleep.o usleep.o +utime.o utime.o +valloc.o valloc.o +vis.o vis.o +wait.o wait.o +wait3.o wait3.o +waitpid.o waitpid.o +warn.o warn.o +warnx.o warnx.o +vwarn.o vwarn.o +vwarnx.o vwarnx.o +verr.o verr.o +verrx.o verrx.o +_err.o _err.o +_errx.o _errx.o +_sys_errlist.o _sys_errlist.o +_sys_nerr.o _sys_nerr.o +_sys_siglist.o _sys_siglist.o +_verr.o _verr.o +_verrx.o _verrx.o +_vwarn.o _vwarn.o +_vwarnx.o _vwarnx.o +_warn.o _warn.o +_warnx.o _warnx.o +_setjmp.o _setjmp.o +alloca.o alloca.o +fabs.o fabs.o +frexp.o frexp.o +infinity.o infinity.o +isinf.o isinf.o +ldexp.o ldexp.o +modf.o modf.o +setjmp.o setjmp.o +sigsetjmp.o sigsetjmp.o +flt_rounds.o flt_rounds.o +fpgetmask.o fpgetmask.o +fpgetround.o fpgetround.o +fpgetsticky.o fpgetsticky.o +fpsetmask.o fpsetmask.o +fpsetround.o fpsetround.o +fpsetsticky.o fpsetsticky.o +divsi3.o divsi3.o +fixdfsi.o fixdfsi.o +fixunsdfsi.o fixunsdfsi.o +udivsi3.o udivsi3.o +cast.o cast.o +crypt.o crypt.o +morecrypt.o morecrypt.o +md5crypt.o md5crypt.o +arc4random.o arc4random.o +blowfish.o blowfish.o +bcrypt.o bcrypt.o +skipjack.o skipjack.o +gmon.o gmon.o +mcount.o mcount.o +sha1.o sha1.o +sha1hl.o sha1hl.o +rmd160.o rmd160.o +rmd160hl.o rmd160hl.o +_def_messages.o _def_messages.o +_def_monetary.o _def_monetary.o +_def_numeric.o _def_numeric.o +_def_time.o _def_time.o +localeconv.o localeconv.o +nl_langinfo.o nl_langinfo.o +setlocale.o setlocale.o +md4c.o md4c.o +md5c.o md5c.o +md4hl.o md4hl.o +md5hl.o md5hl.o +base64.o base64.o +freeaddrinfo.o freeaddrinfo.o +gai_strerror.o gai_strerror.o +getaddrinfo.o getaddrinfo.o +gethostnamadr.o gethostnamadr.o +getifaddrs.o getifaddrs.o +getnameinfo.o getnameinfo.o +getnetbyaddr.o getnetbyaddr.o +getnetbyname.o getnetbyname.o +getnetent.o getnetent.o +getnetnamadr.o getnetnamadr.o +getproto.o getproto.o +getprotoent.o getprotoent.o +getprotoname.o getprotoname.o +getservbyname.o getservbyname.o +getservbyport.o getservbyport.o +getservent.o getservent.o +herror.o herror.o +if_indextoname.o if_indextoname.o +if_nameindex.o if_nameindex.o +if_nametoindex.o if_nametoindex.o +inet_addr.o inet_addr.o +inet_lnaof.o inet_lnaof.o +inet_makeaddr.o inet_makeaddr.o +inet_neta.o inet_neta.o +inet_netof.o inet_netof.o +inet_network.o inet_network.o +inet_net_ntop.o inet_net_ntop.o +inet_net_pton.o inet_net_pton.o +inet_ntoa.o inet_ntoa.o +inet_ntop.o inet_ntop.o +inet_pton.o inet_pton.o +ipx_addr.o ipx_addr.o +ipx_ntoa.o ipx_ntoa.o +iso_addr.o iso_addr.o +linkaddr.o linkaddr.o +ns_addr.o ns_addr.o +ns_ntoa.o ns_ntoa.o +nsap_addr.o nsap_addr.o +net_addrcmp.o net_addrcmp.o +rcmd.o rcmd.o +rresvport.o rresvport.o +recv.o recv.o +res_comp.o res_comp.o +res_data.o res_data.o +res_debug.o res_debug.o +res_init.o res_init.o +res_mkquery.o res_mkquery.o +res_query.o res_query.o +res_random.o res_random.o +res_send.o res_send.o +send.o send.o +sethostent.o sethostent.o +ethers.o ethers.o +rcmdsh.o rcmdsh.o +ip6opt.o ip6opt.o +rthdr.o rthdr.o +vars6.o vars6.o +htonl.o htonl.o +htons.o htons.o +ntohl.o ntohl.o +ntohs.o ntohs.o +catclose.o catclose.o +catgets.o catgets.o +catopen.o catopen.o +_catclose.o _catclose.o +_catgets.o _catgets.o +_catopen.o _catopen.o +adddi3.o adddi3.o +anddi3.o anddi3.o +ashldi3.o ashldi3.o +ashrdi3.o ashrdi3.o +cmpdi2.o cmpdi2.o +divdi3.o divdi3.o +fixdfdi.o fixdfdi.o +fixsfdi.o fixsfdi.o +fixunsdfdi.o fixunsdfdi.o +fixunssfdi.o fixunssfdi.o +floatdidf.o floatdidf.o +floatdisf.o floatdisf.o +floatunsdidf.o floatunsdidf.o +iordi3.o iordi3.o +lshldi3.o lshldi3.o +lshrdi3.o lshrdi3.o +moddi3.o moddi3.o +muldi3.o muldi3.o +negdi2.o negdi2.o +notdi2.o notdi2.o +qdivrem.o qdivrem.o +subdi3.o subdi3.o +ucmpdi2.o ucmpdi2.o +udivdi3.o udivdi3.o +umoddi3.o umoddi3.o +xordi3.o xordi3.o +regcomp.o regcomp.o +regerror.o regerror.o +regexec.o regexec.o +regfree.o regfree.o +auth_none.o auth_none.o +auth_unix.o auth_unix.o +authunix_prot.o authunix_prot.o +bindresvport.o bindresvport.o +clnt_generic.o clnt_generic.o +clnt_perror.o clnt_perror.o +clnt_raw.o clnt_raw.o +clnt_simple.o clnt_simple.o +clnt_tcp.o clnt_tcp.o +clnt_udp.o clnt_udp.o +rpc_dtablesize.o rpc_dtablesize.o +get_myaddress.o get_myaddress.o +getrpcent.o getrpcent.o +getrpcport.o getrpcport.o +pmap_clnt.o pmap_clnt.o +pmap_getmaps.o pmap_getmaps.o +pmap_getport.o pmap_getport.o +pmap_prot.o pmap_prot.o +pmap_prot2.o pmap_prot2.o +pmap_rmt.o pmap_rmt.o +rpc_prot.o rpc_prot.o +rpc_commondata.o rpc_commondata.o +rpc_callmsg.o rpc_callmsg.o +svc.o svc.o +svc_auth.o svc_auth.o +svc_auth_unix.o svc_auth_unix.o +svc_raw.o svc_raw.o +svc_run.o svc_run.o +svc_simple.o svc_simple.o +svc_tcp.o svc_tcp.o +svc_udp.o svc_udp.o +xdr.o xdr.o +xdr_array.o xdr_array.o +xdr_float.o xdr_float.o +xdr_mem.o xdr_mem.o +xdr_rec.o xdr_rec.o +xdr_reference.o xdr_reference.o +xdr_stdio.o xdr_stdio.o +asprintf.o asprintf.o +clrerr.o clrerr.o +fclose.o fclose.o +fdopen.o fdopen.o +feof.o feof.o +ferror.o ferror.o +fflush.o fflush.o +fgetc.o fgetc.o +fgetln.o fgetln.o +fgetpos.o fgetpos.o +fgets.o fgets.o +fileno.o fileno.o +findfp.o findfp.o +flags.o flags.o +fopen.o fopen.o +fprintf.o fprintf.o +fpurge.o fpurge.o +fputc.o fputc.o +fputs.o fputs.o +fread.o fread.o +freopen.o freopen.o +fscanf.o fscanf.o +fseek.o fseek.o +fsetpos.o fsetpos.o +ftell.o ftell.o +funopen.o funopen.o +fvwrite.o fvwrite.o +fwalk.o fwalk.o +fwrite.o fwrite.o +getc.o getc.o +getchar.o getchar.o +gets.o gets.o +getw.o getw.o +makebuf.o makebuf.o +mktemp.o mktemp.o +perror.o perror.o +printf.o printf.o +putc.o putc.o +putchar.o putchar.o +puts.o puts.o +putw.o putw.o +refill.o refill.o +remove.o remove.o +rewind.o rewind.o +rget.o rget.o +scanf.o scanf.o +setbuf.o setbuf.o +setbuffer.o setbuffer.o +setvbuf.o setvbuf.o +snprintf.o snprintf.o +sprintf.o sprintf.o +sscanf.o sscanf.o +stdio.o stdio.o +tempnam.o tempnam.o +tmpfile.o tmpfile.o +tmpnam.o tmpnam.o +ungetc.o ungetc.o +vasprintf.o vasprintf.o +vfprintf.o vfprintf.o +vfscanf.o vfscanf.o +vprintf.o vprintf.o +vscanf.o vscanf.o +vsnprintf.o vsnprintf.o +vsprintf.o vsprintf.o +vsscanf.o vsscanf.o +wbuf.o wbuf.o +wsetup.o wsetup.o +flockfile.o flockfile.o +a64l.o a64l.o +abort.o abort.o +atexit.o atexit.o +atoi.o atoi.o +atof.o atof.o +atol.o atol.o +bsearch.o bsearch.o +calloc.o calloc.o +cfree.o cfree.o +exit.o exit.o +getenv.o getenv.o +getopt.o getopt.o +getsubopt.o getsubopt.o +heapsort.o heapsort.o +l64a.o l64a.o +malloc.o malloc.o +merge.o merge.o +multibyte.o multibyte.o +putenv.o putenv.o +qsort.o qsort.o +radixsort.o radixsort.o +rand.o rand.o +random.o random.o +realpath.o realpath.o +setenv.o setenv.o +strtod.o strtod.o +strtol.o strtol.o +strtoq.o strtoq.o +strtoul.o strtoul.o +strtouq.o strtouq.o +system.o system.o +tfind.o tfind.o +tsearch.o tsearch.o +_rand48.o _rand48.o +drand48.o drand48.o +erand48.o erand48.o +jrand48.o jrand48.o +lcong48.o lcong48.o +lrand48.o lrand48.o +mrand48.o mrand48.o +nrand48.o nrand48.o +seed48.o seed48.o +srand48.o srand48.o +qabs.o qabs.o +qdiv.o qdiv.o +abs.o abs.o +div.o div.o +labs.o labs.o +ldiv.o ldiv.o +bm.o bm.o +memccpy.o memccpy.o +strcasecmp.o strcasecmp.o +strcoll.o strcoll.o +strdup.o strdup.o +strerror.o strerror.o +strlcat.o strlcat.o +strmode.o strmode.o +strsignal.o strsignal.o +strtok.o strtok.o +strxfrm.o strxfrm.o +__strerror.o __strerror.o +__strsignal.o __strsignal.o +bcmp.o bcmp.o +bcopy.o bcopy.o +bzero.o bzero.o +ffs.o ffs.o +index.o index.o +memchr.o memchr.o +memcmp.o memcmp.o +memset.o memset.o +rindex.o rindex.o +strcat.o strcat.o +strcmp.o strcmp.o +strcpy.o strcpy.o +strcspn.o strcspn.o +strlcpy.o strlcpy.o +strlen.o strlen.o +strncat.o strncat.o +strncmp.o strncmp.o +strncpy.o strncpy.o +strpbrk.o strpbrk.o +strsep.o strsep.o +strspn.o strspn.o +strstr.o strstr.o +swab.o swab.o +memcpy.o memcpy.o +memmove.o memmove.o +strchr.o strchr.o +strrchr.o strrchr.o +cfgetispeed.o cfgetispeed.o +cfgetospeed.o cfgetospeed.o +cfmakeraw.o cfmakeraw.o +cfsetispeed.o cfsetispeed.o +cfsetospeed.o cfsetospeed.o +cfsetspeed.o cfsetspeed.o +tcdrain.o tcdrain.o +tcflow.o tcflow.o +tcflush.o tcflush.o +tcgetattr.o tcgetattr.o +tcgetpgrp.o tcgetpgrp.o +tcsendbreak.o tcsendbreak.o +tcsetattr.o tcsetattr.o +tcsetpgrp.o tcsetpgrp.o +thread_fd.o thread_fd.o +unithread_storage.o unithread_storage.o +asctime.o asctime.o +difftime.o difftime.o +localtime.o localtime.o +strftime.o strftime.o +strptime.o strptime.o +Ovfork.o Ovfork.o +brk.o brk.o +cerror.o cerror.o +exect.o exect.o +fork.o fork.o +sbrk.o sbrk.o +sigpending.o sigpending.o +sigprocmask.o sigprocmask.o +sigreturn.o sigreturn.o +sigsuspend.o sigsuspend.o +syscall.o syscall.o +ftruncate.o ftruncate.o +lseek.o lseek.o +mmap.o mmap.o +ptrace.o ptrace.o +semctl.o semctl.o +truncate.o truncate.o +timer_create.o timer_create.o +timer_delete.o timer_delete.o +timer_getoverrun.o timer_getoverrun.o +timer_gettime.o timer_gettime.o +timer_settime.o timer_settime.o +pread.o pread.o +preadv.o preadv.o +pwrite.o pwrite.o +pwritev.o pwritev.o +ypmatch_cache.o ypmatch_cache.o +yp_bind.o yp_bind.o +yp_get_default_domain.o yp_get_default_domain.o +yp_first.o yp_first.o +yp_all.o yp_all.o +yp_order.o yp_order.o +yp_master.o yp_master.o +yp_maplist.o yp_maplist.o +yperr_string.o yperr_string.o +ypprot_err.o ypprot_err.o +_yp_check.o _yp_check.o +xdr_domainname.o xdr_domainname.o +xdr_keydat.o xdr_keydat.o +xdr_mapname.o xdr_mapname.o +xdr_peername.o xdr_peername.o +xdr_valdat.o xdr_valdat.o +xdr_ypbind_binding.o xdr_ypbind_binding.o +xdr_ypbind_resp.o xdr_ypbind_resp.o +xdr_ypbind_resptype.o xdr_ypbind_resptype.o +xdr_ypbind_setdom.o xdr_ypbind_setdom.o +xdr_ypmaplist.o xdr_ypmaplist.o +xdr_ypreq_key.o xdr_ypreq_key.o +xdr_ypreq_nokey.o xdr_ypreq_nokey.o +xdr_ypresp_all.o xdr_ypresp_all.o +xdr_ypresp_key_val.o xdr_ypresp_key_val.o +xdr_ypresp_maplist.o xdr_ypresp_maplist.o +xdr_ypresp_master.o xdr_ypresp_master.o +xdr_ypresp_order.o xdr_ypresp_order.o +xdr_ypresp_val.o xdr_ypresp_val.o +xdr_ypstat.o xdr_ypstat.o +bcrypt.o blowfish.o +bcrypt.o blowfish.o +bcrypt.o blowfish.o +bcrypt.o blowfish.o +md4hl.o md4c.o +md4hl.o md4c.o +md4hl.o md4c.o +md5crypt.o md5c.o +md5hl.o md5c.o +md5crypt.o md5c.o +md5hl.o md5c.o +md5crypt.o md5c.o +md5hl.o md5c.o +rmd160hl.o rmd160.o +rmd160hl.o rmd160.o +rmd160hl.o rmd160.o +sha1hl.o sha1.o +sha1hl.o sha1.o +sha1hl.o sha1.o +nl_langinfo.o _def_messages.o +localeconv.o _def_monetary.o +localeconv.o _def_numeric.o +nl_langinfo.o _def_numeric.o +nl_langinfo.o _def_time.o +strptime.o _def_time.o +hash.o hash_page.o +inet_net_pton.o assert.o +res_debug.o base64.o +hash_page.o hash_bigkey.o +hash_page.o hash_bigkey.o +hash.o hash_bigkey.o +hash.o hash_bigkey.o +hash_page.o hash_bigkey.o +bt_open.o bt_close.o +rec_close.o bt_close.o +rec_open.o bt_close.o +bt_delete.o bt_utils.o +bt_put.o bt_utils.o +bt_search.o bt_utils.o +bt_seq.o bt_utils.o +bt_open.o bt_utils.o +bt_open.o bt_utils.o +bt_open.o bt_delete.o +bt_put.o bt_delete.o +bt_delete.o bt_page.o +bt_overflow.o bt_page.o +bt_open.o bt_get.o +bt_overflow.o bt_page.o +bt_split.o bt_page.o +db.o bt_open.o +rec_open.o bt_open.o +bt_open.o bt_conv.o +bt_open.o bt_conv.o +bt_open.o bt_put.o +bt_delete.o bt_utils.o +bt_get.o bt_utils.o +bt_seq.o bt_utils.o +bt_delete.o bt_search.o +bt_get.o bt_search.o +bt_put.o bt_search.o +bt_seq.o bt_search.o +bt_open.o bt_seq.o +bt_put.o bt_seq.o +bt_put.o bt_split.o +bt_open.o bt_close.o +rec_close.o bt_close.o +hash.o hash_buf.o +hash.o hash_buf.o +fixunsdfdi.o cmpdi2.o +fixunssfdi.o cmpdi2.o +hash.o hash_func.o +hash.o hash_page.o +mpool.o divdi3.o +qdiv.o divdi3.o +scandir.o divdi3.o +strtoq.o divdi3.o +res_mkquery.o res_comp.o +getnetnamadr.o res_comp.o +res_debug.o res_comp.o +erand48.o _rand48.o +jrand48.o _rand48.o +lrand48.o _rand48.o +mrand48.o _rand48.o +nrand48.o _rand48.o +vfprintf.o strtod.o +hash.o hash_bigkey.o +hash.o hash_bigkey.o +setenv.o getenv.o +fixdfdi.o fixunsdfdi.o +fixsfdi.o fixunssfdi.o +strtod.o flt_rounds.o +hash_bigkey.o hash_buf.o +hash_page.o hash_buf.o +db.o hash.o +hsearch.o hash.o +ndbm.o hash.o +gethostnamadr.o res_query.o +hash.o hash_page.o +strtod.o infinity.o +hash.o hash_log2.o +hash_page.o hash_log2.o +qdiv.o moddi3.o +strtoq.o moddi3.o +fts.o opendir.o +bt_delete.o bt_overflow.o +rec_delete.o bt_overflow.o +bt_utils.o bt_overflow.o +rec_utils.o bt_overflow.o +bt_put.o bt_overflow.o +rec_put.o bt_overflow.o +gethostnamadr.o res_debug.o +gethostnamadr.o res_debug.o +hash.o hash_page.o +res_mkquery.o res_comp.o +res_mkquery.o res_comp.o +res_send.o res_comp.o +divdi3.o qdivrem.o +moddi3.o qdivrem.o +udivdi3.o qdivrem.o +umoddi3.o qdivrem.o +lcong48.o _rand48.o +seed48.o _rand48.o +srand48.o _rand48.o +lcong48.o _rand48.o +seed48.o _rand48.o +srand48.o _rand48.o +drand48.o _rand48.o +lcong48.o _rand48.o +lrand48.o _rand48.o +mrand48.o _rand48.o +seed48.o _rand48.o +srand48.o _rand48.o +rec_open.o rec_close.o +rec_open.o rec_delete.o +rec_put.o rec_delete.o +rec_open.o rec_get.o +rec_open.o rec_get.o +rec_get.o rec_put.o +db.o rec_open.o +rec_open.o rec_put.o +rec_get.o rec_utils.o +rec_put.o rec_utils.o +rec_seq.o rec_utils.o +rec_delete.o rec_search.o +rec_get.o rec_search.o +rec_put.o rec_search.o +rec_seq.o rec_search.o +rec_open.o rec_seq.o +rec_open.o rec_close.o +rec_open.o rec_get.o +hash_page.o hash_buf.o +sethostent.o res_send.o +getaddrinfo.o res_comp.o +res_mkquery.o res_random.o +res_query.o res_send.o +assert.o findfp.o +auth_unix.o findfp.o +authenticate.o findfp.o +clnt_perror.o findfp.o +clnt_tcp.o findfp.o +clnt_udp.o findfp.o +getchar.o findfp.o +getopt.o findfp.o +gets.o findfp.o +mpool.o findfp.o +printf.o findfp.o +putchar.o findfp.o +puts.o findfp.o +rcmd.o findfp.o +rcmdsh.o findfp.o +res_debug.o findfp.o +scanf.o findfp.o +svc_simple.o findfp.o +svc_tcp.o findfp.o +svc_udp.o findfp.o +verr.o findfp.o +verrx.o findfp.o +vprintf.o findfp.o +vscanf.o findfp.o +vwarn.o findfp.o +vwarnx.o findfp.o +xdr.o findfp.o +xdr_array.o findfp.o +xdr_rec.o findfp.o +xdr_reference.o findfp.o +yp_bind.o findfp.o +fdopen.o stdio.o +findfp.o stdio.o +fopen.o stdio.o +freopen.o stdio.o +rewinddir.o telldir.o +seekdir.o telldir.o +semctl.o __semctl.o +setregid.o __setregid.o +setrgid.o __setregid.o +setreuid.o __setreuid.o +setruid.o __setreuid.o +fdopen.o flags.o +fopen.o flags.o +freopen.o flags.o +fclose.o fflush.o +findfp.o fflush.o +freopen.o fflush.o +fseek.o fflush.o +ftell.o fflush.o +refill.o fflush.o +setvbuf.o fflush.o +ungetc.o fflush.o +fdopen.o findfp.o +fopen.o findfp.o +funopen.o findfp.o +fputs.o fvwrite.o +fwrite.o fvwrite.o +puts.o fvwrite.o +putw.o fvwrite.o +vfprintf.o fvwrite.o +freopen.o findfp.o +fseek.o findfp.o +refill.o findfp.o +ungetc.o findfp.o +wsetup.o findfp.o +fseek.o makebuf.o +refill.o makebuf.o +wsetup.o makebuf.o +hash.o hash_page.o +fdopen.o stdio.o +findfp.o stdio.o +fopen.o stdio.o +freopen.o stdio.o +fgetln.o refill.o +fgets.o refill.o +fread.o refill.o +fseek.o refill.o +rget.o refill.o +vfscanf.o refill.o +fgetc.o rget.o +getc.o rget.o +getchar.o rget.o +getgrent.o rget.o +gets.o rget.o +getttyent.o rget.o +rec_get.o rget.o +fdopen.o stdio.o +findfp.o stdio.o +fopen.o stdio.o +freopen.o stdio.o +fseek.o stdio.o +makebuf.o stdio.o +perror.o __strerror.o +strerror.o __strerror.o +psignal.o __strsignal.o +strsignal.o __strsignal.o +fscanf.o vfscanf.o +scanf.o vfscanf.o +sscanf.o vfscanf.o +vscanf.o vfscanf.o +vsscanf.o vfscanf.o +fputc.o wbuf.o +putc.o wbuf.o +putchar.o wbuf.o +res_debug.o wbuf.o +setvbuf.o makebuf.o +fdopen.o stdio.o +findfp.o stdio.o +fopen.o stdio.o +freopen.o stdio.o +fputc.o wsetup.o +fvwrite.o wsetup.o +putc.o wsetup.o +vfprintf.o wsetup.o +wbuf.o wsetup.o +ftruncate.o __syscall.o +lseek.o __syscall.o +mmap.o __syscall.o +pread.o __syscall.o +preadv.o __syscall.o +pwrite.o __syscall.o +pwritev.o __syscall.o +truncate.o __syscall.o +sysctl.o __sysctl.o +strtouq.o udivdi3.o +vfprintf.o udivdi3.o +strtouq.o umoddi3.o +vfprintf.o umoddi3.o +svc.o svc_auth.o +__strerror.o catclose.o +__strsignal.o catclose.o +_catclose.o catclose.o +_catclose.o catclose.o +__strerror.o catgets.o +__strsignal.o catgets.o +_catgets.o catgets.o +_catgets.o catgets.o +__strerror.o catopen.o +__strsignal.o catopen.o +_catopen.o catopen.o +_catopen.o catopen.o +makebuf.o findfp.o +setvbuf.o findfp.o +auth_subr.o ctype_.o +authenticate.o ctype_.o +base64.o ctype_.o +disklabel.o ctype_.o +ethers.o ctype_.o +getcap.o ctype_.o +gethostnamadr.o ctype_.o +getnetgrent.o ctype_.o +getttyent.o ctype_.o +getusershell.o ctype_.o +inet_addr.o ctype_.o +inet_net_pton.o ctype_.o +inet_network.o ctype_.o +isctype.o ctype_.o +mktemp.o ctype_.o +nsap_addr.o ctype_.o +rcmd.o ctype_.o +readpassphrase.o ctype_.o +regcomp.o ctype_.o +regexec.o ctype_.o +res_comp.o ctype_.o +res_debug.o ctype_.o +res_init.o ctype_.o +res_query.o ctype_.o +setmode.o ctype_.o +strptime.o ctype_.o +strtod.o ctype_.o +strtol.o ctype_.o +strtoq.o ctype_.o +strtoul.o ctype_.o +strtouq.o ctype_.o +vfscanf.o ctype_.o +vis.o ctype_.o +_err.o err.o +_err.o err.o +getnetgrent.o err.o +_errx.o errx.o +_errx.o errx.o +daemon.o _exit.o +exit.o _exit.o +popen.o _exit.o +rcmdsh.o _exit.o +system.o _exit.o +fflush.o fwalk.o +findfp.o fwalk.o +refill.o fwalk.o +getlogin.o _getlogin.o +res_debug.o res_comp.o +getnetnamadr.o getnetbyaddr.o +getnetnamadr.o getnetbyname.o +getaddrinfo.o res_comp.o +gethostnamadr.o res_comp.o +res_debug.o res_comp.o +res_send.o res_comp.o +mcount.o gmon.o +getnetnamadr.o gethostnamadr.o +asctime.o unithread_storage.o +getgrent.o unithread_storage.o +getlogin.o unithread_storage.o +getservbyname.o unithread_storage.o +localtime.o unithread_storage.o +ttyname.o unithread_storage.o +getgrent.o unithread_storage.o +gethostnamadr.o unithread_storage.o +getlogin.o unithread_storage.o +getservbyname.o unithread_storage.o +localtime.o unithread_storage.o +getgrent.o unithread_storage.o +gethostnamadr.o unithread_storage.o +getlogin.o unithread_storage.o +getservbyname.o unithread_storage.o +localtime.o unithread_storage.o +tempnam.o mktemp.o +tmpnam.o mktemp.o +ptrace.o _ptrace.o +res_debug.o res_data.o +res_debug.o res_data.o +clnt_raw.o rpc_prot.o +clnt_tcp.o rpc_prot.o +clnt_udp.o rpc_prot.o +getlogin.o _setlogin.o +svc_auth.o svc_auth_unix.o +svc_auth.o svc_auth_unix.o +__strerror.o errlist.o +_sys_errlist.o errlist.o +_sys_errlist.o errlist.o +_sys_errlist.o errlist.o +__strerror.o errlist.o +_sys_nerr.o errlist.o +_sys_nerr.o errlist.o +_sys_nerr.o errlist.o +__strsignal.o siglist.o +_sys_siglist.o siglist.o +_sys_siglist.o siglist.o +_sys_siglist.o siglist.o +closedir.o thread_fd.o +ftruncate.o thread_fd.o +isatty.o thread_fd.o +lseek.o thread_fd.o +readdir.o thread_fd.o +ttyname.o thread_fd.o +closedir.o thread_fd.o +ftruncate.o thread_fd.o +isatty.o thread_fd.o +lseek.o thread_fd.o +readdir.o thread_fd.o +ttyname.o thread_fd.o +fnmatch.o tolower_.o +inet_net_pton.o tolower_.o +rcmd.o tolower_.o +readpassphrase.o tolower_.o +regcomp.o tolower_.o +res_comp.o tolower_.o +nsap_addr.o toupper_.o +readpassphrase.o toupper_.o +regcomp.o toupper_.o +_verr.o verr.o +_verr.o verr.o +err.o verr.o +_verrx.o verrx.o +_verrx.o verrx.o +errx.o verrx.o +_vwarn.o vwarn.o +_vwarn.o vwarn.o +warn.o vwarn.o +_vwarnx.o vwarnx.o +_vwarnx.o vwarnx.o +warnx.o vwarnx.o +_warn.o warn.o +_warn.o warn.o +devname.o warn.o +getnetgrent.o warn.o +_warnx.o warnx.o +_warnx.o warnx.o +getbsize.o warnx.o +getnetgrent.o warnx.o +getaddrinfo.o _yp_check.o +getgrent.o _yp_check.o +gethostnamadr.o _yp_check.o +getpwent.o _yp_check.o +yp_all.o yp_bind.o +yp_first.o yp_bind.o +yp_maplist.o yp_bind.o +yp_master.o yp_bind.o +yp_order.o yp_bind.o +ypmatch_cache.o yp_bind.o +yp_all.o yp_bind.o +yp_first.o yp_bind.o +yp_maplist.o yp_bind.o +yp_master.o yp_bind.o +yp_order.o yp_bind.o +ypmatch_cache.o yp_bind.o +yp_all.o yp_bind.o +yp_first.o yp_bind.o +yp_maplist.o yp_bind.o +yp_master.o yp_bind.o +yp_order.o yp_bind.o +ypmatch_cache.o yp_bind.o +assert.o abort.o +auth_unix.o abort.o +base64.o abort.o +bt_split.o abort.o +getaddrinfo.o abort.o +getifaddrs.o abort.o +hash.o abort.o +malloc.o abort.o +mpool.o abort.o +svc_tcp.o abort.o +rcmd.o accept.o +svc_tcp.o accept.o +localtime.o access.o +bcrypt.o arc4random.o +clnt_tcp.o arc4random.o +clnt_udp.o arc4random.o +mktemp.o arc4random.o +pmap_rmt.o arc4random.o +res_random.o arc4random.o +localtime.o asctime.o +localtime.o asctime.o +bcrypt.o atoi.o +disklabel.o atoi.o +getaddrinfo.o atoi.o +getrpcent.o atoi.o +rcmd.o atoi.o +res_init.o atoi.o +authenticate.o auth_subr.o +authenticate.o auth_subr.o +authenticate.o auth_subr.o +authenticate.o auth_subr.o +authenticate.o auth_subr.o +authenticate.o auth_subr.o +authenticate.o auth_subr.o +authenticate.o auth_subr.o +authenticate.o auth_subr.o +authenticate.o auth_subr.o +authenticate.o auth_subr.o +authenticate.o auth_subr.o +clnt_raw.o auth_none.o +clnt_tcp.o auth_none.o +clnt_udp.o auth_none.o +pmap_rmt.o auth_unix.o +gethostnamadr.o bcmp.o +ctermid.o bcopy.o +exec.o bcopy.o +getaddrinfo.o bcopy.o +getcap.o bcopy.o +getcwd.o bcopy.o +getgrent.o bcopy.o +gethostnamadr.o bcopy.o +getnetnamadr.o bcopy.o +getpwent.o bcopy.o +linkaddr.o bcopy.o +res_debug.o bcopy.o +res_mkquery.o bcopy.o +res_query.o bcopy.o +rthdr.o bcopy.o +scandir.o bcopy.o +setenv.o bcopy.o +vfprintf.o bcopy.o +crypt.o bcrypt.o +bindresvport.o bind.o +rresvport.o bind.o +svc_tcp.o bind.o +svc_udp.o bind.o +clnt_tcp.o bindresvport.o +clnt_udp.o bindresvport.o +svc_tcp.o bindresvport.o +svc_udp.o bindresvport.o +rresvport.o bindresvport.o +bcrypt.o blowfish.o +malloc.o brk.o +disklabel.o bzero.o +iso_addr.o bzero.o +linkaddr.o bzero.o +rcmd.o bzero.o +res_init.o bzero.o +res_mkquery.o bzero.o +rresvport.o bzero.o +rthdr.o bzero.o +auth_none.o calloc.o +clnt_raw.o calloc.o +clnt_simple.o calloc.o +getrpcent.o calloc.o +getusershell.o calloc.o +hash.o calloc.o +mpool.o calloc.o +res_send.o calloc.o +svc_raw.o calloc.o +disklabel.o getcap.o +login_cap.o getcap.o +login_cap.o getcap.o +disklabel.o getcap.o +login_cap.o getcap.o +login_cap.o getcap.o +disklabel.o getcap.o +disklabel.o getcap.o +login_cap.o getcap.o +login_cap.o getcap.o +daemon.o chdir.o +fts.o chdir.o +realpath.o chdir.o +yp_bind.o clnt_perror.o +pmap_clnt.o clnt_perror.o +pmap_getmaps.o clnt_perror.o +yp_first.o clnt_perror.o +yp_maplist.o clnt_perror.o +yp_master.o clnt_perror.o +yp_order.o clnt_perror.o +ypmatch_cache.o clnt_perror.o +clnt_generic.o clnt_tcp.o +pmap_getmaps.o clnt_tcp.o +yp_all.o clnt_tcp.o +yp_bind.o clnt_tcp.o +pmap_clnt.o clnt_udp.o +clnt_generic.o clnt_udp.o +clnt_simple.o clnt_udp.o +pmap_rmt.o clnt_udp.o +yp_bind.o clnt_udp.o +arc4random.o close.o +auth_subr.o close.o +authenticate.o close.o +bt_close.o close.o +bt_open.o close.o +catopen.o close.o +clnt_simple.o close.o +clnt_tcp.o close.o +clnt_udp.o close.o +closedir.o close.o +daemon.o close.o +freopen.o close.o +fts.o close.o +getaddrinfo.o close.o +getcap.o close.o +gmon.o close.o +hash.o close.o +if_indextoname.o close.o +if_nameindex.o close.o +if_nametoindex.o close.o +localtime.o close.o +login_cap.o close.o +login_cap.o close.o +md4hl.o close.o +md5hl.o close.o +nlist.o close.o +opendir.o close.o +pmap_clnt.o close.o +pmap_getmaps.o close.o +pmap_getport.o close.o +pmap_rmt.o close.o +popen.o close.o +random.o close.o +rcmd.o close.o +rcmdsh.o close.o +readpassphrase.o close.o +realpath.o close.o +rec_close.o close.o +rec_open.o close.o +res_send.o close.o +rmd160hl.o close.o +rresvport.o close.o +sha1hl.o close.o +stdio.o close.o +svc_tcp.o close.o +svc_udp.o close.o +syslog.o close.o +tmpfile.o close.o +yp_bind.o close.o +fts.o closedir.o +getcwd.o closedir.o +glob.o closedir.o +scandir.o closedir.o +ttyname.o closedir.o +clnt_tcp.o connect.o +rcmd.o connect.o +res_send.o connect.o +syslog.o connect.o +devname.o db.o +getcap.o db.o +getnetgrent.o db.o +getpwent.o db.o +ttyname.o db.o +getaddrinfo.o res_comp.o +gethostnamadr.o res_comp.o +getnetnamadr.o res_comp.o +res_debug.o res_comp.o +res_send.o res_comp.o +auth_subr.o dup2.o +daemon.o dup2.o +freopen.o dup2.o +popen.o dup2.o +rcmdsh.o dup2.o +getgrouplist.o getgrent.o +getnetbyaddr.o getnetent.o +getnetbyname.o getnetent.o +getpwent.o getnetgrent.o +getproto.o getprotoent.o +getprotoname.o getprotoent.o +getservbyname.o getservent.o +getservbyport.o getservent.o +ttyslot.o getttyent.o +drand48.o erand48.o +popen.o exec.o +rcmdsh.o exec.o +auth_subr.o execve.o +exec.o execve.o +system.o execve.o +abort.o exit.o +authenticate.o exit.o +svc_simple.o exit.o +verr.o exit.o +verrx.o exit.o +fts.o fchdir.o +realpath.o fchdir.o +tmpfile.o fchmod.o +ethers.o fclose.o +freopen.o fclose.o +fstab.o fclose.o +getaddrinfo.o fclose.o +getcap.o fclose.o +getgrent.o fclose.o +gethostnamadr.o fclose.o +getnetent.o fclose.o +getprotoent.o fclose.o +getrpcent.o fclose.o +getservent.o fclose.o +getttyent.o fclose.o +getusershell.o fclose.o +popen.o fclose.o +rcmd.o fclose.o +rec_close.o fclose.o +res_init.o fclose.o +res_query.o fclose.o +bt_open.o fcntl.o +fdopen.o fcntl.o +hash.o fcntl.o +hash_page.o fcntl.o +lockf.o fcntl.o +opendir.o fcntl.o +rcmd.o fcntl.o +syslog.o fcntl.o +yp_bind.o fcntl.o +popen.o fdopen.o +rec_open.o fdopen.o +tmpfile.o fdopen.o +authenticate.o fflush.o +fvwrite.o fflush.o +res_debug.o fflush.o +vfprintf.o fflush.o +wbuf.o fflush.o +xdr_stdio.o fflush.o +ethers.o fgetln.o +getcap.o fgetln.o +gethostnamadr.o fgetln.o +getnetent.o fgetln.o +getprotoent.o fgetln.o +getservent.o fgetln.o +rcmd.o fgetln.o +res_init.o fgetln.o +res_query.o fgetln.o +fstab.o fgets.o +getaddrinfo.o fgets.o +getgrent.o fgets.o +getrpcent.o fgets.o +getttyent.o fgets.o +getusershell.o fgets.o +yp_bind.o flock.o +ethers.o fopen.o +fstab.o fopen.o +getaddrinfo.o fopen.o +getcap.o fopen.o +getgrent.o fopen.o +gethostnamadr.o fopen.o +getnetent.o fopen.o +getprotoent.o fopen.o +getrpcent.o fopen.o +getservent.o fopen.o +getttyent.o fopen.o +getusershell.o fopen.o +rcmd.o fopen.o +res_init.o fopen.o +res_query.o fopen.o +auth_subr.o fork.o +daemon.o fork.o +rcmdsh.o fork.o +assert.o fprintf.o +auth_unix.o fprintf.o +clnt_perror.o fprintf.o +clnt_tcp.o fprintf.o +clnt_udp.o fprintf.o +getopt.o fprintf.o +mpool.o fprintf.o +rcmd.o fprintf.o +rcmdsh.o fprintf.o +res_debug.o fprintf.o +svc_simple.o fprintf.o +svc_tcp.o fprintf.o +svc_udp.o fprintf.o +verr.o fprintf.o +verrx.o fprintf.o +vwarn.o fprintf.o +vwarnx.o fprintf.o +xdr.o fprintf.o +xdr_array.o fprintf.o +xdr_rec.o fprintf.o +xdr_reference.o fprintf.o +yp_bind.o fprintf.o +res_debug.o fputs.o +getw.o fread.o +vfscanf.o fread.o +xdr_stdio.o fread.o +asprintf.o malloc.o +auth_subr.o malloc.o +auth_unix.o malloc.o +bm.o malloc.o +bt_close.o malloc.o +bt_open.o malloc.o +bt_seq.o malloc.o +bt_split.o malloc.o +catclose.o malloc.o +cfree.o malloc.o +cfree.o malloc.o +clnt_tcp.o malloc.o +clnt_udp.o malloc.o +closedir.o malloc.o +confstr.o malloc.o +disklabel.o malloc.o +ethers.o malloc.o +fclose.o malloc.o +fpurge.o malloc.o +freeaddrinfo.o malloc.o +freopen.o malloc.o +fseek.o malloc.o +fts.o malloc.o +getaddrinfo.o malloc.o +getcap.o malloc.o +getcwd.o malloc.o +getgrent.o malloc.o +gethostnamadr.o malloc.o +getifaddrs.o malloc.o +getmntinfo.o malloc.o +getnetgrent.o malloc.o +getpwent.o malloc.o +getusershell.o malloc.o +glob.o malloc.o +hash.o malloc.o +hash_bigkey.o malloc.o +hash_buf.o malloc.o +hash_page.o malloc.o +heapsort.o malloc.o +if_indextoname.o malloc.o +if_nameindex.o malloc.o +if_nametoindex.o malloc.o +login_cap.o malloc.o +login_cap.o malloc.o +merge.o malloc.o +mpool.o malloc.o +nlist.o malloc.o +opendir.o malloc.o +pmap_rmt.o malloc.o +popen.o malloc.o +putenv.o malloc.o +radixsort.o malloc.o +rcmd.o malloc.o +rec_put.o malloc.o +refill.o malloc.o +regcomp.o malloc.o +regexec.o malloc.o +regfree.o malloc.o +res_debug.o malloc.o +res_send.o malloc.o +scandir.o malloc.o +setmode.o malloc.o +setvbuf.o malloc.o +svc.o malloc.o +svc_run.o malloc.o +svc_tcp.o malloc.o +svc_udp.o malloc.o +telldir.o malloc.o +tempnam.o malloc.o +tsearch.o malloc.o +vasprintf.o malloc.o +vfprintf.o malloc.o +wsetup.o malloc.o +xdr.o malloc.o +xdr_array.o malloc.o +xdr_rec.o malloc.o +xdr_reference.o malloc.o +yp_all.o malloc.o +yp_bind.o malloc.o +ypmatch_cache.o malloc.o +getaddrinfo.o freeaddrinfo.o +rcmd.o freeaddrinfo.o +get_myaddress.o getifaddrs.o +pmap_rmt.o getifaddrs.o +rewind.o fseek.o +xdr_stdio.o fseek.o +fsetpos.o fseek.o +bt_open.o fstat.o +catopen.o fstat.o +fseek.o fstat.o +fts.o fstat.o +getcwd.o fstat.o +getusershell.o fstat.o +makebuf.o fstat.o +mpool.o fstat.o +nlist.o fstat.o +opendir.o fstat.o +rcmd.o fstat.o +rec_open.o fstat.o +scandir.o fstat.o +ttyname.o fstat.o +opendir.o fstatfs.o +mpool.o fsync.o +xdr_stdio.o ftell.o +fgetpos.o ftell.o +rec_close.o ftruncate.o +xdr_stdio.o fwrite.o +pmap_clnt.o get_myaddress.o +rcmd.o getaddrinfo.o +res_init.o getaddrinfo.o +getwd.o getcwd.o +realpath.o getcwd.o +opendir.o getdirentries.o +readdir.o getdirentries.o +rcmd.o getdomainname.o +yp_get_default_domain.o getdomainname.o +auth_subr.o getdtablesize.o +findfp.o getdtablesize.o +rpc_dtablesize.o getdtablesize.o +__setregid.o getegid.o +auth_unix.o getegid.o +bt_open.o getenv.o +catopen.o getenv.o +exec.o getenv.o +getbsize.o getenv.o +glob.o getenv.o +gmon.o getenv.o +hash_page.o getenv.o +localtime.o getenv.o +malloc.o getenv.o +rcmd.o getenv.o +res_init.o getenv.o +res_query.o getenv.o +setlocale.o getenv.o +tempnam.o getenv.o +timezone.o getenv.o +__setregid.o geteuid.o +__setreuid.o geteuid.o +auth_unix.o geteuid.o +getpwent.o geteuid.o +rcmd.o geteuid.o +getmntinfo.o getfsstat.o +__setregid.o getgid.o +getgrouplist.o getgrent.o +pwcache.o getgrent.o +initgroups.o getgrouplist.o +auth_unix.o getgroups.o +getnameinfo.o gethostnamadr.o +clnt_generic.o gethostnamadr.o +clnt_simple.o gethostnamadr.o +getrpcport.o gethostnamadr.o +rcmdsh.o gethostnamadr.o +auth_unix.o gethostname.o +res_init.o gethostname.o +get_myaddress.o getifaddrs.o +pmap_rmt.o getifaddrs.o +rcmd.o getnameinfo.o +getnetbyaddr.o getnetent.o +getnetbyname.o getnetent.o +getpwent.o getnetgrent.o +opendir.o getpagesize.o +valloc.o getpagesize.o +abort.o getpid.o +gmon.o getpid.o +lockf.o getpid.o +mktemp.o getpid.o +raise.o getpid.o +random.o getpid.o +rcmd.o getpid.o +syslog.o getpid.o +yp_bind.o getpid.o +nice.o getpriority.o +clnt_generic.o getprotoname.o +getproto.o getprotoent.o +getprotoname.o getprotoent.o +auth_subr.o getpwent.o +authenticate.o getpwent.o +glob.o getpwent.o +rcmd.o getpwent.o +rcmdsh.o getpwent.o +authenticate.o getpwent.o +glob.o getpwent.o +pwcache.o getpwent.o +login_cap.o getrlimit.o +login_cap.o getrlimit.o +sysconf.o getrlimit.o +clock.o getrusage.o +times.o getrusage.o +gets.o gets.o +getaddrinfo.o getservbyname.o +rcmd.o getservbyname.o +getnameinfo.o getservbyport.o +getservbyname.o getservent.o +getservbyport.o getservent.o +bindresvport.o getsockname.o +svc_tcp.o getsockname.o +svc_udp.o getsockname.o +bindresvport.o getsockopt.o +svc_tcp.o getsockopt.o +arc4random.o gettimeofday.o +auth_subr.o gettimeofday.o +auth_unix.o gettimeofday.o +clnt_tcp.o gettimeofday.o +clnt_udp.o gettimeofday.o +pmap_rmt.o gettimeofday.o +random.o gettimeofday.o +res_random.o gettimeofday.o +svc_tcp.o gettimeofday.o +time.o gettimeofday.o +times.o gettimeofday.o +ttyslot.o getttyent.o +__setregid.o getuid.o +__setreuid.o getuid.o +authenticate.o getuid.o +getpwent.o getuid.o +glob.o getuid.o +res_debug.o localtime.o +rcmdsh.o herror.o +getnameinfo.o if_indextoname.o +getaddrinfo.o if_nametoindex.o +gethostnamadr.o inet_addr.o +res_init.o inet_addr.o +getnetent.o inet_network.o +getnetnamadr.o inet_network.o +res_debug.o nsap_addr.o +res_debug.o inet_ntoa.o +getnameinfo.o inet_ntop.o +res_debug.o inet_ntop.o +getaddrinfo.o inet_pton.o +gethostnamadr.o inet_pton.o +res_init.o inet_pton.o +login_cap.o initgroups.o +login_cap.o initgroups.o +rcmd.o getnetgrent.o +clnt_udp.o ioctl.o +if_indextoname.o ioctl.o +if_nameindex.o ioctl.o +if_nametoindex.o ioctl.o +tcdrain.o ioctl.o +tcflow.o ioctl.o +tcflush.o ioctl.o +tcgetattr.o ioctl.o +tcgetpgrp.o ioctl.o +tcsendbreak.o ioctl.o +tcsetattr.o ioctl.o +tcsetpgrp.o ioctl.o +makebuf.o isatty.o +auth_subr.o isctype.o +vfprintf.o isinf.o +vfprintf.o isinf.o +bt_open.o issetugid.o +catopen.o issetugid.o +glob.o issetugid.o +gmon.o issetugid.o +hash_page.o issetugid.o +localtime.o issetugid.o +malloc.o issetugid.o +rcmd.o issetugid.o +res_init.o issetugid.o +res_query.o issetugid.o +setlocale.o issetugid.o +tempnam.o issetugid.o +abort.o kill.o +killpg.o kill.o +raise.o kill.o +erand48.o ldexp.o +random.o ldiv.o +rcmd.o listen.o +svc_tcp.o listen.o +strtod.o localeconv.o +vfprintf.o localeconv.o +syslog.o localtime.o +authenticate.o login_cap.o +authenticate.o login_cap.o +authenticate.o login_cap.o +authenticate.o login_cap.o +authenticate.o login_cap.o +authenticate.o login_cap.o +authenticate.o login_cap.o +authenticate.o login_cap.o +authenticate.o login_cap.o +authenticate.o login_cap.o +getcap.o lseek.o +hash.o lseek.o +hash_page.o lseek.o +mpool.o lseek.o +nlist.o lseek.o +rec_close.o lseek.o +rec_open.o lseek.o +stdio.o lseek.o +telldir.o lseek.o +xdr_rec.o lseek.o +fts.o lstat.o +getcwd.o lstat.o +glob.o lstat.o +login_cap.o lstat.o +login_cap.o lstat.o +mktemp.o lstat.o +rcmd.o lstat.o +realpath.o lstat.o +remove.o lstat.o +asprintf.o malloc.o +atexit.o malloc.o +auth_subr.o malloc.o +auth_unix.o malloc.o +authenticate.o malloc.o +bm.o malloc.o +bt_open.o malloc.o +bt_overflow.o malloc.o +bt_split.o malloc.o +bt_utils.o malloc.o +calloc.o malloc.o +catopen.o malloc.o +clnt_perror.o malloc.o +clnt_simple.o malloc.o +clnt_tcp.o malloc.o +clnt_udp.o malloc.o +confstr.o malloc.o +findfp.o malloc.o +fts.o malloc.o +getaddrinfo.o malloc.o +getcap.o malloc.o +getcwd.o malloc.o +getifaddrs.o malloc.o +getmntinfo.o malloc.o +getnetgrent.o malloc.o +getpwent.o malloc.o +getusershell.o malloc.o +glob.o malloc.o +hash.o malloc.o +hash_bigkey.o malloc.o +hash_buf.o malloc.o +hash_page.o malloc.o +heapsort.o malloc.o +if_nameindex.o malloc.o +login_cap.o malloc.o +login_cap.o malloc.o +makebuf.o malloc.o +md4hl.o malloc.o +md5hl.o malloc.o +merge.o malloc.o +mpool.o malloc.o +nlist.o malloc.o +opendir.o malloc.o +pmap_rmt.o malloc.o +popen.o malloc.o +pw_dup.o malloc.o +radixsort.o malloc.o +rcmd.o malloc.o +rec_get.o malloc.o +rec_put.o malloc.o +rec_utils.o malloc.o +regcomp.o malloc.o +regexec.o malloc.o +rmd160hl.o malloc.o +rpc_callmsg.o malloc.o +scandir.o malloc.o +setenv.o malloc.o +setmode.o malloc.o +setvbuf.o malloc.o +sha1hl.o malloc.o +skipjack.o malloc.o +strdup.o malloc.o +strtod.o malloc.o +strtofflags.o malloc.o +svc.o malloc.o +svc_run.o malloc.o +svc_simple.o malloc.o +svc_tcp.o malloc.o +svc_udp.o malloc.o +telldir.o malloc.o +tempnam.o malloc.o +tsearch.o malloc.o +ungetc.o malloc.o +valloc.o malloc.o +vasprintf.o malloc.o +vfprintf.o malloc.o +xdr.o malloc.o +xdr_array.o malloc.o +xdr_rec.o malloc.o +xdr_reference.o malloc.o +yp_all.o malloc.o +yp_bind.o malloc.o +yp_first.o malloc.o +ypmatch_cache.o malloc.o +vfprintf.o multibyte.o +crypt.o md5crypt.o +fgetln.o memchr.o +fgets.o memchr.o +fvwrite.o memchr.o +vfprintf.o memchr.o +auth_subr.o memcpy.o +auth_unix.o memcpy.o +bm.o memcpy.o +clnt_generic.o memcpy.o +clnt_simple.o memcpy.o +ethers.o memcpy.o +fgetln.o memcpy.o +fgets.o memcpy.o +fread.o memcpy.o +fvwrite.o memcpy.o +getaddrinfo.o memcpy.o +getcap.o memcpy.o +gethostnamadr.o memcpy.o +getifaddrs.o memcpy.o +getlogin.o memcpy.o +getnameinfo.o memcpy.o +getnetent.o memcpy.o +getnetgrent.o memcpy.o +getprotoent.o memcpy.o +getrpcport.o memcpy.o +getservent.o memcpy.o +ip6opt.o memcpy.o +login_cap.o memcpy.o +login_cap.o memcpy.o +malloc.o memcpy.o +md4c.o memcpy.o +md5c.o memcpy.o +pw_dup.o memcpy.o +regcomp.o memcpy.o +regexec.o memcpy.o +res_init.o memcpy.o +res_query.o memcpy.o +rmd160.o memcpy.o +rpc_callmsg.o memcpy.o +sha1.o memcpy.o +strdup.o memcpy.o +strtod.o memcpy.o +svc.o memcpy.o +svc_auth_unix.o memcpy.o +svc_run.o memcpy.o +svc_tcp.o memcpy.o +ttyname.o memcpy.o +ungetc.o memcpy.o +xdr_mem.o memcpy.o +xdr_rec.o memcpy.o +yp_all.o memcpy.o +yp_first.o memcpy.o +ypmatch_cache.o memcpy.o +bt_close.o memmove.o +bt_delete.o memmove.o +bt_overflow.o memmove.o +bt_put.o memmove.o +bt_split.o memmove.o +bt_utils.o memmove.o +fts.o memmove.o +hash.o memmove.o +hash_bigkey.o memmove.o +hash_page.o memmove.o +merge.o memmove.o +rec_delete.o memmove.o +rec_put.o memmove.o +rec_utils.o memmove.o +regcomp.o memmove.o +sysctl.o memmove.o +auth_subr.o memset.o +bindresvport.o memset.o +bt_open.o memset.o +bt_split.o memset.o +calloc.o memset.o +clnt_tcp.o memset.o +clnt_udp.o memset.o +getaddrinfo.o memset.o +getifaddrs.o memset.o +hash.o memset.o +hash_buf.o memset.o +hash_page.o memset.o +if_nameindex.o memset.o +ip6opt.o memset.o +malloc.o memset.o +mpool.o memset.o +pmap_rmt.o memset.o +rec_get.o memset.o +rec_put.o memset.o +regcomp.o memset.o +regexec.o memset.o +rmd160.o memset.o +svc.o memset.o +svc_udp.o memset.o +vfprintf.o memset.o +xdr_array.o memset.o +xdr_reference.o memset.o +opendir.o merge.o +mktemp.o mkdir.o +bt_open.o mktemp.o +hash_page.o mktemp.o +tmpfile.o mktemp.o +mktemp.o mktemp.o +strftime.o localtime.o +catopen.o mmap.o +malloc.o mmap.o +nlist.o mmap.o +bt_close.o mpool.o +bt_open.o mpool.o +bt_open.o mpool.o +bt_close.o mpool.o +bt_delete.o mpool.o +bt_open.o mpool.o +bt_overflow.o mpool.o +bt_page.o mpool.o +bt_put.o mpool.o +bt_search.o mpool.o +bt_seq.o mpool.o +bt_split.o mpool.o +rec_open.o mpool.o +rec_search.o mpool.o +bt_open.o mpool.o +bt_page.o mpool.o +bt_open.o mpool.o +bt_close.o mpool.o +bt_delete.o mpool.o +bt_get.o mpool.o +bt_open.o mpool.o +bt_overflow.o mpool.o +bt_page.o mpool.o +bt_put.o mpool.o +bt_search.o mpool.o +bt_seq.o mpool.o +bt_split.o mpool.o +rec_close.o mpool.o +rec_delete.o mpool.o +rec_get.o mpool.o +rec_open.o mpool.o +rec_put.o mpool.o +rec_search.o mpool.o +rec_seq.o mpool.o +bt_close.o mpool.o +catclose.o munmap.o +catopen.o munmap.o +malloc.o munmap.o +nlist.o munmap.o +rec_close.o munmap.o +sleep.o nanosleep.o +usleep.o nanosleep.o +arc4random.o open.o +authenticate.o open.o +bt_open.o open.o +catopen.o open.o +creat.o open.o +daemon.o open.o +fopen.o open.o +freopen.o open.o +fts.o open.o +getcap.o open.o +gmon.o open.o +hash.o open.o +localtime.o open.o +login_cap.o open.o +login_cap.o open.o +md4hl.o open.o +md5hl.o open.o +mktemp.o open.o +nlist.o open.o +opendir.o open.o +random.o open.o +readpassphrase.o open.o +realpath.o open.o +rec_open.o open.o +rmd160hl.o open.o +sha1hl.o open.o +syslog.o open.o +yp_bind.o open.o +getcwd.o opendir.o +glob.o opendir.o +scandir.o opendir.o +ttyname.o opendir.o +auth_unix.o perror.o +clnt_raw.o perror.o +gmon.o perror.o +pmap_rmt.o perror.o +rcmd.o perror.o +rcmdsh.o perror.o +svc_run.o perror.o +svc_tcp.o perror.o +svc_udp.o perror.o +yp_bind.o perror.o +popen.o pipe.o +clnt_tcp.o pmap_getport.o +clnt_udp.o pmap_getport.o +getrpcport.o pmap_getport.o +svc.o pmap_clnt.o +svc.o pmap_clnt.o +svc_simple.o pmap_clnt.o +nlist.o pread.o +authenticate.o printf.o +svc_auth_unix.o printf.o +yp_all.o printf.o +gmon.o profil.o +auth_subr.o pw_dup.o +fts.o qsort.o +glob.o qsort.o +scandir.o qsort.o +rcmd.o rcmdsh.o +arc4random.o read.o +auth_subr.o read.o +authenticate.o read.o +bt_open.o read.o +clnt_tcp.o read.o +getcap.o read.o +hash.o read.o +hash_page.o read.o +localtime.o read.o +md4hl.o read.o +md5hl.o read.o +mpool.o read.o +nlist.o read.o +random.o read.o +rcmd.o read.o +readpassphrase.o read.o +res_send.o read.o +rmd160hl.o read.o +sha1hl.o read.o +stdio.o read.o +svc_tcp.o read.o +fts.o readdir.o +getcwd.o readdir.o +glob.o readdir.o +scandir.o readdir.o +telldir.o readdir.o +ttyname.o readdir.o +malloc.o readlink.o +realpath.o readlink.o +yp_bind.o readv.o +asprintf.o malloc.o +bt_overflow.o malloc.o +bt_utils.o malloc.o +fgetln.o malloc.o +fts.o malloc.o +fvwrite.o malloc.o +getcap.o malloc.o +getcwd.o malloc.o +getnetgrent.o malloc.o +getpwent.o malloc.o +glob.o malloc.o +if_indextoname.o malloc.o +if_nameindex.o malloc.o +if_nametoindex.o malloc.o +opendir.o malloc.o +rec_get.o malloc.o +rec_put.o malloc.o +rec_utils.o malloc.o +regcomp.o malloc.o +scandir.o malloc.o +setenv.o malloc.o +setmode.o malloc.o +ungetc.o malloc.o +vasprintf.o malloc.o +vfprintf.o malloc.o +clnt_udp.o recvfrom.o +pmap_rmt.o recvfrom.o +recv.o recvfrom.o +res_send.o recvfrom.o +svc_udp.o recvfrom.o +regcomp.o regfree.o +gethostnamadr.o res_init.o +getnetnamadr.o res_init.o +res_debug.o res_init.o +res_mkquery.o res_init.o +res_query.o res_init.o +sethostent.o res_init.o +res_query.o res_mkquery.o +gethostnamadr.o res_query.o +getnetnamadr.o res_query.o +gethostnamadr.o res_query.o +getnetnamadr.o res_query.o +fstab.o rewind.o +getaddrinfo.o rewind.o +getgrent.o rewind.o +gethostnamadr.o rewind.o +getnetent.o rewind.o +getprotoent.o rewind.o +getrpcent.o rewind.o +getservent.o rewind.o +getttyent.o rewind.o +remove.o rmdir.o +rcmd.o rresvport.o +gmon.o sbrk.o +malloc.o sbrk.o +auth_subr.o login_cap.o +auth_subr.o login_cap.o +closedir.o seekdir.o +clnt_tcp.o select.o +clnt_udp.o select.o +pmap_rmt.o select.o +rcmd.o select.o +res_send.o select.o +svc_run.o select.o +svc_tcp.o select.o +tcsendbreak.o select.o +res_send.o send.o +syslog.o send.o +clnt_udp.o sendto.o +pmap_rmt.o sendto.o +res_send.o sendto.o +send.o sendto.o +svc_udp.o sendto.o +res_query.o setbuf.o +__setregid.o setegid.o +auth_subr.o setenv.o +login_cap.o setenv.o +login_cap.o setenv.o +putenv.o setenv.o +__setreuid.o seteuid.o +login_cap.o seteuid.o +login_cap.o seteuid.o +rcmd.o seteuid.o +__setregid.o setgid.o +login_cap.o setgid.o +login_cap.o setgid.o +getgrouplist.o getgrent.o +pwcache.o getgrent.o +initgroups.o setgroups.o +alarm.o setitimer.o +gmon.o setitimer.o +ualarm.o setitimer.o +login_cap.o getlogin.o +login_cap.o getlogin.o +getnetbyaddr.o getnetent.o +getnetbyname.o getnetent.o +getpwent.o getnetgrent.o +pwcache.o getpwent.o +setpgrp.o setpgid.o +login_cap.o setpriority.o +login_cap.o setpriority.o +nice.o setpriority.o +getproto.o getprotoent.o +getprotoname.o getprotoent.o +setregid.o setregid.o +setreuid.o setreuid.o +setrgid.o setrgid.o +login_cap.o setrlimit.o +login_cap.o setrlimit.o +setruid.o setruid.o +getservbyname.o getservent.o +getservbyport.o getservent.o +daemon.o setsid.o +bindresvport.o setsockopt.o +pmap_rmt.o setsockopt.o +ttyslot.o getttyent.o +__setreuid.o setuid.o +login_cap.o setuid.o +login_cap.o setuid.o +rcmdsh.o setuid.o +setbuf.o setvbuf.o +setbuffer.o setvbuf.o +sigcompat.o sigaction.o +siginterrupt.o sigaction.o +signal.o sigaction.o +pause.o sigcompat.o +rcmd.o sigcompat.o +setjmp.o sigcompat.o +sigsetjmp.o sigcompat.o +system.o sigcompat.o +abort.o signal.o +system.o signal.o +pause.o sigcompat.o +abort.o sigprocmask.o +bt_open.o sigprocmask.o +hash_page.o sigprocmask.o +readpassphrase.o sigprocmask.o +setmode.o sigprocmask.o +sigcompat.o sigprocmask.o +tmpfile.o sigprocmask.o +rcmd.o sigcompat.o +setjmp.o sigcompat.o +sigsetjmp.o sigcompat.o +system.o sigcompat.o +sigcompat.o sigsuspend.o +rcmd.o sleep.o +asctime.o snprintf.o +auth_subr.o snprintf.o +authenticate.o snprintf.o +bcrypt.o snprintf.o +bt_open.o snprintf.o +clnt_perror.o snprintf.o +getbsize.o snprintf.o +getcap.o snprintf.o +getnameinfo.o snprintf.o +getnetgrent.o snprintf.o +getnetnamadr.o snprintf.o +hash_page.o snprintf.o +inet_ntoa.o snprintf.o +pwcache.o snprintf.o +rcmd.o snprintf.o +res_init.o snprintf.o +setlocale.o snprintf.o +setproctitle.o snprintf.o +syslog.o snprintf.o +tempnam.o snprintf.o +timezone.o snprintf.o +tmpnam.o snprintf.o +yp_bind.o snprintf.o +yperr_string.o snprintf.o +clnt_tcp.o socket.o +clnt_udp.o socket.o +getaddrinfo.o socket.o +if_indextoname.o socket.o +if_nameindex.o socket.o +if_nametoindex.o socket.o +pmap_rmt.o socket.o +res_send.o socket.o +rresvport.o socket.o +svc_tcp.o socket.o +svc_udp.o socket.o +syslog.o socket.o +auth_subr.o socketpair.o +rcmdsh.o socketpair.o +auth_subr.o sprintf.o +ethers.o sprintf.o +getaddrinfo.o sprintf.o +getgrent.o sprintf.o +gethostnamadr.o sprintf.o +getpwent.o sprintf.o +inet_net_ntop.o sprintf.o +inet_neta.o sprintf.o +inet_ntop.o sprintf.o +ipx_ntoa.o sprintf.o +login_cap.o sprintf.o +login_cap.o sprintf.o +ns_ntoa.o sprintf.o +regerror.o sprintf.o +res_debug.o sprintf.o +res_query.o sprintf.o +strftime.o sprintf.o +ipx_addr.o sscanf.o +ns_addr.o sscanf.o +authenticate.o stat.o +fstab.o stat.o +ftok.o stat.o +fts.o stat.o +getcwd.o stat.o +glob.o stat.o +hash.o stat.o +mktemp.o stat.o +ttyname.o stat.o +auth_subr.o strcasecmp.o +disklabel.o strcasecmp.o +getaddrinfo.o strcasecmp.o +gethostnamadr.o strcasecmp.o +getnetbyname.o strcasecmp.o +login_cap.o strcasecmp.o +login_cap.o strcasecmp.o +res_debug.o strcasecmp.o +res_query.o strcasecmp.o +res_send.o strcasecmp.o +clnt_perror.o strcat.o +getnetnamadr.o strcat.o +localtime.o strcat.o +md5crypt.o strcat.o +ndbm.o strcat.o +rcmd.o strcat.o +realpath.o strcat.o +auth_subr.o strchr.o +authenticate.o strchr.o +base64.o strchr.o +catopen.o strchr.o +exec.o strchr.o +fnmatch.o strchr.o +getaddrinfo.o strchr.o +getgrent.o strchr.o +gethostnamadr.o strchr.o +getnetent.o strchr.o +getnetgrent.o strchr.o +getopt.o strchr.o +getprotoent.o strchr.o +getservent.o strchr.o +getttyent.o strchr.o +inet_net_pton.o strchr.o +inet_pton.o strchr.o +ipx_addr.o strchr.o +localtime.o strchr.o +ns_addr.o strchr.o +putenv.o strchr.o +res_debug.o strchr.o +res_init.o strchr.o +setlocale.o strchr.o +syslog.o strchr.o +timezone.o strchr.o +auth_subr.o strcmp.o +clnt_simple.o strcmp.o +ethers.o strcmp.o +fstab.o strcmp.o +getcap.o strcmp.o +getgrent.o strcmp.o +getgrouplist.o strcmp.o +gethostnamadr.o strcmp.o +getnetgrent.o strcmp.o +getprotoname.o strcmp.o +getpwent.o strcmp.o +getrpcent.o strcmp.o +getservbyname.o strcmp.o +getservbyport.o strcmp.o +getsubopt.o strcmp.o +getttyent.o strcmp.o +glob.o strcmp.o +if_nametoindex.o strcmp.o +localtime.o strcmp.o +login_cap.o strcmp.o +login_cap.o strcmp.o +net_addrcmp.o strcmp.o +nlist.o strcmp.o +opendir.o strcmp.o +rcmd.o strcmp.o +rcmdsh.o strcmp.o +regerror.o strcmp.o +scandir.o strcmp.o +setlocale.o strcmp.o +strcoll.o strcmp.o +strtofflags.o strcmp.o +ttyslot.o strcmp.o +yp_bind.o strcmp.o +ypmatch_cache.o strcmp.o +auth_subr.o strcpy.o +authenticate.o strcpy.o +dirname.o strcpy.o +exec.o strcpy.o +getaddrinfo.o strcpy.o +getcap.o strcpy.o +gethostnamadr.o strcpy.o +getnameinfo.o strcpy.o +inet_ntop.o strcpy.o +localtime.o strcpy.o +login_cap.o strcpy.o +login_cap.o strcpy.o +md5crypt.o strcpy.o +ndbm.o strcpy.o +rcmd.o strcpy.o +realpath.o strcpy.o +regcomp.o strcpy.o +regerror.o strcpy.o +setlocale.o strcpy.o +ethers.o strcspn.o +login_cap.o strcspn.o +login_cap.o strcspn.o +auth_subr.o strdup.o +getaddrinfo.o strdup.o +getgrent.o strdup.o +getnetgrent.o strdup.o +getpwent.o strdup.o +login_cap.o strdup.o +login_cap.o strdup.o +putenv.o strdup.o +res_debug.o strdup.o +yp_master.o strdup.o +ypmatch_cache.o strdup.o +clnt_perror.o strerror.o +fstab.o strerror.o +getwd.o strerror.o +rcmd.o strerror.o +rcmdsh.o strerror.o +syslog.o strerror.o +verr.o strerror.o +vwarn.o strerror.o +syslog.o strftime.o +if_indextoname.o strlcpy.o +if_nameindex.o strlcpy.o +auth_subr.o strcasecmp.o +strptime.o strcasecmp.o +__strerror.o strncat.o +__strsignal.o strncat.o +md5crypt.o strncat.o +auth_subr.o strncmp.o +authenticate.o strncmp.o +ethers.o strncmp.o +getttyent.o strncmp.o +if_indextoname.o strncmp.o +if_nameindex.o strncmp.o +if_nametoindex.o strncmp.o +md5crypt.o strncmp.o +opendir.o strncmp.o +regcomp.o strncmp.o +res_init.o strncmp.o +strstr.o strncmp.o +__strerror.o strncpy.o +__strsignal.o strncpy.o +basename.o strncpy.o +clnt_simple.o strncpy.o +confstr.o strncpy.o +crypt.o strncpy.o +dirname.o strncpy.o +ethers.o strncpy.o +fstab.o strncpy.o +getaddrinfo.o strncpy.o +gethostnamadr.o strncpy.o +getnetnamadr.o strncpy.o +getrpcent.o strncpy.o +getwd.o strncpy.o +ipx_addr.o strncpy.o +localtime.o strncpy.o +ns_addr.o strncpy.o +pwcache.o strncpy.o +rcmd.o strncpy.o +realpath.o strncpy.o +regerror.o strncpy.o +res_init.o strncpy.o +res_query.o strncpy.o +setlocale.o strncpy.o +syslog.o strncpy.o +timezone.o strncpy.o +yp_bind.o strncpy.o +fstab.o strpbrk.o +getaddrinfo.o strpbrk.o +gethostnamadr.o strpbrk.o +getnetent.o strpbrk.o +getprotoent.o strpbrk.o +getrpcent.o strpbrk.o +getservent.o strpbrk.o +res_init.o strpbrk.o +authenticate.o strrchr.o +fts.o strrchr.o +rcmdsh.o strrchr.o +realpath.o strrchr.o +ttyslot.o strrchr.o +exec.o strsep.o +getgrent.o strsep.o +getpwent.o strsep.o +strtofflags.o strsep.o +login_cap.o strspn.o +login_cap.o strspn.o +getnetgrent.o strstr.o +localtime.o strstr.o +atof.o strtod.o +vfscanf.o strtod.o +fstab.o strtok.o +atoi.o strtol.o +atol.o strtol.o +ethers.o strtol.o +fstab.o strtol.o +getbsize.o strtol.o +getprotoent.o strtol.o +getpwent.o strtol.o +getservent.o strtol.o +res_init.o strtol.o +setmode.o strtol.o +login_cap.o strtoq.o +login_cap.o strtoq.o +vfscanf.o strtoq.o +getaddrinfo.o strtoul.o +getgrent.o strtoul.o +getpwent.o strtoul.o +login_cap.o strtouq.o +login_cap.o strtouq.o +vfscanf.o strtouq.o +clnt_raw.o svc.o +svc_run.o svc.o +svc_tcp.o svc.o +svc.o rpc_commondata.o +svc_run.o rpc_commondata.o +svc_tcp.o rpc_commondata.o +svc_simple.o svc.o +svc_simple.o svc.o +svc_simple.o svc.o +svc_simple.o svc_udp.o +getdtablesize.o sysconf.o +arc4random.o sysctl.o +confstr.o sysctl.o +getdomainname.o sysctl.o +gethostid.o sysctl.o +gethostname.o sysctl.o +getifaddrs.o sysctl.o +getloadavg.o sysctl.o +getpagesize.o sysctl.o +gmon.o sysctl.o +setdomainname.o sysctl.o +sethostid.o sysctl.o +sethostname.o sysctl.o +setproctitle.o sysctl.o +sysconf.o sysctl.o +uname.o sysctl.o +auth_subr.o syslog.o +authenticate.o syslog.o +getaddrinfo.o syslog.o +gethostnamadr.o syslog.o +getpwent.o syslog.o +login_cap.o syslog.o +login_cap.o syslog.o +rcmd.o syslog.o +isatty.o tcgetattr.o +readpassphrase.o tcgetattr.o +tcflow.o tcgetattr.o +ttyname.o tcgetattr.o +readpassphrase.o tcsetattr.o +opendir.o telldir.o +rewinddir.o telldir.o +tempnam.o tempnam.o +syslog.o time.o +ypmatch_cache.o time.o +tmpnam.o tmpnam.o +ttyslot.o ttyname.o +strftime.o localtime.o +strftime.o localtime.o +login_cap.o umask.o +login_cap.o umask.o +setmode.o umask.o +tmpfile.o umask.o +vfscanf.o ungetc.o +auth_subr.o unlink.o +bt_open.o unlink.o +hash_page.o unlink.o +remove.o unlink.o +tmpfile.o unlink.o +auth_subr.o setenv.o +utime.o utimes.o +popen.o Ovfork.o +system.o Ovfork.o +asprintf.o vfprintf.o +fprintf.o vfprintf.o +printf.o vfprintf.o +snprintf.o vfprintf.o +sprintf.o vfprintf.o +vasprintf.o vfprintf.o +verr.o vfprintf.o +verrx.o vfprintf.o +vprintf.o vfprintf.o +vsnprintf.o vfprintf.o +vsprintf.o vfprintf.o +vwarn.o vfprintf.o +vwarnx.o vfprintf.o +setproctitle.o vsnprintf.o +syslog.o vsnprintf.o +rcmdsh.o wait.o +wait.o wait4.o +wait3.o wait4.o +waitpid.o wait4.o +auth_subr.o waitpid.o +popen.o waitpid.o +system.o waitpid.o +auth_subr.o write.o +authenticate.o write.o +clnt_tcp.o write.o +gmon.o write.o +hash.o write.o +hash_page.o write.o +mpool.o write.o +rcmd.o write.o +readpassphrase.o write.o +rec_close.o write.o +setjmperr.o write.o +stdio.o write.o +svc_tcp.o write.o +tcflow.o write.o +exec.o writev.o +fstab.o writev.o +herror.o writev.o +malloc.o writev.o +perror.o writev.o +psignal.o writev.o +rec_close.o writev.o +res_send.o writev.o +syslog.o writev.o +authunix_prot.o xdr_array.o +auth_unix.o authunix_prot.o +svc_auth_unix.o authunix_prot.o +pmap_clnt.o xdr.o +pmap_prot2.o xdr.o +xdr_reference.o xdr.o +xdr_ypresp_all.o xdr.o +rpc_prot.o xdr.o +xdr_keydat.o xdr.o +xdr_valdat.o xdr.o +clnt_raw.o rpc_prot.o +clnt_tcp.o rpc_prot.o +clnt_udp.o rpc_prot.o +pmap_rmt.o rpc_callmsg.o +svc_raw.o rpc_callmsg.o +svc_tcp.o rpc_callmsg.o +svc_udp.o rpc_callmsg.o +xdr_ypbind_setdom.o xdr_domainname.o +xdr_ypreq_key.o xdr_domainname.o +xdr_ypreq_nokey.o xdr_domainname.o +yp_bind.o xdr_domainname.o +yp_maplist.o xdr_domainname.o +rpc_callmsg.o xdr.o +rpc_prot.o xdr.o +xdr_ypbind_resptype.o xdr.o +xdr_ypstat.o xdr.o +yp_all.o xdr.o +yp_first.o xdr.o +yp_master.o xdr.o +yp_order.o xdr.o +ypmatch_cache.o xdr.o +authunix_prot.o xdr.o +xdr_ypreq_key.o xdr_keydat.o +xdr_ypresp_key_val.o xdr_keydat.o +xdr_ypmaplist.o xdr_mapname.o +xdr_ypreq_key.o xdr_mapname.o +xdr_ypreq_nokey.o xdr_mapname.o +rpc_callmsg.o xdr.o +rpc_prot.o xdr.o +xdr_ypbind_binding.o xdr.o +auth_none.o rpc_prot.o +auth_unix.o rpc_prot.o +clnt_raw.o rpc_prot.o +clnt_tcp.o rpc_prot.o +clnt_udp.o rpc_prot.o +rpc_callmsg.o rpc_prot.o +xdr_ypresp_master.o xdr_peername.o +pmap_clnt.o pmap_prot.o +pmap_getport.o pmap_prot.o +pmap_prot2.o pmap_prot.o +pmap_getmaps.o pmap_prot2.o +xdr_ypmaplist.o xdr_reference.o +xdr_ypresp_maplist.o xdr_reference.o +pmap_prot2.o xdr_reference.o +pmap_rmt.o xdr_reference.o +clnt_raw.o rpc_prot.o +clnt_tcp.o rpc_prot.o +clnt_udp.o rpc_prot.o +pmap_rmt.o rpc_prot.o +svc_raw.o rpc_prot.o +svc_tcp.o rpc_prot.o +svc_udp.o rpc_prot.o +authunix_prot.o xdr.o +xdr_domainname.o xdr.o +xdr_mapname.o xdr.o +xdr_peername.o xdr.o +rpc_callmsg.o xdr.o +xdr_array.o xdr.o +xdr_ypbind_resp.o xdr.o +xdr_ypbind_setdom.o xdr.o +xdr_ypresp_order.o xdr.o +rpc_callmsg.o xdr.o +rpc_prot.o xdr.o +authunix_prot.o xdr.o +pmap_prot.o xdr.o +pmap_rmt.o xdr.o +pmap_getport.o xdr.o +rpc_prot.o xdr.o +xdr_ypresp_key_val.o xdr_valdat.o +xdr_ypresp_val.o xdr_valdat.o +clnt_tcp.o xdr.o +pmap_getmaps.o xdr.o +pmap_rmt.o xdr.o +svc_simple.o xdr.o +xdr_ypbind_resp.o xdr_ypbind_binding.o +xdr_ypbind_setdom.o xdr_ypbind_binding.o +yp_bind.o xdr_ypbind_resp.o +xdr_ypbind_resp.o xdr_ypbind_resptype.o +xdr_ypresp_maplist.o xdr_ypmaplist.o +ypmatch_cache.o xdr_ypreq_key.o +yp_all.o xdr_ypreq_nokey.o +yp_first.o xdr_ypreq_nokey.o +yp_master.o xdr_ypreq_nokey.o +yp_order.o xdr_ypreq_nokey.o +yp_all.o xdr_ypresp_all.o +xdr_ypresp_all.o xdr_ypresp_key_val.o +yp_first.o xdr_ypresp_key_val.o +ypmatch_cache.o xdr_ypresp_key_val.o +yp_maplist.o xdr_ypresp_maplist.o +yp_master.o xdr_ypresp_master.o +yp_order.o xdr_ypresp_order.o +ypmatch_cache.o xdr_ypresp_val.o +xdr_ypresp_key_val.o xdr_ypstat.o +xdr_ypresp_maplist.o xdr_ypstat.o +xdr_ypresp_master.o xdr_ypstat.o +xdr_ypresp_order.o xdr_ypstat.o +xdr_ypresp_val.o xdr_ypstat.o +auth_none.o xdr_mem.o +auth_unix.o xdr_mem.o +clnt_raw.o xdr_mem.o +clnt_tcp.o xdr_mem.o +clnt_udp.o xdr_mem.o +pmap_rmt.o xdr_mem.o +svc_auth_unix.o xdr_mem.o +svc_raw.o xdr_mem.o +svc_udp.o xdr_mem.o +clnt_tcp.o xdr_rec.o +svc_tcp.o xdr_rec.o +clnt_tcp.o xdr_rec.o +svc_tcp.o xdr_rec.o +svc_tcp.o xdr_rec.o +clnt_tcp.o xdr_rec.o +svc_tcp.o xdr_rec.o +svc_tcp.o svc.o +svc_udp.o svc.o +svc_tcp.o svc.o +svc_udp.o svc.o +_yp_check.o yp_bind.o +getgrent.o yp_first.o +getpwent.o yp_first.o +_yp_check.o yp_get_default_domain.o +ethers.o yp_get_default_domain.o +getgrent.o yp_get_default_domain.o +getnetgrent.o yp_get_default_domain.o +ethers.o ypmatch_cache.o +getaddrinfo.o ypmatch_cache.o +getgrent.o ypmatch_cache.o +gethostnamadr.o ypmatch_cache.o +getnetgrent.o ypmatch_cache.o +getpwent.o ypmatch_cache.o +getgrent.o ypmatch_cache.o +getpwent.o ypmatch_cache.o +yp_all.o ypprot_err.o +yp_first.o ypprot_err.o +yp_maplist.o ypprot_err.o +yp_master.o ypprot_err.o +yp_order.o ypprot_err.o +ypmatch_cache.o ypprot_err.o +Ovfork.o cerror.o +__semctl.o cerror.o +__syscall.o cerror.o +__sysctl.o cerror.o +_exit.o cerror.o +_getlogin.o cerror.o +_ptrace.o cerror.o +_setlogin.o cerror.o +accept.o cerror.o +access.o cerror.o +acct.o cerror.o +adjtime.o cerror.o +bind.o cerror.o +brk.o cerror.o +chdir.o cerror.o +chflags.o cerror.o +chmod.o cerror.o +chown.o cerror.o +chroot.o cerror.o +clock_getres.o cerror.o +clock_gettime.o cerror.o +clock_settime.o cerror.o +close.o cerror.o +connect.o cerror.o +dup.o cerror.o +dup2.o cerror.o +exect.o cerror.o +execve.o cerror.o +fchdir.o cerror.o +fchflags.o cerror.o +fchmod.o cerror.o +fchown.o cerror.o +fcntl.o cerror.o +fhopen.o cerror.o +fhstat.o cerror.o +fhstatfs.o cerror.o +flock.o cerror.o +fork.o cerror.o +fpathconf.o cerror.o +fstat.o cerror.o +fstatfs.o cerror.o +fsync.o cerror.o +futimes.o cerror.o +getdirentries.o cerror.o +getegid.o cerror.o +geteuid.o cerror.o +getfh.o cerror.o +getfsstat.o cerror.o +getgid.o cerror.o +getgroups.o cerror.o +getitimer.o cerror.o +getpeername.o cerror.o +getpgid.o cerror.o +getpgrp.o cerror.o +getpid.o cerror.o +getppid.o cerror.o +getpriority.o cerror.o +getrlimit.o cerror.o +getrusage.o cerror.o +getsid.o cerror.o +getsockname.o cerror.o +getsockopt.o cerror.o +gettimeofday.o cerror.o +getuid.o cerror.o +ioctl.o cerror.o +issetugid.o cerror.o +kevent.o cerror.o +kill.o cerror.o +kqueue.o cerror.o +ktrace.o cerror.o +lchown.o cerror.o +lfs_bmapv.o cerror.o +lfs_markv.o cerror.o +lfs_segclean.o cerror.o +lfs_segwait.o cerror.o +link.o cerror.o +listen.o cerror.o +lstat.o cerror.o +madvise.o cerror.o +mincore.o cerror.o +minherit.o cerror.o +mkdir.o cerror.o +mkfifo.o cerror.o +mknod.o cerror.o +mlock.o cerror.o +mount.o cerror.o +mprotect.o cerror.o +msgctl.o cerror.o +msgget.o cerror.o +msgrcv.o cerror.o +msgsnd.o cerror.o +msync.o cerror.o +munlock.o cerror.o +munmap.o cerror.o +nanosleep.o cerror.o +nfssvc.o cerror.o +ntp_adjtime.o cerror.o +ntp_gettime.o cerror.o +open.o cerror.o +pathconf.o cerror.o +pipe.o cerror.o +poll.o cerror.o +profil.o cerror.o +quotactl.o cerror.o +read.o cerror.o +readlink.o cerror.o +readv.o cerror.o +reboot.o cerror.o +recvfrom.o cerror.o +recvmsg.o cerror.o +rename.o cerror.o +revoke.o cerror.o +rfork.o cerror.o +rmdir.o cerror.o +sbrk.o cerror.o +select.o cerror.o +semget.o cerror.o +semop.o cerror.o +sendmsg.o cerror.o +sendto.o cerror.o +setegid.o cerror.o +seteuid.o cerror.o +setgid.o cerror.o +setgroups.o cerror.o +setitimer.o cerror.o +setpgid.o cerror.o +setpriority.o cerror.o +setrlimit.o cerror.o +setsid.o cerror.o +setsockopt.o cerror.o +settimeofday.o cerror.o +setuid.o cerror.o +shmat.o cerror.o +shmctl.o cerror.o +shmdt.o cerror.o +shmget.o cerror.o +shutdown.o cerror.o +sigaction.o cerror.o +sigaltstack.o cerror.o +sigpending.o cerror.o +sigprocmask.o cerror.o +sigreturn.o cerror.o +sigsuspend.o cerror.o +socket.o cerror.o +socketpair.o cerror.o +stat.o cerror.o +statfs.o cerror.o +swapctl.o cerror.o +swapon.o cerror.o +symlink.o cerror.o +sync.o cerror.o +sysarch.o cerror.o +syscall.o cerror.o +umask.o cerror.o +undelete.o cerror.o +unlink.o cerror.o +unmount.o cerror.o +utimes.o cerror.o +vadvise.o cerror.o +wait4.o cerror.o +write.o cerror.o +writev.o cerror.o +xfspioctl.o cerror.o +brk.o sbrk.o +gmon.o brk.o diff --git a/src/regress/usr.bin/tsort/pairs2 b/src/regress/usr.bin/tsort/pairs2 new file mode 100644 index 000000000..5b7b9ba4c --- /dev/null +++ b/src/regress/usr.bin/tsort/pairs2 @@ -0,0 +1,19 @@ +rec_put.o bt_split.o +bt_split.o db.o +hash.o hash_buf.o +hash_buf.o hash_page.o +hash_buf.o hash_page.o +getaddrinfo.o res_query.o +hash_bigkey.o hash_page.o +hash_bigkey.o hash_page.o +hash_bigkey.o hash.o +getaddrinfo.o res_mkquery.o +getaddrinfo.o res_init.o +getaddrinfo.o res_send.o +res_send.o res_init.o +getaddrinfo.o res_debug.o +getaddrinfo.o res_debug.o +hash_page.o hash.o +hash_page.o hash.o +opendir.o scandir.o +pmap_getport.o clnt_udp.o diff --git a/src/regress/usr.bin/tsort/pairs5 b/src/regress/usr.bin/tsort/pairs5 new file mode 100644 index 000000000..15aad154a --- /dev/null +++ b/src/regress/usr.bin/tsort/pairs5 @@ -0,0 +1,663 @@ +codes.so codes.so +comp_captab.so comp_captab.so +expanded.so expanded.so +fallback.so fallback.so +lib_gen.so lib_gen.so +lib_keyname.so lib_keyname.so +names.so names.so +unctrl.so unctrl.so +define_key.so define_key.so +keybound.so keybound.so +keyok.so keyok.so +lib_adabind.so lib_adabind.so +lib_addch.so lib_addch.so +lib_addstr.so lib_addstr.so +lib_beep.so lib_beep.so +lib_bkgd.so lib_bkgd.so +lib_box.so lib_box.so +lib_chgat.so lib_chgat.so +lib_clear.so lib_clear.so +lib_clearok.so lib_clearok.so +lib_clrbot.so lib_clrbot.so +lib_clreol.so lib_clreol.so +lib_color.so lib_color.so +lib_colorset.so lib_colorset.so +lib_delch.so lib_delch.so +lib_delwin.so lib_delwin.so +lib_dft_fgbg.so lib_dft_fgbg.so +lib_echo.so lib_echo.so +lib_endwin.so lib_endwin.so +lib_erase.so lib_erase.so +lib_flash.so lib_flash.so +lib_freeall.so lib_freeall.so +lib_getch.so lib_getch.so +lib_getstr.so lib_getstr.so +lib_hline.so lib_hline.so +lib_immedok.so lib_immedok.so +lib_inchstr.so lib_inchstr.so +lib_initscr.so lib_initscr.so +lib_insch.so lib_insch.so +lib_insdel.so lib_insdel.so +lib_insstr.so lib_insstr.so +lib_instr.so lib_instr.so +lib_isendwin.so lib_isendwin.so +lib_leaveok.so lib_leaveok.so +lib_mouse.so lib_mouse.so +lib_move.so lib_move.so +lib_mvwin.so lib_mvwin.so +lib_newterm.so lib_newterm.so +lib_newwin.so lib_newwin.so +lib_nl.so lib_nl.so +lib_overlay.so lib_overlay.so +lib_pad.so lib_pad.so +lib_printw.so lib_printw.so +lib_redrawln.so lib_redrawln.so +lib_refresh.so lib_refresh.so +lib_restart.so lib_restart.so +lib_scanw.so lib_scanw.so +lib_screen.so lib_screen.so +lib_scroll.so lib_scroll.so +lib_scrollok.so lib_scrollok.so +lib_scrreg.so lib_scrreg.so +lib_set_term.so lib_set_term.so +lib_slk.so lib_slk.so +lib_slkatr_set.so lib_slkatr_set.so +lib_slkatrof.so lib_slkatrof.so +lib_slkatron.so lib_slkatron.so +lib_slkatrset.so lib_slkatrset.so +lib_slkattr.so lib_slkattr.so +lib_slkclear.so lib_slkclear.so +lib_slkcolor.so lib_slkcolor.so +lib_slkinit.so lib_slkinit.so +lib_slklab.so lib_slklab.so +lib_slkrefr.so lib_slkrefr.so +lib_slkset.so lib_slkset.so +lib_slktouch.so lib_slktouch.so +lib_touch.so lib_touch.so +lib_ungetch.so lib_ungetch.so +lib_vline.so lib_vline.so +lib_wattroff.so lib_wattroff.so +lib_wattron.so lib_wattron.so +lib_winch.so lib_winch.so +lib_window.so lib_window.so +nc_panel.so nc_panel.so +resizeterm.so resizeterm.so +safe_sprintf.so safe_sprintf.so +sigaction.so sigaction.so +tries.so tries.so +version.so version.so +wresize.so wresize.so +access.so access.so +add_tries.so add_tries.so +alloc_entry.so alloc_entry.so +alloc_ttype.so alloc_ttype.so +captoinfo.so captoinfo.so +comp_error.so comp_error.so +comp_expand.so comp_expand.so +comp_hash.so comp_hash.so +comp_parse.so comp_parse.so +comp_scan.so comp_scan.so +doalloc.so doalloc.so +free_ttype.so free_ttype.so +getenv_num.so getenv_num.so +home_terminfo.so home_terminfo.so +init_keytry.so init_keytry.so +lib_acs.so lib_acs.so +lib_baudrate.so lib_baudrate.so +lib_cur_term.so lib_cur_term.so +lib_data.so lib_data.so +lib_has_cap.so lib_has_cap.so +lib_kernel.so lib_kernel.so +lib_longname.so lib_longname.so +lib_napms.so lib_napms.so +lib_options.so lib_options.so +lib_print.so lib_print.so +lib_raw.so lib_raw.so +lib_setup.so lib_setup.so +lib_termcap.so lib_termcap.so +lib_termname.so lib_termname.so +lib_tgoto.so lib_tgoto.so +lib_ti.so lib_ti.so +lib_tparm.so lib_tparm.so +lib_tputs.so lib_tputs.so +lib_ttyflags.so lib_ttyflags.so +name_match.so name_match.so +parse_entry.so parse_entry.so +read_bsd_terminfo.so read_bsd_terminfo.so +read_entry.so read_entry.so +read_termcap.so read_termcap.so +setbuf.so setbuf.so +strings.so strings.so +write_entry.so write_entry.so +lib_trace.so lib_trace.so +lib_traceatr.so lib_traceatr.so +lib_tracebits.so lib_tracebits.so +lib_tracechr.so lib_tracechr.so +lib_tracedmp.so lib_tracedmp.so +lib_tracemse.so lib_tracemse.so +trace_buf.so trace_buf.so +trace_tries.so trace_tries.so +trace_xnames.so trace_xnames.so +hardscroll.so hardscroll.so +hashmap.so hashmap.so +lib_mvcur.so lib_mvcur.so +lib_tstp.so lib_tstp.so +lib_twait.so lib_twait.so +lib_vidattr.so lib_vidattr.so +tty_update.so tty_update.so +lib_tgoto.so lib_termcap.so +lib_set_term.so lib_color.so +lib_colorset.so lib_color.so +lib_set_term.so lib_color.so +lib_slkatr_set.so lib_color.so +lib_slkcolor.so lib_color.so +tty_update.so lib_color.so +lib_newterm.so lib_setup.so +resizeterm.so lib_setup.so +setbuf.so lib_setup.so +lib_initscr.so lib_getch.so +lib_newterm.so lib_setup.so +lib_set_term.so lib_setup.so +resizeterm.so lib_setup.so +setbuf.so lib_setup.so +lib_cur_term.so lib_tputs.so +lib_termcap.so lib_tputs.so +define_key.so lib_data.so +hardscroll.so lib_data.so +hashmap.so lib_data.so +init_keytry.so lib_data.so +keybound.so lib_data.so +keyok.so lib_data.so +lib_color.so lib_data.so +lib_delwin.so lib_data.so +lib_dft_fgbg.so lib_data.so +lib_echo.so lib_data.so +lib_endwin.so lib_data.so +lib_getch.so lib_data.so +lib_getstr.so lib_data.so +lib_isendwin.so lib_data.so +lib_kernel.so lib_data.so +lib_mouse.so lib_data.so +lib_mvcur.so lib_data.so +lib_mvwin.so lib_data.so +lib_newterm.so lib_data.so +lib_newwin.so lib_data.so +lib_nl.so lib_data.so +lib_options.so lib_data.so +lib_pad.so lib_data.so +lib_raw.so lib_data.so +lib_restart.so lib_data.so +lib_set_term.so lib_data.so +lib_setup.so lib_data.so +lib_slk.so lib_data.so +lib_slkatr_set.so lib_data.so +lib_slkatrof.so lib_data.so +lib_slkatron.so lib_data.so +lib_slkatrset.so lib_data.so +lib_slkattr.so lib_data.so +lib_slkclear.so lib_data.so +lib_slkcolor.so lib_data.so +lib_slklab.so lib_data.so +lib_slkrefr.so lib_data.so +lib_slkset.so lib_data.so +lib_slktouch.so lib_data.so +lib_tputs.so lib_data.so +lib_tstp.so lib_data.so +lib_ttyflags.so lib_data.so +lib_twait.so lib_data.so +lib_ungetch.so lib_data.so +lib_vidattr.so lib_data.so +nc_panel.so lib_data.so +resizeterm.so lib_data.so +safe_sprintf.so lib_data.so +setbuf.so lib_data.so +tty_update.so lib_data.so +lib_addch.so lib_setup.so +lib_newterm.so lib_setup.so +lib_screen.so access.so +read_entry.so access.so +write_entry.so access.so +define_key.so add_tries.so +init_keytry.so add_tries.so +keyok.so add_tries.so +lib_mouse.so add_tries.so +alloc_entry.so alloc_ttype.so +lib_clrbot.so lib_addch.so +lib_clreol.so lib_addch.so +lib_delch.so lib_addch.so +lib_erase.so lib_addch.so +lib_insdel.so lib_addch.so +lib_scroll.so lib_addch.so +wresize.so lib_addch.so +lib_tputs.so lib_baudrate.so +parse_entry.so comp_captab.so +parse_entry.so comp_captab.so +parse_entry.so captoinfo.so +parse_entry.so comp_scan.so +parse_entry.so comp_scan.so +comp_parse.so alloc_entry.so +alloc_entry.so alloc_ttype.so +comp_parse.so alloc_ttype.so +comp_parse.so comp_error.so +comp_scan.so comp_error.so +comp_parse.so comp_error.so +comp_scan.so comp_error.so +parse_entry.so comp_error.so +read_termcap.so comp_error.so +parse_entry.so comp_scan.so +lib_vidattr.so lib_color.so +tty_update.so lib_color.so +alloc_ttype.so doalloc.so +comp_expand.so doalloc.so +comp_scan.so doalloc.so +hardscroll.so doalloc.so +lib_tgoto.so doalloc.so +lib_tparm.so doalloc.so +lib_trace.so doalloc.so +parse_entry.so doalloc.so +read_entry.so doalloc.so +safe_sprintf.so doalloc.so +trace_buf.so doalloc.so +wresize.so doalloc.so +alloc_entry.so comp_error.so +captoinfo.so comp_error.so +comp_parse.so comp_error.so +comp_scan.so comp_error.so +home_terminfo.so comp_error.so +lib_tparm.so comp_error.so +parse_entry.so comp_error.so +write_entry.so comp_error.so +keybound.so tries.so +keyok.so tries.so +lib_setup.so fallback.so +parse_entry.so comp_hash.so +parse_entry.so comp_hash.so +comp_parse.so name_match.so +parse_entry.so name_match.so +lib_beep.so lib_tputs.so +lib_flash.so lib_tputs.so +lib_mouse.so lib_tputs.so +lib_options.so lib_tputs.so +lib_ttyflags.so lib_tputs.so +tty_update.so lib_tputs.so +read_bsd_terminfo.so comp_parse.so +read_termcap.so comp_parse.so +lib_cur_term.so free_ttype.so +read_entry.so free_ttype.so +lib_delwin.so lib_newwin.so +lib_pad.so lib_newwin.so +lib_set_term.so lib_newwin.so +parse_entry.so comp_captab.so +parse_entry.so comp_scan.so +lib_getstr.so lib_ttyflags.so +comp_scan.so comp_error.so +lib_initscr.so getenv_num.so +lib_setup.so getenv_num.so +hardscroll.so hashmap.so +read_bsd_terminfo.so comp_parse.so +read_termcap.so comp_parse.so +read_entry.so home_terminfo.so +write_entry.so home_terminfo.so +parse_entry.so comp_captab.so +parse_entry.so comp_captab.so +lib_set_term.so lib_acs.so +parse_entry.so alloc_entry.so +lib_options.so init_keytry.so +write_entry.so read_entry.so +lib_ttyflags.so lib_options.so +lib_color.so hashmap.so +lib_redrawln.so hashmap.so +lib_pad.so lib_newwin.so +comp_parse.so alloc_entry.so +lib_newterm.so lib_mvcur.so +tty_update.so lib_mvcur.so +lib_endwin.so lib_mvcur.so +comp_parse.so name_match.so +read_termcap.so name_match.so +hashmap.so hardscroll.so +lib_cur_term.so lib_baudrate.so +lib_color.so lib_tputs.so +lib_mvcur.so lib_tputs.so +lib_tstp.so lib_tputs.so +lib_vidattr.so lib_tputs.so +tty_update.so lib_tputs.so +parse_entry.so comp_scan.so +comp_parse.so parse_entry.so +lib_printw.so safe_sprintf.so +parse_entry.so comp_scan.so +read_entry.so read_bsd_terminfo.so +read_entry.so read_bsd_terminfo.so +comp_parse.so read_entry.so +lib_setup.so read_entry.so +read_bsd_terminfo.so comp_parse.so +read_termcap.so comp_parse.so +lib_setup.so read_termcap.so +define_key.so tries.so +keyok.so tries.so +define_key.so tries.so +lib_bkgd.so lib_addch.so +lib_box.so lib_addch.so +lib_hline.so lib_addch.so +lib_insch.so lib_addch.so +lib_vline.so lib_addch.so +comp_parse.so comp_scan.so +read_termcap.so comp_parse.so +lib_newterm.so lib_set_term.so +lib_mvcur.so strings.so +parse_entry.so strings.so +read_termcap.so strings.so +lib_mvcur.so strings.so +read_termcap.so strings.so +parse_entry.so alloc_entry.so +lib_set_term.so lib_data.so +lib_tstp.so lib_data.so +lib_newterm.so tty_update.so +lib_endwin.so tty_update.so +tty_update.so hashmap.so +tty_update.so hardscroll.so +lib_insdel.so lib_scroll.so +tty_update.so lib_scroll.so +hardscroll.so tty_update.so +lib_set_term.so setbuf.so +lib_ttyflags.so setbuf.so +read_bsd_terminfo.so comp_error.so +read_termcap.so comp_error.so +lib_getstr.so lib_ttyflags.so +lib_newterm.so lib_ttyflags.so +lib_raw.so lib_ttyflags.so +comp_parse.so comp_error.so +comp_scan.so comp_error.so +parse_entry.so comp_error.so +write_entry.so comp_error.so +lib_newterm.so lib_set_term.so +lib_newterm.so lib_tstp.so +tty_update.so lib_tstp.so +lib_newterm.so lib_slk.so +lib_slkinit.so lib_slk.so +lib_newterm.so lib_slk.so +parse_entry.so comp_scan.so +lib_mvcur.so strings.so +lib_mvcur.so strings.so +parse_entry.so strings.so +read_termcap.so strings.so +lib_mvcur.so strings.so +comp_parse.so comp_error.so +lib_addch.so lib_window.so +lib_addstr.so lib_window.so +lib_bkgd.so lib_window.so +lib_box.so lib_window.so +lib_clrbot.so lib_window.so +lib_clreol.so lib_window.so +lib_delch.so lib_window.so +lib_erase.so lib_window.so +lib_hline.so lib_window.so +lib_insdel.so lib_window.so +lib_insstr.so lib_window.so +lib_scroll.so lib_window.so +lib_vline.so lib_window.so +parse_entry.so comp_scan.so +comp_scan.so comp_error.so +write_entry.so comp_error.so +write_entry.so read_entry.so +lib_getch.so lib_twait.so +comp_scan.so lib_trace.so +parse_entry.so lib_trace.so +lib_getch.so lib_setup.so +lib_restart.so lib_setup.so +tty_update.so lib_setup.so +parse_entry.so free_ttype.so +read_entry.so free_ttype.so +write_entry.so free_ttype.so +parse_entry.so lib_trace.so +lib_addstr.so lib_addch.so +lib_insstr.so lib_addch.so +captoinfo.so comp_error.so +comp_parse.so comp_error.so +comp_scan.so comp_error.so +parse_entry.so comp_error.so +write_entry.so comp_error.so +comp_parse.so alloc_entry.so +parse_entry.so alloc_entry.so +lib_box.so lib_acs.so +lib_hline.so lib_acs.so +lib_set_term.so lib_acs.so +lib_vline.so lib_acs.so +lib_newterm.so lib_baudrate.so +lib_termcap.so lib_baudrate.so +lib_getstr.so lib_beep.so +lib_termcap.so codes.so +parse_entry.so names.so +lib_ti.so names.so +lib_getstr.so lib_raw.so +lib_newterm.so lib_raw.so +lib_options.so lib_raw.so +lib_restart.so lib_raw.so +lib_mvwin.so lib_overlay.so +hashmap.so lib_cur_term.so +init_keytry.so lib_cur_term.so +lib_acs.so lib_cur_term.so +lib_baudrate.so lib_cur_term.so +lib_beep.so lib_cur_term.so +lib_color.so lib_cur_term.so +lib_dft_fgbg.so lib_cur_term.so +lib_flash.so lib_cur_term.so +lib_has_cap.so lib_cur_term.so +lib_kernel.so lib_cur_term.so +lib_mouse.so lib_cur_term.so +lib_mvcur.so lib_cur_term.so +lib_newterm.so lib_cur_term.so +lib_options.so lib_cur_term.so +lib_print.so lib_cur_term.so +lib_raw.so lib_cur_term.so +lib_screen.so lib_cur_term.so +lib_set_term.so lib_cur_term.so +lib_setup.so lib_cur_term.so +lib_slk.so lib_cur_term.so +lib_slkrefr.so lib_cur_term.so +lib_termcap.so lib_cur_term.so +lib_ti.so lib_cur_term.so +lib_tputs.so lib_cur_term.so +lib_ttyflags.so lib_cur_term.so +lib_vidattr.so lib_cur_term.so +resizeterm.so lib_cur_term.so +tty_update.so lib_cur_term.so +lib_mvcur.so lib_options.so +hashmap.so lib_data.so +lib_color.so lib_data.so +lib_delwin.so lib_data.so +lib_newwin.so lib_data.so +lib_redrawln.so lib_data.so +lib_refresh.so lib_data.so +lib_screen.so lib_data.so +lib_set_term.so lib_data.so +tty_update.so lib_data.so +lib_initscr.so lib_ttyflags.so +lib_set_term.so lib_ttyflags.so +lib_tstp.so lib_ttyflags.so +lib_set_term.so lib_ttyflags.so +lib_tstp.so lib_ttyflags.so +lib_set_term.so lib_cur_term.so +lib_mvwin.so lib_delwin.so +lib_screen.so lib_delwin.so +lib_pad.so lib_newwin.so +lib_pad.so tty_update.so +lib_refresh.so tty_update.so +lib_tstp.so tty_update.so +lib_mvwin.so lib_window.so +lib_screen.so lib_window.so +lib_restart.so lib_echo.so +lib_tstp.so lib_endwin.so +lib_getstr.so lib_kernel.so +lib_tstp.so lib_kernel.so +lib_options.so lib_has_cap.so +tty_update.so lib_has_cap.so +lib_options.so lib_has_cap.so +define_key.so lib_options.so +lib_dft_fgbg.so lib_color.so +lib_getch.so lib_touch.so +lib_getstr.so lib_touch.so +lib_mouse.so keyok.so +lib_getstr.so lib_kernel.so +tty_update.so lib_mvcur.so +lib_mvwin.so lib_window.so +lib_tputs.so lib_napms.so +lib_twait.so lib_napms.so +hashmap.so lib_data.so +lib_newwin.so lib_data.so +lib_pad.so lib_data.so +lib_refresh.so lib_data.so +lib_screen.so lib_data.so +lib_set_term.so lib_data.so +tty_update.so lib_data.so +lib_initscr.so lib_newterm.so +lib_screen.so lib_newwin.so +lib_set_term.so lib_newwin.so +lib_window.so lib_newwin.so +lib_getstr.so lib_nl.so +lib_restart.so lib_nl.so +lib_restart.so lib_raw.so +lib_getstr.so lib_echo.so +lib_restart.so lib_echo.so +lib_restart.so lib_nl.so +lib_getstr.so lib_raw.so +lib_restart.so lib_raw.so +lib_termcap.so codes.so +parse_entry.so names.so +lib_ti.so names.so +lib_baudrate.so lib_tputs.so +lib_cur_term.so lib_tputs.so +lib_acs.so lib_tputs.so +lib_beep.so lib_tputs.so +lib_color.so lib_tputs.so +lib_flash.so lib_tputs.so +lib_mouse.so lib_tputs.so +lib_mvcur.so lib_tputs.so +lib_options.so lib_tputs.so +lib_slkrefr.so lib_tputs.so +tty_update.so lib_tputs.so +lib_restart.so lib_raw.so +lib_restart.so lib_ttyflags.so +tty_update.so lib_ttyflags.so +lib_endwin.so lib_ttyflags.so +lib_set_term.so resizeterm.so +lib_set_term.so lib_cur_term.so +lib_setup.so lib_cur_term.so +lib_tstp.so lib_set_term.so +lib_newterm.so lib_setup.so +lib_restart.so lib_setup.so +lib_termcap.so lib_setup.so +lib_slk.so lib_slkrefr.so +hashmap.so lib_data.so +lib_gen.so lib_data.so +lib_initscr.so lib_data.so +lib_newterm.so lib_data.so +lib_newwin.so lib_data.so +lib_printw.so lib_data.so +lib_scanw.so lib_data.so +lib_set_term.so lib_data.so +lib_slkclear.so lib_data.so +lib_slkrefr.so lib_data.so +lib_ttyflags.so lib_data.so +tty_update.so lib_data.so +lib_termcap.so codes.so +parse_entry.so names.so +lib_ti.so names.so +lib_set_term.so lib_vidattr.so +lib_dft_fgbg.so lib_ti.so +lib_color.so lib_tparm.so +lib_mvcur.so lib_tparm.so +lib_print.so lib_tparm.so +lib_slkrefr.so lib_tparm.so +lib_tgoto.so lib_tparm.so +lib_vidattr.so lib_tparm.so +tty_update.so lib_tparm.so +lib_color.so lib_tputs.so +lib_mvcur.so lib_tputs.so +lib_vidattr.so lib_tputs.so +tty_update.so lib_tputs.so +lib_longname.so lib_setup.so +lib_newterm.so lib_options.so +captoinfo.so unctrl.so +comp_scan.so unctrl.so +lib_addch.so unctrl.so +lib_getch.so lib_ungetch.so +lib_mouse.so lib_ungetch.so +tty_update.so lib_vidattr.so +lib_gen.so lib_printw.so +lib_gen.so lib_scanw.so +lib_gen.so lib_addch.so +lib_getstr.so lib_addch.so +lib_pad.so lib_addch.so +lib_slk.so lib_addch.so +lib_gen.so lib_addstr.so +lib_gen.so lib_addstr.so +lib_getstr.so lib_addstr.so +lib_printw.so lib_addstr.so +lib_slkrefr.so lib_addstr.so +lib_gen.so lib_wattroff.so +lib_gen.so lib_wattron.so +lib_gen.so lib_bkgd.so +lib_mvwin.so lib_bkgd.so +lib_gen.so lib_bkgd.so +lib_gen.so lib_box.so +lib_gen.so lib_chgat.so +lib_gen.so lib_clear.so +lib_gen.so lib_clrbot.so +lib_addch.so lib_clreol.so +lib_gen.so lib_clreol.so +lib_gen.so lib_colorset.so +lib_gen.so lib_delch.so +lib_gen.so lib_addch.so +lib_getch.so lib_addch.so +lib_getstr.so lib_addch.so +lib_pad.so lib_addch.so +lib_clear.so lib_erase.so +lib_gen.so lib_erase.so +lib_mvwin.so lib_erase.so +lib_slkclear.so lib_erase.so +lib_gen.so lib_getch.so +lib_getstr.so lib_getch.so +lib_gen.so lib_getstr.so +lib_getch.so lib_getstr.so +lib_scanw.so lib_getstr.so +lib_gen.so lib_hline.so +lib_slk.so lib_hline.so +lib_gen.so lib_winch.so +lib_gen.so lib_inchstr.so +lib_gen.so lib_instr.so +lib_gen.so lib_insch.so +lib_insstr.so lib_insch.so +lib_gen.so lib_insdel.so +lib_gen.so lib_insstr.so +lib_gen.so lib_mouse.so +lib_gen.so lib_move.so +lib_getstr.so lib_move.so +lib_printw.so lib_move.so +lib_scanw.so lib_move.so +lib_slk.so lib_move.so +lib_slkrefr.so lib_move.so +lib_window.so lib_move.so +lib_slkrefr.so lib_refresh.so +lib_gen.so lib_redrawln.so +lib_gen.so lib_refresh.so +lib_getch.so lib_refresh.so +lib_getstr.so lib_refresh.so +lib_slkclear.so lib_refresh.so +lib_slkrefr.so lib_refresh.so +lib_window.so lib_refresh.so +resizeterm.so wresize.so +lib_addch.so lib_scroll.so +lib_gen.so lib_scroll.so +lib_gen.so lib_scrreg.so +lib_refresh.so lib_window.so +lib_mvwin.so lib_window.so +lib_gen.so lib_options.so +lib_bkgd.so lib_touch.so +lib_delwin.so lib_touch.so +lib_gen.so lib_touch.so +lib_mvwin.so lib_touch.so +lib_overlay.so lib_touch.so +lib_redrawln.so lib_touch.so +lib_screen.so lib_touch.so +lib_scroll.so lib_touch.so +lib_gen.so lib_vline.so diff --git a/src/regress/usr.bin/tsort/pairs6 b/src/regress/usr.bin/tsort/pairs6 new file mode 100644 index 000000000..4ac94af03 --- /dev/null +++ b/src/regress/usr.bin/tsort/pairs6 @@ -0,0 +1,332 @@ +1 10 +1 11 +1 12 +1 16 +1 17 +1 19 +1 2 +1 20 +1 21 +1 22 +1 27 +1 29 +1 3 +1 30 +1 38 +1 39 +1 4 +1 40 +1 5 +1 6 +1 7 +10 12 +10 30 +11 12 +11 13 +11 20 +11 22 +11 30 +11 31 +11 5 +11 7 +12 10 +12 20 +12 21 +12 27 +12 5 +12 6 +13 11 +13 12 +13 20 +13 22 +13 29 +13 30 +13 5 +13 7 +14 10 +14 12 +14 27 +14 30 +15 12 +15 16 +15 30 +15 38 +16 10 +16 12 +16 15 +16 17 +16 21 +16 22 +16 27 +16 30 +16 35 +16 40 +16 6 +16 7 +17 10 +17 11 +17 12 +17 16 +17 20 +17 21 +17 27 +17 29 +17 30 +17 38 +17 5 +17 6 +18 10 +18 16 +18 17 +18 21 +18 27 +18 38 +18 40 +18 6 +19 10 +19 12 +19 14 +19 27 +19 30 +19 32 +2 1 +2 12 +2 16 +2 20 +2 30 +2 38 +2 5 +21 10 +21 12 +21 16 +21 22 +21 27 +21 30 +21 38 +21 7 +22 10 +22 12 +22 19 +22 27 +22 30 +22 4 +23 10 +23 16 +23 17 +23 21 +23 27 +23 34 +23 38 +23 40 +23 6 +24 10 +24 16 +24 17 +24 21 +24 27 +24 38 +24 40 +24 6 +25 10 +25 12 +25 14 +25 16 +25 21 +25 26 +25 27 +25 30 +25 32 +25 38 +25 6 +25 9 +26 10 +26 12 +26 14 +26 21 +26 25 +26 27 +26 30 +26 32 +26 6 +26 8 +27 12 +27 30 +28 10 +28 16 +28 17 +28 21 +28 27 +28 38 +28 40 +28 6 +29 12 +29 13 +29 20 +29 22 +29 30 +29 31 +29 5 +29 7 +3 1 +3 2 +30 10 +30 20 +30 21 +30 27 +30 5 +30 6 +31 11 +31 12 +31 20 +31 22 +31 29 +31 30 +31 5 +31 7 +32 10 +32 12 +32 27 +32 30 +33 10 +33 16 +33 17 +33 21 +33 27 +33 34 +33 38 +33 40 +33 6 +34 10 +34 21 +34 27 +34 6 +35 12 +35 16 +35 30 +35 38 +36 10 +36 16 +36 17 +36 21 +36 27 +36 38 +36 40 +36 6 +37 10 +37 16 +37 17 +37 21 +37 27 +37 34 +37 38 +37 40 +37 6 +38 10 +38 11 +38 12 +38 15 +38 17 +38 20 +38 21 +38 22 +38 27 +38 29 +38 30 +38 35 +38 40 +38 5 +38 6 +38 7 +39 11 +39 15 +39 16 +39 22 +39 29 +39 35 +39 38 +39 7 +4 10 +4 12 +4 14 +4 27 +4 30 +4 32 +40 10 +40 11 +40 12 +40 16 +40 18 +40 20 +40 21 +40 22 +40 23 +40 24 +40 25 +40 26 +40 27 +40 28 +40 29 +40 30 +40 33 +40 36 +40 37 +40 38 +40 41 +40 42 +40 5 +40 6 +40 7 +40 8 +40 9 +41 10 +41 16 +41 17 +41 21 +41 27 +41 38 +41 40 +41 6 +42 10 +42 16 +42 17 +42 21 +42 27 +42 38 +42 40 +42 6 +6 10 +6 12 +6 16 +6 22 +6 27 +6 30 +6 38 +6 7 +7 10 +7 12 +7 19 +7 27 +7 30 +7 4 +8 10 +8 12 +8 14 +8 16 +8 21 +8 26 +8 27 +8 30 +8 32 +8 38 +8 6 +8 9 +9 10 +9 12 +9 14 +9 21 +9 25 +9 27 +9 30 +9 32 +9 6 +9 8 diff --git a/src/regress/usr.bin/tsort/t2.canonical b/src/regress/usr.bin/tsort/t2.canonical new file mode 100644 index 000000000..0961ca773 --- /dev/null +++ b/src/regress/usr.bin/tsort/t2.canonical @@ -0,0 +1 @@ +bt_split.o,db.o,rec_open.o,rec_get.o,rec_put.o diff --git a/src/regress/usr.bin/tsort/tsort-check b/src/regress/usr.bin/tsort/tsort-check new file mode 100644 index 000000000..f42342bce --- /dev/null +++ b/src/regress/usr.bin/tsort/tsort-check @@ -0,0 +1,54 @@ +#!/usr/bin/perl + +# Written by Marc Espie, 2001. +# Public domain + +%order=(); + +%exception=(); +%ok=(); + + +open(SORTED, shift) or die "No sorted output\n"; +while() { + chomp; + while (m/^tsort: cycle in data/) { + @list = (); + while () { + chomp; + last if m/^tsort: cycle in data/; + last unless m/^tsort:\s+/; + push(@list, $'); + } + for $i (1 .. @list) { + $exception{$list[$i-1].' '.$list[$i % @list]} = 1; + } + $break{$list[1]} = 1; + } + $order{$_} = $i++; +} +close(SORTED); + +@pairs=(); + +open(PAIRS, shift) or die "No pairs\n"; +while () { + chomp; + push(@pairs, split(/\s+/, $_)); + while (@pairs >= 2) { + $b = pop @pairs; + $a = pop @pairs; + if (defined $exception{"$a $b"}) { + $ok{"$a $b"} = 1; + } + next if $break{$a} = 1; + next unless $order{$a} < $order{$b}; + die "Bad pair $a $b\n"; + } +} +close(PAIRS); + +while (($key, $v) = each %exception) { + next if $v != 1; + die "Bogus cycle edge $key\n" unless $ok{$key}; +} diff --git a/src/regress/usr.bin/xargs/CVS/Entries b/src/regress/usr.bin/xargs/CVS/Entries new file mode 100644 index 000000000..d45039e13 --- /dev/null +++ b/src/regress/usr.bin/xargs/CVS/Entries @@ -0,0 +1,4 @@ +/Makefile/1.1/Thu Mar 25 01:43:47 2010// +/showargs.c/1.1/Thu Mar 25 01:43:47 2010// +/xargs-L.sh/1.1/Thu Mar 25 01:43:47 2010// +D diff --git a/src/regress/usr.bin/xargs/CVS/Repository b/src/regress/usr.bin/xargs/CVS/Repository new file mode 100644 index 000000000..b0dee8382 --- /dev/null +++ b/src/regress/usr.bin/xargs/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/xargs diff --git a/src/regress/usr.bin/xargs/CVS/Root b/src/regress/usr.bin/xargs/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/xargs/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/xargs/Makefile b/src/regress/usr.bin/xargs/Makefile new file mode 100644 index 000000000..667b3557e --- /dev/null +++ b/src/regress/usr.bin/xargs/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2010/03/25 01:43:47 schwarze Exp $ + +regress: showargs + @sh ${.CURDIR}/xargs-L.sh + +clean: + rm -f showargs + +.include diff --git a/src/regress/usr.bin/xargs/showargs.c b/src/regress/usr.bin/xargs/showargs.c new file mode 100644 index 000000000..d30f7030f --- /dev/null +++ b/src/regress/usr.bin/xargs/showargs.c @@ -0,0 +1,19 @@ +/* $OpenBSD: showargs.c,v 1.1 2010/03/25 01:43:47 schwarze Exp $ */ + +/* + * written by Ingo Schwarze 2010 + * and placed in the public domain + */ + +#include + +int +main(int argc, char *argv[]) { + int i; + + for (i = 1; i < argc; i++) + printf("%s|", argv[i]); + putchar('\n'); + + return 0; +} diff --git a/src/regress/usr.bin/xargs/xargs-L.sh b/src/regress/usr.bin/xargs/xargs-L.sh new file mode 100755 index 000000000..b95aadd50 --- /dev/null +++ b/src/regress/usr.bin/xargs/xargs-L.sh @@ -0,0 +1,97 @@ +#!/bin/sh +# +# $OpenBSD: xargs-L.sh,v 1.1 2010/03/25 01:43:47 schwarze Exp $ +# +# written by Ingo Schwarze 2010 +# and placed in the public domain + +test_xargs() +{ + printf 'Testing %13.13s with options "%s"\n' "\"$1\"" "$2" + expect=`printf "$3"` + result=`printf "$1" | xargs $2 ./showargs` + if [ "$result" != "$expect" ]; then + printf 'Expected "%s", but got "%s"\n' "$expect" "$result" + exit 1 + fi +} + +test_xargs 'a b' '' 'a|b|' +test_xargs 'a b' '' 'a|b|' +test_xargs 'a\nb' '' 'a|b|' +test_xargs 'a\n\nb' '' 'a|b|' +test_xargs 'a \nb' '' 'a|b|' +test_xargs 'a\n b' '' 'a|b|' +test_xargs 'a \n b' '' 'a|b|' +test_xargs 'a\n \nb' '' 'a|b|' +test_xargs 'a \n\nb' '' 'a|b|' + +test_xargs 'a\\ b' '' 'a b|' +test_xargs 'a\\ \nb' '' 'a |b|' +test_xargs 'a\n\\ b' '' 'a| b|' + +test_xargs 'a\\\nb' '' 'a\nb|' +test_xargs 'a\n\\\nb' '' 'a|\nb|' +test_xargs 'a \\\nb' '' 'a|\nb|' +test_xargs 'a\\\n b' '' 'a\n|b|' +test_xargs 'a \\\n b' '' 'a|\n|b|' + +test_xargs 'a b' '-L 1' 'a|b|' +test_xargs 'a b' '-L 1' 'a|b|' +test_xargs 'a\nb' '-L 1' 'a|\nb|' +test_xargs 'a\n\nb' '-L 1' 'a|\nb|' +test_xargs 'a \nb' '-L 1' 'a|b|' +test_xargs 'a\n b' '-L 1' 'a|\nb|' +test_xargs 'a \n b' '-L 1' 'a|b|' +test_xargs 'a\n \nb' '-L 1' 'a|\nb|' +test_xargs 'a \n\nb' '-L 1' 'a|b|' + +test_xargs 'a\\ b' '-L 1' 'a b|' +test_xargs 'a\\ \nb' '-L 1' 'a |\nb|' +test_xargs 'a\n\\ b' '-L 1' 'a|\n b|' + +test_xargs 'a\\\nb' '-L 1' 'a\nb|' +test_xargs 'a\n\\\nb' '-L 1' 'a|\n\nb|' +test_xargs 'a \\\nb' '-L 1' 'a|\nb|' +test_xargs 'a\\\n b' '-L 1' 'a\n|b|' +test_xargs 'a \\\n b' '-L 1' 'a|\n|b|' + +test_xargs 'a b' '-0' 'a b|' +test_xargs 'a b' '-0' 'a b|' +test_xargs 'a\nb' '-0' 'a\nb|' +test_xargs 'a\n\nb' '-0' 'a\n\nb|' +test_xargs 'a \nb' '-0' 'a \nb|' +test_xargs 'a\n b' '-0' 'a\n b|' +test_xargs 'a \n b' '-0' 'a \n b|' +test_xargs 'a\n \nb' '-0' 'a\n \nb|' +test_xargs 'a \n\nb' '-0' 'a \n\nb|' + +test_xargs 'a\\ b' '-0' 'a\\ b|' +test_xargs 'a\\ \nb' '-0' 'a\\ \nb|' +test_xargs 'a\n\\ b' '-0' 'a\n\\ b|' + +test_xargs 'a\\\nb' '-0' 'a\\\nb|' +test_xargs 'a\n\\\nb' '-0' 'a\n\\\nb|' +test_xargs 'a \\\nb' '-0' 'a \\\nb|' +test_xargs 'a\\\n b' '-0' 'a\\\n b|' +test_xargs 'a \\\n b' '-0' 'a \\\n b|' + +test_xargs 'a b\0c' '-0 -L 1' 'a b|c|' +test_xargs 'a b\0c' '-0 -L 1' 'a b|c|' +test_xargs 'a\nb\0c' '-0 -L 1' 'a\nb|\nc|' +test_xargs 'a\n\nb\0c' '-0 -L 1' 'a\n\nb|\nc|' +test_xargs 'a \nb\0c' '-0 -L 1' 'a \nb|c|' +test_xargs 'a\n b\0c' '-0 -L 1' 'a\n b|\nc|' +test_xargs 'a \n b\0c' '-0 -L 1' 'a \n b|c|' +test_xargs 'a\n \nb\0c' '-0 -L 1' 'a\n \nb|\nc|' +test_xargs 'a \n\nb\0c' '-0 -L 1' 'a \n\nb|c|' + +test_xargs 'a\\ b\0c' '-0 -L 1' 'a\\ b|c|' +test_xargs 'a\\ \nb\0c' '-0 -L 1' 'a\\ \nb|c|' +test_xargs 'a\n\\ b\0c' '-0 -L 1' 'a\n\\ b|\nc|' + +test_xargs 'a\\\nb\0c' '-0 -L 1' 'a\\\nb|\nc|' +test_xargs 'a\n\\\nb\0c' '-0 -L 1' 'a\n\\\nb|\nc|' +test_xargs 'a \\\nb\0c' '-0 -L 1' 'a \\\nb|\nc|' +test_xargs 'a\\\n b\0c' '-0 -L 1' 'a\\\n b|\nc|' +test_xargs 'a \\\n b\0c' '-0 -L 1' 'a \\\n b|\nc|' diff --git a/src/regress/usr.bin/xlint/CVS/Entries b/src/regress/usr.bin/xlint/CVS/Entries new file mode 100644 index 000000000..175c7675c --- /dev/null +++ b/src/regress/usr.bin/xlint/CVS/Entries @@ -0,0 +1,49 @@ +/Makefile/1.27/Sun May 28 23:55:42 2006// +/test-1.c/1.2/Mon Nov 21 19:37:11 2005// +/test-1.c.exp/1.5/Wed Apr 26 16:16:43 2006// +/test-10.c/1.2/Fri Dec 9 03:34:34 2005// +/test-10.c.exp/1.3/Sat Dec 10 19:20:21 2005// +/test-11.c/1.3/Mon Oct 8 08:18:35 2007// +/test-11.c.exp/1.1/Sat Dec 3 01:04:06 2005// +/test-12.c/1.2/Sat Dec 10 19:20:21 2005// +/test-12.c.exp/1.2/Sat Dec 10 19:20:21 2005// +/test-13.c/1.1/Sat Dec 10 19:16:56 2005// +/test-13.c.exp/1.2/Sat Dec 10 19:20:21 2005// +/test-14.c/1.2/Mon Dec 12 23:41:08 2005// +/test-14.c.exp/1.2/Mon Dec 12 23:41:08 2005// +/test-15.c/1.2/Sat Dec 17 20:05:49 2005// +/test-15.c.exp/1.2/Sat Dec 17 20:05:49 2005// +/test-16.c/1.1/Mon Mar 20 05:06:37 2006// +/test-16.c.exp/1.3/Wed Apr 8 22:02:08 2009// +/test-17.c/1.3/Tue Apr 25 01:31:46 2006// +/test-17.c.exp/1.3/Tue Apr 25 01:31:46 2006// +/test-18.c/1.1/Thu Apr 20 04:03:05 2006// +/test-18.c.exp/1.1/Thu Apr 20 04:03:05 2006// +/test-19.c/1.3/Thu Apr 27 20:55:08 2006// +/test-19.c.exp/1.4/Fri Jun 2 17:42:47 2006// +/test-2.c/1.1/Wed Nov 23 00:13:56 2005// +/test-2.c.exp/1.7/Wed Apr 26 16:16:43 2006// +/test-20.c/1.2/Wed May 3 18:23:17 2006// +/test-20.c.exp/1.2/Wed May 3 18:23:17 2006// +/test-21.c/1.2/Fri May 5 06:48:20 2006// +/test-21.c.exp/1.2/Fri May 5 06:48:20 2006// +/test-22.c/1.1/Wed May 3 18:45:25 2006// +/test-22.c.exp/1.2/Fri May 5 06:48:20 2006// +/test-23.c/1.1/Fri May 5 20:02:11 2006// +/test-23.c.exp/1.2/Sun May 28 23:56:09 2006// +/test-3.c/1.1/Wed Nov 23 20:38:58 2005// +/test-3.c.exp/1.2/Sat Nov 26 20:45:30 2005// +/test-4.c/1.1/Sat Nov 26 20:45:30 2005// +/test-4.c.exp/1.2/Sat Dec 10 19:20:21 2005// +/test-5.c/1.2/Tue Feb 14 16:11:45 2006// +/test-5.c.exp/1.7/Wed Apr 26 16:16:43 2006// +/test-6.c/1.1/Wed Nov 30 19:39:03 2005// +/test-6.c.exp/1.2/Sat Dec 10 19:20:21 2005// +/test-7.c/1.1/Wed Nov 30 19:44:08 2005// +/test-7.c.exp/1.2/Sat Dec 10 20:26:25 2005// +/test-8.c/1.1/Thu Dec 1 05:07:55 2005// +/test-8.c.exp/1.2/Sat Dec 10 20:26:25 2005// +/test-8.h/1.1/Thu Dec 1 05:07:55 2005// +/test-9.c/1.2/Thu Dec 1 14:23:02 2005// +/test-9.c.exp/1.2/Sat Dec 10 19:20:21 2005// +D diff --git a/src/regress/usr.bin/xlint/CVS/Repository b/src/regress/usr.bin/xlint/CVS/Repository new file mode 100644 index 000000000..4e0787dab --- /dev/null +++ b/src/regress/usr.bin/xlint/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.bin/xlint diff --git a/src/regress/usr.bin/xlint/CVS/Root b/src/regress/usr.bin/xlint/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.bin/xlint/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.bin/xlint/Makefile b/src/regress/usr.bin/xlint/Makefile new file mode 100644 index 000000000..386228b8f --- /dev/null +++ b/src/regress/usr.bin/xlint/Makefile @@ -0,0 +1,25 @@ +# $OpenBSD: Makefile,v 1.27 2006/05/28 23:55:42 cloder Exp $ + +TEST_MODULES= 1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 \ + 23 +LINT= lint + +.for i in ${TEST_MODULES} +REGRESS_TARGETS+= test-${i} +GENERATE_TARGETS+=generate-${i} +test-${i}: + ${LINT} ${LINTFLAGS} test-${i}.c 2>&1 | diff -u ${.CURDIR}/test-${i}.c.exp - + +generate-${i}: + ${LINT} ${LINTFLAGS} test-${i}.c 2>&1 > ${.CURDIR}/test-${i}.c.exp +.endfor + +.PHONY: ${REGRESS_TARGETS} generate ${GENERATE_TARGETS} + +generate: ${GENERATE_TARGETS} + + +NOOBJ= Yes + +.include + diff --git a/src/regress/usr.bin/xlint/test-1.c b/src/regress/usr.bin/xlint/test-1.c new file mode 100644 index 000000000..fa1dc2717 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-1.c @@ -0,0 +1,21 @@ +/* $OpenBSD: test-1.c,v 1.2 2005/11/21 19:37:11 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test the ARGSUSED feature of lint. + */ + +int +unusedargs(int unused) +{ + return 0; +} + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + unusedargs(1); + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-1.c.exp b/src/regress/usr.bin/xlint/test-1.c.exp new file mode 100644 index 000000000..1aa963f1e --- /dev/null +++ b/src/regress/usr.bin/xlint/test-1.c.exp @@ -0,0 +1,3 @@ +test-1.c:10: warning: argument unused unused in function unusedargs() +Lint pass2: +unusedargs returns value which is always ignored diff --git a/src/regress/usr.bin/xlint/test-10.c b/src/regress/usr.bin/xlint/test-10.c new file mode 100644 index 000000000..cacd4094c --- /dev/null +++ b/src/regress/usr.bin/xlint/test-10.c @@ -0,0 +1,23 @@ +/* $OpenBSD: test-10.c,v 1.2 2005/12/09 03:34:34 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test lint warning about literal char assignments. + */ +#include + +/* ARGSUSED */ +int +main(int argc, char *argv[]) +{ + unsigned char c; + + c = '\377'; /* should not warn, because c is a char type */ + c = -1; /* should warn, because rvalue is not a char literal */ + c++; + + return 0; +} + + diff --git a/src/regress/usr.bin/xlint/test-10.c.exp b/src/regress/usr.bin/xlint/test-10.c.exp new file mode 100644 index 000000000..2ebee3fa0 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-10.c.exp @@ -0,0 +1,2 @@ +test-10.c:17: warning: assignment of negative constant to unsigned type +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-11.c b/src/regress/usr.bin/xlint/test-11.c new file mode 100644 index 000000000..1df007368 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-11.c @@ -0,0 +1,134 @@ +/* $OpenBSD: test-11.c,v 1.3 2007/10/08 08:18:35 gilles Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test lint parsing of gcc's __attribute__ syntax. + */ + +/* Define this here so we don't need to pull in a header */ +void exit(int); + +/* + * A function prototype with a single attribute before. + */ +__attribute__((__noreturn__)) void foo1(void); + +/* + * A function prototype with a multiple attributes before. + */ +__attribute__((__noreturn__)) +__attribute__((__pure__)) +__attribute__((__section__("text"))) +void foo2(void); + +/* + * A function prototype with a single attribute after. + */ +void foo3(void) __attribute__((__noreturn__)); + +/* + * A function prototype with multiple attributes after. + */ +void foo4(void) + __attribute__((__noreturn__)) + __attribute__((__pure__)) + __attribute__((__section__("text"))); + +/* + * A function prototype with multiple attributes after, + * one of which (volatile) is stupidly also a C keyword. + */ +__attribute__((__noreturn__)) void foo5(const char *, ...) + __attribute__((volatile, __format__ (printf, 1, 2))); + +/* + * A function prototype with unnamed parameters having attributes. + */ +void foo6(char[], int __attribute__((unused))); + +/* + * A function prototype with named parameters having attributes. + */ +void foo7(char func[], int i __attribute__((unused))); + +/* + * A function definition with a single attribute before. + */ +__attribute__((__noreturn__)) void +foo8(void) +{ + exit(0); +} + +/* + * A function definition with multiple attributes before. + */ +__attribute__((__noreturn__)) +__attribute__((__pure__)) +__attribute__((__section__("text"))) +void +foo9(void) +{ + exit(0); +} + +/* + * A struct type having members with attributes. + */ +typedef +struct mystruct { + unsigned char c_data[128] __packed; + unsigned int u_data[128] __packed; +} mystruct_t; + + +/* + * A struct with attributes. + */ +struct mystruct2 { + unsigned char c_data[128]; +} __packed; + +/* + * A typedef with an attribute after the typename. + */ +typedef int more_aligned_int __attribute__ ((aligned (8))); + +/* + * A typedef with attributes before the typename. + */ +typedef short __attribute__((__may_alias__)) short_a; + + +/* + * A variable declaration with attributes. + */ +int sh __attribute__((__section__ ("shared"))); + +/* + * A variable declaration with attributes and initializer. + */ +int sh2 __attribute__((__section__ ("shared"))) = 0; + +/* + * A simple indirection: "pointer to 8-bit aligned pointer to char" + */ +char * __attribute__((__aligned__(8))) *pac; + +/* + * A really tough one with multiple indirections that even older + * gcc has problems with. + */ +void (****f)(void) __attribute__((__noreturn__)); + +int +main(int argc, char* argv[]) +{ + return 0; +} + + + + + diff --git a/src/regress/usr.bin/xlint/test-11.c.exp b/src/regress/usr.bin/xlint/test-11.c.exp new file mode 100644 index 000000000..2e3b18a09 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-11.c.exp @@ -0,0 +1,16 @@ +test-11.c(126): warning: argument argc unused in function main +test-11.c(126): warning: argument argv unused in function main +Lint pass2: +foo1 declared( test-11.c(15) ), but never used or defined +foo2 declared( test-11.c(23) ), but never used or defined +foo3 declared( test-11.c(28) ), but never used or defined +foo4 declared( test-11.c(36) ), but never used or defined +foo5 declared( test-11.c(43) ), but never used or defined +foo6 declared( test-11.c(48) ), but never used or defined +foo7 declared( test-11.c(53) ), but never used or defined +foo8 defined( test-11.c(59) ), but never used +foo9 defined( test-11.c(71) ), but never used +pac defined( test-11.c(117) ), but never used +f defined( test-11.c(123) ), but never used +sh2 defined( test-11.c(112) ), but never used +sh defined( test-11.c(107) ), but never used diff --git a/src/regress/usr.bin/xlint/test-12.c b/src/regress/usr.bin/xlint/test-12.c new file mode 100644 index 000000000..0dd7450fe --- /dev/null +++ b/src/regress/usr.bin/xlint/test-12.c @@ -0,0 +1,30 @@ +/* $OpenBSD: test-12.c,v 1.2 2005/12/10 19:20:21 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test lint warnings regarding assignment in conditional context. + */ +#include + +/* ARGSUSED */ +int +main(int argc, char *argv[]) +{ + int a = 0; + + if (a = argc) /* should warn */ + return 1; + + a++; + + if ((a = argc)) /* should not warn */ + return 1; + + for (a = 0; a < 10; a++) + a = a; + + return 0; +} + + diff --git a/src/regress/usr.bin/xlint/test-12.c.exp b/src/regress/usr.bin/xlint/test-12.c.exp new file mode 100644 index 000000000..745d6bb83 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-12.c.exp @@ -0,0 +1,2 @@ +test-12.c:16: warning: assignment in conditional context +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-13.c b/src/regress/usr.bin/xlint/test-13.c new file mode 100644 index 000000000..13e696178 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-13.c @@ -0,0 +1,29 @@ +/* $OpenBSD: test-13.c,v 1.1 2005/12/10 19:16:56 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test lint warnings regarding suspicious sizeof use. + */ + +typedef struct bar { + int a; +} bar_t; + +/* ARGSUSED */ +int +main(int argc, char *argv[]) +{ + bar_t bars[10]; + unsigned int a; + + a = sizeof(argc + 1); /* warn */ + a = sizeof(1); /* warn */ + a = sizeof(bars[1]); /* ok */ + a = sizeof(bar_t); /* ok */ + + a++; + return 0; +} + + diff --git a/src/regress/usr.bin/xlint/test-13.c.exp b/src/regress/usr.bin/xlint/test-13.c.exp new file mode 100644 index 000000000..da14b62e0 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-13.c.exp @@ -0,0 +1,3 @@ +test-13.c:20: warning: suspicious operator for sizeof: + +test-13.c:21: warning: suspicious operator for sizeof: CON +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-14.c b/src/regress/usr.bin/xlint/test-14.c new file mode 100644 index 000000000..beace1f9f --- /dev/null +++ b/src/regress/usr.bin/xlint/test-14.c @@ -0,0 +1,46 @@ +/* $OpenBSD: test-14.c,v 1.2 2005/12/12 23:41:08 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test lint warnings regarding constant in conditional contexts. + */ + +/* ARGSUSED */ +int +main(int argc, char *argv[]) +{ + do { + argc++; + } while (0); /* do not warn */ + + do { + if (argc++) + break; + } while (1); /* do not warn */ + + + do { + if (argc++) + break; + } while (2); /* warn because of 2 */ + + if (0) { /* do not warn */ + argc++; + } + + if (1) { /* do not warn */ + argc++; + } + + if (argc && 1) { /* warn because of compound expression */ + argc++; + } + + if (1.0) { /* warn */ + } + + return 0; +} + + diff --git a/src/regress/usr.bin/xlint/test-14.c.exp b/src/regress/usr.bin/xlint/test-14.c.exp new file mode 100644 index 000000000..42be998e9 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-14.c.exp @@ -0,0 +1,4 @@ +test-14.c:26: warning: constant in conditional context +test-14.c:36: warning: constant in conditional context +test-14.c:40: warning: constant in conditional context +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-15.c b/src/regress/usr.bin/xlint/test-15.c new file mode 100644 index 000000000..7bc6a5d0d --- /dev/null +++ b/src/regress/usr.bin/xlint/test-15.c @@ -0,0 +1,49 @@ +/* $OpenBSD: test-15.c,v 1.2 2005/12/17 20:05:49 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test lint dealing with division by zero. + */ + +/* ARGSUSED */ +void dbzd(double d) { } +/* ARGSUSED */ +void dbzf(float f) { } +/* ARGSUSED */ +void dbzi(int i) { } +/* ARGSUSED */ +void dbzl(long L) { } + +/*ARGSUSED*/ +int +main(int argc, char* argv[]) +{ + double d; + long L; + int i; + float f; + + i = 1 / 0; + f = 1.0f / 0.0f; + d = 1.0 / 0.0; + L = 1L / 0L; + + dbzd(1.0 / 0.0); + dbzf(1.0f / 0.0f); + dbzi(1 / 0); + dbzl(1L / 0L); + + i = 1 % 0; + L = 1L % 0L; + + i++; + f++; + d++; + L++; + + return 0; +} + + + diff --git a/src/regress/usr.bin/xlint/test-15.c.exp b/src/regress/usr.bin/xlint/test-15.c.exp new file mode 100644 index 000000000..541321499 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-15.c.exp @@ -0,0 +1,11 @@ +test-15.c:27: warning: division by 0 +test-15.c:28: warning: division by 0 +test-15.c:29: warning: division by 0 +test-15.c:30: warning: division by 0 +test-15.c:32: warning: division by 0 +test-15.c:33: warning: division by 0 +test-15.c:34: warning: division by 0 +test-15.c:35: warning: division by 0 +test-15.c:37: warning: modulus by 0 +test-15.c:38: warning: modulus by 0 +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-16.c b/src/regress/usr.bin/xlint/test-16.c new file mode 100644 index 000000000..3cedb209f --- /dev/null +++ b/src/regress/usr.bin/xlint/test-16.c @@ -0,0 +1,22 @@ + /* $OpenBSD: test-16.c,v 1.1 2006/03/20 05:06:37 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test lint dealing with cascaded == + */ +#include + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + mode_t mode; + + mode = (mode_t)argc; + + if ((((mode) & 0170000) == 0100000) == 0) + return 1; + + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-16.c.exp b/src/regress/usr.bin/xlint/test-16.c.exp new file mode 100644 index 000000000..b591b702f --- /dev/null +++ b/src/regress/usr.bin/xlint/test-16.c.exp @@ -0,0 +1 @@ +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-17.c b/src/regress/usr.bin/xlint/test-17.c new file mode 100644 index 000000000..009e2b205 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-17.c @@ -0,0 +1,49 @@ + /* $OpenBSD: test-17.c,v 1.3 2006/04/25 01:31:46 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test lint dealing with unreachable break statements. + */ + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + int a = 0; + + switch (argc) + { + case 1: + a = 1; + return 1; + break; /* should not warn */ + case 2: + a = 2; + while (a < 5) { + a++; + break; + break; /* should warn */ + } + break; + case 3: + switch (a) { + case 0: + break; + } + default: + break; + } + + while (argc < 5) { + if (argc ) { + return 1; + break; /* should warn */ + } + + argc++; + break; + } + + return a; +} diff --git a/src/regress/usr.bin/xlint/test-17.c.exp b/src/regress/usr.bin/xlint/test-17.c.exp new file mode 100644 index 000000000..69256c1a9 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-17.c.exp @@ -0,0 +1,4 @@ +test-17.c:26: warning: statement not reached +test-17.c:34: warning: fallthrough on default statement +test-17.c:41: warning: statement not reached +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-18.c b/src/regress/usr.bin/xlint/test-18.c new file mode 100644 index 000000000..3610e4354 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-18.c @@ -0,0 +1,23 @@ + /* $OpenBSD: test-18.c,v 1.1 2006/04/20 04:03:05 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test lint dealing with LINTUSED comments. + */ + +/* LINTUSED */ +int g; + +int u; + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + /* LINTUSED */ + int a, b; + int c; + + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-18.c.exp b/src/regress/usr.bin/xlint/test-18.c.exp new file mode 100644 index 000000000..0035ce58b --- /dev/null +++ b/src/regress/usr.bin/xlint/test-18.c.exp @@ -0,0 +1,3 @@ +test-18.c:20: warning: c unused in function main +Lint pass2: +test-18.c:12: u defined, but never used diff --git a/src/regress/usr.bin/xlint/test-19.c b/src/regress/usr.bin/xlint/test-19.c new file mode 100644 index 000000000..e2a39d06f --- /dev/null +++ b/src/regress/usr.bin/xlint/test-19.c @@ -0,0 +1,498 @@ + /* $OpenBSD: test-19.c,v 1.3 2006/04/27 20:55:08 otto Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test lint dealing with type conversions. + */ +#include + +void c1 (signed char c){ c++; } +void uc1 (unsigned char uc) { uc++; } +void s1 (short s) { s++; } +void us1 (unsigned short us) { us++; } +void i1 (int i) { i++; } +void ui1 (unsigned int ui) { ui++; } +void f1 (float f) { f++; } +void l1 (long l) { l++; } +void ul1 (unsigned long ul) { ul++; } +void d1 (double d) { d++; } +void ll1 (long long ll) { ll++; } +void ull1 (unsigned long long ull) { ull++; } +void ld1 (long double ld) { ld++; } + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + signed char C = 1; + unsigned char UC = 1; + short S = 1; + unsigned short US = 1; + int I = 1; + unsigned int UI = 1; + long L = 1; + unsigned long UL = 1; + long long LL = 1; + unsigned long long ULL = 1; + float F = 1.0f; + double D = 1.0; + long double LD = 1.0L; + + /* test with variables */ + c1(C); + c1(UC); + c1(S); + c1(US); + c1(I); + c1(UI); + c1(L); + c1(UL); + c1(LL); + c1(ULL); + c1(F); + c1(D); + c1(LD); + + uc1(C); + uc1(UC); + uc1(S); + uc1(US); + uc1(I); + uc1(UI); + uc1(L); + uc1(UL); + uc1(LL); + uc1(ULL); + uc1(F); + uc1(D); + uc1(LD); + + s1(C); + s1(UC); + s1(S); + s1(US); + s1(I); + s1(UI); + s1(L); + s1(UL); + s1(LL); + s1(ULL); + s1(F); + s1(D); + s1(LD); + + us1(C); + us1(UC); + us1(S); + us1(US); + us1(I); + us1(UI); + us1(L); + us1(UL); + us1(LL); + us1(ULL); + us1(F); + us1(D); + us1(LD); + + i1(C); + i1(UC); + i1(S); + i1(US); + i1(I); + i1(UI); + i1(L); + i1(UL); + i1(LL); + i1(ULL); + i1(F); + i1(D); + i1(LD); + + ui1(C); + ui1(UC); + ui1(S); + ui1(US); + ui1(I); + ui1(UI); + ui1(L); + ui1(UL); + ui1(LL); + ui1(ULL); + ui1(F); + ui1(D); + ui1(LD); + + f1(C); + f1(UC); + f1(S); + f1(US); + f1(I); + f1(UI); + f1(L); + f1(UL); + f1(LL); + f1(ULL); + f1(F); + f1(D); + f1(LD); + + l1(C); + l1(UC); + l1(S); + l1(US); + l1(I); + l1(UI); + l1(L); + l1(UL); + l1(LL); + l1(ULL); + l1(F); + l1(D); + l1(LD); + + ul1(C); + ul1(UC); + ul1(S); + ul1(US); + ul1(I); + ul1(UI); + ul1(L); + ul1(UL); + ul1(LL); + ul1(ULL); + ul1(F); + ul1(D); + ul1(LD); + + d1(C); + d1(UC); + d1(S); + d1(US); + d1(I); + d1(UI); + d1(L); + d1(UL); + d1(LL); + d1(ULL); + d1(F); + d1(D); + d1(LD); + + ll1(C); + ll1(UC); + ll1(S); + ll1(US); + ll1(I); + ll1(UI); + ll1(L); + ll1(UL); + ll1(LL); + ll1(ULL); + ll1(F); + ll1(D); + ll1(LD); + + ull1(C); + ull1(UC); + ull1(S); + ull1(US); + ull1(I); + ull1(UI); + ull1(L); + ull1(UL); + ull1(LL); + ull1(ULL); + ull1(F); + ull1(D); + ull1(LD); + + ld1(C); + ld1(UC); + ld1(S); + ld1(US); + ld1(I); + ld1(UI); + ld1(L); + ld1(UL); + ld1(LL); + ld1(ULL); + ld1(F); + ld1(D); + ld1(LD); + + + c1(-1); + c1(0); + c1(1); + + uc1(-1); + uc1(0); + uc1(1); + + s1(-1); + s1(0); + s1(1); + + us1(-1); + us1(0); + us1(1); + + i1(-1); + i1(0); + i1(1); + + ui1(-1); + ui1(0); + ui1(1); + + f1(-1); + f1(0); + f1(1); + + l1(-1); + l1(0); + l1(1); + + ul1(-1); + ul1(0); + ul1(1); + + d1(-1); + d1(0); + d1(1); + + ll1(-1); + ll1(0); + ll1(1); + + ull1(-1); + ull1(0); + ull1(1); + + ld1(-1); + ld1(0); + ld1(1); + + /* now test with long constants */ + c1(-1L); + c1(0L); + c1(1L); + + uc1(-1L); + uc1(0L); + uc1(1L); + + s1(-1L); + s1(0L); + s1(1L); + + us1(-1L); + us1(0L); + us1(1L); + + i1(-1L); + i1(0L); + i1(1L); + + ui1(-1L); + ui1(0L); + ui1(1L); + + f1(-1L); + f1(0L); + f1(1L); + + l1(-1L); + l1(0L); + l1(1L); + + ul1(-1L); + ul1(0L); + ul1(1L); + + d1(-1L); + d1(0L); + d1(1L); + + ll1(-1L); + ll1(0L); + ll1(1L); + + ull1(-1L); + ull1(0L); + ull1(1L); + + ld1(-1L); + ld1(0L); + ld1(1L); + + /* now test with float constants */ + c1(-1.0f); + c1(0.0f); + c1(1.0f); + + uc1(-1.0f); + uc1(0.0f); + uc1(1.0f); + + s1(-1.0f); + s1(0.0f); + s1(1.0f); + + us1(-1.0f); + us1(0.0f); + us1(1.0f); + + i1(-1.0f); + i1(0.0f); + i1(1.0f); + + ui1(-1.0f); + ui1(0.0f); + ui1(1.0f); + + f1(-1.0f); + f1(0.0f); + f1(1.0f); + + l1(-1.0f); + l1(0.0f); + l1(1.0f); + + ul1(-1.0f); + ul1(0.0f); + ul1(1.0f); + + d1(-1.0f); + d1(0.0f); + d1(1.0f); + + ll1(-1.0f); + ll1(0.0f); + ll1(1.0f); + + ull1(-1.0f); + ull1(0.0f); + ull1(1.0f); + + ld1(-1.0f); + ld1(0.0f); + ld1(1.0f); + + /* now test with double constants */ + c1(-1.0); + c1(0.0); + c1(1.0); + + uc1(-1.0); + uc1(0.0); + uc1(1.0); + + s1(-1.0); + s1(0.0); + s1(1.0); + + us1(-1.0); + us1(0.0); + us1(1.0); + + i1(-1.0); + i1(0.0); + i1(1.0); + + ui1(-1.0); + ui1(0.0); + ui1(1.0); + + f1(-1.0); + f1(0.0); + f1(1.0); + + l1(-1.0); + l1(0.0); + l1(1.0); + + ul1(-1.0); + ul1(0.0); + ul1(1.0); + + d1(-1.0); + d1(0.0); + d1(1.0); + + ll1(-1.0); + ll1(0.0); + ll1(1.0); + + ull1(-1.0); + ull1(0.0); + ull1(1.0); + + ld1(-1.0); + ld1(0.0); + ld1(1.0); + + /* now test with long double constants */ + c1(-1.0L); + c1(0.0L); + c1(1.0L); + + uc1(-1.0L); + uc1(0.0L); + uc1(1.0L); + + s1(-1.0L); + s1(0.0L); + s1(1.0L); + + us1(-1.0L); + us1(0.0L); + us1(1.0L); + + i1(-1.0L); + i1(0.0L); + i1(1.0L); + + ui1(-1.0L); + ui1(0.0L); + ui1(1.0L); + + f1(-1.0L); + f1(0.0L); + f1(1.0L); + + l1(-1.0L); + l1(0.0L); + l1(1.0L); + + ul1(-1.0L); + ul1(0.0L); + ul1(1.0L); + + d1(-1.0L); + d1(0.0L); + d1(1.0L); + + ll1(-1.0L); + ll1(0.0L); + ll1(1.0L); + + ull1(-1.0L); + ull1(0.0L); + ull1(1.0L); + + ld1(-1.0L); + ld1(0.0L); + ld1(1.0L); + + ul1(4 * I); + + return 0; +} + + + + + diff --git a/src/regress/usr.bin/xlint/test-19.c.exp b/src/regress/usr.bin/xlint/test-19.c.exp new file mode 100644 index 000000000..d54afc70d --- /dev/null +++ b/src/regress/usr.bin/xlint/test-19.c.exp @@ -0,0 +1,117 @@ +test-19.c:44: warning: c1() arg #1: converted from 'unsigned char' to 'signed char' +test-19.c:45: warning: c1() arg #1: converted from 'short' to 'signed char' +test-19.c:46: warning: c1() arg #1: converted from 'unsigned short' to 'signed char' +test-19.c:47: warning: c1() arg #1: converted from 'int' to 'signed char' +test-19.c:48: warning: c1() arg #1: converted from 'unsigned int' to 'signed char' +test-19.c:49: warning: c1() arg #1: converted from 'long' to 'signed char' +test-19.c:50: warning: c1() arg #1: converted from 'unsigned long' to 'signed char' +test-19.c:51: warning: c1() arg #1: converted from 'long long' to 'signed char' +test-19.c:52: warning: c1() arg #1: converted from 'unsigned long long' to 'signed char' +test-19.c:53: warning: c1() arg #1: converted from 'float' to 'signed char' +test-19.c:54: warning: c1() arg #1: converted from 'double' to 'signed char' +test-19.c:55: warning: c1() arg #1: converted from 'long double' to 'signed char' +test-19.c:57: warning: uc1() arg #1: converted from 'signed char' to 'unsigned char' +test-19.c:59: warning: uc1() arg #1: converted from 'short' to 'unsigned char' +test-19.c:60: warning: uc1() arg #1: converted from 'unsigned short' to 'unsigned char' +test-19.c:61: warning: uc1() arg #1: converted from 'int' to 'unsigned char' +test-19.c:62: warning: uc1() arg #1: converted from 'unsigned int' to 'unsigned char' +test-19.c:63: warning: uc1() arg #1: converted from 'long' to 'unsigned char' +test-19.c:64: warning: uc1() arg #1: converted from 'unsigned long' to 'unsigned char' +test-19.c:65: warning: uc1() arg #1: converted from 'long long' to 'unsigned char' +test-19.c:66: warning: uc1() arg #1: converted from 'unsigned long long' to 'unsigned char' +test-19.c:67: warning: uc1() arg #1: converted from 'float' to 'unsigned char' +test-19.c:68: warning: uc1() arg #1: converted from 'double' to 'unsigned char' +test-19.c:69: warning: uc1() arg #1: converted from 'long double' to 'unsigned char' +test-19.c:74: warning: s1() arg #1: converted from 'unsigned short' to 'short' +test-19.c:75: warning: s1() arg #1: converted from 'int' to 'short' +test-19.c:76: warning: s1() arg #1: converted from 'unsigned int' to 'short' +test-19.c:77: warning: s1() arg #1: converted from 'long' to 'short' +test-19.c:78: warning: s1() arg #1: converted from 'unsigned long' to 'short' +test-19.c:79: warning: s1() arg #1: converted from 'long long' to 'short' +test-19.c:80: warning: s1() arg #1: converted from 'unsigned long long' to 'short' +test-19.c:81: warning: s1() arg #1: converted from 'float' to 'short' +test-19.c:82: warning: s1() arg #1: converted from 'double' to 'short' +test-19.c:83: warning: s1() arg #1: converted from 'long double' to 'short' +test-19.c:85: warning: us1() arg #1: converted from 'signed char' to 'unsigned short' +test-19.c:87: warning: us1() arg #1: converted from 'short' to 'unsigned short' +test-19.c:89: warning: us1() arg #1: converted from 'int' to 'unsigned short' +test-19.c:90: warning: us1() arg #1: converted from 'unsigned int' to 'unsigned short' +test-19.c:91: warning: us1() arg #1: converted from 'long' to 'unsigned short' +test-19.c:92: warning: us1() arg #1: converted from 'unsigned long' to 'unsigned short' +test-19.c:93: warning: us1() arg #1: converted from 'long long' to 'unsigned short' +test-19.c:94: warning: us1() arg #1: converted from 'unsigned long long' to 'unsigned short' +test-19.c:95: warning: us1() arg #1: converted from 'float' to 'unsigned short' +test-19.c:96: warning: us1() arg #1: converted from 'double' to 'unsigned short' +test-19.c:97: warning: us1() arg #1: converted from 'long double' to 'unsigned short' +test-19.c:104: warning: i1() arg #1: converted from 'unsigned int' to 'int' +test-19.c:105: warning: i1() arg #1: converted from 'long' to 'int' +test-19.c:106: warning: i1() arg #1: converted from 'unsigned long' to 'int' +test-19.c:107: warning: i1() arg #1: converted from 'long long' to 'int' +test-19.c:108: warning: i1() arg #1: converted from 'unsigned long long' to 'int' +test-19.c:109: warning: i1() arg #1: converted from 'float' to 'int' +test-19.c:110: warning: i1() arg #1: converted from 'double' to 'int' +test-19.c:111: warning: i1() arg #1: converted from 'long double' to 'int' +test-19.c:113: warning: ui1() arg #1: converted from 'signed char' to 'unsigned int' +test-19.c:115: warning: ui1() arg #1: converted from 'short' to 'unsigned int' +test-19.c:117: warning: ui1() arg #1: converted from 'int' to 'unsigned int' +test-19.c:119: warning: ui1() arg #1: converted from 'long' to 'unsigned int' +test-19.c:120: warning: ui1() arg #1: converted from 'unsigned long' to 'unsigned int' +test-19.c:121: warning: ui1() arg #1: converted from 'long long' to 'unsigned int' +test-19.c:122: warning: ui1() arg #1: converted from 'unsigned long long' to 'unsigned int' +test-19.c:123: warning: ui1() arg #1: converted from 'float' to 'unsigned int' +test-19.c:124: warning: ui1() arg #1: converted from 'double' to 'unsigned int' +test-19.c:125: warning: ui1() arg #1: converted from 'long double' to 'unsigned int' +test-19.c:148: warning: l1() arg #1: converted from 'unsigned long' to 'long' +test-19.c:149: warning: l1() arg #1: converted from 'long long' to 'long' +test-19.c:150: warning: l1() arg #1: converted from 'unsigned long long' to 'long' +test-19.c:151: warning: l1() arg #1: converted from 'float' to 'long' +test-19.c:152: warning: l1() arg #1: converted from 'double' to 'long' +test-19.c:153: warning: l1() arg #1: converted from 'long double' to 'long' +test-19.c:155: warning: ul1() arg #1: converted from 'signed char' to 'unsigned long' +test-19.c:157: warning: ul1() arg #1: converted from 'short' to 'unsigned long' +test-19.c:159: warning: ul1() arg #1: converted from 'int' to 'unsigned long' +test-19.c:161: warning: ul1() arg #1: converted from 'long' to 'unsigned long' +test-19.c:163: warning: ul1() arg #1: converted from 'long long' to 'unsigned long' +test-19.c:164: warning: ul1() arg #1: converted from 'unsigned long long' to 'unsigned long' +test-19.c:165: warning: ul1() arg #1: converted from 'float' to 'unsigned long' +test-19.c:166: warning: ul1() arg #1: converted from 'double' to 'unsigned long' +test-19.c:167: warning: ul1() arg #1: converted from 'long double' to 'unsigned long' +test-19.c:192: warning: ll1() arg #1: converted from 'unsigned long long' to 'long long' +test-19.c:193: warning: ll1() arg #1: converted from 'float' to 'long long' +test-19.c:194: warning: ll1() arg #1: converted from 'double' to 'long long' +test-19.c:195: warning: ll1() arg #1: converted from 'long double' to 'long long' +test-19.c:197: warning: ull1() arg #1: converted from 'signed char' to 'unsigned long long' +test-19.c:199: warning: ull1() arg #1: converted from 'short' to 'unsigned long long' +test-19.c:201: warning: ull1() arg #1: converted from 'int' to 'unsigned long long' +test-19.c:203: warning: ull1() arg #1: converted from 'long' to 'unsigned long long' +test-19.c:205: warning: ull1() arg #1: converted from 'long long' to 'unsigned long long' +test-19.c:207: warning: ull1() arg #1: converted from 'float' to 'unsigned long long' +test-19.c:208: warning: ull1() arg #1: converted from 'double' to 'unsigned long long' +test-19.c:209: warning: ull1() arg #1: converted from 'long double' to 'unsigned long long' +test-19.c:230: warning: uc1() arg #1: conversion of negative constant to unsigned type +test-19.c:238: warning: us1() arg #1: conversion of negative constant to unsigned type +test-19.c:246: warning: ui1() arg #1: conversion of negative constant to unsigned type +test-19.c:258: warning: ul1() arg #1: conversion of negative constant to unsigned type +test-19.c:270: warning: ull1() arg #1: conversion of negative constant to unsigned type +test-19.c:283: warning: uc1() arg #1: conversion of negative constant to unsigned type +test-19.c:291: warning: us1() arg #1: conversion of negative constant to unsigned type +test-19.c:299: warning: ui1() arg #1: conversion of negative constant to unsigned type +test-19.c:311: warning: ul1() arg #1: conversion of negative constant to unsigned type +test-19.c:323: warning: ull1() arg #1: conversion of negative constant to unsigned type +test-19.c:336: warning: uc1() arg #1: conversion of 'float' to 'unsigned char' is out of range +test-19.c:344: warning: us1() arg #1: conversion of 'float' to 'unsigned short' is out of range +test-19.c:352: warning: ui1() arg #1: conversion of 'float' to 'unsigned int' is out of range +test-19.c:364: warning: ul1() arg #1: conversion of 'float' to 'unsigned long' is out of range +test-19.c:376: warning: ull1() arg #1: conversion of 'float' to 'unsigned long long' is out of range +test-19.c:389: warning: uc1() arg #1: conversion of 'double' to 'unsigned char' is out of range +test-19.c:397: warning: us1() arg #1: conversion of 'double' to 'unsigned short' is out of range +test-19.c:405: warning: ui1() arg #1: conversion of 'double' to 'unsigned int' is out of range +test-19.c:417: warning: ul1() arg #1: conversion of 'double' to 'unsigned long' is out of range +test-19.c:429: warning: ull1() arg #1: conversion of 'double' to 'unsigned long long' is out of range +test-19.c:442: warning: uc1() arg #1: conversion of 'long double' to 'unsigned char' is out of range +test-19.c:450: warning: us1() arg #1: conversion of 'long double' to 'unsigned short' is out of range +test-19.c:458: warning: ui1() arg #1: conversion of 'long double' to 'unsigned int' is out of range +test-19.c:470: warning: ul1() arg #1: conversion of 'long double' to 'unsigned long' is out of range +test-19.c:482: warning: ull1() arg #1: conversion of 'long double' to 'unsigned long long' is out of range +test-19.c:490: warning: ul1() arg #1: converted from 'int' to 'unsigned long' +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-2.c b/src/regress/usr.bin/xlint/test-2.c new file mode 100644 index 000000000..498832cea --- /dev/null +++ b/src/regress/usr.bin/xlint/test-2.c @@ -0,0 +1,38 @@ +/* $OpenBSD: test-2.c,v 1.1 2005/11/23 00:13:56 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test detection of right shift by too many bits. + */ + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + unsigned char c, d; + + c = 'a'; + d = c << 7; /* ok */ + d = c >> 7; /* ok */ + c <<= 7; /* ok */ + c >>= 7; /* ok */ + + d = c << 8; /* ok */ + d = c >> 8; /* right-shifting an 8-bit quantity by 8 bits */ + c <<= 8; /* ok */ + c >>= 8; /* right-shifting an 8-bit quantity by 8 bits */ + + d = c << 9; /* ok */ + d = c >> 9; /* right-shifting an 8-bit quantity by 9 bits */ + c <<= 9; /* ok */ + c >>= 9; /* right-shifting/assign an 8-bit quantity by 9 bits */ + + d = c << 10; /* ok */ + d = c >> 10; /* right-shifting an 8-bit quantity by 10 bits */ + c <<= 10; /* ok */ + c >>= 10; /* right-shifting/assign an 8-bit quantity by 10 bits */ + + d++; + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-2.c.exp b/src/regress/usr.bin/xlint/test-2.c.exp new file mode 100644 index 000000000..43eb4b1e3 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-2.c.exp @@ -0,0 +1,15 @@ +test-2.c:16: warning: converted from 'int' to 'unsigned char' +test-2.c:17: warning: converted from 'int' to 'unsigned char' +test-2.c:21: warning: converted from 'int' to 'unsigned char' +test-2.c:22: warning: right shift of 8-bit quantity by 8 bits +test-2.c:22: warning: converted from 'int' to 'unsigned char' +test-2.c:24: warning: right shift of 8-bit quantity by 8 bits +test-2.c:26: warning: converted from 'int' to 'unsigned char' +test-2.c:27: warning: right shift of 8-bit quantity by 9 bits +test-2.c:27: warning: converted from 'int' to 'unsigned char' +test-2.c:29: warning: right shift of 8-bit quantity by 9 bits +test-2.c:31: warning: converted from 'int' to 'unsigned char' +test-2.c:32: warning: right shift of 8-bit quantity by 10 bits +test-2.c:32: warning: converted from 'int' to 'unsigned char' +test-2.c:34: warning: right shift of 8-bit quantity by 10 bits +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-20.c b/src/regress/usr.bin/xlint/test-20.c new file mode 100644 index 000000000..cb3fd7d3f --- /dev/null +++ b/src/regress/usr.bin/xlint/test-20.c @@ -0,0 +1,61 @@ +/* $OpenBSD: test-20.c,v 1.2 2006/05/03 18:23:17 otto Exp $ */ + +/* + * Placed in the public domain by Otto Moerbeek . + * + * Test the 'expression has null effect warning' + */ + +#include + +int f(int x,...) +{ + int p; + char *q = 0; + int i = (1,33), j = (p=0,p), k = (i+j, i=0); + + int a = i < 1 ? j : i, b = 2, t; + + t = a, a = b, b = t; + + 1 + b, t = a, a = b, b = t, a + 1, b - 1; + + a + t, t = b; + + a + 1; + + b + 1, t = t; + + t = t, b + 1; + + 1 + a; + + 1,2,3,4,5; + + a = (1,(b=2),3,4,5); + + if (a + 1, b) + a = 2; + + a ? b=1 : t; + + a + 1, b = 1, t + 1; + + a = (1,b,f(a,(a,b),t)); + + *q = 0, *q = 0, *q = 0, *q = 0, *q = 0; + + *q + 0, *q = 0, *q = 0, *q = 0, *q = 0; + + q ? q = 0 : q++; + + assert(p == j); + + 0; + + (void)0; + + j = j < 0 ? j + 1 : j + 2; + + return k + k, x; +} diff --git a/src/regress/usr.bin/xlint/test-20.c.exp b/src/regress/usr.bin/xlint/test-20.c.exp new file mode 100644 index 000000000..cc6a03f14 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-20.c.exp @@ -0,0 +1,21 @@ +test-20.c:15: warning: expression has null effect +test-20.c:15: warning: expression has null effect +test-20.c:21: warning: expression has null effect +test-20.c:23: warning: expression has null effect +test-20.c:25: warning: expression has null effect +test-20.c:27: warning: expression has null effect +test-20.c:31: warning: expression has null effect +test-20.c:33: warning: expression has null effect +test-20.c:33: warning: expression has null effect +test-20.c:33: warning: expression has null effect +test-20.c:33: warning: expression has null effect +test-20.c:35: warning: expression has null effect +test-20.c:37: warning: expression has null effect +test-20.c:42: warning: expression has null effect +test-20.c:44: warning: expression has null effect +test-20.c:44: warning: expression has null effect +test-20.c:44: warning: expression has null effect +test-20.c:48: warning: expression has null effect +test-20.c:54: warning: expression has null effect +test-20.c:60: warning: expression has null effect +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-21.c b/src/regress/usr.bin/xlint/test-21.c new file mode 100644 index 000000000..d995da453 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-21.c @@ -0,0 +1,22 @@ + /* $OpenBSD: test-21.c,v 1.2 2006/05/05 06:48:20 otto Exp $*/ + +/* + * Placed in the public domain by Chad Loder . + * + * Regression test lint1 crash on function prototypes having functions + * as arguments. + */ +struct foo +{ + int a; +}; + +int bar(int, unsigned int(int, const struct foo *, int)); +int baz(int *(void *)); + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-21.c.exp b/src/regress/usr.bin/xlint/test-21.c.exp new file mode 100644 index 000000000..ab50994ac --- /dev/null +++ b/src/regress/usr.bin/xlint/test-21.c.exp @@ -0,0 +1,3 @@ +Lint pass2: +test-21.c:14: bar declared, but never used or defined +test-21.c:15: baz declared, but never used or defined diff --git a/src/regress/usr.bin/xlint/test-22.c b/src/regress/usr.bin/xlint/test-22.c new file mode 100644 index 000000000..c9a137ebb --- /dev/null +++ b/src/regress/usr.bin/xlint/test-22.c @@ -0,0 +1,17 @@ + /* $OpenBSD: test-22.c,v 1.1 2006/05/03 18:45:25 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Regression test for lint1 crash on expressions of the type: + * + * char *foo = { "literal" } + */ + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + const char *foo = { "bar" }; + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-22.c.exp b/src/regress/usr.bin/xlint/test-22.c.exp new file mode 100644 index 000000000..030440590 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-22.c.exp @@ -0,0 +1,2 @@ +test-22.c:15: warning: foo set but not used in function main +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-23.c b/src/regress/usr.bin/xlint/test-23.c new file mode 100644 index 000000000..ae88f440f --- /dev/null +++ b/src/regress/usr.bin/xlint/test-23.c @@ -0,0 +1,65 @@ +/* $OpenBSD: test-23.c,v 1.1 2006/05/05 20:02:11 otto Exp $ */ + +/* + * Placed in the public domain by Otto Moerbeek . + * + * Test pointer casts + */ + +struct foo { + int a; +}; + +void +f(void) +{ + void *vp = 0; + char *cp = 0; + signed char *scp = 0; + unsigned char *ucp = 0; + short *sp = 0; + struct foo *fp = 0; + + vp = (void *)vp; + vp = (void *)cp; + vp = (void *)scp; + vp = (void *)ucp; + vp = (void *)sp; + vp = (void *)fp; + + cp = (char *)vp; + cp = (char *)cp; + cp = (char *)ucp; + cp = (char *)scp; + cp = (char *)sp; + cp = (char *)fp; + + scp = (signed char *)vp; + scp = (signed char *)cp; + scp = (signed char *)ucp; + scp = (signed char *)scp; + scp = (signed char *)sp; + scp = (signed char *)fp; + + ucp = (unsigned char *)vp; + ucp = (unsigned char *)cp; + ucp = (unsigned char *)ucp; + ucp = (unsigned char *)scp; + ucp = (unsigned char *)sp; + ucp = (unsigned char *)fp; + + sp = (short *)vp; + sp = (short *)cp; + sp = (short *)ucp; + sp = (short *)scp; + sp = (short *)sp; + sp = (short *)fp; + + fp = (struct foo *)vp; + fp = (struct foo *)cp; + fp = (struct foo *)ucp; + fp = (struct foo *)scp; + fp = (struct foo *)sp; + fp = (struct foo *)fp; + +} diff --git a/src/regress/usr.bin/xlint/test-23.c.exp b/src/regress/usr.bin/xlint/test-23.c.exp new file mode 100644 index 000000000..9be36a5cd --- /dev/null +++ b/src/regress/usr.bin/xlint/test-23.c.exp @@ -0,0 +1,9 @@ +test-23.c:52: warning: possible pointer alignment problem +test-23.c:53: warning: possible pointer alignment problem +test-23.c:54: warning: possible pointer alignment problem +test-23.c:59: warning: possible pointer alignment problem +test-23.c:60: warning: possible pointer alignment problem +test-23.c:61: warning: possible pointer alignment problem +test-23.c:62: warning: possible pointer alignment problem +Lint pass2: +test-23.c:14: f defined, but never used diff --git a/src/regress/usr.bin/xlint/test-3.c b/src/regress/usr.bin/xlint/test-3.c new file mode 100644 index 000000000..a9d63e2e4 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-3.c @@ -0,0 +1,26 @@ +/* $OpenBSD: test-3.c,v 1.1 2005/11/23 20:38:58 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test parsing of "inline" keyword. + */ + +static inline int +foo(void); + +static inline int +foo(void) +{ + return 0; +} + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + int i; + i = foo(); + i++; + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-3.c.exp b/src/regress/usr.bin/xlint/test-3.c.exp new file mode 100644 index 000000000..b591b702f --- /dev/null +++ b/src/regress/usr.bin/xlint/test-3.c.exp @@ -0,0 +1 @@ +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-4.c b/src/regress/usr.bin/xlint/test-4.c new file mode 100644 index 000000000..767d5788d --- /dev/null +++ b/src/regress/usr.bin/xlint/test-4.c @@ -0,0 +1,31 @@ +/* $OpenBSD: test-4.c,v 1.1 2005/11/26 20:45:30 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test parsing of GNU case ranges. + */ + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + int i; + char c; + + c = 'a'; + switch (c) + { + case 'a': + i = 0; + break; + case 'A' ... 'Z': + i = 1; + break; + default: + i = 1; + } + + i++; + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-4.c.exp b/src/regress/usr.bin/xlint/test-4.c.exp new file mode 100644 index 000000000..82d38580c --- /dev/null +++ b/src/regress/usr.bin/xlint/test-4.c.exp @@ -0,0 +1,2 @@ +test-4.c:22: warning: case ranges are illegal in ANSI C +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-5.c b/src/regress/usr.bin/xlint/test-5.c new file mode 100644 index 000000000..6f07c9b60 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-5.c @@ -0,0 +1,39 @@ +/* $OpenBSD: test-5.c,v 1.2 2006/02/14 16:11:45 moritz Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test warning of promotion of function arguments. + */ + +#include + +void +foo(unsigned long long a) +{ + a++; +} + +void foobar(int a) +{ + a++; +} + +void bar(unsigned int a) +{ + a++; +} + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + int a = 0; + + foo(0); /* ok, promotion of in-range constant */ + foo(a); /* warning: promotion of non-constant */ + foobar(INTMAX_MAX);/* warning: promotion of out-of-range constant */ + bar(-1); /* warning: promotion of out-of-range constant */ + bar(0); /* ok, promotion of in-range constant */ + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-5.c.exp b/src/regress/usr.bin/xlint/test-5.c.exp new file mode 100644 index 000000000..2f730b9f7 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-5.c.exp @@ -0,0 +1,4 @@ +test-5.c:34: warning: foo() arg #1: converted from 'int' to 'unsigned long long' +test-5.c:35: warning: foobar() arg #1: conversion of 'long long' to 'int' is out of range +test-5.c:36: warning: bar() arg #1: conversion of negative constant to unsigned type +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-6.c b/src/regress/usr.bin/xlint/test-6.c new file mode 100644 index 000000000..95bd7cef1 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-6.c @@ -0,0 +1,27 @@ +/* $OpenBSD: test-6.c,v 1.1 2005/11/30 19:39:03 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test c99 predifined identifier __func__ + */ +#include + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + /* c99 implicitly defines: static const char __func__[] = "main"; */ + static const char foo[] = "main"; + char c; + + if (strcmp(foo, __func__) == 0) + return 1; + + __func__[0] = 'a'; /* warning: const (not an lvalue) */ + c = __func__[4]; /* ok (c == '\0') */ + c = __func__[5]; /* warning: out of bonds */ + + c++; + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-6.c.exp b/src/regress/usr.bin/xlint/test-6.c.exp new file mode 100644 index 000000000..8841cf61e --- /dev/null +++ b/src/regress/usr.bin/xlint/test-6.c.exp @@ -0,0 +1,3 @@ +test-6.c:21: warning: left operand of '=' must be modifiable lvalue +test-6.c:23: warning: array subscript cannot be > 4: 5 +Lint pass2: diff --git a/src/regress/usr.bin/xlint/test-7.c b/src/regress/usr.bin/xlint/test-7.c new file mode 100644 index 000000000..1bca59994 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-7.c @@ -0,0 +1,17 @@ +/* $OpenBSD: test-7.c,v 1.1 2005/11/30 19:44:08 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test slashslash comments. + */ + +int foo(int); // comment at end of line, ok +//comment at beginning of line + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-7.c.exp b/src/regress/usr.bin/xlint/test-7.c.exp new file mode 100644 index 000000000..643a4bd12 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-7.c.exp @@ -0,0 +1,2 @@ +Lint pass2: +test-7.c:9: foo declared, but never used or defined diff --git a/src/regress/usr.bin/xlint/test-8.c b/src/regress/usr.bin/xlint/test-8.c new file mode 100644 index 000000000..6160149c3 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-8.c @@ -0,0 +1,18 @@ +/* $OpenBSD: test-8.c,v 1.1 2005/12/01 05:07:55 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test warning on things declared in the translation unit but never + * defined. + */ +#include "test-8.h" + +int foo(int); /* warning: declared but never used or defined */ + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-8.c.exp b/src/regress/usr.bin/xlint/test-8.c.exp new file mode 100644 index 000000000..7b72f77e7 --- /dev/null +++ b/src/regress/usr.bin/xlint/test-8.c.exp @@ -0,0 +1,2 @@ +Lint pass2: +test-8.c:11: foo declared, but never used or defined diff --git a/src/regress/usr.bin/xlint/test-8.h b/src/regress/usr.bin/xlint/test-8.h new file mode 100644 index 000000000..04225e88d --- /dev/null +++ b/src/regress/usr.bin/xlint/test-8.h @@ -0,0 +1,4 @@ +/* $OpenBSD: test-8.h,v 1.1 2005/12/01 05:07:55 cloder Exp $ */ + +int bar(int); /* should not warn */ + diff --git a/src/regress/usr.bin/xlint/test-9.c b/src/regress/usr.bin/xlint/test-9.c new file mode 100644 index 000000000..53281ed3d --- /dev/null +++ b/src/regress/usr.bin/xlint/test-9.c @@ -0,0 +1,19 @@ +/* $OpenBSD: test-9.c,v 1.2 2005/12/01 14:23:02 cloder Exp $ */ + +/* + * Placed in the public domain by Chad Loder . + * + * Test warning on inequality comparison of unsigned value with + * 0. + */ + +/* ARGSUSED */ +int +main(int argc, char* argv[]) +{ + unsigned int i; + for (i = 100; i >= 0; i--) + continue; + + return 0; +} diff --git a/src/regress/usr.bin/xlint/test-9.c.exp b/src/regress/usr.bin/xlint/test-9.c.exp new file mode 100644 index 000000000..1863b507d --- /dev/null +++ b/src/regress/usr.bin/xlint/test-9.c.exp @@ -0,0 +1,2 @@ +test-9.c:15: warning: comparison of unsigned int with 0, op >= +Lint pass2: diff --git a/src/regress/usr.sbin/CVS/Entries b/src/regress/usr.sbin/CVS/Entries new file mode 100644 index 000000000..19af8dcbd --- /dev/null +++ b/src/regress/usr.sbin/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.2/Fri Jun 13 21:33:00 2008// +D/mtree//// +D/pkg_add//// diff --git a/src/regress/usr.sbin/CVS/Repository b/src/regress/usr.sbin/CVS/Repository new file mode 100644 index 000000000..540ace2dd --- /dev/null +++ b/src/regress/usr.sbin/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.sbin diff --git a/src/regress/usr.sbin/CVS/Root b/src/regress/usr.sbin/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.sbin/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.sbin/Makefile b/src/regress/usr.sbin/Makefile new file mode 100644 index 000000000..2e7bf139c --- /dev/null +++ b/src/regress/usr.sbin/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.2 2008/06/13 21:33:00 espie Exp $ + +SUBDIR+= mtree pkg_add + +.include diff --git a/src/regress/usr.sbin/mtree/CVS/Entries b/src/regress/usr.sbin/mtree/CVS/Entries new file mode 100644 index 000000000..a3e753a67 --- /dev/null +++ b/src/regress/usr.sbin/mtree/CVS/Entries @@ -0,0 +1,3 @@ +/Makefile/1.1/Fri Jun 13 21:33:00 2008// +/spec1/1.1/Fri Jun 13 21:33:00 2008// +D diff --git a/src/regress/usr.sbin/mtree/CVS/Repository b/src/regress/usr.sbin/mtree/CVS/Repository new file mode 100644 index 000000000..014a32aa1 --- /dev/null +++ b/src/regress/usr.sbin/mtree/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.sbin/mtree diff --git a/src/regress/usr.sbin/mtree/CVS/Root b/src/regress/usr.sbin/mtree/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.sbin/mtree/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.sbin/mtree/Makefile b/src/regress/usr.sbin/mtree/Makefile new file mode 100644 index 000000000..828fe45a8 --- /dev/null +++ b/src/regress/usr.sbin/mtree/Makefile @@ -0,0 +1,9 @@ +# $OpenBSD: Makefile,v 1.1 2008/06/13 21:33:00 espie Exp $ + +REGRESS_TARGETS=t1 + + +t1: + mtree -e -f ${.CURDIR}/spec1 -p ${.CURDIR} + +.include diff --git a/src/regress/usr.sbin/mtree/obj b/src/regress/usr.sbin/mtree/obj new file mode 120000 index 000000000..0e514f37f --- /dev/null +++ b/src/regress/usr.sbin/mtree/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.sbin/mtree \ No newline at end of file diff --git a/src/regress/usr.sbin/mtree/spec1 b/src/regress/usr.sbin/mtree/spec1 new file mode 100644 index 000000000..3b44f4276 --- /dev/null +++ b/src/regress/usr.sbin/mtree/spec1 @@ -0,0 +1,6 @@ +# $OpenBSD: spec1,v 1.1 2008/06/13 21:33:00 espie Exp $ +/set \ +type=dir +. +/set type=file +spec1 diff --git a/src/regress/usr.sbin/pkg_add/CVS/Entries b/src/regress/usr.sbin/pkg_add/CVS/Entries new file mode 100644 index 000000000..6f3096ab9 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/CVS/Entries @@ -0,0 +1,18 @@ +/empty/1.1/Fri Aug 18 13:14:34 2006// +/minitar/1.1/Wed Jul 20 15:33:50 2005// +/list/1.1/Mon Nov 16 15:15:15 2009// +/list.out/1.2/Thu Dec 31 11:32:09 2009// +/list2.out/1.2/Thu Dec 31 11:32:09 2009// +/list3.out/1.2/Thu Dec 31 11:32:09 2009// +/list4.out/1.2/Thu Dec 31 11:32:09 2009// +/list5.out/1.2/Thu Dec 31 11:32:09 2009// +/list6.out/1.2/Thu Dec 31 11:32:09 2009// +/check-name/1.11/Sat Feb 6 00:59:58 2010// +/check-sig/1.2/Sun Jan 10 12:41:20 2010// +/list7.out/1.2/Sat Feb 6 00:59:58 2010// +/list8.out/1.2/Sat Feb 6 00:59:58 2010// +/myadd/1.3/Sat Feb 6 00:59:58 2010// +/mycreate/1.5/Sat Feb 6 00:59:58 2010// +/signatures.ref/1.1/Sun Jan 10 12:41:20 2010// +/Makefile/1.38/Mon May 31 05:18:57 2010// +D diff --git a/src/regress/usr.sbin/pkg_add/CVS/Repository b/src/regress/usr.sbin/pkg_add/CVS/Repository new file mode 100644 index 000000000..f3efa9bf9 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/CVS/Repository @@ -0,0 +1 @@ +src/regress/usr.sbin/pkg_add diff --git a/src/regress/usr.sbin/pkg_add/CVS/Root b/src/regress/usr.sbin/pkg_add/CVS/Root new file mode 100644 index 000000000..5bdd6b19e --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/CVS/Root @@ -0,0 +1 @@ +:ext:cvs.openbsd.org:/cvs diff --git a/src/regress/usr.sbin/pkg_add/Makefile b/src/regress/usr.sbin/pkg_add/Makefile new file mode 100644 index 000000000..35da63273 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/Makefile @@ -0,0 +1,451 @@ +# $OpenBSD: Makefile,v 1.38 2010/05/01 09:03:05 espie Exp $ + +REGRESS_TARGETS=pkgnames signatures depends-check longnames update-check1 \ + collision-check3 collision-check5 partial-update-test conflict-update \ + merge-update split-update big-merge family-circus missing \ + lib-report1 lib-report2 lib-report3 loop1 \ + lib-report4 lib-report5 lib-report6 lib-report7 \ + qttest + + + +PKG_ADD=perl ${.CURDIR}/myadd +PKG_CREATE=perl ${.CURDIR}/mycreate +LONG1=iamareallongfilenamethatcantberepresentedcorrectlyinatararchivebutwewantittohappenanywaysohmygodaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa42 +LONG2=iamanotherreallygfilenamethatcantberepresentedcorrectlyinatararchivebutwewantittohappenanywaysohmygodaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa42 +LONG3=iamanotherreallylonglinkthatcantberepresentedcorrectlyinatararchivebutwewantittohappenanywaysohmygodaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa42 +LONG4=iamanotherreallylonghardlinkthatcantberepresentedcorrectlyinatararchivebutwewantittohappenanywaysohmygodaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa42 + +.for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 \ + 26 27 28 29 30 31 32 33 34 35 +S$i ?= ${.OBJDIR}/src$i +SRC$i ?= ${S$i}/usr/local +D$i ?= ${.OBJDIR}/dest$i +DEST$i ?= ${D$i}/usr/local +.endfor + +# current maxes: D25, SRC17, plist14 +pkgnames: + perl ${.CURDIR}/check-name + +signatures: + -rm -f signatures.out + perl ${.CURDIR}/check-sig 2>signatures.out + diff -u signatures.out ${.CURDIR}/signatures.ref + +depends-check: rep0/a-0.tgz rep0/b-0.tgz rep1/a-1.tgz rep1/b-1.tgz + @-rm -rf ${D1} + @ROOT=${D1} ${PKG_ADD} rep0/a-0.tgz rep0/b-0.tgz + @ROOT=${D1} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -u a b + @ROOT=${D1} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} -D downgrade -u a b + +longnames: rep1/c-0.tgz + @-rm -rf ${D2} + @ROOT=${D2} ${PKG_ADD} rep1/c-0.tgz + @test -f ${DEST2}/${LONG1} + @test -f ${DEST2}/${LONG2} + @cd ${DEST2} && test -h ${LONG3} && test `readlink ${LONG3}` = ${LONG2} + @cd ${DEST2} && test `stat -f '%i' ${LONG1}` = `stat -f '%i' ${LONG4}` + +collision-check1: rep1/d-0.tgz rep1/e-0.tgz + @-rm -rf ${D3} + @ROOT=${D3} ${PKG_ADD} rep1/d-0.tgz + @ROOT=${D3} ${PKG_ADD} rep1/e-0.tgz + +collision-check2: rep1/d-0.tgz rep1/e-0.tgz + @-rm -rf ${D4} + @ROOT=${D4} ${PKG_ADD} rep1/d-0.tgz + @-rm -rf ${D4}/pkgdb/d-0 + @ROOT=${D4} ${PKG_ADD} rep1/e-0.tgz + +collision-check3: rep1/d-0.tgz rep1/f-0.tgz + @-rm -rf ${D5} + @ROOT=${D5} ${PKG_ADD} rep1/d-0.tgz rep1/f-0.tgz + @-rm -rf ${D5}/pkgdb/d-0 + @ROOT=${D5} ${PKG_ADD} -D repair rep1/d-0.tgz + PKG_DBDIR=${D5}/pkgdb pkg_info -qR d + +collision-check4: rep1/d-0.tgz rep1/e-0.tgz + @-rm -rf ${D6} + @ROOT=${D6} ${PKG_ADD} rep1/d-0.tgz + @-rm -rf ${D6}/pkgdb/d-0 + @ROOT=${D6} ${PKG_ADD} -D repair rep1/e-0.tgz + +collision-check5: rep1/d-0.tgz rep1/e-0.tgz + @-rm -rf ${D21} + @ROOT=${D21} ${PKG_ADD} -n rep1/d-0.tgz rep1/e-0.tgz + +collision-check5: rep1/d-0.tgz rep1/e-0.tgz + @-rm -rf ${D7} + @ROOT=${D7} ${PKG_ADD} rep1/d-0.tgz + @-rm -rf ${D7}/pkgdb/d-0 + @ROOT=${D7} ${PKG_ADD} -D removecollisions rep1/d-0.tgz + +update-check1: rep0/g-0.tgz rep1/g-0.tgz rep0/ga-0.tgz rep1/ga-0.tgz \ + rep0/gb-0.tgz rep1/gb-0p0.tgz rep0/gc-0.tgz rep1/gc-0.tgz \ + rep0/gd-0.tgz rep1/gd-1.tgz rep0/ge-0.tgz rep1/ge-1.tgz \ + rep0/gf-1.tgz rep1/gf-0.tgz rep0/gg-0.tgz rep1/gg-0.tgz + @-rm -rf ${D8} + @ROOT=${D8} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} g ga gb gc gd ge gf gg + @ROOT=${D8} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -u + @PKG_DBDIR=${D8}/pkgdb pkg_info |diff - ${.CURDIR}/list7.out + @ROOT=${D8} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -u gd ge + @PKG_DBDIR=${D8}/pkgdb pkg_info |diff - ${.CURDIR}/list8.out + +list-check: rep1/a-1.tgz rep1/b-1.tgz rep1/c-0.tgz rep1/d-0.tgz \ + rep1/e-0.tgz rep1/f-0.tgz rep1/g-0.tgz + @-rm -rf ${D9} + @ROOT=${D9} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -l ${.CURDIR}/list + @PKG_DBDIR=${D9}/pkgdb pkg_info -q|diff - ${.CURDIR}/list.out + +partial-update-test: rep0/h-0.tgz rep0/i-0.tgz rep0/j-0.tgz \ + rep1/h-1.tgz rep1/i-1.tgz rep1/j-1.tgz + @-rm -rf ${D10} + @ROOT=${D10} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} h j + @ROOT=${D10} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -u h + @PKG_DBDIR=${D10}/pkgdb pkg_info -q|diff - ${.CURDIR}/list2.out + +conflict-update: rep0/k-0.tgz rep0/l-0.tgz rep1/k-1.tgz rep1/l-1.tgz + @-rm -rf ${D11} + @ROOT=${D11} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} k l + @ROOT=${D11} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -u k + @PKG_DBDIR=${D11}/pkgdb pkg_info -q|diff - ${.CURDIR}/list3.out + +merge-update: rep0/m-0.tgz rep0/n-0.tgz rep1/m-1.tgz rep1/n-1.tgz + @-rm -rf ${D12} + @ROOT=${D12} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} m n + @ROOT=${D12} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -u n + @PKG_DBDIR=${D12}/pkgdb pkg_info -q|diff - ${.CURDIR}/list4.out + +split-update: rep0/o-0.tgz rep1/o-1.tgz rep1/p-0.tgz + @-rm -rf ${D13} + @ROOT=${D13} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} o + @ROOT=${D13} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -u o + @PKG_DBDIR=${D13}/pkgdb pkg_info -q |diff - ${.CURDIR}/list5.out + +big-merge: rep0/q1-0.tgz rep0/q2-0.tgz rep0/q3-0.tgz rep0/q4-0.tgz \ + rep0/q5-0.tgz rep0/q6-0.tgz rep1/q5-1.tgz rep1/q6-1.tgz \ + rep1/q1-1.tgz rep1/q2-1.tgz rep1/q3-1.tgz rep1/q4-1.tgz + @-rm -rf ${D14} + @ROOT=${D14} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} q1 q2 q3 q4 q5 q6 + @ROOT=${D14} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -x -D update -u 2>&1 |fgrep XXX|fgrep -v @|diff - ${.CURDIR}/list6.out + +family-circus: rep0/glib-0.tgz rep0/fam-0.tgz rep1/fam-1.tgz rep1/glib-1.tgz rep1/gamin-0.tgz + @-rm -rf ${D15} + @ROOT=${D15} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} glib + @ROOT=${D15} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -u glib + +missing: rep1/missa-0.tgz rep1/missb-0.tgz rep1/missc-0.tgz rep1/missd-0.tgz rep1/missf-0.tgz + @-rm -rf ${D16} + @ROOT=${D16} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} missc + @-ROOT=${D15} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} missa missb missf + +lib-report1: rep0/o1-0.tgz rep1/o1-1.tgz rep1/p1-0.tgz + @-rm -rf ${D17} + @ROOT=${D17} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} o1 + -@ROOT=${D17} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -u o1 + +lib-report2: rep0/o2-0.tgz rep1/o2-1.tgz rep1/p2-0.tgz + @-rm -rf ${D18} + @ROOT=${D18} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} o2 + -@ROOT=${D18} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -u o2 + +lib-report3: rep0/o3-0.tgz + @-rm -rf ${D19} + -@ROOT=${D19} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} o3 + +lib-report4: rep0/o4-0.tgz rep0/p4-0.tgz + @-rm -rf ${D22} + -@ROOT=${D22} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} o4 + +lib-report5: rep0/o5-0.tgz rep0/p4-0.tgz + @-rm -rf ${D23} + -@ROOT=${D23} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} o5 + +lib-report6: rep0/o6-0.tgz rep0/p4-0.tgz rep0/oo6-0.tgz + @-rm -rf ${D24} + -@ROOT=${D24} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} o6 oo6 + +lib-report7: rep0/o7-0.tgz rep0/p4-0.tgz + @-rm -rf ${D25} + -@ROOT=${D25} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} o7 + +loop1: rep0/ocaml-3.11.1.tgz rep0/tcl-8.5.7.tgz rep0/tk-8.5.7.tgz + @-rm -rf ${D20} + -@ROOT=${D20} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} -z ocaml-3.11.1p0 tcl-8.5.8 tk-8.5.8 + +qttest: rep0/qt-0.tgz rep1/qt-1.tgz + @-rm -rf ${D26} + -@ROOT=${D26} PKG_PATH=${.OBJDIR}/rep0 ${PKG_ADD} qt + -@ROOT=${D26} PKG_PATH=${.OBJDIR}/rep1 ${PKG_ADD} -u qt + +plist1: + @echo "@owner "`id -un` >$@ + @echo "@group "`id -gn` >>$@ + @echo ${LONG1} >>$@ + @echo ${LONG2} >>$@ + @echo ${LONG3} >>$@ + @echo ${LONG4} >>$@ + +plist2: + @echo "@owner "`id -un` >$@ + @echo "@group "`id -gn` >>$@ + @echo a >>$@ + @echo b >>$@ + @echo c >>$@ + @echo f >>$@ + @echo g >>$@ + +plist3: + @echo "@owner "`id -un` >$@ + @echo "@group "`id -gn` >>$@ + @echo a >>$@ + @echo c >>$@ + @echo d >>$@ + @echo f >>$@ + @echo g >>$@ + +plist4: + @echo "@option always-update" >$@ + +plist5: + @echo "@option explicit-update" >$@ + +plist6: + @echo "@conflict l-<1" >$@ + +plist7: + @echo "@conflict m-<1" >$@ + @echo "@pkgpath t/m" >>$@ + +plist8: + @echo "@conflict o-<1" >$@ + @echo "@pkgpath t/o" >>$@ + @echo "@owner "`id -un` >>$@ + @echo "@group "`id -gn` >>$@ + @echo '@lib lib/libcoincoin.so.$${LIBcoincoin_VERSION}' >>$@ + +plist9: + @echo "@conflict gamin-*" >$@ + +plist10: + @echo "@conflict fam-*" >$@ + @echo "@pkgpath t/fam" >>$@ + +plist11: + @echo "@conflict missc-*" >$@ + +plist12: + @echo "@owner "`id -un` >>$@ + @echo "@group "`id -gn` >>$@ + @echo '@lib lib/liba.so.$${LIBa_VERSION}' >>$@ + +plist13: + @echo "@owner "`id -un` >>$@ + @echo "@group "`id -gn` >>$@ + @echo phonon/ >>$@ + @echo phonon/a >>$@ + +plist14: + @echo "@owner "`id -un` >>$@ + @echo "@group "`id -gn` >>$@ + @echo phonon >>$@ + +rep0/a-0.tgz: + @${PKG_CREATE} -P't/b:b-*:b-0' -f ${.CURDIR}/empty $@ + +rep1/a-1.tgz rep0/b-0.tgz rep0/i-0.tgz rep0/j-0.tgz rep1/j-1.tgz \ +rep1/i-1.tgz rep0/k-0.tgz rep0/l-0.tgz rep1/l-1.tgz rep0/m-0.tgz \ +rep0/n-0.tgz rep1/m-1.tgz rep0/o-0.tgz rep0/fam-0.tgz \ +rep0/o1-0.tgz rep0/o2-0.tgz rep0/ga-0.tgz \ +rep0/gb-0.tgz rep1/gb-0p0.tgz rep1/gd-1.tgz rep0/ge-0.tgz \ +rep0/gf-1.tgz rep1/gf-0.tgz \ +rep1/missc-0.tgz rep0/q5-0.tgz rep1/q5-1.tgz \ +rep0/tcl-8.5.7.tgz: + @${PKG_CREATE} -f ${.CURDIR}/empty $@ + +rep1/o-1.tgz: + @${PKG_CREATE} -P't/p:p-*:p-0' -W'coincoin.0.0' -f ${.CURDIR}/empty $@ + +rep1/o1-1.tgz: + @${PKG_CREATE} -DREGRESSION_TESTING -P't/p1:p1-*:p1-0' -W'coincoin.0' -f ${.CURDIR}/empty $@ + +rep1/o2-1.tgz: + @${PKG_CREATE} -DREGRESSION_TESTING -P't/p2:p2-*:p2-0' -W'coincoin.0' -f ${.CURDIR}/empty $@ + +rep0/o3-0.tgz: + @${PKG_CREATE} -W'unlikelylibraryname.0.0' -f ${.CURDIR}/empty $@ + +rep1/p-0.tgz rep1/p1-0.tgz: plist8 + @mkdir -p ${SRC13}/lib + @touch ${SRC13}/lib/libcoincoin.so.0.0 + @${PKG_CREATE} -B src13 -DLIBcoincoin_VERSION=0.0 -f plist8 $@ + +rep1/p2-0.tgz: plist8 + @mkdir -p ${SRC14}/lib + @touch ${SRC14}/lib/libcoincoin.so.0 + @${PKG_CREATE} -DREGRESSION_TESTING -B src14 -DLIBcoincoin_VERSION=0 -f plist8 $@ + +rep0/p4-0.tgz: plist12 + @mkdir -p ${SRC15}/lib + @touch ${SRC15}/lib/liba.so.0.0 + @${PKG_CREATE} -B src15 -DLIBa_VERSION=0.0 -f plist12 $@ + +rep0/o4-0.tgz: + @${PKG_CREATE} -W'a.1.0' -P't/p4:p4-*:p4-0' -f ${.CURDIR}/empty $@ + +rep0/o5-0.tgz: + @${PKG_CREATE} -W'a.0.2' -P't/p4:p4-*:p4-0' -f ${.CURDIR}/empty $@ + +rep0/o6-0.tgz: + @${PKG_CREATE} -W'a.0.0' -P't/p4:p4-*:p4-0' -f ${.CURDIR}/empty $@ + +rep0/oo6-0.tgz: + @${PKG_CREATE} -W'a.0.0' -f ${.CURDIR}/empty $@ + +rep0/o7-0.tgz: + @${PKG_CREATE} -W'dir/a.0.0' -P't/p4:p4-*:p4-0' -f ${.CURDIR}/empty $@ + +rep1/b-1.tgz: + @${PKG_CREATE} -P't/a:a-*:a-1' -f ${.CURDIR}/empty $@ + +rep0/qt-0.tgz: plist13 + @mkdir -p ${SRC17}/phonon + touch ${SRC17}/phonon/a + @${PKG_CREATE} -B src17 -f plist13 $@ + +rep1/qt-1.tgz: plist14 + @mkdir -p ${SRC16} + touch ${SRC16}/phonon + @${PKG_CREATE} -B src16 -f plist14 $@ + +rep1/c-0.tgz: plist1 + @mkdir -p ${SRC1} + @touch ${SRC1}/${LONG1} + @touch ${SRC1}/${LONG2} + @cd ${SRC1} && ln -sf ${LONG2} ${LONG3} + @cd ${SRC1} && ln -f ${LONG1} ${LONG4} + @${PKG_CREATE} -B src1 -f plist1 $@ + +rep1/k-1.tgz: plist6 + @${PKG_CREATE} -f plist6 $@ + +rep1/n-1.tgz: plist7 + @${PKG_CREATE} -f plist7 $@ + +rep1/d-0.tgz: plist2 + @mkdir -p ${SRC2} + @touch ${SRC2}/a ${SRC2}/b ${SRC2}/c + @echo "coucou" >${SRC2}/f + @echo "not coucou" >${SRC2}/g + @${PKG_CREATE} -B src2 -f plist2 $@ + +rep1/e-0.tgz: plist3 + @mkdir -p ${SRC3} + @touch ${SRC3}/a ${SRC3}/c ${SRC3}/d + @echo "coucou" >${SRC3}/f + @echo "coucou" >${SRC3}/g + @${PKG_CREATE} -B src3 -f plist3 $@ + +rep1/f-0.tgz: + @${PKG_CREATE} -P't/d:d-*:d-0' -f ${.CURDIR}/empty $@ + +rep0/g-0.tgz: plist4 + @${PKG_CREATE} -f plist4 $@ + +rep1/g-0.tgz: plist4 + @PACKAGE_COMMENT=updated ${PKG_CREATE} -f plist4 $@ + +rep0/gg-0.tgz: plist4 + @${PKG_CREATE} -P't/g:g-*:g-1' -f plist4 $@ + +rep1/gg-0.tgz: plist4 + @PACKAGE_COMMENT=updated ${PKG_CREATE} -P't/g:g-*:g-0' -f plist4 $@ + +rep0/gd-0.tgz rep1/ge-1.tgz: plist5 + @${PKG_CREATE} -f plist5 $@ + +rep1/ga-0.tgz: + @PACKAGE_COMMENT=updated ${PKG_CREATE} -f ${.CURDIR}/empty $@ + +rep0/gc-0.tgz: + @${PKG_CREATE} -P't/ga:gb-*:gb-0' -f ${.CURDIR}/empty $@ + +rep1/gc-0.tgz: + @PACKAGE_COMMENT=updated ${PKG_CREATE} -P't/ga:gb-*:gb-0p0' -f ${.CURDIR}/empty $@ + +rep0/h-0.tgz: + @${PKG_CREATE} -P't/i:i-*:i-0' -f ${.CURDIR}/empty $@ + +rep1/h-1.tgz: + @${PKG_CREATE} -P't/j:j->=1:j-1' -f ${.CURDIR}/empty $@ + +depend_q1=-P't/q5:q5-*:q5-0' +depend_q2=${depend_q1} -P't/q1:q1-*:q1-0' +depend_q3=${depend_q1} -P't/q2:q2-*:q2-0' +depend_q4=${depend_q1} -P't/q3:q3-*:q3-0' + +.for n in q1 q2 q3 q4 +plist-rep0-$n: + @echo "@unexec echo 1>&2 'XXXrep0 $n'" >$@ + +rep0/$n-0.tgz: plist-rep0-$n + @${PKG_CREATE} ${depend_$n} -f plist-rep0-$n $@ +rep1/$n-1.tgz: plist-rep1-$n + @${PKG_CREATE} ${depend_$n} -f plist-rep1-$n $@ + +plist-rep1-$n: + @echo "@conflict q1-0" >$@ + @echo "@conflict q2-0" >>$@ + @echo "@conflict q3-0" >>$@ + @echo "@conflict q4-0" >>$@ + @echo "@exec echo 1>&2 'XXXrep1 $n'" >>$@ + +.endfor + +rep0/q6-0.tgz: + @${PKG_CREATE} -P't/q3:q3-*:q3-0' -f ${.CURDIR}/empty $@ + +rep1/q6-1.tgz: + @${PKG_CREATE} -P't/q3:q3-*:q3-0' -f ${.CURDIR}/empty $@ + +rep0/glib-0.tgz: + @${PKG_CREATE} -P't/fam:fam-*:fam-0' -f ${.CURDIR}/empty $@ + +rep1/glib-1.tgz: + @${PKG_CREATE} -P't/gamin:gamin-*:gamin-0' -f ${.CURDIR}/empty $@ + +rep1/fam-1.tgz: plist9 + @${PKG_CREATE} -f plist9 $@ + +rep1/gamin-0.tgz: plist10 + @${PKG_CREATE} -f plist10 $@ + +rep1/missa-0.tgz: + @${PKG_CREATE} -P't/misse:misse-*:misse-0' -f ${.CURDIR}/empty $@ + +rep1/missb-0.tgz: + @${PKG_CREATE} -P't/missd:missd-*:missd-0' -f ${.CURDIR}/empty $@ + +rep1/missd-0.tgz: plist11 + @${PKG_CREATE} -f plist11 $@ + +rep1/missf-0.tgz: + @${PKG_CREATE} -P't/misse:misse-*:misse-0' -f ${.CURDIR}/empty $@ + +rep0/ocaml-3.11.1.tgz: + @${PKG_CREATE} -P'test/tcl:tcl->=8.5,<8.6:tcl-8.5.7' \ + -P'test/tk:tk->=8.5,<8.6:tk-8.5.7' -f ${.CURDIR}/empty $@ + +rep0/tk-8.5.7.tgz: + @${PKG_CREATE} -P'test/tcl:tcl->=8.5.7,<8.5.8:tcl-8.5.7' \ + -f ${.CURDIR}/empty $@ + +# some extra tests do not yet pass correctly +.PHONY: ${REGRESS_TARGETS} \ + collision-check1 collision-check2 collision-check4 collision-check5 + +clean: + -rm -rf rep* dest* plist* src* signatures.out + +.include diff --git a/src/regress/usr.sbin/pkg_add/check-name b/src/regress/usr.sbin/pkg_add/check-name new file mode 100644 index 000000000..96b96505b --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/check-name @@ -0,0 +1,123 @@ +#! /usr/bin/perl +# $OpenBSD: check-name,v 1.11 2010/01/27 15:41:58 espie Exp $ +# Written by Marc Espie +# Public domain + +use Test::Simple tests => 20; +use OpenBSD::Search; +use OpenBSD::PackageName; + +sub check_list +{ + my $expected = shift; + @_ = sort(@_); + if (@$expected != @_) { + print STDERR "length: ", scalar(@$expected)," vs. ", + scalar(@_), "\n"; + print STDERR join(',', @$expected), "\n"; + print STDERR join(',', @_), "\n"; + return 0; + } + for my $i (0 .. @_ -1) { + if ($expected->[$i] ne $_[$i]) { + print STDERR "$expected->[$i] vs. $_[$i]\n"; + return 0; + } + } + return 1; +} + +sub check_pkgspec +{ + my ($s, @list) = @_; + + my $o = OpenBSD::Search::PkgSpec->new($s); + return $o->filter(@list); +} + +sub check_name +{ + my $s = shift; + return OpenBSD::PackageName->from_string($s)->has_issues; +} + +sub check_order +{ + my @l = map {OpenBSD::PackageName->from_string($_)} @_; + while (my $a = shift @l) { + for my $b (@l) { + if ($a->compare($b) >= 0) { + print $a->to_string, " > ", $b->to_string, "\n"; + return 0; + } + } + } + return 1; +} + +@list = qw(py-MxDateTime-2.0.1-py2.1); +ok(check_list(\@list, + check_pkgspec('py-MxDateTime->=2.0-py2.1', @list)), + 'flavor with number'); +@list = qw(foo-1.0 foo-1.0p0 foo-1.0p25); +ok(check_list([qw(foo-1.0)], + check_pkgspec('foo-<1.0p0', @list)), + 'before 1.0p0 came 1.0'); +ok(check_list([qw(foo-1.0 foo-1.0p0)], + check_pkgspec('foo-<=1.0p0', @list)), + '1.0 and 1.0p0 both match <=1.0p0'); +ok(check_list([qw(foo-1.0 foo-1.0p0 foo-1.0p25)], + check_pkgspec('foo-1.0', @list)), + 'any 1.0p* matches 1.0'); +@list = qw(foo-1.0rc2); +ok(check_list(\@list, + check_pkgspec('foo-<1.0', @list)), + 'before 1.0 came 1.0rc2'); +@list = qw(foo-1.0); +ok(check_list(\@list, + check_pkgspec('foo-<1.0pl1', @list)), + 'before 1.0pl1 came 1.0'); + +my @pkglist=qw(foo-1.0 bar-2.0 foo-2.5 foobar-2.3-pouet hugs-noversion baz-0.0 + baz-1.1 baz-25.3 pouet-1.0 pouet-zoinx-1.0 pouet-0.0-foo); + +my $hash = OpenBSD::PackageName::compile_stemlist(@pkglist); + +ok(check_list([qw(bar-2.0)], + $hash->find('bar')), + 'simple stem lookup'); +ok(check_list([qw(foo-1.0 foo-2.5)], + $hash->find('foo')), + 'simple stem lookup with several results'); +ok(check_list([qw(baz-0.0 baz-1.1 baz-25.3)], + $hash->find('baz')), + 'stem lookup, no duplicates'); +ok(check_list([qw(foobar-2.3-pouet)], + $hash->find('foobar')), + 'stem lookup with flavor'); +ok(check_list([qw(pouet-0.0-foo pouet-1.0)], + $hash->find('pouet')), + 'complicated stem matching'); +ok(check_list([], + $hash->find('hugs')), + 'bogus stem matching with no version'); +ok(check_list([qw(hugs-noversion)], + $hash->find('hugs-noversion')), + 'stem matching with no version'); +ok(OpenBSD::PackageName->from_string('foo-1.0-f2-f1')->to_string + eq 'foo-1.0-f1-f2', + 'canonical names'); +ok(!OpenBSD::Search::PkgSpec->new('foo-<>1.5')->is_valid, + 'invalid spec'); + +ok(check_list(["is a stem"], check_name("pkgname-without-version")), + "pkgname without version"); +ok(check_list(["flavor 1flavor can't start with digit"], + check_name("pkgname-1.0-flavor-1flavor")), + "numerical flavor"); +ok(check_list(["correct order is pNvM"], check_name("pkgname-1.0v0p0")), + "mixed up vp"); +ok(check_list([], check_name("pkgname-1.0p0v0")), "correct name"); + +ok(check_order(qw(speex-1.2beta3 speex-1.2rc1 speex-1.2 speex-1.2pl1 + speex-1.3beta1)), 'check order'); diff --git a/src/regress/usr.sbin/pkg_add/check-sig b/src/regress/usr.sbin/pkg_add/check-sig new file mode 100755 index 000000000..56059214f --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/check-sig @@ -0,0 +1,63 @@ +#! /usr/bin/perl +# $OpenBSD: check-sig,v 1.2 2010/01/10 12:41:20 espie Exp $ +# Written by Marc Espie +# Public domain + +use Test::Simple tests => 11; +use OpenBSD::PackingList; +sub mycode +{ + my ($fh, $cont) = @_; + my $_; + while (<$fh>) { + return if m/^__END__/; + &$cont($_); + } +} + +my @sig; +my $fh = \*DATA; +for my $i (1..7) { + push(@sig, OpenBSD::PackingList->read($fh, \&mycode)->signature); +} + +ok($sig[0]->compare($sig[0]) == 0, "self compare"); +ok($sig[3]->compare($sig[3]) == 0, "self compare"); +ok($sig[5]->compare($sig[5]) == 0, "self compare"); +ok(!defined($sig[0]->compare($sig[3])), "non comparable"); +ok($sig[0]->compare($sig[1]) < 0, "depend"); +ok($sig[0]->compare($sig[2]) < 0, "pkgname"); +ok($sig[1]->compare($sig[0]) > 0, "other way"); +ok($sig[3]->compare($sig[4]) < 0, "lib"); +ok($sig[3]->compare($sig[5]) < 0, "depend"); +ok(!defined($sig[0]->compare($sig[6])), "non comparable"); +ok(!defined($sig[6]->compare($sig[0])), "non comparable"); + +__DATA__ +@name foo-1.0 +@depend test/x:x-*:x-1.0 +file +__END__ #1 +@name foo-1.0 +@depend test/x:x-*:x-2.0 +file +__END__ #2 +@name foo-2.0 +@depend test/x:x-*:x-2.0 +file +__END__ #3 +@name bar-1.0 +@depend test/x:x-*:x-1.0 +@wantlib a.1.5 +__END__ #4 +@name bar-1.0 +@depend test/x:x-*:x-1.0 +@wantlib a.2.0 +__END__ #5 +@name bar-1.0 +@depend test/x:x-*:x-2.0 +@wantlib a.1.5 +__END__ #6 +@name foo-1.0 +@depend test/x:x-*:x-1.0 +@depend test/y:y-*:y-2.0 diff --git a/src/regress/usr.sbin/pkg_add/empty b/src/regress/usr.sbin/pkg_add/empty new file mode 100644 index 000000000..868f64d2e --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/empty @@ -0,0 +1 @@ +@comment $OpenBSD: empty,v 1.1 2006/08/18 13:14:34 espie Exp $ diff --git a/src/regress/usr.sbin/pkg_add/list b/src/regress/usr.sbin/pkg_add/list new file mode 100644 index 000000000..d26acd589 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/list @@ -0,0 +1,3 @@ +a-0.0 $OpenBSD +c-5.0 stupid comment2 +d-2.5 blabla diff --git a/src/regress/usr.sbin/pkg_add/list.out b/src/regress/usr.sbin/pkg_add/list.out new file mode 100644 index 000000000..75494b2dd --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/list.out @@ -0,0 +1,3 @@ +a-1 +c-0 +d-0 diff --git a/src/regress/usr.sbin/pkg_add/list2.out b/src/regress/usr.sbin/pkg_add/list2.out new file mode 100644 index 000000000..a8f9f7a1a --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/list2.out @@ -0,0 +1,3 @@ +h-1 +i-0 +j-1 diff --git a/src/regress/usr.sbin/pkg_add/list3.out b/src/regress/usr.sbin/pkg_add/list3.out new file mode 100644 index 000000000..6727371c5 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/list3.out @@ -0,0 +1,2 @@ +k-1 +l-1 diff --git a/src/regress/usr.sbin/pkg_add/list4.out b/src/regress/usr.sbin/pkg_add/list4.out new file mode 100644 index 000000000..8cb8d99e9 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/list4.out @@ -0,0 +1 @@ +n-1 diff --git a/src/regress/usr.sbin/pkg_add/list5.out b/src/regress/usr.sbin/pkg_add/list5.out new file mode 100644 index 000000000..f54888b46 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/list5.out @@ -0,0 +1,2 @@ +o-1 +p-0 diff --git a/src/regress/usr.sbin/pkg_add/list6.out b/src/regress/usr.sbin/pkg_add/list6.out new file mode 100644 index 000000000..84e513b66 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/list6.out @@ -0,0 +1,8 @@ +XXXrep0 q4 +XXXrep0 q3 +XXXrep0 q2 +XXXrep0 q1 +XXXrep1 q1 +XXXrep1 q2 +XXXrep1 q3 +XXXrep1 q4 diff --git a/src/regress/usr.sbin/pkg_add/list7.out b/src/regress/usr.sbin/pkg_add/list7.out new file mode 100644 index 000000000..9b379ee95 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/list7.out @@ -0,0 +1,8 @@ +g-0 updated +ga-0 comment +gb-0p0 comment +gc-0 updated +gd-0 comment +ge-0 comment +gf-1 comment +gg-0 comment diff --git a/src/regress/usr.sbin/pkg_add/list8.out b/src/regress/usr.sbin/pkg_add/list8.out new file mode 100644 index 000000000..73daa9c7a --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/list8.out @@ -0,0 +1,8 @@ +g-0 updated +ga-0 comment +gb-0p0 comment +gc-0 updated +gd-1 comment +ge-1 comment +gf-1 comment +gg-0 comment diff --git a/src/regress/usr.sbin/pkg_add/minitar b/src/regress/usr.sbin/pkg_add/minitar new file mode 100644 index 000000000..959caf5f7 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/minitar @@ -0,0 +1,83 @@ +#! /usr/bin/perl +# +# ex:ts=8 sw=4: +# $OpenBSD: minitar,v 1.1 2005/07/20 15:33:50 espie Exp $ +# +# Copyright (c) 2005 Marc Espie +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +use OpenBSD::Ustar; +use strict; + +my $mode = shift; +my $arcname; +my ($what, $verbose); + +sub create +{ + my $arcname = shift; + open my $out, '>', $arcname or die "bad archive $arcname: $!\n"; + my $arc = OpenBSD::Ustar->new($out, '.'); + for my $f (@_) { + my $e = $arc->prepare($f); + $e->write(); + } + $arc->close(); +} + +sub extract +{ + my $arcname = shift; + open my $in, '<', $arcname or die "bad archive $arcname: $!\n"; + my $arc = OpenBSD::Ustar->new($in); + while (my $e = $arc->next()) { + $e->create(); + } + $arc->close(); +} + +sub test +{ + my $arcname = shift; + open my $in, '<', $arcname or die "bad archive $arcname: $!\n"; + my $arc = OpenBSD::Ustar->new($in); + while (my $e = $arc->next()) { + print $e->{name}, "\n"; + } + $arc->close(); +} + +if ($mode =~ s/c//) { + $what = \&create; +} elsif ($mode =~ s/t//) { + $what = \&test; +} elsif ($mode =~ s/x//) { + $what = \&extract; +} +if ($mode =~ s/f//) { + $arcname = shift; +} +if ($mode =~ s/v//) { + $verbose = 1; +} + +if ($mode ne '') { + die "Bad mode\n"; +} + +if (!defined $what) { + die "Bad mode\n"; +} + +&$what($arcname, @ARGV); diff --git a/src/regress/usr.sbin/pkg_add/myadd b/src/regress/usr.sbin/pkg_add/myadd new file mode 100644 index 000000000..d2617585f --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/myadd @@ -0,0 +1,41 @@ +#! /usr/bin/perl + +# ex:ts=8 sw=4: +# $OpenBSD: myadd,v 1.3 2010/01/14 19:38:37 espie Exp $ +# +# Copyright (c) 2009 Marc Espie +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +use strict; +use warnings; +use File::Path; + +my $root = $ENV{'ROOT'}; + +File::Path::make_path("$root/pkgdb"); + +$ENV{'PKG_DBDIR'} = "$root/pkgdb"; + +my @args = ('-F', 'nonroot', '-B', $root, @ARGV); +my $prog; +if ($ENV{'DEBUG'}) { + unshift(@args, 'perl', '-d', '/usr/sbin/pkg_add', '-D', 'debug'); + $prog = 'perl'; +} else { + unshift(@args, 'pkg_add'); + $prog = 'pkg_add'; +} +print join(' ', "pkg_add", @ARGV), "\n" unless $ENV{'SILENT'} || $ENV{'VERBOSE'}; +print join(' ', @args), "\n" if $ENV{'VERBOSE'}; + +exec {$prog} @args; diff --git a/src/regress/usr.sbin/pkg_add/mycreate b/src/regress/usr.sbin/pkg_add/mycreate new file mode 100644 index 000000000..b8c2d78f6 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/mycreate @@ -0,0 +1,46 @@ +#! /usr/bin/perl + +# ex:ts=8 sw=4: +# $OpenBSD: mycreate,v 1.5 2010/01/10 11:49:56 espie Exp $ +# +# Copyright (c) 2009 Marc Espie +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +use strict; +use warnings; +use File::Basename; +use File::Path; +use OpenBSD::PackageName; + +my $target = pop @ARGV; +my $basename = basename($target, '.tgz'); +File::Path::make_path(dirname($target)); +my $pkgname = OpenBSD::PackageName->from_string($basename); +my $pkgpath = $ENV{'PACKAGE_PATH'}; +if (!defined $pkgpath) { + $pkgpath = 't/'.$pkgname->{stem}; +} + +my @l; +push(@l, + '-p', $ENV{'PACKAGE_BASE'} || '/usr/local', + "-DFULLPKGPATH=$pkgpath", + '-DMAINTAINER=regress-tests', + '-DCOMMENT='.($ENV{'PACKAGE_COMMENT'} || 'comment'), + '-d', $ENV{'PACKAGE_DESCR'} || '-descr', + '-A', $ENV{'PACKAGE_ARCH'} || '*'); + + +my @args = ('pkg_create', @l, @ARGV, $target); +print join(' ', @args), "\n" if $ENV{'VERBOSE'}; +exec {$args[0]} @args; diff --git a/src/regress/usr.sbin/pkg_add/obj b/src/regress/usr.sbin/pkg_add/obj new file mode 120000 index 000000000..3d3b4f036 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/obj @@ -0,0 +1 @@ +/usr/obj/regress/usr.sbin/pkg_add \ No newline at end of file diff --git a/src/regress/usr.sbin/pkg_add/signatures.ref b/src/regress/usr.sbin/pkg_add/signatures.ref new file mode 100644 index 000000000..a922fc290 --- /dev/null +++ b/src/regress/usr.sbin/pkg_add/signatures.ref @@ -0,0 +1,6 @@ +Error: foo-1.0 exists in two non-comparable versions +Someone forgot to bump a PKGNAME +foo-1.0,x-1.0 vs. foo-1.0,x-1.0,y-2.0 +Error: foo-1.0 exists in two non-comparable versions +Someone forgot to bump a PKGNAME +foo-1.0,x-1.0,y-2.0 vs. foo-1.0,x-1.0 -- 2.11.0